From 020b21892d1c8b1d22e9dae5fb0b7e1b09107f3d Mon Sep 17 00:00:00 2001 From: tedraykov Date: Wed, 3 Jul 2024 00:30:51 +0300 Subject: [PATCH] address order confirmation change requests --- app/account/(orders)/page.tsx | 6 +- app/api/orders/confirmation/route.ts | 7 - components/loading-dots.tsx | 36 +- components/orders/actions.tsx | 7 +- .../orders/order-confirmation-modal.tsx | 64 +- components/orders/order-confirmation.tsx | 13 +- components/ui/button.tsx | 4 +- components/ui/checkbox.tsx | 28 - components/ui/index.ts | 4 +- components/ui/input-label.tsx | 33 - components/ui/input.tsx | 121 ++-- components/ui/loading-dots.tsx | 15 - lib/shopify/auth.ts | 5 - middleware.ts | 1 - package.json | 3 - pnpm-lock.yaml | 588 +----------------- 16 files changed, 141 insertions(+), 794 deletions(-) delete mode 100644 app/api/orders/confirmation/route.ts delete mode 100644 components/ui/checkbox.tsx delete mode 100644 components/ui/input-label.tsx delete mode 100644 components/ui/loading-dots.tsx diff --git a/app/account/(orders)/page.tsx b/app/account/(orders)/page.tsx index 1fe06cd72..9cce684f0 100644 --- a/app/account/(orders)/page.tsx +++ b/app/account/(orders)/page.tsx @@ -1,17 +1,15 @@ import { InformationCircleIcon } from '@heroicons/react/24/outline'; import ActivateWarranty from 'components/orders/activate-warranty'; import MobileOrderActions from 'components/orders/mobile-order-actions'; +import OrderConfirmation from 'components/orders/order-confirmation'; import OrdersHeader from 'components/orders/orders-header'; import Price from 'components/price'; import { Button } from 'components/ui'; import { getCustomerOrders } from 'lib/shopify'; import { toPrintDate } from 'lib/utils'; -import dynamic from 'next/dynamic'; import Image from 'next/image'; import Link from 'next/link'; -const OrderConfirmation = dynamic(() => import('components/orders/order-confirmation')); - export default async function AccountPage() { const orders = await getCustomerOrders(); @@ -65,7 +63,7 @@ export default async function AccountPage() { - {!order.orderConfirmation && } + diff --git a/app/api/orders/confirmation/route.ts b/app/api/orders/confirmation/route.ts deleted file mode 100644 index 7fe51f09e..000000000 --- a/app/api/orders/confirmation/route.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { getOrderConfirmationContent } from 'lib/shopify'; - -export async function GET() { - const data = await getOrderConfirmationContent(); - - return Response.json({ ...data }); -} diff --git a/components/loading-dots.tsx b/components/loading-dots.tsx index 10e642229..778348d00 100644 --- a/components/loading-dots.tsx +++ b/components/loading-dots.tsx @@ -1,13 +1,37 @@ 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) => { + const { root, dots } = loadingDots({ size }); return ( - - - - + + + + ); }; diff --git a/components/orders/actions.tsx b/components/orders/actions.tsx index becf68b23..56b2d3ca8 100644 --- a/components/orders/actions.tsx +++ b/components/orders/actions.tsx @@ -4,7 +4,7 @@ import { renderToBuffer } from '@react-pdf/renderer'; import OrderConfirmationPdf from 'components/orders/order-confirmation-pdf'; import { handleUploadFile } from 'components/form/file-input/actions'; import { TAGS } from 'lib/constants'; -import { updateOrderMetafields } from 'lib/shopify'; +import { getOrderConfirmationContent, updateOrderMetafields } from 'lib/shopify'; import { Order, OrderConfirmationContent, @@ -12,6 +12,7 @@ import { UpdateOrderMetafieldInput } from 'lib/shopify/types'; import { revalidateTag } from 'next/cache'; +import { cache } from 'react'; const getMetafieldValue = ( key: keyof ShopifyOrderMetafield, @@ -115,6 +116,10 @@ async function generateOrderConfirmationPDF( ); } +export const fetchOrderConfirmationContent = cache(async () => { + return getOrderConfirmationContent(); +}); + type ConfirmOrderOptions = { order: Order; content: OrderConfirmationContent; diff --git a/components/orders/order-confirmation-modal.tsx b/components/orders/order-confirmation-modal.tsx index ff0d1d87b..c698085ac 100644 --- a/components/orders/order-confirmation-modal.tsx +++ b/components/orders/order-confirmation-modal.tsx @@ -1,5 +1,5 @@ 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 PaymentsDetails from './payment-details'; import Price from 'components/price'; @@ -7,8 +7,9 @@ import Divider from 'components/divider'; import Markdown from 'markdown-to-jsx'; import { Order, OrderConfirmationContent } from 'lib/shopify/types'; import { FormEventHandler, useEffect, useRef, useState, useTransition } from 'react'; -import { confirmOrder } from 'components/orders/actions'; -import { Button, Heading, Text, Label, Skeleton, InputLabel, Input } from 'components/ui'; +import { confirmOrder, fetchOrderConfirmationContent } from 'components/orders/actions'; +import { Button, Heading, Text, Label, Input, Skeleton } from 'components/ui'; +import LoadingDots from 'components/loading-dots'; function OrderConfirmationDetails({ content, @@ -188,31 +189,28 @@ export default function OrderConfirmationModal({ onClose: () => void; }) { const [loading, setLoading] = useState(true); + const [submitting, setSubmitting] = useState(false); const [orderConfirmationContent, setOrderConfirmationContent] = useState(); const [, startTransition] = useTransition(); const formRef = useRef(null); 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 (order.orderConfirmation) return; - fetchOrderConfirmationContent(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + if (!isOpen) return; + + (async () => { + const data = await fetchOrderConfirmationContent(); + setOrderConfirmationContent(data); + setLoading(false); + })(); + }, [isOpen, order.orderConfirmation]); const handleSubmit: FormEventHandler = (event) => { event.preventDefault(); - setLoading(true); + setSubmitting(true); const form = formRef.current; if (!form) return; const formData = new FormData(form); @@ -223,7 +221,6 @@ export default function OrderConfirmationModal({ content: orderConfirmationContent!, formData }); - form.reset(); }); }; @@ -239,46 +236,39 @@ export default function OrderConfirmationModal({
+ Confirm Order {loading ? ( - + ) : ( )} -
-
- Today's date + +
-
-
- Print your name to sign - -
-
- - Credit card holder's electronic signature - - + +
- + diff --git a/components/orders/order-confirmation.tsx b/components/orders/order-confirmation.tsx index 3924b2455..81cf6b266 100644 --- a/components/orders/order-confirmation.tsx +++ b/components/orders/order-confirmation.tsx @@ -1,10 +1,8 @@ 'use client'; import { Button } from 'components/ui'; import { Order } from 'lib/shopify/types'; -import dynamic from 'next/dynamic'; import { useState } from 'react'; - -const OrderConfirmationModal = dynamic(() => import('./order-confirmation-modal')); +import OrderConfirmationModal from './order-confirmation-modal'; export default function OrderConfirmation({ order }: { order: Order }) { const [isOpen, setIsOpen] = useState(false); @@ -12,13 +10,8 @@ export default function OrderConfirmation({ order }: { order: Order }) { if (order.orderConfirmation) return null; return ( <> - - - {isOpen && ( - setIsOpen(false)} order={order} /> - )} + + setIsOpen(false)} order={order} /> ); } diff --git a/components/ui/button.tsx b/components/ui/button.tsx index 29e55f81c..db4c381c9 100644 --- a/components/ui/button.tsx +++ b/components/ui/button.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { Button as ButtonBase, ButtonProps as ButtonBaseProps } from '@headlessui/react'; import { tv, type VariantProps } from 'tailwind-variants'; import clsx from 'clsx'; -import LoadingDots from './loading-dots'; +import LoadingDots from 'components/loading-dots'; import { focusInput } from 'lib/utils'; const buttonVariants = tv({ @@ -183,7 +183,7 @@ const Button = React.forwardRef( > {isLoading ? ( - + {loadingText} {loadingText} diff --git a/components/ui/checkbox.tsx b/components/ui/checkbox.tsx deleted file mode 100644 index 48d1c8ed2..000000000 --- a/components/ui/checkbox.tsx +++ /dev/null @@ -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, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - - - -)); - -Checkbox.displayName = CheckboxPrimitive.Root.displayName; - -export default Checkbox; diff --git a/components/ui/index.ts b/components/ui/index.ts index 01c268397..dc019382e 100644 --- a/components/ui/index.ts +++ b/components/ui/index.ts @@ -4,10 +4,8 @@ export { default as Button } from './button'; export * from './button'; export { default as Card } from './card'; export * from './card'; -export { default as Checkbox } from './checkbox'; export { default as Heading } from './heading'; -export { default as InputLabel } from './input-label'; -export * from './input-label'; +export * from './heading'; export { default as Input } from './input'; export * from './input'; export { default as Label } from './label'; diff --git a/components/ui/input-label.tsx b/components/ui/input-label.tsx deleted file mode 100644 index 669aaf2f0..000000000 --- a/components/ui/input-label.tsx +++ /dev/null @@ -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 { - disabled?: boolean; -} - -const InputLabel = React.forwardRef, InputLabelProps>( - ({ className, disabled, ...props }, forwardedRef) => ( - - ) -); -InputLabel.displayName = 'InputLabel'; - -export default InputLabel; diff --git a/components/ui/input.tsx b/components/ui/input.tsx index 12eae80a1..781ab4b34 100644 --- a/components/ui/input.tsx +++ b/components/ui/input.tsx @@ -1,70 +1,83 @@ -import React from 'react'; -import { tv, type VariantProps } from 'tailwind-variants'; +'use client'; -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({ - base: [ - // base - 'relative block w-full appearance-none rounded-md border px-2.5 py-1.5 shadow-sm outline-none transition sm:text-sm', - // border color - 'border-gray-300 dark:border-gray-800', - // text color - 'text-gray-900 dark:text-gray-50', - // placeholder color - 'placeholder-gray-400 dark:placeholder-gray-500', - // 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' + slots: { + root: '', + label: [ + // base + 'text-sm leading-none', + // text color + 'text-content-strong font-medium', + // disabled + 'data-[disabled]-text-gray-400' ], - // focus - focusInput, - // invalid - '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' - ], + input: [ + // base + 'w-full relative block rounded-md border-0 shadow-sm outline-none transition sm:text-sm sm:leading-6', + '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: { hasError: { true: hasErrorInput - }, - // number input - enableStepper: { - true: '[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none' } } }); -export interface InputProps - extends React.InputHTMLAttributes, - VariantProps { +export interface InputProps extends HeadlessInputProps, VariantProps { + label?: string; + className?: string; + labelClassName?: string; inputClassName?: string; } -const Input = React.forwardRef( - ( - { className, inputClassName, hasError, enableStepper, type, ...props }: InputProps, - forwardedRef - ) => { - return ( -
- -
- ); - } -); - -Input.displayName = 'Input'; +function Input({ + className, + label, + labelClassName, + inputClassName, + hasError, + disabled, + ...props +}: InputProps) { + const { root, label: labelStyles, input } = inputStyles({ hasError }); + return ( + + {label && } + + + ); +} export default Input; diff --git a/components/ui/loading-dots.tsx b/components/ui/loading-dots.tsx deleted file mode 100644 index 0a3fb676e..000000000 --- a/components/ui/loading-dots.tsx +++ /dev/null @@ -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 ( - - - - - - ); -}; - -export default LoadingDots; diff --git a/lib/shopify/auth.ts b/lib/shopify/auth.ts index 4070d6fba..1269565f3 100644 --- a/lib/shopify/auth.ts +++ b/lib/shopify/auth.ts @@ -244,7 +244,6 @@ export async function checkExpires({ //this will return success: true or success: false - depending on result of refresh return { ranRefresh: isExpired, refresh }; } - console.log('is expired is false - just sending back success', isExpired); return { ranRefresh: isExpired, success: true }; } @@ -355,7 +354,6 @@ export async function isLoggedIn(request: NextRequest, origin: string) { expiresAt: expiresTokenValue, origin: origin }); - console.log('is Expired?', isExpired); //only execute the code below to reset the cookies if it was expired! if (isExpired.ranRefresh) { const isSuccess = isExpired?.refresh?.success; @@ -390,7 +388,6 @@ export async function isLoggedIn(request: NextRequest, origin: string) { } newHeaders.set('x-shop-customer-token', `${customerTokenValue}`); - console.log('Customer Token', customerTokenValue); return NextResponse.next({ request: { // 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 export function getOrigin(request: NextRequest) { 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 let newOrigin = nextOrigin; if (nextOrigin === 'https://localhost:3000' || nextOrigin === 'http://localhost:3000') { @@ -410,7 +406,6 @@ export function getOrigin(request: NextRequest) { } else { newOrigin = nextOrigin; } - console.log('New Origin', newOrigin); return newOrigin; } diff --git a/middleware.ts b/middleware.ts index f3249e899..3a5b158ef 100644 --- a/middleware.ts +++ b/middleware.ts @@ -6,7 +6,6 @@ const URL_PREFIXES = ['/transmissions', '/engines', '/transfer-cases', '/remanuf // This function can be marked `async` if using `await` inside export async function middleware(request: NextRequest) { if (request.nextUrl.pathname.startsWith('/account')) { - console.log('Running Account middleware'); const origin = getOrigin(request); return await isLoggedIn(request, origin); diff --git a/package.json b/package.json index f9ef027d5..7f18f5061 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,6 @@ "@headlessui/react": "^2.1.0", "@heroicons/react": "^2.1.3", "@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", "@react-pdf/renderer": "^3.4.4", "clsx": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 601c223d1..1d8d09fec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,15 +17,6 @@ importers: '@hookform/resolvers': specifier: ^3.6.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': specifier: ^1.0.2 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==} 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': resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: @@ -371,146 +333,6 @@ packages: '@types/react': 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': resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: @@ -520,81 +342,6 @@ packages: '@types/react': 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': resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==} peerDependencies: @@ -828,10 +575,6 @@ packages: argparse@2.0.1: 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: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -1095,9 +838,6 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - dfa@1.2.0: resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} @@ -1391,10 +1131,6 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -1515,9 +1251,6 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -2185,36 +1918,6 @@ packages: react-is@16.13.1: 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: resolution: {integrity: sha512-MpYAws8CEHUd/RC4GaDCdoceph/T4KHM5vS5Dbk8FOmLMvvIht2ymP2htWdrke7K6lqPO8rz8+bnwWUIXeDlzg==} peerDependencies: @@ -2596,26 +2299,6 @@ packages: uri-js@4.4.1: 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: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -2864,33 +2547,6 @@ snapshots: '@pkgjs/parseargs@0.11.0': 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)': dependencies: '@babel/runtime': 7.24.1 @@ -2898,134 +2554,6 @@ snapshots: optionalDependencies: '@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)': dependencies: '@babel/runtime': 7.24.1 @@ -3034,61 +2562,6 @@ snapshots: optionalDependencies: '@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)': dependencies: '@react-aria/interactions': 3.21.3(react@18.2.0) @@ -3402,10 +2875,6 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.4: - dependencies: - tslib: 2.6.2 - aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -3703,8 +3172,6 @@ snapshots: dequal@2.0.3: {} - detect-node-es@1.1.0: {} - dfa@1.2.0: {} didyoumean@1.2.2: {} @@ -3848,7 +3315,7 @@ snapshots: eslint: 8.57.0 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-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-react: 7.34.1(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 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 get-tsconfig: 4.7.3 is-core-module: 2.13.1 @@ -3898,7 +3365,7 @@ snapshots: transitivePeerDependencies: - 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: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -4174,8 +3641,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-nonce@1.0.1: {} - get-stream@8.0.1: {} get-symbol-description@1.0.2: @@ -4296,10 +3761,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 - invariant@2.2.4: - dependencies: - loose-envify: 1.4.0 - is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -4868,34 +4329,6 @@ snapshots: 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): dependencies: '@floating-ui/dom': 1.6.3 @@ -5338,21 +4771,6 @@ snapshots: dependencies: 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: {} validate-npm-package-license@3.0.4: