@otfdashkit/ui 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +99 -0
- package/dist/index.js +302 -1926
- package/dist/index.mjs +234 -1869
- package/package.json +24 -5
- package/src/advanced/BulkActions/BulkActions.tsx +2 -2
- package/src/advanced/CommandBar/CommandBar.tsx +2 -2
- package/src/advanced/Filters/Filters.tsx +6 -6
- package/src/advanced/Kanban/Kanban.tsx +1 -1
- package/src/advanced/ToggleButton/ToggleButton.tsx +1 -1
- package/src/advanced/bulk-actions.tsx +1 -46
- package/src/advanced/command-bar.tsx +1 -115
- package/src/advanced/filters.tsx +1 -103
- package/src/advanced/kanban.tsx +1 -95
- package/src/advanced/toggle-button.tsx +1 -78
- package/src/blocks/ChatDetail/ChatDetail.tsx +4 -4
- package/src/blocks/FeedbackModal/FeedbackModal.tsx +3 -3
- package/src/blocks/FileCards/FileCards.tsx +2 -2
- package/src/blocks/FilesList/FilesList.tsx +3 -3
- package/src/blocks/IntegrationCard/IntegrationCard.tsx +3 -3
- package/src/blocks/InviteModal/InviteModal.tsx +7 -7
- package/src/blocks/ManageTagsModal/ManageTagsModal.tsx +4 -4
- package/src/blocks/MessagesCard/MessagesCard.tsx +3 -3
- package/src/blocks/MetricCard/MetricCard.tsx +3 -3
- package/src/blocks/NotificationSettings/NotificationSettings.tsx +4 -4
- package/src/blocks/OrganizationMenu/OrganizationMenu.tsx +30 -11
- package/src/blocks/RolesMenu/RolesMenu.tsx +4 -4
- package/src/blocks/SelectUsersModal/SelectUsersModal.tsx +5 -5
- package/src/blocks/SidebarLayoutDashboard/SidebarLayoutDashboard.tsx +5 -5
- package/src/blocks/SidebarLayoutGroups/SidebarLayoutGroups.tsx +2 -2
- package/src/blocks/SidebarLayoutMinimal/SidebarLayoutMinimal.tsx +3 -3
- package/src/blocks/SidebarLayoutSearch/SidebarLayoutSearch.tsx +3 -3
- package/src/blocks/SidebarLayoutUser/SidebarLayoutUser.tsx +4 -4
- package/src/blocks/SortableTaskList/SortableTaskList.tsx +3 -3
- package/src/blocks/StackedLayoutBranded/StackedLayoutBranded.tsx +4 -4
- package/src/blocks/StackedLayoutTabs/StackedLayoutTabs.tsx +4 -4
- package/src/blocks/TaskCard/TaskCard.tsx +4 -4
- package/src/blocks/UserMenu/UserMenu.tsx +3 -3
- package/src/blocks/WorkspaceMembers/WorkspaceMembers.tsx +5 -5
- package/src/blocks/chat-detail.tsx +1 -73
- package/src/blocks/feedback-modal.tsx +1 -68
- package/src/blocks/file-cards.tsx +1 -56
- package/src/blocks/files-list.tsx +1 -72
- package/src/blocks/integration-card.tsx +1 -50
- package/src/blocks/invite-modal.tsx +1 -69
- package/src/blocks/manage-tags-modal.tsx +1 -63
- package/src/blocks/messages-card.tsx +1 -59
- package/src/blocks/metric-card.tsx +1 -79
- package/src/blocks/notification-settings.tsx +1 -61
- package/src/blocks/organization-menu.tsx +1 -85
- package/src/blocks/roles-menu.tsx +1 -61
- package/src/blocks/select-users-modal.tsx +1 -64
- package/src/blocks/sidebar-layout-dashboard.tsx +1 -97
- package/src/blocks/sidebar-layout-groups.tsx +1 -79
- package/src/blocks/sidebar-layout-minimal.tsx +1 -73
- package/src/blocks/sidebar-layout-search.tsx +1 -79
- package/src/blocks/sidebar-layout-user.tsx +1 -82
- package/src/blocks/sortable-task-list.tsx +1 -70
- package/src/blocks/stacked-layout-branded.tsx +1 -64
- package/src/blocks/stacked-layout-tabs.tsx +1 -80
- package/src/blocks/task-card.tsx +1 -88
- package/src/blocks/user-menu.tsx +1 -62
- package/src/blocks/workspace-members.tsx +1 -61
- package/src/charts/sparkline.tsx +1 -1
- package/src/components/DataGrid/DataGrid.tsx +1 -1
- package/src/components/DataTable/DataTable.tsx +4 -4
- package/src/components/EmptyState/EmptyState.tsx +6 -22
- package/src/components/Persona/Persona.tsx +1 -1
- package/src/components/Stat/Stat.tsx +1 -1
- package/src/components/Stepper/Stepper.tsx +13 -2
- package/src/components/banner.tsx +1 -203
- package/src/components/breadcrumb.tsx +1 -58
- package/src/components/command-item.tsx +1 -36
- package/src/components/data-grid.tsx +1 -125
- package/src/components/data-table.tsx +1 -139
- package/src/components/empty-state.tsx +1 -31
- package/src/components/hotkeys.tsx +1 -31
- package/src/components/icon-badge.tsx +1 -35
- package/src/components/loading-overlay.tsx +1 -38
- package/src/components/persona.tsx +1 -38
- package/src/components/property-list.tsx +1 -29
- package/src/components/stat.tsx +1 -51
- package/src/components/stepper.tsx +1 -69
- package/src/components/structured-list.tsx +1 -51
- package/src/components/timeline.tsx +1 -69
- package/src/components/toaster.tsx +1 -42
- package/src/data/DataList.tsx +1 -1
- package/src/engagement/Tour/Tour.tsx +1 -1
- package/src/engagement/beacon.tsx +1 -50
- package/src/engagement/tour.tsx +1 -106
- package/src/forms/ArrayField/ArrayField.tsx +2 -2
- package/src/forms/AutoForm/AutoForm.tsx +9 -8
- package/src/forms/DatePicker/DatePicker.tsx +3 -3
- package/src/forms/FloatingLabelInput/FloatingLabelInput.tsx +104 -0
- package/src/forms/FloatingLabelInput/index.ts +1 -0
- package/src/forms/PasswordInput/PasswordInput.tsx +2 -2
- package/src/forms/SearchInput/SearchInput.tsx +2 -2
- package/src/forms/StepForm/StepForm.tsx +2 -2
- package/src/forms/array-field.tsx +1 -61
- package/src/forms/auto-form.tsx +1 -133
- package/src/forms/date-picker.tsx +1 -109
- package/src/forms/field.tsx +1 -62
- package/src/forms/file-upload.tsx +1 -101
- package/src/forms/floating-label-input.tsx +1 -0
- package/src/forms/form.tsx +1 -57
- package/src/forms/object-field.tsx +1 -53
- package/src/forms/password-input.tsx +1 -54
- package/src/forms/search-input.tsx +1 -64
- package/src/forms/step-form.tsx +1 -113
- package/src/index.ts +6 -3
- package/src/primitives/Button/Button.tsx +18 -0
- package/src/primitives/code-block.tsx +1 -1
- package/src/primitives/comparison.tsx +1 -1
- package/src/primitives/qr-code.tsx +5 -1
- package/src/themes/base.css +18 -0
package/dist/index.mjs
CHANGED
|
@@ -21,10 +21,9 @@ import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
|
21
21
|
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
22
22
|
import { Drawer as Drawer$1 } from 'vaul';
|
|
23
23
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
24
|
-
import { useFormContext, useForm } from 'react-hook-form';
|
|
25
|
-
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
26
24
|
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
27
25
|
import { OTPInput, OTPInputContext } from 'input-otp';
|
|
26
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
28
27
|
import * as MenubarPrimitive from '@radix-ui/react-menubar';
|
|
29
28
|
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
30
29
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
@@ -42,6 +41,7 @@ import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
|
42
41
|
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
43
42
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
44
43
|
import { useReactTable, getCoreRowModel, flexRender, getFilteredRowModel, getSortedRowModel, getPaginationRowModel } from '@tanstack/react-table';
|
|
44
|
+
import { addDays, format, startOfWeek as startOfWeek$1, isSameMonth, isSameDay as isSameDay$1, endOfDay, startOfDay, endOfWeek, endOfMonth, startOfMonth, differenceInCalendarDays, differenceInCalendarWeeks, differenceInCalendarMonths, addMonths, addWeeks, addHours, differenceInMinutes } from 'date-fns';
|
|
45
45
|
import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, pointerWithin, useDraggable, useDroppable, DragOverlay, closestCenter } from '@dnd-kit/core';
|
|
46
46
|
import { useSortable, SortableContext, verticalListSortingStrategy, sortableKeyboardCoordinates, arrayMove } from '@dnd-kit/sortable';
|
|
47
47
|
import { CSS } from '@dnd-kit/utilities';
|
|
@@ -55,6 +55,8 @@ import { Table as Table$1 } from '@tiptap/extension-table';
|
|
|
55
55
|
import { TableRow as TableRow$1 } from '@tiptap/extension-table-row';
|
|
56
56
|
import { TableCell as TableCell$1 } from '@tiptap/extension-table-cell';
|
|
57
57
|
import { TableHeader as TableHeader$1 } from '@tiptap/extension-table-header';
|
|
58
|
+
import { useForm, Controller, useFormContext } from 'react-hook-form';
|
|
59
|
+
export { FormProvider as Form } from 'react-hook-form';
|
|
58
60
|
import { zodResolver } from '@hookform/resolvers/zod';
|
|
59
61
|
import * as z from 'zod';
|
|
60
62
|
import { HexAlphaColorPicker, HexColorPicker, RgbStringColorPicker, HslStringColorPicker } from 'react-colorful';
|
|
@@ -362,7 +364,7 @@ function Calendar({
|
|
|
362
364
|
showOutsideDays = true,
|
|
363
365
|
captionLayout = "label",
|
|
364
366
|
buttonVariant = "ghost",
|
|
365
|
-
formatters
|
|
367
|
+
formatters,
|
|
366
368
|
components,
|
|
367
369
|
...props
|
|
368
370
|
}) {
|
|
@@ -380,7 +382,7 @@ function Calendar({
|
|
|
380
382
|
captionLayout,
|
|
381
383
|
formatters: {
|
|
382
384
|
formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
|
|
383
|
-
...
|
|
385
|
+
...formatters
|
|
384
386
|
},
|
|
385
387
|
classNames: {
|
|
386
388
|
root: cn("w-fit", defaultClassNames.root),
|
|
@@ -1579,104 +1581,6 @@ var DropdownMenuSubContent = React131__default.forwardRef(({ className, ...props
|
|
|
1579
1581
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1580
1582
|
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1581
1583
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1582
|
-
var labelVariants = cva(
|
|
1583
|
-
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1584
|
-
);
|
|
1585
|
-
var Label3 = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1586
|
-
LabelPrimitive.Root,
|
|
1587
|
-
{
|
|
1588
|
-
ref,
|
|
1589
|
-
className: cn(labelVariants(), className),
|
|
1590
|
-
...props
|
|
1591
|
-
}
|
|
1592
|
-
));
|
|
1593
|
-
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
1594
|
-
var FormFieldContext = React131.createContext(null);
|
|
1595
|
-
var useFormField = () => {
|
|
1596
|
-
const fieldContext = React131.useContext(FormFieldContext);
|
|
1597
|
-
const itemContext = React131.useContext(FormItemContext);
|
|
1598
|
-
const { getFieldState, formState } = useFormContext();
|
|
1599
|
-
if (!fieldContext) {
|
|
1600
|
-
throw new Error("useFormField should be used within <FormField>");
|
|
1601
|
-
}
|
|
1602
|
-
if (!itemContext) {
|
|
1603
|
-
throw new Error("useFormField should be used within <FormItem>");
|
|
1604
|
-
}
|
|
1605
|
-
const fieldState = getFieldState(fieldContext.name, formState);
|
|
1606
|
-
const { id } = itemContext;
|
|
1607
|
-
return {
|
|
1608
|
-
id,
|
|
1609
|
-
name: fieldContext.name,
|
|
1610
|
-
formItemId: `${id}-form-item`,
|
|
1611
|
-
formDescriptionId: `${id}-form-item-description`,
|
|
1612
|
-
formMessageId: `${id}-form-item-message`,
|
|
1613
|
-
...fieldState
|
|
1614
|
-
};
|
|
1615
|
-
};
|
|
1616
|
-
var FormItemContext = React131.createContext(null);
|
|
1617
|
-
var FormItem = React131.forwardRef(({ className, ...props }, ref) => {
|
|
1618
|
-
const id = React131.useId();
|
|
1619
|
-
return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
1620
|
-
});
|
|
1621
|
-
FormItem.displayName = "FormItem";
|
|
1622
|
-
var FormLabel = React131.forwardRef(({ className, ...props }, ref) => {
|
|
1623
|
-
const { error, formItemId } = useFormField();
|
|
1624
|
-
return /* @__PURE__ */ jsx(
|
|
1625
|
-
Label3,
|
|
1626
|
-
{
|
|
1627
|
-
ref,
|
|
1628
|
-
className: cn(error && "text-destructive", className),
|
|
1629
|
-
htmlFor: formItemId,
|
|
1630
|
-
...props
|
|
1631
|
-
}
|
|
1632
|
-
);
|
|
1633
|
-
});
|
|
1634
|
-
FormLabel.displayName = "FormLabel";
|
|
1635
|
-
var FormControl = React131.forwardRef(({ ...props }, ref) => {
|
|
1636
|
-
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
1637
|
-
return /* @__PURE__ */ jsx(
|
|
1638
|
-
Slot,
|
|
1639
|
-
{
|
|
1640
|
-
ref,
|
|
1641
|
-
id: formItemId,
|
|
1642
|
-
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
|
|
1643
|
-
"aria-invalid": !!error,
|
|
1644
|
-
...props
|
|
1645
|
-
}
|
|
1646
|
-
);
|
|
1647
|
-
});
|
|
1648
|
-
FormControl.displayName = "FormControl";
|
|
1649
|
-
var FormDescription = React131.forwardRef(({ className, ...props }, ref) => {
|
|
1650
|
-
const { formDescriptionId } = useFormField();
|
|
1651
|
-
return /* @__PURE__ */ jsx(
|
|
1652
|
-
"p",
|
|
1653
|
-
{
|
|
1654
|
-
ref,
|
|
1655
|
-
id: formDescriptionId,
|
|
1656
|
-
className: cn("text-[0.8rem] text-muted-foreground", className),
|
|
1657
|
-
...props
|
|
1658
|
-
}
|
|
1659
|
-
);
|
|
1660
|
-
});
|
|
1661
|
-
FormDescription.displayName = "FormDescription";
|
|
1662
|
-
var FormMessage = React131.forwardRef(({ className, children, ...props }, ref) => {
|
|
1663
|
-
const { error, formMessageId } = useFormField();
|
|
1664
|
-
const body = error ? String(error?.message ?? "") : children;
|
|
1665
|
-
if (!body) {
|
|
1666
|
-
return null;
|
|
1667
|
-
}
|
|
1668
|
-
return /* @__PURE__ */ jsx(
|
|
1669
|
-
"p",
|
|
1670
|
-
{
|
|
1671
|
-
ref,
|
|
1672
|
-
id: formMessageId,
|
|
1673
|
-
className: cn("text-[0.8rem] font-medium text-destructive", className),
|
|
1674
|
-
...props,
|
|
1675
|
-
children: body
|
|
1676
|
-
}
|
|
1677
|
-
);
|
|
1678
|
-
});
|
|
1679
|
-
FormMessage.displayName = "FormMessage";
|
|
1680
1584
|
var HoverCard = HoverCardPrimitive.Root;
|
|
1681
1585
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
1682
1586
|
var HoverCardContent = React131.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
@@ -1750,6 +1654,18 @@ var Input = React131__default.forwardRef(
|
|
|
1750
1654
|
)
|
|
1751
1655
|
);
|
|
1752
1656
|
Input.displayName = "Input";
|
|
1657
|
+
var labelVariants = cva(
|
|
1658
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1659
|
+
);
|
|
1660
|
+
var Label3 = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1661
|
+
LabelPrimitive.Root,
|
|
1662
|
+
{
|
|
1663
|
+
ref,
|
|
1664
|
+
className: cn(labelVariants(), className),
|
|
1665
|
+
...props
|
|
1666
|
+
}
|
|
1667
|
+
));
|
|
1668
|
+
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
1753
1669
|
var LogoCarousel = React131__default.forwardRef(
|
|
1754
1670
|
({
|
|
1755
1671
|
className,
|
|
@@ -3161,6 +3077,27 @@ function Breadcrumb({ children, className }) {
|
|
|
3161
3077
|
});
|
|
3162
3078
|
return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", children: /* @__PURE__ */ jsx("ol", { className: cn("flex flex-wrap items-center gap-1", className), children: withSeparators }) });
|
|
3163
3079
|
}
|
|
3080
|
+
function CommandItem2({ icon, label, description, shortcut, active, onClick, className }) {
|
|
3081
|
+
return /* @__PURE__ */ jsxs(
|
|
3082
|
+
"div",
|
|
3083
|
+
{
|
|
3084
|
+
onClick,
|
|
3085
|
+
className: cn(
|
|
3086
|
+
"flex items-center gap-3 rounded-md px-3 py-2 cursor-pointer transition-colors",
|
|
3087
|
+
active ? "bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]" : "hover:bg-[hsl(var(--accent)/0.6)]",
|
|
3088
|
+
className
|
|
3089
|
+
),
|
|
3090
|
+
children: [
|
|
3091
|
+
icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[hsl(var(--muted-foreground))] h-4 w-4 flex items-center justify-center", children: icon }),
|
|
3092
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3093
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium truncate", children: label }),
|
|
3094
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-xs text-[hsl(var(--muted-foreground))] truncate", children: description })
|
|
3095
|
+
] }),
|
|
3096
|
+
shortcut && /* @__PURE__ */ jsx("kbd", { className: "shrink-0 pointer-events-none inline-flex h-5 items-center gap-1 rounded border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5 text-[10px] font-medium text-[hsl(var(--muted-foreground))]", children: shortcut })
|
|
3097
|
+
]
|
|
3098
|
+
}
|
|
3099
|
+
);
|
|
3100
|
+
}
|
|
3164
3101
|
function EditableCell({ value: initial, onSave }) {
|
|
3165
3102
|
const [editing, setEditing] = React131__default.useState(false);
|
|
3166
3103
|
const [val, setVal] = React131__default.useState(String(initial ?? ""));
|
|
@@ -3316,14 +3253,53 @@ var EmptyStateIcon = React131__default.forwardRef(
|
|
|
3316
3253
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-12 w-12 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", className), ...props })
|
|
3317
3254
|
);
|
|
3318
3255
|
EmptyStateIcon.displayName = "EmptyStateIcon";
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3256
|
+
var sizeMap = {
|
|
3257
|
+
sm: "py-8 gap-2",
|
|
3258
|
+
default: "py-12 gap-3",
|
|
3259
|
+
lg: "py-20 gap-4"
|
|
3260
|
+
};
|
|
3261
|
+
var titleSizeMap = {
|
|
3262
|
+
sm: "text-sm font-semibold",
|
|
3263
|
+
default: "text-base font-semibold",
|
|
3264
|
+
lg: "text-lg font-semibold"
|
|
3265
|
+
};
|
|
3266
|
+
var descSizeMap = {
|
|
3267
|
+
sm: "text-xs",
|
|
3268
|
+
default: "text-sm",
|
|
3269
|
+
lg: "text-base"
|
|
3270
|
+
};
|
|
3271
|
+
var iconSizeMap = {
|
|
3272
|
+
sm: "h-10 w-10",
|
|
3273
|
+
default: "h-12 w-12",
|
|
3274
|
+
lg: "h-16 w-16"
|
|
3275
|
+
};
|
|
3276
|
+
function EmptyState({
|
|
3277
|
+
icon,
|
|
3278
|
+
title,
|
|
3279
|
+
description,
|
|
3280
|
+
action,
|
|
3281
|
+
secondaryAction,
|
|
3282
|
+
size = "default",
|
|
3283
|
+
className
|
|
3284
|
+
}) {
|
|
3285
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center justify-center text-center", sizeMap[size], className), children: [
|
|
3286
|
+
icon && /* @__PURE__ */ jsx(EmptyStateIcon, { className: iconSizeMap[size], children: icon }),
|
|
3287
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1 max-w-sm", children: [
|
|
3288
|
+
/* @__PURE__ */ jsx("h3", { className: cn(titleSizeMap[size], "text-[hsl(var(--foreground))]"), children: title }),
|
|
3289
|
+
description && /* @__PURE__ */ jsx("p", { className: cn(descSizeMap[size], "text-[hsl(var(--muted-foreground))]"), children: description })
|
|
3325
3290
|
] }),
|
|
3326
|
-
action && /* @__PURE__ */
|
|
3291
|
+
(action || secondaryAction) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mt-1", children: [
|
|
3292
|
+
action && /* @__PURE__ */ jsx(Button, { size: size === "sm" ? "sm" : "default", onClick: action.onClick, children: action.label }),
|
|
3293
|
+
secondaryAction && /* @__PURE__ */ jsx(
|
|
3294
|
+
Button,
|
|
3295
|
+
{
|
|
3296
|
+
variant: "outline",
|
|
3297
|
+
size: size === "sm" ? "sm" : "default",
|
|
3298
|
+
onClick: secondaryAction.onClick,
|
|
3299
|
+
children: secondaryAction.label
|
|
3300
|
+
}
|
|
3301
|
+
)
|
|
3302
|
+
] })
|
|
3327
3303
|
] });
|
|
3328
3304
|
}
|
|
3329
3305
|
function HotkeyBadge({ children, className }) {
|
|
@@ -3343,13 +3319,13 @@ var colorMap = {
|
|
|
3343
3319
|
error: "bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400",
|
|
3344
3320
|
purple: "bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400"
|
|
3345
3321
|
};
|
|
3346
|
-
var
|
|
3322
|
+
var sizeMap2 = {
|
|
3347
3323
|
sm: "h-7 w-7 [&>*]:h-3.5 [&>*]:w-3.5",
|
|
3348
3324
|
md: "h-10 w-10 [&>*]:h-5 [&>*]:w-5",
|
|
3349
3325
|
lg: "h-14 w-14 [&>*]:h-7 [&>*]:w-7"
|
|
3350
3326
|
};
|
|
3351
3327
|
function IconBadge({ icon, color = "default", size = "md", className }) {
|
|
3352
|
-
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center justify-center rounded-full shrink-0", colorMap[color],
|
|
3328
|
+
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center justify-center rounded-full shrink-0", colorMap[color], sizeMap2[size], className), children: icon });
|
|
3353
3329
|
}
|
|
3354
3330
|
function LoadingOverlay({ loading, text, fullPage, children, className }) {
|
|
3355
3331
|
if (fullPage) {
|
|
@@ -3366,13 +3342,13 @@ function LoadingOverlay({ loading, text, fullPage, children, className }) {
|
|
|
3366
3342
|
] }) })
|
|
3367
3343
|
] });
|
|
3368
3344
|
}
|
|
3369
|
-
var
|
|
3345
|
+
var sizeMap3 = {
|
|
3370
3346
|
sm: { avatar: "h-7 w-7", name: "text-sm", subtitle: "text-xs" },
|
|
3371
3347
|
md: { avatar: "h-9 w-9", name: "text-sm font-medium", subtitle: "text-xs" },
|
|
3372
3348
|
lg: { avatar: "h-12 w-12", name: "text-base font-medium", subtitle: "text-sm" }
|
|
3373
3349
|
};
|
|
3374
3350
|
function Persona({ name, subtitle, src, size = "md", badge, className }) {
|
|
3375
|
-
const s =
|
|
3351
|
+
const s = sizeMap3[size];
|
|
3376
3352
|
const initials = name.split(" ").map((w) => w[0]).slice(0, 2).join("").toUpperCase();
|
|
3377
3353
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", className), children: [
|
|
3378
3354
|
/* @__PURE__ */ jsxs("div", { className: "relative shrink-0", children: [
|
|
@@ -3773,7 +3749,7 @@ function InviteModal({ className }) {
|
|
|
3773
3749
|
pending.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
3774
3750
|
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-[hsl(var(--muted-foreground))]", children: "Pending invites" }),
|
|
3775
3751
|
/* @__PURE__ */ jsx("div", { className: "divide-y divide-[hsl(var(--border))] rounded-md border border-[hsl(var(--border))]", children: pending.map((p, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2", children: [
|
|
3776
|
-
/* @__PURE__ */ jsx(Avatar, { className: "h-6 w-6", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-[10px]", children: p.email
|
|
3752
|
+
/* @__PURE__ */ jsx(Avatar, { className: "h-6 w-6", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-[10px]", children: p.email.charAt(0).toUpperCase() }) }),
|
|
3777
3753
|
/* @__PURE__ */ jsx("span", { className: "flex-1 text-sm truncate", children: p.email }),
|
|
3778
3754
|
/* @__PURE__ */ jsx(Badge, { variant: "outline", className: "text-[10px] px-1.5 py-0.5 shrink-0", children: p.role }),
|
|
3779
3755
|
/* @__PURE__ */ jsx("button", { onClick: () => setPending((ps) => ps.filter((_, j) => j !== i)), children: /* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5 text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))]" }) })
|
|
@@ -4466,7 +4442,7 @@ function NotificationSettings({ className }) {
|
|
|
4466
4442
|
NotifRow,
|
|
4467
4443
|
{
|
|
4468
4444
|
...n,
|
|
4469
|
-
checked: states[n.id],
|
|
4445
|
+
checked: states[n.id] ?? false,
|
|
4470
4446
|
onChange: (val) => setStates((s) => ({ ...s, [n.id]: val }))
|
|
4471
4447
|
},
|
|
4472
4448
|
n.id
|
|
@@ -4668,7 +4644,7 @@ var ROLES = [
|
|
|
4668
4644
|
];
|
|
4669
4645
|
function RolesMenu({ value = "member", onChange, className }) {
|
|
4670
4646
|
const [role, setRole] = useState(value);
|
|
4671
|
-
const current = ROLES.find((r) => r.value === role) ?? ROLES[
|
|
4647
|
+
const current = ROLES.find((r) => r.value === role) ?? ROLES[0];
|
|
4672
4648
|
const handleChange = (v) => {
|
|
4673
4649
|
setRole(v);
|
|
4674
4650
|
onChange?.(v);
|
|
@@ -5393,1712 +5369,6 @@ function Filters({ filters, value, onChange, className }) {
|
|
|
5393
5369
|
/* @__PURE__ */ jsx(AddFilterPopover, { filters, onAdd: (fv) => onChange([...value, fv]) })
|
|
5394
5370
|
] });
|
|
5395
5371
|
}
|
|
5396
|
-
var millisecondsInWeek = 6048e5;
|
|
5397
|
-
var millisecondsInDay = 864e5;
|
|
5398
|
-
var millisecondsInMinute = 6e4;
|
|
5399
|
-
var millisecondsInHour = 36e5;
|
|
5400
|
-
var constructFromSymbol = /* @__PURE__ */ Symbol.for("constructDateFrom");
|
|
5401
|
-
|
|
5402
|
-
// node_modules/date-fns/constructFrom.js
|
|
5403
|
-
function constructFrom(date, value) {
|
|
5404
|
-
if (typeof date === "function") return date(value);
|
|
5405
|
-
if (date && typeof date === "object" && constructFromSymbol in date)
|
|
5406
|
-
return date[constructFromSymbol](value);
|
|
5407
|
-
if (date instanceof Date) return new date.constructor(value);
|
|
5408
|
-
return new Date(value);
|
|
5409
|
-
}
|
|
5410
|
-
|
|
5411
|
-
// node_modules/date-fns/toDate.js
|
|
5412
|
-
function toDate(argument, context) {
|
|
5413
|
-
return constructFrom(context || argument, argument);
|
|
5414
|
-
}
|
|
5415
|
-
|
|
5416
|
-
// node_modules/date-fns/addDays.js
|
|
5417
|
-
function addDays(date, amount, options) {
|
|
5418
|
-
const _date = toDate(date, options?.in);
|
|
5419
|
-
if (isNaN(amount)) return constructFrom(date, NaN);
|
|
5420
|
-
if (!amount) return _date;
|
|
5421
|
-
_date.setDate(_date.getDate() + amount);
|
|
5422
|
-
return _date;
|
|
5423
|
-
}
|
|
5424
|
-
|
|
5425
|
-
// node_modules/date-fns/addMonths.js
|
|
5426
|
-
function addMonths(date, amount, options) {
|
|
5427
|
-
const _date = toDate(date, options?.in);
|
|
5428
|
-
if (isNaN(amount)) return constructFrom(date, NaN);
|
|
5429
|
-
if (!amount) {
|
|
5430
|
-
return _date;
|
|
5431
|
-
}
|
|
5432
|
-
const dayOfMonth = _date.getDate();
|
|
5433
|
-
const endOfDesiredMonth = constructFrom(date, _date.getTime());
|
|
5434
|
-
endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);
|
|
5435
|
-
const daysInMonth = endOfDesiredMonth.getDate();
|
|
5436
|
-
if (dayOfMonth >= daysInMonth) {
|
|
5437
|
-
return endOfDesiredMonth;
|
|
5438
|
-
} else {
|
|
5439
|
-
_date.setFullYear(
|
|
5440
|
-
endOfDesiredMonth.getFullYear(),
|
|
5441
|
-
endOfDesiredMonth.getMonth(),
|
|
5442
|
-
dayOfMonth
|
|
5443
|
-
);
|
|
5444
|
-
return _date;
|
|
5445
|
-
}
|
|
5446
|
-
}
|
|
5447
|
-
|
|
5448
|
-
// node_modules/date-fns/addMilliseconds.js
|
|
5449
|
-
function addMilliseconds(date, amount, options) {
|
|
5450
|
-
return constructFrom(date, +toDate(date) + amount);
|
|
5451
|
-
}
|
|
5452
|
-
|
|
5453
|
-
// node_modules/date-fns/addHours.js
|
|
5454
|
-
function addHours(date, amount, options) {
|
|
5455
|
-
return addMilliseconds(date, amount * millisecondsInHour);
|
|
5456
|
-
}
|
|
5457
|
-
|
|
5458
|
-
// node_modules/date-fns/_lib/defaultOptions.js
|
|
5459
|
-
var defaultOptions = {};
|
|
5460
|
-
function getDefaultOptions() {
|
|
5461
|
-
return defaultOptions;
|
|
5462
|
-
}
|
|
5463
|
-
|
|
5464
|
-
// node_modules/date-fns/startOfWeek.js
|
|
5465
|
-
function startOfWeek2(date, options) {
|
|
5466
|
-
const defaultOptions2 = getDefaultOptions();
|
|
5467
|
-
const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0;
|
|
5468
|
-
const _date = toDate(date, options?.in);
|
|
5469
|
-
const day = _date.getDay();
|
|
5470
|
-
const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
5471
|
-
_date.setDate(_date.getDate() - diff);
|
|
5472
|
-
_date.setHours(0, 0, 0, 0);
|
|
5473
|
-
return _date;
|
|
5474
|
-
}
|
|
5475
|
-
|
|
5476
|
-
// node_modules/date-fns/startOfISOWeek.js
|
|
5477
|
-
function startOfISOWeek(date, options) {
|
|
5478
|
-
return startOfWeek2(date, { ...options, weekStartsOn: 1 });
|
|
5479
|
-
}
|
|
5480
|
-
|
|
5481
|
-
// node_modules/date-fns/getISOWeekYear.js
|
|
5482
|
-
function getISOWeekYear(date, options) {
|
|
5483
|
-
const _date = toDate(date, options?.in);
|
|
5484
|
-
const year = _date.getFullYear();
|
|
5485
|
-
const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);
|
|
5486
|
-
fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
|
|
5487
|
-
fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
|
|
5488
|
-
const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);
|
|
5489
|
-
const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);
|
|
5490
|
-
fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);
|
|
5491
|
-
fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);
|
|
5492
|
-
const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);
|
|
5493
|
-
if (_date.getTime() >= startOfNextYear.getTime()) {
|
|
5494
|
-
return year + 1;
|
|
5495
|
-
} else if (_date.getTime() >= startOfThisYear.getTime()) {
|
|
5496
|
-
return year;
|
|
5497
|
-
} else {
|
|
5498
|
-
return year - 1;
|
|
5499
|
-
}
|
|
5500
|
-
}
|
|
5501
|
-
|
|
5502
|
-
// node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js
|
|
5503
|
-
function getTimezoneOffsetInMilliseconds(date) {
|
|
5504
|
-
const _date = toDate(date);
|
|
5505
|
-
const utcDate = new Date(
|
|
5506
|
-
Date.UTC(
|
|
5507
|
-
_date.getFullYear(),
|
|
5508
|
-
_date.getMonth(),
|
|
5509
|
-
_date.getDate(),
|
|
5510
|
-
_date.getHours(),
|
|
5511
|
-
_date.getMinutes(),
|
|
5512
|
-
_date.getSeconds(),
|
|
5513
|
-
_date.getMilliseconds()
|
|
5514
|
-
)
|
|
5515
|
-
);
|
|
5516
|
-
utcDate.setUTCFullYear(_date.getFullYear());
|
|
5517
|
-
return +date - +utcDate;
|
|
5518
|
-
}
|
|
5519
|
-
|
|
5520
|
-
// node_modules/date-fns/_lib/normalizeDates.js
|
|
5521
|
-
function normalizeDates(context, ...dates) {
|
|
5522
|
-
const normalize = constructFrom.bind(
|
|
5523
|
-
null,
|
|
5524
|
-
context || dates.find((date) => typeof date === "object")
|
|
5525
|
-
);
|
|
5526
|
-
return dates.map(normalize);
|
|
5527
|
-
}
|
|
5528
|
-
|
|
5529
|
-
// node_modules/date-fns/startOfDay.js
|
|
5530
|
-
function startOfDay(date, options) {
|
|
5531
|
-
const _date = toDate(date, options?.in);
|
|
5532
|
-
_date.setHours(0, 0, 0, 0);
|
|
5533
|
-
return _date;
|
|
5534
|
-
}
|
|
5535
|
-
|
|
5536
|
-
// node_modules/date-fns/differenceInCalendarDays.js
|
|
5537
|
-
function differenceInCalendarDays(laterDate, earlierDate, options) {
|
|
5538
|
-
const [laterDate_, earlierDate_] = normalizeDates(
|
|
5539
|
-
options?.in,
|
|
5540
|
-
laterDate,
|
|
5541
|
-
earlierDate
|
|
5542
|
-
);
|
|
5543
|
-
const laterStartOfDay = startOfDay(laterDate_);
|
|
5544
|
-
const earlierStartOfDay = startOfDay(earlierDate_);
|
|
5545
|
-
const laterTimestamp = +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);
|
|
5546
|
-
const earlierTimestamp = +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);
|
|
5547
|
-
return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);
|
|
5548
|
-
}
|
|
5549
|
-
|
|
5550
|
-
// node_modules/date-fns/startOfISOWeekYear.js
|
|
5551
|
-
function startOfISOWeekYear(date, options) {
|
|
5552
|
-
const year = getISOWeekYear(date, options);
|
|
5553
|
-
const fourthOfJanuary = constructFrom(date, 0);
|
|
5554
|
-
fourthOfJanuary.setFullYear(year, 0, 4);
|
|
5555
|
-
fourthOfJanuary.setHours(0, 0, 0, 0);
|
|
5556
|
-
return startOfISOWeek(fourthOfJanuary);
|
|
5557
|
-
}
|
|
5558
|
-
|
|
5559
|
-
// node_modules/date-fns/addWeeks.js
|
|
5560
|
-
function addWeeks(date, amount, options) {
|
|
5561
|
-
return addDays(date, amount * 7, options);
|
|
5562
|
-
}
|
|
5563
|
-
|
|
5564
|
-
// node_modules/date-fns/isSameDay.js
|
|
5565
|
-
function isSameDay(laterDate, earlierDate, options) {
|
|
5566
|
-
const [dateLeft_, dateRight_] = normalizeDates(
|
|
5567
|
-
options?.in,
|
|
5568
|
-
laterDate,
|
|
5569
|
-
earlierDate
|
|
5570
|
-
);
|
|
5571
|
-
return +startOfDay(dateLeft_) === +startOfDay(dateRight_);
|
|
5572
|
-
}
|
|
5573
|
-
|
|
5574
|
-
// node_modules/date-fns/isDate.js
|
|
5575
|
-
function isDate(value) {
|
|
5576
|
-
return value instanceof Date || typeof value === "object" && Object.prototype.toString.call(value) === "[object Date]";
|
|
5577
|
-
}
|
|
5578
|
-
|
|
5579
|
-
// node_modules/date-fns/isValid.js
|
|
5580
|
-
function isValid(date) {
|
|
5581
|
-
return !(!isDate(date) && typeof date !== "number" || isNaN(+toDate(date)));
|
|
5582
|
-
}
|
|
5583
|
-
|
|
5584
|
-
// node_modules/date-fns/differenceInCalendarMonths.js
|
|
5585
|
-
function differenceInCalendarMonths(laterDate, earlierDate, options) {
|
|
5586
|
-
const [laterDate_, earlierDate_] = normalizeDates(
|
|
5587
|
-
options?.in,
|
|
5588
|
-
laterDate,
|
|
5589
|
-
earlierDate
|
|
5590
|
-
);
|
|
5591
|
-
const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();
|
|
5592
|
-
const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth();
|
|
5593
|
-
return yearsDiff * 12 + monthsDiff;
|
|
5594
|
-
}
|
|
5595
|
-
|
|
5596
|
-
// node_modules/date-fns/differenceInCalendarWeeks.js
|
|
5597
|
-
function differenceInCalendarWeeks(laterDate, earlierDate, options) {
|
|
5598
|
-
const [laterDate_, earlierDate_] = normalizeDates(
|
|
5599
|
-
options?.in,
|
|
5600
|
-
laterDate,
|
|
5601
|
-
earlierDate
|
|
5602
|
-
);
|
|
5603
|
-
const laterStartOfWeek = startOfWeek2(laterDate_, options);
|
|
5604
|
-
const earlierStartOfWeek = startOfWeek2(earlierDate_, options);
|
|
5605
|
-
const laterTimestamp = +laterStartOfWeek - getTimezoneOffsetInMilliseconds(laterStartOfWeek);
|
|
5606
|
-
const earlierTimestamp = +earlierStartOfWeek - getTimezoneOffsetInMilliseconds(earlierStartOfWeek);
|
|
5607
|
-
return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInWeek);
|
|
5608
|
-
}
|
|
5609
|
-
|
|
5610
|
-
// node_modules/date-fns/_lib/getRoundingMethod.js
|
|
5611
|
-
function getRoundingMethod(method) {
|
|
5612
|
-
return (number) => {
|
|
5613
|
-
const round = Math.trunc;
|
|
5614
|
-
const result = round(number);
|
|
5615
|
-
return result === 0 ? 0 : result;
|
|
5616
|
-
};
|
|
5617
|
-
}
|
|
5618
|
-
|
|
5619
|
-
// node_modules/date-fns/differenceInMilliseconds.js
|
|
5620
|
-
function differenceInMilliseconds(laterDate, earlierDate) {
|
|
5621
|
-
return +toDate(laterDate) - +toDate(earlierDate);
|
|
5622
|
-
}
|
|
5623
|
-
|
|
5624
|
-
// node_modules/date-fns/differenceInMinutes.js
|
|
5625
|
-
function differenceInMinutes(dateLeft, dateRight, options) {
|
|
5626
|
-
const diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;
|
|
5627
|
-
return getRoundingMethod()(diff);
|
|
5628
|
-
}
|
|
5629
|
-
|
|
5630
|
-
// node_modules/date-fns/endOfDay.js
|
|
5631
|
-
function endOfDay(date, options) {
|
|
5632
|
-
const _date = toDate(date, options?.in);
|
|
5633
|
-
_date.setHours(23, 59, 59, 999);
|
|
5634
|
-
return _date;
|
|
5635
|
-
}
|
|
5636
|
-
|
|
5637
|
-
// node_modules/date-fns/endOfMonth.js
|
|
5638
|
-
function endOfMonth(date, options) {
|
|
5639
|
-
const _date = toDate(date, options?.in);
|
|
5640
|
-
const month = _date.getMonth();
|
|
5641
|
-
_date.setFullYear(_date.getFullYear(), month + 1, 0);
|
|
5642
|
-
_date.setHours(23, 59, 59, 999);
|
|
5643
|
-
return _date;
|
|
5644
|
-
}
|
|
5645
|
-
|
|
5646
|
-
// node_modules/date-fns/startOfMonth.js
|
|
5647
|
-
function startOfMonth(date, options) {
|
|
5648
|
-
const _date = toDate(date, options?.in);
|
|
5649
|
-
_date.setDate(1);
|
|
5650
|
-
_date.setHours(0, 0, 0, 0);
|
|
5651
|
-
return _date;
|
|
5652
|
-
}
|
|
5653
|
-
|
|
5654
|
-
// node_modules/date-fns/startOfYear.js
|
|
5655
|
-
function startOfYear(date, options) {
|
|
5656
|
-
const date_ = toDate(date, options?.in);
|
|
5657
|
-
date_.setFullYear(date_.getFullYear(), 0, 1);
|
|
5658
|
-
date_.setHours(0, 0, 0, 0);
|
|
5659
|
-
return date_;
|
|
5660
|
-
}
|
|
5661
|
-
|
|
5662
|
-
// node_modules/date-fns/endOfWeek.js
|
|
5663
|
-
function endOfWeek(date, options) {
|
|
5664
|
-
const weekStartsOn = options?.weekStartsOn;
|
|
5665
|
-
const _date = toDate(date, options?.in);
|
|
5666
|
-
const day = _date.getDay();
|
|
5667
|
-
const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);
|
|
5668
|
-
_date.setDate(_date.getDate() + diff);
|
|
5669
|
-
_date.setHours(23, 59, 59, 999);
|
|
5670
|
-
return _date;
|
|
5671
|
-
}
|
|
5672
|
-
|
|
5673
|
-
// node_modules/date-fns/locale/en-US/_lib/formatDistance.js
|
|
5674
|
-
var formatDistanceLocale = {
|
|
5675
|
-
lessThanXSeconds: {
|
|
5676
|
-
one: "less than a second",
|
|
5677
|
-
other: "less than {{count}} seconds"
|
|
5678
|
-
},
|
|
5679
|
-
xSeconds: {
|
|
5680
|
-
one: "1 second",
|
|
5681
|
-
other: "{{count}} seconds"
|
|
5682
|
-
},
|
|
5683
|
-
halfAMinute: "half a minute",
|
|
5684
|
-
lessThanXMinutes: {
|
|
5685
|
-
one: "less than a minute",
|
|
5686
|
-
other: "less than {{count}} minutes"
|
|
5687
|
-
},
|
|
5688
|
-
xMinutes: {
|
|
5689
|
-
one: "1 minute",
|
|
5690
|
-
other: "{{count}} minutes"
|
|
5691
|
-
},
|
|
5692
|
-
aboutXHours: {
|
|
5693
|
-
one: "about 1 hour",
|
|
5694
|
-
other: "about {{count}} hours"
|
|
5695
|
-
},
|
|
5696
|
-
xHours: {
|
|
5697
|
-
one: "1 hour",
|
|
5698
|
-
other: "{{count}} hours"
|
|
5699
|
-
},
|
|
5700
|
-
xDays: {
|
|
5701
|
-
one: "1 day",
|
|
5702
|
-
other: "{{count}} days"
|
|
5703
|
-
},
|
|
5704
|
-
aboutXWeeks: {
|
|
5705
|
-
one: "about 1 week",
|
|
5706
|
-
other: "about {{count}} weeks"
|
|
5707
|
-
},
|
|
5708
|
-
xWeeks: {
|
|
5709
|
-
one: "1 week",
|
|
5710
|
-
other: "{{count}} weeks"
|
|
5711
|
-
},
|
|
5712
|
-
aboutXMonths: {
|
|
5713
|
-
one: "about 1 month",
|
|
5714
|
-
other: "about {{count}} months"
|
|
5715
|
-
},
|
|
5716
|
-
xMonths: {
|
|
5717
|
-
one: "1 month",
|
|
5718
|
-
other: "{{count}} months"
|
|
5719
|
-
},
|
|
5720
|
-
aboutXYears: {
|
|
5721
|
-
one: "about 1 year",
|
|
5722
|
-
other: "about {{count}} years"
|
|
5723
|
-
},
|
|
5724
|
-
xYears: {
|
|
5725
|
-
one: "1 year",
|
|
5726
|
-
other: "{{count}} years"
|
|
5727
|
-
},
|
|
5728
|
-
overXYears: {
|
|
5729
|
-
one: "over 1 year",
|
|
5730
|
-
other: "over {{count}} years"
|
|
5731
|
-
},
|
|
5732
|
-
almostXYears: {
|
|
5733
|
-
one: "almost 1 year",
|
|
5734
|
-
other: "almost {{count}} years"
|
|
5735
|
-
}
|
|
5736
|
-
};
|
|
5737
|
-
var formatDistance = (token, count, options) => {
|
|
5738
|
-
let result;
|
|
5739
|
-
const tokenValue = formatDistanceLocale[token];
|
|
5740
|
-
if (typeof tokenValue === "string") {
|
|
5741
|
-
result = tokenValue;
|
|
5742
|
-
} else if (count === 1) {
|
|
5743
|
-
result = tokenValue.one;
|
|
5744
|
-
} else {
|
|
5745
|
-
result = tokenValue.other.replace("{{count}}", count.toString());
|
|
5746
|
-
}
|
|
5747
|
-
if (options?.addSuffix) {
|
|
5748
|
-
if (options.comparison && options.comparison > 0) {
|
|
5749
|
-
return "in " + result;
|
|
5750
|
-
} else {
|
|
5751
|
-
return result + " ago";
|
|
5752
|
-
}
|
|
5753
|
-
}
|
|
5754
|
-
return result;
|
|
5755
|
-
};
|
|
5756
|
-
|
|
5757
|
-
// node_modules/date-fns/locale/_lib/buildFormatLongFn.js
|
|
5758
|
-
function buildFormatLongFn(args) {
|
|
5759
|
-
return (options = {}) => {
|
|
5760
|
-
const width = options.width ? String(options.width) : args.defaultWidth;
|
|
5761
|
-
const format2 = args.formats[width] || args.formats[args.defaultWidth];
|
|
5762
|
-
return format2;
|
|
5763
|
-
};
|
|
5764
|
-
}
|
|
5765
|
-
|
|
5766
|
-
// node_modules/date-fns/locale/en-US/_lib/formatLong.js
|
|
5767
|
-
var dateFormats = {
|
|
5768
|
-
full: "EEEE, MMMM do, y",
|
|
5769
|
-
long: "MMMM do, y",
|
|
5770
|
-
medium: "MMM d, y",
|
|
5771
|
-
short: "MM/dd/yyyy"
|
|
5772
|
-
};
|
|
5773
|
-
var timeFormats = {
|
|
5774
|
-
full: "h:mm:ss a zzzz",
|
|
5775
|
-
long: "h:mm:ss a z",
|
|
5776
|
-
medium: "h:mm:ss a",
|
|
5777
|
-
short: "h:mm a"
|
|
5778
|
-
};
|
|
5779
|
-
var dateTimeFormats = {
|
|
5780
|
-
full: "{{date}} 'at' {{time}}",
|
|
5781
|
-
long: "{{date}} 'at' {{time}}",
|
|
5782
|
-
medium: "{{date}}, {{time}}",
|
|
5783
|
-
short: "{{date}}, {{time}}"
|
|
5784
|
-
};
|
|
5785
|
-
var formatLong = {
|
|
5786
|
-
date: buildFormatLongFn({
|
|
5787
|
-
formats: dateFormats,
|
|
5788
|
-
defaultWidth: "full"
|
|
5789
|
-
}),
|
|
5790
|
-
time: buildFormatLongFn({
|
|
5791
|
-
formats: timeFormats,
|
|
5792
|
-
defaultWidth: "full"
|
|
5793
|
-
}),
|
|
5794
|
-
dateTime: buildFormatLongFn({
|
|
5795
|
-
formats: dateTimeFormats,
|
|
5796
|
-
defaultWidth: "full"
|
|
5797
|
-
})
|
|
5798
|
-
};
|
|
5799
|
-
|
|
5800
|
-
// node_modules/date-fns/locale/en-US/_lib/formatRelative.js
|
|
5801
|
-
var formatRelativeLocale = {
|
|
5802
|
-
lastWeek: "'last' eeee 'at' p",
|
|
5803
|
-
yesterday: "'yesterday at' p",
|
|
5804
|
-
today: "'today at' p",
|
|
5805
|
-
tomorrow: "'tomorrow at' p",
|
|
5806
|
-
nextWeek: "eeee 'at' p",
|
|
5807
|
-
other: "P"
|
|
5808
|
-
};
|
|
5809
|
-
var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale[token];
|
|
5810
|
-
|
|
5811
|
-
// node_modules/date-fns/locale/_lib/buildLocalizeFn.js
|
|
5812
|
-
function buildLocalizeFn(args) {
|
|
5813
|
-
return (value, options) => {
|
|
5814
|
-
const context = options?.context ? String(options.context) : "standalone";
|
|
5815
|
-
let valuesArray;
|
|
5816
|
-
if (context === "formatting" && args.formattingValues) {
|
|
5817
|
-
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
5818
|
-
const width = options?.width ? String(options.width) : defaultWidth;
|
|
5819
|
-
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
5820
|
-
} else {
|
|
5821
|
-
const defaultWidth = args.defaultWidth;
|
|
5822
|
-
const width = options?.width ? String(options.width) : args.defaultWidth;
|
|
5823
|
-
valuesArray = args.values[width] || args.values[defaultWidth];
|
|
5824
|
-
}
|
|
5825
|
-
const index = args.argumentCallback ? args.argumentCallback(value) : value;
|
|
5826
|
-
return valuesArray[index];
|
|
5827
|
-
};
|
|
5828
|
-
}
|
|
5829
|
-
|
|
5830
|
-
// node_modules/date-fns/locale/en-US/_lib/localize.js
|
|
5831
|
-
var eraValues = {
|
|
5832
|
-
narrow: ["B", "A"],
|
|
5833
|
-
abbreviated: ["BC", "AD"],
|
|
5834
|
-
wide: ["Before Christ", "Anno Domini"]
|
|
5835
|
-
};
|
|
5836
|
-
var quarterValues = {
|
|
5837
|
-
narrow: ["1", "2", "3", "4"],
|
|
5838
|
-
abbreviated: ["Q1", "Q2", "Q3", "Q4"],
|
|
5839
|
-
wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"]
|
|
5840
|
-
};
|
|
5841
|
-
var monthValues = {
|
|
5842
|
-
narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
|
|
5843
|
-
abbreviated: [
|
|
5844
|
-
"Jan",
|
|
5845
|
-
"Feb",
|
|
5846
|
-
"Mar",
|
|
5847
|
-
"Apr",
|
|
5848
|
-
"May",
|
|
5849
|
-
"Jun",
|
|
5850
|
-
"Jul",
|
|
5851
|
-
"Aug",
|
|
5852
|
-
"Sep",
|
|
5853
|
-
"Oct",
|
|
5854
|
-
"Nov",
|
|
5855
|
-
"Dec"
|
|
5856
|
-
],
|
|
5857
|
-
wide: [
|
|
5858
|
-
"January",
|
|
5859
|
-
"February",
|
|
5860
|
-
"March",
|
|
5861
|
-
"April",
|
|
5862
|
-
"May",
|
|
5863
|
-
"June",
|
|
5864
|
-
"July",
|
|
5865
|
-
"August",
|
|
5866
|
-
"September",
|
|
5867
|
-
"October",
|
|
5868
|
-
"November",
|
|
5869
|
-
"December"
|
|
5870
|
-
]
|
|
5871
|
-
};
|
|
5872
|
-
var dayValues = {
|
|
5873
|
-
narrow: ["S", "M", "T", "W", "T", "F", "S"],
|
|
5874
|
-
short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
|
5875
|
-
abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
5876
|
-
wide: [
|
|
5877
|
-
"Sunday",
|
|
5878
|
-
"Monday",
|
|
5879
|
-
"Tuesday",
|
|
5880
|
-
"Wednesday",
|
|
5881
|
-
"Thursday",
|
|
5882
|
-
"Friday",
|
|
5883
|
-
"Saturday"
|
|
5884
|
-
]
|
|
5885
|
-
};
|
|
5886
|
-
var dayPeriodValues = {
|
|
5887
|
-
narrow: {
|
|
5888
|
-
am: "a",
|
|
5889
|
-
pm: "p",
|
|
5890
|
-
midnight: "mi",
|
|
5891
|
-
noon: "n",
|
|
5892
|
-
morning: "morning",
|
|
5893
|
-
afternoon: "afternoon",
|
|
5894
|
-
evening: "evening",
|
|
5895
|
-
night: "night"
|
|
5896
|
-
},
|
|
5897
|
-
abbreviated: {
|
|
5898
|
-
am: "AM",
|
|
5899
|
-
pm: "PM",
|
|
5900
|
-
midnight: "midnight",
|
|
5901
|
-
noon: "noon",
|
|
5902
|
-
morning: "morning",
|
|
5903
|
-
afternoon: "afternoon",
|
|
5904
|
-
evening: "evening",
|
|
5905
|
-
night: "night"
|
|
5906
|
-
},
|
|
5907
|
-
wide: {
|
|
5908
|
-
am: "a.m.",
|
|
5909
|
-
pm: "p.m.",
|
|
5910
|
-
midnight: "midnight",
|
|
5911
|
-
noon: "noon",
|
|
5912
|
-
morning: "morning",
|
|
5913
|
-
afternoon: "afternoon",
|
|
5914
|
-
evening: "evening",
|
|
5915
|
-
night: "night"
|
|
5916
|
-
}
|
|
5917
|
-
};
|
|
5918
|
-
var formattingDayPeriodValues = {
|
|
5919
|
-
narrow: {
|
|
5920
|
-
am: "a",
|
|
5921
|
-
pm: "p",
|
|
5922
|
-
midnight: "mi",
|
|
5923
|
-
noon: "n",
|
|
5924
|
-
morning: "in the morning",
|
|
5925
|
-
afternoon: "in the afternoon",
|
|
5926
|
-
evening: "in the evening",
|
|
5927
|
-
night: "at night"
|
|
5928
|
-
},
|
|
5929
|
-
abbreviated: {
|
|
5930
|
-
am: "AM",
|
|
5931
|
-
pm: "PM",
|
|
5932
|
-
midnight: "midnight",
|
|
5933
|
-
noon: "noon",
|
|
5934
|
-
morning: "in the morning",
|
|
5935
|
-
afternoon: "in the afternoon",
|
|
5936
|
-
evening: "in the evening",
|
|
5937
|
-
night: "at night"
|
|
5938
|
-
},
|
|
5939
|
-
wide: {
|
|
5940
|
-
am: "a.m.",
|
|
5941
|
-
pm: "p.m.",
|
|
5942
|
-
midnight: "midnight",
|
|
5943
|
-
noon: "noon",
|
|
5944
|
-
morning: "in the morning",
|
|
5945
|
-
afternoon: "in the afternoon",
|
|
5946
|
-
evening: "in the evening",
|
|
5947
|
-
night: "at night"
|
|
5948
|
-
}
|
|
5949
|
-
};
|
|
5950
|
-
var ordinalNumber = (dirtyNumber, _options) => {
|
|
5951
|
-
const number = Number(dirtyNumber);
|
|
5952
|
-
const rem100 = number % 100;
|
|
5953
|
-
if (rem100 > 20 || rem100 < 10) {
|
|
5954
|
-
switch (rem100 % 10) {
|
|
5955
|
-
case 1:
|
|
5956
|
-
return number + "st";
|
|
5957
|
-
case 2:
|
|
5958
|
-
return number + "nd";
|
|
5959
|
-
case 3:
|
|
5960
|
-
return number + "rd";
|
|
5961
|
-
}
|
|
5962
|
-
}
|
|
5963
|
-
return number + "th";
|
|
5964
|
-
};
|
|
5965
|
-
var localize = {
|
|
5966
|
-
ordinalNumber,
|
|
5967
|
-
era: buildLocalizeFn({
|
|
5968
|
-
values: eraValues,
|
|
5969
|
-
defaultWidth: "wide"
|
|
5970
|
-
}),
|
|
5971
|
-
quarter: buildLocalizeFn({
|
|
5972
|
-
values: quarterValues,
|
|
5973
|
-
defaultWidth: "wide",
|
|
5974
|
-
argumentCallback: (quarter) => quarter - 1
|
|
5975
|
-
}),
|
|
5976
|
-
month: buildLocalizeFn({
|
|
5977
|
-
values: monthValues,
|
|
5978
|
-
defaultWidth: "wide"
|
|
5979
|
-
}),
|
|
5980
|
-
day: buildLocalizeFn({
|
|
5981
|
-
values: dayValues,
|
|
5982
|
-
defaultWidth: "wide"
|
|
5983
|
-
}),
|
|
5984
|
-
dayPeriod: buildLocalizeFn({
|
|
5985
|
-
values: dayPeriodValues,
|
|
5986
|
-
defaultWidth: "wide",
|
|
5987
|
-
formattingValues: formattingDayPeriodValues,
|
|
5988
|
-
defaultFormattingWidth: "wide"
|
|
5989
|
-
})
|
|
5990
|
-
};
|
|
5991
|
-
|
|
5992
|
-
// node_modules/date-fns/locale/_lib/buildMatchFn.js
|
|
5993
|
-
function buildMatchFn(args) {
|
|
5994
|
-
return (string, options = {}) => {
|
|
5995
|
-
const width = options.width;
|
|
5996
|
-
const matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
|
|
5997
|
-
const matchResult = string.match(matchPattern);
|
|
5998
|
-
if (!matchResult) {
|
|
5999
|
-
return null;
|
|
6000
|
-
}
|
|
6001
|
-
const matchedString = matchResult[0];
|
|
6002
|
-
const parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
|
|
6003
|
-
const key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) : (
|
|
6004
|
-
// [TODO] -- I challenge you to fix the type
|
|
6005
|
-
findKey(parsePatterns, (pattern) => pattern.test(matchedString))
|
|
6006
|
-
);
|
|
6007
|
-
let value;
|
|
6008
|
-
value = args.valueCallback ? args.valueCallback(key) : key;
|
|
6009
|
-
value = options.valueCallback ? (
|
|
6010
|
-
// [TODO] -- I challenge you to fix the type
|
|
6011
|
-
options.valueCallback(value)
|
|
6012
|
-
) : value;
|
|
6013
|
-
const rest = string.slice(matchedString.length);
|
|
6014
|
-
return { value, rest };
|
|
6015
|
-
};
|
|
6016
|
-
}
|
|
6017
|
-
function findKey(object, predicate) {
|
|
6018
|
-
for (const key in object) {
|
|
6019
|
-
if (Object.prototype.hasOwnProperty.call(object, key) && predicate(object[key])) {
|
|
6020
|
-
return key;
|
|
6021
|
-
}
|
|
6022
|
-
}
|
|
6023
|
-
return void 0;
|
|
6024
|
-
}
|
|
6025
|
-
function findIndex(array, predicate) {
|
|
6026
|
-
for (let key = 0; key < array.length; key++) {
|
|
6027
|
-
if (predicate(array[key])) {
|
|
6028
|
-
return key;
|
|
6029
|
-
}
|
|
6030
|
-
}
|
|
6031
|
-
return void 0;
|
|
6032
|
-
}
|
|
6033
|
-
|
|
6034
|
-
// node_modules/date-fns/locale/_lib/buildMatchPatternFn.js
|
|
6035
|
-
function buildMatchPatternFn(args) {
|
|
6036
|
-
return (string, options = {}) => {
|
|
6037
|
-
const matchResult = string.match(args.matchPattern);
|
|
6038
|
-
if (!matchResult) return null;
|
|
6039
|
-
const matchedString = matchResult[0];
|
|
6040
|
-
const parseResult = string.match(args.parsePattern);
|
|
6041
|
-
if (!parseResult) return null;
|
|
6042
|
-
let value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
|
|
6043
|
-
value = options.valueCallback ? options.valueCallback(value) : value;
|
|
6044
|
-
const rest = string.slice(matchedString.length);
|
|
6045
|
-
return { value, rest };
|
|
6046
|
-
};
|
|
6047
|
-
}
|
|
6048
|
-
|
|
6049
|
-
// node_modules/date-fns/locale/en-US/_lib/match.js
|
|
6050
|
-
var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
|
|
6051
|
-
var parseOrdinalNumberPattern = /\d+/i;
|
|
6052
|
-
var matchEraPatterns = {
|
|
6053
|
-
narrow: /^(b|a)/i,
|
|
6054
|
-
abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
|
|
6055
|
-
wide: /^(before christ|before common era|anno domini|common era)/i
|
|
6056
|
-
};
|
|
6057
|
-
var parseEraPatterns = {
|
|
6058
|
-
any: [/^b/i, /^(a|c)/i]
|
|
6059
|
-
};
|
|
6060
|
-
var matchQuarterPatterns = {
|
|
6061
|
-
narrow: /^[1234]/i,
|
|
6062
|
-
abbreviated: /^q[1234]/i,
|
|
6063
|
-
wide: /^[1234](th|st|nd|rd)? quarter/i
|
|
6064
|
-
};
|
|
6065
|
-
var parseQuarterPatterns = {
|
|
6066
|
-
any: [/1/i, /2/i, /3/i, /4/i]
|
|
6067
|
-
};
|
|
6068
|
-
var matchMonthPatterns = {
|
|
6069
|
-
narrow: /^[jfmasond]/i,
|
|
6070
|
-
abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
|
|
6071
|
-
wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
|
|
6072
|
-
};
|
|
6073
|
-
var parseMonthPatterns = {
|
|
6074
|
-
narrow: [
|
|
6075
|
-
/^j/i,
|
|
6076
|
-
/^f/i,
|
|
6077
|
-
/^m/i,
|
|
6078
|
-
/^a/i,
|
|
6079
|
-
/^m/i,
|
|
6080
|
-
/^j/i,
|
|
6081
|
-
/^j/i,
|
|
6082
|
-
/^a/i,
|
|
6083
|
-
/^s/i,
|
|
6084
|
-
/^o/i,
|
|
6085
|
-
/^n/i,
|
|
6086
|
-
/^d/i
|
|
6087
|
-
],
|
|
6088
|
-
any: [
|
|
6089
|
-
/^ja/i,
|
|
6090
|
-
/^f/i,
|
|
6091
|
-
/^mar/i,
|
|
6092
|
-
/^ap/i,
|
|
6093
|
-
/^may/i,
|
|
6094
|
-
/^jun/i,
|
|
6095
|
-
/^jul/i,
|
|
6096
|
-
/^au/i,
|
|
6097
|
-
/^s/i,
|
|
6098
|
-
/^o/i,
|
|
6099
|
-
/^n/i,
|
|
6100
|
-
/^d/i
|
|
6101
|
-
]
|
|
6102
|
-
};
|
|
6103
|
-
var matchDayPatterns = {
|
|
6104
|
-
narrow: /^[smtwf]/i,
|
|
6105
|
-
short: /^(su|mo|tu|we|th|fr|sa)/i,
|
|
6106
|
-
abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
|
|
6107
|
-
wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
|
|
6108
|
-
};
|
|
6109
|
-
var parseDayPatterns = {
|
|
6110
|
-
narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
|
|
6111
|
-
any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
|
|
6112
|
-
};
|
|
6113
|
-
var matchDayPeriodPatterns = {
|
|
6114
|
-
narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
|
|
6115
|
-
any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
|
|
6116
|
-
};
|
|
6117
|
-
var parseDayPeriodPatterns = {
|
|
6118
|
-
any: {
|
|
6119
|
-
am: /^a/i,
|
|
6120
|
-
pm: /^p/i,
|
|
6121
|
-
midnight: /^mi/i,
|
|
6122
|
-
noon: /^no/i,
|
|
6123
|
-
morning: /morning/i,
|
|
6124
|
-
afternoon: /afternoon/i,
|
|
6125
|
-
evening: /evening/i,
|
|
6126
|
-
night: /night/i
|
|
6127
|
-
}
|
|
6128
|
-
};
|
|
6129
|
-
var match = {
|
|
6130
|
-
ordinalNumber: buildMatchPatternFn({
|
|
6131
|
-
matchPattern: matchOrdinalNumberPattern,
|
|
6132
|
-
parsePattern: parseOrdinalNumberPattern,
|
|
6133
|
-
valueCallback: (value) => parseInt(value, 10)
|
|
6134
|
-
}),
|
|
6135
|
-
era: buildMatchFn({
|
|
6136
|
-
matchPatterns: matchEraPatterns,
|
|
6137
|
-
defaultMatchWidth: "wide",
|
|
6138
|
-
parsePatterns: parseEraPatterns,
|
|
6139
|
-
defaultParseWidth: "any"
|
|
6140
|
-
}),
|
|
6141
|
-
quarter: buildMatchFn({
|
|
6142
|
-
matchPatterns: matchQuarterPatterns,
|
|
6143
|
-
defaultMatchWidth: "wide",
|
|
6144
|
-
parsePatterns: parseQuarterPatterns,
|
|
6145
|
-
defaultParseWidth: "any",
|
|
6146
|
-
valueCallback: (index) => index + 1
|
|
6147
|
-
}),
|
|
6148
|
-
month: buildMatchFn({
|
|
6149
|
-
matchPatterns: matchMonthPatterns,
|
|
6150
|
-
defaultMatchWidth: "wide",
|
|
6151
|
-
parsePatterns: parseMonthPatterns,
|
|
6152
|
-
defaultParseWidth: "any"
|
|
6153
|
-
}),
|
|
6154
|
-
day: buildMatchFn({
|
|
6155
|
-
matchPatterns: matchDayPatterns,
|
|
6156
|
-
defaultMatchWidth: "wide",
|
|
6157
|
-
parsePatterns: parseDayPatterns,
|
|
6158
|
-
defaultParseWidth: "any"
|
|
6159
|
-
}),
|
|
6160
|
-
dayPeriod: buildMatchFn({
|
|
6161
|
-
matchPatterns: matchDayPeriodPatterns,
|
|
6162
|
-
defaultMatchWidth: "any",
|
|
6163
|
-
parsePatterns: parseDayPeriodPatterns,
|
|
6164
|
-
defaultParseWidth: "any"
|
|
6165
|
-
})
|
|
6166
|
-
};
|
|
6167
|
-
|
|
6168
|
-
// node_modules/date-fns/locale/en-US.js
|
|
6169
|
-
var enUS = {
|
|
6170
|
-
code: "en-US",
|
|
6171
|
-
formatDistance,
|
|
6172
|
-
formatLong,
|
|
6173
|
-
formatRelative,
|
|
6174
|
-
localize,
|
|
6175
|
-
match,
|
|
6176
|
-
options: {
|
|
6177
|
-
weekStartsOn: 0,
|
|
6178
|
-
firstWeekContainsDate: 1
|
|
6179
|
-
}
|
|
6180
|
-
};
|
|
6181
|
-
|
|
6182
|
-
// node_modules/date-fns/getDayOfYear.js
|
|
6183
|
-
function getDayOfYear(date, options) {
|
|
6184
|
-
const _date = toDate(date, options?.in);
|
|
6185
|
-
const diff = differenceInCalendarDays(_date, startOfYear(_date));
|
|
6186
|
-
const dayOfYear = diff + 1;
|
|
6187
|
-
return dayOfYear;
|
|
6188
|
-
}
|
|
6189
|
-
|
|
6190
|
-
// node_modules/date-fns/getISOWeek.js
|
|
6191
|
-
function getISOWeek(date, options) {
|
|
6192
|
-
const _date = toDate(date, options?.in);
|
|
6193
|
-
const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);
|
|
6194
|
-
return Math.round(diff / millisecondsInWeek) + 1;
|
|
6195
|
-
}
|
|
6196
|
-
|
|
6197
|
-
// node_modules/date-fns/getWeekYear.js
|
|
6198
|
-
function getWeekYear(date, options) {
|
|
6199
|
-
const _date = toDate(date, options?.in);
|
|
6200
|
-
const year = _date.getFullYear();
|
|
6201
|
-
const defaultOptions2 = getDefaultOptions();
|
|
6202
|
-
const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1;
|
|
6203
|
-
const firstWeekOfNextYear = constructFrom(options?.in || date, 0);
|
|
6204
|
-
firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
|
|
6205
|
-
firstWeekOfNextYear.setHours(0, 0, 0, 0);
|
|
6206
|
-
const startOfNextYear = startOfWeek2(firstWeekOfNextYear, options);
|
|
6207
|
-
const firstWeekOfThisYear = constructFrom(options?.in || date, 0);
|
|
6208
|
-
firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);
|
|
6209
|
-
firstWeekOfThisYear.setHours(0, 0, 0, 0);
|
|
6210
|
-
const startOfThisYear = startOfWeek2(firstWeekOfThisYear, options);
|
|
6211
|
-
if (+_date >= +startOfNextYear) {
|
|
6212
|
-
return year + 1;
|
|
6213
|
-
} else if (+_date >= +startOfThisYear) {
|
|
6214
|
-
return year;
|
|
6215
|
-
} else {
|
|
6216
|
-
return year - 1;
|
|
6217
|
-
}
|
|
6218
|
-
}
|
|
6219
|
-
|
|
6220
|
-
// node_modules/date-fns/startOfWeekYear.js
|
|
6221
|
-
function startOfWeekYear(date, options) {
|
|
6222
|
-
const defaultOptions2 = getDefaultOptions();
|
|
6223
|
-
const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1;
|
|
6224
|
-
const year = getWeekYear(date, options);
|
|
6225
|
-
const firstWeek = constructFrom(options?.in || date, 0);
|
|
6226
|
-
firstWeek.setFullYear(year, 0, firstWeekContainsDate);
|
|
6227
|
-
firstWeek.setHours(0, 0, 0, 0);
|
|
6228
|
-
const _date = startOfWeek2(firstWeek, options);
|
|
6229
|
-
return _date;
|
|
6230
|
-
}
|
|
6231
|
-
|
|
6232
|
-
// node_modules/date-fns/getWeek.js
|
|
6233
|
-
function getWeek(date, options) {
|
|
6234
|
-
const _date = toDate(date, options?.in);
|
|
6235
|
-
const diff = +startOfWeek2(_date, options) - +startOfWeekYear(_date, options);
|
|
6236
|
-
return Math.round(diff / millisecondsInWeek) + 1;
|
|
6237
|
-
}
|
|
6238
|
-
|
|
6239
|
-
// node_modules/date-fns/_lib/addLeadingZeros.js
|
|
6240
|
-
function addLeadingZeros(number, targetLength) {
|
|
6241
|
-
const sign = number < 0 ? "-" : "";
|
|
6242
|
-
const output = Math.abs(number).toString().padStart(targetLength, "0");
|
|
6243
|
-
return sign + output;
|
|
6244
|
-
}
|
|
6245
|
-
|
|
6246
|
-
// node_modules/date-fns/_lib/format/lightFormatters.js
|
|
6247
|
-
var lightFormatters = {
|
|
6248
|
-
// Year
|
|
6249
|
-
y(date, token) {
|
|
6250
|
-
const signedYear = date.getFullYear();
|
|
6251
|
-
const year = signedYear > 0 ? signedYear : 1 - signedYear;
|
|
6252
|
-
return addLeadingZeros(token === "yy" ? year % 100 : year, token.length);
|
|
6253
|
-
},
|
|
6254
|
-
// Month
|
|
6255
|
-
M(date, token) {
|
|
6256
|
-
const month = date.getMonth();
|
|
6257
|
-
return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2);
|
|
6258
|
-
},
|
|
6259
|
-
// Day of the month
|
|
6260
|
-
d(date, token) {
|
|
6261
|
-
return addLeadingZeros(date.getDate(), token.length);
|
|
6262
|
-
},
|
|
6263
|
-
// AM or PM
|
|
6264
|
-
a(date, token) {
|
|
6265
|
-
const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am";
|
|
6266
|
-
switch (token) {
|
|
6267
|
-
case "a":
|
|
6268
|
-
case "aa":
|
|
6269
|
-
return dayPeriodEnumValue.toUpperCase();
|
|
6270
|
-
case "aaa":
|
|
6271
|
-
return dayPeriodEnumValue;
|
|
6272
|
-
case "aaaaa":
|
|
6273
|
-
return dayPeriodEnumValue[0];
|
|
6274
|
-
case "aaaa":
|
|
6275
|
-
default:
|
|
6276
|
-
return dayPeriodEnumValue === "am" ? "a.m." : "p.m.";
|
|
6277
|
-
}
|
|
6278
|
-
},
|
|
6279
|
-
// Hour [1-12]
|
|
6280
|
-
h(date, token) {
|
|
6281
|
-
return addLeadingZeros(date.getHours() % 12 || 12, token.length);
|
|
6282
|
-
},
|
|
6283
|
-
// Hour [0-23]
|
|
6284
|
-
H(date, token) {
|
|
6285
|
-
return addLeadingZeros(date.getHours(), token.length);
|
|
6286
|
-
},
|
|
6287
|
-
// Minute
|
|
6288
|
-
m(date, token) {
|
|
6289
|
-
return addLeadingZeros(date.getMinutes(), token.length);
|
|
6290
|
-
},
|
|
6291
|
-
// Second
|
|
6292
|
-
s(date, token) {
|
|
6293
|
-
return addLeadingZeros(date.getSeconds(), token.length);
|
|
6294
|
-
},
|
|
6295
|
-
// Fraction of second
|
|
6296
|
-
S(date, token) {
|
|
6297
|
-
const numberOfDigits = token.length;
|
|
6298
|
-
const milliseconds = date.getMilliseconds();
|
|
6299
|
-
const fractionalSeconds = Math.trunc(
|
|
6300
|
-
milliseconds * Math.pow(10, numberOfDigits - 3)
|
|
6301
|
-
);
|
|
6302
|
-
return addLeadingZeros(fractionalSeconds, token.length);
|
|
6303
|
-
}
|
|
6304
|
-
};
|
|
6305
|
-
|
|
6306
|
-
// node_modules/date-fns/_lib/format/formatters.js
|
|
6307
|
-
var dayPeriodEnum = {
|
|
6308
|
-
midnight: "midnight",
|
|
6309
|
-
noon: "noon",
|
|
6310
|
-
morning: "morning",
|
|
6311
|
-
afternoon: "afternoon",
|
|
6312
|
-
evening: "evening",
|
|
6313
|
-
night: "night"
|
|
6314
|
-
};
|
|
6315
|
-
var formatters = {
|
|
6316
|
-
// Era
|
|
6317
|
-
G: function(date, token, localize2) {
|
|
6318
|
-
const era = date.getFullYear() > 0 ? 1 : 0;
|
|
6319
|
-
switch (token) {
|
|
6320
|
-
// AD, BC
|
|
6321
|
-
case "G":
|
|
6322
|
-
case "GG":
|
|
6323
|
-
case "GGG":
|
|
6324
|
-
return localize2.era(era, { width: "abbreviated" });
|
|
6325
|
-
// A, B
|
|
6326
|
-
case "GGGGG":
|
|
6327
|
-
return localize2.era(era, { width: "narrow" });
|
|
6328
|
-
// Anno Domini, Before Christ
|
|
6329
|
-
case "GGGG":
|
|
6330
|
-
default:
|
|
6331
|
-
return localize2.era(era, { width: "wide" });
|
|
6332
|
-
}
|
|
6333
|
-
},
|
|
6334
|
-
// Year
|
|
6335
|
-
y: function(date, token, localize2) {
|
|
6336
|
-
if (token === "yo") {
|
|
6337
|
-
const signedYear = date.getFullYear();
|
|
6338
|
-
const year = signedYear > 0 ? signedYear : 1 - signedYear;
|
|
6339
|
-
return localize2.ordinalNumber(year, { unit: "year" });
|
|
6340
|
-
}
|
|
6341
|
-
return lightFormatters.y(date, token);
|
|
6342
|
-
},
|
|
6343
|
-
// Local week-numbering year
|
|
6344
|
-
Y: function(date, token, localize2, options) {
|
|
6345
|
-
const signedWeekYear = getWeekYear(date, options);
|
|
6346
|
-
const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;
|
|
6347
|
-
if (token === "YY") {
|
|
6348
|
-
const twoDigitYear = weekYear % 100;
|
|
6349
|
-
return addLeadingZeros(twoDigitYear, 2);
|
|
6350
|
-
}
|
|
6351
|
-
if (token === "Yo") {
|
|
6352
|
-
return localize2.ordinalNumber(weekYear, { unit: "year" });
|
|
6353
|
-
}
|
|
6354
|
-
return addLeadingZeros(weekYear, token.length);
|
|
6355
|
-
},
|
|
6356
|
-
// ISO week-numbering year
|
|
6357
|
-
R: function(date, token) {
|
|
6358
|
-
const isoWeekYear = getISOWeekYear(date);
|
|
6359
|
-
return addLeadingZeros(isoWeekYear, token.length);
|
|
6360
|
-
},
|
|
6361
|
-
// Extended year. This is a single number designating the year of this calendar system.
|
|
6362
|
-
// The main difference between `y` and `u` localizers are B.C. years:
|
|
6363
|
-
// | Year | `y` | `u` |
|
|
6364
|
-
// |------|-----|-----|
|
|
6365
|
-
// | AC 1 | 1 | 1 |
|
|
6366
|
-
// | BC 1 | 1 | 0 |
|
|
6367
|
-
// | BC 2 | 2 | -1 |
|
|
6368
|
-
// Also `yy` always returns the last two digits of a year,
|
|
6369
|
-
// while `uu` pads single digit years to 2 characters and returns other years unchanged.
|
|
6370
|
-
u: function(date, token) {
|
|
6371
|
-
const year = date.getFullYear();
|
|
6372
|
-
return addLeadingZeros(year, token.length);
|
|
6373
|
-
},
|
|
6374
|
-
// Quarter
|
|
6375
|
-
Q: function(date, token, localize2) {
|
|
6376
|
-
const quarter = Math.ceil((date.getMonth() + 1) / 3);
|
|
6377
|
-
switch (token) {
|
|
6378
|
-
// 1, 2, 3, 4
|
|
6379
|
-
case "Q":
|
|
6380
|
-
return String(quarter);
|
|
6381
|
-
// 01, 02, 03, 04
|
|
6382
|
-
case "QQ":
|
|
6383
|
-
return addLeadingZeros(quarter, 2);
|
|
6384
|
-
// 1st, 2nd, 3rd, 4th
|
|
6385
|
-
case "Qo":
|
|
6386
|
-
return localize2.ordinalNumber(quarter, { unit: "quarter" });
|
|
6387
|
-
// Q1, Q2, Q3, Q4
|
|
6388
|
-
case "QQQ":
|
|
6389
|
-
return localize2.quarter(quarter, {
|
|
6390
|
-
width: "abbreviated",
|
|
6391
|
-
context: "formatting"
|
|
6392
|
-
});
|
|
6393
|
-
// 1, 2, 3, 4 (narrow quarter; could be not numerical)
|
|
6394
|
-
case "QQQQQ":
|
|
6395
|
-
return localize2.quarter(quarter, {
|
|
6396
|
-
width: "narrow",
|
|
6397
|
-
context: "formatting"
|
|
6398
|
-
});
|
|
6399
|
-
// 1st quarter, 2nd quarter, ...
|
|
6400
|
-
case "QQQQ":
|
|
6401
|
-
default:
|
|
6402
|
-
return localize2.quarter(quarter, {
|
|
6403
|
-
width: "wide",
|
|
6404
|
-
context: "formatting"
|
|
6405
|
-
});
|
|
6406
|
-
}
|
|
6407
|
-
},
|
|
6408
|
-
// Stand-alone quarter
|
|
6409
|
-
q: function(date, token, localize2) {
|
|
6410
|
-
const quarter = Math.ceil((date.getMonth() + 1) / 3);
|
|
6411
|
-
switch (token) {
|
|
6412
|
-
// 1, 2, 3, 4
|
|
6413
|
-
case "q":
|
|
6414
|
-
return String(quarter);
|
|
6415
|
-
// 01, 02, 03, 04
|
|
6416
|
-
case "qq":
|
|
6417
|
-
return addLeadingZeros(quarter, 2);
|
|
6418
|
-
// 1st, 2nd, 3rd, 4th
|
|
6419
|
-
case "qo":
|
|
6420
|
-
return localize2.ordinalNumber(quarter, { unit: "quarter" });
|
|
6421
|
-
// Q1, Q2, Q3, Q4
|
|
6422
|
-
case "qqq":
|
|
6423
|
-
return localize2.quarter(quarter, {
|
|
6424
|
-
width: "abbreviated",
|
|
6425
|
-
context: "standalone"
|
|
6426
|
-
});
|
|
6427
|
-
// 1, 2, 3, 4 (narrow quarter; could be not numerical)
|
|
6428
|
-
case "qqqqq":
|
|
6429
|
-
return localize2.quarter(quarter, {
|
|
6430
|
-
width: "narrow",
|
|
6431
|
-
context: "standalone"
|
|
6432
|
-
});
|
|
6433
|
-
// 1st quarter, 2nd quarter, ...
|
|
6434
|
-
case "qqqq":
|
|
6435
|
-
default:
|
|
6436
|
-
return localize2.quarter(quarter, {
|
|
6437
|
-
width: "wide",
|
|
6438
|
-
context: "standalone"
|
|
6439
|
-
});
|
|
6440
|
-
}
|
|
6441
|
-
},
|
|
6442
|
-
// Month
|
|
6443
|
-
M: function(date, token, localize2) {
|
|
6444
|
-
const month = date.getMonth();
|
|
6445
|
-
switch (token) {
|
|
6446
|
-
case "M":
|
|
6447
|
-
case "MM":
|
|
6448
|
-
return lightFormatters.M(date, token);
|
|
6449
|
-
// 1st, 2nd, ..., 12th
|
|
6450
|
-
case "Mo":
|
|
6451
|
-
return localize2.ordinalNumber(month + 1, { unit: "month" });
|
|
6452
|
-
// Jan, Feb, ..., Dec
|
|
6453
|
-
case "MMM":
|
|
6454
|
-
return localize2.month(month, {
|
|
6455
|
-
width: "abbreviated",
|
|
6456
|
-
context: "formatting"
|
|
6457
|
-
});
|
|
6458
|
-
// J, F, ..., D
|
|
6459
|
-
case "MMMMM":
|
|
6460
|
-
return localize2.month(month, {
|
|
6461
|
-
width: "narrow",
|
|
6462
|
-
context: "formatting"
|
|
6463
|
-
});
|
|
6464
|
-
// January, February, ..., December
|
|
6465
|
-
case "MMMM":
|
|
6466
|
-
default:
|
|
6467
|
-
return localize2.month(month, { width: "wide", context: "formatting" });
|
|
6468
|
-
}
|
|
6469
|
-
},
|
|
6470
|
-
// Stand-alone month
|
|
6471
|
-
L: function(date, token, localize2) {
|
|
6472
|
-
const month = date.getMonth();
|
|
6473
|
-
switch (token) {
|
|
6474
|
-
// 1, 2, ..., 12
|
|
6475
|
-
case "L":
|
|
6476
|
-
return String(month + 1);
|
|
6477
|
-
// 01, 02, ..., 12
|
|
6478
|
-
case "LL":
|
|
6479
|
-
return addLeadingZeros(month + 1, 2);
|
|
6480
|
-
// 1st, 2nd, ..., 12th
|
|
6481
|
-
case "Lo":
|
|
6482
|
-
return localize2.ordinalNumber(month + 1, { unit: "month" });
|
|
6483
|
-
// Jan, Feb, ..., Dec
|
|
6484
|
-
case "LLL":
|
|
6485
|
-
return localize2.month(month, {
|
|
6486
|
-
width: "abbreviated",
|
|
6487
|
-
context: "standalone"
|
|
6488
|
-
});
|
|
6489
|
-
// J, F, ..., D
|
|
6490
|
-
case "LLLLL":
|
|
6491
|
-
return localize2.month(month, {
|
|
6492
|
-
width: "narrow",
|
|
6493
|
-
context: "standalone"
|
|
6494
|
-
});
|
|
6495
|
-
// January, February, ..., December
|
|
6496
|
-
case "LLLL":
|
|
6497
|
-
default:
|
|
6498
|
-
return localize2.month(month, { width: "wide", context: "standalone" });
|
|
6499
|
-
}
|
|
6500
|
-
},
|
|
6501
|
-
// Local week of year
|
|
6502
|
-
w: function(date, token, localize2, options) {
|
|
6503
|
-
const week = getWeek(date, options);
|
|
6504
|
-
if (token === "wo") {
|
|
6505
|
-
return localize2.ordinalNumber(week, { unit: "week" });
|
|
6506
|
-
}
|
|
6507
|
-
return addLeadingZeros(week, token.length);
|
|
6508
|
-
},
|
|
6509
|
-
// ISO week of year
|
|
6510
|
-
I: function(date, token, localize2) {
|
|
6511
|
-
const isoWeek = getISOWeek(date);
|
|
6512
|
-
if (token === "Io") {
|
|
6513
|
-
return localize2.ordinalNumber(isoWeek, { unit: "week" });
|
|
6514
|
-
}
|
|
6515
|
-
return addLeadingZeros(isoWeek, token.length);
|
|
6516
|
-
},
|
|
6517
|
-
// Day of the month
|
|
6518
|
-
d: function(date, token, localize2) {
|
|
6519
|
-
if (token === "do") {
|
|
6520
|
-
return localize2.ordinalNumber(date.getDate(), { unit: "date" });
|
|
6521
|
-
}
|
|
6522
|
-
return lightFormatters.d(date, token);
|
|
6523
|
-
},
|
|
6524
|
-
// Day of year
|
|
6525
|
-
D: function(date, token, localize2) {
|
|
6526
|
-
const dayOfYear = getDayOfYear(date);
|
|
6527
|
-
if (token === "Do") {
|
|
6528
|
-
return localize2.ordinalNumber(dayOfYear, { unit: "dayOfYear" });
|
|
6529
|
-
}
|
|
6530
|
-
return addLeadingZeros(dayOfYear, token.length);
|
|
6531
|
-
},
|
|
6532
|
-
// Day of week
|
|
6533
|
-
E: function(date, token, localize2) {
|
|
6534
|
-
const dayOfWeek = date.getDay();
|
|
6535
|
-
switch (token) {
|
|
6536
|
-
// Tue
|
|
6537
|
-
case "E":
|
|
6538
|
-
case "EE":
|
|
6539
|
-
case "EEE":
|
|
6540
|
-
return localize2.day(dayOfWeek, {
|
|
6541
|
-
width: "abbreviated",
|
|
6542
|
-
context: "formatting"
|
|
6543
|
-
});
|
|
6544
|
-
// T
|
|
6545
|
-
case "EEEEE":
|
|
6546
|
-
return localize2.day(dayOfWeek, {
|
|
6547
|
-
width: "narrow",
|
|
6548
|
-
context: "formatting"
|
|
6549
|
-
});
|
|
6550
|
-
// Tu
|
|
6551
|
-
case "EEEEEE":
|
|
6552
|
-
return localize2.day(dayOfWeek, {
|
|
6553
|
-
width: "short",
|
|
6554
|
-
context: "formatting"
|
|
6555
|
-
});
|
|
6556
|
-
// Tuesday
|
|
6557
|
-
case "EEEE":
|
|
6558
|
-
default:
|
|
6559
|
-
return localize2.day(dayOfWeek, {
|
|
6560
|
-
width: "wide",
|
|
6561
|
-
context: "formatting"
|
|
6562
|
-
});
|
|
6563
|
-
}
|
|
6564
|
-
},
|
|
6565
|
-
// Local day of week
|
|
6566
|
-
e: function(date, token, localize2, options) {
|
|
6567
|
-
const dayOfWeek = date.getDay();
|
|
6568
|
-
const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
|
|
6569
|
-
switch (token) {
|
|
6570
|
-
// Numerical value (Nth day of week with current locale or weekStartsOn)
|
|
6571
|
-
case "e":
|
|
6572
|
-
return String(localDayOfWeek);
|
|
6573
|
-
// Padded numerical value
|
|
6574
|
-
case "ee":
|
|
6575
|
-
return addLeadingZeros(localDayOfWeek, 2);
|
|
6576
|
-
// 1st, 2nd, ..., 7th
|
|
6577
|
-
case "eo":
|
|
6578
|
-
return localize2.ordinalNumber(localDayOfWeek, { unit: "day" });
|
|
6579
|
-
case "eee":
|
|
6580
|
-
return localize2.day(dayOfWeek, {
|
|
6581
|
-
width: "abbreviated",
|
|
6582
|
-
context: "formatting"
|
|
6583
|
-
});
|
|
6584
|
-
// T
|
|
6585
|
-
case "eeeee":
|
|
6586
|
-
return localize2.day(dayOfWeek, {
|
|
6587
|
-
width: "narrow",
|
|
6588
|
-
context: "formatting"
|
|
6589
|
-
});
|
|
6590
|
-
// Tu
|
|
6591
|
-
case "eeeeee":
|
|
6592
|
-
return localize2.day(dayOfWeek, {
|
|
6593
|
-
width: "short",
|
|
6594
|
-
context: "formatting"
|
|
6595
|
-
});
|
|
6596
|
-
// Tuesday
|
|
6597
|
-
case "eeee":
|
|
6598
|
-
default:
|
|
6599
|
-
return localize2.day(dayOfWeek, {
|
|
6600
|
-
width: "wide",
|
|
6601
|
-
context: "formatting"
|
|
6602
|
-
});
|
|
6603
|
-
}
|
|
6604
|
-
},
|
|
6605
|
-
// Stand-alone local day of week
|
|
6606
|
-
c: function(date, token, localize2, options) {
|
|
6607
|
-
const dayOfWeek = date.getDay();
|
|
6608
|
-
const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
|
|
6609
|
-
switch (token) {
|
|
6610
|
-
// Numerical value (same as in `e`)
|
|
6611
|
-
case "c":
|
|
6612
|
-
return String(localDayOfWeek);
|
|
6613
|
-
// Padded numerical value
|
|
6614
|
-
case "cc":
|
|
6615
|
-
return addLeadingZeros(localDayOfWeek, token.length);
|
|
6616
|
-
// 1st, 2nd, ..., 7th
|
|
6617
|
-
case "co":
|
|
6618
|
-
return localize2.ordinalNumber(localDayOfWeek, { unit: "day" });
|
|
6619
|
-
case "ccc":
|
|
6620
|
-
return localize2.day(dayOfWeek, {
|
|
6621
|
-
width: "abbreviated",
|
|
6622
|
-
context: "standalone"
|
|
6623
|
-
});
|
|
6624
|
-
// T
|
|
6625
|
-
case "ccccc":
|
|
6626
|
-
return localize2.day(dayOfWeek, {
|
|
6627
|
-
width: "narrow",
|
|
6628
|
-
context: "standalone"
|
|
6629
|
-
});
|
|
6630
|
-
// Tu
|
|
6631
|
-
case "cccccc":
|
|
6632
|
-
return localize2.day(dayOfWeek, {
|
|
6633
|
-
width: "short",
|
|
6634
|
-
context: "standalone"
|
|
6635
|
-
});
|
|
6636
|
-
// Tuesday
|
|
6637
|
-
case "cccc":
|
|
6638
|
-
default:
|
|
6639
|
-
return localize2.day(dayOfWeek, {
|
|
6640
|
-
width: "wide",
|
|
6641
|
-
context: "standalone"
|
|
6642
|
-
});
|
|
6643
|
-
}
|
|
6644
|
-
},
|
|
6645
|
-
// ISO day of week
|
|
6646
|
-
i: function(date, token, localize2) {
|
|
6647
|
-
const dayOfWeek = date.getDay();
|
|
6648
|
-
const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
|
|
6649
|
-
switch (token) {
|
|
6650
|
-
// 2
|
|
6651
|
-
case "i":
|
|
6652
|
-
return String(isoDayOfWeek);
|
|
6653
|
-
// 02
|
|
6654
|
-
case "ii":
|
|
6655
|
-
return addLeadingZeros(isoDayOfWeek, token.length);
|
|
6656
|
-
// 2nd
|
|
6657
|
-
case "io":
|
|
6658
|
-
return localize2.ordinalNumber(isoDayOfWeek, { unit: "day" });
|
|
6659
|
-
// Tue
|
|
6660
|
-
case "iii":
|
|
6661
|
-
return localize2.day(dayOfWeek, {
|
|
6662
|
-
width: "abbreviated",
|
|
6663
|
-
context: "formatting"
|
|
6664
|
-
});
|
|
6665
|
-
// T
|
|
6666
|
-
case "iiiii":
|
|
6667
|
-
return localize2.day(dayOfWeek, {
|
|
6668
|
-
width: "narrow",
|
|
6669
|
-
context: "formatting"
|
|
6670
|
-
});
|
|
6671
|
-
// Tu
|
|
6672
|
-
case "iiiiii":
|
|
6673
|
-
return localize2.day(dayOfWeek, {
|
|
6674
|
-
width: "short",
|
|
6675
|
-
context: "formatting"
|
|
6676
|
-
});
|
|
6677
|
-
// Tuesday
|
|
6678
|
-
case "iiii":
|
|
6679
|
-
default:
|
|
6680
|
-
return localize2.day(dayOfWeek, {
|
|
6681
|
-
width: "wide",
|
|
6682
|
-
context: "formatting"
|
|
6683
|
-
});
|
|
6684
|
-
}
|
|
6685
|
-
},
|
|
6686
|
-
// AM or PM
|
|
6687
|
-
a: function(date, token, localize2) {
|
|
6688
|
-
const hours = date.getHours();
|
|
6689
|
-
const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
|
|
6690
|
-
switch (token) {
|
|
6691
|
-
case "a":
|
|
6692
|
-
case "aa":
|
|
6693
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6694
|
-
width: "abbreviated",
|
|
6695
|
-
context: "formatting"
|
|
6696
|
-
});
|
|
6697
|
-
case "aaa":
|
|
6698
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6699
|
-
width: "abbreviated",
|
|
6700
|
-
context: "formatting"
|
|
6701
|
-
}).toLowerCase();
|
|
6702
|
-
case "aaaaa":
|
|
6703
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6704
|
-
width: "narrow",
|
|
6705
|
-
context: "formatting"
|
|
6706
|
-
});
|
|
6707
|
-
case "aaaa":
|
|
6708
|
-
default:
|
|
6709
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6710
|
-
width: "wide",
|
|
6711
|
-
context: "formatting"
|
|
6712
|
-
});
|
|
6713
|
-
}
|
|
6714
|
-
},
|
|
6715
|
-
// AM, PM, midnight, noon
|
|
6716
|
-
b: function(date, token, localize2) {
|
|
6717
|
-
const hours = date.getHours();
|
|
6718
|
-
let dayPeriodEnumValue;
|
|
6719
|
-
if (hours === 12) {
|
|
6720
|
-
dayPeriodEnumValue = dayPeriodEnum.noon;
|
|
6721
|
-
} else if (hours === 0) {
|
|
6722
|
-
dayPeriodEnumValue = dayPeriodEnum.midnight;
|
|
6723
|
-
} else {
|
|
6724
|
-
dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
|
|
6725
|
-
}
|
|
6726
|
-
switch (token) {
|
|
6727
|
-
case "b":
|
|
6728
|
-
case "bb":
|
|
6729
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6730
|
-
width: "abbreviated",
|
|
6731
|
-
context: "formatting"
|
|
6732
|
-
});
|
|
6733
|
-
case "bbb":
|
|
6734
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6735
|
-
width: "abbreviated",
|
|
6736
|
-
context: "formatting"
|
|
6737
|
-
}).toLowerCase();
|
|
6738
|
-
case "bbbbb":
|
|
6739
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6740
|
-
width: "narrow",
|
|
6741
|
-
context: "formatting"
|
|
6742
|
-
});
|
|
6743
|
-
case "bbbb":
|
|
6744
|
-
default:
|
|
6745
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6746
|
-
width: "wide",
|
|
6747
|
-
context: "formatting"
|
|
6748
|
-
});
|
|
6749
|
-
}
|
|
6750
|
-
},
|
|
6751
|
-
// in the morning, in the afternoon, in the evening, at night
|
|
6752
|
-
B: function(date, token, localize2) {
|
|
6753
|
-
const hours = date.getHours();
|
|
6754
|
-
let dayPeriodEnumValue;
|
|
6755
|
-
if (hours >= 17) {
|
|
6756
|
-
dayPeriodEnumValue = dayPeriodEnum.evening;
|
|
6757
|
-
} else if (hours >= 12) {
|
|
6758
|
-
dayPeriodEnumValue = dayPeriodEnum.afternoon;
|
|
6759
|
-
} else if (hours >= 4) {
|
|
6760
|
-
dayPeriodEnumValue = dayPeriodEnum.morning;
|
|
6761
|
-
} else {
|
|
6762
|
-
dayPeriodEnumValue = dayPeriodEnum.night;
|
|
6763
|
-
}
|
|
6764
|
-
switch (token) {
|
|
6765
|
-
case "B":
|
|
6766
|
-
case "BB":
|
|
6767
|
-
case "BBB":
|
|
6768
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6769
|
-
width: "abbreviated",
|
|
6770
|
-
context: "formatting"
|
|
6771
|
-
});
|
|
6772
|
-
case "BBBBB":
|
|
6773
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6774
|
-
width: "narrow",
|
|
6775
|
-
context: "formatting"
|
|
6776
|
-
});
|
|
6777
|
-
case "BBBB":
|
|
6778
|
-
default:
|
|
6779
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
6780
|
-
width: "wide",
|
|
6781
|
-
context: "formatting"
|
|
6782
|
-
});
|
|
6783
|
-
}
|
|
6784
|
-
},
|
|
6785
|
-
// Hour [1-12]
|
|
6786
|
-
h: function(date, token, localize2) {
|
|
6787
|
-
if (token === "ho") {
|
|
6788
|
-
let hours = date.getHours() % 12;
|
|
6789
|
-
if (hours === 0) hours = 12;
|
|
6790
|
-
return localize2.ordinalNumber(hours, { unit: "hour" });
|
|
6791
|
-
}
|
|
6792
|
-
return lightFormatters.h(date, token);
|
|
6793
|
-
},
|
|
6794
|
-
// Hour [0-23]
|
|
6795
|
-
H: function(date, token, localize2) {
|
|
6796
|
-
if (token === "Ho") {
|
|
6797
|
-
return localize2.ordinalNumber(date.getHours(), { unit: "hour" });
|
|
6798
|
-
}
|
|
6799
|
-
return lightFormatters.H(date, token);
|
|
6800
|
-
},
|
|
6801
|
-
// Hour [0-11]
|
|
6802
|
-
K: function(date, token, localize2) {
|
|
6803
|
-
const hours = date.getHours() % 12;
|
|
6804
|
-
if (token === "Ko") {
|
|
6805
|
-
return localize2.ordinalNumber(hours, { unit: "hour" });
|
|
6806
|
-
}
|
|
6807
|
-
return addLeadingZeros(hours, token.length);
|
|
6808
|
-
},
|
|
6809
|
-
// Hour [1-24]
|
|
6810
|
-
k: function(date, token, localize2) {
|
|
6811
|
-
let hours = date.getHours();
|
|
6812
|
-
if (hours === 0) hours = 24;
|
|
6813
|
-
if (token === "ko") {
|
|
6814
|
-
return localize2.ordinalNumber(hours, { unit: "hour" });
|
|
6815
|
-
}
|
|
6816
|
-
return addLeadingZeros(hours, token.length);
|
|
6817
|
-
},
|
|
6818
|
-
// Minute
|
|
6819
|
-
m: function(date, token, localize2) {
|
|
6820
|
-
if (token === "mo") {
|
|
6821
|
-
return localize2.ordinalNumber(date.getMinutes(), { unit: "minute" });
|
|
6822
|
-
}
|
|
6823
|
-
return lightFormatters.m(date, token);
|
|
6824
|
-
},
|
|
6825
|
-
// Second
|
|
6826
|
-
s: function(date, token, localize2) {
|
|
6827
|
-
if (token === "so") {
|
|
6828
|
-
return localize2.ordinalNumber(date.getSeconds(), { unit: "second" });
|
|
6829
|
-
}
|
|
6830
|
-
return lightFormatters.s(date, token);
|
|
6831
|
-
},
|
|
6832
|
-
// Fraction of second
|
|
6833
|
-
S: function(date, token) {
|
|
6834
|
-
return lightFormatters.S(date, token);
|
|
6835
|
-
},
|
|
6836
|
-
// Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
|
|
6837
|
-
X: function(date, token, _localize) {
|
|
6838
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
6839
|
-
if (timezoneOffset === 0) {
|
|
6840
|
-
return "Z";
|
|
6841
|
-
}
|
|
6842
|
-
switch (token) {
|
|
6843
|
-
// Hours and optional minutes
|
|
6844
|
-
case "X":
|
|
6845
|
-
return formatTimezoneWithOptionalMinutes(timezoneOffset);
|
|
6846
|
-
// Hours, minutes and optional seconds without `:` delimiter
|
|
6847
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
6848
|
-
// so this token always has the same output as `XX`
|
|
6849
|
-
case "XXXX":
|
|
6850
|
-
case "XX":
|
|
6851
|
-
return formatTimezone(timezoneOffset);
|
|
6852
|
-
// Hours, minutes and optional seconds with `:` delimiter
|
|
6853
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
6854
|
-
// so this token always has the same output as `XXX`
|
|
6855
|
-
case "XXXXX":
|
|
6856
|
-
case "XXX":
|
|
6857
|
-
// Hours and minutes with `:` delimiter
|
|
6858
|
-
default:
|
|
6859
|
-
return formatTimezone(timezoneOffset, ":");
|
|
6860
|
-
}
|
|
6861
|
-
},
|
|
6862
|
-
// Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
|
|
6863
|
-
x: function(date, token, _localize) {
|
|
6864
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
6865
|
-
switch (token) {
|
|
6866
|
-
// Hours and optional minutes
|
|
6867
|
-
case "x":
|
|
6868
|
-
return formatTimezoneWithOptionalMinutes(timezoneOffset);
|
|
6869
|
-
// Hours, minutes and optional seconds without `:` delimiter
|
|
6870
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
6871
|
-
// so this token always has the same output as `xx`
|
|
6872
|
-
case "xxxx":
|
|
6873
|
-
case "xx":
|
|
6874
|
-
return formatTimezone(timezoneOffset);
|
|
6875
|
-
// Hours, minutes and optional seconds with `:` delimiter
|
|
6876
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
6877
|
-
// so this token always has the same output as `xxx`
|
|
6878
|
-
case "xxxxx":
|
|
6879
|
-
case "xxx":
|
|
6880
|
-
// Hours and minutes with `:` delimiter
|
|
6881
|
-
default:
|
|
6882
|
-
return formatTimezone(timezoneOffset, ":");
|
|
6883
|
-
}
|
|
6884
|
-
},
|
|
6885
|
-
// Timezone (GMT)
|
|
6886
|
-
O: function(date, token, _localize) {
|
|
6887
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
6888
|
-
switch (token) {
|
|
6889
|
-
// Short
|
|
6890
|
-
case "O":
|
|
6891
|
-
case "OO":
|
|
6892
|
-
case "OOO":
|
|
6893
|
-
return "GMT" + formatTimezoneShort(timezoneOffset, ":");
|
|
6894
|
-
// Long
|
|
6895
|
-
case "OOOO":
|
|
6896
|
-
default:
|
|
6897
|
-
return "GMT" + formatTimezone(timezoneOffset, ":");
|
|
6898
|
-
}
|
|
6899
|
-
},
|
|
6900
|
-
// Timezone (specific non-location)
|
|
6901
|
-
z: function(date, token, _localize) {
|
|
6902
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
6903
|
-
switch (token) {
|
|
6904
|
-
// Short
|
|
6905
|
-
case "z":
|
|
6906
|
-
case "zz":
|
|
6907
|
-
case "zzz":
|
|
6908
|
-
return "GMT" + formatTimezoneShort(timezoneOffset, ":");
|
|
6909
|
-
// Long
|
|
6910
|
-
case "zzzz":
|
|
6911
|
-
default:
|
|
6912
|
-
return "GMT" + formatTimezone(timezoneOffset, ":");
|
|
6913
|
-
}
|
|
6914
|
-
},
|
|
6915
|
-
// Seconds timestamp
|
|
6916
|
-
t: function(date, token, _localize) {
|
|
6917
|
-
const timestamp = Math.trunc(+date / 1e3);
|
|
6918
|
-
return addLeadingZeros(timestamp, token.length);
|
|
6919
|
-
},
|
|
6920
|
-
// Milliseconds timestamp
|
|
6921
|
-
T: function(date, token, _localize) {
|
|
6922
|
-
return addLeadingZeros(+date, token.length);
|
|
6923
|
-
}
|
|
6924
|
-
};
|
|
6925
|
-
function formatTimezoneShort(offset, delimiter = "") {
|
|
6926
|
-
const sign = offset > 0 ? "-" : "+";
|
|
6927
|
-
const absOffset = Math.abs(offset);
|
|
6928
|
-
const hours = Math.trunc(absOffset / 60);
|
|
6929
|
-
const minutes = absOffset % 60;
|
|
6930
|
-
if (minutes === 0) {
|
|
6931
|
-
return sign + String(hours);
|
|
6932
|
-
}
|
|
6933
|
-
return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);
|
|
6934
|
-
}
|
|
6935
|
-
function formatTimezoneWithOptionalMinutes(offset, delimiter) {
|
|
6936
|
-
if (offset % 60 === 0) {
|
|
6937
|
-
const sign = offset > 0 ? "-" : "+";
|
|
6938
|
-
return sign + addLeadingZeros(Math.abs(offset) / 60, 2);
|
|
6939
|
-
}
|
|
6940
|
-
return formatTimezone(offset, delimiter);
|
|
6941
|
-
}
|
|
6942
|
-
function formatTimezone(offset, delimiter = "") {
|
|
6943
|
-
const sign = offset > 0 ? "-" : "+";
|
|
6944
|
-
const absOffset = Math.abs(offset);
|
|
6945
|
-
const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);
|
|
6946
|
-
const minutes = addLeadingZeros(absOffset % 60, 2);
|
|
6947
|
-
return sign + hours + delimiter + minutes;
|
|
6948
|
-
}
|
|
6949
|
-
|
|
6950
|
-
// node_modules/date-fns/_lib/format/longFormatters.js
|
|
6951
|
-
var dateLongFormatter = (pattern, formatLong2) => {
|
|
6952
|
-
switch (pattern) {
|
|
6953
|
-
case "P":
|
|
6954
|
-
return formatLong2.date({ width: "short" });
|
|
6955
|
-
case "PP":
|
|
6956
|
-
return formatLong2.date({ width: "medium" });
|
|
6957
|
-
case "PPP":
|
|
6958
|
-
return formatLong2.date({ width: "long" });
|
|
6959
|
-
case "PPPP":
|
|
6960
|
-
default:
|
|
6961
|
-
return formatLong2.date({ width: "full" });
|
|
6962
|
-
}
|
|
6963
|
-
};
|
|
6964
|
-
var timeLongFormatter = (pattern, formatLong2) => {
|
|
6965
|
-
switch (pattern) {
|
|
6966
|
-
case "p":
|
|
6967
|
-
return formatLong2.time({ width: "short" });
|
|
6968
|
-
case "pp":
|
|
6969
|
-
return formatLong2.time({ width: "medium" });
|
|
6970
|
-
case "ppp":
|
|
6971
|
-
return formatLong2.time({ width: "long" });
|
|
6972
|
-
case "pppp":
|
|
6973
|
-
default:
|
|
6974
|
-
return formatLong2.time({ width: "full" });
|
|
6975
|
-
}
|
|
6976
|
-
};
|
|
6977
|
-
var dateTimeLongFormatter = (pattern, formatLong2) => {
|
|
6978
|
-
const matchResult = pattern.match(/(P+)(p+)?/) || [];
|
|
6979
|
-
const datePattern = matchResult[1];
|
|
6980
|
-
const timePattern = matchResult[2];
|
|
6981
|
-
if (!timePattern) {
|
|
6982
|
-
return dateLongFormatter(pattern, formatLong2);
|
|
6983
|
-
}
|
|
6984
|
-
let dateTimeFormat;
|
|
6985
|
-
switch (datePattern) {
|
|
6986
|
-
case "P":
|
|
6987
|
-
dateTimeFormat = formatLong2.dateTime({ width: "short" });
|
|
6988
|
-
break;
|
|
6989
|
-
case "PP":
|
|
6990
|
-
dateTimeFormat = formatLong2.dateTime({ width: "medium" });
|
|
6991
|
-
break;
|
|
6992
|
-
case "PPP":
|
|
6993
|
-
dateTimeFormat = formatLong2.dateTime({ width: "long" });
|
|
6994
|
-
break;
|
|
6995
|
-
case "PPPP":
|
|
6996
|
-
default:
|
|
6997
|
-
dateTimeFormat = formatLong2.dateTime({ width: "full" });
|
|
6998
|
-
break;
|
|
6999
|
-
}
|
|
7000
|
-
return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong2)).replace("{{time}}", timeLongFormatter(timePattern, formatLong2));
|
|
7001
|
-
};
|
|
7002
|
-
var longFormatters = {
|
|
7003
|
-
p: timeLongFormatter,
|
|
7004
|
-
P: dateTimeLongFormatter
|
|
7005
|
-
};
|
|
7006
|
-
|
|
7007
|
-
// node_modules/date-fns/_lib/protectedTokens.js
|
|
7008
|
-
var dayOfYearTokenRE = /^D+$/;
|
|
7009
|
-
var weekYearTokenRE = /^Y+$/;
|
|
7010
|
-
var throwTokens = ["D", "DD", "YY", "YYYY"];
|
|
7011
|
-
function isProtectedDayOfYearToken(token) {
|
|
7012
|
-
return dayOfYearTokenRE.test(token);
|
|
7013
|
-
}
|
|
7014
|
-
function isProtectedWeekYearToken(token) {
|
|
7015
|
-
return weekYearTokenRE.test(token);
|
|
7016
|
-
}
|
|
7017
|
-
function warnOrThrowProtectedError(token, format2, input) {
|
|
7018
|
-
const _message = message(token, format2, input);
|
|
7019
|
-
console.warn(_message);
|
|
7020
|
-
if (throwTokens.includes(token)) throw new RangeError(_message);
|
|
7021
|
-
}
|
|
7022
|
-
function message(token, format2, input) {
|
|
7023
|
-
const subject = token[0] === "Y" ? "years" : "days of the month";
|
|
7024
|
-
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`;
|
|
7025
|
-
}
|
|
7026
|
-
|
|
7027
|
-
// node_modules/date-fns/format.js
|
|
7028
|
-
var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
|
|
7029
|
-
var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
|
|
7030
|
-
var escapedStringRegExp = /^'([^]*?)'?$/;
|
|
7031
|
-
var doubleQuoteRegExp = /''/g;
|
|
7032
|
-
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
7033
|
-
function format(date, formatStr, options) {
|
|
7034
|
-
const defaultOptions2 = getDefaultOptions();
|
|
7035
|
-
const locale = defaultOptions2.locale ?? enUS;
|
|
7036
|
-
const firstWeekContainsDate = defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1;
|
|
7037
|
-
const weekStartsOn = defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0;
|
|
7038
|
-
const originalDate = toDate(date, options?.in);
|
|
7039
|
-
if (!isValid(originalDate)) {
|
|
7040
|
-
throw new RangeError("Invalid time value");
|
|
7041
|
-
}
|
|
7042
|
-
let parts = formatStr.match(longFormattingTokensRegExp).map((substring) => {
|
|
7043
|
-
const firstCharacter = substring[0];
|
|
7044
|
-
if (firstCharacter === "p" || firstCharacter === "P") {
|
|
7045
|
-
const longFormatter = longFormatters[firstCharacter];
|
|
7046
|
-
return longFormatter(substring, locale.formatLong);
|
|
7047
|
-
}
|
|
7048
|
-
return substring;
|
|
7049
|
-
}).join("").match(formattingTokensRegExp).map((substring) => {
|
|
7050
|
-
if (substring === "''") {
|
|
7051
|
-
return { isToken: false, value: "'" };
|
|
7052
|
-
}
|
|
7053
|
-
const firstCharacter = substring[0];
|
|
7054
|
-
if (firstCharacter === "'") {
|
|
7055
|
-
return { isToken: false, value: cleanEscapedString(substring) };
|
|
7056
|
-
}
|
|
7057
|
-
if (formatters[firstCharacter]) {
|
|
7058
|
-
return { isToken: true, value: substring };
|
|
7059
|
-
}
|
|
7060
|
-
if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
|
|
7061
|
-
throw new RangeError(
|
|
7062
|
-
"Format string contains an unescaped latin alphabet character `" + firstCharacter + "`"
|
|
7063
|
-
);
|
|
7064
|
-
}
|
|
7065
|
-
return { isToken: false, value: substring };
|
|
7066
|
-
});
|
|
7067
|
-
if (locale.localize.preprocessor) {
|
|
7068
|
-
parts = locale.localize.preprocessor(originalDate, parts);
|
|
7069
|
-
}
|
|
7070
|
-
const formatterOptions = {
|
|
7071
|
-
firstWeekContainsDate,
|
|
7072
|
-
weekStartsOn,
|
|
7073
|
-
locale
|
|
7074
|
-
};
|
|
7075
|
-
return parts.map((part) => {
|
|
7076
|
-
if (!part.isToken) return part.value;
|
|
7077
|
-
const token = part.value;
|
|
7078
|
-
if (isProtectedWeekYearToken(token) || isProtectedDayOfYearToken(token)) {
|
|
7079
|
-
warnOrThrowProtectedError(token, formatStr, String(date));
|
|
7080
|
-
}
|
|
7081
|
-
const formatter = formatters[token[0]];
|
|
7082
|
-
return formatter(originalDate, token, locale.localize, formatterOptions);
|
|
7083
|
-
}).join("");
|
|
7084
|
-
}
|
|
7085
|
-
function cleanEscapedString(input) {
|
|
7086
|
-
const matched = input.match(escapedStringRegExp);
|
|
7087
|
-
if (!matched) {
|
|
7088
|
-
return input;
|
|
7089
|
-
}
|
|
7090
|
-
return matched[1].replace(doubleQuoteRegExp, "'");
|
|
7091
|
-
}
|
|
7092
|
-
|
|
7093
|
-
// node_modules/date-fns/isSameMonth.js
|
|
7094
|
-
function isSameMonth(laterDate, earlierDate, options) {
|
|
7095
|
-
const [laterDate_, earlierDate_] = normalizeDates(
|
|
7096
|
-
options?.in,
|
|
7097
|
-
laterDate,
|
|
7098
|
-
earlierDate
|
|
7099
|
-
);
|
|
7100
|
-
return laterDate_.getFullYear() === earlierDate_.getFullYear() && laterDate_.getMonth() === earlierDate_.getMonth();
|
|
7101
|
-
}
|
|
7102
5372
|
var DEFAULT_COLUMN_WIDTH = {
|
|
7103
5373
|
days: 56,
|
|
7104
5374
|
weeks: 80,
|
|
@@ -7112,7 +5382,7 @@ var EDGE_HIT_PX = 8;
|
|
|
7112
5382
|
var LONG_PRESS_MS = 300;
|
|
7113
5383
|
function startOfScale(date, scale) {
|
|
7114
5384
|
if (scale === "days") return startOfDay(date);
|
|
7115
|
-
if (scale === "weeks") return
|
|
5385
|
+
if (scale === "weeks") return startOfWeek$1(date, { weekStartsOn: 1 });
|
|
7116
5386
|
return startOfMonth(date);
|
|
7117
5387
|
}
|
|
7118
5388
|
function endOfScale(date, scale) {
|
|
@@ -8719,7 +6989,7 @@ function Sparkline({
|
|
|
8719
6989
|
const max = Math.max(...data);
|
|
8720
6990
|
const range = max - min || 1;
|
|
8721
6991
|
const pad = 2;
|
|
8722
|
-
const lastY = pad + (1 - (data
|
|
6992
|
+
const lastY = pad + (1 - ((data.at(-1) ?? 0) - min) / range) * (height - pad * 2);
|
|
8723
6993
|
const areaPath = type === "area" ? `${path} L ${width - pad},${height - pad} L ${pad},${height - pad} Z` : void 0;
|
|
8724
6994
|
return /* @__PURE__ */ jsxs(
|
|
8725
6995
|
"svg",
|
|
@@ -8743,7 +7013,7 @@ var colorMap2 = {
|
|
|
8743
7013
|
warning: "bg-yellow-500",
|
|
8744
7014
|
error: "bg-red-500"
|
|
8745
7015
|
};
|
|
8746
|
-
var
|
|
7016
|
+
var sizeMap4 = {
|
|
8747
7017
|
sm: "h-1.5 w-1.5",
|
|
8748
7018
|
md: "h-2.5 w-2.5",
|
|
8749
7019
|
lg: "h-3.5 w-3.5"
|
|
@@ -8751,7 +7021,7 @@ var sizeMap3 = {
|
|
|
8751
7021
|
function BeaconDot({ color = "primary", size = "md" }) {
|
|
8752
7022
|
return /* @__PURE__ */ jsxs("span", { className: "relative flex", children: [
|
|
8753
7023
|
/* @__PURE__ */ jsx("span", { className: cn("animate-ping absolute inline-flex h-full w-full rounded-full opacity-75", colorMap2[color]) }),
|
|
8754
|
-
/* @__PURE__ */ jsx("span", { className: cn("relative inline-flex rounded-full",
|
|
7024
|
+
/* @__PURE__ */ jsx("span", { className: cn("relative inline-flex rounded-full", sizeMap4[size], colorMap2[color]) })
|
|
8755
7025
|
] });
|
|
8756
7026
|
}
|
|
8757
7027
|
function Beacon({ color = "primary", size = "md", children, className }) {
|
|
@@ -9194,7 +7464,7 @@ function ArrayField({
|
|
|
9194
7464
|
}
|
|
9195
7465
|
var DAYS2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
9196
7466
|
var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
9197
|
-
function
|
|
7467
|
+
function isSameDay(a, b) {
|
|
9198
7468
|
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
|
|
9199
7469
|
}
|
|
9200
7470
|
function getDaysInMonth(year, month) {
|
|
@@ -9213,8 +7483,8 @@ function CalendarGrid({ year, month, selected, onSelect }) {
|
|
|
9213
7483
|
cells.map((day, i) => {
|
|
9214
7484
|
if (!day) return /* @__PURE__ */ jsx("div", {}, i);
|
|
9215
7485
|
const date = new Date(year, month, day);
|
|
9216
|
-
const isToday =
|
|
9217
|
-
const isSelected = selected &&
|
|
7486
|
+
const isToday = isSameDay(date, today);
|
|
7487
|
+
const isSelected = selected && isSameDay(date, selected);
|
|
9218
7488
|
return /* @__PURE__ */ jsx(
|
|
9219
7489
|
"button",
|
|
9220
7490
|
{
|
|
@@ -9371,6 +7641,7 @@ function FieldRenderer({ name, field, register, setValue, watch, error }) {
|
|
|
9371
7641
|
}
|
|
9372
7642
|
function AutoForm({ schema, onSubmit, defaultValues, submitLabel = "Submit" }) {
|
|
9373
7643
|
const { register, handleSubmit, setValue, watch, formState } = useForm({
|
|
7644
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9374
7645
|
resolver: zodResolver(schema),
|
|
9375
7646
|
defaultValues
|
|
9376
7647
|
});
|
|
@@ -9394,18 +7665,18 @@ function AutoForm({ schema, onSubmit, defaultValues, submitLabel = "Submit" }) {
|
|
|
9394
7665
|
var HEX_RE = /^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
|
|
9395
7666
|
var RGB_RE = /^rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*(0|1|0?\.\d+)\s*)?\)$/i;
|
|
9396
7667
|
var HSL_RE = /^hsla?\(\s*\d+\s*,\s*\d+%\s*,\s*\d+%\s*(,\s*(0|1|0?\.\d+)\s*)?\)$/i;
|
|
9397
|
-
function
|
|
9398
|
-
if (
|
|
7668
|
+
function isValid(value, format3, showAlpha) {
|
|
7669
|
+
if (format3 === "hex") {
|
|
9399
7670
|
if (!HEX_RE.test(value)) return false;
|
|
9400
7671
|
if (!showAlpha && (value.length === 5 || value.length === 9)) return false;
|
|
9401
7672
|
return true;
|
|
9402
7673
|
}
|
|
9403
|
-
if (
|
|
7674
|
+
if (format3 === "rgb") return RGB_RE.test(value);
|
|
9404
7675
|
return HSL_RE.test(value);
|
|
9405
7676
|
}
|
|
9406
|
-
function defaultFor(
|
|
9407
|
-
if (
|
|
9408
|
-
if (
|
|
7677
|
+
function defaultFor(format3, showAlpha) {
|
|
7678
|
+
if (format3 === "hex") return showAlpha ? "#3b82f6ff" : "#3b82f6";
|
|
7679
|
+
if (format3 === "rgb") return showAlpha ? "rgba(59, 130, 246, 1)" : "rgb(59, 130, 246)";
|
|
9409
7680
|
return showAlpha ? "hsla(217, 91%, 60%, 1)" : "hsl(217, 91%, 60%)";
|
|
9410
7681
|
}
|
|
9411
7682
|
var ColorPicker = React131__default.forwardRef(
|
|
@@ -9413,7 +7684,7 @@ var ColorPicker = React131__default.forwardRef(
|
|
|
9413
7684
|
value: valueProp,
|
|
9414
7685
|
defaultValue,
|
|
9415
7686
|
onValueChange,
|
|
9416
|
-
format:
|
|
7687
|
+
format: format3 = "hex",
|
|
9417
7688
|
showAlpha = false,
|
|
9418
7689
|
swatches,
|
|
9419
7690
|
showEyeDropper = true,
|
|
@@ -9421,7 +7692,7 @@ var ColorPicker = React131__default.forwardRef(
|
|
|
9421
7692
|
className,
|
|
9422
7693
|
...props
|
|
9423
7694
|
}, ref) => {
|
|
9424
|
-
const fallback = defaultValue ?? defaultFor(
|
|
7695
|
+
const fallback = defaultValue ?? defaultFor(format3, showAlpha);
|
|
9425
7696
|
const isControlled = valueProp !== void 0;
|
|
9426
7697
|
const [internal, setInternal] = React131__default.useState(fallback);
|
|
9427
7698
|
const value = isControlled ? valueProp : internal;
|
|
@@ -9447,7 +7718,7 @@ var ColorPicker = React131__default.forwardRef(
|
|
|
9447
7718
|
const handleDraftChange = (e) => {
|
|
9448
7719
|
const next = e.target.value;
|
|
9449
7720
|
setDraft(next);
|
|
9450
|
-
const valid =
|
|
7721
|
+
const valid = isValid(next, format3, showAlpha);
|
|
9451
7722
|
setDraftValid(valid || next === "");
|
|
9452
7723
|
if (valid) commit(next);
|
|
9453
7724
|
};
|
|
@@ -9470,9 +7741,9 @@ var ColorPicker = React131__default.forwardRef(
|
|
|
9470
7741
|
disabled && "pointer-events-none opacity-50 grayscale"
|
|
9471
7742
|
)
|
|
9472
7743
|
};
|
|
9473
|
-
if (
|
|
9474
|
-
if (
|
|
9475
|
-
if (
|
|
7744
|
+
if (format3 === "hex" && showAlpha) return /* @__PURE__ */ jsx(HexAlphaColorPicker, { ...common });
|
|
7745
|
+
if (format3 === "hex") return /* @__PURE__ */ jsx(HexColorPicker, { ...common });
|
|
7746
|
+
if (format3 === "rgb") return /* @__PURE__ */ jsx(RgbStringColorPicker, { ...common });
|
|
9476
7747
|
return /* @__PURE__ */ jsx(HslStringColorPicker, { ...common });
|
|
9477
7748
|
})();
|
|
9478
7749
|
const showDropper = showEyeDropper && eyeDropperSupported;
|
|
@@ -9540,7 +7811,7 @@ var ColorPicker = React131__default.forwardRef(
|
|
|
9540
7811
|
"font-mono text-xs",
|
|
9541
7812
|
!draftValid && "border-[hsl(var(--destructive))] focus-visible:ring-[hsl(var(--destructive))]"
|
|
9542
7813
|
),
|
|
9543
|
-
"aria-label": `Color value (${
|
|
7814
|
+
"aria-label": `Color value (${format3})`,
|
|
9544
7815
|
"aria-invalid": !draftValid
|
|
9545
7816
|
}
|
|
9546
7817
|
),
|
|
@@ -9674,7 +7945,91 @@ function FileUploadPreview({ files, onRemove, className }) {
|
|
|
9674
7945
|
] })
|
|
9675
7946
|
] }, i)) });
|
|
9676
7947
|
}
|
|
9677
|
-
var
|
|
7948
|
+
var FloatingLabelInput = React131__default.forwardRef(
|
|
7949
|
+
({ label, error, hint, wrapperClassName, className, id, value, defaultValue, onFocus, onBlur, onChange, ...props }, ref) => {
|
|
7950
|
+
const autoId = useId();
|
|
7951
|
+
const inputId = id ?? autoId;
|
|
7952
|
+
const errorId = error ? `${inputId}-error` : void 0;
|
|
7953
|
+
const hintId = hint ? `${inputId}-hint` : void 0;
|
|
7954
|
+
const describedBy = [errorId, hintId].filter(Boolean).join(" ") || void 0;
|
|
7955
|
+
const [focused, setFocused] = useState(false);
|
|
7956
|
+
const [filled, setFilled] = useState(() => {
|
|
7957
|
+
if (value !== void 0 && value !== null && value !== "") return true;
|
|
7958
|
+
if (defaultValue !== void 0 && defaultValue !== null && defaultValue !== "") return true;
|
|
7959
|
+
return false;
|
|
7960
|
+
});
|
|
7961
|
+
const isFloated = focused || filled;
|
|
7962
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "floating-label-input", className: cn("flex flex-col gap-1.5", wrapperClassName), children: [
|
|
7963
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
7964
|
+
/* @__PURE__ */ jsx(
|
|
7965
|
+
"input",
|
|
7966
|
+
{
|
|
7967
|
+
ref,
|
|
7968
|
+
id: inputId,
|
|
7969
|
+
value,
|
|
7970
|
+
defaultValue,
|
|
7971
|
+
"data-slot": "input",
|
|
7972
|
+
"data-state": isFloated ? "floated" : "rest",
|
|
7973
|
+
"aria-invalid": Boolean(error) || void 0,
|
|
7974
|
+
"aria-describedby": describedBy,
|
|
7975
|
+
onFocus: (e) => {
|
|
7976
|
+
setFocused(true);
|
|
7977
|
+
onFocus?.(e);
|
|
7978
|
+
},
|
|
7979
|
+
onBlur: (e) => {
|
|
7980
|
+
setFocused(false);
|
|
7981
|
+
onBlur?.(e);
|
|
7982
|
+
},
|
|
7983
|
+
onChange: (e) => {
|
|
7984
|
+
setFilled(e.target.value.length > 0);
|
|
7985
|
+
onChange?.(e);
|
|
7986
|
+
},
|
|
7987
|
+
className: cn(
|
|
7988
|
+
// Reset + structure
|
|
7989
|
+
"peer w-full appearance-none bg-transparent",
|
|
7990
|
+
"h-14 rounded-md border px-3 pt-5 pb-1.5",
|
|
7991
|
+
"text-base text-foreground leading-tight",
|
|
7992
|
+
// Border / focus ring colors
|
|
7993
|
+
"border-input focus:border-ring focus:outline-none focus:ring-2 focus:ring-ring/30",
|
|
7994
|
+
error && "border-destructive focus:border-destructive focus:ring-destructive/30",
|
|
7995
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
7996
|
+
"placeholder:text-transparent",
|
|
7997
|
+
// hide native placeholder; label takes its job
|
|
7998
|
+
className
|
|
7999
|
+
),
|
|
8000
|
+
...props
|
|
8001
|
+
}
|
|
8002
|
+
),
|
|
8003
|
+
/* @__PURE__ */ jsx(
|
|
8004
|
+
"label",
|
|
8005
|
+
{
|
|
8006
|
+
htmlFor: inputId,
|
|
8007
|
+
className: cn(
|
|
8008
|
+
"pointer-events-none absolute left-3",
|
|
8009
|
+
"origin-[0_50%] transition-all duration-150 ease-out",
|
|
8010
|
+
"text-muted-foreground",
|
|
8011
|
+
// Rest: centered vertically inside the field, full size
|
|
8012
|
+
!isFloated && "top-1/2 -translate-y-1/2 text-base",
|
|
8013
|
+
// Floated: tucked into the top with a small subtle background
|
|
8014
|
+
isFloated && "top-1.5 text-[11px] uppercase tracking-wider text-foreground/85",
|
|
8015
|
+
error && "text-destructive"
|
|
8016
|
+
),
|
|
8017
|
+
children: label
|
|
8018
|
+
}
|
|
8019
|
+
)
|
|
8020
|
+
] }),
|
|
8021
|
+
error ? /* @__PURE__ */ jsx("p", { id: errorId, className: "text-xs text-destructive", children: error }) : hint ? /* @__PURE__ */ jsx("p", { id: hintId, className: "text-xs text-muted-foreground", children: hint }) : null
|
|
8022
|
+
] });
|
|
8023
|
+
}
|
|
8024
|
+
);
|
|
8025
|
+
FloatingLabelInput.displayName = "FloatingLabelInput";
|
|
8026
|
+
function FormField(props) {
|
|
8027
|
+
return /* @__PURE__ */ jsx(Controller, { ...props });
|
|
8028
|
+
}
|
|
8029
|
+
function FormItem({ className, ...props }) {
|
|
8030
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-1.5", className), ...props });
|
|
8031
|
+
}
|
|
8032
|
+
var FormLabel = React131__default.forwardRef(
|
|
9678
8033
|
({ className, error, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9679
8034
|
"label",
|
|
9680
8035
|
{
|
|
@@ -9688,14 +8043,24 @@ var FormLabel2 = React131__default.forwardRef(
|
|
|
9688
8043
|
}
|
|
9689
8044
|
)
|
|
9690
8045
|
);
|
|
9691
|
-
|
|
9692
|
-
var
|
|
8046
|
+
FormLabel.displayName = "FormLabel";
|
|
8047
|
+
var FormControl = React131__default.forwardRef(
|
|
9693
8048
|
({ ...props }, ref) => {
|
|
9694
8049
|
const id = useId();
|
|
9695
8050
|
return /* @__PURE__ */ jsx("div", { ref, id, ...props });
|
|
9696
8051
|
}
|
|
9697
8052
|
);
|
|
9698
|
-
|
|
8053
|
+
FormControl.displayName = "FormControl";
|
|
8054
|
+
function FormDescription({ className, ...props }) {
|
|
8055
|
+
return /* @__PURE__ */ jsx("p", { className: cn("text-xs text-[hsl(var(--muted-foreground))]", className), ...props });
|
|
8056
|
+
}
|
|
8057
|
+
function FormMessage({ className, children, name }) {
|
|
8058
|
+
const { formState } = useFormContext();
|
|
8059
|
+
const error = name ? formState.errors[name] : void 0;
|
|
8060
|
+
const message = error?.message ? String(error.message) : children;
|
|
8061
|
+
if (!message) return null;
|
|
8062
|
+
return /* @__PURE__ */ jsx("p", { className: cn("text-xs text-[hsl(var(--destructive))]", className), children: message });
|
|
8063
|
+
}
|
|
9699
8064
|
function ObjectField({
|
|
9700
8065
|
title,
|
|
9701
8066
|
description,
|
|
@@ -10178,7 +8543,7 @@ var MobileSidebarTrigger = React131__default.forwardRef(
|
|
|
10178
8543
|
}
|
|
10179
8544
|
);
|
|
10180
8545
|
MobileSidebarTrigger.displayName = "MobileSidebarTrigger";
|
|
10181
|
-
var
|
|
8546
|
+
var sizeMap5 = {
|
|
10182
8547
|
sm: "max-w-screen-sm",
|
|
10183
8548
|
md: "max-w-screen-md",
|
|
10184
8549
|
lg: "max-w-screen-lg",
|
|
@@ -10192,7 +8557,7 @@ var Container = React131__default.forwardRef(
|
|
|
10192
8557
|
ref,
|
|
10193
8558
|
className: cn(
|
|
10194
8559
|
"mx-auto w-full",
|
|
10195
|
-
|
|
8560
|
+
sizeMap5[size],
|
|
10196
8561
|
!noPadding && "px-4 sm:px-6 lg:px-8",
|
|
10197
8562
|
className
|
|
10198
8563
|
),
|
|
@@ -10795,9 +9160,9 @@ function nextId() {
|
|
|
10795
9160
|
return `toast-${++_id}`;
|
|
10796
9161
|
}
|
|
10797
9162
|
var toastEmitter = {
|
|
10798
|
-
emit(
|
|
9163
|
+
emit(message, options = {}) {
|
|
10799
9164
|
const id = options.id ?? nextId();
|
|
10800
|
-
const event = { id, message
|
|
9165
|
+
const event = { id, message, options };
|
|
10801
9166
|
listeners.forEach((fn) => fn(event));
|
|
10802
9167
|
return id;
|
|
10803
9168
|
},
|
|
@@ -10819,13 +9184,13 @@ var toastEmitter = {
|
|
|
10819
9184
|
};
|
|
10820
9185
|
}
|
|
10821
9186
|
};
|
|
10822
|
-
function toastFn(
|
|
10823
|
-
return toastEmitter.emit(
|
|
9187
|
+
function toastFn(message, opts) {
|
|
9188
|
+
return toastEmitter.emit(message, opts);
|
|
10824
9189
|
}
|
|
10825
|
-
toastFn.success = (
|
|
10826
|
-
toastFn.error = (
|
|
10827
|
-
toastFn.warning = (
|
|
10828
|
-
toastFn.info = (
|
|
9190
|
+
toastFn.success = (message, opts) => toastEmitter.emit(message, { ...opts, type: "success" });
|
|
9191
|
+
toastFn.error = (message, opts) => toastEmitter.emit(message, { ...opts, type: "error" });
|
|
9192
|
+
toastFn.warning = (message, opts) => toastEmitter.emit(message, { ...opts, type: "warning" });
|
|
9193
|
+
toastFn.info = (message, opts) => toastEmitter.emit(message, { ...opts, type: "info" });
|
|
10829
9194
|
toastFn.dismiss = (id) => toastEmitter.dismiss(id);
|
|
10830
9195
|
var iconMap = {
|
|
10831
9196
|
success: /* @__PURE__ */ jsx(CheckCircle, { className: "h-4 w-4 text-green-500" }),
|
|
@@ -10987,8 +9352,8 @@ GradientHeading.displayName = "GradientHeading";
|
|
|
10987
9352
|
function easeOutExpo(t) {
|
|
10988
9353
|
return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
|
|
10989
9354
|
}
|
|
10990
|
-
function formatNumber(value, decimals,
|
|
10991
|
-
if (
|
|
9355
|
+
function formatNumber(value, decimals, format3, locale) {
|
|
9356
|
+
if (format3) {
|
|
10992
9357
|
return new Intl.NumberFormat(locale, {
|
|
10993
9358
|
minimumFractionDigits: decimals,
|
|
10994
9359
|
maximumFractionDigits: decimals
|
|
@@ -11007,7 +9372,7 @@ var AnimatedNumber = React131__default.forwardRef(
|
|
|
11007
9372
|
easing = easeOutExpo,
|
|
11008
9373
|
autoStart = true,
|
|
11009
9374
|
locale,
|
|
11010
|
-
format:
|
|
9375
|
+
format: format3 = true,
|
|
11011
9376
|
className,
|
|
11012
9377
|
...props
|
|
11013
9378
|
}, ref) => {
|
|
@@ -11085,7 +9450,7 @@ var AnimatedNumber = React131__default.forwardRef(
|
|
|
11085
9450
|
...props,
|
|
11086
9451
|
children: [
|
|
11087
9452
|
prefix,
|
|
11088
|
-
formatNumber(displayed, decimals,
|
|
9453
|
+
formatNumber(displayed, decimals, format3, locale),
|
|
11089
9454
|
suffix
|
|
11090
9455
|
]
|
|
11091
9456
|
}
|
|
@@ -12200,13 +10565,13 @@ function eventOverlapsDay(event, day) {
|
|
|
12200
10565
|
}
|
|
12201
10566
|
function getMonthMatrix(date, weekStartsOn) {
|
|
12202
10567
|
const monthStart = startOfMonth(date);
|
|
12203
|
-
const gridStart =
|
|
10568
|
+
const gridStart = startOfWeek$1(monthStart, { weekStartsOn });
|
|
12204
10569
|
const cells = [];
|
|
12205
10570
|
for (let i = 0; i < 42; i++) cells.push(addDays(gridStart, i));
|
|
12206
10571
|
return cells;
|
|
12207
10572
|
}
|
|
12208
10573
|
function getWeekDays(date, weekStartsOn) {
|
|
12209
|
-
const start =
|
|
10574
|
+
const start = startOfWeek$1(date, { weekStartsOn });
|
|
12210
10575
|
return Array.from({ length: 7 }, (_, i) => addDays(start, i));
|
|
12211
10576
|
}
|
|
12212
10577
|
var EventCalendar = React131__default.forwardRef(
|
|
@@ -12266,7 +10631,7 @@ var EventCalendar = React131__default.forwardRef(
|
|
|
12266
10631
|
const headerLabel = React131__default.useMemo(() => {
|
|
12267
10632
|
if (view === "month") return format(date, "MMMM yyyy");
|
|
12268
10633
|
if (view === "week") {
|
|
12269
|
-
const start =
|
|
10634
|
+
const start = startOfWeek$1(date, { weekStartsOn });
|
|
12270
10635
|
const end = addDays(start, 6);
|
|
12271
10636
|
if (isSameMonth(start, end)) return `${format(start, "MMM d")} \u2013 ${format(end, "d, yyyy")}`;
|
|
12272
10637
|
return `${format(start, "MMM d")} \u2013 ${format(end, "MMM d, yyyy")}`;
|
|
@@ -12417,7 +10782,7 @@ function MonthView({
|
|
|
12417
10782
|
[date, weekStartsOn]
|
|
12418
10783
|
);
|
|
12419
10784
|
const weekdayLabels = React131__default.useMemo(() => {
|
|
12420
|
-
const start =
|
|
10785
|
+
const start = startOfWeek$1(/* @__PURE__ */ new Date(), { weekStartsOn });
|
|
12421
10786
|
return Array.from({ length: 7 }, (_, i) => format(addDays(start, i), "EEE"));
|
|
12422
10787
|
}, [weekStartsOn]);
|
|
12423
10788
|
const today = /* @__PURE__ */ new Date();
|
|
@@ -12432,7 +10797,7 @@ function MonthView({
|
|
|
12432
10797
|
)) }),
|
|
12433
10798
|
/* @__PURE__ */ jsx("div", { role: "grid", "aria-label": "Month grid", className: "grid grid-cols-7", children: cells.map((cell) => {
|
|
12434
10799
|
const inMonth = isSameMonth(cell, date);
|
|
12435
|
-
const isToday = isSameDay(cell, today);
|
|
10800
|
+
const isToday = isSameDay$1(cell, today);
|
|
12436
10801
|
const dayEvents = events.filter((ev) => eventOverlapsDay(ev, cell)).sort((a, b) => a.start.getTime() - b.start.getTime());
|
|
12437
10802
|
const visible = dayEvents.slice(0, 3);
|
|
12438
10803
|
const overflow = dayEvents.length - visible.length;
|
|
@@ -12593,7 +10958,7 @@ function HourGrid({
|
|
|
12593
10958
|
DayColumn,
|
|
12594
10959
|
{
|
|
12595
10960
|
day,
|
|
12596
|
-
isToday: isSameDay(day, today),
|
|
10961
|
+
isToday: isSameDay$1(day, today),
|
|
12597
10962
|
events: events.filter((ev) => eventOverlapsDay(ev, day)),
|
|
12598
10963
|
onEventClick,
|
|
12599
10964
|
onEventCreate,
|
|
@@ -12888,7 +11253,7 @@ function buildDefaultCrop(defaultCrop, aspect, imgWidth, imgHeight) {
|
|
|
12888
11253
|
}
|
|
12889
11254
|
return { unit: "%", x: 10, y: 10, width: 80, height: 80 };
|
|
12890
11255
|
}
|
|
12891
|
-
async function extractCroppedDataUrl(image, crop,
|
|
11256
|
+
async function extractCroppedDataUrl(image, crop, format3, quality) {
|
|
12892
11257
|
const scaleX = image.naturalWidth / image.width;
|
|
12893
11258
|
const scaleY = image.naturalHeight / image.height;
|
|
12894
11259
|
const canvas = document.createElement("canvas");
|
|
@@ -12908,7 +11273,7 @@ async function extractCroppedDataUrl(image, crop, format2, quality) {
|
|
|
12908
11273
|
canvas.width,
|
|
12909
11274
|
canvas.height
|
|
12910
11275
|
);
|
|
12911
|
-
const mime =
|
|
11276
|
+
const mime = format3 === "jpeg" ? "image/jpeg" : format3 === "webp" ? "image/webp" : "image/png";
|
|
12912
11277
|
return canvas.toDataURL(mime, quality);
|
|
12913
11278
|
}
|
|
12914
11279
|
var ImageCrop = React131__default.forwardRef(
|
|
@@ -14384,6 +12749,6 @@ function SortableNav({ items, onReorder, className }) {
|
|
|
14384
12749
|
return /* @__PURE__ */ jsx(DndContext, { sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsx(SortableContext, { items: items.map((i) => i.id), strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx("nav", { "data-slot": "sortable-nav", className: cn("space-y-0.5 px-2 py-1", className), children: items.map((item) => /* @__PURE__ */ jsx(SortableNavItemWrapper, { item }, item.id)) }) }) });
|
|
14385
12750
|
}
|
|
14386
12751
|
|
|
14387
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandList, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingThemePicker, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, PropertyItem, PropertyList, QrCode, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette,
|
|
12752
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandItem2 as CommandListItem, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingLabelInput, FloatingThemePicker, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, PropertyItem, PropertyList, QrCode, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette, useHotkeys, useLayoutId, useSidebar, useTour };
|
|
14388
12753
|
//# sourceMappingURL=index.mjs.map
|
|
14389
12754
|
//# sourceMappingURL=index.mjs.map
|