From 5238c424fc2ad97454016e5396a8920cd6aaf369 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Tue, 16 Jan 2024 11:44:15 +0000 Subject: [PATCH] Absolute date filtering (#845) * WIP on absolute date filtering for runs * Use the date hook instead * Reworked the date field again so the state behaves nicely * Way better date filtering * Setting the absolute date is working well, also clearing filters * Reverse date format * Turn off the guide * Added time filtering and clearing to the events page --- .../app/components/events/EventStatuses.tsx | 8 + .../app/components/events/EventsFilters.tsx | 43 +- .../app/components/primitives/ClientTabs.tsx | 44 + .../app/components/primitives/DateField.tsx | 243 +++ .../app/components/primitives/Popover.tsx | 2 +- .../app/components/primitives/Select.tsx | 4 +- .../webapp/app/components/runs/RunFilters.tsx | 47 +- .../components/runs/RunTimeFrameFilter.tsx | 130 -- .../app/components/runs/TimeFrameFilter.tsx | 243 +++ .../presenters/EventListPresenter.server.ts | 8 + .../route.tsx | 2 + apps/webapp/package.json | 11 +- pnpm-lock.yaml | 1804 +++++++++++++++-- 13 files changed, 2223 insertions(+), 366 deletions(-) create mode 100644 apps/webapp/app/components/primitives/DateField.tsx delete mode 100644 apps/webapp/app/components/runs/RunTimeFrameFilter.tsx create mode 100644 apps/webapp/app/components/runs/TimeFrameFilter.tsx diff --git a/apps/webapp/app/components/events/EventStatuses.tsx b/apps/webapp/app/components/events/EventStatuses.tsx index a9240077f6..016d773fb5 100644 --- a/apps/webapp/app/components/events/EventStatuses.tsx +++ b/apps/webapp/app/components/events/EventStatuses.tsx @@ -5,4 +5,12 @@ export const EventListSearchSchema = z.object({ cursor: z.string().optional(), direction: DirectionSchema.optional(), environment: FilterableEnvironment.optional(), + from: z + .string() + .transform((value) => parseInt(value)) + .optional(), + to: z + .string() + .transform((value) => parseInt(value)) + .optional(), }); diff --git a/apps/webapp/app/components/events/EventsFilters.tsx b/apps/webapp/app/components/events/EventsFilters.tsx index 7ee8b9f29e..f2bf2ff12e 100644 --- a/apps/webapp/app/components/events/EventsFilters.tsx +++ b/apps/webapp/app/components/events/EventsFilters.tsx @@ -12,14 +12,19 @@ import { } from "../primitives/Select"; import { EventListSearchSchema } from "./EventStatuses"; import { environmentKeys, FilterableEnvironment } from "~/components/runs/RunStatuses"; +import { TimeFrameFilter } from "../runs/TimeFrameFilter"; +import { useCallback } from "react"; +import { Button } from "../primitives/Buttons"; export function EventsFilters() { const navigate = useNavigate(); const location = useOptimisticLocation(); const searchParams = new URLSearchParams(location.search); - const { environment } = EventListSearchSchema.parse(Object.fromEntries(searchParams.entries())); + const { environment, from, to } = EventListSearchSchema.parse( + Object.fromEntries(searchParams.entries()) + ); - const handleFilterChange = (filterType: string, value: string | undefined) => { + const handleFilterChange = useCallback((filterType: string, value: string | undefined) => { if (value) { searchParams.set(filterType, value); } else { @@ -28,12 +33,38 @@ export function EventsFilters() { searchParams.delete("cursor"); searchParams.delete("direction"); navigate(`${location.pathname}?${searchParams.toString()}`); - }; + }, []); + + const handleTimeFrameChange = useCallback((range: { from?: number; to?: number }) => { + if (range.from) { + searchParams.set("from", range.from.toString()); + } else { + searchParams.delete("from"); + } + + if (range.to) { + searchParams.set("to", range.to.toString()); + } else { + searchParams.delete("to"); + } + + searchParams.delete("cursor"); + searchParams.delete("direction"); + navigate(`${location.pathname}?${searchParams.toString()}`); + }, []); const handleEnvironmentChange = (value: FilterableEnvironment | "ALL") => { handleFilterChange("environment", value === "ALL" ? undefined : value); }; + const clearFilters = useCallback(() => { + searchParams.delete("status"); + searchParams.delete("environment"); + searchParams.delete("from"); + searchParams.delete("to"); + navigate(`${location.pathname}?${searchParams.toString()}`); + }, []); + return (
@@ -62,6 +93,12 @@ export function EventsFilters() { + + + +
); } diff --git a/apps/webapp/app/components/primitives/ClientTabs.tsx b/apps/webapp/app/components/primitives/ClientTabs.tsx index bb5074c9be..daefcaa3bc 100644 --- a/apps/webapp/app/components/primitives/ClientTabs.tsx +++ b/apps/webapp/app/components/primitives/ClientTabs.tsx @@ -3,6 +3,7 @@ import * as React from "react"; import * as TabsPrimitive from "@radix-ui/react-tabs"; import { cn } from "~/utils/cn"; +import { motion } from "framer-motion"; const ClientTabs = TabsPrimitive.Root; @@ -48,4 +49,47 @@ const ClientTabsContent = React.forwardRef< )); ClientTabsContent.displayName = TabsPrimitive.Content.displayName; +export type TabsProps = { + tabs: { + label: string; + value: string; + }[]; + currentValue: string; + className?: string; + layoutId: string; +}; + +export function ClientTabsWithUnderline({ className, tabs, currentValue, layoutId }: TabsProps) { + return ( + + {tabs.map((tab, index) => { + const isActive = currentValue === tab.value; + return ( + + + {tab.label} + + {isActive ? ( + + ) : ( +
+ )} + + ); + })} + + ); +} + export { ClientTabs, ClientTabsList, ClientTabsTrigger, ClientTabsContent }; diff --git a/apps/webapp/app/components/primitives/DateField.tsx b/apps/webapp/app/components/primitives/DateField.tsx new file mode 100644 index 0000000000..1b149e42df --- /dev/null +++ b/apps/webapp/app/components/primitives/DateField.tsx @@ -0,0 +1,243 @@ +import { CalendarDateTime, createCalendar } from "@internationalized/date"; +import { useDateField, useDateSegment } from "@react-aria/datepicker"; +import type { DateFieldState, DateSegment } from "@react-stately/datepicker"; +import { useDateFieldState } from "@react-stately/datepicker"; +import { Granularity } from "@react-types/datepicker"; +import { useEffect, useRef, useState } from "react"; +import { cn } from "~/utils/cn"; +import { useLocales } from "./LocaleProvider"; +import { Button } from "./Buttons"; + +type DateFieldProps = { + label?: string; + defaultValue?: Date; + minValue?: Date; + maxValue?: Date; + className?: string; + fieldClassName?: string; + granularity: Granularity; + showGuide?: boolean; + showNowButton?: boolean; + showClearButton?: boolean; + onValueChange?: (value: Date | undefined) => void; +}; + +export function DateField({ + label, + defaultValue, + onValueChange, + minValue, + maxValue, + granularity, + className, + fieldClassName, + showGuide = false, + showNowButton = false, + showClearButton = false, +}: DateFieldProps) { + const [value, setValue] = useState( + utcDateToCalendarDate(defaultValue) + ); + + const state = useDateFieldState({ + value: value, + onChange: (value) => { + if (value) { + setValue(value); + onValueChange?.(value.toDate("utc")); + } + }, + minValue: utcDateToCalendarDate(minValue), + maxValue: utcDateToCalendarDate(maxValue), + shouldForceLeadingZeros: true, + granularity, + locale: "en-US", + createCalendar: (name: string) => { + return createCalendar(name); + }, + }); + + //if the passed in value changes, we should update the date + useEffect(() => { + if (state.value === undefined && defaultValue === undefined) return; + + const calendarDate = utcDateToCalendarDate(defaultValue); + //unchanged + if (state.value?.toDate("utc").getTime() === defaultValue?.getTime()) { + return; + } + + setValue(calendarDate); + }, [defaultValue]); + + const ref = useRef(null); + const { labelProps, fieldProps } = useDateField( + { + label, + }, + state, + ref + ); + + //render if reverse date order + const yearSegment = state.segments.find((s) => s.type === "year")!; + const monthSegment = state.segments.find((s) => s.type === "month")!; + const daySegment = state.segments.find((s) => s.type === "day")!; + const hourSegment = state.segments.find((s) => s.type === "hour")!; + const minuteSegment = state.segments.find((s) => s.type === "minute")!; + const secondSegment = state.segments.find((s) => s.type === "second")!; + const dayPeriodSegment = state.segments.find((s) => s.type === "dayPeriod")!; + + return ( +
+ + {label} + +
+
+ + + + + + + + + + + + + +
+ {showNowButton && ( + + )} + {showClearButton && ( +
+ {showGuide && ( +
+ {state.segments.map((segment, i) => ( + + ))} +
+ )} +
+ ); +} + +function utcDateToCalendarDate(date?: Date) { + return date + ? new CalendarDateTime( + date.getUTCFullYear(), + date.getUTCMonth(), + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ) + : undefined; +} + +type DateSegmentProps = { + segment: DateSegment; + state: DateFieldState; +}; + +function DateSegment({ segment, state }: DateSegmentProps) { + const ref = useRef(null); + const { segmentProps } = useDateSegment(segment, state, ref); + + return ( +
+ {/* Always reserve space for the placeholder, to prevent layout shift when editing. */} + + {segment.isPlaceholder ? "" : segment.text} +
+ ); +} + +function literalSegment(text: string): DateSegment { + return { + type: "literal", + text, + isPlaceholder: false, + isEditable: false, + placeholder: "", + }; +} + +function minWidthForSegment(segment: DateSegment) { + if (segment.type === "literal") { + return undefined; + } + + return String(`${segment.maxValue}`).length + "ch"; +} + +function DateSegmentGuide({ segment }: { segment: DateSegment }) { + return ( +
+ + {segment.type !== "literal" ? segment.placeholder : segment.text} + +
+ ); +} diff --git a/apps/webapp/app/components/primitives/Popover.tsx b/apps/webapp/app/components/primitives/Popover.tsx index cb374e75f3..937ab88a07 100644 --- a/apps/webapp/app/components/primitives/Popover.tsx +++ b/apps/webapp/app/components/primitives/Popover.tsx @@ -21,7 +21,7 @@ const PopoverContent = React.forwardRef< sideOffset={sideOffset} avoidCollisions={true} className={cn( - "z-50 min-w-max rounded-md border bg-midnight-850 p-4 text-popover-foreground shadow-md outline-none animate-in data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", + "z-50 min-w-max rounded-md border border-slate-700 bg-midnight-850 p-4 text-popover-foreground shadow-md outline-none animate-in data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className )} style={{ diff --git a/apps/webapp/app/components/primitives/Select.tsx b/apps/webapp/app/components/primitives/Select.tsx index a307b38a3b..3d3b32af25 100644 --- a/apps/webapp/app/components/primitives/Select.tsx +++ b/apps/webapp/app/components/primitives/Select.tsx @@ -56,7 +56,7 @@ const SelectContent = React.forwardRef< { + const handleFilterChange = useCallback((filterType: string, value: string | undefined) => { if (value) { searchParams.set(filterType, value); } else { @@ -46,29 +49,41 @@ export function RunsFilters() { searchParams.delete("cursor"); searchParams.delete("direction"); navigate(`${location.pathname}?${searchParams.toString()}`); - }; + }, []); - const handleStatusChange = (value: FilterableStatus | "ALL") => { + const handleStatusChange = useCallback((value: FilterableStatus | "ALL") => { handleFilterChange("status", value === "ALL" ? undefined : value); - }; + }, []); - const handleEnvironmentChange = (value: FilterableEnvironment | "ALL") => { + const handleEnvironmentChange = useCallback((value: FilterableEnvironment | "ALL") => { handleFilterChange("environment", value === "ALL" ? undefined : value); - }; + }, []); - const handleRelativeTimeFrameChange = (value: number) => { - if (value) { - const date = new Date().getTime(); - searchParams.set("from", (date - value).toString()); - searchParams.set("to", date.toString()); + const handleTimeFrameChange = useCallback((range: { from?: number; to?: number }) => { + if (range.from) { + searchParams.set("from", range.from.toString()); } else { searchParams.delete("from"); + } + + if (range.to) { + searchParams.set("to", range.to.toString()); + } else { searchParams.delete("to"); } + searchParams.delete("cursor"); searchParams.delete("direction"); navigate(`${location.pathname}?${searchParams.toString()}`); - }; + }, []); + + const clearFilters = useCallback(() => { + searchParams.delete("status"); + searchParams.delete("environment"); + searchParams.delete("from"); + searchParams.delete("to"); + navigate(`${location.pathname}?${searchParams.toString()}`); + }, []); return (
@@ -124,7 +139,11 @@ export function RunsFilters() { - + + +
); } diff --git a/apps/webapp/app/components/runs/RunTimeFrameFilter.tsx b/apps/webapp/app/components/runs/RunTimeFrameFilter.tsx deleted file mode 100644 index 2acdf63108..0000000000 --- a/apps/webapp/app/components/runs/RunTimeFrameFilter.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { useState } from "react"; -import { Popover, PopoverContent, PopoverTrigger } from "../primitives/Popover"; -import { Button } from "../primitives/Buttons"; -import { ChevronDownIcon } from "lucide-react"; -import { Paragraph } from "../primitives/Paragraph"; -import { cn } from "~/utils/cn"; -import { formatDateTime } from "../primitives/DateTime"; - -type RunTimeFrameFilterProps = { - from?: number; - to?: number; - onValueChange: (value: number) => void; -}; - -export function RunTimeFrameFilter({ from, to, onValueChange }: RunTimeFrameFilterProps) { - const [isOpen, setIsOpen] = useState(false); - const [activeTimeFrame, setActiveTimeFrame] = useState(); - - const determineTimeFrame = (from: number | undefined, to: number | undefined) => { - if (!from || !to) { - return "Timeframe"; - } - - if (activeTimeFrame) { - return activeTimeFrame.label; - } - - const toDateTime = formatDateTime(new Date(to), "UTC", ["en-US"], false, true); - const fromDateTime = formatDateTime(new Date(from), "UTC", ["en-US"], false, true); - - return `${fromDateTime} - ${toDateTime} (UTC)`; - }; - - return ( - setIsOpen(open)} open={isOpen} modal> - - - - - - - TimeFrame - - -
- {timeFrameValues.map((timeframe) => ( - - ))} -
-
-
- ); -} - -const timeFrameValues = [ - { - label: "5 mins", - value: 5 * 60 * 1000, - }, - { - label: "15 mins", - value: 15 * 60 * 1000, - }, - { - label: "30 mins", - value: 30 * 60 * 1000, - }, - { - label: "1 hour", - value: 60 * 60 * 1000, - }, - { - label: "3 hours", - value: 3 * 60 * 60 * 1000, - }, - { - label: "6 hours", - value: 6 * 60 * 60 * 1000, - }, - { - label: "1 day", - value: 24 * 60 * 60 * 1000, - }, - { - label: "3 days", - value: 3 * 24 * 60 * 60 * 1000, - }, - { - label: "7 days", - value: 7 * 24 * 60 * 60 * 1000, - }, - { - label: "10 days", - value: 10 * 24 * 60 * 60 * 1000, - }, - { - label: "14 days", - value: 14 * 24 * 60 * 60 * 1000, - }, - { - label: "30 days", - value: 30 * 24 * 60 * 60 * 1000, - }, -]; - -export type RelativeTimeFrameItem = (typeof timeFrameValues)[number]; diff --git a/apps/webapp/app/components/runs/TimeFrameFilter.tsx b/apps/webapp/app/components/runs/TimeFrameFilter.tsx new file mode 100644 index 0000000000..220a8c90e2 --- /dev/null +++ b/apps/webapp/app/components/runs/TimeFrameFilter.tsx @@ -0,0 +1,243 @@ +import { ChevronDownIcon } from "lucide-react"; +import { useCallback, useState } from "react"; +import { + Calendar, + CalendarDateTime, + DateValue, + getLocalTimeZone, + today, +} from "@internationalized/date"; +import { cn } from "~/utils/cn"; +import { Button } from "../primitives/Buttons"; +import { ClientTabs, ClientTabsContent, ClientTabsWithUnderline } from "../primitives/ClientTabs"; +import { formatDateTime } from "../primitives/DateTime"; +import { Paragraph } from "../primitives/Paragraph"; +import { Popover, PopoverContent, PopoverTrigger } from "../primitives/Popover"; +import { DateField } from "../primitives/DateField"; +import { useLocales } from "../primitives/LocaleProvider"; +import { createCalendar } from "@internationalized/date"; + +type RunTimeFrameFilterProps = { + from?: number; + to?: number; + onRangeChanged: (range: { from?: number; to?: number }) => void; +}; + +type Mode = "absolute" | "relative"; + +export function TimeFrameFilter({ from, to, onRangeChanged }: RunTimeFrameFilterProps) { + const [activeTab, setActiveTab] = useState("absolute"); + const [isOpen, setIsOpen] = useState(false); + const [relativeTimeSeconds, setRelativeTimeSeconds] = useState(); + + const fromDate = from ? new Date(from) : undefined; + const toDate = to ? new Date(to) : undefined; + + const relativeTimeFrameChanged = useCallback((value: number) => { + const to = new Date().getTime(); + const from = to - value; + onRangeChanged({ from, to }); + setRelativeTimeSeconds(value); + }, []); + + const absoluteTimeFrameChanged = useCallback(({ from, to }: { from?: Date; to?: Date }) => { + setRelativeTimeSeconds(undefined); + const fromTime = from?.getTime(); + const toTime = to?.getTime(); + onRangeChanged({ from: fromTime, to: toTime }); + }, []); + + return ( + setIsOpen(open)} open={isOpen} modal> + + + + + + setActiveTab(v as Mode)} + className="p-1" + > + + + + + + + + + + + ); +} + +function title( + from: number | undefined, + to: number | undefined, + relativeTimeSeconds: number | undefined +): string { + if (!from && !to) { + return "All time periods"; + } + + if (relativeTimeSeconds !== undefined) { + return timeFrameValues.find((t) => t.value === relativeTimeSeconds)?.label ?? "Timeframe"; + } + + let fromString = from ? formatDateTime(new Date(from), "UTC", ["en-US"], false, true) : undefined; + let toString = to ? formatDateTime(new Date(to), "UTC", ["en-US"], false, true) : undefined; + if (from && !to) { + return `From ${fromString} (UTC)`; + } + + if (!from && to) { + return `To ${toString} (UTC)`; + } + + return `${fromString} - ${toString} (UTC)`; +} + +function RelativeTimeFrame({ + value, + onValueChange, +}: { + value?: number; + onValueChange: (value: number) => void; +}) { + return ( +
+ {timeFrameValues.map((timeframe) => ( + + ))} +
+ ); +} + +const timeFrameValues = [ + { + label: "5 mins", + value: 5 * 60 * 1000, + }, + { + label: "15 mins", + value: 15 * 60 * 1000, + }, + { + label: "30 mins", + value: 30 * 60 * 1000, + }, + { + label: "1 hour", + value: 60 * 60 * 1000, + }, + { + label: "3 hours", + value: 3 * 60 * 60 * 1000, + }, + { + label: "6 hours", + value: 6 * 60 * 60 * 1000, + }, + { + label: "1 day", + value: 24 * 60 * 60 * 1000, + }, + { + label: "3 days", + value: 3 * 24 * 60 * 60 * 1000, + }, + { + label: "7 days", + value: 7 * 24 * 60 * 60 * 1000, + }, + { + label: "10 days", + value: 10 * 24 * 60 * 60 * 1000, + }, + { + label: "14 days", + value: 14 * 24 * 60 * 60 * 1000, + }, + { + label: "30 days", + value: 30 * 24 * 60 * 60 * 1000, + }, +]; + +export type RelativeTimeFrameItem = (typeof timeFrameValues)[number]; + +function AbsoluteTimeFrame({ + from, + to, + onValueChange, +}: { + from?: Date; + to?: Date; + onValueChange: (value: { from?: Date; to?: Date }) => void; +}) { + return ( +
+
+
+ { + onValueChange({ from: value, to: to }); + }} + granularity="second" + showNowButton + showClearButton + /> +
+
+ { + onValueChange({ from: from, to: value }); + }} + granularity="second" + showNowButton + showClearButton + /> +
+
+
+ ); +} diff --git a/apps/webapp/app/presenters/EventListPresenter.server.ts b/apps/webapp/app/presenters/EventListPresenter.server.ts index 47c8ed79d8..7734edea13 100644 --- a/apps/webapp/app/presenters/EventListPresenter.server.ts +++ b/apps/webapp/app/presenters/EventListPresenter.server.ts @@ -10,6 +10,8 @@ type EventListOptions = { filterEnvironment?: FilterableEnvironment; cursor?: string; pageSize?: number; + from?: number; + to?: number; }; const DEFAULT_PAGE_SIZE = 20; @@ -31,6 +33,8 @@ export class EventListPresenter { direction = "forward", cursor, pageSize = DEFAULT_PAGE_SIZE, + from, + to, }: EventListOptions) { const directionMultiplier = direction === "forward" ? 1 : -1; @@ -97,6 +101,10 @@ export class EventListPresenter { in: environments.map((environment) => environment.id), }, environment: filterEnvironment ? { type: filterEnvironment } : undefined, + createdAt: { + gte: from ? new Date(from).toISOString() : undefined, + lte: to ? new Date(to).toISOString() : undefined, + }, }, orderBy: [{ id: "desc" }], //take an extra record to tell if there are more diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.events._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.events._index/route.tsx index 48e3181535..0ee78731ba 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.events._index/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.events._index/route.tsx @@ -37,6 +37,8 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { organizationSlug, direction: searchParams.direction, cursor: searchParams.cursor, + from: searchParams.from, + to: searchParams.to, pageSize: 25, }); diff --git a/apps/webapp/package.json b/apps/webapp/package.json index e12c9c5ea5..4864aa9242 100644 --- a/apps/webapp/package.json +++ b/apps/webapp/package.json @@ -46,6 +46,7 @@ "@heroicons/react": "^2.0.12", "@highlight-run/node": "^3.1.0", "@highlight-run/react": "^3.2.0", + "@internationalized/date": "^3.5.1", "@lezer/highlight": "^1.1.6", "@radix-ui/react-alert-dialog": "^1.0.4", "@radix-ui/react-dialog": "^1.0.3", @@ -57,6 +58,9 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tabs": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.5", + "@react-aria/datepicker": "^3.9.1", + "@react-stately/datepicker": "^3.9.1", + "@react-types/datepicker": "^3.7.1", "@remix-run/express": "2.1.0", "@remix-run/node": "2.1.0", "@remix-run/react": "2.1.0", @@ -66,8 +70,8 @@ "@tabler/icons-react": "^2.39.0", "@tailwindcss/container-queries": "^0.1.1", "@team-plain/typescript-sdk": "^3.5.0", - "@trigger.dev/companyicons": "^1.5.35", "@trigger.dev/billing": "^1.0.10", + "@trigger.dev/companyicons": "^1.5.35", "@trigger.dev/core": "workspace:*", "@trigger.dev/core-backend": "workspace:*", "@trigger.dev/database": "workspace:*", @@ -105,8 +109,10 @@ "prismjs": "^1.29.0", "random-words": "^2.0.0", "react": "^18.2.0", + "react-aria": "^3.31.1", "react-dom": "^18.2.0", "react-hotkeys-hook": "^4.4.1", + "react-stately": "^3.29.1", "react-use": "^17.4.0", "recharts": "^2.8.0", "remix-auth": "^3.6.0", @@ -172,6 +178,7 @@ "@typescript-eslint/eslint-plugin": "^5.59.6", "@typescript-eslint/parser": "^5.59.6", "autoprefixer": "^10.4.13", + "datepicker": "link:@types/@react-aria/datepicker", "esbuild": "^0.15.10", "eslint": "^8.24.0", "eslint-config-prettier": "^8.5.0", @@ -193,4 +200,4 @@ "engines": { "node": ">=16.0.0" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7592e5eda..d94bc52f98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,6 +94,7 @@ importers: '@heroicons/react': ^2.0.12 '@highlight-run/node': ^3.1.0 '@highlight-run/react': ^3.2.0 + '@internationalized/date': ^3.5.1 '@lezer/highlight': ^1.1.6 '@radix-ui/react-alert-dialog': ^1.0.4 '@radix-ui/react-dialog': ^1.0.3 @@ -105,6 +106,9 @@ importers: '@radix-ui/react-switch': ^1.0.3 '@radix-ui/react-tabs': ^1.0.3 '@radix-ui/react-tooltip': ^1.0.5 + '@react-aria/datepicker': ^3.9.1 + '@react-stately/datepicker': ^3.9.1 + '@react-types/datepicker': ^3.7.1 '@remix-run/dev': 2.1.0 '@remix-run/eslint-config': 2.1.0 '@remix-run/express': 2.1.0 @@ -172,6 +176,7 @@ importers: cron-parser: ^4.7.1 cross-env: ^7.0.3 cuid: ^2.1.8 + datepicker: link:@types/@react-aria/datepicker emails: workspace:* esbuild: ^0.15.10 eslint: ^8.24.0 @@ -203,8 +208,10 @@ importers: prop-types: ^15.8.1 random-words: ^2.0.0 react: ^18.2.0 + react-aria: ^3.31.1 react-dom: ^18.2.0 react-hotkeys-hook: ^4.4.1 + react-stately: ^3.29.1 react-use: ^17.4.0 recharts: ^2.8.0 remix-auth: ^3.6.0 @@ -252,6 +259,7 @@ importers: '@heroicons/react': 2.0.13_react@18.2.0 '@highlight-run/node': 3.1.0 '@highlight-run/react': 3.2.0_biqbaboplfbrettd7655fr4n2y + '@internationalized/date': 3.5.1 '@lezer/highlight': 1.1.6 '@radix-ui/react-alert-dialog': 1.0.4_daadhm4ohxobgnrt365as5bhny '@radix-ui/react-dialog': 1.0.3_bwbutfx4xj25dewzmxso6o3wga @@ -263,6 +271,9 @@ importers: '@radix-ui/react-switch': 1.0.3_daadhm4ohxobgnrt365as5bhny '@radix-ui/react-tabs': 1.0.3_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-tooltip': 1.0.5_bwbutfx4xj25dewzmxso6o3wga + '@react-aria/datepicker': 3.9.1_biqbaboplfbrettd7655fr4n2y + '@react-stately/datepicker': 3.9.1_react@18.2.0 + '@react-types/datepicker': 3.7.1_react@18.2.0 '@remix-run/express': 2.1.0_fgkcria6ebvizt7e6qzdl6ei7a '@remix-run/node': 2.1.0_typescript@5.2.2 '@remix-run/react': 2.1.0_vegmnuvoswdxuttpuhvewcem44 @@ -311,8 +322,10 @@ importers: prismjs: 1.29.0 random-words: 2.0.0 react: 18.2.0 + react-aria: 3.31.1_biqbaboplfbrettd7655fr4n2y react-dom: 18.2.0_react@18.2.0 react-hotkeys-hook: 4.4.1_biqbaboplfbrettd7655fr4n2y + react-stately: 3.29.1_react@18.2.0 react-use: 17.4.0_biqbaboplfbrettd7655fr4n2y recharts: 2.8.0_v2m5e27vhdewzwhryxwfaorcca remix-auth: 3.6.0_ybjp5xbtg4zthziheradfmei64 @@ -377,6 +390,7 @@ importers: '@typescript-eslint/eslint-plugin': 5.59.6_7rqy3acf7ittvjpliyki2mhtka '@typescript-eslint/parser': 5.59.6_a3vgt4pcadxos4gox5ryckz5rq autoprefixer: 10.4.13_postcss@8.4.21 + datepicker: link:@types/@react-aria/datepicker esbuild: 0.15.18 eslint: 8.31.0 eslint-config-prettier: 8.6.0_eslint@8.31.0 @@ -6877,6 +6891,40 @@ packages: - '@types/react' dev: false + /@formatjs/ecma402-abstract/1.18.0: + resolution: {integrity: sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==} + dependencies: + '@formatjs/intl-localematcher': 0.5.2 + tslib: 2.6.2 + dev: false + + /@formatjs/fast-memoize/2.2.0: + resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} + dependencies: + tslib: 2.6.2 + dev: false + + /@formatjs/icu-messageformat-parser/2.7.3: + resolution: {integrity: sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw==} + dependencies: + '@formatjs/ecma402-abstract': 1.18.0 + '@formatjs/icu-skeleton-parser': 1.7.0 + tslib: 2.6.2 + dev: false + + /@formatjs/icu-skeleton-parser/1.7.0: + resolution: {integrity: sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A==} + dependencies: + '@formatjs/ecma402-abstract': 1.18.0 + tslib: 2.6.2 + dev: false + + /@formatjs/intl-localematcher/0.5.2: + resolution: {integrity: sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==} + dependencies: + tslib: 2.6.2 + dev: false + /@gar/promisify/1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -7088,6 +7136,31 @@ packages: /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@internationalized/date/3.5.1: + resolution: {integrity: sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==} + dependencies: + '@swc/helpers': 0.5.2 + dev: false + + /@internationalized/message/3.1.1: + resolution: {integrity: sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==} + dependencies: + '@swc/helpers': 0.5.2 + intl-messageformat: 10.5.8 + dev: false + + /@internationalized/number/3.5.0: + resolution: {integrity: sha512-ZY1BW8HT9WKYvaubbuqXbbDdHhOUMfE2zHHFJeTppid0S+pc8HtdIxFxaYMsGjCb4UsF+MEJ4n2TfU7iHnUK8w==} + dependencies: + '@swc/helpers': 0.5.2 + dev: false + + /@internationalized/string/3.2.0: + resolution: {integrity: sha512-Xx3Sy3f2c9ctT+vh8c7euEaEHQZltp0euZ3Hy4UfT3E13r6lxpUS3kgKyumEjboJZSnaZv7JhqWz3D75v+IxQg==} + dependencies: + '@swc/helpers': 0.5.2 + dev: false + /@ioredis/commands/1.2.0: resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} dev: false @@ -10211,365 +10284,1583 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-slot/1.0.2_e74vmjybjy5dsfplslbsgtbvvi: - resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + /@radix-ui/react-slot/1.0.2_e74vmjybjy5dsfplslbsgtbvvi: + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-compose-refs': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@types/react': 18.2.17 + react: 18.2.0 + dev: false + + /@radix-ui/react-switch/1.0.3_daadhm4ohxobgnrt365as5bhny: + resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.20.7 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@radix-ui/react-context': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@radix-ui/react-primitive': 1.0.3_daadhm4ohxobgnrt365as5bhny + '@radix-ui/react-use-controllable-state': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@radix-ui/react-use-previous': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@radix-ui/react-use-size': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@types/react': 18.2.17 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@radix-ui/react-tabs/1.0.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-4CkF/Rx1GcrusI/JZ1Rvyx4okGUs6wEenWA0RG/N+CwkRhTy7t54y7BLsWUXrAz/GRbBfHQg/Odfs/RoW0CiRA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.7 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-context': 1.0.0_react@18.2.0 + '@radix-ui/react-direction': 1.0.0_react@18.2.0 + '@radix-ui/react-id': 1.0.0_react@18.2.0 + '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-roving-focus': 1.0.3_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@radix-ui/react-tooltip/1.0.5_bwbutfx4xj25dewzmxso6o3wga: + resolution: {integrity: sha512-cDKVcfzyO6PpckZekODJZDe5ZxZ2fCZlzKzTmPhe4mX9qTHRfLcKgqb0OKf22xLwDequ2tVleim+ZYx3rabD5w==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.7 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 + '@radix-ui/react-context': 1.0.0_react@18.2.0 + '@radix-ui/react-dismissable-layer': 1.0.3_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-id': 1.0.0_react@18.2.0 + '@radix-ui/react-popper': 1.1.1_bwbutfx4xj25dewzmxso6o3wga + '@radix-ui/react-portal': 1.0.2_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-slot': 1.0.1_react@18.2.0 + '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 + '@radix-ui/react-visually-hidden': 1.0.2_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-use-callback-ref/1.0.0_react@18.2.0: + resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-callback-ref/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@types/react': 18.2.17 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state/1.0.0_react@18.2.0: + resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-callback-ref': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@types/react': 18.2.17 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown/1.0.2_react@18.2.0: + resolution: {integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown/1.0.3_e74vmjybjy5dsfplslbsgtbvvi: + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-callback-ref': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@types/react': 18.2.17 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect/1.0.0_react@18.2.0: + resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@types/react': 18.2.17 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-previous/1.0.0_react@18.2.0: + resolution: {integrity: sha512-RG2K8z/K7InnOKpq6YLDmT49HGjNmrK+fr82UCVKT2sW0GYfVnYp4wZWBooT/EYfQ5faA9uIjvsuMMhH61rheg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-previous/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: + resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@types/react': 18.2.17 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-rect/1.0.0_react@18.2.0: + resolution: {integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/rect': 1.0.0 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-size/1.0.0_react@18.2.0: + resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-size/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: + resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-layout-effect': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi + '@types/react': 18.2.17 + react: 18.2.0 + dev: false + + /@radix-ui/react-visually-hidden/1.0.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-qirnJxtYn73HEk1rXL12/mXnu2rwsNHDID10th2JGtdK25T9wX+mxRmGt7iPSahw512GbZOc0syZX1nLQGoEOg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@radix-ui/rect/1.0.0: + resolution: {integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==} + dependencies: + '@babel/runtime': 7.22.5 + dev: false + + /@react-aria/breadcrumbs/3.5.9_react@18.2.0: + resolution: {integrity: sha512-asbXTL5NjeHl1+YIF0K70y8tNHk8Lb6VneYH8yOkpLO49ejyNDYBK0tp0jtI9IZAQiTa2qkhYq58c9LloTwebQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/link': 3.6.3_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/breadcrumbs': 3.7.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/button/3.9.1_react@18.2.0: + resolution: {integrity: sha512-nAnLMUAnwIVcRkKzS1G2IU6LZSkIWPJGu9amz/g7Y02cGUwFp3lk5bEw2LdoaXiSDJNSX8g0SZFU8FROg57jfQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/toggle': 3.7.0_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/calendar/3.5.4_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-8k7khgea5kwfWriZJWCADNB0R2d7g5A6tTjUEktK4FFZcTb0RCubFejts4hRyzKlF9XHUro2dfh6sbZrzfMKDQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/live-announcer': 3.3.1 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/calendar': 3.4.3_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/calendar': 3.4.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/checkbox/3.13.0_react@18.2.0: + resolution: {integrity: sha512-eylJwtADIPKJ1Y5rITNJm/8JD8sXG2nhiZBIg1ko44Szxrpu+Le53NoGtg8nlrfh9vbUrXVvuFtf2jxbPXR5Jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/form': 3.0.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/toggle': 3.10.0_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/checkbox': 3.6.1_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/toggle': 3.7.0_react@18.2.0 + '@react-types/checkbox': 3.6.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/combobox/3.8.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-q8Kdw1mx6nSSydXqRagRuyKH1NPGvpSOFjUfgxdO8ZqaEEuZX3ObOoiO/DLtXDndViNc03dMbMpfuJoLYXfCtg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/listbox': 3.11.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/live-announcer': 3.3.1 + '@react-aria/menu': 3.12.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/overlays': 3.20.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/textfield': 3.14.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/combobox': 3.8.1_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/combobox': 3.10.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/datepicker/3.9.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-bdlY2H/zwe3hQf64Lp1oGTf7Va8ennDyAv4Ffowb+BOoL8+FB9smtGyONKe87zXu7VJL2M5xYAi4n7c004PM+w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@internationalized/number': 3.5.0 + '@internationalized/string': 3.2.0 + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/form': 3.0.1_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/spinbutton': 3.6.1_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/datepicker': 3.9.1_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/calendar': 3.4.3_react@18.2.0 + '@react-types/datepicker': 3.7.1_react@18.2.0 + '@react-types/dialog': 3.5.7_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/dialog/3.5.10_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-H2BNVLOfaum6/4irH5XUU/wIcXSs/ymxmTPGmucRG1hzaUh8H3tupdl/qCZ+SsW9oYDFlphY172uM1nsPjBMiQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/overlays': 3.20.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/dialog': 3.5.7_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/dnd/3.5.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-7OPGePdle+xNYHAIAUOvIETRMfnkRt7h/C0bCkxUR2GYefEbTzfraso4ppNH2JZ7fCRd0K/Qe+jvQklwusHAKA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/string': 3.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/live-announcer': 3.3.1 + '@react-aria/overlays': 3.20.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/dnd': 3.2.7_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/focus/3.16.0_react@18.2.0: + resolution: {integrity: sha512-GP6EYI07E8NKQQcXHjpIocEU0vh0oi0Vcsd+/71fKS0NnTR0TUOEeil0JuuQ9ymkmPDTu51Aaaa4FxVsuN/23A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + clsx: 2.0.0 + react: 18.2.0 + dev: false + + /@react-aria/form/3.0.1_react@18.2.0: + resolution: {integrity: sha512-6586oODMDR4/ciGRwXjpvEAg7tWGSDrXE//waK0n5e5sMuzlPOo1DHc5SpPTvz0XdJsu6VDt2rHdVWVIC9LEyw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/grid/3.8.6_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-JlQDkdm5heG1FfRyy5KnB8b6s/hRqSI6Xt2xN2AccLX5kcbfFr2/d5KVxyf6ahfa4Gfd46alN6477ju5eTWJew==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/live-announcer': 3.3.1 + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/grid': 3.8.4_react@18.2.0 + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-stately/virtualizer': 3.6.6_react@18.2.0 + '@react-types/checkbox': 3.6.0_react@18.2.0 + '@react-types/grid': 3.2.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/gridlist/3.7.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-rkkepYM7xJiebR0g3uC4zzkdR7a8z0fLaM+sg9lSTbdElHMLAlrebS2ytEyZnhiu9nbOnw13GN1OC4/ZenzbHQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/grid': 3.8.6_biqbaboplfbrettd7655fr4n2y + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/list': 3.10.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/i18n/3.10.0_react@18.2.0: + resolution: {integrity: sha512-sviD5Y1pLPG49HHRmVjR+5nONrp0HK219+nu9Y7cDfUhXu2EjyhMS9t/n9/VZ69hHChZ2PnHYLEE2visu9CuCg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@internationalized/message': 3.1.1 + '@internationalized/number': 3.5.0 + '@internationalized/string': 3.2.0 + '@react-aria/ssr': 3.9.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/interactions/3.20.1_react@18.2.0: + resolution: {integrity: sha512-PLNBr87+SzRhe9PvvF9qvzYeP4ofTwfKSorwmO+hjr3qoczrSXf4LRQlb27wB6hF10C7ZE/XVbUI1lj4QQrZ/g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/ssr': 3.9.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/label/3.7.4_react@18.2.0: + resolution: {integrity: sha512-3Y0yyrqpLzZdzHw+TOyzwuyx5wa2ujU5DGfKuL5GFnU9Ii4DtdwBGSYS7Yu7qadU+eQmG4OGhAgFVswbIgIwJw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/link/3.6.3_react@18.2.0: + resolution: {integrity: sha512-8kPWc4u/lDow3Ll0LDxeMgaxt9Y3sl8UldKLGli8tzRSltYFugNh/n+i9sCnmo4Qv9Tp9kYv+yxBK50Uk9sINw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/link': 3.5.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/listbox/3.11.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-PBrnldmyEYUUJvfDeljW8ITvZyBTfGpLNf0b5kfBPK3TDgRH4niEH2vYEcaZvSqb0FrpdvcunuTRXcOpfb+gCQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/list': 3.10.2_react@18.2.0 + '@react-types/listbox': 3.4.6_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/live-announcer/3.3.1: + resolution: {integrity: sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew==} + dependencies: + '@swc/helpers': 0.5.2 + dev: false + + /@react-aria/menu/3.12.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-Nsujv3b61WR0gybDKnBjAeyxDVJOfPLMggRUf9SQDfPWnrPXEsAFxaPaVcAkzlfI4HiQs1IxNwsKFNpc3PPZTQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/overlays': 3.20.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/menu': 3.6.0_react@18.2.0 + '@react-stately/tree': 3.7.5_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/menu': 3.9.6_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/meter/3.4.9_react@18.2.0: + resolution: {integrity: sha512-1/FHFmFmSyfQBJ2oH152lp4nps76v1UdhnFbIsmRIH+0g0IfMv1yDT2M9dIZ/b9DgVZSx527FmWOXm0eHGKD6w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/progress': 3.4.9_react@18.2.0 + '@react-types/meter': 3.3.6_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/numberfield/3.10.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-KjGTXq3lIhN4DEdEeHzfS/k9Qq0sDEpLgLr/hgSfGN4Q7Syu4Ck/n2HXmrDn//z08/wNvcukuP6Ioers138DcQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/spinbutton': 3.6.1_biqbaboplfbrettd7655fr4n2y + '@react-aria/textfield': 3.14.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/numberfield': 3.8.0_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/numberfield': 3.7.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/overlays/3.20.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-2m7MpRJL5UucbEuu08lMHsiFJoDowkJV4JAIFBZYK1NzVH0vF/A+w9HRNM7jRwx2DUxE+iIsZnl8yKV/7KY8OQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/ssr': 3.9.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-aria/visually-hidden': 3.8.8_react@18.2.0 + '@react-stately/overlays': 3.6.4_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/overlays': 3.8.4_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/progress/3.4.9_react@18.2.0: + resolution: {integrity: sha512-CME1ZLsJHOmSgK8IAPOC/+vYO5Oc614mkEw5MluT/yclw5rMyjAkK1XsHLjEXy81uwPeiRyoQQIMPKG2/sMxFQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/progress': 3.5.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/radio/3.10.0_react@18.2.0: + resolution: {integrity: sha512-6NaKzdGymdcVWLYgHT0cHsVmNzPOp89o8r41w29OPBQWu8w2c9mxg4366OiIZn/uXIBS4abhQ4nL4toBRLgBrg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/form': 3.0.1_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/radio': 3.10.1_react@18.2.0 + '@react-types/radio': 3.7.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/searchfield/3.7.1_react@18.2.0: + resolution: {integrity: sha512-ebhnV/reNByIZzpcQLHIo1RQ+BrYS8HdwX624i9R7dep1gxGHXYEaqL9aSY+RdngNerB4OeiWmB75em9beSpjQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/textfield': 3.14.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/searchfield': 3.5.0_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/searchfield': 3.5.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/select/3.14.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-pAy/+Xbj11Lx6bi/O1hWH0NSIDRxFb6V7N0ry2L8x7MALljh516VbpnAc5RgvbjbuKq0cHUAcdINOzOzpYWm4A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/form': 3.0.1_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/listbox': 3.11.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/menu': 3.12.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-aria/visually-hidden': 3.8.8_react@18.2.0 + '@react-stately/select': 3.6.1_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/select': 3.9.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/selection/3.17.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-xl2sgeGH61ngQeE05WOWWPVpGRTPMjQEFmsAWEprArFi4Z7ihSZgpGX22l1w7uSmtXM/eN/v0W8hUYUju5iXlQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/separator/3.3.9_react@18.2.0: + resolution: {integrity: sha512-1wEXiaSJjq2+DR5TC0RKnUBsfZN+YXTzyI7XMzjQoc3YlclumX8wQtzPAOGOEjHB1JKUgo1Gw70FtupVXz58QQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/slider/3.7.4_react@18.2.0: + resolution: {integrity: sha512-OFJWeGSL2duVDFs/kcjlWsY6bqCVKZgM0aFn2QN4wmID+vfBvBnqGHAgWv3BCePTAPS3+GBjMN002TrftorjwQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/slider': 3.5.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/slider': 3.7.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/spinbutton/3.6.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-u5GuOP3k4Zis055iY0fZJNHU7dUNCoSfUq5LKwJ1iNaCqDcavdstAnAg+X1a7rhpp5zCnJmAMseo3Qmzi9P+Ew==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/live-announcer': 3.3.1 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/ssr/3.9.1_react@18.2.0: + resolution: {integrity: sha512-NqzkLFP8ZVI4GSorS0AYljC13QW2sc8bDqJOkBvkAt3M8gbcAXJWVRGtZBCRscki9RZF+rNlnPdg0G0jYkhJcg==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/switch/3.6.0_react@18.2.0: + resolution: {integrity: sha512-YNWc5fGLNXE4XlmDAKyqAdllRiClGR7ki4KGFY7nL+xR5jxzjCGU3S3ToMK5Op3QSMGZLxY/aYmC4O+MvcoADQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/toggle': 3.10.0_react@18.2.0 + '@react-stately/toggle': 3.7.0_react@18.2.0 + '@react-types/switch': 3.5.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/table/3.13.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-AzmETpyxwNqISTzwHJPs85x9gujG40IIsSOBUdp49oKhB85RbPLvMwhadp4wCVAoHw3erOC/TJxHtVc7o2K1LA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/grid': 3.8.6_biqbaboplfbrettd7655fr4n2y + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/live-announcer': 3.3.1 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-aria/visually-hidden': 3.8.8_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/flags': 3.0.0 + '@react-stately/table': 3.11.4_react@18.2.0 + '@react-stately/virtualizer': 3.6.6_react@18.2.0 + '@react-types/checkbox': 3.6.0_react@18.2.0 + '@react-types/grid': 3.2.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/table': 3.9.2_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/tabs/3.8.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-Plw0K/5Qv35vYq7pHZFfQB2BF5OClFx4Abzo9hLVx4oMy3qb7i5lxmLBVbt81yPX/MdjYeP4zO1EHGBl4zMRhA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/tabs': 3.6.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/tabs': 3.3.4_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/tag/3.3.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-w7d8sVZqxTo8VFfeg2ixLp5kawtrcguGznVY4mt5aE6K8LMJOeNVDqNNfolfyia80VjOWjeX+RpVdVJRdrv/GQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/gridlist': 3.7.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/list': 3.10.2_react@18.2.0 + '@react-types/button': 3.9.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-aria/textfield/3.14.1_react@18.2.0: + resolution: {integrity: sha512-UMepuYtDdCgrUF4dMphNxrUm23xOmR54aZD1pbp9cJyfioVkJN35BTXZVkD0D07gHLn4RhxKIZxBortQQrLB9g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/form': 3.0.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/textfield': 3.9.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/toggle/3.10.0_react@18.2.0: + resolution: {integrity: sha512-6cUf4V9TuG2J7AvXUdU/GspEPFCubUOID3mrselSe563RViy+mMZk0vUEOdyoNanDcEXl58W4dE3SGWxFn71vg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/toggle': 3.7.0_react@18.2.0 + '@react-types/checkbox': 3.6.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/tooltip/3.7.0_react@18.2.0: + resolution: {integrity: sha512-+u9Sftkfe09IDyPEnbbreFKS50vh9X/WTa7n1u2y3PenI9VreLpUR6czyzda4BlvQ95e9jQz1cVxUjxTNaZmBw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-stately/tooltip': 3.4.6_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/tooltip': 3.4.6_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-aria/utils/3.23.0_react@18.2.0: + resolution: {integrity: sha512-fJA63/VU4iQNT8WUvrmll3kvToqMurD69CcgVmbQ56V7ZbvlzFi44E7BpnoaofScYLLtFWRjVdaHsohT6O/big==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/ssr': 3.9.1_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + clsx: 2.0.0 + react: 18.2.0 + dev: false + + /@react-aria/visually-hidden/3.8.8_react@18.2.0: + resolution: {integrity: sha512-Cn2PYKD4ijGDtF0+dvsh8qa4y7KTNAlkTG6h20r8Q+6UTyRNmtE2/26QEaApRF8CBiNy9/BZC/ZC4FK2OjvCoA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-email/button/0.0.4: + resolution: {integrity: sha512-6leTjsbf37fBb54AKSTOp1lzDsEFgJ/RdoBAy9MhuiciOqnUhJ5BRHZd4LJkt46FsBrILs8Ob50Y4quzV4kP0Q==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/container/0.0.4: + resolution: {integrity: sha512-NwyppwXFfj+jzociP/jXIVkxCB6q9hNyoyMPIOnSbZDl6A16WaEi4ABo+i8BG3dzqQCJ357KPvMRkn8PJ/pWjA==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/head/0.0.2: + resolution: {integrity: sha512-DLPDRPsqxOKTUYMy7TouldjGZ6/ZAnfmQuRFceliL2YyP4QPQyR+cWaYUItw026+wIJ4eNqLmVgb6M6UOFzB9w==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/heading/0.0.5: + resolution: {integrity: sha512-guSPzy6x+za+O4ch+3XeRkhgu82rT6FvcDtpuUwAqrFrrY4RTRIZ4jlRWO/hMC9EYGd76PjpsRG7deb+YcwmcQ==} + dependencies: + '@radix-ui/react-slot': 1.0.0_react@18.2.0 + react: 18.2.0 + utils: 0.3.1 + dev: false + + /@react-email/hr/0.0.2: + resolution: {integrity: sha512-HC2vD5oNapO9lISGsEQcKQiY30z2aWc92Xg6VLL4Q79834cxyer56cCHtpztvKDRlOSy8lQktPocU5LNuE01Ow==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/html/0.0.2: + resolution: {integrity: sha512-j6r7PdBUuH0G5OhiIskCtDerdowkiOia8nzAMbKt2S3vkRkgIIULIZwWA1mEjHXyTP5ZAOeCaqFTILt4Wn1seA==} + dev: false + + /@react-email/img/0.0.2: + resolution: {integrity: sha512-ULvl6OnKlifj0kcQ3U0WL2Ita2e6FOqjZb9PFYGzu82ZphceiK3aMetn9tK+WJCsQA1LEKt9fYr5o3Yz8MF58A==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/link/0.0.2: + resolution: {integrity: sha512-HhUGxOfoBJW6G/7dWs7LIKwkGBn+PfTYcewpkxBoA+IBc6YTwu1KL0gyB3VLTB0qeEXDlT9lNM+qc/EZNsRoaQ==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/preview/0.0.2: + resolution: {integrity: sha512-qUe4n5R3z999O12H1IGGzq/zCFKKrzRoi30PLCpxqN4e1CWB+e/s0w20UDFJRy7rRpaZYuLTwTQ5w4T6XHNHIg==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/render/0.0.1: + resolution: {integrity: sha512-zog/2O0IWZDl10YfmLkgARzHgkX27ZwJhFaSib3hgxYwAdgWrCnfd3uT9ZuZqk9BXz1pk9jv9cl+UYS0nbCFdw==} + dependencies: + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-email/render/0.0.4_react@18.2.0: + resolution: {integrity: sha512-HPWjgw1TKcvYUPh74BjVC8Xq0ZU4nqb/tKsTa/VK/Ln4yXqnakBXNYl/UdHeJs57Ic9RMXSA9iOciQEHLgFWOg==} + engines: {node: '>=16.0.0'} + dependencies: + html-to-text: 9.0.3 + pretty: 2.0.0 + react-dom: 18.2.0_react@18.2.0 + transitivePeerDependencies: + - react + dev: false + + /@react-email/render/0.0.7: + resolution: {integrity: sha512-hMMhxk6TpOcDC5qnKzXPVJoVGEwfm+U5bGOPH+MyTTlx0F02RLQygcATBKsbP7aI/mvkmBAZoFbgPIHop7ovug==} + engines: {node: '>=16.0.0'} + dependencies: + html-to-text: 9.0.3 + pretty: 2.0.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-email/render/0.0.9: + resolution: {integrity: sha512-nrim7wiACnaXsGtL7GF6jp3Qmml8J6vAjAH88jkC8lIbfNZaCyuPQHANjyYIXlvQeAbsWADQJFZgOHUqFqjh/A==} + engines: {node: '>=18.0.0'} + dependencies: + html-to-text: 9.0.5 + pretty: 2.0.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@react-email/section/0.0.1: + resolution: {integrity: sha512-Pb2HcGNhTOtFRJVB+Kq2vTUnd8M+LuZBuHfpUD16ua/m2/mbW5WeXAfSuJ2Tl6qspzvDKLHqVX+o6HBc1qgl2Q==} + dependencies: + react: 18.2.0 + dev: false + + /@react-email/text/0.0.2: + resolution: {integrity: sha512-BUOl5/2nsImBLSBC9XE7Khj3KWpubni73l0jT1weLzXG+GY3cZARTEErSit3BC5/KAG9lVISwFTTOfnVjhVDBA==} + dependencies: + react: 18.2.0 + dev: false + + /@react-stately/calendar/3.4.3_react@18.2.0: + resolution: {integrity: sha512-OrEcdskszDjnjVnFuSiDC2PVBJ6lWMCJROD5s6W1LUehUtBp8LX9wPavAGHV43LbhN9ldj560sxaQ4WCddrRCA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/calendar': 3.4.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/checkbox/3.6.1_react@18.2.0: + resolution: {integrity: sha512-rOjFeVBy32edYwhKiHj3ZLdLeO+xZ2fnBwxnOBjcygnw4Neygm8FJH/dB1J0hdYYR349yby86ED2x0wRc84zPw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/checkbox': 3.6.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/collections/3.10.4_react@18.2.0: + resolution: {integrity: sha512-OHhCrItGt4zB2bSrgObRo0H2SC7QlkH8ReGxo+NVIWchXRLRoiWBP7S+IwleewEo5gOqDVPY3hqA9n4iiI8twg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/combobox/3.8.1_react@18.2.0: + resolution: {integrity: sha512-FaWkqTXQdWg7ptaeU4iPcqF/kxbRg2ZNUcvW/hiL/enciV5tRCsddvfNqvDvy1L30z9AUwlp9MWqzm/DhBITCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/list': 3.10.2_react@18.2.0 + '@react-stately/overlays': 3.6.4_react@18.2.0 + '@react-stately/select': 3.6.1_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/combobox': 3.10.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/data/3.11.0_react@18.2.0: + resolution: {integrity: sha512-0BlPT58WrAtUvpiEfUuyvIsGFTzp/9vA5y+pk53kGJhOdc5tqBGHi9cg40pYE/i1vdHJGMpyHGRD9nkQb8wN3Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/datepicker/3.9.1_react@18.2.0: + resolution: {integrity: sha512-o5xLvlZGJyAbTev2yruGlV2fzQyIDuYTgL19TTt0W0WCfjGGr/AAA9GjGXXmyoRA7sZMxqIPnnv7lNrdA38ofA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@internationalized/string': 3.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/overlays': 3.6.4_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/datepicker': 3.7.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/dnd/3.2.7_react@18.2.0: + resolution: {integrity: sha512-QqSCvE9Rhp+Mr8Mt/SrByze24BFX1cy7gmXbwoqAYgHNIx3gWCVdBLqxfpfgYIhZdF9H72EWS8lQkfkZla06Ng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/flags/3.0.0: + resolution: {integrity: sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w==} + dependencies: + '@swc/helpers': 0.4.14 + dev: false + + /@react-stately/form/3.0.0_react@18.2.0: + resolution: {integrity: sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/grid/3.8.4_react@18.2.0: + resolution: {integrity: sha512-rwqV1K4lVhaiaqJkt4TfYqdJoVIyqvSm98rKAYfCNzrKcivVpoiCMJ2EMt6WlYCjDVBdEOQ7fMV1I60IV0pntA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-types/grid': 3.2.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/list/3.10.2_react@18.2.0: + resolution: {integrity: sha512-INt+zofkIg2KN8B95xPi9pJG7ZFWAm30oIm/lCPBqM3K1Nm03/QaAbiQj2QeJcOsG3lb7oqI6D6iwTolwJkjIQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/menu/3.6.0_react@18.2.0: + resolution: {integrity: sha512-OB6CjNyfOkAuirqx1oTL8z8epS9WDzLyrXjmRnxdiCU9EgRXLGAQNECuO7VIpl58oDry8tgRJiJ8fn8FivWSQA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/overlays': 3.6.4_react@18.2.0 + '@react-types/menu': 3.9.6_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/numberfield/3.8.0_react@18.2.0: + resolution: {integrity: sha512-1XvB8tDOvZKcFnMM6qNLEaTVJcIc0jRFS/9jtS8MzalZvh8DbKi0Ucm1bGU7S5rkCx2QWqZ0rGOIm2h/RlcpkA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/number': 3.5.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/numberfield': 3.7.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/overlays/3.6.4_react@18.2.0: + resolution: {integrity: sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/overlays': 3.8.4_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/radio/3.10.1_react@18.2.0: + resolution: {integrity: sha512-MsBYbcLCvjKsqTAKe43T681F2XwKMsS7PLG0eplZgWP9210AMY78GeY1XPYZKHPAau8XkbYiuJqbqTerIJ3DBw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/radio': 3.7.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/searchfield/3.5.0_react@18.2.0: + resolution: {integrity: sha512-SStjChkn/33pEn40slKQPnBnmQYyxVazVwPjiBkdeVejC42lUVairUTrGJgF0PNoZTbxn0so2/XzjqTC9T8iCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/searchfield': 3.5.2_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/select/3.6.1_react@18.2.0: + resolution: {integrity: sha512-e5ixtLiYLlFWM8z1msDqXWhflF9esIRfroptZsltMn1lt2iImUlDRlOTZlMtPQzUrDWoiHXRX88sSKUM/jXjQQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/list': 3.10.2_react@18.2.0 + '@react-stately/overlays': 3.6.4_react@18.2.0 + '@react-types/select': 3.9.1_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-stately/selection/3.14.2_react@18.2.0: + resolution: {integrity: sha512-mL7OoiUgVWaaF7ks5XSxgbXeShijYmD4G3bkBHhqkpugU600QH6BM2hloCq8KOUupk1y8oTljPtF9EmCv375DA==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-compose-refs': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@types/react': 18.2.17 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 dev: false - /@radix-ui/react-switch/1.0.3_daadhm4ohxobgnrt365as5bhny: - resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} + /@react-stately/slider/3.5.0_react@18.2.0: + resolution: {integrity: sha512-dOVpIxb7XKuiRxgpHt1bUSlsklciFki100tKIyBPR+Okar9iC/CwLYROYgVfLkGe77jEBNkor9tDLjDGEWcc1w==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.20.7 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@radix-ui/react-context': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@radix-ui/react-primitive': 1.0.3_daadhm4ohxobgnrt365as5bhny - '@radix-ui/react-use-controllable-state': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@radix-ui/react-use-previous': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@radix-ui/react-use-size': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/slider': 3.7.0_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 dev: false - /@radix-ui/react-tabs/1.0.3_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-4CkF/Rx1GcrusI/JZ1Rvyx4okGUs6wEenWA0RG/N+CwkRhTy7t54y7BLsWUXrAz/GRbBfHQg/Odfs/RoW0CiRA==} + /@react-stately/table/3.11.4_react@18.2.0: + resolution: {integrity: sha512-dWINJIEOKQl4qq3moq+S8xCD3m+yJqBj0dahr+rOkS+t2uqORwzsusTM35D2T/ZHZi49S2GpE7QuDa+edCynPw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.20.7 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-context': 1.0.0_react@18.2.0 - '@radix-ui/react-direction': 1.0.0_react@18.2.0 - '@radix-ui/react-id': 1.0.0_react@18.2.0 - '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-roving-focus': 1.0.3_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/flags': 3.0.0 + '@react-stately/grid': 3.8.4_react@18.2.0 + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/grid': 3.2.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/table': 3.9.2_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 dev: false - /@radix-ui/react-tooltip/1.0.5_bwbutfx4xj25dewzmxso6o3wga: - resolution: {integrity: sha512-cDKVcfzyO6PpckZekODJZDe5ZxZ2fCZlzKzTmPhe4mX9qTHRfLcKgqb0OKf22xLwDequ2tVleim+ZYx3rabD5w==} + /@react-stately/tabs/3.6.3_react@18.2.0: + resolution: {integrity: sha512-Nj+Gacwa2SIzYIvHW40GsyX4Q6c8kF7GOuXESeQswbCjnwqhrSbDBp+ngPcUPUJxqFh6JhDCVwAS3wMhUoyUwA==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.20.7 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 - '@radix-ui/react-context': 1.0.0_react@18.2.0 - '@radix-ui/react-dismissable-layer': 1.0.3_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-id': 1.0.0_react@18.2.0 - '@radix-ui/react-popper': 1.1.1_bwbutfx4xj25dewzmxso6o3wga - '@radix-ui/react-portal': 1.0.2_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-slot': 1.0.1_react@18.2.0 - '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 - '@radix-ui/react-visually-hidden': 1.0.2_biqbaboplfbrettd7655fr4n2y + '@react-stately/list': 3.10.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/tabs': 3.3.4_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - transitivePeerDependencies: - - '@types/react' dev: false - /@radix-ui/react-use-callback-ref/1.0.0_react@18.2.0: - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + /@react-stately/toggle/3.7.0_react@18.2.0: + resolution: {integrity: sha512-TRksHkCJk/Xogq4181g3CYgJf+EfsJCqX5UZDSw1Z1Kgpvonjmdf6FAfQfCh9QR2OuXUL6hOLUDVLte5OPI+5g==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/checkbox': 3.6.0_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 dev: false - /@radix-ui/react-use-callback-ref/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: - resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + /@react-stately/tooltip/3.4.6_react@18.2.0: + resolution: {integrity: sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@types/react': 18.2.17 + '@react-stately/overlays': 3.6.4_react@18.2.0 + '@react-types/tooltip': 3.4.6_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state/1.0.0_react@18.2.0: - resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + /@react-stately/tree/3.7.5_react@18.2.0: + resolution: {integrity: sha512-xTJVwvhAeY0N5rui4N/TxN7f8hjXdqApDuGDxMZeFAWoQz8Abf7LFKBVQ3OkT6qVr7P+23dgoisUDBhD5a45Hg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-stately/utils': 3.9.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: - resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + /@react-stately/utils/3.9.0_react@18.2.0: + resolution: {integrity: sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-use-callback-ref': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@types/react': 18.2.17 + '@swc/helpers': 0.5.2 react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown/1.0.2_react@18.2.0: - resolution: {integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==} + /@react-stately/virtualizer/3.6.6_react@18.2.0: + resolution: {integrity: sha512-9hWvfITdE/028q4YFve6FxlmA3PdSMkUwpYA+vfaGCXI/4DFZIssBMspUeu4PTRJoV+k+m0z1wYHPmufrq6a3g==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + '@swc/helpers': 0.5.2 react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown/1.0.3_e74vmjybjy5dsfplslbsgtbvvi: - resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + /@react-types/breadcrumbs/3.7.2_react@18.2.0: + resolution: {integrity: sha512-esl6RucDW2CNMsApJxNYfMtDaUcfLlwKMPH/loYsOBbKxGl2HsgVLMcdpjEkTRs2HCTNCbBXWpeU8AY77t+bsw==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-use-callback-ref': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@types/react': 18.2.17 + '@react-types/link': 3.5.2_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect/1.0.0_react@18.2.0: - resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + /@react-types/button/3.9.1_react@18.2.0: + resolution: {integrity: sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: - resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + /@react-types/calendar/3.4.3_react@18.2.0: + resolution: {integrity: sha512-96x57ctX5wNEl+8et3sc2NQm8neOJayEeqOQQpyPtI7jyvst/xBrKCwysf9W/dhgPlUC+KeBAYFWfjd5hFVHYA==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@types/react': 18.2.17 + '@internationalized/date': 3.5.1 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-use-previous/1.0.0_react@18.2.0: - resolution: {integrity: sha512-RG2K8z/K7InnOKpq6YLDmT49HGjNmrK+fr82UCVKT2sW0GYfVnYp4wZWBooT/EYfQ5faA9uIjvsuMMhH61rheg==} + /@react-types/checkbox/3.6.0_react@18.2.0: + resolution: {integrity: sha512-vgbuJzQpVCNT5AZWV0OozXCnihqrXxoZKfJFIw0xro47pT2sn3t5UC4RA9wfjDGMoK4frw1K/4HQLsQIOsPBkw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-use-previous/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: - resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} + /@react-types/combobox/3.10.0_react@18.2.0: + resolution: {integrity: sha512-1IXSNS02TPbguyYopaW2snU6sZusbClHrEyVr4zPeexTV4kpUUBNXOzFQ+eSQRR0r2XW57Z0yRW4GJ6FGU0yCA==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@types/react': 18.2.17 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-use-rect/1.0.0_react@18.2.0: - resolution: {integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==} + /@react-types/datepicker/3.7.1_react@18.2.0: + resolution: {integrity: sha512-5juVDULOytNzkotqX8j5mYKJckeIpkgbHqVSGkPgLw0++FceIaSZ6RH56cqLup0pO45paqIt9zHh+QXBYX+syg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/rect': 1.0.0 + '@internationalized/date': 3.5.1 + '@react-types/calendar': 3.4.3_react@18.2.0 + '@react-types/overlays': 3.8.4_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-use-size/1.0.0_react@18.2.0: - resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} + /@react-types/dialog/3.5.7_react@18.2.0: + resolution: {integrity: sha512-geYoqAyQaTLG43AaXdMUVqZXYgkSifrD9cF7lR2kPAT0uGFv0YREi6ieU+aui8XJ83EW0xcxP+EPWd2YkN4D4w==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 + '@react-types/overlays': 3.8.4_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-use-size/1.0.1_e74vmjybjy5dsfplslbsgtbvvi: - resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + /@react-types/grid/3.2.3_react@18.2.0: + resolution: {integrity: sha512-GQM4RDmYhstcYZ0Odjq+xUwh1fhLmRebG6qMM8OXHTPQ77nhl3wc1UTGRhZm6mzEionplSRx4GCpEMEHMJIU0w==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-use-layout-effect': 1.0.1_e74vmjybjy5dsfplslbsgtbvvi - '@types/react': 18.2.17 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@radix-ui/react-visually-hidden/1.0.2_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-qirnJxtYn73HEk1rXL12/mXnu2rwsNHDID10th2JGtdK25T9wX+mxRmGt7iPSahw512GbZOc0syZX1nLQGoEOg==} + /@react-types/link/3.5.2_react@18.2.0: + resolution: {integrity: sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 - '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 dev: false - /@radix-ui/rect/1.0.0: - resolution: {integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==} + /@react-types/listbox/3.4.6_react@18.2.0: + resolution: {integrity: sha512-XOQvrTqNh5WIPDvKiWiep8T07RAsMfjAXTjDbnjxVlKACUXkcwpts9kFaLnJ9LJRFt6DwItfP+WMkzvmx63/NQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.5 + '@react-types/shared': 3.22.0_react@18.2.0 + react: 18.2.0 dev: false - /@react-email/button/0.0.4: - resolution: {integrity: sha512-6leTjsbf37fBb54AKSTOp1lzDsEFgJ/RdoBAy9MhuiciOqnUhJ5BRHZd4LJkt46FsBrILs8Ob50Y4quzV4kP0Q==} + /@react-types/menu/3.9.6_react@18.2.0: + resolution: {integrity: sha512-w/RbFInOf4nNayQDv5c2L8IMJbcFOkBhsT3xvvpTy+CHvJcQdjggwaV1sRiw7eF/PwB81k2CwigmidUzHJhKDg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/overlays': 3.8.4_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@react-email/container/0.0.4: - resolution: {integrity: sha512-NwyppwXFfj+jzociP/jXIVkxCB6q9hNyoyMPIOnSbZDl6A16WaEi4ABo+i8BG3dzqQCJ357KPvMRkn8PJ/pWjA==} + /@react-types/meter/3.3.6_react@18.2.0: + resolution: {integrity: sha512-1XYp1fA9UU0lO6kjf3TwVE8mppOJa64mBKAcLWtTyq1e/cYIAbx5o6CsuUx0YDpXKF6gdtvIWvfmxeWsmqJ1jQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/progress': 3.5.1_react@18.2.0 react: 18.2.0 dev: false - /@react-email/head/0.0.2: - resolution: {integrity: sha512-DLPDRPsqxOKTUYMy7TouldjGZ6/ZAnfmQuRFceliL2YyP4QPQyR+cWaYUItw026+wIJ4eNqLmVgb6M6UOFzB9w==} + /@react-types/numberfield/3.7.0_react@18.2.0: + resolution: {integrity: sha512-gaGi+vqm1Y8LCWRsWYUjcGftPIzl+8W2VOfkgKMLM8y76nnwTPtmAqs+Ap1cg7sEJSfsiKMq93e9yvP3udrC2w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@react-email/heading/0.0.5: - resolution: {integrity: sha512-guSPzy6x+za+O4ch+3XeRkhgu82rT6FvcDtpuUwAqrFrrY4RTRIZ4jlRWO/hMC9EYGd76PjpsRG7deb+YcwmcQ==} + /@react-types/overlays/3.8.4_react@18.2.0: + resolution: {integrity: sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@radix-ui/react-slot': 1.0.0_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 - utils: 0.3.1 dev: false - /@react-email/hr/0.0.2: - resolution: {integrity: sha512-HC2vD5oNapO9lISGsEQcKQiY30z2aWc92Xg6VLL4Q79834cxyer56cCHtpztvKDRlOSy8lQktPocU5LNuE01Ow==} + /@react-types/progress/3.5.1_react@18.2.0: + resolution: {integrity: sha512-CqsUjczUK/SfuFzDcajBBaXRTW0D3G9S/yqLDj9e8E0ii+lGDLt1PHj24t1J7E88U2rVYqmM9VL4NHTt8o3IYA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@react-email/html/0.0.2: - resolution: {integrity: sha512-j6r7PdBUuH0G5OhiIskCtDerdowkiOia8nzAMbKt2S3vkRkgIIULIZwWA1mEjHXyTP5ZAOeCaqFTILt4Wn1seA==} + /@react-types/radio/3.7.0_react@18.2.0: + resolution: {integrity: sha512-EcwGAXzSHjSqpFZha7xn3IUrhPiJLj+0yb1Ip0qPmhWz0VVw2DwrkY7q/jfaKroVvQhTo2TbfGhcsAQrt0fRqg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 + react: 18.2.0 dev: false - /@react-email/img/0.0.2: - resolution: {integrity: sha512-ULvl6OnKlifj0kcQ3U0WL2Ita2e6FOqjZb9PFYGzu82ZphceiK3aMetn9tK+WJCsQA1LEKt9fYr5o3Yz8MF58A==} + /@react-types/searchfield/3.5.2_react@18.2.0: + resolution: {integrity: sha512-JAK2/Kg4Dr393FYfbRw0TlXKnJPX77sq1x/ZBxtO6p64+MuuIYKqw0i9PwDlo1PViw2QI5u8GFhKA2TgemY9uA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 + '@react-types/textfield': 3.9.0_react@18.2.0 react: 18.2.0 dev: false - /@react-email/link/0.0.2: - resolution: {integrity: sha512-HhUGxOfoBJW6G/7dWs7LIKwkGBn+PfTYcewpkxBoA+IBc6YTwu1KL0gyB3VLTB0qeEXDlT9lNM+qc/EZNsRoaQ==} + /@react-types/select/3.9.1_react@18.2.0: + resolution: {integrity: sha512-EpKSxrnh8HdZvOF9dHQkjivAcdIp1K81FaxmvosH8Lygqh0iYXxAdZGtKLMyBoPI8YFhA+rotIzTcOqgCCnqWA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@react-email/preview/0.0.2: - resolution: {integrity: sha512-qUe4n5R3z999O12H1IGGzq/zCFKKrzRoi30PLCpxqN4e1CWB+e/s0w20UDFJRy7rRpaZYuLTwTQ5w4T6XHNHIg==} + /@react-types/shared/3.22.0_react@18.2.0: + resolution: {integrity: sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: react: 18.2.0 dev: false - /@react-email/render/0.0.1: - resolution: {integrity: sha512-zog/2O0IWZDl10YfmLkgARzHgkX27ZwJhFaSib3hgxYwAdgWrCnfd3uT9ZuZqk9BXz1pk9jv9cl+UYS0nbCFdw==} + /@react-types/slider/3.7.0_react@18.2.0: + resolution: {integrity: sha512-uyQXUVFfqc9SPUW0LZLMan2n232F/OflRafiHXz9viLFa9tVOupVa7GhASRAoHojwkjoJ1LjFlPih7g5dOZ0/Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 dev: false - /@react-email/render/0.0.4_react@18.2.0: - resolution: {integrity: sha512-HPWjgw1TKcvYUPh74BjVC8Xq0ZU4nqb/tKsTa/VK/Ln4yXqnakBXNYl/UdHeJs57Ic9RMXSA9iOciQEHLgFWOg==} - engines: {node: '>=16.0.0'} + /@react-types/switch/3.5.0_react@18.2.0: + resolution: {integrity: sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - html-to-text: 9.0.3 - pretty: 2.0.0 - react-dom: 18.2.0_react@18.2.0 - transitivePeerDependencies: - - react + '@react-types/shared': 3.22.0_react@18.2.0 + react: 18.2.0 dev: false - /@react-email/render/0.0.7: - resolution: {integrity: sha512-hMMhxk6TpOcDC5qnKzXPVJoVGEwfm+U5bGOPH+MyTTlx0F02RLQygcATBKsbP7aI/mvkmBAZoFbgPIHop7ovug==} - engines: {node: '>=16.0.0'} + /@react-types/table/3.9.2_react@18.2.0: + resolution: {integrity: sha512-brw5JUANOzBa2rYNpN8AIl9nDZ9RwRZC6G/wTM/JhtirjC1S42oCtf8Ap5rWJBdmMG/5KOfcGNcAl/huyqb3gg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - html-to-text: 9.0.3 - pretty: 2.0.0 + '@react-types/grid': 3.2.3_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 dev: false - /@react-email/render/0.0.9: - resolution: {integrity: sha512-nrim7wiACnaXsGtL7GF6jp3Qmml8J6vAjAH88jkC8lIbfNZaCyuPQHANjyYIXlvQeAbsWADQJFZgOHUqFqjh/A==} - engines: {node: '>=18.0.0'} + /@react-types/tabs/3.3.4_react@18.2.0: + resolution: {integrity: sha512-4mCTtFrwMRypyGTZCvNYVT9CkknexO/UYvqwDm2jMYb8JgjRvxnomu776Yh7uyiYKWyql2upm20jqasEOm620w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - html-to-text: 9.0.5 - pretty: 2.0.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 dev: false - /@react-email/section/0.0.1: - resolution: {integrity: sha512-Pb2HcGNhTOtFRJVB+Kq2vTUnd8M+LuZBuHfpUD16ua/m2/mbW5WeXAfSuJ2Tl6qspzvDKLHqVX+o6HBc1qgl2Q==} + /@react-types/textfield/3.9.0_react@18.2.0: + resolution: {integrity: sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false - /@react-email/text/0.0.2: - resolution: {integrity: sha512-BUOl5/2nsImBLSBC9XE7Khj3KWpubni73l0jT1weLzXG+GY3cZARTEErSit3BC5/KAG9lVISwFTTOfnVjhVDBA==} + /@react-types/tooltip/3.4.6_react@18.2.0: + resolution: {integrity: sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: + '@react-types/overlays': 3.8.4_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 react: 18.2.0 dev: false @@ -13347,7 +14638,6 @@ packages: resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: tslib: 2.4.1 - dev: true /@swc/helpers/0.5.0: resolution: {integrity: sha512-SjY/p4MmECVVEWspzSRpQEM3sjR17sP8PbGxELWrT+YZMBfiUyt1MRUNjMV23zohwlG2HYtCQOsCwsTHguXkyg==} @@ -13365,7 +14655,6 @@ packages: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.2 - dev: true /@szmarczak/http-timer/1.1.2: resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} @@ -22474,6 +23763,15 @@ packages: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} + /intl-messageformat/10.5.8: + resolution: {integrity: sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA==} + dependencies: + '@formatjs/ecma402-abstract': 1.18.0 + '@formatjs/fast-memoize': 2.2.0 + '@formatjs/icu-messageformat-parser': 2.7.3 + tslib: 2.6.2 + dev: false + /intl-parse-accept-language/1.0.0: resolution: {integrity: sha512-YFMSV91JNBOSjw1cOfw2tup6hDP7mkz+2AUV7W1L1AM6ntgI75qC1ZeFpjPGMrWp+upmBRTX2fJWQ8c7jsUWpA==} engines: {node: '>=14'} @@ -28080,6 +29378,53 @@ packages: minimist: 1.2.7 strip-json-comments: 2.0.1 + /react-aria/3.31.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-q4jRCVDKO6V2o4Sgir5S2obssw/YnMx6QOy10+p0dYqROHpSnMFNkONrKT1w/nA+Nx4ptfPqZbaNra1hR1bUWg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/string': 3.2.0 + '@react-aria/breadcrumbs': 3.5.9_react@18.2.0 + '@react-aria/button': 3.9.1_react@18.2.0 + '@react-aria/calendar': 3.5.4_biqbaboplfbrettd7655fr4n2y + '@react-aria/checkbox': 3.13.0_react@18.2.0 + '@react-aria/combobox': 3.8.2_biqbaboplfbrettd7655fr4n2y + '@react-aria/datepicker': 3.9.1_biqbaboplfbrettd7655fr4n2y + '@react-aria/dialog': 3.5.10_biqbaboplfbrettd7655fr4n2y + '@react-aria/dnd': 3.5.1_biqbaboplfbrettd7655fr4n2y + '@react-aria/focus': 3.16.0_react@18.2.0 + '@react-aria/gridlist': 3.7.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/i18n': 3.10.0_react@18.2.0 + '@react-aria/interactions': 3.20.1_react@18.2.0 + '@react-aria/label': 3.7.4_react@18.2.0 + '@react-aria/link': 3.6.3_react@18.2.0 + '@react-aria/listbox': 3.11.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/menu': 3.12.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/meter': 3.4.9_react@18.2.0 + '@react-aria/numberfield': 3.10.2_biqbaboplfbrettd7655fr4n2y + '@react-aria/overlays': 3.20.0_biqbaboplfbrettd7655fr4n2y + '@react-aria/progress': 3.4.9_react@18.2.0 + '@react-aria/radio': 3.10.0_react@18.2.0 + '@react-aria/searchfield': 3.7.1_react@18.2.0 + '@react-aria/select': 3.14.1_biqbaboplfbrettd7655fr4n2y + '@react-aria/selection': 3.17.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/separator': 3.3.9_react@18.2.0 + '@react-aria/slider': 3.7.4_react@18.2.0 + '@react-aria/ssr': 3.9.1_react@18.2.0 + '@react-aria/switch': 3.6.0_react@18.2.0 + '@react-aria/table': 3.13.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/tabs': 3.8.3_biqbaboplfbrettd7655fr4n2y + '@react-aria/tag': 3.3.1_biqbaboplfbrettd7655fr4n2y + '@react-aria/textfield': 3.14.1_react@18.2.0 + '@react-aria/tooltip': 3.7.0_react@18.2.0 + '@react-aria/utils': 3.23.0_react@18.2.0 + '@react-aria/visually-hidden': 3.8.8_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + /react-colorful/5.6.1_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} peerDependencies: @@ -28328,6 +29673,37 @@ packages: react-transition-group: 2.9.0_biqbaboplfbrettd7655fr4n2y dev: false + /react-stately/3.29.1_react@18.2.0: + resolution: {integrity: sha512-hc4ZHy/ahvMwr6z7XMjYJ7EgzNVrXhzM4l2Qj17rdRhERo7/ovWmQencf9pF7K8kD5TraEHxPHLrYzGN4fxfUQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/calendar': 3.4.3_react@18.2.0 + '@react-stately/checkbox': 3.6.1_react@18.2.0 + '@react-stately/collections': 3.10.4_react@18.2.0 + '@react-stately/combobox': 3.8.1_react@18.2.0 + '@react-stately/data': 3.11.0_react@18.2.0 + '@react-stately/datepicker': 3.9.1_react@18.2.0 + '@react-stately/dnd': 3.2.7_react@18.2.0 + '@react-stately/form': 3.0.0_react@18.2.0 + '@react-stately/list': 3.10.2_react@18.2.0 + '@react-stately/menu': 3.6.0_react@18.2.0 + '@react-stately/numberfield': 3.8.0_react@18.2.0 + '@react-stately/overlays': 3.6.4_react@18.2.0 + '@react-stately/radio': 3.10.1_react@18.2.0 + '@react-stately/searchfield': 3.5.0_react@18.2.0 + '@react-stately/select': 3.6.1_react@18.2.0 + '@react-stately/selection': 3.14.2_react@18.2.0 + '@react-stately/slider': 3.5.0_react@18.2.0 + '@react-stately/table': 3.11.4_react@18.2.0 + '@react-stately/tabs': 3.6.3_react@18.2.0 + '@react-stately/toggle': 3.7.0_react@18.2.0 + '@react-stately/tooltip': 3.4.6_react@18.2.0 + '@react-stately/tree': 3.7.5_react@18.2.0 + '@react-types/shared': 3.22.0_react@18.2.0 + react: 18.2.0 + dev: false + /react-style-singleton/2.2.1_e74vmjybjy5dsfplslbsgtbvvi: resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'}