rangeflow 1.0.13 → 1.0.15

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 (32) hide show
  1. package/README.md +7 -0
  2. package/dist/RangeFlow.d.ts +1 -1
  3. package/dist/Root.d.ts +1 -1
  4. package/dist/animations/OdometerText/OdometerChar.d.ts +1 -1
  5. package/dist/animations/OdometerText/index.d.ts +1 -1
  6. package/dist/components/Calendar/CalendarDayButton.d.ts +1 -1
  7. package/dist/components/Calendar/Chevron.d.ts +1 -1
  8. package/dist/components/Calendar/index.d.ts +1 -1
  9. package/dist/components/DateSlider/DateLabelsTrack.d.ts +1 -1
  10. package/dist/components/DateSlider/DateTickers.d.ts +1 -1
  11. package/dist/components/DateSlider/RangeStepButton.d.ts +1 -1
  12. package/dist/components/DateSlider/Slider/SliderLeftSpacer.d.ts +1 -1
  13. package/dist/components/DateSlider/Slider/SliderRightSpacer.d.ts +1 -1
  14. package/dist/components/DateSlider/Slider/SliderThumb.d.ts +1 -1
  15. package/dist/components/DateSlider/Slider/index.d.ts +1 -1
  16. package/dist/components/DateSlider/SliderTrack.d.ts +1 -1
  17. package/dist/components/DateSlider/SliderValue.d.ts +1 -1
  18. package/dist/components/DateSlider/index.d.ts +1 -1
  19. package/dist/components/DateSlider/utils/restrict-inner-to-element.d.ts +1 -1
  20. package/dist/components/PickerBar/CalendarPopover.d.ts +1 -1
  21. package/dist/components/PickerBar/SelectedDate.d.ts +1 -1
  22. package/dist/components/PickerBar/index.d.ts +1 -1
  23. package/dist/components/Popover/index.d.ts +1 -1
  24. package/dist/components/RangeTabs/index.d.ts +1 -1
  25. package/dist/context/ContextProvider.d.ts +1 -1
  26. package/dist/icons/CalendarIcon.d.ts +1 -1
  27. package/dist/icons/DoubleChevronLeftIcon.d.ts +1 -1
  28. package/dist/icons/DoubleChevronRightIcon.d.ts +1 -1
  29. package/dist/index.js +142 -127
  30. package/dist/style.css +2 -2
  31. package/dist/utils/normalize-date-range.d.ts +6 -0
  32. package/package.json +33 -33
package/README.md CHANGED
@@ -4,6 +4,13 @@ A fancy date range picker built with React and Tailwind.
4
4
 
5
5
  RangeFlow gives you a date range picker with a smooth slider, quick range tabs, and a popover calendar. It is built for React 18 and 19, ships with a tiny CSS theming layer, and does not touch your app's global styles.
6
6
 
7
+ <a href="https://rangeflow.raminmousavi.dev" target="_blank">
8
+ <picture>
9
+ <source media="(prefers-color-scheme: dark)" srcset="https://raminmousavi.dev/blog-assets/post-006/rangeflow-hero-dark.png?v=1.0">
10
+ <img alt="RangeFlow Hero" src="https://raminmousavi.dev/blog-assets/post-006/rangeflow-hero.png?v=1.0">
11
+ </picture>
12
+ </a>
13
+
7
14
  ## Features
8
15
 
9
16
  - Drag based range slider that feels natural on mouse and touch.
@@ -1,2 +1,2 @@
1
1
  import { RangeFlowProps } from './types';
