From 97a664159beb445e68afeec2fa5c87571eef1f2c Mon Sep 17 00:00:00 2001
From: Matiss Janis Aboltins <matiss@mja.lv>
Date: Mon, 8 Apr 2024 17:51:38 +0100
Subject: [PATCH] :recycle: (tooltip) refactored tooltip to react-aria (#2493)

---
 packages/desktop-client/package.json          |    1 +
 .../src/components/NotesButton.tsx            |  138 +-
 .../report/budgetsummary/BudgetSummary.tsx    |    2 +-
 .../rollover/budgetsummary/BudgetSummary.tsx  |    2 +-
 .../src/components/common/Tooltip.tsx         |   76 +
 .../src/components/common/View.tsx            |   11 +-
 .../modals/CategoryGroupMenuModal.tsx         |    7 +-
 .../components/modals/CategoryMenuModal.tsx   |    7 +-
 .../src/components/modals/Notes.tsx           |    6 +-
 .../src/components/select/DateSelect.tsx      |   14 +-
 .../src/components/tooltips.tsx               |    4 +-
 packages/desktop-client/src/style/styles.ts   |   15 +-
 packages/loot-core/src/client/query-hooks.tsx |    5 +-
 .../loot-core/src/types/models/index.d.ts     |    1 +
 packages/loot-core/src/types/models/note.d.ts |    4 +
 upcoming-release-notes/2493.md                |    6 +
 yarn.lock                                     | 1881 ++++++++++++++---
 17 files changed, 1815 insertions(+), 365 deletions(-)
 create mode 100644 packages/desktop-client/src/components/common/Tooltip.tsx
 create mode 100644 packages/loot-core/src/types/models/note.d.ts
 create mode 100644 upcoming-release-notes/2493.md

diff --git a/packages/desktop-client/package.json b/packages/desktop-client/package.json
index d9f0fb500..3e7375494 100644
--- a/packages/desktop-client/package.json
+++ b/packages/desktop-client/package.json
@@ -44,6 +44,7 @@
     "memoize-one": "^6.0.0",
     "pikaday": "1.8.2",
     "react": "18.2.0",
+    "react-aria-components": "^1.1.1",
     "react-dnd": "^16.0.1",
     "react-dnd-html5-backend": "^16.0.1",
     "react-dom": "18.2.0",
diff --git a/packages/desktop-client/src/components/NotesButton.tsx b/packages/desktop-client/src/components/NotesButton.tsx
index c68299cea..31868f521 100644
--- a/packages/desktop-client/src/components/NotesButton.tsx
+++ b/packages/desktop-client/src/components/NotesButton.tsx
@@ -1,49 +1,25 @@
-// @ts-strict-ignore
-import React, { useState } from 'react';
+import React, { useEffect, useRef, useState, type ComponentProps } from 'react';
+import { Popover } from 'react-aria-components';
 
 import { useLiveQuery } from 'loot-core/src/client/query-hooks';
 import { send } from 'loot-core/src/platform/client/fetch';
 import { q } from 'loot-core/src/shared/query';
+import { type NoteEntity } from 'loot-core/types/models';
 
 import { SvgCustomNotesPaper } from '../icons/v2';
-import { type CSSProperties, theme } from '../style';
+import { type CSSProperties, styles, theme } from '../style';
 
 import { Button } from './common/Button';
+import { Tooltip } from './common/Tooltip';
 import { View } from './common/View';
 import { Notes } from './Notes';
-import { Tooltip, type TooltipPosition, useTooltip } from './tooltips';
-
-type NotesTooltipProps = {
-  editable?: boolean;
-  defaultNotes?: string;
-  position?: TooltipPosition;
-  onClose?: (notes: string) => void;
-};
-function NotesTooltip({
-  editable,
-  defaultNotes,
-  position = 'bottom-left',
-  onClose,
-}: NotesTooltipProps) {
-  const [notes, setNotes] = useState<string>(defaultNotes);
-  return (
-    <Tooltip position={position} onClose={() => onClose(notes)}>
-      <Notes
-        notes={notes}
-        editable={editable}
-        focused={editable}
-        onChange={setNotes}
-      />
-    </Tooltip>
-  );
-}
 
 type NotesButtonProps = {
   id: string;
   width?: number;
   height?: number;
   defaultColor?: string;
-  tooltipPosition?: TooltipPosition;
+  tooltipPosition?: ComponentProps<typeof Tooltip>['placement'];
   style?: CSSProperties;
 };
 export function NotesButton({
@@ -51,66 +27,64 @@ export function NotesButton({
   width = 12,
   height = 12,
   defaultColor = theme.buttonNormalText,
-  tooltipPosition,
+  tooltipPosition = 'bottom start',
   style,
 }: NotesButtonProps) {
-  const [hover, setHover] = useState(false);
-  const tooltip = useTooltip();
-  const data = useLiveQuery(() => q('notes').filter({ id }).select('*'), [id]);
-  const note = data && data.length > 0 ? data[0].note : null;
+  const triggerRef = useRef(null);
+  const [isOpen, setIsOpen] = useState<boolean>(false);
+  const data = useLiveQuery<NoteEntity[]>(
+    () => q('notes').filter({ id }).select('*'),
+    [id],
+  );
+  const note = data && data.length > 0 ? data[0].note : '';
   const hasNotes = note && note !== '';
 
-  function onClose(notes) {
-    send('notes-save', { id, note: notes });
-    tooltip.close();
-  }
-
-  const [delayHandler, setDelayHandler] = useState(null);
-
-  const handleMouseEnter = () => {
-    setDelayHandler(
-      setTimeout(() => {
-        setHover(true);
-      }, 300),
-    );
-  };
-
-  const handleMouseLeave = () => {
-    clearTimeout(delayHandler);
-    setHover(false);
-  };
+  const [tempNotes, setTempNotes] = useState<string>(note);
+  useEffect(() => setTempNotes(note), [note]);
 
-  // This account for both the tooltip hover, and editing tooltip
-  const tooltipOpen = tooltip.isOpen || (hasNotes && hover);
+  function onClose() {
+    send('notes-save', { id, note: tempNotes });
+    setIsOpen(false);
+  }
 
   return (
-    <View
-      style={{ flexShrink: 0 }}
-      onMouseEnter={handleMouseEnter}
-      onMouseLeave={handleMouseLeave}
+    <Tooltip
+      content={<Notes notes={note} />}
+      placement={tooltipPosition}
+      triggerProps={{
+        isDisabled: !hasNotes || isOpen,
+      }}
     >
-      <Button
-        type="bare"
-        aria-label="View notes"
-        className={!hasNotes && !tooltipOpen ? 'hover-visible' : ''}
-        style={{
-          color: defaultColor,
-          ...style,
-          ...(hasNotes && { display: 'flex !important' }),
-          ...(tooltipOpen && { color: theme.buttonNormalText }),
-        }}
-        {...tooltip.getOpenEvents()}
+      <View style={{ flexShrink: 0 }}>
+        <Button
+          ref={triggerRef}
+          type="bare"
+          aria-label="View notes"
+          className={!hasNotes && !isOpen ? 'hover-visible' : ''}
+          style={{
+            color: defaultColor,
+            ...style,
+            ...(hasNotes && { display: 'flex !important' }),
+            ...(isOpen && { color: theme.buttonNormalText }),
+          }}
+          onClick={event => {
+            event.stopPropagation();
+            setIsOpen(true);
+          }}
+        >
+          <SvgCustomNotesPaper style={{ width, height }} />
+        </Button>
+      </View>
+
+      <Popover
+        triggerRef={triggerRef}
+        isOpen={isOpen}
+        onOpenChange={onClose}
+        placement={tooltipPosition}
+        style={{ ...styles.tooltip, marginTop: -8 }}
       >
-        <SvgCustomNotesPaper style={{ width, height }} />
-      </Button>
-      {tooltipOpen && (
-        <NotesTooltip
-          editable={tooltip.isOpen}
-          defaultNotes={note}
-          position={tooltipPosition}
-          onClose={onClose}
-        />
-      )}
-    </View>
+        <Notes notes={tempNotes} editable focused onChange={setTempNotes} />
+      </Popover>
+    </Tooltip>
   );
 }
diff --git a/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx b/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx
index 748367c88..963378911 100644
--- a/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx
+++ b/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx
@@ -127,7 +127,7 @@ export function BudgetSummary({ month }: BudgetSummaryProps) {
                 id={`budget-${month}`}
                 width={15}
                 height={15}
-                tooltipPosition="bottom-right"
+                tooltipPosition="bottom right"
                 defaultColor={theme.pageTextLight}
               />
             </View>
diff --git a/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx b/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx
index 5a2a70c81..2f9a25d45 100644
--- a/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx
@@ -129,7 +129,7 @@ export function BudgetSummary({
                 id={`budget-${month}`}
                 width={15}
                 height={15}
-                tooltipPosition="bottom-right"
+                tooltipPosition="bottom right"
                 defaultColor={theme.tableTextLight}
               />
             </View>
diff --git a/packages/desktop-client/src/components/common/Tooltip.tsx b/packages/desktop-client/src/components/common/Tooltip.tsx
new file mode 100644
index 000000000..050741284
--- /dev/null
+++ b/packages/desktop-client/src/components/common/Tooltip.tsx
@@ -0,0 +1,76 @@
+import React, {
+  useCallback,
+  useEffect,
+  useRef,
+  useState,
+  type ComponentProps,
+  type ReactNode,
+} from 'react';
+import { Tooltip as AriaTooltip, TooltipTrigger } from 'react-aria-components';
+
+import { styles } from '../../style';
+
+import { View } from './View';
+
+type TooltipProps = Partial<ComponentProps<typeof AriaTooltip>> & {
+  children: ReactNode;
+  content: ReactNode;
+  triggerProps?: Partial<ComponentProps<typeof TooltipTrigger>>;
+};
+
+export const Tooltip = ({
+  children,
+  content,
+  triggerProps = {},
+  ...props
+}: TooltipProps) => {
+  const triggerRef = useRef(null);
+  const [hover, setHover] = useState(false);
+
+  const [delayHandler, setDelayHandler] = useState<ReturnType<
+    typeof setTimeout
+  > | null>(null);
+
+  const handleMouseEnter = useCallback(() => {
+    const timeout = setTimeout(() => {
+      setHover(true);
+    }, triggerProps.delay ?? 300);
+
+    setDelayHandler(timeout);
+    return () => {
+      clearTimeout(timeout);
+    };
+  }, [triggerProps.delay]);
+
+  const handleMouseLeave = useCallback(() => {
+    if (delayHandler) {
+      clearTimeout(delayHandler);
+    }
+
+    setHover(false);
+  }, [delayHandler]);
+
+  // Force closing the tooltip whenever the disablement state changes
+  useEffect(() => {
+    setHover(false);
+  }, [triggerProps.isDisabled]);
+
+  return (
+    <View
+      ref={triggerRef}
+      onMouseEnter={handleMouseEnter}
+      onMouseLeave={handleMouseLeave}
+    >
+      <TooltipTrigger
+        isOpen={hover && !triggerProps.isDisabled}
+        {...triggerProps}
+      >
+        {children}
+
+        <AriaTooltip triggerRef={triggerRef} style={styles.tooltip} {...props}>
+          {content}
+        </AriaTooltip>
+      </TooltipTrigger>
+    </View>
+  );
+};
diff --git a/packages/desktop-client/src/components/common/View.tsx b/packages/desktop-client/src/components/common/View.tsx
index ea5a0f689..9a35e5335 100644
--- a/packages/desktop-client/src/components/common/View.tsx
+++ b/packages/desktop-client/src/components/common/View.tsx
@@ -1,4 +1,5 @@
 import React, {
+  forwardRef,
   type HTMLProps,
   type Ref,
   type StyleHTMLAttributes,
@@ -8,14 +9,14 @@ import { css } from 'glamor';
 
 import { type CSSProperties } from '../../style';
 
-export type ViewProps = HTMLProps<HTMLDivElement> & {
+type ViewProps = HTMLProps<HTMLDivElement> & {
   className?: string;
   style?: CSSProperties;
   nativeStyle?: StyleHTMLAttributes<HTMLDivElement>;
   innerRef?: Ref<HTMLDivElement>;
 };
 
-export const View = (props: ViewProps) => {
+export const View = forwardRef<HTMLDivElement, ViewProps>((props, ref) => {
   // The default styles are special-cased and pulled out into static
   // styles, and hardcode the class name here. View is used almost
   // everywhere and we can avoid any perf penalty that glamor would
@@ -25,9 +26,11 @@ export const View = (props: ViewProps) => {
   return (
     <div
       {...restProps}
-      ref={innerRef}
+      ref={innerRef ?? ref}
       style={nativeStyle}
       className={`view ${className} ${css(style)}`}
     />
   );
-};
+});
+
+View.displayName = 'View';
diff --git a/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx b/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx
index c963e668f..26546d3c3 100644
--- a/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx
+++ b/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx
@@ -3,7 +3,10 @@ import React, { type ComponentProps, useState } from 'react';
 
 import { useLiveQuery } from 'loot-core/src/client/query-hooks';
 import { q } from 'loot-core/src/shared/query';
-import { type CategoryGroupEntity } from 'loot-core/src/types/models';
+import {
+  type CategoryGroupEntity,
+  type NoteEntity,
+} from 'loot-core/src/types/models';
 
 import { useCategories } from '../../hooks/useCategories';
 import { SvgDotsHorizontalTriple, SvgAdd, SvgTrash } from '../../icons/v1';
@@ -39,7 +42,7 @@ export function CategoryGroupMenuModal({
 }: CategoryGroupMenuModalProps) {
   const { grouped: categoryGroups } = useCategories();
   const group = categoryGroups.find(g => g.id === groupId);
-  const data = useLiveQuery(
+  const data = useLiveQuery<NoteEntity[]>(
     () => q('notes').filter({ id: group.id }).select('*'),
     [group.id],
   );
diff --git a/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx b/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx
index a67c11889..449c97fa2 100644
--- a/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx
+++ b/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx
@@ -3,7 +3,10 @@ import React, { useState } from 'react';
 
 import { useLiveQuery } from 'loot-core/src/client/query-hooks';
 import { q } from 'loot-core/src/shared/query';
-import { type CategoryEntity } from 'loot-core/src/types/models';
+import {
+  type CategoryEntity,
+  type NoteEntity,
+} from 'loot-core/src/types/models';
 
 import { useCategories } from '../../hooks/useCategories';
 import { SvgDotsHorizontalTriple, SvgTrash } from '../../icons/v1';
@@ -36,7 +39,7 @@ export function CategoryMenuModal({
 }: CategoryMenuModalProps) {
   const { list: categories } = useCategories();
   const category = categories.find(c => c.id === categoryId);
-  const data = useLiveQuery(
+  const data = useLiveQuery<NoteEntity[]>(
     () => q('notes').filter({ id: category.id }).select('*'),
     [category.id],
   );
diff --git a/packages/desktop-client/src/components/modals/Notes.tsx b/packages/desktop-client/src/components/modals/Notes.tsx
index 2bed713f0..47815e4d0 100644
--- a/packages/desktop-client/src/components/modals/Notes.tsx
+++ b/packages/desktop-client/src/components/modals/Notes.tsx
@@ -3,6 +3,7 @@ import React, { useEffect, useState } from 'react';
 
 import { useLiveQuery } from 'loot-core/src/client/query-hooks';
 import { q } from 'loot-core/src/shared/query';
+import { type NoteEntity } from 'loot-core/types/models';
 
 import { SvgCheck } from '../../icons/v2';
 import { Button } from '../common/Button';
@@ -19,7 +20,10 @@ type NotesProps = {
 };
 
 export function Notes({ modalProps, id, name, onSave }: NotesProps) {
-  const data = useLiveQuery(() => q('notes').filter({ id }).select('*'), [id]);
+  const data = useLiveQuery<NoteEntity[]>(
+    () => q('notes').filter({ id }).select('*'),
+    [id],
+  );
   const originalNotes = data && data.length > 0 ? data[0].note : null;
 
   const [notes, setNotes] = useState(originalNotes);
diff --git a/packages/desktop-client/src/components/select/DateSelect.tsx b/packages/desktop-client/src/components/select/DateSelect.tsx
index cd3a4b9f3..ba3e5431b 100644
--- a/packages/desktop-client/src/components/select/DateSelect.tsx
+++ b/packages/desktop-client/src/components/select/DateSelect.tsx
@@ -1,15 +1,15 @@
 // @ts-strict-ignore
 import React, {
   forwardRef,
-  useState,
-  useRef,
   useEffect,
-  useLayoutEffect,
   useImperativeHandle,
+  useLayoutEffect,
   useMemo,
-  type MutableRefObject,
-  type KeyboardEvent,
+  useRef,
+  useState,
   type ComponentProps,
+  type KeyboardEvent,
+  type MutableRefObject,
 } from 'react';
 
 import { parse, parseISO, format, subDays, addDays, isValid } from 'date-fns';
@@ -29,7 +29,7 @@ import { stringToInteger } from 'loot-core/src/shared/util';
 import { useLocalPref } from '../../hooks/useLocalPref';
 import { type CSSProperties, theme } from '../../style';
 import { Input } from '../common/Input';
-import { View, type ViewProps } from '../common/View';
+import { View } from '../common/View';
 import { Tooltip } from '../tooltips';
 
 import DateSelectLeft from './DateSelect.left.png';
@@ -172,7 +172,7 @@ function defaultShouldSaveFromKey(e) {
 }
 
 type DateSelectProps = {
-  containerProps?: ViewProps;
+  containerProps?: ComponentProps<typeof View>;
   inputProps?: ComponentProps<typeof Input>;
   tooltipStyle?: CSSProperties;
   value: string;
diff --git a/packages/desktop-client/src/components/tooltips.tsx b/packages/desktop-client/src/components/tooltips.tsx
index eb95166a8..e17a6dba0 100644
--- a/packages/desktop-client/src/components/tooltips.tsx
+++ b/packages/desktop-client/src/components/tooltips.tsx
@@ -18,6 +18,7 @@ import { type CSSProperties, styles, theme } from '../style';
 
 export const IntersectionBoundary = createContext<RefObject<HTMLElement>>(null);
 
+// @deprecated: please use `Tooltip` component in `common` folder
 export function useTooltip() {
   const [isOpen, setIsOpen] = useState<boolean>(false);
 
@@ -35,7 +36,7 @@ export function useTooltip() {
   };
 }
 
-export type TooltipPosition =
+type TooltipPosition =
   | 'top'
   | 'top-left'
   | 'top-right'
@@ -69,6 +70,7 @@ type MutableDomRect = {
   height: number;
 };
 
+// @deprecated: please use `Tooltip` component in `common` folder
 export class Tooltip extends Component<TooltipProps> {
   static contextType = IntersectionBoundary;
   position: TooltipPosition;
diff --git a/packages/desktop-client/src/style/styles.ts b/packages/desktop-client/src/style/styles.ts
index 7f051af22..fb5010b71 100644
--- a/packages/desktop-client/src/style/styles.ts
+++ b/packages/desktop-client/src/style/styles.ts
@@ -10,6 +10,10 @@ import { type CSSProperties } from './types';
 
 const MOBILE_MIN_HEIGHT = 40;
 
+const shadowLarge = {
+  boxShadow: '0 15px 30px 0 rgba(0,0,0,0.11), 0 5px 15px 0 rgba(0,0,0,0.08)',
+};
+
 export const styles = {
   incomeHeaderHeight: 70,
   cardShadow: '0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)',
@@ -85,9 +89,7 @@ export const styles = {
   shadow: {
     boxShadow: '0 2px 4px 0 rgba(0,0,0,0.1)',
   },
-  shadowLarge: {
-    boxShadow: '0 15px 30px 0 rgba(0,0,0,0.11), 0 5px 15px 0 rgba(0,0,0,0.08)',
-  },
+  shadowLarge,
   tnum: {
     // eslint-disable-next-line rulesdir/typography
     fontFeatureSettings: '"tnum"',
@@ -127,6 +129,13 @@ export const styles = {
       wordBreak: 'break-word',
     };
   },
+  tooltip: {
+    padding: 5,
+    ...shadowLarge,
+    borderRadius: 4,
+    backgroundColor: theme.menuBackground,
+    color: theme.menuItemText,
+  },
   // Dynamically set
   lightScrollbar: null as CSSProperties | null,
   darkScrollbar: null as CSSProperties | null,
diff --git a/packages/loot-core/src/client/query-hooks.tsx b/packages/loot-core/src/client/query-hooks.tsx
index 1b5853bbb..ecfeddfd4 100644
--- a/packages/loot-core/src/client/query-hooks.tsx
+++ b/packages/loot-core/src/client/query-hooks.tsx
@@ -70,7 +70,10 @@ export function liveQueryContext(query, opts?) {
   return makeContext(query, opts, LiveQuery);
 }
 
-export function useLiveQuery(makeQuery: () => Query, deps: DependencyList) {
+export function useLiveQuery<Response = unknown>(
+  makeQuery: () => Query,
+  deps: DependencyList,
+): Response {
   const [data, setData] = useState(null);
   const query = useMemo(makeQuery, deps);
 
diff --git a/packages/loot-core/src/types/models/index.d.ts b/packages/loot-core/src/types/models/index.d.ts
index 307dac6b6..2b16ebf4c 100644
--- a/packages/loot-core/src/types/models/index.d.ts
+++ b/packages/loot-core/src/types/models/index.d.ts
@@ -2,6 +2,7 @@ export type * from './account';
 export type * from './category';
 export type * from './category-group';
 export type * from './gocardless';
+export type * from './note';
 export type * from './payee';
 export type * from './reports';
 export type * from './rule';
diff --git a/packages/loot-core/src/types/models/note.d.ts b/packages/loot-core/src/types/models/note.d.ts
new file mode 100644
index 000000000..d66bd640e
--- /dev/null
+++ b/packages/loot-core/src/types/models/note.d.ts
@@ -0,0 +1,4 @@
+export type NoteEntity = {
+  id: string;
+  note: string;
+};
diff --git a/upcoming-release-notes/2493.md b/upcoming-release-notes/2493.md
new file mode 100644
index 000000000..bd5c45943
--- /dev/null
+++ b/upcoming-release-notes/2493.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [MatissJanis]
+---
+
+Refactor `Tooltip` component for notes button - use react-aria component.
diff --git a/yarn.lock b/yarn.lock
index 24ad8f63a..3016c10bd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -96,6 +96,7 @@ __metadata:
     memoize-one: "npm:^6.0.0"
     pikaday: "npm:1.8.2"
     react: "npm:18.2.0"
+    react-aria-components: "npm:^1.1.1"
     react-dnd: "npm:^16.0.1"
     react-dnd-html5-backend: "npm:^16.0.1"
     react-dom: "npm:18.2.0"
@@ -2187,40 +2188,40 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@internationalized/date@npm:^3.5.1":
-  version: 3.5.1
-  resolution: "@internationalized/date@npm:3.5.1"
+"@internationalized/date@npm:^3.5.2":
+  version: 3.5.2
+  resolution: "@internationalized/date@npm:3.5.2"
   dependencies:
     "@swc/helpers": "npm:^0.5.0"
-  checksum: 38bce4ca2123dc4a3a7ef62ea44a86e0619764d42c3895ae5f0c4f17e7320dc945d61691dd0bc0f4dff6cda834113d1fe55253afebf4a46bf21e7b0e9f890096
+  checksum: e37cdea4efa6214e72148f55f42782b3e8cd40bdca29705e52e6c490855f9ccbf38d0182632be005d9555463b50e8bf5fdb0d759cadff1baf7bae4fdaa28e96f
   languageName: node
   linkType: hard
 
-"@internationalized/message@npm:^3.1.1":
-  version: 3.1.1
-  resolution: "@internationalized/message@npm:3.1.1"
+"@internationalized/message@npm:^3.1.2":
+  version: 3.1.2
+  resolution: "@internationalized/message@npm:3.1.2"
   dependencies:
     "@swc/helpers": "npm:^0.5.0"
     intl-messageformat: "npm:^10.1.0"
-  checksum: b73b443e75ab1d95e0d406a75107b1899d221883463de95769f3d63836bf91e7ac1ce07bd141121b9ccb89ff24d469aa424ba47e85b02dc8a8e0827b991bf801
+  checksum: c6b8f9983f1922f27c45586d82500a8fd4e75cab622c367b70047bb9f45749ab8153c77b02fd3da635e3d6649d8609ae6d1df6da710a166361078e32b4516d2e
   languageName: node
   linkType: hard
 
-"@internationalized/number@npm:^3.5.0":
-  version: 3.5.0
-  resolution: "@internationalized/number@npm:3.5.0"
+"@internationalized/number@npm:^3.5.1":
+  version: 3.5.1
+  resolution: "@internationalized/number@npm:3.5.1"
   dependencies:
     "@swc/helpers": "npm:^0.5.0"
-  checksum: 8272b5da8afd4e1379767765f9ef24283e7ccb7c077646ded17fe7de11d72d2fd8f6e41f4ea21f101d084133f670059f062c3929ff18cf171f8f768151502bf5
+  checksum: 4ad68d98285a18a910d19455a0fa9c3960a919a139f0b01d2d589bfda1a2ebb8378b8c912e17c0d82cf756e7b3f48b0bff8a6decef1644c6c2f894da4e1e7c79
   languageName: node
   linkType: hard
 
-"@internationalized/string@npm:^3.2.0":
-  version: 3.2.0
-  resolution: "@internationalized/string@npm:3.2.0"
+"@internationalized/string@npm:^3.2.1":
+  version: 3.2.1
+  resolution: "@internationalized/string@npm:3.2.1"
   dependencies:
     "@swc/helpers": "npm:^0.5.0"
-  checksum: ebe3cf9394baa5cc134eb6956f57785ddaaae79e9f66400783a0560541747fef170a59fd05923dc0c41e3f860343cc1175b3435412a616570d3247199f10c0e0
+  checksum: 69603641a90fee37fc539adc8f3f5cbdd61909da486515bd4580fcce05495a9f0f303e6d8a36a8accb86c95845d84e78b088e4680ca087928b6b588756eb879b
   languageName: node
   linkType: hard
 
@@ -2807,409 +2808,1623 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@reach/observe-rect@npm:1.2.0":
-  version: 1.2.0
-  resolution: "@reach/observe-rect@npm:1.2.0"
-  checksum: 7dd903eeaad0e22c6d973bd26265d91eadba56ab5134701ceb3e85214db75339fae94aa7e8b88a65e8daa64bc7cf1b915d4ffcdfd324466b561dc6adc3c6e070
+"@reach/observe-rect@npm:1.2.0":
+  version: 1.2.0
+  resolution: "@reach/observe-rect@npm:1.2.0"
+  checksum: 7dd903eeaad0e22c6d973bd26265d91eadba56ab5134701ceb3e85214db75339fae94aa7e8b88a65e8daa64bc7cf1b915d4ffcdfd324466b561dc6adc3c6e070
+  languageName: node
+  linkType: hard
+
+"@reach/polymorphic@npm:0.18.0":
+  version: 0.18.0
+  resolution: "@reach/polymorphic@npm:0.18.0"
+  peerDependencies:
+    react: ^16.8.0 || 17.x
+  checksum: 68b432dd9c3750213f0b0748eb81c3cf78b4cbc18274aa0ff9b77519f9fdf62f1c598bcd5c3893a0283be1cc7fb610e6b44edf3aff3f4fe0232c49653334246a
+  languageName: node
+  linkType: hard
+
+"@reach/popover@npm:0.18.0":
+  version: 0.18.0
+  resolution: "@reach/popover@npm:0.18.0"
+  dependencies:
+    "@reach/polymorphic": "npm:0.18.0"
+    "@reach/portal": "npm:0.18.0"
+    "@reach/rect": "npm:0.18.0"
+    "@reach/utils": "npm:0.18.0"
+    tabbable: "npm:^5.3.3"
+  peerDependencies:
+    react: ^16.8.0 || 17.x
+    react-dom: ^16.8.0 || 17.x
+  checksum: 44cbf56a8dc14a9e8d260915afb8f74cd1bf176a9659d78c91f63df99a914920ad886d9e568794785ad5b3257dfd7058b1b35d13f02f6937f872ff1c6aaaed98
+  languageName: node
+  linkType: hard
+
+"@reach/portal@npm:0.18.0":
+  version: 0.18.0
+  resolution: "@reach/portal@npm:0.18.0"
+  dependencies:
+    "@reach/utils": "npm:0.18.0"
+  peerDependencies:
+    react: ^16.8.0 || 17.x
+    react-dom: ^16.8.0 || 17.x
+  checksum: ec4714fae246141f76532beebe68945cdea83c4f425e9dff0db336b820f6e2c67447aaed9f85848f999712d83d6063dcc867a4e2ca12f7a0a8f4faef04ca71a2
+  languageName: node
+  linkType: hard
+
+"@reach/rect@npm:0.18.0":
+  version: 0.18.0
+  resolution: "@reach/rect@npm:0.18.0"
+  dependencies:
+    "@reach/observe-rect": "npm:1.2.0"
+    "@reach/utils": "npm:0.18.0"
+  peerDependencies:
+    react: ^16.8.0 || 17.x
+    react-dom: ^16.8.0 || 17.x
+  checksum: 4d5c0f277cf8a11eed82cf299d9e30b58b85172f8928d92b7f20a249d702ee5b4ee73b1ada78fb328fc0806a55d01129b40a2cc73085584fe1ec1fdbeeb8776f
+  languageName: node
+  linkType: hard
+
+"@reach/utils@npm:0.18.0":
+  version: 0.18.0
+  resolution: "@reach/utils@npm:0.18.0"
+  peerDependencies:
+    react: ^16.8.0 || 17.x
+    react-dom: ^16.8.0 || 17.x
+  checksum: 7686b0cba3653fcddfc49b7887a77c438c1f3d4da35fda0694f771f64669a615129edebf7c62fb2e960c39cb23ab1518a10bb3e818330d57df976de77ada4e5b
+  languageName: node
+  linkType: hard
+
+"@react-aria/breadcrumbs@npm:^3.5.11":
+  version: 3.5.11
+  resolution: "@react-aria/breadcrumbs@npm:3.5.11"
+  dependencies:
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/link": "npm:^3.6.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/breadcrumbs": "npm:^3.7.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: baf8ce4c8a5c85dca93463349fb45a151c91ae90475d28cda119083c45588f28a2e043108bc66d8f9d936eb93829743427b026f31f986069e009f0749c70ae10
+  languageName: node
+  linkType: hard
+
+"@react-aria/button@npm:^3.9.3":
+  version: 3.9.3
+  resolution: "@react-aria/button@npm:3.9.3"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/toggle": "npm:^3.7.2"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: e3c535f00109d7409e1b42e4fc02313f28c7236d3689eb6de2861050c193f51a73dc27b512c8c3c733da7ec4329a7c6ace5a5ea8d75629215e63a9bf625c9db7
+  languageName: node
+  linkType: hard
+
+"@react-aria/calendar@npm:^3.5.6":
+  version: 3.5.6
+  resolution: "@react-aria/calendar@npm:3.5.6"
+  dependencies:
+    "@internationalized/date": "npm:^3.5.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/live-announcer": "npm:^3.3.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/calendar": "npm:^3.4.4"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/calendar": "npm:^3.4.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 85612ff6bcc20150ee33a5e690e581c636435cdab1c48a56e867207b24e64df464bbec87287a2c912aeffd9a43f9dbb4049ac211900f9fe98f4b33ea42cf0489
+  languageName: node
+  linkType: hard
+
+"@react-aria/checkbox@npm:^3.14.1":
+  version: 3.14.1
+  resolution: "@react-aria/checkbox@npm:3.14.1"
+  dependencies:
+    "@react-aria/form": "npm:^3.0.3"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/toggle": "npm:^3.10.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/checkbox": "npm:^3.6.3"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/toggle": "npm:^3.7.2"
+    "@react-types/checkbox": "npm:^3.7.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: d579d277aff110e5cfecf3f4c25b4f635d227104558af5448d18bce32c5a85663d728ac3814347ca3d5c9088a76f09a04ce858e4c2853d7cc4709e4146ab96f1
+  languageName: node
+  linkType: hard
+
+"@react-aria/combobox@npm:^3.8.4":
+  version: 3.8.4
+  resolution: "@react-aria/combobox@npm:3.8.4"
+  dependencies:
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/listbox": "npm:^3.11.5"
+    "@react-aria/live-announcer": "npm:^3.3.2"
+    "@react-aria/menu": "npm:^3.13.1"
+    "@react-aria/overlays": "npm:^3.21.1"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/textfield": "npm:^3.14.3"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/combobox": "npm:^3.8.2"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/combobox": "npm:^3.10.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: abe760b78d4b7de41131816f7939a2fceed9acb1531a2c3e471230f9d2de01661ae891faf01ffe95b426bbe5f29960d7bd7ce7f54631e3d85e51a27556775aad
+  languageName: node
+  linkType: hard
+
+"@react-aria/datepicker@npm:^3.9.3":
+  version: 3.9.3
+  resolution: "@react-aria/datepicker@npm:3.9.3"
+  dependencies:
+    "@internationalized/date": "npm:^3.5.2"
+    "@internationalized/number": "npm:^3.5.1"
+    "@internationalized/string": "npm:^3.2.1"
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/form": "npm:^3.0.3"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/spinbutton": "npm:^3.6.3"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/datepicker": "npm:^3.9.2"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/calendar": "npm:^3.4.4"
+    "@react-types/datepicker": "npm:^3.7.2"
+    "@react-types/dialog": "npm:^3.5.8"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: c6d27d3dd75e9e9fd958d0b08982e8517a49400c02bd37cb75a2e31839b024388d63cb53200cf4a654c83dd61049d5d687f716789ee6d7d915b1b9c45164e9b8
+  languageName: node
+  linkType: hard
+
+"@react-aria/dialog@npm:^3.5.12":
+  version: 3.5.12
+  resolution: "@react-aria/dialog@npm:3.5.12"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/overlays": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/dialog": "npm:^3.5.8"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 3de699980e8582056675fef747746c23f8875940d85bd6dafadacf9e59c0edd0d9b1dc2f011fb1cfbcbdebdf4a2796fa9bc19e953c4c809f671151975031d6bf
+  languageName: node
+  linkType: hard
+
+"@react-aria/dnd@npm:^3.5.3":
+  version: 3.5.3
+  resolution: "@react-aria/dnd@npm:3.5.3"
+  dependencies:
+    "@internationalized/string": "npm:^3.2.1"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/live-announcer": "npm:^3.3.2"
+    "@react-aria/overlays": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/dnd": "npm:^3.2.8"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 6fe1cd94956167bfc0f4aeaab6f87edec082a996d8745dde5113ae09c63d5d70e2b0648cb1357d54e0f7a62b34002f2d6a499bf2486f78ba7f7fbfac6db9aa58
+  languageName: node
+  linkType: hard
+
+"@react-aria/focus@npm:^3.16.0, @react-aria/focus@npm:^3.16.2":
+  version: 3.16.2
+  resolution: "@react-aria/focus@npm:3.16.2"
+  dependencies:
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+    clsx: "npm:^2.0.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: da25d79534443652ed2ad560ce1e56653a28ac5ccbd5a7be2822c11b748f46e8a544f37bea0bff8ad1a82493c77c6f17c418c86c995abe45df36fbe33bae0156
+  languageName: node
+  linkType: hard
+
+"@react-aria/form@npm:^3.0.3":
+  version: 3.0.3
+  resolution: "@react-aria/form@npm:3.0.3"
+  dependencies:
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 2b4f6f7a33c1cfc1f82f05a2433d5bd9dfda93b2dd365c16631fe63c32d113ca11353ae2151274f6b8e1ad3885aecaf569b357b24cf7464b8436ba6785eca2ee
+  languageName: node
+  linkType: hard
+
+"@react-aria/grid@npm:^3.8.8":
+  version: 3.8.8
+  resolution: "@react-aria/grid@npm:3.8.8"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/live-announcer": "npm:^3.3.2"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/grid": "npm:^3.8.5"
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-stately/virtualizer": "npm:^3.6.8"
+    "@react-types/checkbox": "npm:^3.7.1"
+    "@react-types/grid": "npm:^3.2.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 61e1d82b39c8c7638465060826f6bbf19a971294f6060fcdbc13d3b326c696b8cdc2c88d49d07b66f894cb5aaa76ab324cf8ba8e112e894122d330ab6f4b3a58
+  languageName: node
+  linkType: hard
+
+"@react-aria/gridlist@npm:^3.7.5":
+  version: 3.7.5
+  resolution: "@react-aria/gridlist@npm:3.7.5"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/grid": "npm:^3.8.8"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/list": "npm:^3.10.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: dd540ee75105a40a9a1f23dcdea6e6e54d901e823d43a18bc2c1653791cdbf41a375834e9dce6c279703657239cb9651cc9e6c61449e981c0a2d11e260d7abae
+  languageName: node
+  linkType: hard
+
+"@react-aria/i18n@npm:^3.10.2":
+  version: 3.10.2
+  resolution: "@react-aria/i18n@npm:3.10.2"
+  dependencies:
+    "@internationalized/date": "npm:^3.5.2"
+    "@internationalized/message": "npm:^3.1.2"
+    "@internationalized/number": "npm:^3.5.1"
+    "@internationalized/string": "npm:^3.2.1"
+    "@react-aria/ssr": "npm:^3.9.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: e24558e3f659246b59e5a2862a99debec7cd9ec152c74fbfbfc15c0816a77448d455a131790b954697fcc0bf8633bc102c1b27121a8b7043820563c7b5987095
+  languageName: node
+  linkType: hard
+
+"@react-aria/interactions@npm:^3.21.1":
+  version: 3.21.1
+  resolution: "@react-aria/interactions@npm:3.21.1"
+  dependencies:
+    "@react-aria/ssr": "npm:^3.9.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: ca0918dca1ee41e7ac9129eeb5a23f02a9043cae55f0ee381dc93bd763ac31928a809e029e8bd144223b0f44275736b29079d99fbd22891c244f09c50d16665b
+  languageName: node
+  linkType: hard
+
+"@react-aria/label@npm:^3.7.6":
+  version: 3.7.6
+  resolution: "@react-aria/label@npm:3.7.6"
+  dependencies:
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 812c2b4268f10c9927a6bfff6ef44c836afac0468c2a1e48c71fd5644792c9ee25f4d4b1c5a784cbbfa8c0369893ce0ca9eab8b63e9baf5bf255b240414a1c81
+  languageName: node
+  linkType: hard
+
+"@react-aria/link@npm:^3.6.5":
+  version: 3.6.5
+  resolution: "@react-aria/link@npm:3.6.5"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/link": "npm:^3.5.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: efc425d1991799c8577b2d0166def63b389dc58db7f45204bee4a86c16f127f610bf6d543a57eac7cfad5e85941400ea97bddb8e6b688c1da0c13f8893ca7c0c
+  languageName: node
+  linkType: hard
+
+"@react-aria/listbox@npm:^3.11.3, @react-aria/listbox@npm:^3.11.5":
+  version: 3.11.5
+  resolution: "@react-aria/listbox@npm:3.11.5"
+  dependencies:
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/list": "npm:^3.10.3"
+    "@react-types/listbox": "npm:^3.4.7"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: f3f9449c8bfae36b631994ea1beea804711ffae90be7a118c51b862c4a1b40011a504b8ffc537025184acce1ba07a20e4d2f57a1e14d3875b9ec305ea0eab257
+  languageName: node
+  linkType: hard
+
+"@react-aria/live-announcer@npm:^3.3.2":
+  version: 3.3.2
+  resolution: "@react-aria/live-announcer@npm:3.3.2"
+  dependencies:
+    "@swc/helpers": "npm:^0.5.0"
+  checksum: 32af58277cf132970f9974bbc2adc69119be98222757a0e0538a7aa42541d28aad6c084f2b0f0d6b5e8b06727a2ffed61413e448433fbe38a5ff2ce59477f75f
+  languageName: node
+  linkType: hard
+
+"@react-aria/menu@npm:^3.13.1":
+  version: 3.13.1
+  resolution: "@react-aria/menu@npm:3.13.1"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/overlays": "npm:^3.21.1"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/menu": "npm:^3.6.1"
+    "@react-stately/tree": "npm:^3.7.6"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/menu": "npm:^3.9.7"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 16ff5650950580688f752487126f6637f9f4fb0c44c753f205e43d676fb87dede868b013135795ca66b1a9c4e4ba70fc3a9dbcdbeb124c9231bacfa4a90d2360
+  languageName: node
+  linkType: hard
+
+"@react-aria/meter@npm:^3.4.11":
+  version: 3.4.11
+  resolution: "@react-aria/meter@npm:3.4.11"
+  dependencies:
+    "@react-aria/progress": "npm:^3.4.11"
+    "@react-types/meter": "npm:^3.3.7"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 026effea67234eb8b2c424625f09af89133947b1cb00a80cddfaa0ad41b14ccb304e707b10162f2e0adfb56b0610b519b0b86ba2d4f640388b1e75db2dda7ea4
+  languageName: node
+  linkType: hard
+
+"@react-aria/numberfield@npm:^3.11.1":
+  version: 3.11.1
+  resolution: "@react-aria/numberfield@npm:3.11.1"
+  dependencies:
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/spinbutton": "npm:^3.6.3"
+    "@react-aria/textfield": "npm:^3.14.3"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/numberfield": "npm:^3.9.1"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/numberfield": "npm:^3.8.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 2eec4cd6e19b720e4a7801a13e0c06febcd4efcf58f3b6e89fc84ffc4e72e38ed23321863caa226c3e3dd88572fec11888a6884b788a4d98c20fdfe6a4fcfa1a
+  languageName: node
+  linkType: hard
+
+"@react-aria/overlays@npm:^3.21.1":
+  version: 3.21.1
+  resolution: "@react-aria/overlays@npm:3.21.1"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/ssr": "npm:^3.9.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-aria/visually-hidden": "npm:^3.8.10"
+    "@react-stately/overlays": "npm:^3.6.5"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/overlays": "npm:^3.8.5"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 3143558dfb6e266194c0581475d10827d1296bb517e3cb3b50e4fe09a5e44a5616440a8f857389ab83572bbb507d738976651fcbf8eec9df0730a93aca159eb7
+  languageName: node
+  linkType: hard
+
+"@react-aria/progress@npm:^3.4.11":
+  version: 3.4.11
+  resolution: "@react-aria/progress@npm:3.4.11"
+  dependencies:
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/progress": "npm:^3.5.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 16bc8ce8a33b5bbe0152780f2d1343fb687107323b122e1602e55ac55132d21108be137e7d00f13529356e706e2d24400e78762533c33352b40c6cfc89d7b8d5
+  languageName: node
+  linkType: hard
+
+"@react-aria/radio@npm:^3.10.2":
+  version: 3.10.2
+  resolution: "@react-aria/radio@npm:3.10.2"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/form": "npm:^3.0.3"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/radio": "npm:^3.10.2"
+    "@react-types/radio": "npm:^3.7.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 184287a6d54b9f3a6b7f3f4344fc8eaace617e584a29601fbd87bb96f0d732c660438201c4342900ca6fd05fc3bd29764e26c4346b7dbbd6104cd4ca17cf6150
+  languageName: node
+  linkType: hard
+
+"@react-aria/searchfield@npm:^3.7.3":
+  version: 3.7.3
+  resolution: "@react-aria/searchfield@npm:3.7.3"
+  dependencies:
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/textfield": "npm:^3.14.3"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/searchfield": "npm:^3.5.1"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/searchfield": "npm:^3.5.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 5f85c001e2c677d7f48ffa389d054411644e2f4c584eb3a00e8eb1207d02e7d5da85f03da356670a8f335ab40385a3fcf4263dc1768372aaf9a0b8eafebbb6e3
+  languageName: node
+  linkType: hard
+
+"@react-aria/select@npm:^3.14.3":
+  version: 3.14.3
+  resolution: "@react-aria/select@npm:3.14.3"
+  dependencies:
+    "@react-aria/form": "npm:^3.0.3"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/listbox": "npm:^3.11.5"
+    "@react-aria/menu": "npm:^3.13.1"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-aria/visually-hidden": "npm:^3.8.10"
+    "@react-stately/select": "npm:^3.6.2"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/select": "npm:^3.9.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: d3ddeb22afed02ad323b94420db3b9f87a3f29f9a97a52984d198c48e2465b352897f21dcf0c29eb4f98d078822e8a3c3815c4044c1a8deed21ef87ab1aba791
+  languageName: node
+  linkType: hard
+
+"@react-aria/selection@npm:^3.17.5":
+  version: 3.17.5
+  resolution: "@react-aria/selection@npm:3.17.5"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: d6fb38e79a2cac200dc46f22cdf1131188cbbe765a28d815b3503166339987bdebb37ba79b9f4abecdd8b83c2b26669064b8dbfc8913a665105a444d21cab0e5
+  languageName: node
+  linkType: hard
+
+"@react-aria/separator@npm:^3.3.11":
+  version: 3.3.11
+  resolution: "@react-aria/separator@npm:3.3.11"
+  dependencies:
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: e11e5b60a899da3b71c3afb23c666f7ac96090fadcd12b1d03ba278c80b8124023ddcff0d9628a3679db78d315c56d533172c032d87df429e8d8f40bd45991e5
+  languageName: node
+  linkType: hard
+
+"@react-aria/slider@npm:^3.7.6":
+  version: 3.7.6
+  resolution: "@react-aria/slider@npm:3.7.6"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/slider": "npm:^3.5.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/slider": "npm:^3.7.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 9cbec4465cc099192ff17075c1cf10660b1567dbfe31a674aa76e16658163cc32af0c5009ca54ed728085d277e462d44852821be166e396a9f44a7cf0a5918ad
+  languageName: node
+  linkType: hard
+
+"@react-aria/spinbutton@npm:^3.6.3":
+  version: 3.6.3
+  resolution: "@react-aria/spinbutton@npm:3.6.3"
+  dependencies:
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/live-announcer": "npm:^3.3.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: ad39a9408cf1f8cbd7aae64161a3150bea3711b55d78b724c21e17ce46cfe3fb3bcecd31a15d4f380004e5d593c10f91a36ec3be0ff271a049792ef674cf6f0e
+  languageName: node
+  linkType: hard
+
+"@react-aria/ssr@npm:^3.9.2":
+  version: 3.9.2
+  resolution: "@react-aria/ssr@npm:3.9.2"
+  dependencies:
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: fe4ce0ccc647d14f158724c0605433291f1403a73c82cb6654c323b5153fa3afbf0d36618bb3ecac38217b56837c27490c32b7d2082034b1171de6e95a4382a8
+  languageName: node
+  linkType: hard
+
+"@react-aria/switch@npm:^3.6.2":
+  version: 3.6.2
+  resolution: "@react-aria/switch@npm:3.6.2"
+  dependencies:
+    "@react-aria/toggle": "npm:^3.10.2"
+    "@react-stately/toggle": "npm:^3.7.2"
+    "@react-types/switch": "npm:^3.5.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 6eb2268652b92e3d156a1d63e5490ce3527f592b6f310ad725fa06379c5629d4db430b0f7482996ea8b0581db2e6dd083f132c84ae31401d4dcb8393806e61d3
+  languageName: node
+  linkType: hard
+
+"@react-aria/table@npm:^3.13.5":
+  version: 3.13.5
+  resolution: "@react-aria/table@npm:3.13.5"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/grid": "npm:^3.8.8"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/live-announcer": "npm:^3.3.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-aria/visually-hidden": "npm:^3.8.10"
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/flags": "npm:^3.0.1"
+    "@react-stately/table": "npm:^3.11.6"
+    "@react-stately/virtualizer": "npm:^3.6.8"
+    "@react-types/checkbox": "npm:^3.7.1"
+    "@react-types/grid": "npm:^3.2.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/table": "npm:^3.9.3"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 1b7bd3269f38ea745bc5e7356eb81139d6238e039d7e7fbfc43db5ecfabd27d15c6b1251b44cf1f2921ac4e5c82d0b8767ac839c5f4e724ba326c59bd1ed4c2e
+  languageName: node
+  linkType: hard
+
+"@react-aria/tabs@npm:^3.8.5":
+  version: 3.8.5
+  resolution: "@react-aria/tabs@npm:3.8.5"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/tabs": "npm:^3.6.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/tabs": "npm:^3.3.5"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 9a2c569c167c378cec709d1a38cbf628f14ae152c2cfbb0160c883212dd20c03657b172c880f2db79ae5b88e145210ddd150f4920ce2179702f9ba1ea7f501f8
+  languageName: node
+  linkType: hard
+
+"@react-aria/tag@npm:^3.3.3":
+  version: 3.3.3
+  resolution: "@react-aria/tag@npm:3.3.3"
+  dependencies:
+    "@react-aria/gridlist": "npm:^3.7.5"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/list": "npm:^3.10.3"
+    "@react-types/button": "npm:^3.9.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  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
+  checksum: 10aee2f83c1c5ae0a4954c50b8d3153708944ad391bdcf3f4deb0be87bb229a78834cafa9cd860988f3fc3d7a4757cff161becb7d761b4db98b2e280ba6d9e7c
+  languageName: node
+  linkType: hard
+
+"@react-aria/textfield@npm:^3.14.3":
+  version: 3.14.3
+  resolution: "@react-aria/textfield@npm:3.14.3"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/form": "npm:^3.0.3"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/textfield": "npm:^3.9.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: db3ac87112d4da65762805247c7eace92cede25855d589e61a8e00ae0a7593ca6778ddb5d15f3499ff294153f356de6a12bb679d49f3848592df57fd8b4929d6
+  languageName: node
+  linkType: hard
+
+"@react-aria/toggle@npm:^3.10.2":
+  version: 3.10.2
+  resolution: "@react-aria/toggle@npm:3.10.2"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/toggle": "npm:^3.7.2"
+    "@react-types/checkbox": "npm:^3.7.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: fd402ca7e83674dcecfb95e18075bece6dbf49250610ac8260ee6543f651d8c07042110ec368747cc1bd82a0915f5e900df5c3a5c6fc55dd244f161661eb5c5b
+  languageName: node
+  linkType: hard
+
+"@react-aria/toolbar@npm:3.0.0-beta.3":
+  version: 3.0.0-beta.3
+  resolution: "@react-aria/toolbar@npm:3.0.0-beta.3"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 4d6541aa2ce3126c0705aa9edd44a305c7a37818c915ddd06efd1812f258b1d3a515225b651af4973ed2aa41268607338a9c929128fa9eaeab0510fd7b25717c
+  languageName: node
+  linkType: hard
+
+"@react-aria/tooltip@npm:^3.7.2":
+  version: 3.7.2
+  resolution: "@react-aria/tooltip@npm:3.7.2"
+  dependencies:
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/tooltip": "npm:^3.4.7"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/tooltip": "npm:^3.4.7"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 2f7017b97b01c612ef9e04b10275df0f52df1eaa581910754210f3d250e369596b740befbdac117c4a1ff3df39b4a9cbc9d5c5c5397adc5f261bb4394a3e8f04
+  languageName: node
+  linkType: hard
+
+"@react-aria/utils@npm:^3.23.0, @react-aria/utils@npm:^3.23.2":
+  version: 3.23.2
+  resolution: "@react-aria/utils@npm:3.23.2"
+  dependencies:
+    "@react-aria/ssr": "npm:^3.9.2"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+    clsx: "npm:^2.0.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 132ac6e2e6f5eb7469a52ebc5a909ad2bdb8606b835c0cc8e5320447dc3cd34f8d0ed3441a75827ae1cd91bef435c0c6e463fec72fe4fa5fe565c7d87576301d
+  languageName: node
+  linkType: hard
+
+"@react-aria/visually-hidden@npm:^3.8.10":
+  version: 3.8.10
+  resolution: "@react-aria/visually-hidden@npm:3.8.10"
+  dependencies:
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: a7f9d8dccfeefb035d01ad8d9db4576f6acf7f0fcb94aad717cec177f113f6507f0dca0c7ee157abe40b358685b4cb84f9bce0c24dab2af753698ec8c1504264
+  languageName: node
+  linkType: hard
+
+"@react-dnd/asap@npm:^5.0.1":
+  version: 5.0.2
+  resolution: "@react-dnd/asap@npm:5.0.2"
+  checksum: a75039720b89da11bc678c2b61b1d2840c8349023ef2b8f8ca9099e7ece6953e9be704bf393bf799eae83d245f62115eb5302499612c2aa009c1d91caa9462df
+  languageName: node
+  linkType: hard
+
+"@react-dnd/invariant@npm:^4.0.1":
+  version: 4.0.2
+  resolution: "@react-dnd/invariant@npm:4.0.2"
+  checksum: b638e9643e6e93da03ef463be3c1b92055daadc391fc08e4ce8639ef8c7738f91058ec83ee52a0d0df0d3a6dd2811a7703e1450737708f043c2e909c0a99dd31
+  languageName: node
+  linkType: hard
+
+"@react-dnd/shallowequal@npm:^4.0.1":
+  version: 4.0.2
+  resolution: "@react-dnd/shallowequal@npm:4.0.2"
+  checksum: 7f21d691bddbfd4d2830948cbeefecca1600b2b46bcb1934926795f07ae8a1fa60a3dfd3a2112be5ef682c3820c80a99711e9fa15843f7e300acb25a4ecb70ab
+  languageName: node
+  linkType: hard
+
+"@react-spring/animated@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/animated@npm:9.7.3"
+  dependencies:
+    "@react-spring/shared": "npm:~9.7.3"
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+  checksum: 75c427e810b05ef508ac81695e3410619bcc8b8b87e232eb6fa05a91155bb6a558b324937fcaacb9b2002fdffb557de97ee5f6f6b226c53f5f356f62559f89a1
+  languageName: node
+  linkType: hard
+
+"@react-spring/core@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/core@npm:9.7.3"
+  dependencies:
+    "@react-spring/animated": "npm:~9.7.3"
+    "@react-spring/shared": "npm:~9.7.3"
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+  checksum: 91102271531eae8fc146b8847ae6dbc03ebfbab5816529b9bfdd71e6d922ea07361fcbc57b404de57dac2f719246876f94539c04e2f314b3c767ad33d8d4f984
+  languageName: node
+  linkType: hard
+
+"@react-spring/konva@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/konva@npm:9.7.3"
+  dependencies:
+    "@react-spring/animated": "npm:~9.7.3"
+    "@react-spring/core": "npm:~9.7.3"
+    "@react-spring/shared": "npm:~9.7.3"
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    konva: ">=2.6"
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+    react-konva: ^16.8.0 || ^16.8.7-0 || ^16.9.0-0 || ^16.10.1-0 || ^16.12.0-0 || ^16.13.0-0 || ^17.0.0-0 || ^17.0.1-0 || ^17.0.2-0 || ^18.0.0-0
+  checksum: e6cc925fb74abfeea6247bd92232d764f671b51cf2aa0b7dd09eb134bf24230b968bc9f9bb0cf63bedaedf95d85fc5a0eb79b757213fa9e7cabf0d2dee4e82b1
+  languageName: node
+  linkType: hard
+
+"@react-spring/native@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/native@npm:9.7.3"
+  dependencies:
+    "@react-spring/animated": "npm:~9.7.3"
+    "@react-spring/core": "npm:~9.7.3"
+    "@react-spring/shared": "npm:~9.7.3"
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    react: ^16.8.0  || >=17.0.0 || >=18.0.0
+    react-native: ">=0.58"
+  checksum: df78b2f660aa30166f0fdd860b958df0d53ad4ad229b7f5357d3cd7945351e79b0a722761c9e2a482a15856021bebf458cd0a815860bbe1b8d64e72051c87c23
+  languageName: node
+  linkType: hard
+
+"@react-spring/shared@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/shared@npm:9.7.3"
+  dependencies:
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+  checksum: 76e44fe8ad63c83861a8453e26d085c69a40f0e5865ca2af7d2fecacb030e59ebe6db5f8e7ef8b1a6b6e193cc3c1c6fd3d5172b10bf216b205844e6d3e90e860
+  languageName: node
+  linkType: hard
+
+"@react-spring/three@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/three@npm:9.7.3"
+  dependencies:
+    "@react-spring/animated": "npm:~9.7.3"
+    "@react-spring/core": "npm:~9.7.3"
+    "@react-spring/shared": "npm:~9.7.3"
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    "@react-three/fiber": ">=6.0"
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+    three: ">=0.126"
+  checksum: 7fde4d5cea2ad7b4e15089c0464799b857662a5a97537fc85f82ee7777f187945f32cf70c4609111a4557e46dbe475d1328325841a8825c0f5ded21ea49d7599
+  languageName: node
+  linkType: hard
+
+"@react-spring/types@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/types@npm:9.7.3"
+  checksum: fcaf5fe02ae3e56a07f340dd5a0a17e9c283ff7deab8b6549ff513ef2f5ad57e0218d448b5331e422cfa739b40f0de3511e7b3f3e73ae8690496cda5bb984854
+  languageName: node
+  linkType: hard
+
+"@react-spring/web@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/web@npm:9.7.3"
+  dependencies:
+    "@react-spring/animated": "npm:~9.7.3"
+    "@react-spring/core": "npm:~9.7.3"
+    "@react-spring/shared": "npm:~9.7.3"
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+    react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+  checksum: 65c71e28ef1197d2afdc053d776b6bd1db6b5558d50849d78c7fc665c3ed1bbd08850fabfceba2223f8660915301aaea18588ebee2429e7b6de99a2640335bbe
+  languageName: node
+  linkType: hard
+
+"@react-spring/zdog@npm:~9.7.3":
+  version: 9.7.3
+  resolution: "@react-spring/zdog@npm:9.7.3"
+  dependencies:
+    "@react-spring/animated": "npm:~9.7.3"
+    "@react-spring/core": "npm:~9.7.3"
+    "@react-spring/shared": "npm:~9.7.3"
+    "@react-spring/types": "npm:~9.7.3"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+    react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+    react-zdog: ">=1.0"
+    zdog: ">=1.0"
+  checksum: 26f2f61f7829f2bd394b5688c9a6bf110430c4f6ade45ae52dcc53f95451c4d99a6c6c6c649366a66edbde710777121c97926904c1952224c8d445ab8a3a9f7d
+  languageName: node
+  linkType: hard
+
+"@react-stately/calendar@npm:^3.4.4":
+  version: 3.4.4
+  resolution: "@react-stately/calendar@npm:3.4.4"
+  dependencies:
+    "@internationalized/date": "npm:^3.5.2"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/calendar": "npm:^3.4.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: c8beae06f86d52a1644eda56cdf5035ebe14c97e515c2932c101649da30e2447ec530e4de5e0ca0c18ef72c39ae6b12c1760b206d64cec27214ab001c23c4afd
+  languageName: node
+  linkType: hard
+
+"@react-stately/checkbox@npm:^3.6.3":
+  version: 3.6.3
+  resolution: "@react-stately/checkbox@npm:3.6.3"
+  dependencies:
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/checkbox": "npm:^3.7.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: ece58d7f0347e2e4df71475edd92fad38edfa247b940bac4ddac17c8baf2e670b2dd57c63201758cd2389f4ac4efcd40645ca2427463bf2ad1899619078ecbb9
+  languageName: node
+  linkType: hard
+
+"@react-stately/collections@npm:^3.10.4, @react-stately/collections@npm:^3.10.5":
+  version: 3.10.5
+  resolution: "@react-stately/collections@npm:3.10.5"
+  dependencies:
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: bf447652b19f16831b43c6cc2aa877c638756e08566f574a3b0d7c21cc60c523e90cc0ea7a2c3616dbf1d3b0724c2f354e99ae993c1633ab99b93e4bf35e09eb
+  languageName: node
+  linkType: hard
+
+"@react-stately/combobox@npm:^3.8.2":
+  version: 3.8.2
+  resolution: "@react-stately/combobox@npm:3.8.2"
+  dependencies:
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/list": "npm:^3.10.3"
+    "@react-stately/overlays": "npm:^3.6.5"
+    "@react-stately/select": "npm:^3.6.2"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/combobox": "npm:^3.10.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: e2f5801fe74abe77c72f02768dfc2e79b1c0f253b973a28ed4bf81da8c5880343ca0f8b0fc624ce64f67ba66bd9a8e725476b69c1c1fa000234d14f10204ebca
+  languageName: node
+  linkType: hard
+
+"@react-stately/data@npm:^3.11.2":
+  version: 3.11.2
+  resolution: "@react-stately/data@npm:3.11.2"
+  dependencies:
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 24f912c926d2466fd8493827b15099256d22f3a408054af832cb3b44b51cdfd96cba15e5697ec9b8b97f80e73f73d727a232b7dfe4f403dff52f54dae9b3172c
+  languageName: node
+  linkType: hard
+
+"@react-stately/datepicker@npm:^3.9.2":
+  version: 3.9.2
+  resolution: "@react-stately/datepicker@npm:3.9.2"
+  dependencies:
+    "@internationalized/date": "npm:^3.5.2"
+    "@internationalized/string": "npm:^3.2.1"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/overlays": "npm:^3.6.5"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/datepicker": "npm:^3.7.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 11392885e5d7dbce2ed6df095529785133429f178d47834445211f18e62afa166be05a1a8eacd62a0fa90a87eac33dd6773e2534716c1203b606d2ada4e5ed30
+  languageName: node
+  linkType: hard
+
+"@react-stately/dnd@npm:^3.2.8":
+  version: 3.2.8
+  resolution: "@react-stately/dnd@npm:3.2.8"
+  dependencies:
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 007e479c2991fe7cce41d5fecd7f6b94a003857de1e1f9baa40714607ecd12332ffd8e1ea8567f96a6a00c454256e4e0e99e764c9aa68148a455c28d21465ef1
+  languageName: node
+  linkType: hard
+
+"@react-stately/flags@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "@react-stately/flags@npm:3.0.1"
+  dependencies:
+    "@swc/helpers": "npm:^0.4.14"
+  checksum: 9fd6731a3bb74c613d427a5457a8e1dcec1c596352d912e006005ecf9aeefa51f76b553993456dde927cdbb3237cc6d95bcd7dbd60b2917638c9cd05ad019460
+  languageName: node
+  linkType: hard
+
+"@react-stately/form@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "@react-stately/form@npm:3.0.1"
+  dependencies:
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: a734c9a93320d518480114aeff35540204aaca116e64973d9c817a5a73479c0a40eee882ccc0e22979e0bc1cfbec22ab703fc4b10f5197a92a75b73ea8ea69d0
+  languageName: node
+  linkType: hard
+
+"@react-stately/grid@npm:^3.8.5":
+  version: 3.8.5
+  resolution: "@react-stately/grid@npm:3.8.5"
+  dependencies:
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-types/grid": "npm:^3.2.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 5d38d707f090d5a1e84038ce0145ca72d509d12bd825407952767842f4b6db1c995f2bd95bb7206f506d4f67c35bde66b89172aaba7f2f495867d0950aaa96b8
+  languageName: node
+  linkType: hard
+
+"@react-stately/list@npm:^3.10.2, @react-stately/list@npm:^3.10.3":
+  version: 3.10.3
+  resolution: "@react-stately/list@npm:3.10.3"
+  dependencies:
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: c9009a30df5607ec618632f11b013c13abfbef6e0e54a1a49aeb4385a97a910cece7568aa1055fe0ba6b888d3f24f9fa0cbad963e4a84637cd8cf0339fdd3982
+  languageName: node
+  linkType: hard
+
+"@react-stately/menu@npm:^3.6.1":
+  version: 3.6.1
+  resolution: "@react-stately/menu@npm:3.6.1"
+  dependencies:
+    "@react-stately/overlays": "npm:^3.6.5"
+    "@react-types/menu": "npm:^3.9.7"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 21c7c4c1415ce78573aee4dc8e4c64bd5c500ee0203a819a6da5188e12232776eff25111c6fc76214285dcc3778a174f830606173ad08f97958cf585924f3fcb
+  languageName: node
+  linkType: hard
+
+"@react-stately/numberfield@npm:^3.9.1":
+  version: 3.9.1
+  resolution: "@react-stately/numberfield@npm:3.9.1"
+  dependencies:
+    "@internationalized/number": "npm:^3.5.1"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/numberfield": "npm:^3.8.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: e8b8833cca6d524f7ea76b7d854d4b1ad5e419355502c220bab5e4bb8e45dbf2094c30c80f68471f814ebeb48bd58fa8050988edd0a48eb62421e299b44eddca
+  languageName: node
+  linkType: hard
+
+"@react-stately/overlays@npm:^3.6.5":
+  version: 3.6.5
+  resolution: "@react-stately/overlays@npm:3.6.5"
+  dependencies:
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/overlays": "npm:^3.8.5"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 83805f078eb42290ddb9f88d8cbd7403a4d5f15177fce4c9f8cec91acf177af1d5a414472c58029fc1f8bf6730d5ca9716a8b3cd750f2afd6b57e592a7f09ef7
+  languageName: node
+  linkType: hard
+
+"@react-stately/radio@npm:^3.10.2":
+  version: 3.10.2
+  resolution: "@react-stately/radio@npm:3.10.2"
+  dependencies:
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/radio": "npm:^3.7.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 1c6d46c6342e6f96ced268bbf397aa10fcc536b22ee593af9031aea3a16be9f4876fb6b45cdb65aacfe665ad5671f3f64cf029b9c4b4698cbf157a363dddafe3
+  languageName: node
+  linkType: hard
+
+"@react-stately/searchfield@npm:^3.5.1":
+  version: 3.5.1
+  resolution: "@react-stately/searchfield@npm:3.5.1"
+  dependencies:
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/searchfield": "npm:^3.5.3"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: dfdc257a7e75e2ba81e1ca578570b14d57200472a85d58dd91cfcfb60d372c81a7f79401802a4f611d35831bbd7a619185b812afdd05e20430feb00afff5fbeb
+  languageName: node
+  linkType: hard
+
+"@react-stately/select@npm:^3.6.2":
+  version: 3.6.2
+  resolution: "@react-stately/select@npm:3.6.2"
+  dependencies:
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/list": "npm:^3.10.3"
+    "@react-stately/overlays": "npm:^3.6.5"
+    "@react-types/select": "npm:^3.9.2"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 9df52dba77b4bf383ffd9ce8552442de198f6bb8ece78cdc4a9075a4bea334c4dff2d7d115b2a3258f0169c212cc0dbfa1df623207c1917af908b853c9897769
+  languageName: node
+  linkType: hard
+
+"@react-stately/selection@npm:^3.14.3":
+  version: 3.14.3
+  resolution: "@react-stately/selection@npm:3.14.3"
+  dependencies:
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 43bc7c6c21198d93037fdf107e86149ecdbd6f8618d7c0469cfdfc30db450b9b04e9ec9ef238e7e473e04cdfc127af822553eed5d7e2d69921adbb2131bd2cc6
+  languageName: node
+  linkType: hard
+
+"@react-stately/slider@npm:^3.5.2":
+  version: 3.5.2
+  resolution: "@react-stately/slider@npm:3.5.2"
+  dependencies:
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/slider": "npm:^3.7.1"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: d1553e12102579972c1b2f07d0dac178af7476f5419117b87dbabb48d631613d9a44ce4528ebb2a459a6d568c7797000dad62a454b1051419ca018fae8f1e101
+  languageName: node
+  linkType: hard
+
+"@react-stately/table@npm:^3.11.6":
+  version: 3.11.6
+  resolution: "@react-stately/table@npm:3.11.6"
+  dependencies:
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/flags": "npm:^3.0.1"
+    "@react-stately/grid": "npm:^3.8.5"
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/grid": "npm:^3.2.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/table": "npm:^3.9.3"
+    "@swc/helpers": "npm:^0.5.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 4af9888ee1ec0bde3d683aa81a0e768ddca2589323386327bf36328bb47729589b58e81ea504cae69f6193b520cd8fe73e253ea5dbc9f6a9bc7feefc76185550
   languageName: node
   linkType: hard
 
-"@reach/polymorphic@npm:0.18.0":
-  version: 0.18.0
-  resolution: "@reach/polymorphic@npm:0.18.0"
+"@react-stately/tabs@npm:^3.6.4":
+  version: 3.6.4
+  resolution: "@react-stately/tabs@npm:3.6.4"
+  dependencies:
+    "@react-stately/list": "npm:^3.10.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/tabs": "npm:^3.3.5"
+    "@swc/helpers": "npm:^0.5.0"
   peerDependencies:
-    react: ^16.8.0 || 17.x
-  checksum: 68b432dd9c3750213f0b0748eb81c3cf78b4cbc18274aa0ff9b77519f9fdf62f1c598bcd5c3893a0283be1cc7fb610e6b44edf3aff3f4fe0232c49653334246a
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 28dd71e3e5bf5dd31facd394f4cbae1021faa0a16dec382a5a588918708f0e8167b61905665f07653debfef21d17fa0ad949cb7660887c45a05078a8028dc3bc
   languageName: node
   linkType: hard
 
-"@reach/popover@npm:0.18.0":
-  version: 0.18.0
-  resolution: "@reach/popover@npm:0.18.0"
+"@react-stately/toggle@npm:^3.7.2":
+  version: 3.7.2
+  resolution: "@react-stately/toggle@npm:3.7.2"
   dependencies:
-    "@reach/polymorphic": "npm:0.18.0"
-    "@reach/portal": "npm:0.18.0"
-    "@reach/rect": "npm:0.18.0"
-    "@reach/utils": "npm:0.18.0"
-    tabbable: "npm:^5.3.3"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/checkbox": "npm:^3.7.1"
+    "@swc/helpers": "npm:^0.5.0"
   peerDependencies:
-    react: ^16.8.0 || 17.x
-    react-dom: ^16.8.0 || 17.x
-  checksum: 44cbf56a8dc14a9e8d260915afb8f74cd1bf176a9659d78c91f63df99a914920ad886d9e568794785ad5b3257dfd7058b1b35d13f02f6937f872ff1c6aaaed98
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 6805c874c647fd16331a6ec00cf1a8e5d1c1ca9e91cbda4410e8d5dd17d999810593e24b28e9e34f6a9aa0f5c9828aa5ed392bf99483f6fb133ca3c1743b2883
   languageName: node
   linkType: hard
 
-"@reach/portal@npm:0.18.0":
-  version: 0.18.0
-  resolution: "@reach/portal@npm:0.18.0"
+"@react-stately/tooltip@npm:^3.4.7":
+  version: 3.4.7
+  resolution: "@react-stately/tooltip@npm:3.4.7"
   dependencies:
-    "@reach/utils": "npm:0.18.0"
+    "@react-stately/overlays": "npm:^3.6.5"
+    "@react-types/tooltip": "npm:^3.4.7"
+    "@swc/helpers": "npm:^0.5.0"
   peerDependencies:
-    react: ^16.8.0 || 17.x
-    react-dom: ^16.8.0 || 17.x
-  checksum: ec4714fae246141f76532beebe68945cdea83c4f425e9dff0db336b820f6e2c67447aaed9f85848f999712d83d6063dcc867a4e2ca12f7a0a8f4faef04ca71a2
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 05487e629daa27c2789498fbf1f37f416e68f2fd1a527d977d07b49ccaec4e82d7482fa343ab4086e7dd0a468b8bdd75a07dddc4c4b002b5998a06a950a641d5
   languageName: node
   linkType: hard
 
-"@reach/rect@npm:0.18.0":
-  version: 0.18.0
-  resolution: "@reach/rect@npm:0.18.0"
+"@react-stately/tree@npm:^3.7.6":
+  version: 3.7.6
+  resolution: "@react-stately/tree@npm:3.7.6"
   dependencies:
-    "@reach/observe-rect": "npm:1.2.0"
-    "@reach/utils": "npm:0.18.0"
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/shared": "npm:^3.22.1"
+    "@swc/helpers": "npm:^0.5.0"
   peerDependencies:
-    react: ^16.8.0 || 17.x
-    react-dom: ^16.8.0 || 17.x
-  checksum: 4d5c0f277cf8a11eed82cf299d9e30b58b85172f8928d92b7f20a249d702ee5b4ee73b1ada78fb328fc0806a55d01129b40a2cc73085584fe1ec1fdbeeb8776f
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: e8e2d5f874e50312b06b41702cbd5a301601b72df37b6edeb4199f64069dd2c07de946316e1150a7a167292c133bb95dd6e6d3a086c82bd4c5c44e1862c47a8e
   languageName: node
   linkType: hard
 
-"@reach/utils@npm:0.18.0":
-  version: 0.18.0
-  resolution: "@reach/utils@npm:0.18.0"
+"@react-stately/utils@npm:^3.9.1":
+  version: 3.9.1
+  resolution: "@react-stately/utils@npm:3.9.1"
+  dependencies:
+    "@swc/helpers": "npm:^0.5.0"
   peerDependencies:
-    react: ^16.8.0 || 17.x
-    react-dom: ^16.8.0 || 17.x
-  checksum: 7686b0cba3653fcddfc49b7887a77c438c1f3d4da35fda0694f771f64669a615129edebf7c62fb2e960c39cb23ab1518a10bb3e818330d57df976de77ada4e5b
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 17ddef6415db0950c474c6ad87a0d7b20a98aac817771887922ea6c6a90b9b91eb49205adf021349034f8da012fc0e3c30f6c9b378265ae6d0df93c3b4104b53
   languageName: node
   linkType: hard
 
-"@react-aria/focus@npm:^3.16.0":
-  version: 3.16.0
-  resolution: "@react-aria/focus@npm:3.16.0"
+"@react-stately/virtualizer@npm:^3.6.8":
+  version: 3.6.8
+  resolution: "@react-stately/virtualizer@npm:3.6.8"
   dependencies:
-    "@react-aria/interactions": "npm:^3.20.1"
-    "@react-aria/utils": "npm:^3.23.0"
-    "@react-types/shared": "npm:^3.22.0"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-types/shared": "npm:^3.22.1"
     "@swc/helpers": "npm:^0.5.0"
-    clsx: "npm:^2.0.0"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 1c01a56bf29e21b95f05f9e97ec8b4cb5ea4024702103e8222c36ef9e0ff62e67b5419cc9003c91f79a41420d1d26a17c7f126392372b6b441657b6c0a7c395e
+  checksum: d0e26d14aa2c3a31efd61e2d037788e80052439fe364c1f61f13c30cfdd5abc670fc980a0b6479d0921aca4ed7a6cfee40b29193042bd5e09162b2a428d91c72
   languageName: node
   linkType: hard
 
-"@react-aria/i18n@npm:^3.10.0":
-  version: 3.10.0
-  resolution: "@react-aria/i18n@npm:3.10.0"
+"@react-types/breadcrumbs@npm:^3.7.3":
+  version: 3.7.3
+  resolution: "@react-types/breadcrumbs@npm:3.7.3"
   dependencies:
-    "@internationalized/date": "npm:^3.5.1"
-    "@internationalized/message": "npm:^3.1.1"
-    "@internationalized/number": "npm:^3.5.0"
-    "@internationalized/string": "npm:^3.2.0"
-    "@react-aria/ssr": "npm:^3.9.1"
-    "@react-aria/utils": "npm:^3.23.0"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/link": "npm:^3.5.3"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 911ea23df89d303ef2a25fffec8d9d272dc9949bf76615b8219e3484178de19cf6aa77d05ac67de6fa1d40e7adde9c029bea3cdcee20ce7099f83899c4eea966
+  checksum: 4ec1f9bfd3ce2980d3691a0a2ca9a436212e38599e3b883241a587ecb6575cc60ba12f9f24288987ec98f3f19ededc9fbf021782724e23b0e8d1e87647f08447
   languageName: node
   linkType: hard
 
-"@react-aria/interactions@npm:^3.20.1":
-  version: 3.20.1
-  resolution: "@react-aria/interactions@npm:3.20.1"
+"@react-types/button@npm:^3.9.2":
+  version: 3.9.2
+  resolution: "@react-types/button@npm:3.9.2"
   dependencies:
-    "@react-aria/ssr": "npm:^3.9.1"
-    "@react-aria/utils": "npm:^3.23.0"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 17fbbab6bfb0e0860fa0250ba644b1e6aaf23023e143a7f9f816c37d164813f858be592644cc89f06f6a1baa9dffdfa8bd5a2db12246f0837dce4a9169217932
+  checksum: 8393ba87dfd6ca73fedf8f7ab3567361f1d6057f640346f2a0cc631e9659ad7c1aa2ddb255e1df6b880d8f6cd209e8c9d1d01c73e2ee2a149f180d8ebaabf1db
   languageName: node
   linkType: hard
 
-"@react-aria/label@npm:^3.7.4":
-  version: 3.7.4
-  resolution: "@react-aria/label@npm:3.7.4"
+"@react-types/calendar@npm:^3.4.4":
+  version: 3.4.4
+  resolution: "@react-types/calendar@npm:3.4.4"
   dependencies:
-    "@react-aria/utils": "npm:^3.23.0"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@internationalized/date": "npm:^3.5.2"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 30c14e5e985d671e49a162392e890b9d86c1fcc7758d6c80196158209fe62ee4a48392a496940e18065a6682a5271e02d68ec4afc8c3a553f624fda8338806a2
+  checksum: def8bdf94b38df3c2c49f63fe505734ad24669d87a5e917c061fd198b759e5561a9f89e4137278740ef6d6b441518f6f2dd51e1916a7ddff7d7d0878bd63a5b6
   languageName: node
   linkType: hard
 
-"@react-aria/listbox@npm:^3.11.3":
-  version: 3.11.3
-  resolution: "@react-aria/listbox@npm:3.11.3"
+"@react-types/checkbox@npm:^3.7.1":
+  version: 3.7.1
+  resolution: "@react-types/checkbox@npm:3.7.1"
   dependencies:
-    "@react-aria/interactions": "npm:^3.20.1"
-    "@react-aria/label": "npm:^3.7.4"
-    "@react-aria/selection": "npm:^3.17.3"
-    "@react-aria/utils": "npm:^3.23.0"
-    "@react-stately/collections": "npm:^3.10.4"
-    "@react-stately/list": "npm:^3.10.2"
-    "@react-types/listbox": "npm:^3.4.6"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/shared": "npm:^3.22.1"
   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
-  checksum: 7b79433489afcd20178529e43227b3a7d45157d0a0832bca5c7b8925d57fcfce2502b126a05eef73d1e2ca58386afc04d6dffc3e89acfffeecf0ba326d748c28
+  checksum: d8d1b860225bf29ae335b6e9e5b814e74f75ef498acc93fc08ad411ada078399e407b146e15a3ff2ab6003b44a34cf0c26f327c1a25f43baaf633cb2999a2836
   languageName: node
   linkType: hard
 
-"@react-aria/selection@npm:^3.17.3":
-  version: 3.17.3
-  resolution: "@react-aria/selection@npm:3.17.3"
+"@react-types/combobox@npm:^3.10.1":
+  version: 3.10.1
+  resolution: "@react-types/combobox@npm:3.10.1"
   dependencies:
-    "@react-aria/focus": "npm:^3.16.0"
-    "@react-aria/i18n": "npm:^3.10.0"
-    "@react-aria/interactions": "npm:^3.20.1"
-    "@react-aria/utils": "npm:^3.23.0"
-    "@react-stately/selection": "npm:^3.14.2"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/shared": "npm:^3.22.1"
   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
-  checksum: 9e15db4919fb483fb2303901133cc317d8c2b13cc990e864f7da4b4445388697edc2cb056189977af36f33d7f04237e1f30a717e9db924fcb6065a159c92d4b1
+  checksum: 5c1fcad50731387da3d77820e55605a0a2e7c6371e2c6b0ef9a567f727cf63856b69aef8d8448765f78c940fd89835391b5afa2fe6a87f2809b6908b615578a7
   languageName: node
   linkType: hard
 
-"@react-aria/ssr@npm:^3.9.1":
-  version: 3.9.1
-  resolution: "@react-aria/ssr@npm:3.9.1"
+"@react-types/datepicker@npm:^3.7.2":
+  version: 3.7.2
+  resolution: "@react-types/datepicker@npm:3.7.2"
   dependencies:
-    "@swc/helpers": "npm:^0.5.0"
+    "@internationalized/date": "npm:^3.5.2"
+    "@react-types/calendar": "npm:^3.4.4"
+    "@react-types/overlays": "npm:^3.8.5"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: a42bf23241b022e2e55ca95aeec5cafb3aa276b4586373f4b85834655ab05068d5af81707bf1d4548f2f5b29c80a02ef920c0711b2d1a8b189effca2c72ca5f9
+  checksum: 4a8495a9079e88a0847ef67d07423e350161239aae4c17657fee765f9929456ad49f061e1a3b3e1ac4936898ed1cc9ac718cb2c24c4afde8068907bed7c08408
   languageName: node
   linkType: hard
 
-"@react-aria/utils@npm:^3.23.0":
-  version: 3.23.0
-  resolution: "@react-aria/utils@npm:3.23.0"
+"@react-types/dialog@npm:^3.5.8":
+  version: 3.5.8
+  resolution: "@react-types/dialog@npm:3.5.8"
   dependencies:
-    "@react-aria/ssr": "npm:^3.9.1"
-    "@react-stately/utils": "npm:^3.9.0"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
-    clsx: "npm:^2.0.0"
+    "@react-types/overlays": "npm:^3.8.5"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 7be5f852fb80b4cdb0a983542804534ce14bbd3809c8e81786507335d457202a5cd57a4a437c32aabb1b678902405da00f5ba9d697c7ab6f33cf0840bb1978be
+  checksum: c0c387367fd697dff96fa7252cdd1d63fe7c871c93f57ed313c890ef1366e0dd85763966e1e9adc16aa9486414075b349757198572c5c5feb010897f6af9d0bf
   languageName: node
   linkType: hard
 
-"@react-dnd/asap@npm:^5.0.1":
-  version: 5.0.2
-  resolution: "@react-dnd/asap@npm:5.0.2"
-  checksum: a75039720b89da11bc678c2b61b1d2840c8349023ef2b8f8ca9099e7ece6953e9be704bf393bf799eae83d245f62115eb5302499612c2aa009c1d91caa9462df
+"@react-types/form@npm:^3.7.2":
+  version: 3.7.2
+  resolution: "@react-types/form@npm:3.7.2"
+  dependencies:
+    "@react-types/shared": "npm:^3.22.1"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: caead2f12d6c784b12e80be1de5a4521f7229897b8ed762e6af5bd31e3aa2343f8d33183c493e29c82637f40b652ba8bf2c249788b10b42113eb7cb1b3b1f522
   languageName: node
   linkType: hard
 
-"@react-dnd/invariant@npm:^4.0.1":
-  version: 4.0.2
-  resolution: "@react-dnd/invariant@npm:4.0.2"
-  checksum: b638e9643e6e93da03ef463be3c1b92055daadc391fc08e4ce8639ef8c7738f91058ec83ee52a0d0df0d3a6dd2811a7703e1450737708f043c2e909c0a99dd31
+"@react-types/grid@npm:^3.2.4":
+  version: 3.2.4
+  resolution: "@react-types/grid@npm:3.2.4"
+  dependencies:
+    "@react-types/shared": "npm:^3.22.1"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 44246cd315f339ed3d1ea5cecf8b56b6677d6c15c26e6bda77cf256b5f148adcc4bbbbfb3adc949e408a5118039474c69038526cf5ff65ec2ff2fccc75b45666
   languageName: node
   linkType: hard
 
-"@react-dnd/shallowequal@npm:^4.0.1":
-  version: 4.0.2
-  resolution: "@react-dnd/shallowequal@npm:4.0.2"
-  checksum: 7f21d691bddbfd4d2830948cbeefecca1600b2b46bcb1934926795f07ae8a1fa60a3dfd3a2112be5ef682c3820c80a99711e9fa15843f7e300acb25a4ecb70ab
+"@react-types/link@npm:^3.5.3":
+  version: 3.5.3
+  resolution: "@react-types/link@npm:3.5.3"
+  dependencies:
+    "@react-types/shared": "npm:^3.22.1"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 55e23b17ec5935b8246048b99c719645d65bbf179822f818a66e21097bc49a23f9214b2677f631cec799dbe8aaf25c5fb61f30a5d8a30e2c7fdf14445058cb3b
   languageName: node
   linkType: hard
 
-"@react-spring/animated@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/animated@npm:9.7.3"
+"@react-types/listbox@npm:^3.4.7":
+  version: 3.4.7
+  resolution: "@react-types/listbox@npm:3.4.7"
   dependencies:
-    "@react-spring/shared": "npm:~9.7.3"
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-  checksum: 75c427e810b05ef508ac81695e3410619bcc8b8b87e232eb6fa05a91155bb6a558b324937fcaacb9b2002fdffb557de97ee5f6f6b226c53f5f356f62559f89a1
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 3c8e938fb9e0c4761a770711da7d084222b3fedcf094c49dc37a441fb07bfcd2b10dc25460d29565538f6dcb1e200ff05d1c6c2fb16a0e503003e3dfc2a8a09b
   languageName: node
   linkType: hard
 
-"@react-spring/core@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/core@npm:9.7.3"
+"@react-types/menu@npm:^3.9.7":
+  version: 3.9.7
+  resolution: "@react-types/menu@npm:3.9.7"
   dependencies:
-    "@react-spring/animated": "npm:~9.7.3"
-    "@react-spring/shared": "npm:~9.7.3"
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/overlays": "npm:^3.8.5"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-  checksum: 91102271531eae8fc146b8847ae6dbc03ebfbab5816529b9bfdd71e6d922ea07361fcbc57b404de57dac2f719246876f94539c04e2f314b3c767ad33d8d4f984
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 97cec66432e6c53909dab25d9a7d5c2646d484caeb6c4eff402f152baf667079ef5774c31098f29d66045a1b0f841b0cd579aaa1948353631739ddf61042a0e7
   languageName: node
   linkType: hard
 
-"@react-spring/konva@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/konva@npm:9.7.3"
+"@react-types/meter@npm:^3.3.7":
+  version: 3.3.7
+  resolution: "@react-types/meter@npm:3.3.7"
   dependencies:
-    "@react-spring/animated": "npm:~9.7.3"
-    "@react-spring/core": "npm:~9.7.3"
-    "@react-spring/shared": "npm:~9.7.3"
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/progress": "npm:^3.5.2"
   peerDependencies:
-    konva: ">=2.6"
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-    react-konva: ^16.8.0 || ^16.8.7-0 || ^16.9.0-0 || ^16.10.1-0 || ^16.12.0-0 || ^16.13.0-0 || ^17.0.0-0 || ^17.0.1-0 || ^17.0.2-0 || ^18.0.0-0
-  checksum: e6cc925fb74abfeea6247bd92232d764f671b51cf2aa0b7dd09eb134bf24230b968bc9f9bb0cf63bedaedf95d85fc5a0eb79b757213fa9e7cabf0d2dee4e82b1
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: d9e697640efc198f441775b8a007f9653df86451d5dca491db9240cf0437df16c9118014eee4add23bd5015bbf72b63761256b2334597feb1c277fb6573024e5
   languageName: node
   linkType: hard
 
-"@react-spring/native@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/native@npm:9.7.3"
+"@react-types/numberfield@npm:^3.8.1":
+  version: 3.8.1
+  resolution: "@react-types/numberfield@npm:3.8.1"
   dependencies:
-    "@react-spring/animated": "npm:~9.7.3"
-    "@react-spring/core": "npm:~9.7.3"
-    "@react-spring/shared": "npm:~9.7.3"
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
-    react: ^16.8.0  || >=17.0.0 || >=18.0.0
-    react-native: ">=0.58"
-  checksum: df78b2f660aa30166f0fdd860b958df0d53ad4ad229b7f5357d3cd7945351e79b0a722761c9e2a482a15856021bebf458cd0a815860bbe1b8d64e72051c87c23
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: aa647a5573ff8ac52a43c5f2a2dc348d3d39d097f976ac44b8fe8e61bd8fc9f8b1c3447ac7b36d2e39df36f45f8776055a3cb9c0f84566e747cf99188e47572c
   languageName: node
   linkType: hard
 
-"@react-spring/shared@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/shared@npm:9.7.3"
+"@react-types/overlays@npm:^3.8.5":
+  version: 3.8.5
+  resolution: "@react-types/overlays@npm:3.8.5"
   dependencies:
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-  checksum: 76e44fe8ad63c83861a8453e26d085c69a40f0e5865ca2af7d2fecacb030e59ebe6db5f8e7ef8b1a6b6e193cc3c1c6fd3d5172b10bf216b205844e6d3e90e860
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 6c952fdbe7724b07cade95e8d3fe6bf61cb6e993b730051c1ada33da2afe246e3124a8981127977cc55f6df32124b049504fda7d19593446895559ca00a9f0b9
   languageName: node
   linkType: hard
 
-"@react-spring/three@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/three@npm:9.7.3"
+"@react-types/progress@npm:^3.5.2":
+  version: 3.5.2
+  resolution: "@react-types/progress@npm:3.5.2"
   dependencies:
-    "@react-spring/animated": "npm:~9.7.3"
-    "@react-spring/core": "npm:~9.7.3"
-    "@react-spring/shared": "npm:~9.7.3"
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
-    "@react-three/fiber": ">=6.0"
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-    three: ">=0.126"
-  checksum: 7fde4d5cea2ad7b4e15089c0464799b857662a5a97537fc85f82ee7777f187945f32cf70c4609111a4557e46dbe475d1328325841a8825c0f5ded21ea49d7599
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 1ddda7a41c51b22dabc1a7b1a6bc7ae10afbd93676a5b288415e600909b6c4ccf762ea4c6c8f7bf04b2ca3216ef389075bf5448400587de675e65840c715bcca
   languageName: node
   linkType: hard
 
-"@react-spring/types@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/types@npm:9.7.3"
-  checksum: fcaf5fe02ae3e56a07f340dd5a0a17e9c283ff7deab8b6549ff513ef2f5ad57e0218d448b5331e422cfa739b40f0de3511e7b3f3e73ae8690496cda5bb984854
+"@react-types/radio@npm:^3.7.1":
+  version: 3.7.1
+  resolution: "@react-types/radio@npm:3.7.1"
+  dependencies:
+    "@react-types/shared": "npm:^3.22.1"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: a400034d69f9963664ac608ef35e50f5e3090f095800de0d88d78883bb3465392a8c3f2ff043c84c5c08abb8186b5a544f9897ff80e81fd2a07498be8408b86c
   languageName: node
   linkType: hard
 
-"@react-spring/web@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/web@npm:9.7.3"
+"@react-types/searchfield@npm:^3.5.3":
+  version: 3.5.3
+  resolution: "@react-types/searchfield@npm:3.5.3"
   dependencies:
-    "@react-spring/animated": "npm:~9.7.3"
-    "@react-spring/core": "npm:~9.7.3"
-    "@react-spring/shared": "npm:~9.7.3"
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/textfield": "npm:^3.9.1"
   peerDependencies:
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-    react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
-  checksum: 65c71e28ef1197d2afdc053d776b6bd1db6b5558d50849d78c7fc665c3ed1bbd08850fabfceba2223f8660915301aaea18588ebee2429e7b6de99a2640335bbe
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: ee3847b33318cef9ad84ad59c7ae1c326046d24e79a5a94bf1636c9d6d5376bf001454343af797043e2216ecb2573b19877fced24534269b9eb092b410f49869
   languageName: node
   linkType: hard
 
-"@react-spring/zdog@npm:~9.7.3":
-  version: 9.7.3
-  resolution: "@react-spring/zdog@npm:9.7.3"
+"@react-types/select@npm:^3.9.2":
+  version: 3.9.2
+  resolution: "@react-types/select@npm:3.9.2"
   dependencies:
-    "@react-spring/animated": "npm:~9.7.3"
-    "@react-spring/core": "npm:~9.7.3"
-    "@react-spring/shared": "npm:~9.7.3"
-    "@react-spring/types": "npm:~9.7.3"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-    react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
-    react-zdog: ">=1.0"
-    zdog: ">=1.0"
-  checksum: 26f2f61f7829f2bd394b5688c9a6bf110430c4f6ade45ae52dcc53f95451c4d99a6c6c6c649366a66edbde710777121c97926904c1952224c8d445ab8a3a9f7d
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 13ded3c246304acc250bd21a54211b64732eaf8c9e4127c2ba61f440aa7d172f560d5cb64cf5d580cfbaeaadc54946c0b159097f5066cf69789c4ea776c7a116
+  languageName: node
+  linkType: hard
+
+"@react-types/shared@npm:^3.22.1":
+  version: 3.22.1
+  resolution: "@react-types/shared@npm:3.22.1"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: da5fc6775a79ae8148d80a6cd7025ff0d44462c5b8923cdd072ac34626ac7416049f297ec078ebed29fd49d65fd356f21ede9587517b88f20f9d6236107c1333
   languageName: node
   linkType: hard
 
-"@react-stately/collections@npm:^3.10.4":
-  version: 3.10.4
-  resolution: "@react-stately/collections@npm:3.10.4"
+"@react-types/slider@npm:^3.7.1":
+  version: 3.7.1
+  resolution: "@react-types/slider@npm:3.7.1"
   dependencies:
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: d82209a198c1cfcc7a7b67ea33a0990cb2a4e371bb838a533b3a95ba9c7ae2a80d1ac5957fdecc77e8e90c711b1beb9d4e8c65073e5826d20d8492990979098a
+  checksum: 36a53097dfa39c10f53d4bd0af62502785bf958623cab23df6cec26842484db76e64c2ce44cbd3202a60eb41f3dc0733b4b7bb71a4eb124bf9996e84eb6f38d5
   languageName: node
   linkType: hard
 
-"@react-stately/list@npm:^3.10.2":
-  version: 3.10.2
-  resolution: "@react-stately/list@npm:3.10.2"
+"@react-types/switch@npm:^3.5.1":
+  version: 3.5.1
+  resolution: "@react-types/switch@npm:3.5.1"
   dependencies:
-    "@react-stately/collections": "npm:^3.10.4"
-    "@react-stately/selection": "npm:^3.14.2"
-    "@react-stately/utils": "npm:^3.9.0"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 64523ed6842a64204d86478c416aae164a40f47593fa4eb374c2f291b262d5a28ec1c245992a142722278022f8603851dfa1371d023bb2857bd078074087466c
+  checksum: 8798a3c6f88951dc88bfff7059c243fe0247bf352a1954b78ca0c9fb9ed764415b6fe89849a33aab72b4a2e73f3540b7ca28aefd791e34a1a4053ee723e91b16
   languageName: node
   linkType: hard
 
-"@react-stately/selection@npm:^3.14.2":
-  version: 3.14.2
-  resolution: "@react-stately/selection@npm:3.14.2"
+"@react-types/table@npm:^3.9.3":
+  version: 3.9.3
+  resolution: "@react-types/table@npm:3.9.3"
   dependencies:
-    "@react-stately/collections": "npm:^3.10.4"
-    "@react-stately/utils": "npm:^3.9.0"
-    "@react-types/shared": "npm:^3.22.0"
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/grid": "npm:^3.2.4"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: ff596df1e8bb42bad29e8f6f7613ff86bf938ecdc066dd69bb10daae4e55b3180f36fce1b826deb3abe24fd19733b468a8ae7ae87d47fff3e55077b8ab07645d
+  checksum: 6483078311ad6fe16cbe3ae1896962ff95509b843641dbb2b2cc0c437fe8a4b1493aecb6cff5b5364f76e43b591e13837c14daef12b6dac087d5395e828594e8
   languageName: node
   linkType: hard
 
-"@react-stately/utils@npm:^3.9.0":
-  version: 3.9.0
-  resolution: "@react-stately/utils@npm:3.9.0"
+"@react-types/tabs@npm:^3.3.5":
+  version: 3.3.5
+  resolution: "@react-types/tabs@npm:3.3.5"
   dependencies:
-    "@swc/helpers": "npm:^0.5.0"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 66bb72441c289c334cf626ac789bb601db8b765e3f522181f8ff38b281bede9d1b2474dc6d5f17b6b31c12f48425797151eb2d4df5922e05c2e467ee195b7ade
+  checksum: 1df4042f8f8eadaa60ab91ffcd5d3c75636c86a6f98660b902e8aeb9c4bcc6ee3581d40bf3c48318dd591690ab8b555b3a0a3ac0d35dea1f3e03a2679008e686
   languageName: node
   linkType: hard
 
-"@react-types/listbox@npm:^3.4.6":
-  version: 3.4.6
-  resolution: "@react-types/listbox@npm:3.4.6"
+"@react-types/textfield@npm:^3.9.1":
+  version: 3.9.1
+  resolution: "@react-types/textfield@npm:3.9.1"
   dependencies:
-    "@react-types/shared": "npm:^3.22.0"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 12e2f6eb27692b9af7095101ebf84910d65743615c0fadf21bbf60d2f2dd4fe8f1c885137b7237062fe774704889e3645b22d27b74ef5490e518db63dbba7ffa
+  checksum: 978c3190c0a0e585d948f137b21dabd3cf2c7cbee63598c5bfd9da94cec890193801a27a4b143771609ac26e99dc47039e55d3d3ec86d7aa5488a59b5afd3c49
   languageName: node
   linkType: hard
 
-"@react-types/shared@npm:^3.22.0":
-  version: 3.22.0
-  resolution: "@react-types/shared@npm:3.22.0"
+"@react-types/tooltip@npm:^3.4.7":
+  version: 3.4.7
+  resolution: "@react-types/tooltip@npm:3.4.7"
+  dependencies:
+    "@react-types/overlays": "npm:^3.8.5"
+    "@react-types/shared": "npm:^3.22.1"
   peerDependencies:
     react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
-  checksum: 83ccac6c0e73573232f3c336187ff678f8c3041db36c64f6c0d626798f34e489dee502193b3fbfb323b8fca376cf4cdafe8aad2d93aa2bd90531b9ffe55dc3e7
+  checksum: cca3b7df6b58514c1f3bb8ef7eb42ae2c8d527472733db80c12f9a898a869a6537022b9a146baf37cca70f6bd88192b26bfb249eb6798e79e66b8c331a75447d
   languageName: node
   linkType: hard
 
@@ -3795,6 +5010,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@swc/helpers@npm:^0.4.14":
+  version: 0.4.36
+  resolution: "@swc/helpers@npm:0.4.36"
+  dependencies:
+    legacy-swc-helpers: "npm:@swc/helpers@=0.4.14"
+    tslib: "npm:^2.4.0"
+  checksum: fe1e51af79315b58f648d0f377cbd3e8c3cc8c0a6d9b2435a2935c5d1bbb483fb3299e8fcb2f360488b5c4fc4e06494d42c751bf4f853c3582cf467791b2a161
+  languageName: node
+  linkType: hard
+
 "@swc/helpers@npm:^0.5.0, @swc/helpers@npm:^0.5.3":
   version: 0.5.3
   resolution: "@swc/helpers@npm:0.5.3"
@@ -6237,6 +7462,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"client-only@npm:^0.0.1":
+  version: 0.0.1
+  resolution: "client-only@npm:0.0.1"
+  checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8
+  languageName: node
+  linkType: hard
+
 "cliui@npm:^3.2.0":
   version: 3.2.0
   resolution: "cliui@npm:3.2.0"
@@ -11392,6 +12624,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"legacy-swc-helpers@npm:@swc/helpers@=0.4.14":
+  version: 0.4.14
+  resolution: "@swc/helpers@npm:0.4.14"
+  dependencies:
+    tslib: "npm:^2.4.0"
+  checksum: 236afd445fb22e3df7aa84336d5c45d29e021ad01917aa7c24267330df8b39ed89c3d8d9836ac2ac7569b46923591d0e49174f72df7fb997aea841d08f374dbd
+  languageName: node
+  linkType: hard
+
 "leven@npm:^3.1.0":
   version: 3.1.0
   resolution: "leven@npm:3.1.0"
@@ -13974,6 +15215,84 @@ __metadata:
   languageName: node
   linkType: hard
 
+"react-aria-components@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "react-aria-components@npm:1.1.1"
+  dependencies:
+    "@internationalized/date": "npm:^3.5.2"
+    "@internationalized/string": "npm:^3.2.1"
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/menu": "npm:^3.13.1"
+    "@react-aria/toolbar": "npm:3.0.0-beta.3"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-stately/menu": "npm:^3.6.1"
+    "@react-stately/table": "npm:^3.11.6"
+    "@react-stately/utils": "npm:^3.9.1"
+    "@react-types/form": "npm:^3.7.2"
+    "@react-types/grid": "npm:^3.2.4"
+    "@react-types/shared": "npm:^3.22.1"
+    "@react-types/table": "npm:^3.9.3"
+    "@swc/helpers": "npm:^0.5.0"
+    client-only: "npm:^0.0.1"
+    react-aria: "npm:^3.32.1"
+    react-stately: "npm:^3.30.1"
+    use-sync-external-store: "npm:^1.2.0"
+  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
+  checksum: c3e92afa10df49e66ef9022b397f55780a84ec76b383f64e7aaa7a5a8053330f18c673b2904f5b379f1c2d80369e5eaf9a8c0e68df6d7efd684746300f184e09
+  languageName: node
+  linkType: hard
+
+"react-aria@npm:^3.32.1":
+  version: 3.32.1
+  resolution: "react-aria@npm:3.32.1"
+  dependencies:
+    "@internationalized/string": "npm:^3.2.1"
+    "@react-aria/breadcrumbs": "npm:^3.5.11"
+    "@react-aria/button": "npm:^3.9.3"
+    "@react-aria/calendar": "npm:^3.5.6"
+    "@react-aria/checkbox": "npm:^3.14.1"
+    "@react-aria/combobox": "npm:^3.8.4"
+    "@react-aria/datepicker": "npm:^3.9.3"
+    "@react-aria/dialog": "npm:^3.5.12"
+    "@react-aria/dnd": "npm:^3.5.3"
+    "@react-aria/focus": "npm:^3.16.2"
+    "@react-aria/gridlist": "npm:^3.7.5"
+    "@react-aria/i18n": "npm:^3.10.2"
+    "@react-aria/interactions": "npm:^3.21.1"
+    "@react-aria/label": "npm:^3.7.6"
+    "@react-aria/link": "npm:^3.6.5"
+    "@react-aria/listbox": "npm:^3.11.5"
+    "@react-aria/menu": "npm:^3.13.1"
+    "@react-aria/meter": "npm:^3.4.11"
+    "@react-aria/numberfield": "npm:^3.11.1"
+    "@react-aria/overlays": "npm:^3.21.1"
+    "@react-aria/progress": "npm:^3.4.11"
+    "@react-aria/radio": "npm:^3.10.2"
+    "@react-aria/searchfield": "npm:^3.7.3"
+    "@react-aria/select": "npm:^3.14.3"
+    "@react-aria/selection": "npm:^3.17.5"
+    "@react-aria/separator": "npm:^3.3.11"
+    "@react-aria/slider": "npm:^3.7.6"
+    "@react-aria/ssr": "npm:^3.9.2"
+    "@react-aria/switch": "npm:^3.6.2"
+    "@react-aria/table": "npm:^3.13.5"
+    "@react-aria/tabs": "npm:^3.8.5"
+    "@react-aria/tag": "npm:^3.3.3"
+    "@react-aria/textfield": "npm:^3.14.3"
+    "@react-aria/tooltip": "npm:^3.7.2"
+    "@react-aria/utils": "npm:^3.23.2"
+    "@react-aria/visually-hidden": "npm:^3.8.10"
+    "@react-types/shared": "npm:^3.22.1"
+  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
+  checksum: 8ef6d071ef8de6102a2c7123e4dcde9137f01af40993e9e8e129795d6ffdb94cafaa583d8d309cacb9563c79ee1533fa35fbbd478ba671b49ba41bdba4d47ec4
+  languageName: node
+  linkType: hard
+
 "react-dnd-html5-backend@npm:^16.0.1":
   version: 16.0.1
   resolution: "react-dnd-html5-backend@npm:16.0.1"
@@ -14196,6 +15515,39 @@ __metadata:
   languageName: node
   linkType: hard
 
+"react-stately@npm:^3.30.1":
+  version: 3.30.1
+  resolution: "react-stately@npm:3.30.1"
+  dependencies:
+    "@react-stately/calendar": "npm:^3.4.4"
+    "@react-stately/checkbox": "npm:^3.6.3"
+    "@react-stately/collections": "npm:^3.10.5"
+    "@react-stately/combobox": "npm:^3.8.2"
+    "@react-stately/data": "npm:^3.11.2"
+    "@react-stately/datepicker": "npm:^3.9.2"
+    "@react-stately/dnd": "npm:^3.2.8"
+    "@react-stately/form": "npm:^3.0.1"
+    "@react-stately/list": "npm:^3.10.3"
+    "@react-stately/menu": "npm:^3.6.1"
+    "@react-stately/numberfield": "npm:^3.9.1"
+    "@react-stately/overlays": "npm:^3.6.5"
+    "@react-stately/radio": "npm:^3.10.2"
+    "@react-stately/searchfield": "npm:^3.5.1"
+    "@react-stately/select": "npm:^3.6.2"
+    "@react-stately/selection": "npm:^3.14.3"
+    "@react-stately/slider": "npm:^3.5.2"
+    "@react-stately/table": "npm:^3.11.6"
+    "@react-stately/tabs": "npm:^3.6.4"
+    "@react-stately/toggle": "npm:^3.7.2"
+    "@react-stately/tooltip": "npm:^3.4.7"
+    "@react-stately/tree": "npm:^3.7.6"
+    "@react-types/shared": "npm:^3.22.1"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+  checksum: 347c997a5f33dbaa38ccc59c08d12d2c8912a52a48d7d787b9efeaf0b8a2004f0f20a2ce2f0e892438b184ea5ef4b8771b335a226e2ab601cf84ab532723adf9
+  languageName: node
+  linkType: hard
+
 "react-transition-group@npm:2.9.0":
   version: 2.9.0
   resolution: "react-transition-group@npm:2.9.0"
@@ -16799,6 +18151,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"use-sync-external-store@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "use-sync-external-store@npm:1.2.0"
+  peerDependencies:
+    react: ^16.8.0 || ^17.0.0 || ^18.0.0
+  checksum: a676216affc203876bd47981103f201f28c2731361bb186367e12d287a7566763213a8816910c6eb88265eccd4c230426eb783d64c373c4a180905be8820ed8e
+  languageName: node
+  linkType: hard
+
 "usehooks-ts@npm:^3.0.1":
   version: 3.0.1
   resolution: "usehooks-ts@npm:3.0.1"
-- 
GitLab