@stereopt/data-table 0.1.14 → 0.1.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 (3) hide show
  1. package/dist/index.cjs +2740 -184
  2. package/dist/index.js +2743 -184
  3. package/package.json +13 -12
package/dist/index.js CHANGED
@@ -282,10 +282,10 @@ var NODES = [
282
282
  "ul"
283
283
  ];
284
284
  var Primitive = NODES.reduce((primitive, node) => {
285
- const Slot3 = createSlot(`Primitive.${node}`);
285
+ const Slot4 = createSlot(`Primitive.${node}`);
286
286
  const Node2 = React3.forwardRef((props, forwardedRef) => {
287
287
  const { asChild, ...primitiveProps } = props;
288
- const Comp = asChild ? Slot3 : node;
288
+ const Comp = asChild ? Slot4 : node;
289
289
  if (typeof window !== "undefined") {
290
290
  window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
291
291
  }
@@ -5568,8 +5568,311 @@ var Sub2 = DropdownMenuSub;
5568
5568
  var SubTrigger2 = DropdownMenuSubTrigger;
5569
5569
  var SubContent2 = DropdownMenuSubContent;
5570
5570
 
5571
- // src/components/ui/button.tsx
5571
+ // node_modules/@radix-ui/react-popover/dist/index.mjs
5572
+ var dist_exports7 = {};
5573
+ __export(dist_exports7, {
5574
+ Anchor: () => Anchor22,
5575
+ Arrow: () => Arrow24,
5576
+ Close: () => Close,
5577
+ Content: () => Content23,
5578
+ Popover: () => Popover,
5579
+ PopoverAnchor: () => PopoverAnchor,
5580
+ PopoverArrow: () => PopoverArrow,
5581
+ PopoverClose: () => PopoverClose,
5582
+ PopoverContent: () => PopoverContent,
5583
+ PopoverPortal: () => PopoverPortal,
5584
+ PopoverTrigger: () => PopoverTrigger,
5585
+ Portal: () => Portal3,
5586
+ Root: () => Root23,
5587
+ Trigger: () => Trigger2,
5588
+ createPopoverScope: () => createPopoverScope
5589
+ });
5590
+ import * as React34 from "react";
5572
5591
  import { jsx as jsx16 } from "react/jsx-runtime";
5592
+ var POPOVER_NAME = "Popover";
5593
+ var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
5594
+ createPopperScope
5595
+ ]);
5596
+ var usePopperScope2 = createPopperScope();
5597
+ var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
5598
+ var Popover = (props) => {
5599
+ const {
5600
+ __scopePopover,
5601
+ children,
5602
+ open: openProp,
5603
+ defaultOpen,
5604
+ onOpenChange,
5605
+ modal = false
5606
+ } = props;
5607
+ const popperScope = usePopperScope2(__scopePopover);
5608
+ const triggerRef = React34.useRef(null);
5609
+ const [hasCustomAnchor, setHasCustomAnchor] = React34.useState(false);
5610
+ const [open, setOpen] = useControllableState({
5611
+ prop: openProp,
5612
+ defaultProp: defaultOpen ?? false,
5613
+ onChange: onOpenChange,
5614
+ caller: POPOVER_NAME
5615
+ });
5616
+ return /* @__PURE__ */ jsx16(Root2, { ...popperScope, children: /* @__PURE__ */ jsx16(
5617
+ PopoverProvider,
5618
+ {
5619
+ scope: __scopePopover,
5620
+ contentId: useId(),
5621
+ triggerRef,
5622
+ open,
5623
+ onOpenChange: setOpen,
5624
+ onOpenToggle: React34.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
5625
+ hasCustomAnchor,
5626
+ onCustomAnchorAdd: React34.useCallback(() => setHasCustomAnchor(true), []),
5627
+ onCustomAnchorRemove: React34.useCallback(() => setHasCustomAnchor(false), []),
5628
+ modal,
5629
+ children
5630
+ }
5631
+ ) });
5632
+ };
5633
+ Popover.displayName = POPOVER_NAME;
5634
+ var ANCHOR_NAME3 = "PopoverAnchor";
5635
+ var PopoverAnchor = React34.forwardRef(
5636
+ (props, forwardedRef) => {
5637
+ const { __scopePopover, ...anchorProps } = props;
5638
+ const context = usePopoverContext(ANCHOR_NAME3, __scopePopover);
5639
+ const popperScope = usePopperScope2(__scopePopover);
5640
+ const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
5641
+ React34.useEffect(() => {
5642
+ onCustomAnchorAdd();
5643
+ return () => onCustomAnchorRemove();
5644
+ }, [onCustomAnchorAdd, onCustomAnchorRemove]);
5645
+ return /* @__PURE__ */ jsx16(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
5646
+ }
5647
+ );
5648
+ PopoverAnchor.displayName = ANCHOR_NAME3;
5649
+ var TRIGGER_NAME2 = "PopoverTrigger";
5650
+ var PopoverTrigger = React34.forwardRef(
5651
+ (props, forwardedRef) => {
5652
+ const { __scopePopover, ...triggerProps } = props;
5653
+ const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
5654
+ const popperScope = usePopperScope2(__scopePopover);
5655
+ const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
5656
+ const trigger = /* @__PURE__ */ jsx16(
5657
+ Primitive.button,
5658
+ {
5659
+ type: "button",
5660
+ "aria-haspopup": "dialog",
5661
+ "aria-expanded": context.open,
5662
+ "aria-controls": context.contentId,
5663
+ "data-state": getState(context.open),
5664
+ ...triggerProps,
5665
+ ref: composedTriggerRef,
5666
+ onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
5667
+ }
5668
+ );
5669
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx16(Anchor, { asChild: true, ...popperScope, children: trigger });
5670
+ }
5671
+ );
5672
+ PopoverTrigger.displayName = TRIGGER_NAME2;
5673
+ var PORTAL_NAME4 = "PopoverPortal";
5674
+ var [PortalProvider2, usePortalContext2] = createPopoverContext(PORTAL_NAME4, {
5675
+ forceMount: void 0
5676
+ });
5677
+ var PopoverPortal = (props) => {
5678
+ const { __scopePopover, forceMount, children, container } = props;
5679
+ const context = usePopoverContext(PORTAL_NAME4, __scopePopover);
5680
+ return /* @__PURE__ */ jsx16(PortalProvider2, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx16(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx16(Portal, { asChild: true, container, children }) }) });
5681
+ };
5682
+ PopoverPortal.displayName = PORTAL_NAME4;
5683
+ var CONTENT_NAME4 = "PopoverContent";
5684
+ var PopoverContent = React34.forwardRef(
5685
+ (props, forwardedRef) => {
5686
+ const portalContext = usePortalContext2(CONTENT_NAME4, props.__scopePopover);
5687
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
5688
+ const context = usePopoverContext(CONTENT_NAME4, props.__scopePopover);
5689
+ return /* @__PURE__ */ jsx16(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx16(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx16(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
5690
+ }
5691
+ );
5692
+ PopoverContent.displayName = CONTENT_NAME4;
5693
+ var Slot3 = createSlot("PopoverContent.RemoveScroll");
5694
+ var PopoverContentModal = React34.forwardRef(
5695
+ (props, forwardedRef) => {
5696
+ const context = usePopoverContext(CONTENT_NAME4, props.__scopePopover);
5697
+ const contentRef = React34.useRef(null);
5698
+ const composedRefs = useComposedRefs(forwardedRef, contentRef);
5699
+ const isRightClickOutsideRef = React34.useRef(false);
5700
+ React34.useEffect(() => {
5701
+ const content = contentRef.current;
5702
+ if (content) return hideOthers(content);
5703
+ }, []);
5704
+ return /* @__PURE__ */ jsx16(Combination_default, { as: Slot3, allowPinchZoom: true, children: /* @__PURE__ */ jsx16(
5705
+ PopoverContentImpl,
5706
+ {
5707
+ ...props,
5708
+ ref: composedRefs,
5709
+ trapFocus: context.open,
5710
+ disableOutsidePointerEvents: true,
5711
+ onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
5712
+ event.preventDefault();
5713
+ if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();
5714
+ }),
5715
+ onPointerDownOutside: composeEventHandlers(
5716
+ props.onPointerDownOutside,
5717
+ (event) => {
5718
+ const originalEvent = event.detail.originalEvent;
5719
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
5720
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
5721
+ isRightClickOutsideRef.current = isRightClick;
5722
+ },
5723
+ { checkForDefaultPrevented: false }
5724
+ ),
5725
+ onFocusOutside: composeEventHandlers(
5726
+ props.onFocusOutside,
5727
+ (event) => event.preventDefault(),
5728
+ { checkForDefaultPrevented: false }
5729
+ )
5730
+ }
5731
+ ) });
5732
+ }
5733
+ );
5734
+ var PopoverContentNonModal = React34.forwardRef(
5735
+ (props, forwardedRef) => {
5736
+ const context = usePopoverContext(CONTENT_NAME4, props.__scopePopover);
5737
+ const hasInteractedOutsideRef = React34.useRef(false);
5738
+ const hasPointerDownOutsideRef = React34.useRef(false);
5739
+ return /* @__PURE__ */ jsx16(
5740
+ PopoverContentImpl,
5741
+ {
5742
+ ...props,
5743
+ ref: forwardedRef,
5744
+ trapFocus: false,
5745
+ disableOutsidePointerEvents: false,
5746
+ onCloseAutoFocus: (event) => {
5747
+ props.onCloseAutoFocus?.(event);
5748
+ if (!event.defaultPrevented) {
5749
+ if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();
5750
+ event.preventDefault();
5751
+ }
5752
+ hasInteractedOutsideRef.current = false;
5753
+ hasPointerDownOutsideRef.current = false;
5754
+ },
5755
+ onInteractOutside: (event) => {
5756
+ props.onInteractOutside?.(event);
5757
+ if (!event.defaultPrevented) {
5758
+ hasInteractedOutsideRef.current = true;
5759
+ if (event.detail.originalEvent.type === "pointerdown") {
5760
+ hasPointerDownOutsideRef.current = true;
5761
+ }
5762
+ }
5763
+ const target = event.target;
5764
+ const targetIsTrigger = context.triggerRef.current?.contains(target);
5765
+ if (targetIsTrigger) event.preventDefault();
5766
+ if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
5767
+ event.preventDefault();
5768
+ }
5769
+ }
5770
+ }
5771
+ );
5772
+ }
5773
+ );
5774
+ var PopoverContentImpl = React34.forwardRef(
5775
+ (props, forwardedRef) => {
5776
+ const {
5777
+ __scopePopover,
5778
+ trapFocus,
5779
+ onOpenAutoFocus,
5780
+ onCloseAutoFocus,
5781
+ disableOutsidePointerEvents,
5782
+ onEscapeKeyDown,
5783
+ onPointerDownOutside,
5784
+ onFocusOutside,
5785
+ onInteractOutside,
5786
+ ...contentProps
5787
+ } = props;
5788
+ const context = usePopoverContext(CONTENT_NAME4, __scopePopover);
5789
+ const popperScope = usePopperScope2(__scopePopover);
5790
+ useFocusGuards();
5791
+ return /* @__PURE__ */ jsx16(
5792
+ FocusScope,
5793
+ {
5794
+ asChild: true,
5795
+ loop: true,
5796
+ trapped: trapFocus,
5797
+ onMountAutoFocus: onOpenAutoFocus,
5798
+ onUnmountAutoFocus: onCloseAutoFocus,
5799
+ children: /* @__PURE__ */ jsx16(
5800
+ DismissableLayer,
5801
+ {
5802
+ asChild: true,
5803
+ disableOutsidePointerEvents,
5804
+ onInteractOutside,
5805
+ onEscapeKeyDown,
5806
+ onPointerDownOutside,
5807
+ onFocusOutside,
5808
+ onDismiss: () => context.onOpenChange(false),
5809
+ children: /* @__PURE__ */ jsx16(
5810
+ Content,
5811
+ {
5812
+ "data-state": getState(context.open),
5813
+ role: "dialog",
5814
+ id: context.contentId,
5815
+ ...popperScope,
5816
+ ...contentProps,
5817
+ ref: forwardedRef,
5818
+ style: {
5819
+ ...contentProps.style,
5820
+ // re-namespace exposed content custom properties
5821
+ ...{
5822
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
5823
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
5824
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
5825
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
5826
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
5827
+ }
5828
+ }
5829
+ }
5830
+ )
5831
+ }
5832
+ )
5833
+ }
5834
+ );
5835
+ }
5836
+ );
5837
+ var CLOSE_NAME = "PopoverClose";
5838
+ var PopoverClose = React34.forwardRef(
5839
+ (props, forwardedRef) => {
5840
+ const { __scopePopover, ...closeProps } = props;
5841
+ const context = usePopoverContext(CLOSE_NAME, __scopePopover);
5842
+ return /* @__PURE__ */ jsx16(
5843
+ Primitive.button,
5844
+ {
5845
+ type: "button",
5846
+ ...closeProps,
5847
+ ref: forwardedRef,
5848
+ onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))
5849
+ }
5850
+ );
5851
+ }
5852
+ );
5853
+ PopoverClose.displayName = CLOSE_NAME;
5854
+ var ARROW_NAME4 = "PopoverArrow";
5855
+ var PopoverArrow = React34.forwardRef(
5856
+ (props, forwardedRef) => {
5857
+ const { __scopePopover, ...arrowProps } = props;
5858
+ const popperScope = usePopperScope2(__scopePopover);
5859
+ return /* @__PURE__ */ jsx16(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
5860
+ }
5861
+ );
5862
+ PopoverArrow.displayName = ARROW_NAME4;
5863
+ function getState(open) {
5864
+ return open ? "open" : "closed";
5865
+ }
5866
+ var Root23 = Popover;
5867
+ var Anchor22 = PopoverAnchor;
5868
+ var Trigger2 = PopoverTrigger;
5869
+ var Portal3 = PopoverPortal;
5870
+ var Content23 = PopoverContent;
5871
+ var Close = PopoverClose;
5872
+ var Arrow24 = PopoverArrow;
5873
+
5874
+ // src/components/ui/button.tsx
5875
+ import { jsx as jsx17 } from "react/jsx-runtime";
5573
5876
  var buttonVariants = cva(
5574
5877
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer",
5575
5878
  {
@@ -5595,167 +5898,2423 @@ var buttonVariants = cva(
5595
5898
  variant: "default",
5596
5899
  size: "default"
5597
5900
  }
5598
- }
5599
- );
5600
- function Button({
5601
- className,
5602
- variant = "default",
5603
- size: size4 = "default",
5604
- asChild = false,
5605
- ...props
5606
- }) {
5607
- const Comp = asChild ? dist_exports.Slot : "button";
5608
- return /* @__PURE__ */ jsx16(
5609
- Comp,
5610
- {
5611
- className: cn(buttonVariants({ variant, size: size4, className })),
5612
- "data-size": size4,
5613
- "data-slot": "button",
5614
- "data-variant": variant,
5615
- ...props
5901
+ }
5902
+ );
5903
+ function Button({
5904
+ className,
5905
+ variant = "default",
5906
+ size: size4 = "default",
5907
+ asChild = false,
5908
+ ...props
5909
+ }) {
5910
+ const Comp = asChild ? dist_exports.Slot : "button";
5911
+ return /* @__PURE__ */ jsx17(
5912
+ Comp,
5913
+ {
5914
+ className: cn(buttonVariants({ variant, size: size4, className })),
5915
+ "data-size": size4,
5916
+ "data-slot": "button",
5917
+ "data-variant": variant,
5918
+ ...props
5919
+ }
5920
+ );
5921
+ }
5922
+
5923
+ // node_modules/lucide-react/dist/esm/createLucideIcon.js
5924
+ import { forwardRef as forwardRef15, createElement as createElement7 } from "react";
5925
+
5926
+ // node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5927
+ var mergeClasses = (...classes) => classes.filter((className, index2, array) => {
5928
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
5929
+ }).join(" ").trim();
5930
+
5931
+ // node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js
5932
+ var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
5933
+
5934
+ // node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js
5935
+ var toCamelCase = (string) => string.replace(
5936
+ /^([A-Z])|[\s-_]+(\w)/g,
5937
+ (match3, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
5938
+ );
5939
+
5940
+ // node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js
5941
+ var toPascalCase = (string) => {
5942
+ const camelCase = toCamelCase(string);
5943
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
5944
+ };
5945
+
5946
+ // node_modules/lucide-react/dist/esm/Icon.js
5947
+ import { forwardRef as forwardRef14, createElement as createElement6 } from "react";
5948
+
5949
+ // node_modules/lucide-react/dist/esm/defaultAttributes.js
5950
+ var defaultAttributes = {
5951
+ xmlns: "http://www.w3.org/2000/svg",
5952
+ width: 24,
5953
+ height: 24,
5954
+ viewBox: "0 0 24 24",
5955
+ fill: "none",
5956
+ stroke: "currentColor",
5957
+ strokeWidth: 2,
5958
+ strokeLinecap: "round",
5959
+ strokeLinejoin: "round"
5960
+ };
5961
+
5962
+ // node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js
5963
+ var hasA11yProp = (props) => {
5964
+ for (const prop in props) {
5965
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
5966
+ return true;
5967
+ }
5968
+ }
5969
+ return false;
5970
+ };
5971
+
5972
+ // node_modules/lucide-react/dist/esm/Icon.js
5973
+ var Icon = forwardRef14(
5974
+ ({
5975
+ color = "currentColor",
5976
+ size: size4 = 24,
5977
+ strokeWidth = 2,
5978
+ absoluteStrokeWidth,
5979
+ className = "",
5980
+ children,
5981
+ iconNode,
5982
+ ...rest
5983
+ }, ref) => createElement6(
5984
+ "svg",
5985
+ {
5986
+ ref,
5987
+ ...defaultAttributes,
5988
+ width: size4,
5989
+ height: size4,
5990
+ stroke: color,
5991
+ strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size4) : strokeWidth,
5992
+ className: mergeClasses("lucide", className),
5993
+ ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
5994
+ ...rest
5995
+ },
5996
+ [
5997
+ ...iconNode.map(([tag, attrs]) => createElement6(tag, attrs)),
5998
+ ...Array.isArray(children) ? children : [children]
5999
+ ]
6000
+ )
6001
+ );
6002
+
6003
+ // node_modules/lucide-react/dist/esm/createLucideIcon.js
6004
+ var createLucideIcon = (iconName, iconNode) => {
6005
+ const Component = forwardRef15(
6006
+ ({ className, ...props }, ref) => createElement7(Icon, {
6007
+ ref,
6008
+ iconNode,
6009
+ className: mergeClasses(
6010
+ `lucide-${toKebabCase(toPascalCase(iconName))}`,
6011
+ `lucide-${iconName}`,
6012
+ className
6013
+ ),
6014
+ ...props
6015
+ })
6016
+ );
6017
+ Component.displayName = toPascalCase(iconName);
6018
+ return Component;
6019
+ };
6020
+
6021
+ // node_modules/lucide-react/dist/esm/icons/check.js
6022
+ var __iconNode = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
6023
+ var Check = createLucideIcon("check", __iconNode);
6024
+
6025
+ // node_modules/lucide-react/dist/esm/icons/chevron-down.js
6026
+ var __iconNode2 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
6027
+ var ChevronDown = createLucideIcon("chevron-down", __iconNode2);
6028
+
6029
+ // node_modules/lucide-react/dist/esm/icons/chevron-left.js
6030
+ var __iconNode3 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
6031
+ var ChevronLeft = createLucideIcon("chevron-left", __iconNode3);
6032
+
6033
+ // node_modules/lucide-react/dist/esm/icons/chevron-right.js
6034
+ var __iconNode4 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
6035
+ var ChevronRight = createLucideIcon("chevron-right", __iconNode4);
6036
+
6037
+ // node_modules/lucide-react/dist/esm/icons/chevrons-left.js
6038
+ var __iconNode5 = [
6039
+ ["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
6040
+ ["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
6041
+ ];
6042
+ var ChevronsLeft = createLucideIcon("chevrons-left", __iconNode5);
6043
+
6044
+ // node_modules/lucide-react/dist/esm/icons/chevrons-right.js
6045
+ var __iconNode6 = [
6046
+ ["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
6047
+ ["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
6048
+ ];
6049
+ var ChevronsRight = createLucideIcon("chevrons-right", __iconNode6);
6050
+
6051
+ // src/components/ui/calendar.tsx
6052
+ import * as React35 from "react";
6053
+ import {
6054
+ DayPicker,
6055
+ getDefaultClassNames
6056
+ } from "react-day-picker";
6057
+ import { jsx as jsx18 } from "react/jsx-runtime";
6058
+ function Calendar({
6059
+ className,
6060
+ classNames,
6061
+ showOutsideDays = true,
6062
+ captionLayout = "label",
6063
+ buttonVariant = "ghost",
6064
+ formatters: formatters2,
6065
+ components,
6066
+ ...props
6067
+ }) {
6068
+ const defaultClassNames = getDefaultClassNames();
6069
+ return /* @__PURE__ */ jsx18(
6070
+ DayPicker,
6071
+ {
6072
+ captionLayout,
6073
+ className: cn(
6074
+ "bg-background group/calendar p-3 [--cell-size:--spacing(8)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",
6075
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
6076
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
6077
+ className
6078
+ ),
6079
+ classNames: {
6080
+ root: cn("w-fit", defaultClassNames.root),
6081
+ months: cn(
6082
+ "flex gap-4 flex-col md:flex-row relative",
6083
+ defaultClassNames.months
6084
+ ),
6085
+ month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
6086
+ nav: cn(
6087
+ "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
6088
+ defaultClassNames.nav
6089
+ ),
6090
+ button_previous: cn(
6091
+ buttonVariants({ variant: buttonVariant }),
6092
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
6093
+ defaultClassNames.button_previous
6094
+ ),
6095
+ button_next: cn(
6096
+ buttonVariants({ variant: buttonVariant }),
6097
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
6098
+ defaultClassNames.button_next
6099
+ ),
6100
+ month_caption: cn(
6101
+ "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
6102
+ defaultClassNames.month_caption
6103
+ ),
6104
+ dropdowns: cn(
6105
+ "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
6106
+ defaultClassNames.dropdowns
6107
+ ),
6108
+ dropdown_root: cn(
6109
+ "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
6110
+ defaultClassNames.dropdown_root
6111
+ ),
6112
+ dropdown: cn(
6113
+ "absolute bg-popover inset-0 opacity-0",
6114
+ defaultClassNames.dropdown
6115
+ ),
6116
+ caption_label: cn(
6117
+ "select-none font-medium",
6118
+ captionLayout === "label" ? "text-sm" : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
6119
+ defaultClassNames.caption_label
6120
+ ),
6121
+ table: "w-full border-collapse",
6122
+ weekdays: cn("flex", defaultClassNames.weekdays),
6123
+ weekday: cn(
6124
+ "text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",
6125
+ defaultClassNames.weekday
6126
+ ),
6127
+ week: cn("flex w-full mt-2", defaultClassNames.week),
6128
+ week_number_header: cn(
6129
+ "select-none w-(--cell-size)",
6130
+ defaultClassNames.week_number_header
6131
+ ),
6132
+ week_number: cn(
6133
+ "text-[0.8rem] select-none text-muted-foreground",
6134
+ defaultClassNames.week_number
6135
+ ),
6136
+ day: cn(
6137
+ "relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
6138
+ props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md" : "[&:first-child[data-selected=true]_button]:rounded-l-md",
6139
+ defaultClassNames.day
6140
+ ),
6141
+ range_start: cn(
6142
+ "rounded-l-md bg-accent",
6143
+ defaultClassNames.range_start
6144
+ ),
6145
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
6146
+ range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
6147
+ today: cn(
6148
+ "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
6149
+ defaultClassNames.today
6150
+ ),
6151
+ outside: cn(
6152
+ "text-muted-foreground aria-selected:text-muted-foreground",
6153
+ defaultClassNames.outside
6154
+ ),
6155
+ disabled: cn(
6156
+ "text-muted-foreground opacity-50",
6157
+ defaultClassNames.disabled
6158
+ ),
6159
+ hidden: cn("invisible", defaultClassNames.hidden),
6160
+ ...classNames
6161
+ },
6162
+ components: {
6163
+ Root: ({ className: className2, rootRef, ...props2 }) => {
6164
+ return /* @__PURE__ */ jsx18(
6165
+ "div",
6166
+ {
6167
+ className: cn(className2),
6168
+ "data-slot": "calendar",
6169
+ ref: rootRef,
6170
+ ...props2
6171
+ }
6172
+ );
6173
+ },
6174
+ Chevron: ({ className: className2, orientation, ...props2 }) => {
6175
+ if (orientation === "left") {
6176
+ return /* @__PURE__ */ jsx18(ChevronLeft, { className: cn("size-4", className2), ...props2 });
6177
+ }
6178
+ if (orientation === "right") {
6179
+ return /* @__PURE__ */ jsx18(
6180
+ ChevronRight,
6181
+ {
6182
+ className: cn("size-4", className2),
6183
+ ...props2
6184
+ }
6185
+ );
6186
+ }
6187
+ return /* @__PURE__ */ jsx18(ChevronDown, { className: cn("size-4", className2), ...props2 });
6188
+ },
6189
+ DayButton: CalendarDayButton,
6190
+ WeekNumber: ({ children, ...props2 }) => {
6191
+ return /* @__PURE__ */ jsx18("td", { ...props2, children: /* @__PURE__ */ jsx18("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
6192
+ },
6193
+ ...components
6194
+ },
6195
+ formatters: {
6196
+ formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
6197
+ ...formatters2
6198
+ },
6199
+ showOutsideDays,
6200
+ ...props
6201
+ }
6202
+ );
6203
+ }
6204
+ function CalendarDayButton({
6205
+ className,
6206
+ day,
6207
+ modifiers,
6208
+ ...props
6209
+ }) {
6210
+ const defaultClassNames = getDefaultClassNames();
6211
+ const ref = React35.useRef(null);
6212
+ React35.useEffect(() => {
6213
+ if (modifiers.focused) ref.current?.focus();
6214
+ }, [modifiers.focused]);
6215
+ return /* @__PURE__ */ jsx18(
6216
+ Button,
6217
+ {
6218
+ className: cn(
6219
+ "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
6220
+ defaultClassNames.day,
6221
+ className
6222
+ ),
6223
+ "data-day": day.date.toLocaleDateString(),
6224
+ "data-range-end": modifiers.range_end,
6225
+ "data-range-middle": modifiers.range_middle,
6226
+ "data-range-start": modifiers.range_start,
6227
+ "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
6228
+ ref,
6229
+ size: "icon",
6230
+ variant: "ghost",
6231
+ ...props
6232
+ }
6233
+ );
6234
+ }
6235
+
6236
+ // src/components/ui/popover.tsx
6237
+ import { jsx as jsx19 } from "react/jsx-runtime";
6238
+ function Popover2({
6239
+ ...props
6240
+ }) {
6241
+ return /* @__PURE__ */ jsx19(dist_exports7.Root, { "data-slot": "popover", ...props });
6242
+ }
6243
+ function PopoverTrigger2({
6244
+ ...props
6245
+ }) {
6246
+ return /* @__PURE__ */ jsx19(dist_exports7.Trigger, { "data-slot": "popover-trigger", ...props });
6247
+ }
6248
+ function PopoverContent2({
6249
+ className,
6250
+ align = "center",
6251
+ sideOffset = 4,
6252
+ ...props
6253
+ }) {
6254
+ return /* @__PURE__ */ jsx19(dist_exports7.Portal, { children: /* @__PURE__ */ jsx19(
6255
+ dist_exports7.Content,
6256
+ {
6257
+ align,
6258
+ className: cn(
6259
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
6260
+ className
6261
+ ),
6262
+ "data-slot": "popover-content",
6263
+ sideOffset,
6264
+ ...props
6265
+ }
6266
+ ) });
6267
+ }
6268
+
6269
+ // node_modules/date-fns/constants.js
6270
+ var daysInYear = 365.2425;
6271
+ var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3;
6272
+ var minTime = -maxTime;
6273
+ var millisecondsInWeek = 6048e5;
6274
+ var millisecondsInDay = 864e5;
6275
+ var secondsInHour = 3600;
6276
+ var secondsInDay = secondsInHour * 24;
6277
+ var secondsInWeek = secondsInDay * 7;
6278
+ var secondsInYear = secondsInDay * daysInYear;
6279
+ var secondsInMonth = secondsInYear / 12;
6280
+ var secondsInQuarter = secondsInMonth * 3;
6281
+ var constructFromSymbol = /* @__PURE__ */ Symbol.for("constructDateFrom");
6282
+
6283
+ // node_modules/date-fns/constructFrom.js
6284
+ function constructFrom(date, value) {
6285
+ if (typeof date === "function") return date(value);
6286
+ if (date && typeof date === "object" && constructFromSymbol in date)
6287
+ return date[constructFromSymbol](value);
6288
+ if (date instanceof Date) return new date.constructor(value);
6289
+ return new Date(value);
6290
+ }
6291
+
6292
+ // node_modules/date-fns/toDate.js
6293
+ function toDate(argument, context) {
6294
+ return constructFrom(context || argument, argument);
6295
+ }
6296
+
6297
+ // node_modules/date-fns/_lib/defaultOptions.js
6298
+ var defaultOptions = {};
6299
+ function getDefaultOptions() {
6300
+ return defaultOptions;
6301
+ }
6302
+
6303
+ // node_modules/date-fns/startOfWeek.js
6304
+ function startOfWeek(date, options) {
6305
+ const defaultOptions2 = getDefaultOptions();
6306
+ const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0;
6307
+ const _date = toDate(date, options?.in);
6308
+ const day = _date.getDay();
6309
+ const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
6310
+ _date.setDate(_date.getDate() - diff);
6311
+ _date.setHours(0, 0, 0, 0);
6312
+ return _date;
6313
+ }
6314
+
6315
+ // node_modules/date-fns/startOfISOWeek.js
6316
+ function startOfISOWeek(date, options) {
6317
+ return startOfWeek(date, { ...options, weekStartsOn: 1 });
6318
+ }
6319
+
6320
+ // node_modules/date-fns/getISOWeekYear.js
6321
+ function getISOWeekYear(date, options) {
6322
+ const _date = toDate(date, options?.in);
6323
+ const year = _date.getFullYear();
6324
+ const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);
6325
+ fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
6326
+ fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
6327
+ const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);
6328
+ const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);
6329
+ fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);
6330
+ fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);
6331
+ const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);
6332
+ if (_date.getTime() >= startOfNextYear.getTime()) {
6333
+ return year + 1;
6334
+ } else if (_date.getTime() >= startOfThisYear.getTime()) {
6335
+ return year;
6336
+ } else {
6337
+ return year - 1;
6338
+ }
6339
+ }
6340
+
6341
+ // node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js
6342
+ function getTimezoneOffsetInMilliseconds(date) {
6343
+ const _date = toDate(date);
6344
+ const utcDate = new Date(
6345
+ Date.UTC(
6346
+ _date.getFullYear(),
6347
+ _date.getMonth(),
6348
+ _date.getDate(),
6349
+ _date.getHours(),
6350
+ _date.getMinutes(),
6351
+ _date.getSeconds(),
6352
+ _date.getMilliseconds()
6353
+ )
6354
+ );
6355
+ utcDate.setUTCFullYear(_date.getFullYear());
6356
+ return +date - +utcDate;
6357
+ }
6358
+
6359
+ // node_modules/date-fns/_lib/normalizeDates.js
6360
+ function normalizeDates(context, ...dates) {
6361
+ const normalize = constructFrom.bind(
6362
+ null,
6363
+ context || dates.find((date) => typeof date === "object")
6364
+ );
6365
+ return dates.map(normalize);
6366
+ }
6367
+
6368
+ // node_modules/date-fns/startOfDay.js
6369
+ function startOfDay(date, options) {
6370
+ const _date = toDate(date, options?.in);
6371
+ _date.setHours(0, 0, 0, 0);
6372
+ return _date;
6373
+ }
6374
+
6375
+ // node_modules/date-fns/differenceInCalendarDays.js
6376
+ function differenceInCalendarDays(laterDate, earlierDate, options) {
6377
+ const [laterDate_, earlierDate_] = normalizeDates(
6378
+ options?.in,
6379
+ laterDate,
6380
+ earlierDate
6381
+ );
6382
+ const laterStartOfDay = startOfDay(laterDate_);
6383
+ const earlierStartOfDay = startOfDay(earlierDate_);
6384
+ const laterTimestamp = +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);
6385
+ const earlierTimestamp = +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);
6386
+ return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);
6387
+ }
6388
+
6389
+ // node_modules/date-fns/startOfISOWeekYear.js
6390
+ function startOfISOWeekYear(date, options) {
6391
+ const year = getISOWeekYear(date, options);
6392
+ const fourthOfJanuary = constructFrom(options?.in || date, 0);
6393
+ fourthOfJanuary.setFullYear(year, 0, 4);
6394
+ fourthOfJanuary.setHours(0, 0, 0, 0);
6395
+ return startOfISOWeek(fourthOfJanuary);
6396
+ }
6397
+
6398
+ // node_modules/date-fns/isDate.js
6399
+ function isDate(value) {
6400
+ return value instanceof Date || typeof value === "object" && Object.prototype.toString.call(value) === "[object Date]";
6401
+ }
6402
+
6403
+ // node_modules/date-fns/isValid.js
6404
+ function isValid(date) {
6405
+ return !(!isDate(date) && typeof date !== "number" || isNaN(+toDate(date)));
6406
+ }
6407
+
6408
+ // node_modules/date-fns/startOfYear.js
6409
+ function startOfYear(date, options) {
6410
+ const date_ = toDate(date, options?.in);
6411
+ date_.setFullYear(date_.getFullYear(), 0, 1);
6412
+ date_.setHours(0, 0, 0, 0);
6413
+ return date_;
6414
+ }
6415
+
6416
+ // node_modules/date-fns/locale/en-US/_lib/formatDistance.js
6417
+ var formatDistanceLocale = {
6418
+ lessThanXSeconds: {
6419
+ one: "less than a second",
6420
+ other: "less than {{count}} seconds"
6421
+ },
6422
+ xSeconds: {
6423
+ one: "1 second",
6424
+ other: "{{count}} seconds"
6425
+ },
6426
+ halfAMinute: "half a minute",
6427
+ lessThanXMinutes: {
6428
+ one: "less than a minute",
6429
+ other: "less than {{count}} minutes"
6430
+ },
6431
+ xMinutes: {
6432
+ one: "1 minute",
6433
+ other: "{{count}} minutes"
6434
+ },
6435
+ aboutXHours: {
6436
+ one: "about 1 hour",
6437
+ other: "about {{count}} hours"
6438
+ },
6439
+ xHours: {
6440
+ one: "1 hour",
6441
+ other: "{{count}} hours"
6442
+ },
6443
+ xDays: {
6444
+ one: "1 day",
6445
+ other: "{{count}} days"
6446
+ },
6447
+ aboutXWeeks: {
6448
+ one: "about 1 week",
6449
+ other: "about {{count}} weeks"
6450
+ },
6451
+ xWeeks: {
6452
+ one: "1 week",
6453
+ other: "{{count}} weeks"
6454
+ },
6455
+ aboutXMonths: {
6456
+ one: "about 1 month",
6457
+ other: "about {{count}} months"
6458
+ },
6459
+ xMonths: {
6460
+ one: "1 month",
6461
+ other: "{{count}} months"
6462
+ },
6463
+ aboutXYears: {
6464
+ one: "about 1 year",
6465
+ other: "about {{count}} years"
6466
+ },
6467
+ xYears: {
6468
+ one: "1 year",
6469
+ other: "{{count}} years"
6470
+ },
6471
+ overXYears: {
6472
+ one: "over 1 year",
6473
+ other: "over {{count}} years"
6474
+ },
6475
+ almostXYears: {
6476
+ one: "almost 1 year",
6477
+ other: "almost {{count}} years"
6478
+ }
6479
+ };
6480
+ var formatDistance = (token, count3, options) => {
6481
+ let result;
6482
+ const tokenValue = formatDistanceLocale[token];
6483
+ if (typeof tokenValue === "string") {
6484
+ result = tokenValue;
6485
+ } else if (count3 === 1) {
6486
+ result = tokenValue.one;
6487
+ } else {
6488
+ result = tokenValue.other.replace("{{count}}", count3.toString());
6489
+ }
6490
+ if (options?.addSuffix) {
6491
+ if (options.comparison && options.comparison > 0) {
6492
+ return "in " + result;
6493
+ } else {
6494
+ return result + " ago";
6495
+ }
6496
+ }
6497
+ return result;
6498
+ };
6499
+
6500
+ // node_modules/date-fns/locale/_lib/buildFormatLongFn.js
6501
+ function buildFormatLongFn(args) {
6502
+ return (options = {}) => {
6503
+ const width = options.width ? String(options.width) : args.defaultWidth;
6504
+ const format2 = args.formats[width] || args.formats[args.defaultWidth];
6505
+ return format2;
6506
+ };
6507
+ }
6508
+
6509
+ // node_modules/date-fns/locale/en-US/_lib/formatLong.js
6510
+ var dateFormats = {
6511
+ full: "EEEE, MMMM do, y",
6512
+ long: "MMMM do, y",
6513
+ medium: "MMM d, y",
6514
+ short: "MM/dd/yyyy"
6515
+ };
6516
+ var timeFormats = {
6517
+ full: "h:mm:ss a zzzz",
6518
+ long: "h:mm:ss a z",
6519
+ medium: "h:mm:ss a",
6520
+ short: "h:mm a"
6521
+ };
6522
+ var dateTimeFormats = {
6523
+ full: "{{date}} 'at' {{time}}",
6524
+ long: "{{date}} 'at' {{time}}",
6525
+ medium: "{{date}}, {{time}}",
6526
+ short: "{{date}}, {{time}}"
6527
+ };
6528
+ var formatLong = {
6529
+ date: buildFormatLongFn({
6530
+ formats: dateFormats,
6531
+ defaultWidth: "full"
6532
+ }),
6533
+ time: buildFormatLongFn({
6534
+ formats: timeFormats,
6535
+ defaultWidth: "full"
6536
+ }),
6537
+ dateTime: buildFormatLongFn({
6538
+ formats: dateTimeFormats,
6539
+ defaultWidth: "full"
6540
+ })
6541
+ };
6542
+
6543
+ // node_modules/date-fns/locale/en-US/_lib/formatRelative.js
6544
+ var formatRelativeLocale = {
6545
+ lastWeek: "'last' eeee 'at' p",
6546
+ yesterday: "'yesterday at' p",
6547
+ today: "'today at' p",
6548
+ tomorrow: "'tomorrow at' p",
6549
+ nextWeek: "eeee 'at' p",
6550
+ other: "P"
6551
+ };
6552
+ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale[token];
6553
+
6554
+ // node_modules/date-fns/locale/_lib/buildLocalizeFn.js
6555
+ function buildLocalizeFn(args) {
6556
+ return (value, options) => {
6557
+ const context = options?.context ? String(options.context) : "standalone";
6558
+ let valuesArray;
6559
+ if (context === "formatting" && args.formattingValues) {
6560
+ const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
6561
+ const width = options?.width ? String(options.width) : defaultWidth;
6562
+ valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
6563
+ } else {
6564
+ const defaultWidth = args.defaultWidth;
6565
+ const width = options?.width ? String(options.width) : args.defaultWidth;
6566
+ valuesArray = args.values[width] || args.values[defaultWidth];
6567
+ }
6568
+ const index2 = args.argumentCallback ? args.argumentCallback(value) : value;
6569
+ return valuesArray[index2];
6570
+ };
6571
+ }
6572
+
6573
+ // node_modules/date-fns/locale/en-US/_lib/localize.js
6574
+ var eraValues = {
6575
+ narrow: ["B", "A"],
6576
+ abbreviated: ["BC", "AD"],
6577
+ wide: ["Before Christ", "Anno Domini"]
6578
+ };
6579
+ var quarterValues = {
6580
+ narrow: ["1", "2", "3", "4"],
6581
+ abbreviated: ["Q1", "Q2", "Q3", "Q4"],
6582
+ wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"]
6583
+ };
6584
+ var monthValues = {
6585
+ narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
6586
+ abbreviated: [
6587
+ "Jan",
6588
+ "Feb",
6589
+ "Mar",
6590
+ "Apr",
6591
+ "May",
6592
+ "Jun",
6593
+ "Jul",
6594
+ "Aug",
6595
+ "Sep",
6596
+ "Oct",
6597
+ "Nov",
6598
+ "Dec"
6599
+ ],
6600
+ wide: [
6601
+ "January",
6602
+ "February",
6603
+ "March",
6604
+ "April",
6605
+ "May",
6606
+ "June",
6607
+ "July",
6608
+ "August",
6609
+ "September",
6610
+ "October",
6611
+ "November",
6612
+ "December"
6613
+ ]
6614
+ };
6615
+ var dayValues = {
6616
+ narrow: ["S", "M", "T", "W", "T", "F", "S"],
6617
+ short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
6618
+ abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
6619
+ wide: [
6620
+ "Sunday",
6621
+ "Monday",
6622
+ "Tuesday",
6623
+ "Wednesday",
6624
+ "Thursday",
6625
+ "Friday",
6626
+ "Saturday"
6627
+ ]
6628
+ };
6629
+ var dayPeriodValues = {
6630
+ narrow: {
6631
+ am: "a",
6632
+ pm: "p",
6633
+ midnight: "mi",
6634
+ noon: "n",
6635
+ morning: "morning",
6636
+ afternoon: "afternoon",
6637
+ evening: "evening",
6638
+ night: "night"
6639
+ },
6640
+ abbreviated: {
6641
+ am: "AM",
6642
+ pm: "PM",
6643
+ midnight: "midnight",
6644
+ noon: "noon",
6645
+ morning: "morning",
6646
+ afternoon: "afternoon",
6647
+ evening: "evening",
6648
+ night: "night"
6649
+ },
6650
+ wide: {
6651
+ am: "a.m.",
6652
+ pm: "p.m.",
6653
+ midnight: "midnight",
6654
+ noon: "noon",
6655
+ morning: "morning",
6656
+ afternoon: "afternoon",
6657
+ evening: "evening",
6658
+ night: "night"
6659
+ }
6660
+ };
6661
+ var formattingDayPeriodValues = {
6662
+ narrow: {
6663
+ am: "a",
6664
+ pm: "p",
6665
+ midnight: "mi",
6666
+ noon: "n",
6667
+ morning: "in the morning",
6668
+ afternoon: "in the afternoon",
6669
+ evening: "in the evening",
6670
+ night: "at night"
6671
+ },
6672
+ abbreviated: {
6673
+ am: "AM",
6674
+ pm: "PM",
6675
+ midnight: "midnight",
6676
+ noon: "noon",
6677
+ morning: "in the morning",
6678
+ afternoon: "in the afternoon",
6679
+ evening: "in the evening",
6680
+ night: "at night"
6681
+ },
6682
+ wide: {
6683
+ am: "a.m.",
6684
+ pm: "p.m.",
6685
+ midnight: "midnight",
6686
+ noon: "noon",
6687
+ morning: "in the morning",
6688
+ afternoon: "in the afternoon",
6689
+ evening: "in the evening",
6690
+ night: "at night"
6691
+ }
6692
+ };
6693
+ var ordinalNumber = (dirtyNumber, _options) => {
6694
+ const number = Number(dirtyNumber);
6695
+ const rem100 = number % 100;
6696
+ if (rem100 > 20 || rem100 < 10) {
6697
+ switch (rem100 % 10) {
6698
+ case 1:
6699
+ return number + "st";
6700
+ case 2:
6701
+ return number + "nd";
6702
+ case 3:
6703
+ return number + "rd";
6704
+ }
6705
+ }
6706
+ return number + "th";
6707
+ };
6708
+ var localize = {
6709
+ ordinalNumber,
6710
+ era: buildLocalizeFn({
6711
+ values: eraValues,
6712
+ defaultWidth: "wide"
6713
+ }),
6714
+ quarter: buildLocalizeFn({
6715
+ values: quarterValues,
6716
+ defaultWidth: "wide",
6717
+ argumentCallback: (quarter) => quarter - 1
6718
+ }),
6719
+ month: buildLocalizeFn({
6720
+ values: monthValues,
6721
+ defaultWidth: "wide"
6722
+ }),
6723
+ day: buildLocalizeFn({
6724
+ values: dayValues,
6725
+ defaultWidth: "wide"
6726
+ }),
6727
+ dayPeriod: buildLocalizeFn({
6728
+ values: dayPeriodValues,
6729
+ defaultWidth: "wide",
6730
+ formattingValues: formattingDayPeriodValues,
6731
+ defaultFormattingWidth: "wide"
6732
+ })
6733
+ };
6734
+
6735
+ // node_modules/date-fns/locale/_lib/buildMatchFn.js
6736
+ function buildMatchFn(args) {
6737
+ return (string, options = {}) => {
6738
+ const width = options.width;
6739
+ const matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
6740
+ const matchResult = string.match(matchPattern);
6741
+ if (!matchResult) {
6742
+ return null;
6743
+ }
6744
+ const matchedString = matchResult[0];
6745
+ const parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
6746
+ const key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) : (
6747
+ // [TODO] -- I challenge you to fix the type
6748
+ findKey(parsePatterns, (pattern) => pattern.test(matchedString))
6749
+ );
6750
+ let value;
6751
+ value = args.valueCallback ? args.valueCallback(key) : key;
6752
+ value = options.valueCallback ? (
6753
+ // [TODO] -- I challenge you to fix the type
6754
+ options.valueCallback(value)
6755
+ ) : value;
6756
+ const rest = string.slice(matchedString.length);
6757
+ return { value, rest };
6758
+ };
6759
+ }
6760
+ function findKey(object, predicate) {
6761
+ for (const key in object) {
6762
+ if (Object.prototype.hasOwnProperty.call(object, key) && predicate(object[key])) {
6763
+ return key;
6764
+ }
6765
+ }
6766
+ return void 0;
6767
+ }
6768
+ function findIndex(array, predicate) {
6769
+ for (let key = 0; key < array.length; key++) {
6770
+ if (predicate(array[key])) {
6771
+ return key;
6772
+ }
6773
+ }
6774
+ return void 0;
6775
+ }
6776
+
6777
+ // node_modules/date-fns/locale/_lib/buildMatchPatternFn.js
6778
+ function buildMatchPatternFn(args) {
6779
+ return (string, options = {}) => {
6780
+ const matchResult = string.match(args.matchPattern);
6781
+ if (!matchResult) return null;
6782
+ const matchedString = matchResult[0];
6783
+ const parseResult = string.match(args.parsePattern);
6784
+ if (!parseResult) return null;
6785
+ let value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
6786
+ value = options.valueCallback ? options.valueCallback(value) : value;
6787
+ const rest = string.slice(matchedString.length);
6788
+ return { value, rest };
6789
+ };
6790
+ }
6791
+
6792
+ // node_modules/date-fns/locale/en-US/_lib/match.js
6793
+ var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
6794
+ var parseOrdinalNumberPattern = /\d+/i;
6795
+ var matchEraPatterns = {
6796
+ narrow: /^(b|a)/i,
6797
+ abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
6798
+ wide: /^(before christ|before common era|anno domini|common era)/i
6799
+ };
6800
+ var parseEraPatterns = {
6801
+ any: [/^b/i, /^(a|c)/i]
6802
+ };
6803
+ var matchQuarterPatterns = {
6804
+ narrow: /^[1234]/i,
6805
+ abbreviated: /^q[1234]/i,
6806
+ wide: /^[1234](th|st|nd|rd)? quarter/i
6807
+ };
6808
+ var parseQuarterPatterns = {
6809
+ any: [/1/i, /2/i, /3/i, /4/i]
6810
+ };
6811
+ var matchMonthPatterns = {
6812
+ narrow: /^[jfmasond]/i,
6813
+ abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
6814
+ wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
6815
+ };
6816
+ var parseMonthPatterns = {
6817
+ narrow: [
6818
+ /^j/i,
6819
+ /^f/i,
6820
+ /^m/i,
6821
+ /^a/i,
6822
+ /^m/i,
6823
+ /^j/i,
6824
+ /^j/i,
6825
+ /^a/i,
6826
+ /^s/i,
6827
+ /^o/i,
6828
+ /^n/i,
6829
+ /^d/i
6830
+ ],
6831
+ any: [
6832
+ /^ja/i,
6833
+ /^f/i,
6834
+ /^mar/i,
6835
+ /^ap/i,
6836
+ /^may/i,
6837
+ /^jun/i,
6838
+ /^jul/i,
6839
+ /^au/i,
6840
+ /^s/i,
6841
+ /^o/i,
6842
+ /^n/i,
6843
+ /^d/i
6844
+ ]
6845
+ };
6846
+ var matchDayPatterns = {
6847
+ narrow: /^[smtwf]/i,
6848
+ short: /^(su|mo|tu|we|th|fr|sa)/i,
6849
+ abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
6850
+ wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
6851
+ };
6852
+ var parseDayPatterns = {
6853
+ narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
6854
+ any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
6855
+ };
6856
+ var matchDayPeriodPatterns = {
6857
+ narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
6858
+ any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
6859
+ };
6860
+ var parseDayPeriodPatterns = {
6861
+ any: {
6862
+ am: /^a/i,
6863
+ pm: /^p/i,
6864
+ midnight: /^mi/i,
6865
+ noon: /^no/i,
6866
+ morning: /morning/i,
6867
+ afternoon: /afternoon/i,
6868
+ evening: /evening/i,
6869
+ night: /night/i
6870
+ }
6871
+ };
6872
+ var match = {
6873
+ ordinalNumber: buildMatchPatternFn({
6874
+ matchPattern: matchOrdinalNumberPattern,
6875
+ parsePattern: parseOrdinalNumberPattern,
6876
+ valueCallback: (value) => parseInt(value, 10)
6877
+ }),
6878
+ era: buildMatchFn({
6879
+ matchPatterns: matchEraPatterns,
6880
+ defaultMatchWidth: "wide",
6881
+ parsePatterns: parseEraPatterns,
6882
+ defaultParseWidth: "any"
6883
+ }),
6884
+ quarter: buildMatchFn({
6885
+ matchPatterns: matchQuarterPatterns,
6886
+ defaultMatchWidth: "wide",
6887
+ parsePatterns: parseQuarterPatterns,
6888
+ defaultParseWidth: "any",
6889
+ valueCallback: (index2) => index2 + 1
6890
+ }),
6891
+ month: buildMatchFn({
6892
+ matchPatterns: matchMonthPatterns,
6893
+ defaultMatchWidth: "wide",
6894
+ parsePatterns: parseMonthPatterns,
6895
+ defaultParseWidth: "any"
6896
+ }),
6897
+ day: buildMatchFn({
6898
+ matchPatterns: matchDayPatterns,
6899
+ defaultMatchWidth: "wide",
6900
+ parsePatterns: parseDayPatterns,
6901
+ defaultParseWidth: "any"
6902
+ }),
6903
+ dayPeriod: buildMatchFn({
6904
+ matchPatterns: matchDayPeriodPatterns,
6905
+ defaultMatchWidth: "any",
6906
+ parsePatterns: parseDayPeriodPatterns,
6907
+ defaultParseWidth: "any"
6908
+ })
6909
+ };
6910
+
6911
+ // node_modules/date-fns/locale/en-US.js
6912
+ var enUS = {
6913
+ code: "en-US",
6914
+ formatDistance,
6915
+ formatLong,
6916
+ formatRelative,
6917
+ localize,
6918
+ match,
6919
+ options: {
6920
+ weekStartsOn: 0,
6921
+ firstWeekContainsDate: 1
6922
+ }
6923
+ };
6924
+
6925
+ // node_modules/date-fns/getDayOfYear.js
6926
+ function getDayOfYear(date, options) {
6927
+ const _date = toDate(date, options?.in);
6928
+ const diff = differenceInCalendarDays(_date, startOfYear(_date));
6929
+ const dayOfYear = diff + 1;
6930
+ return dayOfYear;
6931
+ }
6932
+
6933
+ // node_modules/date-fns/getISOWeek.js
6934
+ function getISOWeek(date, options) {
6935
+ const _date = toDate(date, options?.in);
6936
+ const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);
6937
+ return Math.round(diff / millisecondsInWeek) + 1;
6938
+ }
6939
+
6940
+ // node_modules/date-fns/getWeekYear.js
6941
+ function getWeekYear(date, options) {
6942
+ const _date = toDate(date, options?.in);
6943
+ const year = _date.getFullYear();
6944
+ const defaultOptions2 = getDefaultOptions();
6945
+ const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1;
6946
+ const firstWeekOfNextYear = constructFrom(options?.in || date, 0);
6947
+ firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
6948
+ firstWeekOfNextYear.setHours(0, 0, 0, 0);
6949
+ const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);
6950
+ const firstWeekOfThisYear = constructFrom(options?.in || date, 0);
6951
+ firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);
6952
+ firstWeekOfThisYear.setHours(0, 0, 0, 0);
6953
+ const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);
6954
+ if (+_date >= +startOfNextYear) {
6955
+ return year + 1;
6956
+ } else if (+_date >= +startOfThisYear) {
6957
+ return year;
6958
+ } else {
6959
+ return year - 1;
6960
+ }
6961
+ }
6962
+
6963
+ // node_modules/date-fns/startOfWeekYear.js
6964
+ function startOfWeekYear(date, options) {
6965
+ const defaultOptions2 = getDefaultOptions();
6966
+ const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1;
6967
+ const year = getWeekYear(date, options);
6968
+ const firstWeek = constructFrom(options?.in || date, 0);
6969
+ firstWeek.setFullYear(year, 0, firstWeekContainsDate);
6970
+ firstWeek.setHours(0, 0, 0, 0);
6971
+ const _date = startOfWeek(firstWeek, options);
6972
+ return _date;
6973
+ }
6974
+
6975
+ // node_modules/date-fns/getWeek.js
6976
+ function getWeek(date, options) {
6977
+ const _date = toDate(date, options?.in);
6978
+ const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);
6979
+ return Math.round(diff / millisecondsInWeek) + 1;
6980
+ }
6981
+
6982
+ // node_modules/date-fns/_lib/addLeadingZeros.js
6983
+ function addLeadingZeros(number, targetLength) {
6984
+ const sign = number < 0 ? "-" : "";
6985
+ const output = Math.abs(number).toString().padStart(targetLength, "0");
6986
+ return sign + output;
6987
+ }
6988
+
6989
+ // node_modules/date-fns/_lib/format/lightFormatters.js
6990
+ var lightFormatters = {
6991
+ // Year
6992
+ y(date, token) {
6993
+ const signedYear = date.getFullYear();
6994
+ const year = signedYear > 0 ? signedYear : 1 - signedYear;
6995
+ return addLeadingZeros(token === "yy" ? year % 100 : year, token.length);
6996
+ },
6997
+ // Month
6998
+ M(date, token) {
6999
+ const month = date.getMonth();
7000
+ return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2);
7001
+ },
7002
+ // Day of the month
7003
+ d(date, token) {
7004
+ return addLeadingZeros(date.getDate(), token.length);
7005
+ },
7006
+ // AM or PM
7007
+ a(date, token) {
7008
+ const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am";
7009
+ switch (token) {
7010
+ case "a":
7011
+ case "aa":
7012
+ return dayPeriodEnumValue.toUpperCase();
7013
+ case "aaa":
7014
+ return dayPeriodEnumValue;
7015
+ case "aaaaa":
7016
+ return dayPeriodEnumValue[0];
7017
+ case "aaaa":
7018
+ default:
7019
+ return dayPeriodEnumValue === "am" ? "a.m." : "p.m.";
7020
+ }
7021
+ },
7022
+ // Hour [1-12]
7023
+ h(date, token) {
7024
+ return addLeadingZeros(date.getHours() % 12 || 12, token.length);
7025
+ },
7026
+ // Hour [0-23]
7027
+ H(date, token) {
7028
+ return addLeadingZeros(date.getHours(), token.length);
7029
+ },
7030
+ // Minute
7031
+ m(date, token) {
7032
+ return addLeadingZeros(date.getMinutes(), token.length);
7033
+ },
7034
+ // Second
7035
+ s(date, token) {
7036
+ return addLeadingZeros(date.getSeconds(), token.length);
7037
+ },
7038
+ // Fraction of second
7039
+ S(date, token) {
7040
+ const numberOfDigits = token.length;
7041
+ const milliseconds = date.getMilliseconds();
7042
+ const fractionalSeconds = Math.trunc(
7043
+ milliseconds * Math.pow(10, numberOfDigits - 3)
7044
+ );
7045
+ return addLeadingZeros(fractionalSeconds, token.length);
7046
+ }
7047
+ };
7048
+
7049
+ // node_modules/date-fns/_lib/format/formatters.js
7050
+ var dayPeriodEnum = {
7051
+ am: "am",
7052
+ pm: "pm",
7053
+ midnight: "midnight",
7054
+ noon: "noon",
7055
+ morning: "morning",
7056
+ afternoon: "afternoon",
7057
+ evening: "evening",
7058
+ night: "night"
7059
+ };
7060
+ var formatters = {
7061
+ // Era
7062
+ G: function(date, token, localize3) {
7063
+ const era = date.getFullYear() > 0 ? 1 : 0;
7064
+ switch (token) {
7065
+ // AD, BC
7066
+ case "G":
7067
+ case "GG":
7068
+ case "GGG":
7069
+ return localize3.era(era, { width: "abbreviated" });
7070
+ // A, B
7071
+ case "GGGGG":
7072
+ return localize3.era(era, { width: "narrow" });
7073
+ // Anno Domini, Before Christ
7074
+ case "GGGG":
7075
+ default:
7076
+ return localize3.era(era, { width: "wide" });
7077
+ }
7078
+ },
7079
+ // Year
7080
+ y: function(date, token, localize3) {
7081
+ if (token === "yo") {
7082
+ const signedYear = date.getFullYear();
7083
+ const year = signedYear > 0 ? signedYear : 1 - signedYear;
7084
+ return localize3.ordinalNumber(year, { unit: "year" });
7085
+ }
7086
+ return lightFormatters.y(date, token);
7087
+ },
7088
+ // Local week-numbering year
7089
+ Y: function(date, token, localize3, options) {
7090
+ const signedWeekYear = getWeekYear(date, options);
7091
+ const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;
7092
+ if (token === "YY") {
7093
+ const twoDigitYear = weekYear % 100;
7094
+ return addLeadingZeros(twoDigitYear, 2);
7095
+ }
7096
+ if (token === "Yo") {
7097
+ return localize3.ordinalNumber(weekYear, { unit: "year" });
7098
+ }
7099
+ return addLeadingZeros(weekYear, token.length);
7100
+ },
7101
+ // ISO week-numbering year
7102
+ R: function(date, token) {
7103
+ const isoWeekYear = getISOWeekYear(date);
7104
+ return addLeadingZeros(isoWeekYear, token.length);
7105
+ },
7106
+ // Extended year. This is a single number designating the year of this calendar system.
7107
+ // The main difference between `y` and `u` localizers are B.C. years:
7108
+ // | Year | `y` | `u` |
7109
+ // |------|-----|-----|
7110
+ // | AC 1 | 1 | 1 |
7111
+ // | BC 1 | 1 | 0 |
7112
+ // | BC 2 | 2 | -1 |
7113
+ // Also `yy` always returns the last two digits of a year,
7114
+ // while `uu` pads single digit years to 2 characters and returns other years unchanged.
7115
+ u: function(date, token) {
7116
+ const year = date.getFullYear();
7117
+ return addLeadingZeros(year, token.length);
7118
+ },
7119
+ // Quarter
7120
+ Q: function(date, token, localize3) {
7121
+ const quarter = Math.ceil((date.getMonth() + 1) / 3);
7122
+ switch (token) {
7123
+ // 1, 2, 3, 4
7124
+ case "Q":
7125
+ return String(quarter);
7126
+ // 01, 02, 03, 04
7127
+ case "QQ":
7128
+ return addLeadingZeros(quarter, 2);
7129
+ // 1st, 2nd, 3rd, 4th
7130
+ case "Qo":
7131
+ return localize3.ordinalNumber(quarter, { unit: "quarter" });
7132
+ // Q1, Q2, Q3, Q4
7133
+ case "QQQ":
7134
+ return localize3.quarter(quarter, {
7135
+ width: "abbreviated",
7136
+ context: "formatting"
7137
+ });
7138
+ // 1, 2, 3, 4 (narrow quarter; could be not numerical)
7139
+ case "QQQQQ":
7140
+ return localize3.quarter(quarter, {
7141
+ width: "narrow",
7142
+ context: "formatting"
7143
+ });
7144
+ // 1st quarter, 2nd quarter, ...
7145
+ case "QQQQ":
7146
+ default:
7147
+ return localize3.quarter(quarter, {
7148
+ width: "wide",
7149
+ context: "formatting"
7150
+ });
7151
+ }
7152
+ },
7153
+ // Stand-alone quarter
7154
+ q: function(date, token, localize3) {
7155
+ const quarter = Math.ceil((date.getMonth() + 1) / 3);
7156
+ switch (token) {
7157
+ // 1, 2, 3, 4
7158
+ case "q":
7159
+ return String(quarter);
7160
+ // 01, 02, 03, 04
7161
+ case "qq":
7162
+ return addLeadingZeros(quarter, 2);
7163
+ // 1st, 2nd, 3rd, 4th
7164
+ case "qo":
7165
+ return localize3.ordinalNumber(quarter, { unit: "quarter" });
7166
+ // Q1, Q2, Q3, Q4
7167
+ case "qqq":
7168
+ return localize3.quarter(quarter, {
7169
+ width: "abbreviated",
7170
+ context: "standalone"
7171
+ });
7172
+ // 1, 2, 3, 4 (narrow quarter; could be not numerical)
7173
+ case "qqqqq":
7174
+ return localize3.quarter(quarter, {
7175
+ width: "narrow",
7176
+ context: "standalone"
7177
+ });
7178
+ // 1st quarter, 2nd quarter, ...
7179
+ case "qqqq":
7180
+ default:
7181
+ return localize3.quarter(quarter, {
7182
+ width: "wide",
7183
+ context: "standalone"
7184
+ });
7185
+ }
7186
+ },
7187
+ // Month
7188
+ M: function(date, token, localize3) {
7189
+ const month = date.getMonth();
7190
+ switch (token) {
7191
+ case "M":
7192
+ case "MM":
7193
+ return lightFormatters.M(date, token);
7194
+ // 1st, 2nd, ..., 12th
7195
+ case "Mo":
7196
+ return localize3.ordinalNumber(month + 1, { unit: "month" });
7197
+ // Jan, Feb, ..., Dec
7198
+ case "MMM":
7199
+ return localize3.month(month, {
7200
+ width: "abbreviated",
7201
+ context: "formatting"
7202
+ });
7203
+ // J, F, ..., D
7204
+ case "MMMMM":
7205
+ return localize3.month(month, {
7206
+ width: "narrow",
7207
+ context: "formatting"
7208
+ });
7209
+ // January, February, ..., December
7210
+ case "MMMM":
7211
+ default:
7212
+ return localize3.month(month, { width: "wide", context: "formatting" });
7213
+ }
7214
+ },
7215
+ // Stand-alone month
7216
+ L: function(date, token, localize3) {
7217
+ const month = date.getMonth();
7218
+ switch (token) {
7219
+ // 1, 2, ..., 12
7220
+ case "L":
7221
+ return String(month + 1);
7222
+ // 01, 02, ..., 12
7223
+ case "LL":
7224
+ return addLeadingZeros(month + 1, 2);
7225
+ // 1st, 2nd, ..., 12th
7226
+ case "Lo":
7227
+ return localize3.ordinalNumber(month + 1, { unit: "month" });
7228
+ // Jan, Feb, ..., Dec
7229
+ case "LLL":
7230
+ return localize3.month(month, {
7231
+ width: "abbreviated",
7232
+ context: "standalone"
7233
+ });
7234
+ // J, F, ..., D
7235
+ case "LLLLL":
7236
+ return localize3.month(month, {
7237
+ width: "narrow",
7238
+ context: "standalone"
7239
+ });
7240
+ // January, February, ..., December
7241
+ case "LLLL":
7242
+ default:
7243
+ return localize3.month(month, { width: "wide", context: "standalone" });
7244
+ }
7245
+ },
7246
+ // Local week of year
7247
+ w: function(date, token, localize3, options) {
7248
+ const week = getWeek(date, options);
7249
+ if (token === "wo") {
7250
+ return localize3.ordinalNumber(week, { unit: "week" });
7251
+ }
7252
+ return addLeadingZeros(week, token.length);
7253
+ },
7254
+ // ISO week of year
7255
+ I: function(date, token, localize3) {
7256
+ const isoWeek = getISOWeek(date);
7257
+ if (token === "Io") {
7258
+ return localize3.ordinalNumber(isoWeek, { unit: "week" });
7259
+ }
7260
+ return addLeadingZeros(isoWeek, token.length);
7261
+ },
7262
+ // Day of the month
7263
+ d: function(date, token, localize3) {
7264
+ if (token === "do") {
7265
+ return localize3.ordinalNumber(date.getDate(), { unit: "date" });
7266
+ }
7267
+ return lightFormatters.d(date, token);
7268
+ },
7269
+ // Day of year
7270
+ D: function(date, token, localize3) {
7271
+ const dayOfYear = getDayOfYear(date);
7272
+ if (token === "Do") {
7273
+ return localize3.ordinalNumber(dayOfYear, { unit: "dayOfYear" });
7274
+ }
7275
+ return addLeadingZeros(dayOfYear, token.length);
7276
+ },
7277
+ // Day of week
7278
+ E: function(date, token, localize3) {
7279
+ const dayOfWeek = date.getDay();
7280
+ switch (token) {
7281
+ // Tue
7282
+ case "E":
7283
+ case "EE":
7284
+ case "EEE":
7285
+ return localize3.day(dayOfWeek, {
7286
+ width: "abbreviated",
7287
+ context: "formatting"
7288
+ });
7289
+ // T
7290
+ case "EEEEE":
7291
+ return localize3.day(dayOfWeek, {
7292
+ width: "narrow",
7293
+ context: "formatting"
7294
+ });
7295
+ // Tu
7296
+ case "EEEEEE":
7297
+ return localize3.day(dayOfWeek, {
7298
+ width: "short",
7299
+ context: "formatting"
7300
+ });
7301
+ // Tuesday
7302
+ case "EEEE":
7303
+ default:
7304
+ return localize3.day(dayOfWeek, {
7305
+ width: "wide",
7306
+ context: "formatting"
7307
+ });
7308
+ }
7309
+ },
7310
+ // Local day of week
7311
+ e: function(date, token, localize3, options) {
7312
+ const dayOfWeek = date.getDay();
7313
+ const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
7314
+ switch (token) {
7315
+ // Numerical value (Nth day of week with current locale or weekStartsOn)
7316
+ case "e":
7317
+ return String(localDayOfWeek);
7318
+ // Padded numerical value
7319
+ case "ee":
7320
+ return addLeadingZeros(localDayOfWeek, 2);
7321
+ // 1st, 2nd, ..., 7th
7322
+ case "eo":
7323
+ return localize3.ordinalNumber(localDayOfWeek, { unit: "day" });
7324
+ case "eee":
7325
+ return localize3.day(dayOfWeek, {
7326
+ width: "abbreviated",
7327
+ context: "formatting"
7328
+ });
7329
+ // T
7330
+ case "eeeee":
7331
+ return localize3.day(dayOfWeek, {
7332
+ width: "narrow",
7333
+ context: "formatting"
7334
+ });
7335
+ // Tu
7336
+ case "eeeeee":
7337
+ return localize3.day(dayOfWeek, {
7338
+ width: "short",
7339
+ context: "formatting"
7340
+ });
7341
+ // Tuesday
7342
+ case "eeee":
7343
+ default:
7344
+ return localize3.day(dayOfWeek, {
7345
+ width: "wide",
7346
+ context: "formatting"
7347
+ });
7348
+ }
7349
+ },
7350
+ // Stand-alone local day of week
7351
+ c: function(date, token, localize3, options) {
7352
+ const dayOfWeek = date.getDay();
7353
+ const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
7354
+ switch (token) {
7355
+ // Numerical value (same as in `e`)
7356
+ case "c":
7357
+ return String(localDayOfWeek);
7358
+ // Padded numerical value
7359
+ case "cc":
7360
+ return addLeadingZeros(localDayOfWeek, token.length);
7361
+ // 1st, 2nd, ..., 7th
7362
+ case "co":
7363
+ return localize3.ordinalNumber(localDayOfWeek, { unit: "day" });
7364
+ case "ccc":
7365
+ return localize3.day(dayOfWeek, {
7366
+ width: "abbreviated",
7367
+ context: "standalone"
7368
+ });
7369
+ // T
7370
+ case "ccccc":
7371
+ return localize3.day(dayOfWeek, {
7372
+ width: "narrow",
7373
+ context: "standalone"
7374
+ });
7375
+ // Tu
7376
+ case "cccccc":
7377
+ return localize3.day(dayOfWeek, {
7378
+ width: "short",
7379
+ context: "standalone"
7380
+ });
7381
+ // Tuesday
7382
+ case "cccc":
7383
+ default:
7384
+ return localize3.day(dayOfWeek, {
7385
+ width: "wide",
7386
+ context: "standalone"
7387
+ });
7388
+ }
7389
+ },
7390
+ // ISO day of week
7391
+ i: function(date, token, localize3) {
7392
+ const dayOfWeek = date.getDay();
7393
+ const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
7394
+ switch (token) {
7395
+ // 2
7396
+ case "i":
7397
+ return String(isoDayOfWeek);
7398
+ // 02
7399
+ case "ii":
7400
+ return addLeadingZeros(isoDayOfWeek, token.length);
7401
+ // 2nd
7402
+ case "io":
7403
+ return localize3.ordinalNumber(isoDayOfWeek, { unit: "day" });
7404
+ // Tue
7405
+ case "iii":
7406
+ return localize3.day(dayOfWeek, {
7407
+ width: "abbreviated",
7408
+ context: "formatting"
7409
+ });
7410
+ // T
7411
+ case "iiiii":
7412
+ return localize3.day(dayOfWeek, {
7413
+ width: "narrow",
7414
+ context: "formatting"
7415
+ });
7416
+ // Tu
7417
+ case "iiiiii":
7418
+ return localize3.day(dayOfWeek, {
7419
+ width: "short",
7420
+ context: "formatting"
7421
+ });
7422
+ // Tuesday
7423
+ case "iiii":
7424
+ default:
7425
+ return localize3.day(dayOfWeek, {
7426
+ width: "wide",
7427
+ context: "formatting"
7428
+ });
7429
+ }
7430
+ },
7431
+ // AM or PM
7432
+ a: function(date, token, localize3) {
7433
+ const hours = date.getHours();
7434
+ const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
7435
+ switch (token) {
7436
+ case "a":
7437
+ case "aa":
7438
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7439
+ width: "abbreviated",
7440
+ context: "formatting"
7441
+ });
7442
+ case "aaa":
7443
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7444
+ width: "abbreviated",
7445
+ context: "formatting"
7446
+ }).toLowerCase();
7447
+ case "aaaaa":
7448
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7449
+ width: "narrow",
7450
+ context: "formatting"
7451
+ });
7452
+ case "aaaa":
7453
+ default:
7454
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7455
+ width: "wide",
7456
+ context: "formatting"
7457
+ });
7458
+ }
7459
+ },
7460
+ // AM, PM, midnight, noon
7461
+ b: function(date, token, localize3) {
7462
+ const hours = date.getHours();
7463
+ let dayPeriodEnumValue;
7464
+ if (hours === 12) {
7465
+ dayPeriodEnumValue = dayPeriodEnum.noon;
7466
+ } else if (hours === 0) {
7467
+ dayPeriodEnumValue = dayPeriodEnum.midnight;
7468
+ } else {
7469
+ dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
7470
+ }
7471
+ switch (token) {
7472
+ case "b":
7473
+ case "bb":
7474
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7475
+ width: "abbreviated",
7476
+ context: "formatting"
7477
+ });
7478
+ case "bbb":
7479
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7480
+ width: "abbreviated",
7481
+ context: "formatting"
7482
+ }).toLowerCase();
7483
+ case "bbbbb":
7484
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7485
+ width: "narrow",
7486
+ context: "formatting"
7487
+ });
7488
+ case "bbbb":
7489
+ default:
7490
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7491
+ width: "wide",
7492
+ context: "formatting"
7493
+ });
7494
+ }
7495
+ },
7496
+ // in the morning, in the afternoon, in the evening, at night
7497
+ B: function(date, token, localize3) {
7498
+ const hours = date.getHours();
7499
+ let dayPeriodEnumValue;
7500
+ if (hours >= 17) {
7501
+ dayPeriodEnumValue = dayPeriodEnum.evening;
7502
+ } else if (hours >= 12) {
7503
+ dayPeriodEnumValue = dayPeriodEnum.afternoon;
7504
+ } else if (hours >= 4) {
7505
+ dayPeriodEnumValue = dayPeriodEnum.morning;
7506
+ } else {
7507
+ dayPeriodEnumValue = dayPeriodEnum.night;
7508
+ }
7509
+ switch (token) {
7510
+ case "B":
7511
+ case "BB":
7512
+ case "BBB":
7513
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7514
+ width: "abbreviated",
7515
+ context: "formatting"
7516
+ });
7517
+ case "BBBBB":
7518
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7519
+ width: "narrow",
7520
+ context: "formatting"
7521
+ });
7522
+ case "BBBB":
7523
+ default:
7524
+ return localize3.dayPeriod(dayPeriodEnumValue, {
7525
+ width: "wide",
7526
+ context: "formatting"
7527
+ });
5616
7528
  }