2
- export declare function RangeFlow(props: RangeFlowProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function RangeFlow(props: RangeFlowProps): import("react").JSX.Element;
package/dist/Root.d.ts CHANGED
@@ -1 +1 @@
1
- export declare function Root(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function Root(): import("react").JSX.Element;
@@ -2,5 +2,5 @@ interface Props {
2
2
  value: string;
3
3
  delay: number;
4
4
  }
5
- export declare const OdometerChar: import('react').MemoExoticComponent<({ value, delay }: Props) => import("react/jsx-runtime").JSX.Element>;
5
+ export declare const OdometerChar: import('react').MemoExoticComponent<({ value, delay }: Props) => import("react").JSX.Element>;
6
6
  export {};
@@ -2,5 +2,5 @@ interface OdometerTextProps {
2
2
  children: string;
3
3
  className?: string;
4
4
  }
5
- export declare const OdometerText: import('react').MemoExoticComponent<({ children, className }: OdometerTextProps) => import("react/jsx-runtime").JSX.Element>;
5
+ export declare const OdometerText: import('react').MemoExoticComponent<({ children, className }: OdometerTextProps) => import("react").JSX.Element>;
6
6
  export {};
@@ -1,2 +1,2 @@
1
1
  import { DayButtonProps } from 'react-day-picker';
2
- export declare function CalendarDayButton({ className, day: _day, modifiers, ...props }: DayButtonProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function CalendarDayButton({ className, day: _day, modifiers, ...props }: DayButtonProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { ChevronProps } from 'react-day-picker';
2
- export declare function Chevron({ className, orientation, size }: ChevronProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Chevron({ className, orientation, size }: ChevronProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { DayPickerProps } from 'react-day-picker';
2
- export declare function Calendar({ captionLayout, className, classNames, components, showOutsideDays, ...props }: DayPickerProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Calendar({ captionLayout, className, classNames, components, showOutsideDays, ...props }: DayPickerProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare const DateLabelsTrack: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const DateLabelsTrack: import('react').MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1 +1 @@
1
- export declare const DateTickers: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const DateTickers: import('react').MemoExoticComponent<() => import("react").JSX.Element>;
@@ -3,5 +3,5 @@ interface Props {
3
3
  children: ReactNode;
4
4
  onClick: () => void;
5
5
  }
6
- export declare function RangeStepButton({ children, onClick }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export declare function RangeStepButton({ children, onClick }: Props): import("react").JSX.Element;
7
7
  export {};
@@ -1 +1 @@
1
- export declare function SliderLeftSpacer(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function SliderLeftSpacer(): import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare function SliderRightSpacer(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function SliderRightSpacer(): import("react").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  interface Props {
2
2
  onHandleRef: (el: HTMLDivElement | null) => void;
3
3
  }
4
- export declare function SliderThumb({ onHandleRef }: Props): import("react/jsx-runtime").JSX.Element;
4
+ export declare function SliderThumb({ onHandleRef }: Props): import("react").JSX.Element;
5
5
  export {};
@@ -1,5 +1,5 @@
1
1
  interface Props {
2
2
  onHandleRef: (el: HTMLDivElement | null) => void;
3
3
  }
4
- export declare function Slider({ onHandleRef }: Props): import("react/jsx-runtime").JSX.Element;
4
+ export declare function Slider({ onHandleRef }: Props): import("react").JSX.Element;
5
5
  export {};
@@ -1,5 +1,5 @@
1
1
  interface Props {
2
2
  onHandleRef: (el: HTMLDivElement | null) => void;
3
3
  }
4
- export declare function SliderTrack({ onHandleRef }: Props): import("react/jsx-runtime").JSX.Element;
4
+ export declare function SliderTrack({ onHandleRef }: Props): import("react").JSX.Element;
5
5
  export {};
@@ -1 +1 @@
1
- export declare const SliderValue: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const SliderValue: import('react').MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1 +1 @@
1
- export declare function DateSlider(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function DateSlider(): import("react").JSX.Element;
@@ -9,6 +9,6 @@ export declare class RestrictInnerToElement extends Modifier<DragDropManager<Dat
9
9
  private containerRect;
10
10
  constructor(manager: DragDropManager<Data, Draggable, Droppable>, options?: Options);
11
11
  apply({ transform }: DragOperation): import('@dnd-kit/geometry').Coordinates;
12
- static configure: (options: Options) => import('@dnd-kit/abstract').PluginDescriptor<any, any, typeof RestrictInnerToElement>;
12
+ static configure: (options: Options) => import('@dnd-kit/abstract').PluginDescriptor<any, import('@dnd-kit/abstract').Plugin<any, Options>, typeof RestrictInnerToElement>;
13
13
  }
14
14
  export {};
@@ -2,5 +2,5 @@ import { ReactNode } from 'react';
2
2
  interface Props {
3
3
  children: ReactNode;
4
4
  }
5
- export declare function CalendarPopover({ children }: Props): import("react/jsx-runtime").JSX.Element;
5
+ export declare function CalendarPopover({ children }: Props): import("react").JSX.Element;
6
6
  export {};
@@ -1 +1 @@
1
- export declare function SelectedDate(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function SelectedDate(): import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare function PickerBar(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function PickerBar(): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { ComponentProps } from 'react';
2
2
  import * as PopoverPrimitive from '@radix-ui/react-popover';
3
3
  type ContentProps = ComponentProps<typeof PopoverPrimitive.Content>;
4
- export declare const PopoverContent: import('react').MemoExoticComponent<({ align, className, sideOffset, children, ...props }: ContentProps) => import("react/jsx-runtime").JSX.Element>;
4
+ export declare const PopoverContent: import('react').MemoExoticComponent<({ align, className, sideOffset, children, ...props }: ContentProps) => import("react").JSX.Element>;
5
5
  export declare const Popover: import('react').FC<PopoverPrimitive.PopoverProps>;
6
6
  export declare const PopoverTrigger: import('react').ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
7
7
  export declare const PopoverAnchor: import('react').ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- export declare function RangeTabs(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function RangeTabs(): import("react").JSX.Element;
@@ -3,5 +3,5 @@ import { RangeFlowProps } from '../types';
3
3
  interface Props extends RangeFlowProps {
4
4
  children: ReactNode;
5
5
  }
6
- export declare function ContextProvider({ children, defaultRange, defaultSelected, disabled, duration, calendar, ranges, CalendarProps, Slots, api, onChange }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export declare function ContextProvider({ children, defaultRange, defaultSelected, disabled, duration, calendar, ranges, CalendarProps, Slots, api, onChange }: Props): import("react").JSX.Element;
7
7
  export {};
@@ -1 +1 @@
1
- export declare function CalendarIcon(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function CalendarIcon(): import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare function DoubleChevronLeftIcon(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function DoubleChevronLeftIcon(): import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare function DoubleChevronRightIcon(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function DoubleChevronRightIcon(): import("react").JSX.Element;
package/dist/index.js CHANGED
@@ -8,13 +8,13 @@ import y, { clsx as b } from "clsx";
8
8
  import { useStore as x } from "zustand";
9
9
  import { KeyboardSensor as ne, PointerSensor as re } from "@dnd-kit/dom";
10
10
  import { Group as ie, Panel as S, Separator as C } from "react-resizable-panels";
11
- import { Modifier as ae, configurator as w } from "@dnd-kit/abstract";
12
- import { Rectangle as T } from "@dnd-kit/geometry";
13
- import { effect as E, signal as D } from "@dnd-kit/state";
14
- import { DayPicker as oe } from "react-day-picker";
15
- import * as O from "@radix-ui/react-popover";
11
+ import { Modifier as ae, configurator as oe } from "@dnd-kit/abstract";
12
+ import { Rectangle as w } from "@dnd-kit/geometry";
13
+ import { effect as T, signal as E } from "@dnd-kit/state";
14
+ import { DayPicker as se } from "react-day-picker";
15
+ import * as D from "@radix-ui/react-popover";
16
16
  //#region src/package/rangeflow/constants/date-ranges.ts
17
- var se = [
17
+ var ce = [
18
18
  {
19
19
  label: "2 Weeks",
20
20
  from: d().subtract(1, "weeks").toDate(),
@@ -40,29 +40,40 @@ var se = [
40
40
  from: d().subtract(6, "months").toDate(),
41
41
  to: d().add(6, "months").toDate()
42
42
  }
43
- ], k = "left-spacer", A = "right-spacer", j = "slider-track-thumb";
43
+ ], O = "left-spacer", k = "right-spacer", A = "slider-track-thumb";
44
44
  //#endregion
45
45
  //#region src/package/rangeflow/utils/clamp.ts
46
- function M(e, t, n) {
46
+ function j(e, t, n) {
47
47
  return Math.min(Math.max(e, t), n);
48
48
  }
49
49
  //#endregion
50
50
  //#region src/package/rangeflow/utils/interpolate.ts
51
- function N(e, t) {
51
+ function M(e, t) {
52
52
  return (n) => {
53
53
  let [r, i] = e, [a, o] = t;
54
54
  return a + (n - r) / (i - r) * (o - a);
55
55
  };
56
56
  }
57
57
  //#endregion
58
+ //#region src/package/rangeflow/utils/normalize-date-range.ts
59
+ function N(e) {
60
+ let t = d().startOf("day"), n = d(e.from), r = d(e.to), i = n.isValid() ? n.startOf("day") : t, a = r.isValid() ? r.startOf("day") : i;
61
+ return a.isBefore(i) && (a = i), {
62
+ start: i,
63
+ end: a
64
+ };
65
+ }
66
+ //#endregion
58
67
  //#region src/package/rangeflow/utils/create-slider-values.ts
59
- var ce = N([1, 100], [5, 100]);
68
+ var le = M([1, 100], [5, 100]);
60
69
  function P(e, t) {
61
- let n = d(e.from).startOf("day"), r = d(e.to).startOf("day").diff(n, "day"), i = d(t.from).startOf("day"), a = d(t.to).startOf("day"), o = Math.max(i.diff(n, "day"), 0), s = (a.diff(i, "day") + 1) * 100 / r, c = o * 100 / r, l = Math.max(ce(s), 5), u = M(c - (l - s), 0, Math.max(100 - l, 0));
70
+ let { start: n, end: r } = N(e), i = Math.max(r.diff(n, "day") + 1, 1), a = d(t.from), o = d(t.to), s = a.isValid() ? a.startOf("day") : n, c = o.isValid() ? o.startOf("day") : s;
71
+ c.isBefore(s) && (c = s);
72
+ let l = Math.max(Math.min(s.diff(n, "day"), i - 1), 0), u = Math.max(Math.min(c.diff(s, "day") + 1, i), 1) * 100 / i, f = l * 100 / i, p = Math.max(le(u), 5), m = j(f - (p - u), 0, Math.max(100 - p, 0));
62
73
  return {
63
- size: l,
64
- left: u,
65
- right: Math.max(100 - u - l, 0)
74
+ size: p,
75
+ left: m,
76
+ right: Math.max(100 - m - p, 0)
66
77
  };
67
78
  }
68
79
  //#endregion
@@ -108,7 +119,7 @@ var z = (e) => f()((t) => ({
108
119
  })), B = e(null);
109
120
  //#endregion
110
121
  //#region src/package/rangeflow/context/ContextProvider.tsx
111
- function V({ children: e, defaultRange: t, defaultSelected: n, disabled: r, duration: i, calendar: a = !0, ranges: o = se, CalendarProps: s, Slots: l, api: d, onChange: f }) {
122
+ function V({ children: e, defaultRange: t, defaultSelected: n, disabled: r, duration: i, calendar: a = !0, ranges: o = ce, CalendarProps: s, Slots: l, api: d, onChange: f }) {
112
123
  let m = L(), h = I({ onChange: f }), g = R(l), [_] = u(() => z({
113
124
  ranges: o,
114
125
  disabled: r,
@@ -187,7 +198,10 @@ var H = n(({ value: e, delay: t }) => {
187
198
  //#endregion
188
199
  //#region src/package/rangeflow/hooks/use-days-in-range.ts
189
200
  function W(e) {
190
- return c(() => d(e.to).diff(d(e.from), "day"), [e.from, e.to]);
201
+ return c(() => {
202
+ let { start: t, end: n } = N(e);
203
+ return Math.max(n.diff(t, "day") + 1, 1);
204
+ }, [e.from, e.to]);
191
205
  }
192
206
  //#endregion
193
207
  //#region src/package/rangeflow/hooks/use-rangeflow-slots.ts
@@ -201,18 +215,18 @@ function K(e) {
201
215
  }
202
216
  //#endregion
203
217
  //#region src/package/rangeflow/components/DateSlider/DateLabelsTrack.tsx
204
- function le(e) {
218
+ function ue(e) {
205
219
  return e > 120 ? "MMM YYYY" : e > 7 ? "MMM DD" : "ddd DD";
206
220
  }
207
- function ue(e) {
221
+ function de(e) {
208
222
  return e > 120 ? 8 : e > 30 ? 10 : e > 7 ? 8 : Math.min(e + 1, 8);
209
223
  }
210
- var de = n(() => {
224
+ var fe = n(() => {
211
225
  let e = K((e) => e.range), n = W(e), { DateLabelsTrack: r } = G(), i = c(() => {
212
- let t = le(n), r = ue(n), i = d(e.from), a = d(e.to).diff(i);
226
+ let t = ue(n), r = Math.max(de(n), 1), { start: i, end: a } = N(e), o = a.diff(i), s = Math.max(r - 1, 1);
213
227
  return Array.from({ length: r }, (e, n) => {
214
- let o = n / (r - 1);
215
- return i.add(a * o, "ms").format(t);
228
+ let r = n / s;
229
+ return i.add(o * r, "ms").format(t);
216
230
  });
217
231
  }, [
218
232
  e.from,
@@ -234,7 +248,7 @@ function q() {
234
248
  }
235
249
  //#endregion
236
250
  //#region src/package/rangeflow/icons/DoubleChevronLeftIcon.tsx
237
- function fe() {
251
+ function pe() {
238
252
  return /* @__PURE__ */ p("svg", {
239
253
  fill: "none",
240
254
  height: "15",
@@ -251,7 +265,7 @@ function fe() {
251
265
  }
252
266
  //#endregion
253
267
  //#region src/package/rangeflow/icons/DoubleChevronRightIcon.tsx
254
- function pe() {
268
+ function me() {
255
269
  return /* @__PURE__ */ p("svg", {
256
270
  fill: "none",
257
271
  height: "15",
@@ -268,7 +282,7 @@ function pe() {
268
282
  }
269
283
  //#endregion
270
284
  //#region src/package/rangeflow/components/DateSlider/DateTickers.tsx
271
- var me = n(() => {
285
+ var he = n(() => {
272
286
  let { DateTickers: e } = G(), n = Math.min(Math.max(70, W(K((e) => e.range))), 100);
273
287
  return e ? t(e) : /* @__PURE__ */ p("div", {
274
288
  className: "rangeflow-tickers flex items-center gap-2",
@@ -289,15 +303,15 @@ function J({ children: e, onClick: t }) {
289
303
  }
290
304
  //#endregion
291
305
  //#region src/package/rangeflow/utils/derive-selection-from-layout.ts
292
- var he = N([5, 100], [1, 100]);
293
- function ge(e, t) {
294
- let n = e[j], r = e[k], i = e[A], a = d(t.from).startOf("day"), o = d(t.to).startOf("day").diff(a, "day"), s = he(n), c = r + (n - s), l = Math.round(n) <= 5 ? 1 : Math.max(Math.round(s * o / 100), 1), u = M(Math.round(c * o / 100), 0, Math.max(o - l, 0));
306
+ var ge = M([5, 100], [1, 100]);
307
+ function _e(e, t) {
308
+ let n = e[A], r = e[O], i = e[k], { start: a, end: o } = N(t), s = Math.max(o.diff(a, "day") + 1, 1), c = Number.isFinite(n) ? n : 5, l = Number.isFinite(r) ? r : 0, u = ge(c), d = l + (c - u), f = Math.round(c) <= 5 ? 1 : Math.max(Math.round(u * s / 100), 1), p = j(Math.round(d * s / 100), 0, Math.max(s - f, 0));
295
309
  return {
296
310
  size: n,
297
311
  left: r,
298
312
  right: i,
299
- from: a.add(u, "day").toDate(),
300
- to: a.add(u + l - 1, "day").toDate()
313
+ from: a.add(p, "day").toDate(),
314
+ to: a.add(p + f - 1, "day").toDate()
301
315
  };
302
316
  }
303
317
  //#endregion
@@ -310,7 +324,7 @@ function Y() {
310
324
  function X() {
311
325
  let e = Y();
312
326
  return i((t) => {
313
- let { range: n, update: r } = e.getState(), { size: i, left: a, right: o, from: s, to: c } = ge(t, n);
327
+ let { range: n, update: r } = e.getState(), { size: i, left: a, right: o, from: s, to: c } = _e(t, n);
314
328
  r({
315
329
  slider: {
316
330
  size: i,
@@ -326,34 +340,34 @@ function X() {
326
340
  }
327
341
  //#endregion
328
342
  //#region src/package/rangeflow/components/DateSlider/Slider/SliderLeftSpacer.tsx
329
- function _e() {
343
+ function ve() {
330
344
  let e = K((e) => e.slider.left), [t] = u(() => e);
331
345
  return /* @__PURE__ */ p(S, {
332
346
  className: "focus:outline-none",
333
347
  defaultSize: `${t}%`,
334
- id: k,
348
+ id: O,
335
349
  minSize: 0,
336
350
  children: "\xA0"
337
351
  });
338
352
  }
339
353
  //#endregion
340
354
  //#region src/package/rangeflow/components/DateSlider/Slider/SliderRightSpacer.tsx
341
- function ve() {
355
+ function ye() {
342
356
  let e = K((e) => e.slider.right), [t] = u(() => e);
343
357
  return /* @__PURE__ */ p(S, {
344
358
  className: "focus:outline-none",
345
359
  defaultSize: `${t}%`,
346
- id: A,
360
+ id: k,
347
361
  minSize: 0,
348
362
  children: "\xA0"
349
363
  });
350
364
  }
351
365
  //#endregion
352
366
  //#region src/package/rangeflow/components/DateSlider/SliderValue.tsx
353
- var ye = n(() => {
367
+ var be = n(() => {
354
368
  let { SliderValueLabel: e } = G(), n = K((e) => e.slider.size), r = K((e) => e.selected_date), i = c(() => {
355
- let e = d(r.to).diff(r.from, "day") + 1;
356
- return n < 10 ? `${e}D` : e === 1 ? "1 Day" : `${e} Days`;
369
+ let e = d(r.from), t = d(r.to), i = e.isValid() ? e : t, a = t.isValid() ? t : e, o = a.isValid() && i.isValid() ? a.diff(i, "day") + 1 : 1, s = Number.isFinite(o) ? Math.max(o, 1) : 1;
370
+ return n < 10 ? `${s}D` : s === 1 ? "1 Day" : `${s} Days`;
357
371
  }, [
358
372
  r.from,
359
373
  r.to,
@@ -364,26 +378,26 @@ var ye = n(() => {
364
378
  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)"),
365
379
  children: e ? t(e, { label: i }) : i
366
380
  });
367
- }), Z = N([1, 100], [5, 100]);
368
- function be({ onHandleRef: e }) {
381
+ }), Z = M([1, 100], [5, 100]);
382
+ function xe({ onHandleRef: e }) {
369
383
  let t = K((e) => e.slider.size), n = K((e) => e.duration), r = W(K((e) => e.range)), [i] = u(() => 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;
370
384
  return /* @__PURE__ */ p(S, {
371
385
  defaultSize: `${i}%`,
372
386
  elementRef: e,
373
- id: j,
387
+ id: A,
374
388
  maxSize: `${o}%`,
375
389
  minSize: `${a}%`,
376
390
  children: /* @__PURE__ */ p("div", {
377
391
  "data-track-handle-container": "",
378
392
  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"),
379
- children: /* @__PURE__ */ p(ye, {})
393
+ children: /* @__PURE__ */ p(be, {})
380
394
  })
381
395
  });
382
396
  }
383
397
  //#endregion
384
398
  //#region src/package/rangeflow/components/DateSlider/Slider/index.tsx
385
- var xe = (e, t, n) => !!e?.querySelector("[data-separator=\"active\"]") && t["slider-track-thumb"] === n["slider-track-thumb"];
386
- function Se({ onHandleRef: e }) {
399
+ var Se = (e, t, n) => !!e?.querySelector("[data-separator=\"active\"]") && t["slider-track-thumb"] === n["slider-track-thumb"];
400
+ function Ce({ onHandleRef: e }) {
387
401
  let t = X(), { slider: { root: n } } = q(), i = l(null), a = l(null), o = l(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: c } = te({
388
402
  id: "track-handle-draggable",
389
403
  sensors: [re.configure({ preventActivation: (e) => !(e.target instanceof HTMLDivElement) || !e.target.dataset.trackHandle }), ne]
@@ -394,11 +408,11 @@ function Se({ onHandleRef: e }) {
394
408
  },
395
409
  onDragMove: (e) => {
396
410
  if (!n.current || !a.current || !i.current || !i.current.clientWidth) return;
397
- 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);
411
+ let t = e.operation.transform.x / i.current.clientWidth * 100, r = a.current, o = r[O] + r[k], s = Math.min(Math.max(r[O] + t, 0), o);
398
412
  n.current.setLayout({
399
413
  ...r,
400
- [k]: s,
401
- [A]: o - s
414
+ [O]: s,
415
+ [k]: o - s
402
416
  });
403
417
  },
404
418
  onDragEnd: () => {
@@ -413,7 +427,7 @@ function Se({ onHandleRef: e }) {
413
427
  groupRef: n,
414
428
  onLayoutChange: (e) => {
415
429
  let a = o.current;
416
- if (a && xe(i.current, a, e)) {
430
+ if (a && Se(i.current, a, e)) {
417
431
  n.current?.setLayout(a);
418
432
  return;
419
433
  }
@@ -422,23 +436,23 @@ function Se({ onHandleRef: e }) {
422
436
  });
423
437
  },
424
438
  children: [
425
- /* @__PURE__ */ p(_e, {}),
439
+ /* @__PURE__ */ p(ve, {}),
426
440
  /* @__PURE__ */ p(C, { className: s }),
427
- /* @__PURE__ */ p(be, { onHandleRef: e }),
441
+ /* @__PURE__ */ p(xe, { onHandleRef: e }),
428
442
  /* @__PURE__ */ p(C, { className: s }),
429
- /* @__PURE__ */ p(ve, {})
443
+ /* @__PURE__ */ p(ye, {})
430
444
  ]
431
445
  })
432
446
  });
433
447
  }
434
448
  //#endregion
435
449
  //#region src/package/rangeflow/components/DateSlider/SliderTrack.tsx
436
- function Ce({ onHandleRef: e }) {
450
+ function we({ onHandleRef: e }) {
437
451
  let t = K((e) => e.update), n = K((e) => e.range), r = W(n), { slider: { root: i } } = q(), a = K((e) => e.disabled?.before), o = K((e) => e.disabled?.after), s = c(() => !a || d(n.from).isAfter(a), [n.from, a]), l = c(() => !o || d(n.to).isBefore(o), [n.to, o]), u = ({ left: e, right: t, size: n }) => {
438
452
  i.current?.setLayout({
439
- [k]: e,
440
- [j]: n,
441
- [A]: t
453
+ [O]: e,
454
+ [A]: n,
455
+ [k]: t
442
456
  });
443
457
  };
444
458
  return /* @__PURE__ */ m("div", {
@@ -457,11 +471,11 @@ function Ce({ onHandleRef: e }) {
457
471
  };
458
472
  });
459
473
  },
460
- children: /* @__PURE__ */ p(fe, {})
474
+ children: /* @__PURE__ */ p(pe, {})
461
475
  }) : null,
462
476
  /* @__PURE__ */ m("div", {
463
477
  className: "relative flex-1 px-2",
464
- children: [/* @__PURE__ */ p(Se, { onHandleRef: e }), /* @__PURE__ */ p(me, {})]
478
+ children: [/* @__PURE__ */ p(Ce, { onHandleRef: e }), /* @__PURE__ */ p(he, {})]
465
479
  }),
466
480
  l ? /* @__PURE__ */ p(J, {
467
481
  onClick: () => {
@@ -476,18 +490,18 @@ function Ce({ onHandleRef: e }) {
476
490
  };
477
491
  });
478
492
  },
479
- children: /* @__PURE__ */ p(pe, {})
493
+ children: /* @__PURE__ */ p(me, {})
480
494
  }) : null
481
495
  ]
482
496
  });
483
497
  }
484
498
  //#endregion
485
499
  //#region src/package/rangeflow/components/DateSlider/utils/restrict-inner-to-element.ts
486
- var we = class e extends ae {
487
- innerRect = D(null);
488
- containerRect = D(null);
500
+ var Te = class e extends ae {
501
+ innerRect = E(null);
502
+ containerRect = E(null);
489
503
  constructor(e, t) {
490
- super(e, t), this.destroy = E(() => {
504
+ super(e, t), this.destroy = T(() => {
491
505
  if (!this.options) return;
492
506
  let { dragOperation: t } = e;
493
507
  if (!t.status.initialized) return;
@@ -499,25 +513,25 @@ var we = class e extends ae {
499
513
  }
500
514
  apply({ transform: e }) {
501
515
  let t = this.innerRect.value, n = this.containerRect.value;
502
- return !t || !n ? e : g(new T(t.left, t.top, t.width, t.height), e, n);
516
+ return !t || !n ? e : g(new w(t.left, t.top, t.width, t.height), e, n);
503
517
  }
504
- static configure = w(e);
518
+ static configure = oe(e);
505
519
  };
506
520
  //#endregion
507
521
  //#region src/package/rangeflow/components/DateSlider/index.tsx
508
- function Te() {
522
+ function Ee() {
509
523
  let [e, t] = u(null), [n, r] = u(null);
510
524
  return /* @__PURE__ */ p("div", {
511
525
  ref: t,
512
526
  className: "rangeflow-slider relative my-8 h-3 w-full px-2",
513
527
  children: /* @__PURE__ */ m(_, {
514
- modifiers: [we.configure({
528
+ modifiers: [Te.configure({
515
529
  inner: n,
516
530
  container: e
517
531
  }), h],
518
532
  children: [
519
- /* @__PURE__ */ p(Ce, { onHandleRef: r }),
520
- /* @__PURE__ */ p(de, {}),
533
+ /* @__PURE__ */ p(we, { onHandleRef: r }),
534
+ /* @__PURE__ */ p(fe, {}),
521
535
  /* @__PURE__ */ p(v, { children: null })
522
536
  ]
523
537
  })
@@ -525,7 +539,7 @@ function Te() {
525
539
  }
526
540
  //#endregion
527
541
  //#region src/package/rangeflow/components/RangeTabs/hooks/use-apply-slider-layout.ts
528
- function Ee() {
542
+ function De() {
529
543
  let e = X(), t = K((e) => e.range.from.getTime()), n = K((e) => e.range.to.getTime()), { slider: { root: i } } = q();
530
544
  o(() => {
531
545
  r(() => {
@@ -540,7 +554,7 @@ function Ee() {
540
554
  }
541
555
  //#endregion
542
556
  //#region src/package/rangeflow/components/RangeTabs/hooks/use-tab-indicator.ts
543
- function De(e, t) {
557
+ function Oe(e, t) {
544
558
  let n = l([]), r = l(null), i = l(!1);
545
559
  return s(() => {
546
560
  let t = r.current;
@@ -566,15 +580,15 @@ function De(e, t) {
566
580
  }
567
581
  //#endregion
568
582
  //#region src/package/rangeflow/components/RangeTabs/index.tsx
569
- function Oe() {
570
- Ee();
583
+ function ke() {
584
+ De();
571
585
  let { slider: { root: e } } = q(), t = K((e) => e.ranges), n = K((e) => e.update), r = K((e) => e.range.from), i = K((e) => e.range.to), a = K((e) => e.disabled?.before), o = K((e) => e.disabled?.after), s = (t) => {
572
586
  n((n) => {
573
587
  let r = P(t, n.selected_date);
574
588
  return e.current?.setLayout({
575
- [k]: r.left,
576
- [j]: r.size,
577
- [A]: r.right
589
+ [O]: r.left,
590
+ [A]: r.size,
591
+ [k]: r.right
578
592
  }), { range: {
579
593
  from: t.from,
580
594
  to: t.to
@@ -588,7 +602,7 @@ function Oe() {
588
602
  l,
589
603
  r,
590
604
  i
591
- ]), { indicatorRef: f, registerButton: h } = De(u, l);
605
+ ]), { indicatorRef: f, registerButton: h } = Oe(u, l);
592
606
  return /* @__PURE__ */ p("div", {
593
607
  className: "rangeflow-tabs flex items-center justify-center select-none",
594
608
  children: /* @__PURE__ */ m("div", {
@@ -613,7 +627,7 @@ function Oe() {
613
627
  }
614
628
  //#endregion
615
629
  //#region src/package/rangeflow/components/Calendar/CalendarDayButton.tsx
616
- function ke({ className: e, day: t, modifiers: n, ...r }) {
630
+ function Ae({ className: e, day: t, modifiers: n, ...r }) {
617
631
  let i = l(null);
618
632
  o(() => {
619
633
  n.focused && i.current?.focus();
@@ -632,16 +646,16 @@ function ke({ className: e, day: t, modifiers: n, ...r }) {
632
646
  }
633
647
  //#endregion
634
648
  //#region src/package/rangeflow/components/Calendar/Chevron.tsx
635
- var Ae = {
649
+ var je = {
636
650
  up: "rotate-180",
637
651
  down: "",
638
652
  left: "rotate-90",
639
653
  right: "-rotate-90"
640
654
  };
641
- function je({ className: e, orientation: t = "down", size: n = 16 }) {
655
+ function Me({ className: e, orientation: t = "down", size: n = 16 }) {
642
656
  return /* @__PURE__ */ p("svg", {
643
657
  "aria-hidden": "true",
644
- className: y("shrink-0", Ae[t], e),
658
+ className: y("shrink-0", je[t], e),
645
659
  fill: "none",
646
660
  height: n,
647
661
  stroke: "currentColor",
@@ -655,8 +669,8 @@ function je({ className: e, orientation: t = "down", size: n = 16 }) {
655
669
  }
656
670
  //#endregion
657
671
  //#region src/package/rangeflow/components/Calendar/index.tsx
658
- function Me({ captionLayout: e = "label", className: t, classNames: n, components: r, showOutsideDays: i = !0, ...a }) {
659
- return /* @__PURE__ */ p(oe, {
672
+ function Ne({ captionLayout: e = "label", className: t, classNames: n, components: r, showOutsideDays: i = !0, ...a }) {
673
+ return /* @__PURE__ */ p(se, {
660
674
  captionLayout: e,
661
675
  className: y("rangeflow-calendar w-fit p-3 select-none", t),
662
676
  showOutsideDays: i,
@@ -687,8 +701,8 @@ function Me({ captionLayout: e = "label", className: t, classNames: n, component
687
701
  ...n
688
702
  },
689
703
  components: {
690
- DayButton: ke,
691
- Chevron: je,
704
+ DayButton: Ae,
705
+ Chevron: Me,
692
706
  ...r
693
707
  },
694
708
  ...a
@@ -696,43 +710,42 @@ function Me({ captionLayout: e = "label", className: t, classNames: n, component
696
710
  }
697
711
  //#endregion
698
712
  //#region src/package/rangeflow/components/Popover/index.tsx
699
- var Ne = n(({ align: e = "center", className: t, sideOffset: n = 6, children: r, ...i }) => /* @__PURE__ */ p(O.Portal, { children: /* @__PURE__ */ p(O.Content, {
713
+ var Pe = n(({ align: e = "center", className: t, sideOffset: n = 6, children: r, ...i }) => /* @__PURE__ */ p(D.Portal, { children: /* @__PURE__ */ p(D.Content, {
700
714
  align: e,
701
715
  sideOffset: n,
702
716
  ...i,
703
717
  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),
704
718
  children: r
705
- }) })), Pe = O.Root, Fe = O.Trigger;
719
+ }) })), Fe = D.Root, Q = D.Trigger;
706
720
  //#endregion
707
721
  //#region src/package/rangeflow/components/PickerBar/CalendarPopover.tsx
708
- function Q({ children: e }) {
722
+ function Ie({ children: e }) {
709
723
  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 } } = q(), c = () => {
710
- let e = d(n.from), t = d(n.to);
711
- return d(r.from).isBefore(e) && (e = d(r.from).subtract(10, "day")), d(r.to).isAfter(t) && (t = d(r.to).add(10, "day")), {
712
- from: e.toDate(),
713
- to: t.toDate()
724
+ let e = d(n.from), t = d(n.to), i = d(r.from), a = d(r.to), o = e.isValid() ? e : d(), s = t.isValid() ? t : o;
725
+ return s.isBefore(o) && (s = o), i.isValid() && i.isBefore(o) && (o = i.subtract(10, "day")), a.isValid() && a.isAfter(s) && (s = a.add(10, "day")), s.isBefore(o) && (s = o.add(1, "day")), {
726
+ from: o.toDate(),
727
+ to: s.toDate()
714
728
  };
715
729
  }, l = () => {
716
730
  let e = c(), { size: n, left: i, right: a } = P(e, r);
717
731
  s.current?.setLayout({
718
- [k]: i,
719
- [j]: n,
720
- [A]: a
732
+ [O]: i,
733
+ [A]: n,
734
+ [k]: a
721
735
  }), t({ range: e });
722
736
  };
723
- return /* @__PURE__ */ m(Pe, {
724
- modal: !0,
737
+ return /* @__PURE__ */ m(Fe, {
725
738
  onOpenChange: (e) => {
726
739
  e === !1 && l();
727
740
  },
728
- children: [/* @__PURE__ */ p(Fe, {
741
+ children: [/* @__PURE__ */ p(Q, {
729
742
  className: "cursor-pointer",
730
743
  children: e
731
- }), /* @__PURE__ */ p(Ne, {
744
+ }), /* @__PURE__ */ p(Pe, {
732
745
  align: "start",
733
746
  sideOffset: 10,
734
- children: /* @__PURE__ */ p(Me, {
735
- defaultMonth: r.from,
747
+ children: /* @__PURE__ */ p(Ne, {
748
+ defaultMonth: d(r.from).isValid() ? r.from : void 0,
736
749
  numberOfMonths: 2,
737
750
  showOutsideDays: !1,
738
751
  ...o,
@@ -742,9 +755,11 @@ function Q({ children: e }) {
742
755
  mode: "range",
743
756
  selected: r,
744
757
  onSelect: (e) => {
745
- !e?.from || !e?.to || t({ selected_date: {
746
- from: d(e.from).startOf("day").toDate(),
747
- to: d(e.to).startOf("day").toDate()
758
+ if (!e?.from || !e?.to) return;
759
+ let n = d(e.from).startOf("day"), r = d(e.to).startOf("day");
760
+ !n.isValid() || !r.isValid() || t({ selected_date: {
761
+ from: n.toDate(),
762
+ to: r.toDate()
748
763
  } });
749
764
  }
750
765
  })
@@ -753,7 +768,7 @@ function Q({ children: e }) {
753
768
  }
754
769
  //#endregion
755
770
  //#region src/package/rangeflow/icons/CalendarIcon.tsx
756
- function Ie() {
771
+ function Le() {
757
772
  return /* @__PURE__ */ p("svg", {
758
773
  fill: "none",
759
774
  height: "15",
@@ -773,10 +788,10 @@ function Ie() {
773
788
  function $() {
774
789
  let e = K((e) => e.selected_date), { SelectedDate: n } = G(), { from: r, to: i } = c(() => {
775
790
  let t = d(), n = d(e.from), r = d(e.to), i = n.isSame(r, "year") ? "DD MMM" : "DD MMM YYYY", a = {
776
- from: n.format(i),
777
- to: r.format(i)
791
+ from: n.isValid() ? n.format(i) : "Invalid Date",
792
+ to: r.isValid() ? r.format(i) : "Invalid Date"
778
793
  };
779
- return t.isSame(n, "day") && (a.from = "Today"), t.isSame(r, "day") && (a.to = "Today"), a;
794
+ return n.isValid() && t.isSame(n, "day") && (a.from = "Today"), r.isValid() && t.isSame(r, "day") && (a.to = "Today"), a;
780
795
  }, [e.from, e.to]);
781
796
  return n ? t(n, {
782
797
  from: r,
@@ -784,7 +799,7 @@ function $() {
784
799
  }) : /* @__PURE__ */ m("div", {
785
800
  className: "rangeflow-selected-date flex items-center gap-2 text-xs font-medium text-(--rangeflow-accent-text) select-none hover:opacity-90",
786
801
  children: [
787
- /* @__PURE__ */ p(Ie, {}),
802
+ /* @__PURE__ */ p(Le, {}),
788
803
  r,
789
804
  /* @__PURE__ */ p("span", {
790
805
  className: "text-(--rangeflow-text-faint)",
@@ -796,51 +811,51 @@ function $() {
796
811
  }
797
812
  //#endregion
798
813
  //#region src/package/rangeflow/components/PickerBar/index.tsx
799
- function Le() {
814
+ function Re() {
800
815
  let e = K((e) => e.calendar), { RangeTabs: n } = G();
801
816
  return /* @__PURE__ */ m("div", {
802
817
  className: "flex h-full items-center justify-between px-2",
803
- children: [e ? /* @__PURE__ */ p(Q, { children: /* @__PURE__ */ p($, {}) }) : /* @__PURE__ */ p($, {}), n ? t(n) : /* @__PURE__ */ p(Oe, {})]
818
+ children: [e ? /* @__PURE__ */ p(Ie, { children: /* @__PURE__ */ p($, {}) }) : /* @__PURE__ */ p($, {}), n ? t(n) : /* @__PURE__ */ p(ke, {})]
804
819
  });
805
820
  }
806
821
  //#endregion
807
822
  //#region src/package/rangeflow/hooks/use-rangeflow-events.ts
808
- function Re() {
823
+ function ze() {
809
824
  return a(B).events;
810
825
  }
811
826
  //#endregion
812
827
  //#region src/package/rangeflow/hooks/use-emit-date-change.ts
813
- function ze() {
814
- let e = Y(), { onChange: t } = Re();
828
+ function Be() {
829
+ let e = Y(), { onChange: t } = ze();
815
830
  o(() => e.subscribe((e, n) => {
816
831
  e.selected_date !== n.selected_date && t(e.selected_date);
817
832
  }), [e, t]);
818
833
  }
819
834
  //#endregion
820
835
  //#region src/package/rangeflow/Root.tsx
821
- function Be() {
822
- return ze(), /* @__PURE__ */ m("div", {
836
+ function Ve() {
837
+ return Be(), /* @__PURE__ */ m("div", {
823
838
  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)",
824
839
  children: [/* @__PURE__ */ p("div", {
825
840
  className: "rangeflow-header h-10 border-b border-(--rangeflow-border) p-2",
826
- children: /* @__PURE__ */ p(Le, {})
841
+ children: /* @__PURE__ */ p(Re, {})
827
842
  }), /* @__PURE__ */ p("div", {
828
843
  className: "rangeflow-body mx-2",
829
- children: /* @__PURE__ */ p(Te, {})
844
+ children: /* @__PURE__ */ p(Ee, {})
830
845
  })]
831
846
  });
832
847
  }
833
848
  //#endregion
834
849
  //#region src/package/rangeflow/RangeFlow.tsx
835
- function Ve(e) {
850
+ function He(e) {
836
851
  return /* @__PURE__ */ p(V, {
837
852
  ...e,
838
- children: /* @__PURE__ */ p(Be, {})
853
+ children: /* @__PURE__ */ p(Ve, {})
839
854
  });
840
855
  }
841
856
  //#endregion
842
857
  //#region src/package/rangeflow/hooks/use-rangeflow.ts
843
- function He() {
858
+ function Ue() {
844
859
  let e = l(null), t = l(null), n = i((n) => {
845
860
  let r = e.current;
846
861
  if (!r) return;
@@ -856,18 +871,18 @@ function He() {
856
871
  right: c
857
872
  }
858
873
  }), t.current?.slider.root.current?.setLayout({
859
- [k]: s,
860
- [j]: o,
861
- [A]: c
874
+ [O]: s,
875
+ [A]: o,
876
+ [k]: c
862
877
  });
863
878
  }, []), r = i((n) => {
864
879
  let r = e.current;
865
880
  if (!r) return;
866
881
  let { range: i } = r.getState(), { size: a, left: o, right: s } = P(i, n);
867
882
  t.current?.slider.root.current?.setLayout({
868
- [k]: o,
869
- [j]: a,
870
- [A]: s
883
+ [O]: o,
884
+ [A]: a,
885
+ [k]: s
871
886
  });
872
887
  }, []);
873
888
  return {
@@ -880,4 +895,4 @@ function He() {
880
895
  };
881
896
  }
882
897
  //#endregion
883
- export { Ve as RangeFlow, He as useRangeFlow };
898
+ export { He as RangeFlow, Ue as useRangeFlow };
package/dist/style.css CHANGED
@@ -1,3 +1,3 @@
1
- /*! tailwindcss v4.2.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-normal:400;--font-weight-medium:500;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-tight:-.025em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent:#16433c;--rangeflow-surface:#fff;--rangeflow-foreground:#0a0f0c;--rangeflow-on-accent:oklch(from var(--rangeflow-accent) clamp(0, (.62 - l) * 100, 1) 0 0);--rangeflow-bg:var(--rangeflow-surface);--rangeflow-border:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-border:color-mix(in oklab, var(--rangeflow-accent) 22%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-border-strong:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-border-strong:color-mix(in oklab, var(--rangeflow-accent) 45%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-shadow-color:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-shadow-color:color-mix(in oklab, var(--rangeflow-foreground) 10%, transparent)}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text:color-mix(in oklab, var(--rangeflow-foreground) 92%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-muted:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-muted:color-mix(in oklab, var(--rangeflow-foreground) 65%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-subtle:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-subtle:color-mix(in oklab, var(--rangeflow-foreground) 50%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-faint:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-faint:color-mix(in oklab, var(--rangeflow-foreground) 35%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-disabled:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-disabled:color-mix(in oklab, var(--rangeflow-foreground) 20%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-hover-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-hover-bg:color-mix(in oklab, var(--rangeflow-accent) 12%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-range-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-range-bg:color-mix(in oklab, var(--rangeflow-accent) 20%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-active-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-active-bg:color-mix(in oklab, var(--rangeflow-accent) 32%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-solid:var(--rangeflow-accent);--rangeflow-accent-solid-hover:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-solid-hover:color-mix(in oklab, var(--rangeflow-accent), var(--rangeflow-foreground) 12%)}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-contrast:var(--rangeflow-on-accent);--rangeflow-accent-text:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-text:color-mix(in oklab, var(--rangeflow-accent) 55%, var(--rangeflow-foreground))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-ring:var(--rangeflow-accent);--rangeflow-separator:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-separator:color-mix(in oklab, var(--rangeflow-accent) 65%, transparent)}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-separator-active:var(--rangeflow-accent);--rangeflow-ticker:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-ticker:color-mix(in oklab, var(--rangeflow-accent) 40%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-today:var(--rangeflow-accent-text)}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-surface:#0a0f0c;--rangeflow-foreground:#fff;--rangeflow-border:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-border:color-mix(in oklab, var(--rangeflow-accent) 30%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 14%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-border-strong:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-border-strong:color-mix(in oklab, var(--rangeflow-accent) 55%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 22%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-hover-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-hover-bg:color-mix(in oklab, var(--rangeflow-accent) 22%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 10%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-range-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-range-bg:color-mix(in oklab, var(--rangeflow-accent) 32%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 14%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-active-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-active-bg:color-mix(in oklab, var(--rangeflow-accent) 45%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 20%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-ticker:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-ticker:color-mix(in oklab, var(--rangeflow-accent) 55%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 28%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator:color-mix(in oklab, var(--rangeflow-accent) 55%, var(--rangeflow-foreground))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator-active:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator-active:color-mix(in oklab, var(--rangeflow-accent) 35%, var(--rangeflow-foreground))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-solid-hover:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-solid-hover:color-mix(in oklab, var(--rangeflow-accent), var(--rangeflow-foreground) 18%)}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-text:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-text:color-mix(in oklab, var(--rangeflow-accent) 45%, var(--rangeflow-foreground))}}}@layer base{.rangeflow-date-picker,.rangeflow-date-picker-portal{font-family:var(--rangeflow-font,ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rangeflow-date-picker,.rangeflow-date-picker *,.rangeflow-date-picker-portal,.rangeflow-date-picker-portal *{box-sizing:border-box}.rangeflow-date-picker button,.rangeflow-date-picker-portal button,.rangeflow-date-picker select,.rangeflow-date-picker-portal select{font:inherit;color:inherit;line-height:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.rangeflow-date-picker select,.rangeflow-date-picker-portal select{appearance:none}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-10{top:calc(var(--spacing) * 10)}.top-\[50\%\]{top:50%}.left-0{left:calc(var(--spacing) * 0)}.z-1{z-index:1}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-\[clamp\(0\.5rem\,5vw\,5\%\)\]{margin-inline:clamp(.5rem,5vw,5%)}.my-8{margin-block:calc(var(--spacing) * 8)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-3{height:calc(var(--spacing) * 3)}.h-3\/4{height:75%}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-35{height:calc(var(--spacing) * 35)}.h-full{height:100%}.w-0\.5{width:calc(var(--spacing) * .5)}.w-0\.75{width:calc(var(--spacing) * .75)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-140{width:calc(var(--spacing) * 140)}.w-fit{width:fit-content}.w-full{width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-\[50\%\]{--tw-translate-y:calc(50% * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-l-sm{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.rounded-r-sm{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\(--rangeflow-border\){border-color:var(--rangeflow-border)}.border-\(--rangeflow-border-strong\){border-color:var(--rangeflow-border-strong)}.bg-\(--rangeflow-active-bg\){background-color:var(--rangeflow-active-bg)}.bg-\(--rangeflow-bg\){background-color:var(--rangeflow-bg)}.bg-\(--rangeflow-range-bg\){background-color:var(--rangeflow-range-bg)}.bg-\(--rangeflow-separator\){background-color:var(--rangeflow-separator)}.bg-\(--rangeflow-ticker\){background-color:var(--rangeflow-ticker)}.p-0{padding:calc(var(--spacing) * 0)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.text-center{text-align:center}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.7rem\]{font-size:.7rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.text-nowrap{text-wrap:nowrap}.text-\(--rangeflow-accent-text\){color:var(--rangeflow-accent-text)}.text-\(--rangeflow-text\){color:var(--rangeflow-text)}.text-\(--rangeflow-text-disabled\){color:var(--rangeflow-text-disabled)}.text-\(--rangeflow-text-faint\){color:var(--rangeflow-text-faint)}.text-\(--rangeflow-text-muted\){color:var(--rangeflow-text-muted)}.text-\(--rangeflow-text-subtle\){color:var(--rangeflow-text-subtle)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.inset-shadow-sm{--tw-inset-shadow:inset 0 2px 4px var(--tw-inset-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\(color\:--rangeflow-shadow-color\){--tw-shadow-color:var(--rangeflow-shadow-color)}@supports (color:color-mix(in lab, red, red)){.shadow-\(color\:--rangeflow-shadow-color\){--tw-shadow-color:color-mix(in oklab, var(--rangeflow-shadow-color) var(--tw-shadow-alpha), transparent)}}.backdrop-blur-\[2\.5px\]{--tw-backdrop-blur:blur(2.5px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[10px\]{--tw-backdrop-blur:blur(10px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-\[background-color\,opacity\]{transition-property:background-color,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-\[cubic-bezier\(0\.32\,0\.72\,0\,1\)\]{--tw-ease:cubic-bezier(.32,.72,0,1);transition-timing-function:cubic-bezier(.32,.72,0,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-has-\[\[data-track-handle-container\]\:hover\]\:opacity-100:is(:where(.group):has([data-track-handle-container]:hover) *){opacity:1}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:bg-\(--rangeflow-hover-bg\):hover{background-color:var(--rangeflow-hover-bg)}.hover\:bg-\(--rangeflow-separator-active\):hover{background-color:var(--rangeflow-separator-active)}.hover\:text-\(--rangeflow-text-muted\):hover{color:var(--rangeflow-text-muted)}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\(--rangeflow-ring\):focus-visible{--tw-ring-color:var(--rangeflow-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.has-\[\:focus\]\:ring-1:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\:focus\]\:ring-\(--rangeflow-ring\):has(:focus){--tw-ring-color:var(--rangeflow-ring)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-40[aria-disabled=true]{opacity:.4}.data-\[range-end\=true\]\:bg-\(--rangeflow-accent-solid\)[data-range-end=true]{background-color:var(--rangeflow-accent-solid)}.data-\[range-end\=true\]\:text-\(--rangeflow-accent-contrast\)[data-range-end=true]{color:var(--rangeflow-accent-contrast)}.data-\[range-start\=true\]\:bg-\(--rangeflow-accent-solid\)[data-range-start=true]{background-color:var(--rangeflow-accent-solid)}.data-\[range-start\=true\]\:text-\(--rangeflow-accent-contrast\)[data-range-start=true]{color:var(--rangeflow-accent-contrast)}.data-\[selected\=true\]\:bg-\(--rangeflow-accent-solid\)[data-selected=true]{background-color:var(--rangeflow-accent-solid)}.data-\[selected\=true\]\:text-\(--rangeflow-accent-contrast\)[data-selected=true]{color:var(--rangeflow-accent-contrast)}@media (hover:hover){.data-\[selected\=true\]\:hover\:bg-\(--rangeflow-accent-solid-hover\)[data-selected=true]:hover{background-color:var(--rangeflow-accent-solid-hover)}}.data-\[separator\=active\]\:bg-\(--rangeflow-separator-active\)[data-separator=active]{background-color:var(--rangeflow-separator-active)}.data-\[separator\=active\]\:opacity-100[data-separator=active],.data-\[separator\=focus\]\:opacity-100[data-separator=focus]{opacity:1}.data-\[today\=true\]\:font-bold[data-today=true]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.data-\[today\=true\]\:text-\(--rangeflow-today\)[data-today=true]{color:var(--rangeflow-today)}@media (width>=48rem){.md\:flex-row{flex-direction:row}}}@keyframes rangeflow-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rangeflow-odometer-enter{0%{filter:blur(6px);opacity:0;transform:translateY(110%)}to{filter:blur();opacity:1;transform:translateY(0)}}@keyframes rangeflow-odometer-exit{0%{filter:blur();opacity:1;transform:translateY(0)}to{filter:blur(6px);opacity:0;transform:translateY(-110%)}}.rangeflow-popover[data-state=open]{transform-origin:var(--radix-popover-content-transform-origin);animation:.22s cubic-bezier(.16,1,.3,1) rangeflow-popover-in}.rangeflow-odometer-enter{animation:.45s cubic-bezier(.32,.72,0,1) both rangeflow-odometer-enter}.rangeflow-odometer-exit{animation:.45s cubic-bezier(.32,.72,0,1) both rangeflow-odometer-exit}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
1
+ /*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-normal:400;--font-weight-medium:500;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-tight:-.025em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent:#16433c;--rangeflow-surface:#fff;--rangeflow-foreground:#0a0f0c;--rangeflow-on-accent:oklch(from var(--rangeflow-accent) clamp(0, (.62 - l) * 100, 1) 0 0);--rangeflow-bg:var(--rangeflow-surface);--rangeflow-border:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-border:color-mix(in oklab, var(--rangeflow-accent) 22%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-border-strong:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-border-strong:color-mix(in oklab, var(--rangeflow-accent) 45%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-shadow-color:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-shadow-color:color-mix(in oklab, var(--rangeflow-foreground) 10%, transparent)}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text:color-mix(in oklab, var(--rangeflow-foreground) 92%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-muted:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-muted:color-mix(in oklab, var(--rangeflow-foreground) 65%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-subtle:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-subtle:color-mix(in oklab, var(--rangeflow-foreground) 50%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-faint:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-faint:color-mix(in oklab, var(--rangeflow-foreground) 35%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-disabled:var(--rangeflow-foreground)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-text-disabled:color-mix(in oklab, var(--rangeflow-foreground) 20%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-hover-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-hover-bg:color-mix(in oklab, var(--rangeflow-accent) 12%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-range-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-range-bg:color-mix(in oklab, var(--rangeflow-accent) 20%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-active-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-active-bg:color-mix(in oklab, var(--rangeflow-accent) 32%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-solid:var(--rangeflow-accent);--rangeflow-accent-solid-hover:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-solid-hover:color-mix(in oklab, var(--rangeflow-accent), var(--rangeflow-foreground) 12%)}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-contrast:var(--rangeflow-on-accent);--rangeflow-accent-text:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-accent-text:color-mix(in oklab, var(--rangeflow-accent) 55%, var(--rangeflow-foreground))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-ring:var(--rangeflow-accent);--rangeflow-separator:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-separator:color-mix(in oklab, var(--rangeflow-accent) 65%, transparent)}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-separator-active:var(--rangeflow-accent);--rangeflow-ticker:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-ticker:color-mix(in oklab, var(--rangeflow-accent) 40%, var(--rangeflow-surface))}}.rangeflow-date-picker,.rangeflow-date-picker-portal{--rangeflow-today:var(--rangeflow-accent-text)}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-surface:#0a0f0c;--rangeflow-foreground:#fff;--rangeflow-border:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-border:color-mix(in oklab, var(--rangeflow-accent) 30%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 14%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-border-strong:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-border-strong:color-mix(in oklab, var(--rangeflow-accent) 55%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 22%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-hover-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-hover-bg:color-mix(in oklab, var(--rangeflow-accent) 22%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 10%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-range-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-range-bg:color-mix(in oklab, var(--rangeflow-accent) 32%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 14%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-active-bg:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-active-bg:color-mix(in oklab, var(--rangeflow-accent) 45%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 20%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-ticker:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-ticker:color-mix(in oklab, var(--rangeflow-accent) 55%, color-mix(in oklab, var(--rangeflow-surface), var(--rangeflow-foreground) 28%))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator:color-mix(in oklab, var(--rangeflow-accent) 55%, var(--rangeflow-foreground))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator-active:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-separator-active:color-mix(in oklab, var(--rangeflow-accent) 35%, var(--rangeflow-foreground))}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-solid-hover:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-solid-hover:color-mix(in oklab, var(--rangeflow-accent), var(--rangeflow-foreground) 18%)}}.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-text:var(--rangeflow-accent)}@supports (color:color-mix(in lab, red, red)){.rangeflow-date-picker.dark,.rangeflow-date-picker[data-theme=dark],.dark .rangeflow-date-picker,[data-theme=dark] .rangeflow-date-picker,.rangeflow-date-picker-portal.dark,.rangeflow-date-picker-portal[data-theme=dark],.dark .rangeflow-date-picker-portal,[data-theme=dark] .rangeflow-date-picker-portal{--rangeflow-accent-text:color-mix(in oklab, var(--rangeflow-accent) 45%, var(--rangeflow-foreground))}}}@layer base{.rangeflow-date-picker,.rangeflow-date-picker-portal{font-family:var(--rangeflow-font,ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rangeflow-date-picker,.rangeflow-date-picker *,.rangeflow-date-picker-portal,.rangeflow-date-picker-portal *{box-sizing:border-box}.rangeflow-date-picker button,.rangeflow-date-picker-portal button,.rangeflow-date-picker select,.rangeflow-date-picker-portal select{font:inherit;color:inherit;line-height:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.rangeflow-date-picker select,.rangeflow-date-picker-portal select{appearance:none}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.top-0{top:0}.top-10{top:calc(var(--spacing) * 10)}.top-\[50\%\]{top:50%}.left-0{left:0}.isolate{isolation:isolate}.z-1{z-index:1}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-\[clamp\(0\.5rem\,5vw\,5\%\)\]{margin-inline:clamp(.5rem,5vw,5%)}.my-8{margin-block:calc(var(--spacing) * 8)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.hidden\!{display:none!important}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-3{height:calc(var(--spacing) * 3)}.h-3\/4{height:75%}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-35{height:calc(var(--spacing) * 35)}.h-full{height:100%}.w-0\.5{width:calc(var(--spacing) * .5)}.w-0\.75{width:calc(var(--spacing) * .75)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-140{width:calc(var(--spacing) * 140)}.w-fit{width:fit-content}.w-full{width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-\[50\%\]{--tw-translate-y:calc(50% * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)!important}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-l-sm{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.rounded-r-sm{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\(--rangeflow-border\){border-color:var(--rangeflow-border)}.border-\(--rangeflow-border-strong\){border-color:var(--rangeflow-border-strong)}.bg-\(--rangeflow-active-bg\){background-color:var(--rangeflow-active-bg)}.bg-\(--rangeflow-bg\){background-color:var(--rangeflow-bg)}.bg-\(--rangeflow-range-bg\){background-color:var(--rangeflow-range-bg)}.bg-\(--rangeflow-separator\){background-color:var(--rangeflow-separator)}.bg-\(--rangeflow-ticker\){background-color:var(--rangeflow-ticker)}.p-0{padding:0}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.text-center{text-align:center}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.7rem\]{font-size:.7rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.text-nowrap{text-wrap:nowrap}.text-\(--rangeflow-accent-text\){color:var(--rangeflow-accent-text)}.text-\(--rangeflow-text\){color:var(--rangeflow-text)}.text-\(--rangeflow-text-disabled\){color:var(--rangeflow-text-disabled)}.text-\(--rangeflow-text-faint\){color:var(--rangeflow-text-faint)}.text-\(--rangeflow-text-muted\){color:var(--rangeflow-text-muted)}.text-\(--rangeflow-text-subtle\){color:var(--rangeflow-text-subtle)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.inset-shadow-sm{--tw-inset-shadow:inset 0 2px 4px var(--tw-inset-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\(color\:--rangeflow-shadow-color\){--tw-shadow-color:var(--rangeflow-shadow-color)}@supports (color:color-mix(in lab, red, red)){.shadow-\(color\:--rangeflow-shadow-color\){--tw-shadow-color:color-mix(in oklab, var(--rangeflow-shadow-color) var(--tw-shadow-alpha), transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.backdrop-blur-\[2\.5px\]{--tw-backdrop-blur:blur(2.5px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[10px\]{--tw-backdrop-blur:blur(10px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,opacity\]{transition-property:background-color,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-\[cubic-bezier\(0\.32\,0\.72\,0\,1\)\]{--tw-ease:cubic-bezier(.32,.72,0,1);transition-timing-function:cubic-bezier(.32,.72,0,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-has-\[\[data-track-handle-container\]\:hover\]\:opacity-100:is(:where(.group):has([data-track-handle-container]:hover) *){opacity:1}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:bg-\(--rangeflow-hover-bg\):hover{background-color:var(--rangeflow-hover-bg)}.hover\:bg-\(--rangeflow-separator-active\):hover{background-color:var(--rangeflow-separator-active)}.hover\:text-\(--rangeflow-text-muted\):hover{color:var(--rangeflow-text-muted)}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\(--rangeflow-ring\):focus-visible{--tw-ring-color:var(--rangeflow-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.has-\[\:focus\]\:ring-1:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\:focus\]\:ring-\(--rangeflow-ring\):has(:focus){--tw-ring-color:var(--rangeflow-ring)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-40[aria-disabled=true]{opacity:.4}.data-\[range-end\=true\]\:bg-\(--rangeflow-accent-solid\)[data-range-end=true]{background-color:var(--rangeflow-accent-solid)}.data-\[range-end\=true\]\:text-\(--rangeflow-accent-contrast\)[data-range-end=true]{color:var(--rangeflow-accent-contrast)}.data-\[range-start\=true\]\:bg-\(--rangeflow-accent-solid\)[data-range-start=true]{background-color:var(--rangeflow-accent-solid)}.data-\[range-start\=true\]\:text-\(--rangeflow-accent-contrast\)[data-range-start=true]{color:var(--rangeflow-accent-contrast)}.data-\[selected\=true\]\:bg-\(--rangeflow-accent-solid\)[data-selected=true]{background-color:var(--rangeflow-accent-solid)}.data-\[selected\=true\]\:text-\(--rangeflow-accent-contrast\)[data-selected=true]{color:var(--rangeflow-accent-contrast)}@media (hover:hover){.data-\[selected\=true\]\:hover\:bg-\(--rangeflow-accent-solid-hover\)[data-selected=true]:hover{background-color:var(--rangeflow-accent-solid-hover)}}.data-\[separator\=active\]\:bg-\(--rangeflow-separator-active\)[data-separator=active]{background-color:var(--rangeflow-separator-active)}.data-\[separator\=active\]\:opacity-100[data-separator=active],.data-\[separator\=focus\]\:opacity-100[data-separator=focus]{opacity:1}.data-\[today\=true\]\:font-bold[data-today=true]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.data-\[today\=true\]\:text-\(--rangeflow-today\)[data-today=true]{color:var(--rangeflow-today)}@media (width>=48rem){.md\:flex-row{flex-direction:row}}}@keyframes rangeflow-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rangeflow-odometer-enter{0%{filter:blur(6px);opacity:0;transform:translateY(110%)}to{filter:blur();opacity:1;transform:translateY(0)}}@keyframes rangeflow-odometer-exit{0%{filter:blur();opacity:1;transform:translateY(0)}to{filter:blur(6px);opacity:0;transform:translateY(-110%)}}.rangeflow-popover[data-state=open]{transform-origin:var(--radix-popover-content-transform-origin);animation:.22s cubic-bezier(.16,1,.3,1) rangeflow-popover-in}.rangeflow-odometer-enter{animation:.45s cubic-bezier(.32,.72,0,1) both rangeflow-odometer-enter}.rangeflow-odometer-exit{animation:.45s cubic-bezier(.32,.72,0,1) both rangeflow-odometer-exit}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
3
3
  /*$vite$:1*/
@@ -0,0 +1,6 @@
1
+ import { default as dayjs } from 'dayjs';
2
+ import { DateRange } from '../types';
3
+ export declare function normalizeDateRange(range: DateRange): {
4
+ start: dayjs.Dayjs;
5
+ end: dayjs.Dayjs;
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rangeflow",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "type": "module",
5
5
  "description": "A fancy date range picker built with React and Tailwind.",
6
6
  "license": "MIT",
@@ -51,49 +51,49 @@
51
51
  "react-dom": ">=18"
52
52
  },
53
53
  "dependencies": {
54
- "@dnd-kit/abstract": "^0.4.0",
55
- "@dnd-kit/dom": "^0.4.0",
56
- "@dnd-kit/geometry": "^0.4.0",
57
- "@dnd-kit/react": "^0.4.0",
58
- "@dnd-kit/state": "^0.4.0",
59
- "@radix-ui/react-popover": "^1.1.15",
54
+ "@dnd-kit/abstract": "^0.5.0",
55
+ "@dnd-kit/dom": "^0.5.0",
56
+ "@dnd-kit/geometry": "^0.5.0",
57
+ "@dnd-kit/react": "^0.5.0",
58
+ "@dnd-kit/state": "^0.5.0",
59
+ "@radix-ui/react-popover": "^1.1.16",
60
60
  "clsx": "^2.1.1",
61
- "dayjs": "^1.11.20",
62
- "react-day-picker": "^9.14.0",
63
- "react-resizable-panels": "^4.10.0",
64
- "zustand": "^5.0.12"
61
+ "dayjs": "^1.11.21",
62
+ "react-day-picker": "^10.0.1",
63
+ "react-resizable-panels": "^4.11.2",
64
+ "zustand": "^5.0.14"
65
65
  },
66
66
  "devDependencies": {
67
- "@eslint/compat": "^2.0.5",
67
+ "@eslint/compat": "^2.1.0",
68
68
  "@eslint/eslintrc": "^3.3.5",
69
- "@eslint/js": "^9.39.4",
70
- "@remotion/eslint-plugin": "^4.0.448",
71
- "@tailwindcss/vite": "^4.2.2",
72
- "@types/node": "^24.12.2",
73
- "@types/react": "^19.2.14",
69
+ "@eslint/js": "^10.0.1",
70
+ "@remotion/eslint-plugin": "^4.0.477",
71
+ "@tailwindcss/vite": "^4.3.1",
72
+ "@types/node": "^25.9.3",
73
+ "@types/react": "^19.2.17",
74
74
  "@types/react-dom": "^19.2.3",
75
- "@typescript-eslint/eslint-plugin": "^8.58.2",
76
- "@typescript-eslint/parser": "^8.58.2",
77
- "@vitejs/plugin-react": "^6.0.1",
78
- "eslint": "^9.39.4",
75
+ "@typescript-eslint/eslint-plugin": "^8.61.0",
76
+ "@typescript-eslint/parser": "^8.61.0",
77
+ "@vitejs/plugin-react": "^6.0.2",
78
+ "eslint": "^10.5.0",
79
79
  "eslint-config-prettier": "^10.1.8",
80
- "eslint-plugin-prettier": "^5.5.5",
80
+ "eslint-plugin-prettier": "^5.5.6",
81
81
  "eslint-plugin-react": "^7.37.5",
82
- "eslint-plugin-react-hooks": "^7.0.1",
82
+ "eslint-plugin-react-hooks": "^7.1.1",
83
83
  "eslint-plugin-react-refresh": "^0.5.2",
84
84
  "eslint-plugin-simple-import-sort": "^13.0.0",
85
85
  "eslint-plugin-tailwindcss": "^4.0.0-alpha.1",
86
86
  "eslint-plugin-unused-imports": "^4.4.1",
87
- "globals": "^17.4.0",
88
- "prettier": "^3.8.3",
89
- "prettier-plugin-tailwindcss": "^0.7.2",
90
- "react": "^19.2.4",
91
- "react-dom": "^19.2.4",
92
- "tailwindcss": "^4.2.2",
93
- "typescript": "~6.0.2",
94
- "typescript-eslint": "^8.58.0",
95
- "vite": "^8.0.4",
96
- "vite-plugin-dts": "^4.5.4"
87
+ "globals": "^17.6.0",
88
+ "prettier": "^3.8.4",
89
+ "prettier-plugin-tailwindcss": "^0.8.0",
90
+ "react": "^19.2.7",
91
+ "react-dom": "^19.2.7",
92
+ "tailwindcss": "^4.3.1",
93
+ "typescript": "~6.0.3",
94
+ "typescript-eslint": "^8.61.0",
95
+ "vite": "^8.0.16",
96
+ "vite-plugin-dts": "^5.0.2"
97
97
  },
98
98
  "packageManager": "yarn@4.14.0"
99
99
  }