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