5617
- );
7529
+ },
7530
+ // Hour [1-12]
7531
+ h: function(date, token, localize3) {
7532
+ if (token === "ho") {
7533
+ let hours = date.getHours() % 12;
7534
+ if (hours === 0) hours = 12;
7535
+ return localize3.ordinalNumber(hours, { unit: "hour" });
7536
+ }
7537
+ return lightFormatters.h(date, token);
7538
+ },
7539
+ // Hour [0-23]
7540
+ H: function(date, token, localize3) {
7541
+ if (token === "Ho") {
7542
+ return localize3.ordinalNumber(date.getHours(), { unit: "hour" });
7543
+ }
7544
+ return lightFormatters.H(date, token);
7545
+ },
7546
+ // Hour [0-11]
7547
+ K: function(date, token, localize3) {
7548
+ const hours = date.getHours() % 12;
7549
+ if (token === "Ko") {
7550
+ return localize3.ordinalNumber(hours, { unit: "hour" });
7551
+ }
7552
+ return addLeadingZeros(hours, token.length);
7553
+ },
7554
+ // Hour [1-24]
7555
+ k: function(date, token, localize3) {
7556
+ let hours = date.getHours();
7557
+ if (hours === 0) hours = 24;
7558
+ if (token === "ko") {
7559
+ return localize3.ordinalNumber(hours, { unit: "hour" });
7560
+ }
7561
+ return addLeadingZeros(hours, token.length);
7562
+ },
7563
+ // Minute
7564
+ m: function(date, token, localize3) {
7565
+ if (token === "mo") {
7566
+ return localize3.ordinalNumber(date.getMinutes(), { unit: "minute" });
7567
+ }
7568
+ return lightFormatters.m(date, token);
7569
+ },
7570
+ // Second
7571
+ s: function(date, token, localize3) {
7572
+ if (token === "so") {
7573
+ return localize3.ordinalNumber(date.getSeconds(), { unit: "second" });
7574
+ }
7575
+ return lightFormatters.s(date, token);
7576
+ },
7577
+ // Fraction of second
7578
+ S: function(date, token) {
7579
+ return lightFormatters.S(date, token);
7580
+ },
7581
+ // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
7582
+ X: function(date, token, _localize) {
7583
+ const timezoneOffset = date.getTimezoneOffset();
7584
+ if (timezoneOffset === 0) {
7585
+ return "Z";
7586
+ }
7587
+ switch (token) {
7588
+ // Hours and optional minutes
7589
+ case "X":
7590
+ return formatTimezoneWithOptionalMinutes(timezoneOffset);
7591
+ // Hours, minutes and optional seconds without `:` delimiter
7592
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
7593
+ // so this token always has the same output as `XX`
7594
+ case "XXXX":
7595
+ case "XX":
7596
+ return formatTimezone(timezoneOffset);
7597
+ // Hours, minutes and optional seconds with `:` delimiter
7598
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
7599
+ // so this token always has the same output as `XXX`
7600
+ case "XXXXX":
7601
+ case "XXX":
7602
+ // Hours and minutes with `:` delimiter
7603
+ default:
7604
+ return formatTimezone(timezoneOffset, ":");
7605
+ }
7606
+ },
7607
+ // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
7608
+ x: function(date, token, _localize) {
7609
+ const timezoneOffset = date.getTimezoneOffset();
7610
+ switch (token) {
7611
+ // Hours and optional minutes
7612
+ case "x":
7613
+ return formatTimezoneWithOptionalMinutes(timezoneOffset);
7614
+ // Hours, minutes and optional seconds without `:` delimiter
7615
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
7616
+ // so this token always has the same output as `xx`
7617
+ case "xxxx":
7618
+ case "xx":
7619
+ return formatTimezone(timezoneOffset);
7620
+ // Hours, minutes and optional seconds with `:` delimiter
7621
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
7622
+ // so this token always has the same output as `xxx`
7623
+ case "xxxxx":
7624
+ case "xxx":
7625
+ // Hours and minutes with `:` delimiter
7626
+ default:
7627
+ return formatTimezone(timezoneOffset, ":");
7628
+ }
7629
+ },
7630
+ // Timezone (GMT)
7631
+ O: function(date, token, _localize) {
7632
+ const timezoneOffset = date.getTimezoneOffset();
7633
+ switch (token) {
7634
+ // Short
7635
+ case "O":
7636
+ case "OO":
7637
+ case "OOO":
7638
+ return "GMT" + formatTimezoneShort(timezoneOffset, ":");
7639
+ // Long
7640
+ case "OOOO":
7641
+ default:
7642
+ return "GMT" + formatTimezone(timezoneOffset, ":");
7643
+ }
7644
+ },
7645
+ // Timezone (specific non-location)
7646
+ z: function(date, token, _localize) {
7647
+ const timezoneOffset = date.getTimezoneOffset();
7648
+ switch (token) {
7649
+ // Short
7650
+ case "z":
7651
+ case "zz":
7652
+ case "zzz":
7653
+ return "GMT" + formatTimezoneShort(timezoneOffset, ":");
7654
+ // Long
7655
+ case "zzzz":
7656
+ default:
7657
+ return "GMT" + formatTimezone(timezoneOffset, ":");
7658
+ }
7659
+ },
7660
+ // Seconds timestamp
7661
+ t: function(date, token, _localize) {
7662
+ const timestamp = Math.trunc(+date / 1e3);
7663
+ return addLeadingZeros(timestamp, token.length);
7664
+ },
7665
+ // Milliseconds timestamp
7666
+ T: function(date, token, _localize) {
7667
+ return addLeadingZeros(+date, token.length);
7668
+ }
7669
+ };
7670
+ function formatTimezoneShort(offset4, delimiter = "") {
7671
+ const sign = offset4 > 0 ? "-" : "+";
7672
+ const absOffset = Math.abs(offset4);
7673
+ const hours = Math.trunc(absOffset / 60);
7674
+ const minutes = absOffset % 60;
7675
+ if (minutes === 0) {
7676
+ return sign + String(hours);
7677
+ }
7678
+ return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);
7679
+ }
7680
+ function formatTimezoneWithOptionalMinutes(offset4, delimiter) {
7681
+ if (offset4 % 60 === 0) {
7682
+ const sign = offset4 > 0 ? "-" : "+";
7683
+ return sign + addLeadingZeros(Math.abs(offset4) / 60, 2);
7684
+ }
7685
+ return formatTimezone(offset4, delimiter);
7686
+ }
7687
+ function formatTimezone(offset4, delimiter = "") {
7688
+ const sign = offset4 > 0 ? "-" : "+";
7689
+ const absOffset = Math.abs(offset4);
7690
+ const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);
7691
+ const minutes = addLeadingZeros(absOffset % 60, 2);
7692
+ return sign + hours + delimiter + minutes;
5618
7693
  }
