mirror of
https://github.com/vercel/commerce.git
synced 2025-05-12 04:37:51 +00:00
address order confirmation change requests
This commit is contained in:
parent
4673120ddc
commit
020b21892d
@ -1,17 +1,15 @@
|
|||||||
import { InformationCircleIcon } from '@heroicons/react/24/outline';
|
import { InformationCircleIcon } from '@heroicons/react/24/outline';
|
||||||
import ActivateWarranty from 'components/orders/activate-warranty';
|
import ActivateWarranty from 'components/orders/activate-warranty';
|
||||||
import MobileOrderActions from 'components/orders/mobile-order-actions';
|
import MobileOrderActions from 'components/orders/mobile-order-actions';
|
||||||
|
import OrderConfirmation from 'components/orders/order-confirmation';
|
||||||
import OrdersHeader from 'components/orders/orders-header';
|
import OrdersHeader from 'components/orders/orders-header';
|
||||||
import Price from 'components/price';
|
import Price from 'components/price';
|
||||||
import { Button } from 'components/ui';
|
import { Button } from 'components/ui';
|
||||||
import { getCustomerOrders } from 'lib/shopify';
|
import { getCustomerOrders } from 'lib/shopify';
|
||||||
import { toPrintDate } from 'lib/utils';
|
import { toPrintDate } from 'lib/utils';
|
||||||
import dynamic from 'next/dynamic';
|
|
||||||
import Image from 'next/image';
|
import Image from 'next/image';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
|
|
||||||
const OrderConfirmation = dynamic(() => import('components/orders/order-confirmation'));
|
|
||||||
|
|
||||||
export default async function AccountPage() {
|
export default async function AccountPage() {
|
||||||
const orders = await getCustomerOrders();
|
const orders = await getCustomerOrders();
|
||||||
|
|
||||||
@ -65,7 +63,7 @@ export default async function AccountPage() {
|
|||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
<ActivateWarranty order={order} />
|
<ActivateWarranty order={order} />
|
||||||
{!order.orderConfirmation && <OrderConfirmation order={order} />}
|
<OrderConfirmation order={order} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
import { getOrderConfirmationContent } from 'lib/shopify';
|
|
||||||
|
|
||||||
export async function GET() {
|
|
||||||
const data = await getOrderConfirmationContent();
|
|
||||||
|
|
||||||
return Response.json({ ...data });
|
|
||||||
}
|
|
@ -1,13 +1,37 @@
|
|||||||
import clsx from 'clsx';
|
import clsx from 'clsx';
|
||||||
|
import { VariantProps, tv } from 'tailwind-variants';
|
||||||
|
|
||||||
const dots = 'mx-[1px] inline-block h-1 w-1 animate-blink rounded-md';
|
const loadingDots = tv({
|
||||||
|
slots: {
|
||||||
|
root: 'mx-2 inline-flex items-center',
|
||||||
|
dots: 'bg-content inline-block animate-blink rounded-full'
|
||||||
|
},
|
||||||
|
variants: {
|
||||||
|
size: {
|
||||||
|
md: {
|
||||||
|
dots: 'h-1 w-1 mx-[1px]'
|
||||||
|
},
|
||||||
|
lg: {
|
||||||
|
dots: 'h-2 w-2 mx-[2px]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
defaultVariants: {
|
||||||
|
size: 'md'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const LoadingDots = ({ className }: { className: string }) => {
|
const LoadingDots = ({
|
||||||
|
rootClassName,
|
||||||
|
className,
|
||||||
|
size
|
||||||
|
}: { className?: string; rootClassName?: string } & VariantProps<typeof loadingDots>) => {
|
||||||
|
const { root, dots } = loadingDots({ size });
|
||||||
return (
|
return (
|
||||||
<span className="mx-2 inline-flex items-center">
|
<span className={root({ className: rootClassName })}>
|
||||||
<span className={clsx(dots, className)} />
|
<span className={dots({ className })} />
|
||||||
<span className={clsx(dots, 'animation-delay-[200ms]', className)} />
|
<span className={clsx(dots({ className }), 'animation-delay-[200ms]')} />
|
||||||
<span className={clsx(dots, 'animation-delay-[400ms]', className)} />
|
<span className={clsx(dots({ className }), 'animation-delay-[400ms]')} />
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -4,7 +4,7 @@ import { renderToBuffer } from '@react-pdf/renderer';
|
|||||||
import OrderConfirmationPdf from 'components/orders/order-confirmation-pdf';
|
import OrderConfirmationPdf from 'components/orders/order-confirmation-pdf';
|
||||||
import { handleUploadFile } from 'components/form/file-input/actions';
|
import { handleUploadFile } from 'components/form/file-input/actions';
|
||||||
import { TAGS } from 'lib/constants';
|
import { TAGS } from 'lib/constants';
|
||||||
import { updateOrderMetafields } from 'lib/shopify';
|
import { getOrderConfirmationContent, updateOrderMetafields } from 'lib/shopify';
|
||||||
import {
|
import {
|
||||||
Order,
|
Order,
|
||||||
OrderConfirmationContent,
|
OrderConfirmationContent,
|
||||||
@ -12,6 +12,7 @@ import {
|
|||||||
UpdateOrderMetafieldInput
|
UpdateOrderMetafieldInput
|
||||||
} from 'lib/shopify/types';
|
} from 'lib/shopify/types';
|
||||||
import { revalidateTag } from 'next/cache';
|
import { revalidateTag } from 'next/cache';
|
||||||
|
import { cache } from 'react';
|
||||||
|
|
||||||
const getMetafieldValue = (
|
const getMetafieldValue = (
|
||||||
key: keyof ShopifyOrderMetafield,
|
key: keyof ShopifyOrderMetafield,
|
||||||
@ -115,6 +116,10 @@ async function generateOrderConfirmationPDF(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const fetchOrderConfirmationContent = cache(async () => {
|
||||||
|
return getOrderConfirmationContent();
|
||||||
|
});
|
||||||
|
|
||||||
type ConfirmOrderOptions = {
|
type ConfirmOrderOptions = {
|
||||||
order: Order;
|
order: Order;
|
||||||
content: OrderConfirmationContent;
|
content: OrderConfirmationContent;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Image from 'next/image';
|
import Image from 'next/image';
|
||||||
import { Dialog, DialogBackdrop, DialogPanel } from '@headlessui/react';
|
import { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react';
|
||||||
import { toPrintDate } from 'lib/utils';
|
import { toPrintDate } from 'lib/utils';
|
||||||
import PaymentsDetails from './payment-details';
|
import PaymentsDetails from './payment-details';
|
||||||
import Price from 'components/price';
|
import Price from 'components/price';
|
||||||
@ -7,8 +7,9 @@ import Divider from 'components/divider';
|
|||||||
import Markdown from 'markdown-to-jsx';
|
import Markdown from 'markdown-to-jsx';
|
||||||
import { Order, OrderConfirmationContent } from 'lib/shopify/types';
|
import { Order, OrderConfirmationContent } from 'lib/shopify/types';
|
||||||
import { FormEventHandler, useEffect, useRef, useState, useTransition } from 'react';
|
import { FormEventHandler, useEffect, useRef, useState, useTransition } from 'react';
|
||||||
import { confirmOrder } from 'components/orders/actions';
|
import { confirmOrder, fetchOrderConfirmationContent } from 'components/orders/actions';
|
||||||
import { Button, Heading, Text, Label, Skeleton, InputLabel, Input } from 'components/ui';
|
import { Button, Heading, Text, Label, Input, Skeleton } from 'components/ui';
|
||||||
|
import LoadingDots from 'components/loading-dots';
|
||||||
|
|
||||||
function OrderConfirmationDetails({
|
function OrderConfirmationDetails({
|
||||||
content,
|
content,
|
||||||
@ -188,31 +189,28 @@ export default function OrderConfirmationModal({
|
|||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
}) {
|
}) {
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
|
const [submitting, setSubmitting] = useState(false);
|
||||||
const [orderConfirmationContent, setOrderConfirmationContent] =
|
const [orderConfirmationContent, setOrderConfirmationContent] =
|
||||||
useState<OrderConfirmationContent>();
|
useState<OrderConfirmationContent>();
|
||||||
const [, startTransition] = useTransition();
|
const [, startTransition] = useTransition();
|
||||||
const formRef = useRef<HTMLFormElement>(null);
|
const formRef = useRef<HTMLFormElement>(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchOrderConfirmationContent = async () => {
|
|
||||||
const res = await fetch('/api/orders/confirmation');
|
|
||||||
const data = await res.json();
|
|
||||||
|
|
||||||
setOrderConfirmationContent(data);
|
|
||||||
|
|
||||||
setLoading(false);
|
|
||||||
};
|
|
||||||
|
|
||||||
// If the order has already been confirmed, don't fetch the content
|
// If the order has already been confirmed, don't fetch the content
|
||||||
if (order.orderConfirmation) return;
|
if (order.orderConfirmation) return;
|
||||||
|
|
||||||
fetchOrderConfirmationContent();
|
if (!isOpen) return;
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, []);
|
(async () => {
|
||||||
|
const data = await fetchOrderConfirmationContent();
|
||||||
|
setOrderConfirmationContent(data);
|
||||||
|
setLoading(false);
|
||||||
|
})();
|
||||||
|
}, [isOpen, order.orderConfirmation]);
|
||||||
|
|
||||||
const handleSubmit: FormEventHandler<HTMLFormElement> = (event) => {
|
const handleSubmit: FormEventHandler<HTMLFormElement> = (event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
setLoading(true);
|
setSubmitting(true);
|
||||||
const form = formRef.current;
|
const form = formRef.current;
|
||||||
if (!form) return;
|
if (!form) return;
|
||||||
const formData = new FormData(form);
|
const formData = new FormData(form);
|
||||||
@ -223,7 +221,6 @@ export default function OrderConfirmationModal({
|
|||||||
content: orderConfirmationContent!,
|
content: orderConfirmationContent!,
|
||||||
formData
|
formData
|
||||||
});
|
});
|
||||||
form.reset();
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -239,46 +236,39 @@ export default function OrderConfirmationModal({
|
|||||||
<div className="flex min-h-full items-center justify-center">
|
<div className="flex min-h-full items-center justify-center">
|
||||||
<DialogPanel
|
<DialogPanel
|
||||||
transition
|
transition
|
||||||
className="max-w-3xl space-y-4 rounded bg-white p-12 duration-300 ease-out data-[closed]:scale-95 data-[closed]:opacity-0"
|
className="w-full max-w-3xl space-y-4 rounded bg-white p-5 duration-300 ease-out data-[closed]:scale-95 data-[closed]:opacity-0"
|
||||||
>
|
>
|
||||||
|
<DialogTitle className="mb-2 font-bold">Confirm Order</DialogTitle>
|
||||||
{loading ? (
|
{loading ? (
|
||||||
<Skeleton />
|
<LoadingDots size="lg" rootClassName="flex justify-center" />
|
||||||
) : (
|
) : (
|
||||||
<OrderConfirmationDetails content={orderConfirmationContent!} order={order} />
|
<OrderConfirmationDetails content={orderConfirmationContent!} order={order} />
|
||||||
)}
|
)}
|
||||||
<form onSubmit={handleSubmit} ref={formRef} className="space-y-4">
|
<form onSubmit={handleSubmit} ref={formRef}>
|
||||||
<div className="space-y-2">
|
<div className="max-w-md space-y-4">
|
||||||
<InputLabel htmlFor="date">Today's date</InputLabel>
|
|
||||||
<Input
|
<Input
|
||||||
type="date"
|
type="date"
|
||||||
id="date"
|
|
||||||
name="date"
|
|
||||||
readOnly
|
readOnly
|
||||||
|
label="Date"
|
||||||
value={new Date().toLocaleDateString('en-CA', {
|
value={new Date().toLocaleDateString('en-CA', {
|
||||||
year: 'numeric',
|
year: 'numeric',
|
||||||
month: '2-digit',
|
month: '2-digit',
|
||||||
day: '2-digit'
|
day: '2-digit'
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
</div>
|
<Input required label="Print your name to sign" />
|
||||||
<div className="space-y-2">
|
<Input required label="Credit card holder's electronic signature" />
|
||||||
<InputLabel htmlFor="signature1">Print your name to sign</InputLabel>
|
|
||||||
<Input id="signature1" name="signature1" required />
|
|
||||||
</div>
|
|
||||||
<div className="space-y-2">
|
|
||||||
<InputLabel htmlFor="signature2">
|
|
||||||
Credit card holder's electronic signature
|
|
||||||
</InputLabel>
|
|
||||||
<Input id="signature2" name="signature2" required />
|
|
||||||
</div>
|
</div>
|
||||||
<div className="flex justify-end gap-2">
|
<div className="flex justify-end gap-2">
|
||||||
<Button variant="text">Cancel</Button>
|
<Button variant="text" onClick={onClose}>
|
||||||
|
Cancel
|
||||||
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
type="submit"
|
type="submit"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
color="primary"
|
color="primary"
|
||||||
disabled={loading}
|
disabled={submitting || loading}
|
||||||
isLoading={loading}
|
isLoading={submitting}
|
||||||
>
|
>
|
||||||
Submit
|
Submit
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
'use client';
|
'use client';
|
||||||
import { Button } from 'components/ui';
|
import { Button } from 'components/ui';
|
||||||
import { Order } from 'lib/shopify/types';
|
import { Order } from 'lib/shopify/types';
|
||||||
import dynamic from 'next/dynamic';
|
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
|
import OrderConfirmationModal from './order-confirmation-modal';
|
||||||
const OrderConfirmationModal = dynamic(() => import('./order-confirmation-modal'));
|
|
||||||
|
|
||||||
export default function OrderConfirmation({ order }: { order: Order }) {
|
export default function OrderConfirmation({ order }: { order: Order }) {
|
||||||
const [isOpen, setIsOpen] = useState(false);
|
const [isOpen, setIsOpen] = useState(false);
|
||||||
@ -12,13 +10,8 @@ export default function OrderConfirmation({ order }: { order: Order }) {
|
|||||||
if (order.orderConfirmation) return null;
|
if (order.orderConfirmation) return null;
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Button variant="outlined" onClick={() => setIsOpen(true)}>
|
<Button onClick={() => setIsOpen(true)}>Confirm Order</Button>
|
||||||
Confirm Order
|
<OrderConfirmationModal isOpen={isOpen} onClose={() => setIsOpen(false)} order={order} />
|
||||||
</Button>
|
|
||||||
|
|
||||||
{isOpen && (
|
|
||||||
<OrderConfirmationModal isOpen={isOpen} onClose={() => setIsOpen(false)} order={order} />
|
|
||||||
)}
|
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ import React from 'react';
|
|||||||
import { Button as ButtonBase, ButtonProps as ButtonBaseProps } from '@headlessui/react';
|
import { Button as ButtonBase, ButtonProps as ButtonBaseProps } from '@headlessui/react';
|
||||||
import { tv, type VariantProps } from 'tailwind-variants';
|
import { tv, type VariantProps } from 'tailwind-variants';
|
||||||
import clsx from 'clsx';
|
import clsx from 'clsx';
|
||||||
import LoadingDots from './loading-dots';
|
import LoadingDots from 'components/loading-dots';
|
||||||
import { focusInput } from 'lib/utils';
|
import { focusInput } from 'lib/utils';
|
||||||
|
|
||||||
const buttonVariants = tv({
|
const buttonVariants = tv({
|
||||||
@ -183,7 +183,7 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|||||||
>
|
>
|
||||||
{isLoading ? (
|
{isLoading ? (
|
||||||
<span className={loading()}>
|
<span className={loading()}>
|
||||||
<LoadingDots />
|
<LoadingDots className="bg-white" />
|
||||||
<span className="sr-only">{loadingText}</span>
|
<span className="sr-only">{loadingText}</span>
|
||||||
<span>{loadingText}</span>
|
<span>{loadingText}</span>
|
||||||
</span>
|
</span>
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
'use client';
|
|
||||||
|
|
||||||
import { CheckIcon } from '@heroicons/react/24/outline';
|
|
||||||
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
||||||
import { cn } from 'lib/utils';
|
|
||||||
import { forwardRef } from 'react';
|
|
||||||
|
|
||||||
const Checkbox = forwardRef<
|
|
||||||
React.ElementRef<typeof CheckboxPrimitive.Root>,
|
|
||||||
React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>
|
|
||||||
>(({ className, ...props }, ref) => (
|
|
||||||
<CheckboxPrimitive.Root
|
|
||||||
ref={ref}
|
|
||||||
className={cn(
|
|
||||||
'ring-offset-background focus-visible:ring-ring peer h-4 w-4 shrink-0 rounded-sm border border-dark focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-dark data-[state=checked]:text-white',
|
|
||||||
className
|
|
||||||
)}
|
|
||||||
{...props}
|
|
||||||
>
|
|
||||||
<CheckboxPrimitive.Indicator className={cn('flex items-center justify-center text-current')}>
|
|
||||||
<CheckIcon className="h-4 w-4" />
|
|
||||||
</CheckboxPrimitive.Indicator>
|
|
||||||
</CheckboxPrimitive.Root>
|
|
||||||
));
|
|
||||||
|
|
||||||
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
||||||
|
|
||||||
export default Checkbox;
|
|
@ -4,10 +4,8 @@ export { default as Button } from './button';
|
|||||||
export * from './button';
|
export * from './button';
|
||||||
export { default as Card } from './card';
|
export { default as Card } from './card';
|
||||||
export * from './card';
|
export * from './card';
|
||||||
export { default as Checkbox } from './checkbox';
|
|
||||||
export { default as Heading } from './heading';
|
export { default as Heading } from './heading';
|
||||||
export { default as InputLabel } from './input-label';
|
export * from './heading';
|
||||||
export * from './input-label';
|
|
||||||
export { default as Input } from './input';
|
export { default as Input } from './input';
|
||||||
export * from './input';
|
export * from './input';
|
||||||
export { default as Label } from './label';
|
export { default as Label } from './label';
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import * as LabelPrimitives from '@radix-ui/react-label';
|
|
||||||
|
|
||||||
import { cx } from 'lib/utils';
|
|
||||||
|
|
||||||
export interface InputLabelProps
|
|
||||||
extends React.ComponentPropsWithoutRef<typeof LabelPrimitives.Root> {
|
|
||||||
disabled?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
const InputLabel = React.forwardRef<React.ElementRef<typeof LabelPrimitives.Root>, InputLabelProps>(
|
|
||||||
({ className, disabled, ...props }, forwardedRef) => (
|
|
||||||
<LabelPrimitives.Root
|
|
||||||
ref={forwardedRef}
|
|
||||||
className={cx(
|
|
||||||
// base
|
|
||||||
'text-sm leading-none',
|
|
||||||
// text color
|
|
||||||
'text-gray-900 dark:text-gray-50',
|
|
||||||
// disabled
|
|
||||||
{
|
|
||||||
'text-gray-400 dark:text-gray-600': disabled
|
|
||||||
},
|
|
||||||
className
|
|
||||||
)}
|
|
||||||
aria-disabled={disabled}
|
|
||||||
{...props}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
);
|
|
||||||
InputLabel.displayName = 'InputLabel';
|
|
||||||
|
|
||||||
export default InputLabel;
|
|
@ -1,70 +1,83 @@
|
|||||||
import React from 'react';
|
'use client';
|
||||||
import { tv, type VariantProps } from 'tailwind-variants';
|
|
||||||
|
|
||||||
import { cx, focusInput, hasErrorInput } from 'lib/utils';
|
import React from 'react';
|
||||||
|
import { tv, VariantProps } from 'tailwind-variants';
|
||||||
|
import {
|
||||||
|
Field,
|
||||||
|
Input as HeadlessInput,
|
||||||
|
InputProps as HeadlessInputProps,
|
||||||
|
Label
|
||||||
|
} from '@headlessui/react';
|
||||||
|
|
||||||
|
import { focusInput, hasErrorInput } from 'lib/utils';
|
||||||
|
|
||||||
const inputStyles = tv({
|
const inputStyles = tv({
|
||||||
base: [
|
slots: {
|
||||||
// base
|
root: '',
|
||||||
'relative block w-full appearance-none rounded-md border px-2.5 py-1.5 shadow-sm outline-none transition sm:text-sm',
|
label: [
|
||||||
// border color
|
// base
|
||||||
'border-gray-300 dark:border-gray-800',
|
'text-sm leading-none',
|
||||||
// text color
|
// text color
|
||||||
'text-gray-900 dark:text-gray-50',
|
'text-content-strong font-medium',
|
||||||
// placeholder color
|
// disabled
|
||||||
'placeholder-gray-400 dark:placeholder-gray-500',
|
'data-[disabled]-text-gray-400'
|
||||||
// background color
|
|
||||||
'bg-white dark:bg-gray-950',
|
|
||||||
// disabled
|
|
||||||
'disabled:border-gray-300 disabled:bg-gray-100 disabled:text-gray-400',
|
|
||||||
'disabled:dark:border-gray-700 disabled:dark:bg-gray-800 disabled:dark:text-gray-500',
|
|
||||||
// file
|
|
||||||
[
|
|
||||||
'file:-my-1.5 file:-ml-2.5 file:h-[36px] file:cursor-pointer file:rounded-l-md file:rounded-r-none file:border-0 file:px-3 file:py-1.5 file:outline-none focus:outline-none disabled:pointer-events-none file:disabled:pointer-events-none',
|
|
||||||
'file:border-solid file:border-gray-300 file:bg-gray-50 file:text-gray-500 file:hover:bg-gray-100 file:dark:border-gray-800 file:dark:bg-gray-950 file:hover:dark:bg-gray-900/20 file:disabled:dark:border-gray-700',
|
|
||||||
'file:[border-inline-end-width:1px] file:[margin-inline-end:0.75rem]',
|
|
||||||
'file:disabled:bg-gray-100 file:disabled:text-gray-500 file:disabled:dark:bg-gray-800'
|
|
||||||
],
|
],
|
||||||
// focus
|
input: [
|
||||||
focusInput,
|
// base
|
||||||
// invalid
|
'w-full relative block rounded-md border-0 shadow-sm outline-none transition sm:text-sm sm:leading-6',
|
||||||
'aria-[invalid=true]:dark:ring-red-400/20 aria-[invalid=true]:ring-2 aria-[invalid=true]:ring-red-200 aria-[invalid=true]:border-red-500 invalid:ring-2 invalid:ring-red-200 invalid:border-red-500'
|
'mt-2 px-2.5 py-1.5',
|
||||||
],
|
// border color
|
||||||
|
'border-gray-300',
|
||||||
|
// text color
|
||||||
|
'text-gray-900',
|
||||||
|
// ring
|
||||||
|
'ring-1 ring-inset ring-gray-300',
|
||||||
|
// placeholder color
|
||||||
|
'placeholder-gray-400',
|
||||||
|
// background color
|
||||||
|
'bg-white',
|
||||||
|
// disabled
|
||||||
|
'data-[disabled]:border-gray-300 data-[disabled]:bg-gray-100 data-[disabled]:text-gray-400',
|
||||||
|
// focus
|
||||||
|
focusInput,
|
||||||
|
// invalid
|
||||||
|
'data-[invalid]:ring-2 data-[invalid]:ring-red-200 data-[invalid]:border-red-500'
|
||||||
|
]
|
||||||
|
},
|
||||||
variants: {
|
variants: {
|
||||||
hasError: {
|
hasError: {
|
||||||
true: hasErrorInput
|
true: hasErrorInput
|
||||||
},
|
|
||||||
// number input
|
|
||||||
enableStepper: {
|
|
||||||
true: '[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
export interface InputProps
|
export interface InputProps extends HeadlessInputProps, VariantProps<typeof inputStyles> {
|
||||||
extends React.InputHTMLAttributes<HTMLInputElement>,
|
label?: string;
|
||||||
VariantProps<typeof inputStyles> {
|
className?: string;
|
||||||
|
labelClassName?: string;
|
||||||
inputClassName?: string;
|
inputClassName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
function Input({
|
||||||
(
|
className,
|
||||||
{ className, inputClassName, hasError, enableStepper, type, ...props }: InputProps,
|
label,
|
||||||
forwardedRef
|
labelClassName,
|
||||||
) => {
|
inputClassName,
|
||||||
return (
|
hasError,
|
||||||
<div className={cx('relative w-full', className)}>
|
disabled,
|
||||||
<input
|
...props
|
||||||
ref={forwardedRef}
|
}: InputProps) {
|
||||||
type={type}
|
const { root, label: labelStyles, input } = inputStyles({ hasError });
|
||||||
className={cx(inputStyles({ hasError, enableStepper }), inputClassName)}
|
return (
|
||||||
{...props}
|
<Field disabled={disabled} className={root({ className })}>
|
||||||
/>
|
{label && <Label className={labelStyles({ className: labelClassName })}>{label}</Label>}
|
||||||
</div>
|
<HeadlessInput
|
||||||
);
|
disabled={disabled}
|
||||||
}
|
className={input({ className: inputClassName })}
|
||||||
);
|
{...props}
|
||||||
|
/>
|
||||||
Input.displayName = 'Input';
|
</Field>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export default Input;
|
export default Input;
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
import clsx from 'clsx';
|
|
||||||
|
|
||||||
const dots = 'mx-[1px] inline-block h-1 w-1 animate-blink rounded-md';
|
|
||||||
|
|
||||||
const LoadingDots = ({ className }: { className?: string }) => {
|
|
||||||
return (
|
|
||||||
<span className="mx-2 inline-flex items-center">
|
|
||||||
<span className={clsx(dots, className)} />
|
|
||||||
<span className={clsx(dots, 'animation-delay-[200ms]', className)} />
|
|
||||||
<span className={clsx(dots, 'animation-delay-[400ms]', className)} />
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LoadingDots;
|
|
@ -244,7 +244,6 @@ export async function checkExpires({
|
|||||||
//this will return success: true or success: false - depending on result of refresh
|
//this will return success: true or success: false - depending on result of refresh
|
||||||
return { ranRefresh: isExpired, refresh };
|
return { ranRefresh: isExpired, refresh };
|
||||||
}
|
}
|
||||||
console.log('is expired is false - just sending back success', isExpired);
|
|
||||||
return { ranRefresh: isExpired, success: true };
|
return { ranRefresh: isExpired, success: true };
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -355,7 +354,6 @@ export async function isLoggedIn(request: NextRequest, origin: string) {
|
|||||||
expiresAt: expiresTokenValue,
|
expiresAt: expiresTokenValue,
|
||||||
origin: origin
|
origin: origin
|
||||||
});
|
});
|
||||||
console.log('is Expired?', isExpired);
|
|
||||||
//only execute the code below to reset the cookies if it was expired!
|
//only execute the code below to reset the cookies if it was expired!
|
||||||
if (isExpired.ranRefresh) {
|
if (isExpired.ranRefresh) {
|
||||||
const isSuccess = isExpired?.refresh?.success;
|
const isSuccess = isExpired?.refresh?.success;
|
||||||
@ -390,7 +388,6 @@ export async function isLoggedIn(request: NextRequest, origin: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
newHeaders.set('x-shop-customer-token', `${customerTokenValue}`);
|
newHeaders.set('x-shop-customer-token', `${customerTokenValue}`);
|
||||||
console.log('Customer Token', customerTokenValue);
|
|
||||||
return NextResponse.next({
|
return NextResponse.next({
|
||||||
request: {
|
request: {
|
||||||
// New request headers
|
// New request headers
|
||||||
@ -402,7 +399,6 @@ export async function isLoggedIn(request: NextRequest, origin: string) {
|
|||||||
//when we are running on the production website we just get the origin from the request.nextUrl
|
//when we are running on the production website we just get the origin from the request.nextUrl
|
||||||
export function getOrigin(request: NextRequest) {
|
export function getOrigin(request: NextRequest) {
|
||||||
const nextOrigin = request.nextUrl.origin;
|
const nextOrigin = request.nextUrl.origin;
|
||||||
console.log('Current Origin', nextOrigin);
|
|
||||||
//when running localhost, we want to use fake origin otherwise we use the real origin
|
//when running localhost, we want to use fake origin otherwise we use the real origin
|
||||||
let newOrigin = nextOrigin;
|
let newOrigin = nextOrigin;
|
||||||
if (nextOrigin === 'https://localhost:3000' || nextOrigin === 'http://localhost:3000') {
|
if (nextOrigin === 'https://localhost:3000' || nextOrigin === 'http://localhost:3000') {
|
||||||
@ -410,7 +406,6 @@ export function getOrigin(request: NextRequest) {
|
|||||||
} else {
|
} else {
|
||||||
newOrigin = nextOrigin;
|
newOrigin = nextOrigin;
|
||||||
}
|
}
|
||||||
console.log('New Origin', newOrigin);
|
|
||||||
return newOrigin;
|
return newOrigin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,6 @@ const URL_PREFIXES = ['/transmissions', '/engines', '/transfer-cases', '/remanuf
|
|||||||
// This function can be marked `async` if using `await` inside
|
// This function can be marked `async` if using `await` inside
|
||||||
export async function middleware(request: NextRequest) {
|
export async function middleware(request: NextRequest) {
|
||||||
if (request.nextUrl.pathname.startsWith('/account')) {
|
if (request.nextUrl.pathname.startsWith('/account')) {
|
||||||
console.log('Running Account middleware');
|
|
||||||
const origin = getOrigin(request);
|
const origin = getOrigin(request);
|
||||||
|
|
||||||
return await isLoggedIn(request, origin);
|
return await isLoggedIn(request, origin);
|
||||||
|
@ -25,9 +25,6 @@
|
|||||||
"@headlessui/react": "^2.1.0",
|
"@headlessui/react": "^2.1.0",
|
||||||
"@heroicons/react": "^2.1.3",
|
"@heroicons/react": "^2.1.3",
|
||||||
"@hookform/resolvers": "^3.6.0",
|
"@hookform/resolvers": "^3.6.0",
|
||||||
"@radix-ui/react-checkbox": "^1.0.4",
|
|
||||||
"@radix-ui/react-label": "^2.1.0",
|
|
||||||
"@radix-ui/react-popover": "^1.1.1",
|
|
||||||
"@radix-ui/react-slot": "^1.0.2",
|
"@radix-ui/react-slot": "^1.0.2",
|
||||||
"@react-pdf/renderer": "^3.4.4",
|
"@react-pdf/renderer": "^3.4.4",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.0",
|
||||||
|
588
pnpm-lock.yaml
generated
588
pnpm-lock.yaml
generated
@ -17,15 +17,6 @@ importers:
|
|||||||
'@hookform/resolvers':
|
'@hookform/resolvers':
|
||||||
specifier: ^3.6.0
|
specifier: ^3.6.0
|
||||||
version: 3.6.0(react-hook-form@7.51.5(react@18.2.0))
|
version: 3.6.0(react-hook-form@7.51.5(react@18.2.0))
|
||||||
'@radix-ui/react-checkbox':
|
|
||||||
specifier: ^1.0.4
|
|
||||||
version: 1.1.1(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-label':
|
|
||||||
specifier: ^2.1.0
|
|
||||||
version: 2.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-popover':
|
|
||||||
specifier: ^1.1.1
|
|
||||||
version: 1.1.1(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-slot':
|
'@radix-ui/react-slot':
|
||||||
specifier: ^1.0.2
|
specifier: ^1.0.2
|
||||||
version: 1.0.2(@types/react@18.2.72)(react@18.2.0)
|
version: 1.0.2(@types/react@18.2.72)(react@18.2.0)
|
||||||
@ -333,35 +324,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
'@radix-ui/primitive@1.1.0':
|
|
||||||
resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
|
|
||||||
|
|
||||||
'@radix-ui/react-arrow@1.1.0':
|
|
||||||
resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-checkbox@1.1.1':
|
|
||||||
resolution: {integrity: sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-compose-refs@1.0.1':
|
'@radix-ui/react-compose-refs@1.0.1':
|
||||||
resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
|
resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -371,146 +333,6 @@ packages:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@radix-ui/react-compose-refs@1.1.0':
|
|
||||||
resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-context@1.1.0':
|
|
||||||
resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-dismissable-layer@1.1.0':
|
|
||||||
resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-focus-guards@1.1.0':
|
|
||||||
resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-focus-scope@1.1.0':
|
|
||||||
resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-id@1.1.0':
|
|
||||||
resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-label@2.1.0':
|
|
||||||
resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-popover@1.1.1':
|
|
||||||
resolution: {integrity: sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-popper@1.2.0':
|
|
||||||
resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-portal@1.1.1':
|
|
||||||
resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-presence@1.1.0':
|
|
||||||
resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-primitive@2.0.0':
|
|
||||||
resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
'@types/react-dom': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-slot@1.0.2':
|
'@radix-ui/react-slot@1.0.2':
|
||||||
resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
|
resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -520,81 +342,6 @@ packages:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@radix-ui/react-slot@1.1.0':
|
|
||||||
resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-use-callback-ref@1.1.0':
|
|
||||||
resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-use-controllable-state@1.1.0':
|
|
||||||
resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-use-escape-keydown@1.1.0':
|
|
||||||
resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-use-layout-effect@1.1.0':
|
|
||||||
resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-use-previous@1.1.0':
|
|
||||||
resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-use-rect@1.1.0':
|
|
||||||
resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/react-use-size@1.1.0':
|
|
||||||
resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': '*'
|
|
||||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@radix-ui/rect@1.1.0':
|
|
||||||
resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
|
|
||||||
|
|
||||||
'@react-aria/focus@3.17.1':
|
'@react-aria/focus@3.17.1':
|
||||||
resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==}
|
resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -828,10 +575,6 @@ packages:
|
|||||||
argparse@2.0.1:
|
argparse@2.0.1:
|
||||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||||
|
|
||||||
aria-hidden@1.2.4:
|
|
||||||
resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
|
|
||||||
aria-query@5.3.0:
|
aria-query@5.3.0:
|
||||||
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
||||||
|
|
||||||
@ -1095,9 +838,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
detect-node-es@1.1.0:
|
|
||||||
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
|
|
||||||
|
|
||||||
dfa@1.2.0:
|
dfa@1.2.0:
|
||||||
resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==}
|
resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==}
|
||||||
|
|
||||||
@ -1391,10 +1131,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
|
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
get-nonce@1.0.1:
|
|
||||||
resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
|
|
||||||
engines: {node: '>=6'}
|
|
||||||
|
|
||||||
get-stream@8.0.1:
|
get-stream@8.0.1:
|
||||||
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
|
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
@ -1515,9 +1251,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
|
resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
invariant@2.2.4:
|
|
||||||
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
|
|
||||||
|
|
||||||
is-array-buffer@3.0.4:
|
is-array-buffer@3.0.4:
|
||||||
resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
|
resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@ -2185,36 +1918,6 @@ packages:
|
|||||||
react-is@16.13.1:
|
react-is@16.13.1:
|
||||||
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
||||||
|
|
||||||
react-remove-scroll-bar@2.3.6:
|
|
||||||
resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
react-remove-scroll@2.5.7:
|
|
||||||
resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
react-style-singleton@2.2.1:
|
|
||||||
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
react-tooltip@5.26.3:
|
react-tooltip@5.26.3:
|
||||||
resolution: {integrity: sha512-MpYAws8CEHUd/RC4GaDCdoceph/T4KHM5vS5Dbk8FOmLMvvIht2ymP2htWdrke7K6lqPO8rz8+bnwWUIXeDlzg==}
|
resolution: {integrity: sha512-MpYAws8CEHUd/RC4GaDCdoceph/T4KHM5vS5Dbk8FOmLMvvIht2ymP2htWdrke7K6lqPO8rz8+bnwWUIXeDlzg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -2596,26 +2299,6 @@ packages:
|
|||||||
uri-js@4.4.1:
|
uri-js@4.4.1:
|
||||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||||
|
|
||||||
use-callback-ref@1.3.2:
|
|
||||||
resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
use-sidecar@1.1.2:
|
|
||||||
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
peerDependencies:
|
|
||||||
'@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
|
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
util-deprecate@1.0.2:
|
util-deprecate@1.0.2:
|
||||||
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||||
|
|
||||||
@ -2864,33 +2547,6 @@ snapshots:
|
|||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@radix-ui/primitive@1.1.0': {}
|
|
||||||
|
|
||||||
'@radix-ui/react-arrow@1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-checkbox@1.1.1(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/primitive': 1.1.0
|
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-context': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-presence': 1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-size': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.72)(react@18.2.0)':
|
'@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.72)(react@18.2.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.24.1
|
'@babel/runtime': 7.24.1
|
||||||
@ -2898,134 +2554,6 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.72
|
'@types/react': 18.2.72
|
||||||
|
|
||||||
'@radix-ui/react-compose-refs@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-context@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/primitive': 1.1.0
|
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-focus-guards@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-id@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-label@2.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-popover@1.1.1(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/primitive': 1.1.0
|
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-context': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-focus-guards': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-id': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-popper': 1.2.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-portal': 1.1.1(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-presence': 1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
aria-hidden: 1.2.4
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
react-remove-scroll: 2.5.7(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-popper@1.2.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@floating-ui/react-dom': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-context': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-rect': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-size': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/rect': 1.1.0
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-portal@1.1.1(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-presence@1.1.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-primitive@2.0.0(@types/react-dom@18.2.22)(@types/react@18.2.72)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
'@types/react-dom': 18.2.22
|
|
||||||
|
|
||||||
'@radix-ui/react-slot@1.0.2(@types/react@18.2.72)(react@18.2.0)':
|
'@radix-ui/react-slot@1.0.2(@types/react@18.2.72)(react@18.2.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.24.1
|
'@babel/runtime': 7.24.1
|
||||||
@ -3034,61 +2562,6 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.72
|
'@types/react': 18.2.72
|
||||||
|
|
||||||
'@radix-ui/react-slot@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-use-previous@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-use-rect@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/rect': 1.1.0
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/react-use-size@1.1.0(@types/react@18.2.72)(react@18.2.0)':
|
|
||||||
dependencies:
|
|
||||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
'@radix-ui/rect@1.1.0': {}
|
|
||||||
|
|
||||||
'@react-aria/focus@3.17.1(react@18.2.0)':
|
'@react-aria/focus@3.17.1(react@18.2.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@react-aria/interactions': 3.21.3(react@18.2.0)
|
'@react-aria/interactions': 3.21.3(react@18.2.0)
|
||||||
@ -3402,10 +2875,6 @@ snapshots:
|
|||||||
|
|
||||||
argparse@2.0.1: {}
|
argparse@2.0.1: {}
|
||||||
|
|
||||||
aria-hidden@1.2.4:
|
|
||||||
dependencies:
|
|
||||||
tslib: 2.6.2
|
|
||||||
|
|
||||||
aria-query@5.3.0:
|
aria-query@5.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
@ -3703,8 +3172,6 @@ snapshots:
|
|||||||
|
|
||||||
dequal@2.0.3: {}
|
dequal@2.0.3: {}
|
||||||
|
|
||||||
detect-node-es@1.1.0: {}
|
|
||||||
|
|
||||||
dfa@1.2.0: {}
|
dfa@1.2.0: {}
|
||||||
|
|
||||||
didyoumean@1.2.2: {}
|
didyoumean@1.2.2: {}
|
||||||
@ -3848,7 +3315,7 @@ snapshots:
|
|||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0)
|
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0)
|
||||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
|
||||||
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0)
|
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0)
|
||||||
eslint-plugin-react: 7.34.1(eslint@8.57.0)
|
eslint-plugin-react: 7.34.1(eslint@8.57.0)
|
||||||
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
|
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
|
||||||
@ -3876,7 +3343,7 @@ snapshots:
|
|||||||
enhanced-resolve: 5.16.0
|
enhanced-resolve: 5.16.0
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
||||||
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
|
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
get-tsconfig: 4.7.3
|
get-tsconfig: 4.7.3
|
||||||
is-core-module: 2.13.1
|
is-core-module: 2.13.1
|
||||||
@ -3898,7 +3365,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
|
eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
array-includes: 3.1.8
|
array-includes: 3.1.8
|
||||||
array.prototype.findlastindex: 1.2.5
|
array.prototype.findlastindex: 1.2.5
|
||||||
@ -4174,8 +3641,6 @@ snapshots:
|
|||||||
has-symbols: 1.0.3
|
has-symbols: 1.0.3
|
||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
|
|
||||||
get-nonce@1.0.1: {}
|
|
||||||
|
|
||||||
get-stream@8.0.1: {}
|
get-stream@8.0.1: {}
|
||||||
|
|
||||||
get-symbol-description@1.0.2:
|
get-symbol-description@1.0.2:
|
||||||
@ -4296,10 +3761,6 @@ snapshots:
|
|||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
side-channel: 1.0.6
|
side-channel: 1.0.6
|
||||||
|
|
||||||
invariant@2.2.4:
|
|
||||||
dependencies:
|
|
||||||
loose-envify: 1.4.0
|
|
||||||
|
|
||||||
is-array-buffer@3.0.4:
|
is-array-buffer@3.0.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bind: 1.0.7
|
call-bind: 1.0.7
|
||||||
@ -4868,34 +4329,6 @@ snapshots:
|
|||||||
|
|
||||||
react-is@16.13.1: {}
|
react-is@16.13.1: {}
|
||||||
|
|
||||||
react-remove-scroll-bar@2.3.6(@types/react@18.2.72)(react@18.2.0):
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
react-style-singleton: 2.2.1(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
tslib: 2.6.2
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
react-remove-scroll@2.5.7(@types/react@18.2.72)(react@18.2.0):
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
react-remove-scroll-bar: 2.3.6(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
react-style-singleton: 2.2.1(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
tslib: 2.6.2
|
|
||||||
use-callback-ref: 1.3.2(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
use-sidecar: 1.1.2(@types/react@18.2.72)(react@18.2.0)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
react-style-singleton@2.2.1(@types/react@18.2.72)(react@18.2.0):
|
|
||||||
dependencies:
|
|
||||||
get-nonce: 1.0.1
|
|
||||||
invariant: 2.2.4
|
|
||||||
react: 18.2.0
|
|
||||||
tslib: 2.6.2
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
react-tooltip@5.26.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
|
react-tooltip@5.26.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@floating-ui/dom': 1.6.3
|
'@floating-ui/dom': 1.6.3
|
||||||
@ -5338,21 +4771,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
punycode: 2.3.1
|
punycode: 2.3.1
|
||||||
|
|
||||||
use-callback-ref@1.3.2(@types/react@18.2.72)(react@18.2.0):
|
|
||||||
dependencies:
|
|
||||||
react: 18.2.0
|
|
||||||
tslib: 2.6.2
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
use-sidecar@1.1.2(@types/react@18.2.72)(react@18.2.0):
|
|
||||||
dependencies:
|
|
||||||
detect-node-es: 1.1.0
|
|
||||||
react: 18.2.0
|
|
||||||
tslib: 2.6.2
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 18.2.72
|
|
||||||
|
|
||||||
util-deprecate@1.0.2: {}
|
util-deprecate@1.0.2: {}
|
||||||
|
|
||||||
validate-npm-package-license@3.0.4:
|
validate-npm-package-license@3.0.4:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user