5619
7694
 
5620
- // node_modules/lucide-react/dist/esm/createLucideIcon.js
5621
- import { forwardRef as forwardRef14, createElement as createElement7 } from "react";
5622
-
5623
- // node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5624
- var mergeClasses = (...classes) => classes.filter((className, index2, array) => {
5625
- return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
5626
- }).join(" ").trim();
5627
-
5628
- // node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js
5629
- var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
5630
-
5631
- // node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js
5632
- var toCamelCase = (string) => string.replace(
5633
- /^([A-Z])|[\s-_]+(\w)/g,
5634
- (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
5635
- );
5636
-
5637
- // node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js
5638
- var toPascalCase = (string) => {
5639
- const camelCase = toCamelCase(string);
5640
- return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
7695
+ // node_modules/date-fns/_lib/format/longFormatters.js
7696
+ var dateLongFormatter = (pattern, formatLong3) => {
7697
+ switch (pattern) {
7698
+ case "P":
7699
+ return formatLong3.date({ width: "short" });
7700
+ case "PP":
7701
+ return formatLong3.date({ width: "medium" });
7702
+ case "PPP":
7703
+ return formatLong3.date({ width: "long" });
7704
+ case "PPPP":
7705
+ default:
7706
+ return formatLong3.date({ width: "full" });
7707
+ }
7708
+ };
7709
+ var timeLongFormatter = (pattern, formatLong3) => {
7710
+ switch (pattern) {
7711
+ case "p":
7712
+ return formatLong3.time({ width: "short" });
7713
+ case "pp":
7714
+ return formatLong3.time({ width: "medium" });
7715
+ case "ppp":
7716
+ return formatLong3.time({ width: "long" });
7717
+ case "pppp":
7718
+ default:
7719
+ return formatLong3.time({ width: "full" });
7720
+ }
7721
+ };
7722
+ var dateTimeLongFormatter = (pattern, formatLong3) => {
7723
+ const matchResult = pattern.match(/(P+)(p+)?/) || [];
7724
+ const datePattern = matchResult[1];
7725
+ const timePattern = matchResult[2];
7726
+ if (!timePattern) {
7727
+ return dateLongFormatter(pattern, formatLong3);
7728
+ }
7729
+ let dateTimeFormat;
7730
+ switch (datePattern) {
7731
+ case "P":
7732
+ dateTimeFormat = formatLong3.dateTime({ width: "short" });
7733
+ break;
7734
+ case "PP":
7735
+ dateTimeFormat = formatLong3.dateTime({ width: "medium" });
7736
+ break;
7737
+ case "PPP":
7738
+ dateTimeFormat = formatLong3.dateTime({ width: "long" });
7739
+ break;
7740
+ case "PPPP":
7741
+ default:
7742
+ dateTimeFormat = formatLong3.dateTime({ width: "full" });
7743
+ break;
7744
+ }
7745
+ return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong3)).replace("{{time}}", timeLongFormatter(timePattern, formatLong3));
7746
+ };
7747
+ var longFormatters = {
7748
+ p: timeLongFormatter,
7749
+ P: dateTimeLongFormatter
5641
7750
  };
5642
7751
 
5643
- // node_modules/lucide-react/dist/esm/Icon.js
5644
- import { forwardRef as forwardRef13, createElement as createElement6 } from "react";
7752
+ // node_modules/date-fns/_lib/protectedTokens.js
7753
+ var dayOfYearTokenRE = /^D+$/;
7754
+ var weekYearTokenRE = /^Y+$/;
7755
+ var throwTokens = ["D", "DD", "YY", "YYYY"];
7756
+ function isProtectedDayOfYearToken(token) {
7757
+ return dayOfYearTokenRE.test(token);
7758
+ }
7759
+ function isProtectedWeekYearToken(token) {
7760
+ return weekYearTokenRE.test(token);
7761
+ }
7762
+ function warnOrThrowProtectedError(token, format2, input) {
7763
+ const _message = message(token, format2, input);
7764
+ console.warn(_message);
7765
+ if (throwTokens.includes(token)) throw new RangeError(_message);
7766
+ }
7767
+ function message(token, format2, input) {
7768
+ const subject = token[0] === "Y" ? "years" : "days of the month";
7769
+ return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format2}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;
7770
+ }
5645
7771
 
5646
- // node_modules/lucide-react/dist/esm/defaultAttributes.js
5647
- var defaultAttributes = {
5648
- xmlns: "http://www.w3.org/2000/svg",
5649
- width: 24,
5650
- height: 24,
5651
- viewBox: "0 0 24 24",
5652
- fill: "none",
5653
- stroke: "currentColor",
5654
- strokeWidth: 2,
5655
- strokeLinecap: "round",
5656
- strokeLinejoin: "round"
5657
- };
7772
+ // node_modules/date-fns/format.js
7773
+ var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
7774
+ var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
7775
+ var escapedStringRegExp = /^'([^]*?)'?$/;
7776
+ var doubleQuoteRegExp = /''/g;
7777
+ var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
7778
+ function format(date, formatStr, options) {
7779
+ const defaultOptions2 = getDefaultOptions();
7780
+ const locale = options?.locale ?? defaultOptions2.locale ?? enUS;
7781
+ const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1;
7782
+ const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0;
7783
+ const originalDate = toDate(date, options?.in);
7784
+ if (!isValid(originalDate)) {
7785
+ throw new RangeError("Invalid time value");
7786
+ }
7787
+ let parts = formatStr.match(longFormattingTokensRegExp).map((substring) => {
7788
+ const firstCharacter = substring[0];
7789
+ if (firstCharacter === "p" || firstCharacter === "P") {
7790
+ const longFormatter = longFormatters[firstCharacter];
7791
+ return longFormatter(substring, locale.formatLong);
7792
+ }
7793
+ return substring;
7794
+ }).join("").match(formattingTokensRegExp).map((substring) => {
7795
+ if (substring === "''") {
7796
+ return { isToken: false, value: "'" };
7797
+ }
7798
+ const firstCharacter = substring[0];
7799
+ if (firstCharacter === "'") {
7800
+ return { isToken: false, value: cleanEscapedString(substring) };
7801
+ }
7802
+ if (formatters[firstCharacter]) {
7803
+ return { isToken: true, value: substring };
7804
+ }
7805
+ if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
7806
+ throw new RangeError(
7807
+ "Format string contains an unescaped latin alphabet character `" + firstCharacter + "`"
7808
+ );
7809
+ }
7810
+ return { isToken: false, value: substring };
7811
+ });
7812
+ if (locale.localize.preprocessor) {
7813
+ parts = locale.localize.preprocessor(originalDate, parts);
7814
+ }
7815
+ const formatterOptions = {
7816
+ firstWeekContainsDate,
7817
+ weekStartsOn,
7818
+ locale
7819
+ };
7820
+ return parts.map((part) => {
7821
+ if (!part.isToken) return part.value;
7822
+ const token = part.value;
7823
+ if (!options?.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token) || !options?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {
7824
+ warnOrThrowProtectedError(token, formatStr, String(date));
7825
+ }
7826
+ const formatter = formatters[token[0]];
7827
+ return formatter(originalDate, token, locale.localize, formatterOptions);
7828
+ }).join("");
7829
+ }
7830
+ function cleanEscapedString(input) {
7831
+ const matched = input.match(escapedStringRegExp);
7832
+ if (!matched) {
7833
+ return input;
7834
+ }
7835
+ return matched[1].replace(doubleQuoteRegExp, "'");
7836
+ }
5658
7837
 
5659
- // node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js
5660
- var hasA11yProp = (props) => {
5661
- for (const prop in props) {
5662
- if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
5663
- return true;
7838
+ // node_modules/date-fns/locale/pt/_lib/formatDistance.js
7839
+ var formatDistanceLocale2 = {
7840
+ lessThanXSeconds: {
7841
+ one: "menos de um segundo",
7842
+ other: "menos de {{count}} segundos"
7843
+ },
7844
+ xSeconds: {
7845
+ one: "1 segundo",
7846
+ other: "{{count}} segundos"
7847
+ },
7848
+ halfAMinute: "meio minuto",
7849
+ lessThanXMinutes: {
7850
+ one: "menos de um minuto",
7851
+ other: "menos de {{count}} minutos"
7852
+ },
7853
+ xMinutes: {
7854
+ one: "1 minuto",
7855
+ other: "{{count}} minutos"
7856
+ },
7857
+ aboutXHours: {
7858
+ one: "aproximadamente 1 hora",
7859
+ other: "aproximadamente {{count}} horas"
7860
+ },
7861
+ xHours: {
7862
+ one: "1 hora",
7863
+ other: "{{count}} horas"
7864
+ },
7865
+ xDays: {
7866
+ one: "1 dia",
7867
+ other: "{{count}} dias"
7868
+ },
7869
+ aboutXWeeks: {
7870
+ one: "aproximadamente 1 semana",
7871
+ other: "aproximadamente {{count}} semanas"
7872
+ },
7873
+ xWeeks: {
7874
+ one: "1 semana",
7875
+ other: "{{count}} semanas"
7876
+ },
7877
+ aboutXMonths: {
7878
+ one: "aproximadamente 1 m\xEAs",
7879
+ other: "aproximadamente {{count}} meses"
7880
+ },
7881
+ xMonths: {
7882
+ one: "1 m\xEAs",
7883
+ other: "{{count}} meses"
7884
+ },
7885
+ aboutXYears: {
7886
+ one: "aproximadamente 1 ano",
7887
+ other: "aproximadamente {{count}} anos"
7888
+ },
7889
+ xYears: {
7890
+ one: "1 ano",
7891
+ other: "{{count}} anos"
7892
+ },
7893
+ overXYears: {
7894
+ one: "mais de 1 ano",
7895
+ other: "mais de {{count}} anos"
7896
+ },
7897
+ almostXYears: {
7898
+ one: "quase 1 ano",
7899
+ other: "quase {{count}} anos"
7900
+ }
7901
+ };
7902
+ var formatDistance2 = (token, count3, options) => {
7903
+ let result;
7904
+ const tokenValue = formatDistanceLocale2[token];
7905
+ if (typeof tokenValue === "string") {
7906
+ result = tokenValue;
7907
+ } else if (count3 === 1) {
7908
+ result = tokenValue.one;
7909
+ } else {
7910
+ result = tokenValue.other.replace("{{count}}", String(count3));
7911
+ }
7912
+ if (options?.addSuffix) {
7913
+ if (options.comparison && options.comparison > 0) {
7914
+ return "daqui a " + result;
7915
+ } else {
7916
+ return "h\xE1 " + result;
5664
7917
  }
5665
7918
  }
5666
- return false;
7919
+ return result;
5667
7920
  };
5668
7921
 
5669
- // node_modules/lucide-react/dist/esm/Icon.js
5670
- var Icon = forwardRef13(
5671
- ({
5672
- color = "currentColor",
5673
- size: size4 = 24,
5674
- strokeWidth = 2,
5675
- absoluteStrokeWidth,
5676
- className = "",
5677
- children,
5678
- iconNode,
5679
- ...rest
5680
- }, ref) => createElement6(
5681
- "svg",
5682
- {
5683
- ref,
5684
- ...defaultAttributes,
5685
- width: size4,
5686
- height: size4,
5687
- stroke: color,
5688
- strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size4) : strokeWidth,
5689
- className: mergeClasses("lucide", className),
5690
- ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
5691
- ...rest
5692
- },
5693
- [
5694
- ...iconNode.map(([tag, attrs]) => createElement6(tag, attrs)),
5695
- ...Array.isArray(children) ? children : [children]
5696
- ]
5697
- )
5698
- );
5699
-
5700
- // node_modules/lucide-react/dist/esm/createLucideIcon.js
5701
- var createLucideIcon = (iconName, iconNode) => {
5702
- const Component = forwardRef14(
5703
- ({ className, ...props }, ref) => createElement7(Icon, {
5704
- ref,
5705
- iconNode,
5706
- className: mergeClasses(
5707
- `lucide-${toKebabCase(toPascalCase(iconName))}`,
5708
- `lucide-${iconName}`,
5709
- className
5710
- ),
5711
- ...props
5712
- })
5713
- );
5714
- Component.displayName = toPascalCase(iconName);
5715
- return Component;
7922
+ // node_modules/date-fns/locale/pt/_lib/formatLong.js
7923
+ var dateFormats2 = {
7924
+ full: "EEEE, d 'de' MMMM 'de' y",
7925
+ long: "d 'de' MMMM 'de' y",
7926
+ medium: "d 'de' MMM 'de' y",
7927
+ short: "dd/MM/y"
7928
+ };
7929
+ var timeFormats2 = {
7930
+ full: "HH:mm:ss zzzz",
7931
+ long: "HH:mm:ss z",
7932
+ medium: "HH:mm:ss",
7933
+ short: "HH:mm"
7934
+ };
7935
+ var dateTimeFormats2 = {
7936
+ full: "{{date}} '\xE0s' {{time}}",
7937
+ long: "{{date}} '\xE0s' {{time}}",
7938
+ medium: "{{date}}, {{time}}",
7939
+ short: "{{date}}, {{time}}"
7940
+ };
7941
+ var formatLong2 = {
7942
+ date: buildFormatLongFn({
7943
+ formats: dateFormats2,
7944
+ defaultWidth: "full"
7945
+ }),
7946
+ time: buildFormatLongFn({
7947
+ formats: timeFormats2,
7948
+ defaultWidth: "full"
7949
+ }),
7950
+ dateTime: buildFormatLongFn({
7951
+ formats: dateTimeFormats2,
7952
+ defaultWidth: "full"
7953
+ })
5716
7954
  };
5717
7955
 
5718
- // node_modules/lucide-react/dist/esm/icons/check.js
5719
- var __iconNode = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
5720
- var Check = createLucideIcon("check", __iconNode);
5721
-
5722
- // node_modules/lucide-react/dist/esm/icons/chevron-down.js
5723
- var __iconNode2 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
5724
- var ChevronDown = createLucideIcon("chevron-down", __iconNode2);
7956
+ // node_modules/date-fns/locale/pt/_lib/formatRelative.js
7957
+ var formatRelativeLocale2 = {
7958
+ lastWeek: (date) => {
7959
+ const weekday = date.getDay();
7960
+ const last = weekday === 0 || weekday === 6 ? "\xFAltimo" : "\xFAltima";
7961
+ return "'" + last + "' eeee '\xE0s' p";
7962
+ },
7963
+ yesterday: "'ontem \xE0s' p",
7964
+ today: "'hoje \xE0s' p",
7965
+ tomorrow: "'amanh\xE3 \xE0s' p",
7966
+ nextWeek: "eeee '\xE0s' p",
7967
+ other: "P"
7968
+ };
7969
+ var formatRelative2 = (token, date, _baseDate, _options) => {
7970
+ const format2 = formatRelativeLocale2[token];
7971
+ if (typeof format2 === "function") {
7972
+ return format2(date);
7973
+ }
7974
+ return format2;
7975
+ };
5725
7976
 
5726
- // node_modules/lucide-react/dist/esm/icons/chevron-left.js
5727
- var __iconNode3 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
5728
- var ChevronLeft = createLucideIcon("chevron-left", __iconNode3);
7977
+ // node_modules/date-fns/locale/pt/_lib/localize.js
7978
+ var eraValues2 = {
7979
+ narrow: ["aC", "dC"],
7980
+ abbreviated: ["a.C.", "d.C."],
7981
+ wide: ["antes de Cristo", "depois de Cristo"]
7982
+ };
7983
+ var quarterValues2 = {
7984
+ narrow: ["1", "2", "3", "4"],
7985
+ abbreviated: ["T1", "T2", "T3", "T4"],
7986
+ wide: ["1\xBA trimestre", "2\xBA trimestre", "3\xBA trimestre", "4\xBA trimestre"]
7987
+ };
7988
+ var monthValues2 = {
7989
+ narrow: ["j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"],
7990
+ abbreviated: [
7991
+ "jan",
7992
+ "fev",
7993
+ "mar",
7994
+ "abr",
7995
+ "mai",
7996
+ "jun",
7997
+ "jul",
7998
+ "ago",
7999
+ "set",
8000
+ "out",
8001
+ "nov",
8002
+ "dez"
8003
+ ],
8004
+ wide: [
8005
+ "janeiro",
8006
+ "fevereiro",
8007
+ "mar\xE7o",
8008
+ "abril",
8009
+ "maio",
8010
+ "junho",
8011
+ "julho",
8012
+ "agosto",
8013
+ "setembro",
8014
+ "outubro",
8015
+ "novembro",
8016
+ "dezembro"
8017
+ ]
8018
+ };
8019
+ var dayValues2 = {
8020
+ narrow: ["d", "s", "t", "q", "q", "s", "s"],
8021
+ short: ["dom", "seg", "ter", "qua", "qui", "sex", "s\xE1b"],
8022
+ abbreviated: ["dom", "seg", "ter", "qua", "qui", "sex", "s\xE1b"],
8023
+ wide: [
8024
+ "domingo",
8025
+ "segunda-feira",
8026
+ "ter\xE7a-feira",
8027
+ "quarta-feira",
8028
+ "quinta-feira",
8029
+ "sexta-feira",
8030
+ "s\xE1bado"
8031
+ ]
8032
+ };
8033
+ var dayPeriodValues2 = {
8034
+ narrow: {
8035
+ am: "AM",
8036
+ pm: "PM",
8037
+ midnight: "meia-noite",
8038
+ noon: "meio-dia",
8039
+ morning: "manh\xE3",
8040
+ afternoon: "tarde",
8041
+ evening: "noite",
8042
+ night: "madrugada"
8043
+ },
8044
+ abbreviated: {
8045
+ am: "AM",
8046
+ pm: "PM",
8047
+ midnight: "meia-noite",
8048
+ noon: "meio-dia",
8049
+ morning: "manh\xE3",
8050
+ afternoon: "tarde",
8051
+ evening: "noite",
8052
+ night: "madrugada"
8053
+ },
8054
+ wide: {
8055
+ am: "AM",
8056
+ pm: "PM",
8057
+ midnight: "meia-noite",
8058
+ noon: "meio-dia",
8059
+ morning: "manh\xE3",
8060
+ afternoon: "tarde",
8061
+ evening: "noite",
8062
+ night: "madrugada"
8063
+ }
8064
+ };
8065
+ var formattingDayPeriodValues2 = {
8066
+ narrow: {
8067
+ am: "AM",
8068
+ pm: "PM",
8069
+ midnight: "meia-noite",
8070
+ noon: "meio-dia",
8071
+ morning: "da manh\xE3",
8072
+ afternoon: "da tarde",
8073
+ evening: "da noite",
8074
+ night: "da madrugada"
8075
+ },
8076
+ abbreviated: {
8077
+ am: "AM",
8078
+ pm: "PM",
8079
+ midnight: "meia-noite",
8080
+ noon: "meio-dia",
8081
+ morning: "da manh\xE3",
8082
+ afternoon: "da tarde",
8083
+ evening: "da noite",
8084
+ night: "da madrugada"
8085
+ },
8086
+ wide: {
8087
+ am: "AM",
8088
+ pm: "PM",
8089
+ midnight: "meia-noite",
8090
+ noon: "meio-dia",
8091
+ morning: "da manh\xE3",
8092
+ afternoon: "da tarde",
8093
+ evening: "da noite",
8094
+ night: "da madrugada"
8095
+ }
8096
+ };
8097
+ var ordinalNumber2 = (dirtyNumber, _options) => {
8098
+ const number = Number(dirtyNumber);
8099
+ return number + "\xBA";
8100
+ };
8101
+ var localize2 = {
8102
+ ordinalNumber: ordinalNumber2,
8103
+ era: buildLocalizeFn({
8104
+ values: eraValues2,
8105
+ defaultWidth: "wide"
8106
+ }),
8107
+ quarter: buildLocalizeFn({
8108
+ values: quarterValues2,
8109
+ defaultWidth: "wide",
8110
+ argumentCallback: (quarter) => quarter - 1
8111
+ }),
8112
+ month: buildLocalizeFn({
8113
+ values: monthValues2,
8114
+ defaultWidth: "wide"
8115
+ }),
8116
+ day: buildLocalizeFn({
8117
+ values: dayValues2,
8118
+ defaultWidth: "wide"
8119
+ }),
8120
+ dayPeriod: buildLocalizeFn({
8121
+ values: dayPeriodValues2,
8122
+ defaultWidth: "wide",
8123
+ formattingValues: formattingDayPeriodValues2,
8124
+ defaultFormattingWidth: "wide"
8125
+ })
8126
+ };
5729
8127
 
5730
- // node_modules/lucide-react/dist/esm/icons/chevron-right.js
5731
- var __iconNode4 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
5732
- var ChevronRight = createLucideIcon("chevron-right", __iconNode4);
8128
+ // node_modules/date-fns/locale/pt/_lib/match.js
8129
+ var matchOrdinalNumberPattern2 = /^(\d+)(º|ª)?/i;
8130
+ var parseOrdinalNumberPattern2 = /\d+/i;
8131
+ var matchEraPatterns2 = {
8132
+ narrow: /^(ac|dc|a|d)/i,
8133
+ abbreviated: /^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,
8134
+ wide: /^(antes de cristo|antes da era comum|depois de cristo|era comum)/i
8135
+ };
8136
+ var parseEraPatterns2 = {
8137
+ any: [/^ac/i, /^dc/i],
8138
+ wide: [
8139
+ /^(antes de cristo|antes da era comum)/i,
8140
+ /^(depois de cristo|era comum)/i
8141
+ ]
8142
+ };
8143
+ var matchQuarterPatterns2 = {
8144
+ narrow: /^[1234]/i,
8145
+ abbreviated: /^T[1234]/i,
8146
+ wide: /^[1234](º|ª)? trimestre/i
8147
+ };
8148
+ var parseQuarterPatterns2 = {
8149
+ any: [/1/i, /2/i, /3/i, /4/i]
8150
+ };
8151
+ var matchMonthPatterns2 = {
8152
+ narrow: /^[jfmasond]/i,
8153
+ abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,
8154
+ wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i
8155
+ };
8156
+ var parseMonthPatterns2 = {
8157
+ narrow: [
8158
+ /^j/i,
8159
+ /^f/i,
8160
+ /^m/i,
8161
+ /^a/i,
8162
+ /^m/i,
8163
+ /^j/i,
8164
+ /^j/i,
8165
+ /^a/i,
8166
+ /^s/i,
8167
+ /^o/i,
8168
+ /^n/i,
8169
+ /^d/i
8170
+ ],
8171
+ any: [
8172
+ /^ja/i,
8173
+ /^f/i,
8174
+ /^mar/i,
8175
+ /^ab/i,
8176
+ /^mai/i,
8177
+ /^jun/i,
8178
+ /^jul/i,
8179
+ /^ag/i,
8180
+ /^s/i,
8181
+ /^o/i,
8182
+ /^n/i,
8183
+ /^d/i
8184
+ ]
8185
+ };
8186
+ var matchDayPatterns2 = {
8187
+ narrow: /^[dstq]/i,
8188
+ short: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,
8189
+ abbreviated: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,
8190
+ wide: /^(domingo|segunda-?\s?feira|terça-?\s?feira|quarta-?\s?feira|quinta-?\s?feira|sexta-?\s?feira|s[áa]bado)/i
8191
+ };
8192
+ var parseDayPatterns2 = {
8193
+ narrow: [/^d/i, /^s/i, /^t/i, /^q/i, /^q/i, /^s/i, /^s/i],
8194
+ any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[áa]/i]
8195
+ };
8196
+ var matchDayPeriodPatterns2 = {
8197
+ narrow: /^(a|p|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,
8198
+ any: /^([ap]\.?\s?m\.?|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i
8199
+ };
8200
+ var parseDayPeriodPatterns2 = {
8201
+ any: {
8202
+ am: /^a/i,
8203
+ pm: /^p/i,
8204
+ midnight: /^meia/i,
8205
+ noon: /^meio/i,
8206
+ morning: /manh[ãa]/i,
8207
+ afternoon: /tarde/i,
8208
+ evening: /noite/i,
8209
+ night: /madrugada/i
8210
+ }
8211
+ };
8212
+ var match2 = {
8213
+ ordinalNumber: buildMatchPatternFn({
8214
+ matchPattern: matchOrdinalNumberPattern2,
8215
+ parsePattern: parseOrdinalNumberPattern2,
8216
+ valueCallback: (value) => parseInt(value, 10)
8217
+ }),
8218
+ era: buildMatchFn({
8219
+ matchPatterns: matchEraPatterns2,
8220
+ defaultMatchWidth: "wide",
8221
+ parsePatterns: parseEraPatterns2,
8222
+ defaultParseWidth: "any"
8223
+ }),
8224
+ quarter: buildMatchFn({
8225
+ matchPatterns: matchQuarterPatterns2,
8226
+ defaultMatchWidth: "wide",
8227
+ parsePatterns: parseQuarterPatterns2,
8228
+ defaultParseWidth: "any",
8229
+ valueCallback: (index2) => index2 + 1
8230
+ }),
8231
+ month: buildMatchFn({
8232
+ matchPatterns: matchMonthPatterns2,
8233
+ defaultMatchWidth: "wide",
8234
+ parsePatterns: parseMonthPatterns2,
8235
+ defaultParseWidth: "any"
8236
+ }),
8237
+ day: buildMatchFn({
8238
+ matchPatterns: matchDayPatterns2,
8239
+ defaultMatchWidth: "wide",
8240
+ parsePatterns: parseDayPatterns2,
8241
+ defaultParseWidth: "any"
8242
+ }),
8243
+ dayPeriod: buildMatchFn({
8244
+ matchPatterns: matchDayPeriodPatterns2,
8245
+ defaultMatchWidth: "any",
8246
+ parsePatterns: parseDayPeriodPatterns2,
8247
+ defaultParseWidth: "any"
8248
+ })
8249
+ };
5733
8250
 
5734
- // node_modules/lucide-react/dist/esm/icons/chevrons-left.js
5735
- var __iconNode5 = [
5736
- ["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
5737
- ["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
5738
- ];
5739
- var ChevronsLeft = createLucideIcon("chevrons-left", __iconNode5);
8251
+ // node_modules/date-fns/locale/pt.js
8252
+ var pt = {
8253
+ code: "pt",
8254
+ formatDistance: formatDistance2,
8255
+ formatLong: formatLong2,
8256
+ formatRelative: formatRelative2,
8257
+ localize: localize2,
8258
+ match: match2,
8259
+ options: {
8260
+ weekStartsOn: 1,
8261
+ firstWeekContainsDate: 4
8262
+ }
8263
+ };
5740
8264
 
5741
- // node_modules/lucide-react/dist/esm/icons/chevrons-right.js
5742
- var __iconNode6 = [
5743
- ["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
5744
- ["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
5745
- ];
5746
- var ChevronsRight = createLucideIcon("chevrons-right", __iconNode6);
8265
+ // src/dataTable/filters/DateFilter.tsx
8266
+ import { useEffect as useEffect18, useState as useState16 } from "react";
8267
+ import { jsx as jsx20, jsxs } from "react/jsx-runtime";
8268
+ var DateFilter = ({
8269
+ column,
8270
+ table
8271
+ }) => {
8272
+ const [dateRange, setDateRange] = useState16();
8273
+ const columnDef = table.getColumn(column);
8274
+ const hasFilter = columnDef?.getFilterValue();
8275
+ const filterText = hasFilter && dateRange && dateRange.from && dateRange.to ? `${format(dateRange.from, "P", {
8276
+ locale: pt
8277
+ })} - ${format(dateRange.to, "P", {
8278
+ locale: pt
8279
+ })}` : column.toString();
8280
+ useEffect18(() => {
8281
+ columnDef?.setFilterValue(dateRange);
8282
+ }, [columnDef, dateRange]);
8283
+ return /* @__PURE__ */ jsxs(Popover2, { children: [
8284
+ /* @__PURE__ */ jsx20(PopoverTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs(
8285
+ Button,
8286
+ {
8287
+ className: "w-56 justify-between font-normal capitalize",
8288
+ variant: "outline",
8289
+ children: [
8290
+ filterText,
8291
+ /* @__PURE__ */ jsx20(ChevronDown, {})
8292
+ ]
8293
+ }
8294
+ ) }),
8295
+ /* @__PURE__ */ jsx20(PopoverContent2, { className: "w-auto p-0", children: /* @__PURE__ */ jsx20(
8296
+ Calendar,
8297
+ {
8298
+ className: "rounded-lg border shadow-sm",
8299
+ mode: "range",
8300
+ onSelect: setDateRange,
8301
+ selected: dateRange
8302
+ }
8303
+ ) })
8304
+ ] });
8305
+ };
5747
8306
 
5748
8307
  // src/components/ui/dropdown-menu.tsx
5749
- import { jsx as jsx17, jsxs } from "react/jsx-runtime";
8308
+ import { jsx as jsx21, jsxs as jsxs2 } from "react/jsx-runtime";
5750
8309
  function DropdownMenu2({
5751
8310
  ...props
5752
8311
  }) {
5753
- return /* @__PURE__ */ jsx17(dist_exports5.Root, { "data-slot": "dropdown-menu", ...props });
8312
+ return /* @__PURE__ */ jsx21(dist_exports5.Root, { "data-slot": "dropdown-menu", ...props });
5754
8313
  }
5755
8314
  function DropdownMenuTrigger2({
5756
8315
  ...props
5757
8316
  }) {
5758
- return /* @__PURE__ */ jsx17(
8317
+ return /* @__PURE__ */ jsx21(
5759
8318
  dist_exports5.Trigger,
5760
8319
  {
5761
8320
  "data-slot": "dropdown-menu-trigger",
@@ -5768,7 +8327,7 @@ function DropdownMenuContent2({
5768
8327
  sideOffset = 4,
5769
8328
  ...props
5770
8329
  }) {
5771
- return /* @__PURE__ */ jsx17(dist_exports5.Portal, { children: /* @__PURE__ */ jsx17(
8330
+ return /* @__PURE__ */ jsx21(dist_exports5.Portal, { children: /* @__PURE__ */ jsx21(
5772
8331
  dist_exports5.Content,
5773
8332
  {
5774
8333
  className: cn(
@@ -5787,7 +8346,7 @@ function DropdownMenuCheckboxItem2({
5787
8346
  checked,
5788
8347
  ...props
5789
8348
  }) {
5790
- return /* @__PURE__ */ jsxs(
8349
+ return /* @__PURE__ */ jsxs2(
5791
8350
  dist_exports5.CheckboxItem,
5792
8351
  {
5793
8352
  checked,
@@ -5798,7 +8357,7 @@ function DropdownMenuCheckboxItem2({
5798
8357
  "data-slot": "dropdown-menu-checkbox-item",
5799
8358
  ...props,
5800
8359
  children: [
5801
- /* @__PURE__ */ jsx17("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx17(dist_exports5.ItemIndicator, { children: /* @__PURE__ */ jsx17(Check, { className: "size-4" }) }) }),
8360
+ /* @__PURE__ */ jsx21("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(dist_exports5.ItemIndicator, { children: /* @__PURE__ */ jsx21(Check, { className: "size-4" }) }) }),
5802
8361
  children
5803
8362
  ]
5804
8363
  }
@@ -5809,7 +8368,7 @@ function DropdownMenuLabel2({
5809
8368
  inset,
5810
8369
  ...props
5811
8370
  }) {
5812
- return /* @__PURE__ */ jsx17(
8371
+ return /* @__PURE__ */ jsx21(
5813
8372
  dist_exports5.Label,
5814
8373
  {
5815
8374
  className: cn(
@@ -5824,7 +8383,7 @@ function DropdownMenuLabel2({
5824
8383
  }
5825
8384
 
5826
8385
  // src/dataTable/filters/SelectFilter.tsx
5827
- import { jsx as jsx18, jsxs as jsxs2 } from "react/jsx-runtime";
8386
+ import { jsx as jsx23, jsxs as jsxs3 } from "react/jsx-runtime";
5828
8387
  var SelectFilter = ({
5829
8388
  column,
5830
8389
  table
@@ -5841,15 +8400,15 @@ var SelectFilter = ({
5841
8400
  }
5842
8401
  columnDef?.setFilterValue(option);
5843
8402
  };
5844
- return /* @__PURE__ */ jsxs2(DropdownMenu2, { children: [
5845
- /* @__PURE__ */ jsx18(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs2(Button, { className: "capitalize", variant: "outline", children: [
8403
+ return /* @__PURE__ */ jsxs3(DropdownMenu2, { children: [
8404
+ /* @__PURE__ */ jsx23(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs3(Button, { className: "capitalize", variant: "outline", children: [
5846
8405
  filterText,
5847
- /* @__PURE__ */ jsx18(ChevronDown, {})
8406
+ /* @__PURE__ */ jsx23(ChevronDown, {})
5848
8407
  ] }) }),
5849
- /* @__PURE__ */ jsxs2(DropdownMenuContent2, { children: [
5850
- /* @__PURE__ */ jsx18(DropdownMenuLabel2, { className: "px-2 py-1.5 text-xs text-muted-foreground capitalize", children: column.toString() }),
8408
+ /* @__PURE__ */ jsxs3(DropdownMenuContent2, { children: [
8409
+ /* @__PURE__ */ jsx23(DropdownMenuLabel2, { className: "px-2 py-1.5 text-xs text-muted-foreground capitalize", children: column.toString() }),
5851
8410
  possibleValues.map((option) => {
5852
- return /* @__PURE__ */ jsx18(
8411
+ return /* @__PURE__ */ jsx23(
5853
8412
  DropdownMenuCheckboxItem2,
5854
8413
  {
5855
8414
  checked: columnDef?.getFilterValue() === option,
@@ -5865,17 +8424,17 @@ var SelectFilter = ({
5865
8424
  };
5866
8425
 
5867
8426
  // src/dataTable/filters/DataTableFilter.tsx
5868
- import { jsx as jsx19 } from "react/jsx-runtime";
8427
+ import { jsx as jsx24 } from "react/jsx-runtime";
5869
8428
  var DataTableFilter = ({
5870
8429
  table,
5871
8430
  filter
5872
8431
  }) => {
5873
8432
  switch (filter.type) {
5874
8433
  case "select": {
5875
- return /* @__PURE__ */ jsx19(SelectFilter, { column: filter.column, table });
8434
+ return /* @__PURE__ */ jsx24(SelectFilter, { column: filter.column, table });
5876
8435
  }
5877
8436
  case "date": {
5878
- return /* @__PURE__ */ jsx19("pre", { children: '"Date Filter not implemented yet"' });
8437
+ return /* @__PURE__ */ jsx24(DateFilter, { column: filter.column, table });
5879
8438
  }
5880
8439
  default:
5881
8440
  throw new Error(`Type not Implemented: ${filter.type}`);
@@ -5883,7 +8442,7 @@ var DataTableFilter = ({
5883
8442
  };
5884
8443
 
5885
8444
  // src/dataTable/DataTableControls.tsx
5886
- import { jsx as jsx20, jsxs as jsxs3 } from "react/jsx-runtime";
8445
+ import { jsx as jsx25, jsxs as jsxs4 } from "react/jsx-runtime";
5887
8446
  var DataTableControls = ({
5888
8447
  table,
5889
8448
  search,
@@ -5892,8 +8451,8 @@ var DataTableControls = ({
5892
8451
  const value = table.getState().globalFilter ?? "";
5893
8452
  const setValue = table.setGlobalFilter;
5894
8453
  if (!filters && !search) return null;
5895
- return /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-4 pb-4", children: [
5896
- search && /* @__PURE__ */ jsx20(
8454
+ return /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-4 pb-4", children: [
8455
+ search && /* @__PURE__ */ jsx25(
5897
8456
  Input,
5898
8457
  {
5899
8458
  className: "max-w-sm",
@@ -5903,7 +8462,7 @@ var DataTableControls = ({
5903
8462
  }
5904
8463
  ),
5905
8464
  filters?.map((filter) => {
5906
- return /* @__PURE__ */ jsx20(
8465
+ return /* @__PURE__ */ jsx25(
5907
8466
  DataTableFilter,
5908
8467
  {
5909
8468
  filter,
@@ -5916,25 +8475,25 @@ var DataTableControls = ({
5916
8475
  };
5917
8476
 
5918
8477
  // src/dataTable/pagination/DataTablePagination.tsx
5919
- import { jsx as jsx21, jsxs as jsxs4 } from "react/jsx-runtime";
8478
+ import { jsx as jsx26, jsxs as jsxs5 } from "react/jsx-runtime";
5920
8479
  function DataTablePagination({
5921
8480
  table
5922
8481
  }) {
5923
- return /* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between px-2 pt-4", children: [
5924
- /* @__PURE__ */ jsxs4("div", { className: "text-muted-foreground flex-1 text-sm", children: [
8482
+ return /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between px-2 pt-4", children: [
8483
+ /* @__PURE__ */ jsxs5("div", { className: "text-muted-foreground flex-1 text-sm", children: [
5925
8484
  table.getFilteredRowModel().rows.length,
5926
8485
  " rows"
5927
8486
  ] }),
5928
- /* @__PURE__ */ jsxs4("div", { className: "flex items-center space-x-6 lg:space-x-8", children: [
5929
- /* @__PURE__ */ jsxs4("div", { className: "flex w-[100px] items-center justify-center text-sm font-medium", children: [
8487
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center space-x-6 lg:space-x-8", children: [
8488
+ /* @__PURE__ */ jsxs5("div", { className: "flex w-[100px] items-center justify-center text-sm font-medium", children: [
5930
8489
  "Page ",
5931
8490
  table.getState().pagination.pageIndex + 1,
5932
8491
  " of",
5933
8492
  " ",
5934
8493
  table.getPageCount() || 1
5935
8494
  ] }),
5936
- /* @__PURE__ */ jsxs4("div", { className: "flex items-center space-x-2", children: [
5937
- /* @__PURE__ */ jsxs4(
8495
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center space-x-2", children: [
8496
+ /* @__PURE__ */ jsxs5(
5938
8497
  Button,
5939
8498
  {
5940
8499
  className: "hidden size-8 lg:flex",
@@ -5943,12 +8502,12 @@ function DataTablePagination({
5943
8502
  size: "icon",
5944
8503
  variant: "outline",
5945
8504
  children: [
5946
- /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Go to first page" }),
5947
- /* @__PURE__ */ jsx21(ChevronsLeft, {})
8505
+ /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "Go to first page" }),
8506
+ /* @__PURE__ */ jsx26(ChevronsLeft, {})
5948
8507
  ]
5949
8508
  }
5950
8509
  ),
5951
- /* @__PURE__ */ jsxs4(
8510
+ /* @__PURE__ */ jsxs5(
5952
8511
  Button,
5953
8512
  {
5954
8513
  className: "size-8",
@@ -5957,12 +8516,12 @@ function DataTablePagination({
5957
8516
  size: "icon",
5958
8517
  variant: "outline",
5959
8518
  children: [
5960
- /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Go to previous page" }),
5961
- /* @__PURE__ */ jsx21(ChevronLeft, {})
8519
+ /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "Go to previous page" }),
8520
+ /* @__PURE__ */ jsx26(ChevronLeft, {})
5962
8521
  ]
5963
8522
  }
5964
8523
  ),
5965
- /* @__PURE__ */ jsxs4(
8524
+ /* @__PURE__ */ jsxs5(
5966
8525
  Button,
5967
8526
  {
5968
8527
  className: "size-8",
@@ -5971,12 +8530,12 @@ function DataTablePagination({
5971
8530
  size: "icon",
5972
8531
  variant: "outline",
5973
8532
  children: [
5974
- /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Go to next page" }),
5975
- /* @__PURE__ */ jsx21(ChevronRight, {})
8533
+ /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "Go to next page" }),
8534
+ /* @__PURE__ */ jsx26(ChevronRight, {})
5976
8535
  ]
5977
8536
  }
5978
8537
  ),
5979
- /* @__PURE__ */ jsxs4(
8538
+ /* @__PURE__ */ jsxs5(
5980
8539
  Button,
5981
8540
  {
5982
8541
  className: "hidden size-8 lg:flex",
@@ -5985,8 +8544,8 @@ function DataTablePagination({
5985
8544
  size: "icon",
5986
8545
  variant: "outline",
5987
8546
  children: [
5988
- /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Go to last page" }),
5989
- /* @__PURE__ */ jsx21(ChevronsRight, {})
8547
+ /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "Go to last page" }),
8548
+ /* @__PURE__ */ jsx26(ChevronsRight, {})
5990
8549
  ]
5991
8550
  }
5992
8551
  )
@@ -6015,7 +8574,7 @@ import {
6015
8574
  getPaginationRowModel,
6016
8575
  useReactTable
6017
8576
  } from "@tanstack/react-table";
6018
- import { jsx as jsx23, jsxs as jsxs5 } from "react/jsx-runtime";
8577
+ import { jsx as jsx27, jsxs as jsxs6 } from "react/jsx-runtime";
6019
8578
  function DataTable({
6020
8579
  columns,
6021
8580
  data,
@@ -6035,8 +8594,8 @@ function DataTable({
6035
8594
  columnVisibility: config?.columnVisibility
6036
8595
  }
6037
8596
  });
6038
- return /* @__PURE__ */ jsxs5("div", { className: "w-full", children: [
6039
- /* @__PURE__ */ jsx23(
8597
+ return /* @__PURE__ */ jsxs6("div", { className: "w-full", children: [
8598
+ /* @__PURE__ */ jsx27(
6040
8599
  DataTableControls,
6041
8600
  {
6042
8601
  filters: config?.filters,
@@ -6044,9 +8603,9 @@ function DataTable({
6044
8603
  table
6045
8604
  }
6046
8605
  ),
6047
- /* @__PURE__ */ jsx23("div", { className: "rounded-md border overflow-hidden", children: /* @__PURE__ */ jsxs5(Table, { children: [
6048
- /* @__PURE__ */ jsx23(TableHeader, { className: "bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx23(TableRow, { children: headerGroup.headers.map((header) => {
6049
- return /* @__PURE__ */ jsx23(
8606
+ /* @__PURE__ */ jsx27("div", { className: "rounded-md border overflow-hidden", children: /* @__PURE__ */ jsxs6(Table, { children: [
8607
+ /* @__PURE__ */ jsx27(TableHeader, { className: "bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx27(TableRow, { children: headerGroup.headers.map((header) => {
8608
+ return /* @__PURE__ */ jsx27(
6050
8609
  TableHead,
6051
8610
  {
6052
8611
  colSpan: header.colSpan,
@@ -6059,17 +8618,17 @@ function DataTable({
6059
8618
  header.id
6060
8619
  );
6061
8620
  }) }, headerGroup.id)) }),
6062
- /* @__PURE__ */ jsx23(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx23(
8621
+ /* @__PURE__ */ jsx27(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx27(
6063
8622
  TableRow,
6064
8623
  {
6065
8624
  "data-state": row.getIsSelected() && "selected",
6066
- children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx23(TableCell, { className: "truncate max-w-0", children: flexRender(
8625
+ children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx27(TableCell, { className: "truncate max-w-0", children: flexRender(
6067
8626
  cell.column.columnDef.cell,
6068
8627
  cell.getContext()
6069
8628
  ) }, cell.id))
6070
8629
  },
6071
8630
  row.id
6072
- )) : /* @__PURE__ */ jsx23(TableRow, { children: /* @__PURE__ */ jsx23(
8631
+ )) : /* @__PURE__ */ jsx27(TableRow, { children: /* @__PURE__ */ jsx27(
6073
8632
  TableCell,
6074
8633
  {
6075
8634
  className: "h-24 text-center",
@@ -6078,7 +8637,7 @@ function DataTable({
6078
8637
  }
6079
8638
  ) }) })
6080
8639
  ] }) }),
6081
- /* @__PURE__ */ jsx23(DataTablePagination, { table })
8640
+ /* @__PURE__ */ jsx27(DataTablePagination, { table })
6082
8641
  ] });
6083
8642
  }
6084
8643
  export {