From 454be57cc3e05a925393ee1558968c9dbb8bf410 Mon Sep 17 00:00:00 2001 From: Manas Kenge <110519001+Manas-Kenge@users.noreply.github.com> Date: Mon, 2 Jun 2025 17:57:18 +0530 Subject: [PATCH 01/60] test stage --- backend/src/workflow/manager/api/__init__.py | 0 .../src/workflow/manager/api/configure.zcml | 12 + .../workflow/manager/api/services/__init__.py | 0 .../manager/api/services/configure.zcml | 12 + .../manager/api/services/workflow/__init__.py | 0 .../api/services/workflow/configure.zcml | 8 + .../manager/api/services/workflow/workflow.py | 0 .../workflow/manager/browser/configure.zcml | 8 + .../workflow/manager/browser/controlpanel.py | 0 backend/src/workflow/manager/configure.zcml | 24 +- .../manager/controlpanel/configure.zcml | 3 + .../controlpanel/control_panel/__init__.py | 0 .../controlpanel/control_panel/configure.zcml | 22 + .../control_panel/controlpanel.py | 45 + backend/src/workflow/manager/interfaces.py | 2 +- backend/src/workflow/manager/permissions.py | 25 + .../manager/profiles/default/controlpanel.xml | 13 + .../default/registry/control_panel.xml | 12 + .../profiles/uninstall/controlpanel.xml | 20 + .../volto-workflow-manager/package.json | 13 +- .../src/actions/workflow.ts | 85 + .../src/components/Edges/CustomEdge.tsx | 63 + .../src/components/Nodes/CustomNode.tsx | 0 .../src/components/Workflow/Workflow.tsx | 218 + .../src/components/Workflow/WorkflowView.tsx | 336 ++ .../src/hooks/useHistory.ts | 133 + .../src/reducers/workflow.ts | 162 + .../volto-workflow-manager/src/types/index.ts | 6 + frontend/pnpm-lock.yaml | 4081 ++++++++++++----- 29 files changed, 4191 insertions(+), 1112 deletions(-) create mode 100644 backend/src/workflow/manager/api/__init__.py create mode 100644 backend/src/workflow/manager/api/configure.zcml create mode 100644 backend/src/workflow/manager/api/services/__init__.py create mode 100644 backend/src/workflow/manager/api/services/configure.zcml create mode 100644 backend/src/workflow/manager/api/services/workflow/__init__.py create mode 100644 backend/src/workflow/manager/api/services/workflow/configure.zcml create mode 100644 backend/src/workflow/manager/api/services/workflow/workflow.py create mode 100644 backend/src/workflow/manager/browser/configure.zcml create mode 100644 backend/src/workflow/manager/browser/controlpanel.py create mode 100644 backend/src/workflow/manager/controlpanel/control_panel/__init__.py create mode 100644 backend/src/workflow/manager/controlpanel/control_panel/configure.zcml create mode 100644 backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py create mode 100644 backend/src/workflow/manager/permissions.py create mode 100644 backend/src/workflow/manager/profiles/default/registry/control_panel.xml create mode 100644 backend/src/workflow/manager/profiles/uninstall/controlpanel.xml create mode 100644 frontend/packages/volto-workflow-manager/src/actions/workflow.ts create mode 100644 frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Nodes/CustomNode.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Workflow/Workflow.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Workflow/WorkflowView.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/hooks/useHistory.ts create mode 100644 frontend/packages/volto-workflow-manager/src/reducers/workflow.ts create mode 100644 frontend/packages/volto-workflow-manager/src/types/index.ts diff --git a/backend/src/workflow/manager/api/__init__.py b/backend/src/workflow/manager/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/workflow/manager/api/configure.zcml b/backend/src/workflow/manager/api/configure.zcml new file mode 100644 index 0000000..2907d02 --- /dev/null +++ b/backend/src/workflow/manager/api/configure.zcml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/backend/src/workflow/manager/api/services/__init__.py b/backend/src/workflow/manager/api/services/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/workflow/manager/api/services/configure.zcml b/backend/src/workflow/manager/api/services/configure.zcml new file mode 100644 index 0000000..3ebc3a9 --- /dev/null +++ b/backend/src/workflow/manager/api/services/configure.zcml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/backend/src/workflow/manager/api/services/workflow/__init__.py b/backend/src/workflow/manager/api/services/workflow/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/workflow/manager/api/services/workflow/configure.zcml b/backend/src/workflow/manager/api/services/workflow/configure.zcml new file mode 100644 index 0000000..6c01556 --- /dev/null +++ b/backend/src/workflow/manager/api/services/workflow/configure.zcml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/backend/src/workflow/manager/api/services/workflow/workflow.py b/backend/src/workflow/manager/api/services/workflow/workflow.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/workflow/manager/browser/configure.zcml b/backend/src/workflow/manager/browser/configure.zcml new file mode 100644 index 0000000..14fc132 --- /dev/null +++ b/backend/src/workflow/manager/browser/configure.zcml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/backend/src/workflow/manager/browser/controlpanel.py b/backend/src/workflow/manager/browser/controlpanel.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/workflow/manager/configure.zcml b/backend/src/workflow/manager/configure.zcml index 4843e80..7c120a3 100644 --- a/backend/src/workflow/manager/configure.zcml +++ b/backend/src/workflow/manager/configure.zcml @@ -1,5 +1,6 @@ @@ -11,6 +12,25 @@ file="permissions.zcml" /> + + + + + @@ -22,5 +42,7 @@ + + - + \ No newline at end of file diff --git a/backend/src/workflow/manager/controlpanel/configure.zcml b/backend/src/workflow/manager/controlpanel/configure.zcml index 7ecefea..240d32a 100644 --- a/backend/src/workflow/manager/controlpanel/configure.zcml +++ b/backend/src/workflow/manager/controlpanel/configure.zcml @@ -6,5 +6,8 @@ > + diff --git a/backend/src/workflow/manager/controlpanel/control_panel/__init__.py b/backend/src/workflow/manager/controlpanel/control_panel/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/workflow/manager/controlpanel/control_panel/configure.zcml b/backend/src/workflow/manager/controlpanel/control_panel/configure.zcml new file mode 100644 index 0000000..b83c03b --- /dev/null +++ b/backend/src/workflow/manager/controlpanel/control_panel/configure.zcml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py b/backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py new file mode 100644 index 0000000..cb7ba03 --- /dev/null +++ b/backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +from plone.app.registry.browser.controlpanel import ControlPanelFormWrapper +from plone.app.registry.browser.controlpanel import RegistryEditForm +from plone.restapi.controlpanels import RegistryConfigletPanel +from workflow.manager import _ +from workflow.manager.interfaces import IPloneWorkflowmanagerLayer +from plone.z3cform import layout +from zope import schema +from zope.component import adapter +from zope.interface import Interface + + +class IControlPanel(Interface): + myfield_name = schema.TextLine( + title=_( + "This is an example field for this control panel", + ), + description=_( + "", + ), + default="", + required=False, + readonly=False, + ) + + +class ControlPanel(RegistryEditForm): + schema = IControlPanel + schema_prefix = "workflow.manager.control_panel" + label = _("Control Panel") + + +ControlPanelView = layout.wrap_form(ControlPanel, ControlPanelFormWrapper) + + +@adapter(Interface, IPloneWorkflowmanagerLayer) +class ControlPanelConfigletPanel(RegistryConfigletPanel): + """Control Panel endpoint""" + + schema = IControlPanel + configlet_id = "control_panel-controlpanel" + configlet_category_id = "Products" + title = _("Control Panel") + group = "" + schema_prefix = "workflow.manager.control_panel" \ No newline at end of file diff --git a/backend/src/workflow/manager/interfaces.py b/backend/src/workflow/manager/interfaces.py index 7e2f288..a7e2d56 100644 --- a/backend/src/workflow/manager/interfaces.py +++ b/backend/src/workflow/manager/interfaces.py @@ -3,5 +3,5 @@ from zope.publisher.interfaces.browser import IDefaultBrowserLayer -class IBrowserLayer(IDefaultBrowserLayer): +class IPloneWorkflowmanagerLayer(IDefaultBrowserLayer): """Marker interface that defines a browser layer.""" diff --git a/backend/src/workflow/manager/permissions.py b/backend/src/workflow/manager/permissions.py new file mode 100644 index 0000000..04af055 --- /dev/null +++ b/backend/src/workflow/manager/permissions.py @@ -0,0 +1,25 @@ +from workflow.manager import _ +from Products.CMFCore.utils import getToolByName +from zope.component.hooks import getSite + + +def managed_permissions(wfid=None): + if wfid is None: + return [] + + site = getSite() + wtool = getToolByName(site, "portal_workflow") + wf = wtool.get(wfid) + items = [] + for permission in wf.permissions: + data = {} + data["perm"] = permission + data["name"] = _(permission) + data["description"] = "" + items.append(data) + + return items + + +def allowed_guard_permissions(wfid=None): + return {item.get("name"): item.get("name") for item in managed_permissions(wfid)} \ No newline at end of file diff --git a/backend/src/workflow/manager/profiles/default/controlpanel.xml b/backend/src/workflow/manager/profiles/default/controlpanel.xml index 75eae58..07aa6b7 100644 --- a/backend/src/workflow/manager/profiles/default/controlpanel.xml +++ b/backend/src/workflow/manager/profiles/default/controlpanel.xml @@ -2,5 +2,18 @@ + + workflow.manager: Manage Workflows + diff --git a/backend/src/workflow/manager/profiles/default/registry/control_panel.xml b/backend/src/workflow/manager/profiles/default/registry/control_panel.xml new file mode 100644 index 0000000..77f697c --- /dev/null +++ b/backend/src/workflow/manager/profiles/default/registry/control_panel.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/backend/src/workflow/manager/profiles/uninstall/controlpanel.xml b/backend/src/workflow/manager/profiles/uninstall/controlpanel.xml new file mode 100644 index 0000000..fd76d81 --- /dev/null +++ b/backend/src/workflow/manager/profiles/uninstall/controlpanel.xml @@ -0,0 +1,20 @@ + + + + + + workflow.manager: Manage Workflows + + + diff --git a/frontend/packages/volto-workflow-manager/package.json b/frontend/packages/volto-workflow-manager/package.json index 6d7988d..7319460 100644 --- a/frontend/packages/volto-workflow-manager/package.json +++ b/frontend/packages/volto-workflow-manager/package.json @@ -27,13 +27,24 @@ "release-alpha": "release-it --preRelease=alpha" }, "addons": [], - "dependencies": {}, + "dependencies": { + "@adobe/react-spectrum": "^3.42.0", + "@reduxjs/toolkit": "^2.8.2", + "@types/redux": "^3.6.0", + "@xyflow/react": "^12.6.4", + "lucide-react": "^0.511.0", + "react-aria-components": "^1.9.0", + "react-redux": "8.1.2", + "redux": "4.2.1" + }, "peerDependencies": { "react": "18.2.0", "react-dom": "18.2.0" }, "devDependencies": { "@plone/scripts": "^3.6.1", + "@types/react": "^18", + "@types/react-dom": "^18", "release-it": "^17.1.1" } } diff --git a/frontend/packages/volto-workflow-manager/src/actions/workflow.ts b/frontend/packages/volto-workflow-manager/src/actions/workflow.ts new file mode 100644 index 0000000..d61a28a --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/actions/workflow.ts @@ -0,0 +1,85 @@ +export const GET_WORKFLOWS = 'GET_WORKFLOWS' as const; +export const ADD_WORKFLOW = 'ADD_WORKFLOW' as const; +export const DELETE_WORKFLOW = 'DELETE_WORKFLOW' as const; +export const UPDATE_WORKFLOW_SECURITY = 'UPDATE_WORKFLOW_SECURITY' as const; +export const ASSIGN_WORKFLOW = 'ASSIGN_WORKFLOW' as const; +export const VALIDATE_WORKFLOW = 'VALIDATE_WORKFLOW' as const; + +export function getWorkflows() { + return { + type: GET_WORKFLOWS, + request: { + op: 'get', + path: '/@workflows', + }, + }; +} + +export function addWorkflow(cloneFromWorkflow: string, workflowName: string) { + return { + type: ADD_WORKFLOW, + request: { + op: 'post', + path: '/@workflow-add', + data: { + 'clone-from-workflow': cloneFromWorkflow, + 'workflow-name': workflowName, + 'form.actions.add': true, + }, + }, + }; +} + +export function deleteWorkflow(workflowId: string) { + return { + type: DELETE_WORKFLOW, + request: { + op: 'del', + path: '/@workflow-delete', + data: { + 'selected-workflow': workflowId, + }, + }, + }; +} + +export function updateWorkflowSecurity(workflowId: string) { + return { + type: UPDATE_WORKFLOW_SECURITY, + request: { + op: 'post', + path: '/@workflow-security-update', + data: { + 'selected-workflow': workflowId, + 'form.actions.confirm': true, + }, + }, + }; +} + +export function assignWorkflow(workflowId: string, contentType: string) { + return { + type: ASSIGN_WORKFLOW, + request: { + op: 'post', + path: '/@workflow-assign', + data: { + 'selected-workflow': workflowId, + type_id: contentType, + }, + }, + }; +} + +export function validateWorkflow(workflowId: string) { + return { + type: VALIDATE_WORKFLOW, + request: { + op: 'get', + path: '/@workflow-validate', + params: { + 'selected-workflow': workflowId, + }, + }, + }; +} diff --git a/frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx b/frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx new file mode 100644 index 0000000..fc45ab7 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import { X } from 'lucide-react'; +import { + BezierEdge, + EdgeLabelRenderer, + getBezierPath, + useReactFlow, +} from '@xyflow/react'; +import type { EdgeProps } from '@xyflow/react'; +import { Button } from 'react-aria-components'; + +export default function CustomEdge(props: EdgeProps) { + const { + id, + sourceX, + sourceY, + targetX, + targetY, + sourcePosition, + targetPosition, + } = props; + + const { setEdges } = useReactFlow(); + + const [labelX, labelY] = getBezierPath({ + sourceX, + sourceY, + targetX, + targetY, + sourcePosition, + targetPosition, + }); + + const onEdgeClick = () => { + setEdges((edges) => edges.filter((edge) => edge.id !== id)); + }; + + return ( + <> + + + + + + ); +} diff --git a/frontend/packages/volto-workflow-manager/src/components/Nodes/CustomNode.tsx b/frontend/packages/volto-workflow-manager/src/components/Nodes/CustomNode.tsx new file mode 100644 index 0000000..e69de29 diff --git a/frontend/packages/volto-workflow-manager/src/components/Workflow/Workflow.tsx b/frontend/packages/volto-workflow-manager/src/components/Workflow/Workflow.tsx new file mode 100644 index 0000000..f20871e --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/Workflow/Workflow.tsx @@ -0,0 +1,218 @@ +import { + Background, + BackgroundVariant, + Connection, + Controls, + Edge, + MarkerType, + MiniMap, + Node, + ReactFlow, + ReactFlowInstance, + reconnectEdge, + useEdgesState, + useNodesState, + useReactFlow, +} from '@xyflow/react'; +import '@xyflow/react/dist/style.css'; +import { useCallback, useEffect, useRef, useState } from 'react'; +import { useData, useUpdateData } from '../api'; +// import useHistory from '../../hooks/useHistory'; +import CustomEdge from '../Edges/CustomEdge'; +// import CustomNode from '../Nodes/CustomNode'; +import '@xyflow/react/dist/style.css'; + +const edgeTypes = { + custom: CustomEdge, +}; + +// const nodeTypes = { +// custom: CustomNode, +// }; + +export const Workflow = () => { + const [nodes, setNodes, onNodesChange] = useNodesState([]); + const [edges, setEdges, onEdgesChange] = useEdgesState([]); + + // const { addNode, removeNode, addEdge, removeEdge, undo, redo } = useHistory(); + + // const onConnect = useCallback( + // (connection: Connection) => { + // const edge = { + // ...connection, + // id: generateId(), + // type: 'custom', + // markerEnd: { + // type: MarkerType.ArrowClosed, + // width: 20, + // height: 20, + // color: '#333', + // }, + // }; + // addEdge(edge); + // }, + // [addEdge], + // ); + + const isValidConnection = (connection: Edge | Connection) => { + const { source, target } = connection; + if (source === target) return false; + return true; + }; + + const { screenToFlowPosition, setViewport } = useReactFlow(); + + const onDragOver: React.DragEventHandler = (event) => { + event.preventDefault(); + event.dataTransfer.dropEffect = 'move'; + }; + + const onDrop: React.DragEventHandler = (event) => { + event.preventDefault(); + + const position = screenToFlowPosition({ + x: event.clientX, + y: event.clientY, + }); + + // Create a custom node + // const node: Node = { + // id: generateId(), + // type: 'custom', + // position, + // data: { label: 'New Node' }, + // }; + + // addNode(node); + }; + + const [selectedNode, setSelectedNode] = useState(); + + const onNodeClick = (event: React.MouseEvent, node: Node) => { + setSelectedNode(node); + }; + + const onPaneClick = () => { + setSelectedNode(undefined); + }; + + const edgeReconnectSuccessful = useRef(false); + + const onReconnectStart = () => { + edgeReconnectSuccessful.current = false; + }; + + const onReconnect = (oldEdge: Edge, newConnection: Connection) => { + edgeReconnectSuccessful.current = true; + setEdges((prevEdges) => reconnectEdge(oldEdge, newConnection, prevEdges)); + }; + + // const onReconnectEnd = (_: MouseEvent | TouchEvent, edge: Edge) => { + // if (!edgeReconnectSuccessful.current) { + // removeEdge(edge); + // } + // }; + + // Key bindings for delete, undo, redo + // useEffect(() => { + // const handleKeyDown = (event: KeyboardEvent) => { + // if (event.key === 'Delete' && selectedNode) { + // removeNode(selectedNode); + // setSelectedNode(undefined); + // } + // if (event.ctrlKey || event.metaKey) { + // if (event.key === 'z' && !event.shiftKey) { + // event.preventDefault(); + // undo(); + // } + // if (event.key === 'y' || (event.key === 'z' && event.shiftKey)) { + // event.preventDefault(); + // redo(); + // } + // } + // }; + + // document.addEventListener('keydown', handleKeyDown); + // return () => document.removeEventListener('keydown', handleKeyDown); + // }, [selectedNode, removeNode, undo, redo]); + + const { mutateAsync: saveFlow } = useUpdateData(); + const { data: reactFlowState } = useData(); + + useEffect(() => { + if (reactFlowState) { + const { x = 0, y = 0, zoom = 1 } = reactFlowState.viewport; + setNodes(reactFlowState.nodes || []); + setEdges(reactFlowState.edges || []); + setViewport({ x, y, zoom }); + } + }, [reactFlowState, setNodes, setEdges, setViewport]); + + const [rfInstance, setRfInstance] = useState | null>(null); + + const onSave = () => { + if (rfInstance) { + const flow = rfInstance.toObject(); + saveFlow(flow); + } + }; + + // Add a button to manually add nodes + // const addNewNode = () => { + // const node: Node = { + // id: generateId(), + // type: 'custom', + // position: { x: Math.random() * 500, y: Math.random() * 500 }, + // data: { label: 'New Node' }, + // }; + // addNode(node); + // }; + + return ( +
+ + + + + + +
+ ); +}; diff --git a/frontend/packages/volto-workflow-manager/src/components/Workflow/WorkflowView.tsx b/frontend/packages/volto-workflow-manager/src/components/Workflow/WorkflowView.tsx new file mode 100644 index 0000000..84d2821 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/Workflow/WorkflowView.tsx @@ -0,0 +1,336 @@ +import React, { useState } from 'react'; +import { + Button, + Select, + SelectValue, + ListBox, + ListBoxItem, + Switch, + Tab, + TabList, + TabPanel, + Tabs, + Separator, + Label, + ToggleButton, +} from 'react-aria-components'; + +export default function ToolboxSection() { + // Workflow states data + const workflowStates = [ + { id: 1, name: 'Private', position: { top: '98px', left: 0 } }, + { id: 2, name: 'Pending review', position: { top: 0, left: '316px' } }, + { id: 3, name: 'Published', position: { top: '148px', left: 0 } }, + ]; + + // Transitions data + const transitions = [{ id: 1, name: 'Reviewer approves content' }]; + + const [designMode, setDesignMode] = useState(false); + const [advancedMode, setAdvancedMode] = useState(true); + const [selectedWorkflow, setSelectedWorkflow] = useState( + 'Simple Publication workflow', + ); + const [selectedState, setSelectedState] = useState(''); + const [selectedTransition, setSelectedTransition] = useState(''); + + return ( +
+
+
+
+ {/* Header */} +
+
+

Workflow Manager

+

+ You are currently working on the "Simple Publication workflow" + workflow. +

+
+
+ + + +
+
+ +
+ {/* Left sidebar */} +
+
+
+

Toolbox

+
+ + +
+
+
+ +
+
+ + + + + +
+

States

+ + +
+ + + +
+ +

Transitions

+ + +
+ + + +
+
+
+
+ + {/* Main content */} +
+
+ + + + + + + + + + +
+
+ + {advancedMode && ( + + )} + + Advanced mode +
+
+ + +
+ + + + + Transitions + + + Properties + + + Permission Roles + + + + + {/* Workflow diagram */} +
+
+ {workflowStates.map( + (state, index) => + index < 2 && ( +
+ {state.name} +
+ ), + )} +
+ → +
+
+ +
+
+ Published +
+
+ ↓ +
+
+
+
+ + +
Properties content would go here
+
+ + +
+ Permission roles content would go here +
+
+
+
+ + {/* Right sidebar */} +
+

Transitions

+
+
+ Transitions this state can use +
+ +
+ +
+ {transitions.map((transition) => ( +
+ {transition.name} +
+ ))} +
+ + + +
+ + +
+
+
+
+
+
+
+ ); +} diff --git a/frontend/packages/volto-workflow-manager/src/hooks/useHistory.ts b/frontend/packages/volto-workflow-manager/src/hooks/useHistory.ts new file mode 100644 index 0000000..e7c40fa --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/hooks/useHistory.ts @@ -0,0 +1,133 @@ +// import { useCallback, useRef, useState } from 'react'; +// import { HistoryAction } from '../types'; +// import { Edge, Node, useReactFlow } from '@xyflow/react'; + +// type HistoryItem = { +// action: HistoryAction; +// data: Node | Edge | undefined; +// }; + +// export default function useHistory() { +// const [history, setHistory] = useState([]); +// const currentIndex = useRef(-1); + +// const { setNodes, setEdges } = useReactFlow(); + +// const addToHistory = useCallback( +// (newState: HistoryItem) => { +// const newHistory = [...history].slice(0, currentIndex.current + 1); +// newHistory.push(newState); +// setHistory(newHistory); +// currentIndex.current += 1; +// }, +// [history], +// ); + +// const addNode = useCallback( +// (node: Node | undefined, shouldAddToHistory = true) => { +// if (node) setNodes((prevNodes) => prevNodes.concat(node)); +// if (shouldAddToHistory) +// addToHistory({ +// action: HistoryAction.AddNode, +// data: node, +// }); +// }, +// [addToHistory, setNodes], +// ); + +// const addEdge = useCallback( +// (edge: Edge | undefined, shouldAddToHistory = true) => { +// if (edge) setEdges((prevEdges) => prevEdges.concat(edge)); +// if (shouldAddToHistory) +// addToHistory({ +// action: HistoryAction.AddEdge, +// data: edge, +// }); +// }, +// [addToHistory, setEdges], +// ); + +// const removeNode = useCallback( +// (node: Node | undefined, shouldAddToHistory = true) => { +// if (node) +// setNodes((prevNodes) => +// prevNodes.filter((prevNode) => prevNode.id !== node.id), +// ); +// if (shouldAddToHistory) +// addToHistory({ +// action: HistoryAction.RemoveNode, +// data: node, +// }); +// }, +// [addToHistory, setNodes], +// ); + +// const removeEdge = useCallback( +// (edge: Edge | undefined, shouldAddToHistory = true) => { +// if (edge) +// setEdges((prevEdges) => +// prevEdges.filter((prevEdge) => prevEdge.id !== edge.id), +// ); +// if (shouldAddToHistory) +// addToHistory({ +// action: HistoryAction.RemoveEdge, +// data: edge, +// }); +// }, +// [addToHistory, setEdges], +// ); + +// const undo = useCallback(() => { +// const canUndo = currentIndex.current > -1; +// if (canUndo) { +// const { action, data } = history[currentIndex.current] || {}; +// currentIndex.current -= 1; +// switch (action) { +// case HistoryAction.AddNode: { +// removeNode(data as Node, false); +// break; +// } +// case HistoryAction.AddEdge: { +// removeEdge(data as Edge, false); +// break; +// } +// case HistoryAction.RemoveNode: { +// addNode(data as Node, false); +// break; +// } +// case HistoryAction.RemoveEdge: { +// addEdge(data as Edge, false); +// break; +// } +// } +// } +// }, [addEdge, addNode, history, removeEdge, removeNode]); + +// const redo = useCallback(() => { +// const canRedo = currentIndex.current < history.length - 1; +// if (canRedo) { +// currentIndex.current += 1; +// const { action, data } = history[currentIndex.current] || {}; +// switch (action) { +// case HistoryAction.AddNode: { +// addNode(data as Node, false); +// break; +// } +// case HistoryAction.AddEdge: { +// addEdge(data as Edge, false); +// break; +// } +// case HistoryAction.RemoveNode: { +// removeNode(data as Node, false); +// break; +// } +// case HistoryAction.RemoveEdge: { +// removeEdge(data as Edge, false); +// break; +// } +// } +// } +// }, [addEdge, addNode, history, removeEdge, removeNode]); + +// return { addNode, removeNode, addEdge, removeEdge, undo, redo }; +// } diff --git a/frontend/packages/volto-workflow-manager/src/reducers/workflow.ts b/frontend/packages/volto-workflow-manager/src/reducers/workflow.ts new file mode 100644 index 0000000..fcf2c99 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/reducers/workflow.ts @@ -0,0 +1,162 @@ +import { AnyAction } from 'redux'; + +import { + GET_WORKFLOWS, + ADD_WORKFLOW, + DELETE_WORKFLOW, + UPDATE_WORKFLOW_SECURITY, + ASSIGN_WORKFLOW, + VALIDATE_WORKFLOW, +} from '../actions/workflow'; + +interface WorkflowState { + workflows: { + error: any; + items: any[]; + loaded: boolean; + loading: boolean; + }; + validation: { + errors: any; + loading: boolean; + }; + operation: { + error: any; + loading: boolean; + result: any; + }; +} + +const initialState: WorkflowState = { + workflows: { + error: null, + items: [], + loaded: false, + loading: false, + }, + validation: { + errors: null, + loading: false, + }, + operation: { + error: null, + loading: false, + result: null, + }, +}; + +export default function workflow( + state: WorkflowState = initialState, + action: AnyAction, +): WorkflowState { + switch (action.type) { + case `${GET_WORKFLOWS}_PENDING`: + return { + ...state, + workflows: { + ...state.workflows, + error: null, + loading: true, + loaded: false, + }, + }; + case `${GET_WORKFLOWS}_SUCCESS`: + return { + ...state, + workflows: { + ...state.workflows, + error: null, + items: action.result.workflows || [], + loaded: true, + loading: false, + }, + }; + case `${GET_WORKFLOWS}_FAIL`: + return { + ...state, + workflows: { + ...state.workflows, + error: action.error, + items: [], + loading: false, + loaded: false, + }, + }; + + // Add Workflow + case `${ADD_WORKFLOW}_PENDING`: + case `${DELETE_WORKFLOW}_PENDING`: + case `${UPDATE_WORKFLOW_SECURITY}_PENDING`: + case `${ASSIGN_WORKFLOW}_PENDING`: + return { + ...state, + operation: { + ...state.operation, + loading: true, + error: null, + result: null, + }, + }; + + case `${ADD_WORKFLOW}_SUCCESS`: + case `${DELETE_WORKFLOW}_SUCCESS`: + case `${UPDATE_WORKFLOW_SECURITY}_SUCCESS`: + case `${ASSIGN_WORKFLOW}_SUCCESS`: + return { + ...state, + operation: { + ...state.operation, + loading: false, + error: null, + result: action.result, + }, + }; + + case `${ADD_WORKFLOW}_FAIL`: + case `${DELETE_WORKFLOW}_FAIL`: + case `${UPDATE_WORKFLOW_SECURITY}_FAIL`: + case `${ASSIGN_WORKFLOW}_FAIL`: + return { + ...state, + operation: { + ...state.operation, + loading: false, + error: action.error, + result: null, + }, + }; + // Validation + case `${VALIDATE_WORKFLOW}_PENDING`: + return { + ...state, + validation: { + ...state.validation, + loading: true, + errors: null, + }, + }; + + case `${VALIDATE_WORKFLOW}_SUCCESS`: + return { + ...state, + validation: { + ...state.validation, + loading: false, + errors: action.result.errors, + }, + }; + + case `${VALIDATE_WORKFLOW}_FAIL`: + return { + ...state, + validation: { + ...state.validation, + loading: false, + errors: action.error, + }, + }; + + default: + return state; + } +} diff --git a/frontend/packages/volto-workflow-manager/src/types/index.ts b/frontend/packages/volto-workflow-manager/src/types/index.ts new file mode 100644 index 0000000..1a263e2 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/types/index.ts @@ -0,0 +1,6 @@ +export enum HistoryAction { + AddNode = 'addNode', + RemoveNode = 'removeNode', + AddEdge = 'addEdge', + RemoveEdge = 'removeEdge', +} diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index acae27f..28efe3a 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -303,7 +303,7 @@ importers: version: 3.12.1(react@18.2.0) react-redux: specifier: 8.1.2 - version: 8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1) + version: 8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@5.0.1) semantic-ui-react: specifier: 2.1.5 version: 2.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -1472,7 +1472,7 @@ importers: version: 3.12.1(react@18.2.0) react-redux: specifier: 8.1.2 - version: 8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1) + version: 8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@5.0.1) react-router-dom: specifier: 5.2.0 version: 5.2.0(react@18.2.0) @@ -1550,16 +1550,46 @@ importers: packages/volto-workflow-manager: dependencies: + '@adobe/react-spectrum': + specifier: ^3.42.0 + version: 3.42.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@reduxjs/toolkit': + specifier: ^2.8.2 + version: 2.8.2(react-redux@8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react@18.2.0) + '@types/redux': + specifier: ^3.6.0 + version: 3.6.0 + '@xyflow/react': + specifier: ^12.6.4 + version: 12.6.4(@types/react@18.3.22)(immer@10.1.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + lucide-react: + specifier: ^0.511.0 + version: 0.511.0(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 + react-aria-components: + specifier: ^1.9.0 + version: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) + react-redux: + specifier: 8.1.2 + version: 8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1) + redux: + specifier: 4.2.1 + version: 4.2.1 devDependencies: '@plone/scripts': specifier: ^3.6.1 version: 3.10.1 + '@types/react': + specifier: ^18 + version: 18.3.22 + '@types/react-dom': + specifier: ^18 + version: 18.3.7(@types/react@18.3.22) release-it: specifier: ^17.1.1 version: 17.1.1(typescript@5.8.3) @@ -1569,6 +1599,24 @@ packages: '@adobe/css-tools@4.4.3': resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} + '@adobe/react-spectrum-ui@1.2.1': + resolution: {integrity: sha512-wcrbEE2O/9WnEn6avBnaVRRx88S5PLFsPLr4wffzlbMfXeQsy+RMQwaJd3cbzrn18/j04Isit7f7Emfn0dhrJA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@adobe/react-spectrum-workflow@2.3.5': + resolution: {integrity: sha512-b53VIPwPWKb/T5gzE3qs+QlGP5gVrw/LnWV3xMksDU+CRl3rzOKUwxIGiZO8ICyYh1WiyqY4myGlPU/nAynBUg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@adobe/react-spectrum@3.42.0': + resolution: {integrity: sha512-kpn6qaBeF70Fvqc8GYyFXzOmH1DFpkV4N2daQwI3iwSPi/0VhHmB9AOaWftNNIknAyL4D1Oix/C+R8tTP3MzTw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -3456,6 +3504,12 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@react-aria/actiongroup@3.7.16': + resolution: {integrity: sha512-LD6hEur45g0Pm4Z/7Izm/clayM0/aEZYkkjA1fwZ8XO+7Uu2LszmqwpGrATaeHywpujrBjLfJaQvbpGIACyVTQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/autocomplete@3.0.0-beta.3': resolution: {integrity: sha512-8haBygHNMqVt4Ge90VOk+iVlLW+zhiOGHYz2IKCE6+Sy1dTE6mzhHjxrtwWYnSez/OQLbxjHlwLch4CDd5JkLA==} peerDependencies: @@ -3747,1152 +3801,1661 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-spectrum/utils@3.12.5': - resolution: {integrity: sha512-a6I2UUKpaC/ym4wVt44jg78T7ej4q24p4kEjAZ05KcTZ5XH6sK14Pbnm8BAP/55aNKpEcM7sfgeQOVDB67+rNQ==} + '@react-spectrum/accordion@3.0.6': + resolution: {integrity: sha512-gurgbZAGirou+3zxaXMngIkI0wdpuEpYrhpJUllZqEFe0uU2azy/ayT1swvK59WEh65My4uCkikk3hBTX30A8Q==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/autocomplete@3.0.0-beta.1': - resolution: {integrity: sha512-ohs6QOtJouQ+Y1+zRKiCzv57QogSTRuOA1QfrnIS1YPwKO1EDQXSqFkq2htK5+bN9GCm94yo6r4iX++SZKmLXA==} + '@react-spectrum/actionbar@3.6.7': + resolution: {integrity: sha512-UwrLJAtSawslXRyaYNbEyptofCJq0yEE8ov1jpFwJ4QD4uI3Q8cMj755MQA9i4xOF1m4f0m8vLG9qF3A2IHDQw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/calendar@3.8.1': - resolution: {integrity: sha512-pTPRmPRD/0JeKhCRvXhVIH/yBimtIHnZGUxH12dcTl3MLxjXQDTn6/LWK0s4rzJcjsC+EzGUCVBBXgESb7PUlw==} + '@react-spectrum/actiongroup@3.10.15': + resolution: {integrity: sha512-a/8GjyXCOMph0rwdSqwjLE4yJQUH4Ji7Ho+x6h5Iq5kCQSEtvqcYNrImMrVDqwjmdZST/K1uzJbnXPDvzW3B1A==} peerDependencies: + '@react-spectrum/provider': ^3.2.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/checkbox@3.6.14': - resolution: {integrity: sha512-eGl0GP/F/nUrA33gDCYikyXK+Yer7sFOx8T4EU2AF4E8n1VQIRiVNaxDg7Ar6L3CMKor01urppFHFJsBUnSgyw==} + '@react-spectrum/avatar@3.0.22': + resolution: {integrity: sha512-uufhpuoCgoC0lQZbwXmBGjWA/kEi08Gw0qnlcC72hBhM7yMHfjdmtfYmE654cl1zqxIDQWDcquJQ9ejhxs7W1g==} peerDependencies: + '@react-spectrum/provider': ^3.2.1 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/collections@3.12.4': - resolution: {integrity: sha512-H+47fRkwYX2/BdSA+NLTzbR+8QclZXyBgC7tHH3dzljyxNimhrMDnbmk520nvGCebNf3nuxtFHq9iVTLpazSVA==} + '@react-spectrum/badge@3.1.23': + resolution: {integrity: sha512-410XtOKm4+RoT7dbVrNFxJSeAQbnVAz16/e+T0/siPNvUuY0cDnbDEDNqPJG9XVFsoSliwB9drvAcBEHiGChhg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/color@3.8.5': - resolution: {integrity: sha512-yi1MQAbYuAYKu0AtMO+mWQWlWk6OzGMa9j4PGtQN2PI5Uv1NylWOvdquxbUJ4GUAuSYNopYG8Ci9MZMwtito8w==} + '@react-spectrum/breadcrumbs@3.9.17': + resolution: {integrity: sha512-wrPwew84fL4uqJu+nDXaD0flym6ZQRx+I6/IFGRn6P8Ovr05IreSjuU78z587lK3shTF36qahO7MpZI672Gefg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/combobox@3.10.5': - resolution: {integrity: sha512-27SkClMqbMAKuVnmXhYzYisbLfzV7MO/DEiqWO4/3l+PZ+whL7Wi/Ek7Wqlfluid/y4pN4EkHCKNt4HJ2mhORQ==} + '@react-spectrum/button@3.16.14': + resolution: {integrity: sha512-UCsFQ+KIcPLERcAiM2pJYDqfZt4/uUrz8yrC7Njp5vyk8n7qqLQaO5xf0xYy3ELaVntoBVvmdM6pIunP5CAtWg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/data@3.13.0': - resolution: {integrity: sha512-7LYPxVbWB6tvmLYKO19H5G5YtXV6eKCSXisOUiL9fVnOcGOPDK5z310sj9TP5vaX7zVPtwy0lDBUrZuRfhvQIQ==} + '@react-spectrum/buttongroup@3.6.22': + resolution: {integrity: sha512-LX3q5LbHBqqd2Jbcn57Jbku5nDlH8BKugPRadvAFpbv9omKOm4qFHdb682KlaDKq8AZVjzPYcfqgWT9oS8AMYg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/datepicker@3.14.1': - resolution: {integrity: sha512-ad3IOrRppy/F8FZpznGacsaWWHdzUGZ4vpymD+y6TYeQ+RQvS9PLA5Z1TanH9iqLZgkf6bvVggJFg/hhDh2hmg==} + '@react-spectrum/calendar@3.7.1': + resolution: {integrity: sha512-E0dm4Pd21/WI87aqwYOC/+9e3Dgl/tx6DRRVBMlo6Kc8bMYEd3WLR7+bX9nVIMXjjqIw8xIXsBh5/O7bZEFFzw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/disclosure@3.0.4': - resolution: {integrity: sha512-RE4hYnDYgsd5bi01z/hZHShRGKxW++xCA6PCufxtipc1sxZGUF4Sb1tTSIxOjh1dq5iDVdrAQAS6en0weaGgLA==} + '@react-spectrum/checkbox@3.9.16': + resolution: {integrity: sha512-NcJAWtswfZefDXfJWvynnY7Mi7weGC0Hi3xl+l1mT8ufmtD9Bzz//KLH0gqBSTjFxuKEN9U/6f6EqEvZdbGM+w==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/dnd@3.5.4': - resolution: {integrity: sha512-YkvkehpsSeGZPH7S7EYyLchSxZPhzShdf9Zjh6UAsM7mAcxjRsChMqsf6zuM+l0jgMo40Ka1mvwDYegz92Qkyg==} + '@react-spectrum/color@3.0.7': + resolution: {integrity: sha512-8anoPEw1p4PI3UeSi+/2L9EiuVbiInDUkOqMQpR2zCNQnme2tYOmMi3fSzygrQ3msgLNfGymsOHcxnIHkxp8kg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/flags@3.1.1': - resolution: {integrity: sha512-XPR5gi5LfrPdhxZzdIlJDz/B5cBf63l4q6/AzNqVWFKgd0QqY5LvWJftXkklaIUpKSJkIKQb8dphuZXDtkWNqg==} - - '@react-stately/form@3.1.4': - resolution: {integrity: sha512-A6GOaZ9oEIo5/XOE+JT9Z8OBt0osIOfes4EcIxGS1C9ght/Smg0gNcIJ2/Wle8qmro4RoJcza2yJ+EglVOuE0w==} + '@react-spectrum/combobox@3.15.3': + resolution: {integrity: sha512-4SL/ey/cDTIqZIb86mBqKZKnWJoQq8Q4CZ6GzU/bVPwGiS8jq3mEqk4BwO17VzhSbKyXkwVDZPJigNKFgMgNIg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/grid@3.11.2': - resolution: {integrity: sha512-P0vfK5B1NW8glYD6QMrR2X/7UMXx2J8v48QIQV6KgLZjFbyXhzRb+MY0BoIy4tUfJL0yQU2GKbKKVSUIQxbv0g==} + '@react-spectrum/contextualhelp@3.6.21': + resolution: {integrity: sha512-1go2EnoTIIqGKJREVuWAK5cOJQ39+Y9XSjnYBSeLSxH4fvG5S2pVZe3BLjFTrAp+qLcyw5XZbcdzWfL+92gopg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/layout@4.3.0': - resolution: {integrity: sha512-1czYPaWsEi/ecSOMBiMmH82iTeAIez/72HQjvP0i5CK2ZqLV0M1/Z10lesJHdOE+ay2EkE2qEqbHJnCdCqzkpA==} + '@react-spectrum/datepicker@3.14.1': + resolution: {integrity: sha512-7EPcI9IutqP30TVTCh/Kk0qB7YAhS0Bkhk2RXAaIrgvaFVdiZsDqSB0nU9i/Aev9iD7ZmFEwveVZEkvNqgB32g==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/list@3.12.2': - resolution: {integrity: sha512-XPGvdPidOV4hnpmaUNc4C/1jX7ZhBwmAI9p6bEXDA3du3XrWess6MWcaQvPxXbrZ6ZX8/OyOC2wp7ixJoJRGyA==} + '@react-spectrum/dialog@3.8.21': + resolution: {integrity: sha512-49rwisFetNgOiqR+JDNPYgFqNaT19EzdgA8LgiB9XIbM+sFFk2C5UiTotxVqDQOXJwui2CCKmcIIGzO5J5ZmFA==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/menu@3.9.4': - resolution: {integrity: sha512-sqYcSBuTEtCebZuByUou2aZzwlnrrOlrvmGwFNJy49N3LXXXPENCcCERuWa8TE9eBevIVTQorBZlID6rFG+wdQ==} + '@react-spectrum/divider@3.5.23': + resolution: {integrity: sha512-nkQ/wAs+VjISMFUzdMiAv5xcBPiTE3P6ghnSkTbmfZ0c1txckFHrttS+sjCBVn2WrJmQQ8BonZZoC+ezXRwncA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/numberfield@3.9.12': - resolution: {integrity: sha512-E56RuRRdu/lzd8e5aEifP4n8CL/as0sZqIQFSyMv/ZUIIGeksqy+zykzo01skaHKY8u2NixrVHPVDtvPcRuooA==} + '@react-spectrum/dnd@3.5.5': + resolution: {integrity: sha512-hnsgnJjGQHQr14JkTjSD5Bn0doROqb6L+yykay4/vd0ltT3C/aVB4lxA5/80iJBOusOhkNUO+lABqgL7A3FeHQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/overlays@3.6.16': - resolution: {integrity: sha512-+Ve/TBlUNg3otVC4ZfCq1a8q8FwC7xNebWkVOCGviTqiYodPCGqBwR9Z1xonuFLF/HuQYqALHHTOZtxceU+nVQ==} + '@react-spectrum/dropzone@3.0.11': + resolution: {integrity: sha512-P66MZNd190ni4K3Mz+LzmXranYGWTg0aNNzkZxomAaSHXt/IqujFfzBzO1Vb5iIMEB4w9/QDGQgMNk1DfaQyHQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/radio@3.10.13': - resolution: {integrity: sha512-q7UKcVYY7rqpxKfYRzvKVEqFhxElDFX2c+xliZQtjXuSexhxRb2xjEh+bDkhzbXzrJkrBT6VmE/rSYPurC3xTw==} + '@react-spectrum/filetrigger@3.0.11': + resolution: {integrity: sha512-6uImeSH3F/k3j3+Ocidj/sNa+/vShyZFWmKwwhZZ3R8Zn5LqSqL0VfbAG3yCWh7N2cewWwWahviyAmu8ohRr4w==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/searchfield@3.5.12': - resolution: {integrity: sha512-RC3QTEPVNUbgtuqzpwPUfbV9UkUC1j4XkHoynWDbMt0bE0tPe2Picnl0/r/kq6MO527idV6Ur4zuOF4x9a97LQ==} + '@react-spectrum/form@3.7.15': + resolution: {integrity: sha512-MPifb5EDbH/tYm5wDqmfWFQo7MlwRTSaaIwRAzWWH5IRRiTAfU+f+I+w8yL6CYTteb799P4McSXb5hocJQbMIw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/select@3.6.13': - resolution: {integrity: sha512-saZo67CreQZPdmqvz9+P6N4kjohpwdVncH98qBi0Q2FvxGAMnpJQgx97rtfDvnSziST5Yx1JnMI4kSSndbtFwg==} + '@react-spectrum/icon@3.8.5': + resolution: {integrity: sha512-Ur496FvvGCRMhOSnW/d10TAbUCuseMw5kB81nIQWlqHZaMJL14fJMo3z0v0NXJFVPpQus0q6Xe4IJlU9mAj7CQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/selection@3.20.2': - resolution: {integrity: sha512-Fw6nnG+VKMsncsY4SNxGYOhnHojVFzFv+Uhy6P39QBp6AXtSaRKMg2VR4MPxQ7XgOjHh5ZuSvCY1RwocweqjwQ==} + '@react-spectrum/illustratedmessage@3.5.10': + resolution: {integrity: sha512-vosTlDuqKiXRpxE5m7pBy0YhggDykDFspKTvFVWK3PTR3OFWA3H5xo/OAA+QbrVU1U0vdNZdoIAd4cbLo/NkWQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/slider@3.6.4': - resolution: {integrity: sha512-6SdG0VJZLMRIBnPjqkbIsdyQcW9zJ5Br716cl/7kLT9owiIwMJiAdjdYHab5+8ShWzU2D8Ae+LdQk8ZxIiIjkg==} + '@react-spectrum/image@3.5.11': + resolution: {integrity: sha512-2g7JWUcUz3738dwqn3BPVUKbpoUXoJsf3vB0l7k5Vo02v5K3rrkSZ7h6YKFeJgI6KKXZR4QGsZjybR20d1f6nw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/table@3.14.2': - resolution: {integrity: sha512-SqE5A/Ve5H2ApnAblMGBMGRzY7cgdQmNPzXB8tGVc38NsC/STmMkq9m54gAl8dBVNbLzzd6HJBe9lqz5keYIhQ==} + '@react-spectrum/inlinealert@3.2.15': + resolution: {integrity: sha512-sdJ1CKoAVMGPT4i0hOzW/noomxhc6wOlninUtB2hgmO07w7+lcvNMbtzVHutaySRLB96YbvWhHbRut2vUeFbiQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/tabs@3.8.2': - resolution: {integrity: sha512-lNpby7zUVdAeqo3mjGdPBxppEskOLyqR82LWBtP8Xg4olnjA5RmDFOuoJkIFttDX689zamjN3OE+Ra6WWgJczg==} + '@react-spectrum/label@3.16.15': + resolution: {integrity: sha512-APYm59GDNwa8IPZZqV9hj6k0YcR5h+AgHu87aZ4yWXLgAaF2jLsXS8vh1T+S5cHVwh5d0qkxH7nVrBH6OII4qA==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/toast@3.1.0': - resolution: {integrity: sha512-9W2+evz+EARrjkR1QPLlOL5lcNpVo6PjMAIygRSaCPJ6ftQAZ6B+7xTFGPFabWh83gwXQDUgoSwC3/vosvxZaQ==} + '@react-spectrum/labeledvalue@3.2.3': + resolution: {integrity: sha512-sjSvLNZnsBCnfQpeYWb//pp1/GNhIcC8UQajLVqKXDDQK7VYazC0HLIlTmJfCtjCEmarVutaoGIERO/G9yyfsw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/toggle@3.8.4': - resolution: {integrity: sha512-JbKoXhkJ5P5nCrNXChMos3yNqkIeGXPDEMS/dfkHlsjQYxJfylRm4j/nWoDXxxkUmfkvXcNEMofMn9iO1+H0DQ==} + '@react-spectrum/layout@3.6.15': + resolution: {integrity: sha512-98ssikEJBZY+7GOVj3gDEn/57wkQGdeaspFln8xj9EiqvBI6xRlBGhNM51ZRn+po8/6WNGdaFk7nfzUrO2FyEg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/tooltip@3.5.4': - resolution: {integrity: sha512-HxNTqn9nMBuGbEVeeuZyhrzNbyW7sgwk+8o0mN/BrMrk7E/UBhyL2SUxXnAUQftpTjX+29hmx1sPhIprIDzR3Q==} + '@react-spectrum/link@3.6.17': + resolution: {integrity: sha512-G6vAGB33r8EgH5/T9Yw9tOYkyzWiXHq5yoTauGbJ8y4ZTbRuIhN2o93Spg3TLybrZpt12DXqCtYYDqJ0uZFgWA==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/tree@3.8.10': - resolution: {integrity: sha512-sMqBRKAAZMiXJwlzAFpkXqUaGlNBfKnL8usAiKdoeGcLLJt2Ni9gPoPOLBJSPqLOAFCgLWtr5IYjdhel9aXRzQ==} + '@react-spectrum/list@3.10.1': + resolution: {integrity: sha512-tp2KyUyLu/JZCCiogo1qYJWqu+Gda15mSo4qu5ai1Xq4CH1mbPC5u3VvaCGV7pOf28p0AmRORfr8EAjtD5QMXA==} peerDependencies: + '@react-spectrum/provider': ^3.2.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/utils@3.10.6': - resolution: {integrity: sha512-O76ip4InfTTzAJrg8OaZxKU4vvjMDOpfA/PGNOytiXwBbkct2ZeZwaimJ8Bt9W1bj5VsZ81/o/tW4BacbdDOMA==} + '@react-spectrum/listbox@3.15.1': + resolution: {integrity: sha512-tSmIb048TcswIIStc3VDNpHV+0gtTO6GN5f/h2LCQkFtV/Vww+PzCc47H/mulZ6gidNs5pZzgzjBnmnG2dAf4Q==} peerDependencies: + '@react-spectrum/provider': ^3.2.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/virtualizer@4.4.0': - resolution: {integrity: sha512-y2jefrW0ffJpv0685IEKId6/wy0kgD/bxYuny9r9Z3utvcjjFl9fX9cBKsXII7ZxPiu0CP+wA6HQ53GU3BqCsw==} + '@react-spectrum/menu@3.22.1': + resolution: {integrity: sha512-5EtmDSOlTmWmeQJBW6CysU3J78a2B0SWQ0oo+YjWxFOD351Z67pNH+uVltq+VrwOn3oOZ6sIgzcnHUoTFDVeuA==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/autocomplete@3.0.0-alpha.31': - resolution: {integrity: sha512-L+5JtCAM+Y2/hCQ0BYXti6P2KGyiEM7FTYFBaTr2CoaHDN3u8e3cpDjOig83zzs9FcdUClovkqpVtvu26IZvhw==} + '@react-spectrum/meter@3.5.10': + resolution: {integrity: sha512-17vSYgnFFKpcgVeqkgXQAmRYOT0TC9BFhtjj6hdZEI8OxC1B+5EOryspDe7/73IKrttZi2jG3UKfd2WYJ15EhA==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/breadcrumbs@3.7.13': - resolution: {integrity: sha512-x94KEZaLIeHt9lqAkuaOopX5+rqCTMSHsciThUsBHK7QT64zrw6x2G1WKQ4zB4h52RGF5b+3sFXeR4bgX2sVLQ==} + '@react-spectrum/numberfield@3.9.13': + resolution: {integrity: sha512-VKl1RHfGI5S+gJqz2wd7I5pmWs54guimnirrRAVvTXE8ArlazB5SqfS40PsQnWzrit3BIecsTvziayYSofnb7A==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/button@3.12.1': - resolution: {integrity: sha512-z87stl4llWTi4C5qhUK1PKcEsG59uF/ZQpkRhMzX0KfgXobJY6yiIrry2xrpnlTPIVST6K1+kARhhSDOZ8zhLw==} + '@react-spectrum/overlays@5.7.5': + resolution: {integrity: sha512-TDfnRapeqKZqK5/OdlIEcqU0y2QFcRkwKG5a+sEEApcamVjcU/s/I5qdUBbTqE7FmqW3eswlC1obe81dfhipvQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/calendar@3.7.1': - resolution: {integrity: sha512-a/wGT9vZewPNL72Xni8T/gv4IS2w6iRtryqMF425OL+kaCQrxJYlkDxb74bQs9+k9ZYabrxJgz9vFcFnY7S9gw==} + '@react-spectrum/picker@3.15.9': + resolution: {integrity: sha512-69b85+mQc+qcNL+hOQPPdxS9QkbSL5j4NgAxPyCanU7rS1lefxUG3l/iAJmxpZS/WQ8r+aXinL6sx+OPPvRMyg==} peerDependencies: + '@react-spectrum/provider': ^3.1.4 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/checkbox@3.9.4': - resolution: {integrity: sha512-fU3Q1Nw+zbXKm68ba8V7cQzpiX0rIiAUKrBTl2BK97QiTlGBDvMCf4TfEuaNoGbJq+gx+X3n/3yr6c3IAb0ZIg==} + '@react-spectrum/progress@3.7.16': + resolution: {integrity: sha512-K4lC4kVM3kL4xtCkIK8OmY968SGU9IlrIJ60Wy2N3ycTzFTdzf8RaBXGSLt5ICDeOf0wfTwzaNq01zLU8KQtlw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/color@3.0.5': - resolution: {integrity: sha512-72uZ0B3EcaC2DGOpnhwHSVxcvQ3UDNSVR2gVx7PgUCGlEjhnn9i0UErIP8ZzV2RsAvjK6MrGs7ZCwZtl+LxCcg==} + '@react-spectrum/provider@3.10.5': + resolution: {integrity: sha512-Kh99gFOFbaqgHY9Zrdyjq/jaYvIGo8O5AL6vs/Aj+jZoU/BoU0oJEK2cMsBumntV8vXnGJGrmNyCi772X0iPIQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/combobox@3.13.5': - resolution: {integrity: sha512-wqHBF0YDkrp4Ylyxpd3xhnDECe5eao27bsu+4AvjlVKtaxaoppNq2MwSzkuSSS/GEUXT6K9DDjrGFcp07ad5gA==} + '@react-spectrum/radio@3.7.16': + resolution: {integrity: sha512-biAFzANxYMXn0ii+1V6Lui78hIZHvzH1o7ZIOXdLKIl3rBJR383k+tcAdFPttwss0ARPW5WBpBmZXnIdRHMzEQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/datepicker@3.12.1': - resolution: {integrity: sha512-+wv57fVd6Y/+KnHNEmVzfrQtWs85Ga1Xb63AIkBk+E294aMqFYqRg0dQds6V/qrP758TWnXUrhKza1zMbjHalw==} + '@react-spectrum/searchfield@3.8.16': + resolution: {integrity: sha512-aD/PssVwQTqqfBtSmhLM+3dcY81P0EhqQFinRuqmL31X+l1EpN9Ru1V7carPxF69qNIMpSWosq7rdp+4GrctFg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/dialog@3.5.18': - resolution: {integrity: sha512-g18CzT5xmiX/numpS6MrOGEGln8Xp9rr+zO70Dg+jM4GBOjXZp3BeclYQr9uisxGaj2uFLnORv9gNMMKxLNF6A==} + '@react-spectrum/slider@3.7.5': + resolution: {integrity: sha512-9J0UF9CtArHBs0PFDSqtia9Piui64NSMtS1jE7m554wbaEzG1AOItkw5gg+55iDhKQbL9U1TsftQl0nNiQdErQ==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/form@3.7.12': - resolution: {integrity: sha512-EZ6jZDa9FbLmqvukrLoUp3LUEVE0ZnBB5H6MHhE+QmjYRAvtWljx70xOqnn7sHweuS4+O1kDt1Ec1X5DU+U+BA==} + '@react-spectrum/statuslight@3.5.22': + resolution: {integrity: sha512-n/KGLiiEv9adPxBVB+KGOQJLfBY/C4CBLW1Wuy1tXyBtoJt9h8JsLbCII3S/9bb1d92uY75pOFP/ZQUfwnfxpA==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/grid@3.3.2': - resolution: {integrity: sha512-NwfydUbPc1zVi/Rp7+oRN2+vE1xMokc2J+nr0VcHwFGt1bR1psakHu45Pk/t763BDvPr/A3xIHc1rk3eWEhxJw==} + '@react-spectrum/switch@3.6.1': + resolution: {integrity: sha512-iI5jujH+17HifWhwOZzeJQSSbASikCFyr+9HG0jC1f3mUcvm8B9Ukj8WRUoGYXO8goDskaq3Mxbc6lEgkdZoGw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/link@3.6.1': - resolution: {integrity: sha512-IZDSc10AuVKe7V8Te+3q8d220oANE4N43iljQe3yHg7GZOfH/51bv8FPUukreLs1t2fgtGeNAzG71Ep+j/jXIw==} + '@react-spectrum/table@3.17.1': + resolution: {integrity: sha512-2dPWE+xXi7E4iU1Hm8TQHprl5z36rOc1wKvb4xH/J5ujXhxCgNgIQUg5G9Uy00DMogU6UShZ9zTZPGVc1N81hw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/listbox@3.7.0': - resolution: {integrity: sha512-26Lp0Gou502VJLDSrIpMg7LQuVHznxzyuSY/zzyNX9eopukXvHn682u90fwDqgmZz7dzxUOWtuwDea+bp/UjtA==} + '@react-spectrum/tabs@3.8.20': + resolution: {integrity: sha512-zgB/L37Y4P7xXSIWFgfmuLYe9NDYSZXqdtSjrHzfiuvsIe/1cuQHj6Mc4GLLQQjGpi1eC4bqGt60MMg1gkPs/g==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/menu@3.10.1': - resolution: {integrity: sha512-wkyWzIqaCbUYiD7YXr8YvdimB1bxQHqgj6uE4MKzryCbVqb4L8fRUM0V6AHkQS1TxBYNkNn1h4g7XNd5Vmyf3Q==} + '@react-spectrum/tag@3.3.0': + resolution: {integrity: sha512-AuA4EElyqSCGcexdcMLmuxV1qnBQkO0H/l7b/NJ13KxQ3/Vy/Z0M5uW5mSY3v4A4CvmifTo7uQkc4ryEX6xc4w==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/meter@3.4.9': - resolution: {integrity: sha512-Jhd873zc/Bx/86NB9nasMUWc013VnURVtMYbbkuRWiFr/ZoEvZzO1uoSIXf+Sob4xpiVhT/ltvJZTK4t4B9lTg==} + '@react-spectrum/text@3.5.15': + resolution: {integrity: sha512-FGQQQ+qipNJ/YLja8n7sxLLhBsYNa/cBE70mL57VmMTe3BnHTOI51RyvvdGyR8173Jv8wpuzZqNguW2JukJpNw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/numberfield@3.8.11': - resolution: {integrity: sha512-D66Bop7M3JKzBV2vsECsVYfPrx8eRIx4/K2KLo/XjwMA7C34+Ou07f/bnD1TQQ/wr6XwiFxZTi6JsKDwnST+9Q==} + '@react-spectrum/textfield@3.13.3': + resolution: {integrity: sha512-VaB5Snm1fvzeTUNLgw6Y55M1D/4KHdGPvk6SLzJ4z6YIYlX9yISnBB18jOojzHnAzOLPxhHez/P6m5sW/5/6yw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/overlays@3.8.15': - resolution: {integrity: sha512-ppDfezvVYOJDHLZmTSmIXajxAo30l2a1jjy4G65uBYy8J8kTZU7mcfQql5Pii1TwybcNMsayf2WtPItiWmJnOA==} + '@react-spectrum/theme-dark@3.5.18': + resolution: {integrity: sha512-23DO1AS1ZevS0zubIluhxWag2ulfYqmzB9OWEd9jGqyM+f253nJJ3mscO9H1eFi4MyUEx0zG4HoumIgD3FnCEQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/progress@3.5.12': - resolution: {integrity: sha512-wvhFz6vdlfKBtnzKvD/89N+0PF3yPQ+IVFRQvZ2TBrP7nF+ZA2pNLcZVcEYbKjHzmvEZRGu//ePC9hRJD9K30w==} + '@react-spectrum/theme-default@3.5.18': + resolution: {integrity: sha512-BMDV1yOW1E57EJLmtri6Kf1fm+zfDzi38zkr5y1aYJ+HO+couZLm6Be85YMebya1/n010xxS7xxoAv6Zm/evyw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/radio@3.8.9': - resolution: {integrity: sha512-l4uzlxmGGuR8IkWrMYdKj1sc3Pgo/LdfEGuIgK+d8kjPu0AZcnSgp5Oz035bCosZUabY6dEWxQHIoAH2zN7YZA==} + '@react-spectrum/theme-light@3.4.18': + resolution: {integrity: sha512-HtCKXthRoVVLsxUQAwLEq5JqTyxzoxSpwurYlZkhvZjQePfczERYIWT1YVxn7v2QexRyKFAw9k7Gw8CtRmEY2Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/searchfield@3.6.2': - resolution: {integrity: sha512-XQRQyJLNC9uLyCq+97eiqeQuM6+dCMrHu6aH6KSVt1Xh6HMmdx/TdSf6JrMkN+1xSxcW3lDE2iSf3jXDT87gag==} + '@react-spectrum/toast@3.0.3': + resolution: {integrity: sha512-uYStvJB4bfurs97X6enGhRobFiOVkPzTLsw+Av4NW1UAjYFepT9zaSwzO4L3ZsAX/YX8L3eesOXRhjmAZpyx5Q==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/select@3.9.12': - resolution: {integrity: sha512-qo+9JS1kfMxuibmSmMp0faGKbeVftYnSk1f7Rh5PKi4tzMe3C0A9IAr27hUOfWeJMBOdetaoTpYmoXW6+CgW3g==} + '@react-spectrum/tooltip@3.7.5': + resolution: {integrity: sha512-bRymbazFPqfQhKfgRpWJFVPaJA7ip73EdBbgmsELEhLYzbEB960r/GVOAGP0hshp0m2WRCEfvqyZfzpkq6mJBw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/shared@3.29.1': - resolution: {integrity: sha512-KtM+cDf2CXoUX439rfEhbnEdAgFZX20UP2A35ypNIawR7/PFFPjQDWyA2EnClCcW/dLWJDEPX2U8+EJff8xqmQ==} + '@react-spectrum/tree@3.1.1': + resolution: {integrity: sha512-UgSOT2cfuPu43f4loSu//uNYfaaU/1GE9dvbtCk8c+fpPi6mmVm7r9HWna3UVbV5W1ZDW5L5UAkf+bmmzUOxXg==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/slider@3.7.11': - resolution: {integrity: sha512-uNhNLhVrt/2teXBOJSoZXyXg308A72qe1HOmlGdJcnh8iXA35y5ZHzeK1P6ZOJ37Aeh7bYGm3/UdURmFgSlW7w==} + '@react-spectrum/utils@3.12.5': + resolution: {integrity: sha512-a6I2UUKpaC/ym4wVt44jg78T7ej4q24p4kEjAZ05KcTZ5XH6sK14Pbnm8BAP/55aNKpEcM7sfgeQOVDB67+rNQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/switch@3.5.11': - resolution: {integrity: sha512-PJbZHwlE98OSuLzI6b1ei6Qa+FaiwlCRH3tOTdx/wPSdqmD3mRWEn7E9ftM6FC8hnxl/LrGLszQMT62yEQp5vQ==} + '@react-spectrum/view@3.6.19': + resolution: {integrity: sha512-m6qSOwCvEIZL83StUftrefYAvB8n/ZQl6XuJ22y72Lm4tUO/siucLFUmK1/TtpQuqS0mklIrKKT90hA2H/k+nw==} peerDependencies: + '@react-spectrum/provider': ^3.0.0 react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/table@3.13.0': - resolution: {integrity: sha512-kn+OsEWJfUSSb4N4J0yl+tqx5grDpcaWcu2J8hA62hQCr/Leuj946ScYaKA9a/p0MAaOAaeCWx/Zcss6F8gJIQ==} + '@react-spectrum/well@3.4.23': + resolution: {integrity: sha512-Q/j9QxxBBQSHkxxDGgz8PFXmSlU7N4i/n9jb9YQTgNmPQXm2NvjJKYrr28y5dCTZjlPL31C2zX6bLlIaNWwS4A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/tabs@3.3.15': - resolution: {integrity: sha512-VLgh9YLQdS4FQSk0sGTNHEVN2jeC0fZvOqEFHaEDgDyDgVOukxYuHjqVIx2IavYu1yNBrGO2b6P4M6dF+hcgwQ==} + '@react-stately/autocomplete@3.0.0-beta.1': + resolution: {integrity: sha512-ohs6QOtJouQ+Y1+zRKiCzv57QogSTRuOA1QfrnIS1YPwKO1EDQXSqFkq2htK5+bN9GCm94yo6r4iX++SZKmLXA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/textfield@3.12.2': - resolution: {integrity: sha512-dMm0cGLG5bkJYvt6lqXIty5HXTZjuIpa9I8jAIYua//J8tESAOE9BA285Zl43kx7cZGtgrHKHVFjITDLNUrNhA==} + '@react-stately/calendar@3.8.1': + resolution: {integrity: sha512-pTPRmPRD/0JeKhCRvXhVIH/yBimtIHnZGUxH12dcTl3MLxjXQDTn6/LWK0s4rzJcjsC+EzGUCVBBXgESb7PUlw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/tooltip@3.4.17': - resolution: {integrity: sha512-yjySKA1uzJAbio+xGv03DUoWIajteqtsXMd4Y3AJEdBFqSYhXbyrgAxw0oJDgRAgRxY4Rx5Hrhvbt/z7Di94QQ==} + '@react-stately/checkbox@3.6.14': + resolution: {integrity: sha512-eGl0GP/F/nUrA33gDCYikyXK+Yer7sFOx8T4EU2AF4E8n1VQIRiVNaxDg7Ar6L3CMKor01urppFHFJsBUnSgyw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@redux-devtools/extension@3.3.0': - resolution: {integrity: sha512-X34S/rC8S/M1BIrkYD1mJ5f8vlH0BDqxXrs96cvxSBo4FhMdbhU+GUGsmNYov1xjSyLMHgo8NYrUG8bNX7525g==} + '@react-stately/collections@3.12.4': + resolution: {integrity: sha512-H+47fRkwYX2/BdSA+NLTzbR+8QclZXyBgC7tHH3dzljyxNimhrMDnbmk520nvGCebNf3nuxtFHq9iVTLpazSVA==} peerDependencies: - redux: ^3.1.0 || ^4.0.0 || ^5.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} + '@react-stately/color@3.8.5': + resolution: {integrity: sha512-yi1MQAbYuAYKu0AtMO+mWQWlWk6OzGMa9j4PGtQN2PI5Uv1NylWOvdquxbUJ4GUAuSYNopYG8Ci9MZMwtito8w==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-android-arm-eabi@4.41.0': - resolution: {integrity: sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==} - cpu: [arm] - os: [android] + '@react-stately/combobox@3.10.5': + resolution: {integrity: sha512-27SkClMqbMAKuVnmXhYzYisbLfzV7MO/DEiqWO4/3l+PZ+whL7Wi/Ek7Wqlfluid/y4pN4EkHCKNt4HJ2mhORQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-android-arm64@4.41.0': - resolution: {integrity: sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==} - cpu: [arm64] - os: [android] + '@react-stately/data@3.13.0': + resolution: {integrity: sha512-7LYPxVbWB6tvmLYKO19H5G5YtXV6eKCSXisOUiL9fVnOcGOPDK5z310sj9TP5vaX7zVPtwy0lDBUrZuRfhvQIQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-darwin-arm64@4.41.0': - resolution: {integrity: sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==} - cpu: [arm64] - os: [darwin] + '@react-stately/datepicker@3.14.1': + resolution: {integrity: sha512-ad3IOrRppy/F8FZpznGacsaWWHdzUGZ4vpymD+y6TYeQ+RQvS9PLA5Z1TanH9iqLZgkf6bvVggJFg/hhDh2hmg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-darwin-x64@4.41.0': - resolution: {integrity: sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==} - cpu: [x64] - os: [darwin] + '@react-stately/disclosure@3.0.4': + resolution: {integrity: sha512-RE4hYnDYgsd5bi01z/hZHShRGKxW++xCA6PCufxtipc1sxZGUF4Sb1tTSIxOjh1dq5iDVdrAQAS6en0weaGgLA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-freebsd-arm64@4.41.0': - resolution: {integrity: sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==} - cpu: [arm64] - os: [freebsd] + '@react-stately/dnd@3.5.4': + resolution: {integrity: sha512-YkvkehpsSeGZPH7S7EYyLchSxZPhzShdf9Zjh6UAsM7mAcxjRsChMqsf6zuM+l0jgMo40Ka1mvwDYegz92Qkyg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-freebsd-x64@4.41.0': - resolution: {integrity: sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==} - cpu: [x64] - os: [freebsd] + '@react-stately/flags@3.1.1': + resolution: {integrity: sha512-XPR5gi5LfrPdhxZzdIlJDz/B5cBf63l4q6/AzNqVWFKgd0QqY5LvWJftXkklaIUpKSJkIKQb8dphuZXDtkWNqg==} - '@rollup/rollup-linux-arm-gnueabihf@4.41.0': - resolution: {integrity: sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==} - cpu: [arm] - os: [linux] + '@react-stately/form@3.1.4': + resolution: {integrity: sha512-A6GOaZ9oEIo5/XOE+JT9Z8OBt0osIOfes4EcIxGS1C9ght/Smg0gNcIJ2/Wle8qmro4RoJcza2yJ+EglVOuE0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-arm-musleabihf@4.41.0': - resolution: {integrity: sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==} - cpu: [arm] - os: [linux] + '@react-stately/grid@3.11.2': + resolution: {integrity: sha512-P0vfK5B1NW8glYD6QMrR2X/7UMXx2J8v48QIQV6KgLZjFbyXhzRb+MY0BoIy4tUfJL0yQU2GKbKKVSUIQxbv0g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-arm64-gnu@4.41.0': - resolution: {integrity: sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==} - cpu: [arm64] - os: [linux] + '@react-stately/layout@4.3.0': + resolution: {integrity: sha512-1czYPaWsEi/ecSOMBiMmH82iTeAIez/72HQjvP0i5CK2ZqLV0M1/Z10lesJHdOE+ay2EkE2qEqbHJnCdCqzkpA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-arm64-musl@4.41.0': - resolution: {integrity: sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==} - cpu: [arm64] - os: [linux] + '@react-stately/list@3.12.2': + resolution: {integrity: sha512-XPGvdPidOV4hnpmaUNc4C/1jX7ZhBwmAI9p6bEXDA3du3XrWess6MWcaQvPxXbrZ6ZX8/OyOC2wp7ixJoJRGyA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-loongarch64-gnu@4.41.0': - resolution: {integrity: sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==} - cpu: [loong64] - os: [linux] + '@react-stately/menu@3.9.4': + resolution: {integrity: sha512-sqYcSBuTEtCebZuByUou2aZzwlnrrOlrvmGwFNJy49N3LXXXPENCcCERuWa8TE9eBevIVTQorBZlID6rFG+wdQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': - resolution: {integrity: sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==} - cpu: [ppc64] - os: [linux] + '@react-stately/numberfield@3.9.12': + resolution: {integrity: sha512-E56RuRRdu/lzd8e5aEifP4n8CL/as0sZqIQFSyMv/ZUIIGeksqy+zykzo01skaHKY8u2NixrVHPVDtvPcRuooA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-riscv64-gnu@4.41.0': - resolution: {integrity: sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==} - cpu: [riscv64] - os: [linux] + '@react-stately/overlays@3.6.16': + resolution: {integrity: sha512-+Ve/TBlUNg3otVC4ZfCq1a8q8FwC7xNebWkVOCGviTqiYodPCGqBwR9Z1xonuFLF/HuQYqALHHTOZtxceU+nVQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-riscv64-musl@4.41.0': - resolution: {integrity: sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==} - cpu: [riscv64] - os: [linux] + '@react-stately/radio@3.10.13': + resolution: {integrity: sha512-q7UKcVYY7rqpxKfYRzvKVEqFhxElDFX2c+xliZQtjXuSexhxRb2xjEh+bDkhzbXzrJkrBT6VmE/rSYPurC3xTw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-s390x-gnu@4.41.0': - resolution: {integrity: sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==} - cpu: [s390x] - os: [linux] + '@react-stately/searchfield@3.5.12': + resolution: {integrity: sha512-RC3QTEPVNUbgtuqzpwPUfbV9UkUC1j4XkHoynWDbMt0bE0tPe2Picnl0/r/kq6MO527idV6Ur4zuOF4x9a97LQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-x64-gnu@4.41.0': - resolution: {integrity: sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==} - cpu: [x64] - os: [linux] + '@react-stately/select@3.6.13': + resolution: {integrity: sha512-saZo67CreQZPdmqvz9+P6N4kjohpwdVncH98qBi0Q2FvxGAMnpJQgx97rtfDvnSziST5Yx1JnMI4kSSndbtFwg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-linux-x64-musl@4.41.0': - resolution: {integrity: sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==} - cpu: [x64] - os: [linux] + '@react-stately/selection@3.20.2': + resolution: {integrity: sha512-Fw6nnG+VKMsncsY4SNxGYOhnHojVFzFv+Uhy6P39QBp6AXtSaRKMg2VR4MPxQ7XgOjHh5ZuSvCY1RwocweqjwQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-win32-arm64-msvc@4.41.0': - resolution: {integrity: sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==} - cpu: [arm64] - os: [win32] + '@react-stately/slider@3.6.4': + resolution: {integrity: sha512-6SdG0VJZLMRIBnPjqkbIsdyQcW9zJ5Br716cl/7kLT9owiIwMJiAdjdYHab5+8ShWzU2D8Ae+LdQk8ZxIiIjkg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-win32-ia32-msvc@4.41.0': - resolution: {integrity: sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==} - cpu: [ia32] - os: [win32] + '@react-stately/table@3.14.2': + resolution: {integrity: sha512-SqE5A/Ve5H2ApnAblMGBMGRzY7cgdQmNPzXB8tGVc38NsC/STmMkq9m54gAl8dBVNbLzzd6HJBe9lqz5keYIhQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rollup/rollup-win32-x64-msvc@4.41.0': - resolution: {integrity: sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==} - cpu: [x64] - os: [win32] + '@react-stately/tabs@3.8.2': + resolution: {integrity: sha512-lNpby7zUVdAeqo3mjGdPBxppEskOLyqR82LWBtP8Xg4olnjA5RmDFOuoJkIFttDX689zamjN3OE+Ra6WWgJczg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@react-stately/toast@3.1.0': + resolution: {integrity: sha512-9W2+evz+EARrjkR1QPLlOL5lcNpVo6PjMAIygRSaCPJ6ftQAZ6B+7xTFGPFabWh83gwXQDUgoSwC3/vosvxZaQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rushstack/eslint-patch@1.11.0': - resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + '@react-stately/toggle@3.8.4': + resolution: {integrity: sha512-JbKoXhkJ5P5nCrNXChMos3yNqkIeGXPDEMS/dfkHlsjQYxJfylRm4j/nWoDXxxkUmfkvXcNEMofMn9iO1+H0DQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rushstack/node-core-library@4.0.2': - resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} + '@react-stately/tooltip@3.5.4': + resolution: {integrity: sha512-HxNTqn9nMBuGbEVeeuZyhrzNbyW7sgwk+8o0mN/BrMrk7E/UBhyL2SUxXnAUQftpTjX+29hmx1sPhIprIDzR3Q==} peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rushstack/rig-package@0.5.2': - resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + '@react-stately/tree@3.8.10': + resolution: {integrity: sha512-sMqBRKAAZMiXJwlzAFpkXqUaGlNBfKnL8usAiKdoeGcLLJt2Ni9gPoPOLBJSPqLOAFCgLWtr5IYjdhel9aXRzQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rushstack/terminal@0.10.0': - resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} + '@react-stately/utils@3.10.6': + resolution: {integrity: sha512-O76ip4InfTTzAJrg8OaZxKU4vvjMDOpfA/PGNOytiXwBbkct2ZeZwaimJ8Bt9W1bj5VsZ81/o/tW4BacbdDOMA==} peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rushstack/ts-command-line@4.19.1': - resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} + '@react-stately/virtualizer@4.4.0': + resolution: {integrity: sha512-y2jefrW0ffJpv0685IEKId6/wy0kgD/bxYuny9r9Z3utvcjjFl9fX9cBKsXII7ZxPiu0CP+wA6HQ53GU3BqCsw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@semantic-ui-react/event-stack@3.1.3': - resolution: {integrity: sha512-FdTmJyWvJaYinHrKRsMLDrz4tTMGdFfds299Qory53hBugiDvGC0tEJf+cHsi5igDwWb/CLOgOiChInHwq8URQ==} + '@react-types/actionbar@3.1.15': + resolution: {integrity: sha512-Hy2tZa2pD20ZHHIoMccemO1w2AdHNrq8jjHBv28lqo6Qh1BeMkjApWd2uY//dNKVEpZ7dH92AN1PcotF67BhoQ==} peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@seznam/compose-react-refs@1.0.6': - resolution: {integrity: sha512-izzOXQfeQLonzrIQb8u6LQ8dk+ymz3WXTIXjvOlTXHq6sbzROg3NWU+9TTAOpEoK9Bth24/6F/XrfHJ5yR5n6Q==} + '@react-types/actiongroup@3.4.17': + resolution: {integrity: sha512-lb0AuDauSJ5SY747fEgNhagx7lmeutlXsYPgJWEiLgwgKcYRo9lKJqkzzEGeDXhxx6eSIQhIvywXv394FNCP7g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sheerun/mutationobserver-shim@0.3.3': - resolution: {integrity: sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==} + '@react-types/autocomplete@3.0.0-alpha.31': + resolution: {integrity: sha512-L+5JtCAM+Y2/hCQ0BYXti6P2KGyiEM7FTYFBaTr2CoaHDN3u8e3cpDjOig83zzs9FcdUClovkqpVtvu26IZvhw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + '@react-types/avatar@3.0.15': + resolution: {integrity: sha512-UMeokF2xL/quG91mnmMYxeZFudTRYZI6YgxIE3itjFdnV9DMD3rmqeJ6jspDcBpGydtf5ZxuKgsPnrGO9Cb+Bg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + '@react-types/badge@3.1.17': + resolution: {integrity: sha512-gMUmXEwIZn45aUQ+HevDIS9js1H4uPxalKhM9DND8PxZItMRqePHvDlmVNZB/5Poelm6WXwEJBQND/ns1mzIMQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@react-types/breadcrumbs@3.7.13': + resolution: {integrity: sha512-x94KEZaLIeHt9lqAkuaOopX5+rqCTMSHsciThUsBHK7QT64zrw6x2G1WKQ4zB4h52RGF5b+3sFXeR4bgX2sVLQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sigstore/bundle@1.1.0': - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@react-types/button@3.12.1': + resolution: {integrity: sha512-z87stl4llWTi4C5qhUK1PKcEsG59uF/ZQpkRhMzX0KfgXobJY6yiIrry2xrpnlTPIVST6K1+kARhhSDOZ8zhLw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sigstore/protobuf-specs@0.2.1': - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@react-types/buttongroup@3.3.17': + resolution: {integrity: sha512-rz97Zz/PquMNpMNNlwKDBSrdv8NN5kXSuZqlQOjX/C3iLoeAMrUX6xBl7uAbesfcp0ztEUxxXFE4t0ASRz8neA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sigstore/sign@1.0.0': - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@react-types/calendar@3.7.1': + resolution: {integrity: sha512-a/wGT9vZewPNL72Xni8T/gv4IS2w6iRtryqMF425OL+kaCQrxJYlkDxb74bQs9+k9ZYabrxJgz9vFcFnY7S9gw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sigstore/tuf@1.0.3': - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@react-types/checkbox@3.9.4': + resolution: {integrity: sha512-fU3Q1Nw+zbXKm68ba8V7cQzpiX0rIiAUKrBTl2BK97QiTlGBDvMCf4TfEuaNoGbJq+gx+X3n/3yr6c3IAb0ZIg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@react-types/color@3.0.5': + resolution: {integrity: sha512-72uZ0B3EcaC2DGOpnhwHSVxcvQ3UDNSVR2gVx7PgUCGlEjhnn9i0UErIP8ZzV2RsAvjK6MrGs7ZCwZtl+LxCcg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sindresorhus/is@0.14.0': - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} + '@react-types/combobox@3.13.5': + resolution: {integrity: sha512-wqHBF0YDkrp4Ylyxpd3xhnDECe5eao27bsu+4AvjlVKtaxaoppNq2MwSzkuSSS/GEUXT6K9DDjrGFcp07ad5gA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} + '@react-types/contextualhelp@3.2.18': + resolution: {integrity: sha512-s0EHe0i57XO+Am7MdlRYNshv0K/zT0liQHoAcRR0I3xzViASf5N7YCGLLoIlWQDRYUB09KBMDsZT2zSZmsxTHA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} + '@react-types/datepicker@3.12.1': + resolution: {integrity: sha512-+wv57fVd6Y/+KnHNEmVzfrQtWs85Ga1Xb63AIkBk+E294aMqFYqRg0dQds6V/qrP758TWnXUrhKza1zMbjHalw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} + '@react-types/dialog@3.5.18': + resolution: {integrity: sha512-g18CzT5xmiX/numpS6MrOGEGln8Xp9rr+zO70Dg+jM4GBOjXZp3BeclYQr9uisxGaj2uFLnORv9gNMMKxLNF6A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@sinonjs/commons@1.8.6': - resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@sinonjs/fake-timers@11.3.1': - resolution: {integrity: sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==} - - '@sinonjs/fake-timers@6.0.1': - resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} - - '@sinonjs/fake-timers@7.1.2': - resolution: {integrity: sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==} - - '@sinonjs/samsam@6.1.3': - resolution: {integrity: sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==} - - '@sinonjs/text-encoding@0.7.3': - resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} - - '@storybook/addon-actions@8.6.14': - resolution: {integrity: sha512-mDQxylxGGCQSK7tJPkD144J8jWh9IU9ziJMHfB84PKpI/V5ZgqMDnpr2bssTrUaGDqU5e1/z8KcRF+Melhs9pQ==} + '@react-types/divider@3.3.17': + resolution: {integrity: sha512-lY/JuKmsgK9wdClbM7aN7FZ554g7RF9vXOqjyNS+j+OBnaXJWymevYHrFs7H+e92gY2yYAqeg6UUy0quYbteUg==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-backgrounds@8.6.14': - resolution: {integrity: sha512-l9xS8qWe5n4tvMwth09QxH2PmJbCctEvBAc1tjjRasAfrd69f7/uFK4WhwJAstzBTNgTc8VXI4w8ZR97i1sFbg==} + '@react-types/form@3.7.12': + resolution: {integrity: sha512-EZ6jZDa9FbLmqvukrLoUp3LUEVE0ZnBB5H6MHhE+QmjYRAvtWljx70xOqnn7sHweuS4+O1kDt1Ec1X5DU+U+BA==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-controls@8.6.14': - resolution: {integrity: sha512-IiQpkNJdiRyA4Mq9mzjZlvQugL/aE7hNgVxBBGPiIZG6wb6Ht9hNnBYpap5ZXXFKV9p2qVI0FZK445ONmAa+Cw==} + '@react-types/grid@3.3.2': + resolution: {integrity: sha512-NwfydUbPc1zVi/Rp7+oRN2+vE1xMokc2J+nr0VcHwFGt1bR1psakHu45Pk/t763BDvPr/A3xIHc1rk3eWEhxJw==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-docs@8.6.14': - resolution: {integrity: sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==} + '@react-types/illustratedmessage@3.3.17': + resolution: {integrity: sha512-8A9yfJJijoAoBhw/HQXPep9lNt6w/h/JU3sL1he9N2K8OzLgf2Jr6Cw1DN18jTjwyR6RFmoCrX4s0W3BhAD/vQ==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-essentials@8.6.14': - resolution: {integrity: sha512-5ZZSHNaW9mXMOFkoPyc3QkoNGdJHETZydI62/OASR0lmPlJ1065TNigEo5dJddmZNn0/3bkE8eKMAzLnO5eIdA==} + '@react-types/image@3.4.9': + resolution: {integrity: sha512-2Pj936Iztygs6DPQLZIWr9itVrEU4iyytISjbeW+O+3DTUmYXxEfpWMo1btyNeEV1qI2GSMwU6Zm5biHk6G23Q==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-highlight@8.6.14': - resolution: {integrity: sha512-4H19OJlapkofiE9tM6K/vsepf4ir9jMm9T+zw5L85blJZxhKZIbJ6FO0TCG9PDc4iPt3L6+aq5B0X29s9zicNQ==} + '@react-types/label@3.9.11': + resolution: {integrity: sha512-1xmF7cyCLPTvRJQbF+1BkfnCCz4j7cepr5elmwRUYXgzLGgZKQftt81zbzohFgTX/vJxW4VQrYqUg3ZjdbvJnA==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-interactions@8.6.14': - resolution: {integrity: sha512-8VmElhm2XOjh22l/dO4UmXxNOolGhNiSpBcls2pqWSraVh4a670EyYBZsHpkXqfNHo2YgKyZN3C91+9zfH79qQ==} + '@react-types/layout@3.3.23': + resolution: {integrity: sha512-LNp4ABsmTv6Zv3eW8NrUMRvS+uQEi3C6O7EtiSzNOCc42CU36lc6H9ReqVLzm/MkGn4gENq2aJiaMsiS/xdFyA==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-links@8.6.14': - resolution: {integrity: sha512-DRlXHIyZzOruAZkxmXfVgTF+4d6K27pFcH4cUsm3KT1AXuZbr23lb5iZHpUZoG6lmU85Sru4xCEgewSTXBIe1w==} + '@react-types/link@3.6.1': + resolution: {integrity: sha512-IZDSc10AuVKe7V8Te+3q8d220oANE4N43iljQe3yHg7GZOfH/51bv8FPUukreLs1t2fgtGeNAzG71Ep+j/jXIw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 - peerDependenciesMeta: - react: - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-mdx-gfm@8.6.14': - resolution: {integrity: sha512-ClfngOSwFrhc3x2dXSzfBSSbzz4VHzUs0XOg9V8fj1bgQhmPoMz9OD3vIjbnJOC33wORbC0ZpfcQPt3RGILYrA==} + '@react-types/listbox@3.7.0': + resolution: {integrity: sha512-26Lp0Gou502VJLDSrIpMg7LQuVHznxzyuSY/zzyNX9eopukXvHn682u90fwDqgmZz7dzxUOWtuwDea+bp/UjtA==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-measure@8.6.14': - resolution: {integrity: sha512-1Tlyb72NX8aAqm6I6OICsUuGOP6hgnXcuFlXucyhKomPa6j3Eu2vKu561t/f0oGtAK2nO93Z70kVaEh5X+vaGw==} + '@react-types/menu@3.10.1': + resolution: {integrity: sha512-wkyWzIqaCbUYiD7YXr8YvdimB1bxQHqgj6uE4MKzryCbVqb4L8fRUM0V6AHkQS1TxBYNkNn1h4g7XNd5Vmyf3Q==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-outline@8.6.14': - resolution: {integrity: sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==} + '@react-types/meter@3.4.9': + resolution: {integrity: sha512-Jhd873zc/Bx/86NB9nasMUWc013VnURVtMYbbkuRWiFr/ZoEvZzO1uoSIXf+Sob4xpiVhT/ltvJZTK4t4B9lTg==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-toolbars@8.6.14': - resolution: {integrity: sha512-W/wEXT8h3VyZTVfWK/84BAcjAxTdtRiAkT2KAN0nbSHxxB5KEM1MjKpKu2upyzzMa3EywITqbfy4dP6lpkVTwQ==} + '@react-types/numberfield@3.8.11': + resolution: {integrity: sha512-D66Bop7M3JKzBV2vsECsVYfPrx8eRIx4/K2KLo/XjwMA7C34+Ou07f/bnD1TQQ/wr6XwiFxZTi6JsKDwnST+9Q==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/addon-viewport@8.6.14': - resolution: {integrity: sha512-gNzVQbMqRC+/4uQTPI2ZrWuRHGquTMZpdgB9DrD88VTEjNudP+J6r8myLfr2VvGksBbUMHkGHMXHuIhrBEnXYA==} + '@react-types/overlays@3.8.15': + resolution: {integrity: sha512-ppDfezvVYOJDHLZmTSmIXajxAo30l2a1jjy4G65uBYy8J8kTZU7mcfQql5Pii1TwybcNMsayf2WtPItiWmJnOA==} peerDependencies: - storybook: ^8.6.14 - - '@storybook/addon-webpack5-compiler-babel@3.0.3': - resolution: {integrity: sha512-rVQTTw+oxJltbVKaejIWSHwVKOBJs3au21f/pYXhV0aiNgNhxEa3vr79t/j0j8ox8uJtzM8XYOb7FlkvGfHlwQ==} - engines: {node: '>=18'} + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/blocks@8.6.14': - resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} + '@react-types/progress@3.5.12': + resolution: {integrity: sha512-wvhFz6vdlfKBtnzKvD/89N+0PF3yPQ+IVFRQvZ2TBrP7nF+ZA2pNLcZVcEYbKjHzmvEZRGu//ePC9hRJD9K30w==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^8.6.14 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/builder-vite@8.6.14': - resolution: {integrity: sha512-ajWYhy32ksBWxwWHrjwZzyC0Ii5ZTeu5lsqA95Q/EQBB0P5qWlHWGM3AVyv82Mz/ND03ebGy123uVwgf6olnYQ==} + '@react-types/provider@3.8.9': + resolution: {integrity: sha512-qICEEMc3LROYwbvDguxdftP2/XFQKKh8jVP1X1v8Q12T28FD5/O64bX/VT4T5PUkC+lpSEa59iQWKfDwSBqnBw==} peerDependencies: - storybook: ^8.6.14 - vite: ^4.0.0 || ^5.0.0 || ^6.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/builder-webpack5@8.6.14': - resolution: {integrity: sha512-YZYAqc6NBKoMTKZpjxnkMch6zDtMkBZdS/yaji1+wJX2QPFBwTbSh7SpeBxDp1S11gXSAJ4f1btUWeqSqo8nJA==} + '@react-types/radio@3.8.9': + resolution: {integrity: sha512-l4uzlxmGGuR8IkWrMYdKj1sc3Pgo/LdfEGuIgK+d8kjPu0AZcnSgp5Oz035bCosZUabY6dEWxQHIoAH2zN7YZA==} peerDependencies: - storybook: ^8.6.14 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/components@8.6.14': - resolution: {integrity: sha512-HNR2mC5I4Z5ek8kTrVZlIY/B8gJGs5b3XdZPBPBopTIN6U/YHXiDyOjY3JlaS4fSG1fVhp/Qp1TpMn1w/9m1pw==} + '@react-types/searchfield@3.6.2': + resolution: {integrity: sha512-XQRQyJLNC9uLyCq+97eiqeQuM6+dCMrHu6aH6KSVt1Xh6HMmdx/TdSf6JrMkN+1xSxcW3lDE2iSf3jXDT87gag==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/core-webpack@8.6.14': - resolution: {integrity: sha512-iG7r8osNKabSGBbuJuSeMWKbU+ilt5PvzTYkClcYaagla/DliXkXvfywA6jOugVk/Cpx+c6tVKlPfjLcaQHwmw==} + '@react-types/select@3.9.12': + resolution: {integrity: sha512-qo+9JS1kfMxuibmSmMp0faGKbeVftYnSk1f7Rh5PKi4tzMe3C0A9IAr27hUOfWeJMBOdetaoTpYmoXW6+CgW3g==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/core@8.6.14': - resolution: {integrity: sha512-1P/w4FSNRqP8j3JQBOi3yGt8PVOgSRbP66Ok520T78eJBeqx9ukCfl912PQZ7SPbW3TIunBwLXMZOjZwBB/JmA==} + '@react-types/shared@3.29.1': + resolution: {integrity: sha512-KtM+cDf2CXoUX439rfEhbnEdAgFZX20UP2A35ypNIawR7/PFFPjQDWyA2EnClCcW/dLWJDEPX2U8+EJff8xqmQ==} peerDependencies: - prettier: ^2 || ^3 - peerDependenciesMeta: - prettier: - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/csf-plugin@8.6.14': - resolution: {integrity: sha512-dErtc9teAuN+eelN8FojzFE635xlq9cNGGGEu0WEmMUQ4iJ8pingvBO1N8X3scz4Ry7KnxX++NNf3J3gpxS8qQ==} + '@react-types/slider@3.7.11': + resolution: {integrity: sha512-uNhNLhVrt/2teXBOJSoZXyXg308A72qe1HOmlGdJcnh8iXA35y5ZHzeK1P6ZOJ37Aeh7bYGm3/UdURmFgSlW7w==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/csf@0.1.13': - resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} + '@react-types/statuslight@3.3.17': + resolution: {integrity: sha512-yEbmo3kbkTotyNkWS2RqZpCjnCxlEzL2QHwJTnBb2fzeRrANS7l8wJtpjquSmzvBMKGe8Iuv9JAq9cg97eNbmQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/global@5.0.0': - resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + '@react-types/switch@3.5.11': + resolution: {integrity: sha512-PJbZHwlE98OSuLzI6b1ei6Qa+FaiwlCRH3tOTdx/wPSdqmD3mRWEn7E9ftM6FC8hnxl/LrGLszQMT62yEQp5vQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/icons@1.4.0': - resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} - engines: {node: '>=14.0.0'} + '@react-types/table@3.13.0': + resolution: {integrity: sha512-kn+OsEWJfUSSb4N4J0yl+tqx5grDpcaWcu2J8hA62hQCr/Leuj946ScYaKA9a/p0MAaOAaeCWx/Zcss6F8gJIQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/instrumenter@8.6.14': - resolution: {integrity: sha512-iG4MlWCcz1L7Yu8AwgsnfVAmMbvyRSk700Mfy2g4c8y5O+Cv1ejshE1LBBsCwHgkuqU0H4R0qu4g23+6UnUemQ==} + '@react-types/tabs@3.3.15': + resolution: {integrity: sha512-VLgh9YLQdS4FQSk0sGTNHEVN2jeC0fZvOqEFHaEDgDyDgVOukxYuHjqVIx2IavYu1yNBrGO2b6P4M6dF+hcgwQ==} peerDependencies: - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/manager-api@8.6.14': - resolution: {integrity: sha512-ez0Zihuy17udLbfHZQXkGqwtep0mSGgHcNzGN7iZrMP1m+VmNo+7aGCJJdvXi7+iU3yq8weXSQFWg5DqWgLS7g==} + '@react-types/text@3.3.17': + resolution: {integrity: sha512-D9rNmzrRpAqqvuu3s5APvFhA8p8ftjFQQ9blwjS46bGQpwy3lUEgeAE86/x7sif8YI9FrEjCORj6Wu0IY8yl1A==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/preset-react-webpack@8.6.14': - resolution: {integrity: sha512-M7Q6ErNx7N2hQorTz0OLa3YV8nc8OcvkDlCxqqnkHPGQNEIWEpeDvq3wn2OvZlrHDpchyuiquGXZ8aztVtBP2g==} - engines: {node: '>=18.0.0'} + '@react-types/textfield@3.12.2': + resolution: {integrity: sha512-dMm0cGLG5bkJYvt6lqXIty5HXTZjuIpa9I8jAIYua//J8tESAOE9BA285Zl43kx7cZGtgrHKHVFjITDLNUrNhA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/preview-api@8.6.14': - resolution: {integrity: sha512-2GhcCd4dNMrnD7eooEfvbfL4I83qAqEyO0CO7JQAmIO6Rxb9BsOLLI/GD5HkvQB73ArTJ+PT50rfaO820IExOQ==} + '@react-types/tooltip@3.4.17': + resolution: {integrity: sha512-yjySKA1uzJAbio+xGv03DUoWIajteqtsXMd4Y3AJEdBFqSYhXbyrgAxw0oJDgRAgRxY4Rx5Hrhvbt/z7Di94QQ==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0': - resolution: {integrity: sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==} + '@react-types/view@3.4.17': + resolution: {integrity: sha512-QskgWmEOm5zMRSQwyjwxHDDBivnNzdh4/dADUQlYtObsWnnrTL/U7DA5mSZEmYiaRCQ1xwHvxTUsRUPXyJOcIw==} peerDependencies: - typescript: '>= 4.x' - webpack: '>= 4' + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/react-dom-shim@8.6.14': - resolution: {integrity: sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==} + '@react-types/well@3.3.17': + resolution: {integrity: sha512-ZJJ7f3mJe2xTMUBCnig3b6OlUGx+TxK1EH/miO5PjhI486o1tUb+ZKjQqTUM11DpIifMcKfHHCwjIIO5oNZOJA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@storybook/react-vite@8.6.14': - resolution: {integrity: sha512-FZU0xMPxa4/TO87FgcWwappOxLBHZV5HSRK5K+2bJD7rFJAoNorbHvB4Q1zvIAk7eCMjkr2GPCPHx9PRB9vJFg==} - engines: {node: '>=18.0.0'} + '@redux-devtools/extension@3.3.0': + resolution: {integrity: sha512-X34S/rC8S/M1BIrkYD1mJ5f8vlH0BDqxXrs96cvxSBo4FhMdbhU+GUGsmNYov1xjSyLMHgo8NYrUG8bNX7525g==} peerDependencies: - '@storybook/test': 8.6.14 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 - vite: ^4.0.0 || ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - '@storybook/test': - optional: true + redux: ^3.1.0 || ^4.0.0 || ^5.0.0 - '@storybook/react-webpack5@8.6.14': - resolution: {integrity: sha512-ka0q9tQBLruhO38sybP/MkZzejqAltce7HJTJ2KKbUYUlbvuG7m56tBX7DVC5JaImbsO3b8fqOrKH7gRt4KYrQ==} - engines: {node: '>=18.0.0'} + '@reduxjs/toolkit@2.8.2': + resolution: {integrity: sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 - typescript: '>= 4.2.x' + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 peerDependenciesMeta: - typescript: + react: + optional: true + react-redux: optional: true - '@storybook/react@8.6.14': - resolution: {integrity: sha512-BOepx5bBFwl/CPI+F+LnmMmsG1wQYmrX/UQXgUbHQUU9Tj7E2ndTnNbpIuSLc8IrM03ru+DfwSg1Co3cxWtT+g==} - engines: {node: '>=18.0.0'} + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} peerDependencies: - '@storybook/test': 8.6.14 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 - typescript: '>= 4.2.x' + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: - '@storybook/test': - optional: true - typescript: + rollup: optional: true - '@storybook/test@8.6.14': - resolution: {integrity: sha512-GkPNBbbZmz+XRdrhMtkxPotCLOQ1BaGNp/gFZYdGDk2KmUWBKmvc5JxxOhtoXM2703IzNFlQHSSNnhrDZYuLlw==} - peerDependencies: - storybook: ^8.6.14 + '@rollup/rollup-android-arm-eabi@4.41.0': + resolution: {integrity: sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==} + cpu: [arm] + os: [android] - '@storybook/theming@8.6.14': - resolution: {integrity: sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@rollup/rollup-android-arm64@4.41.0': + resolution: {integrity: sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==} + cpu: [arm64] + os: [android] - '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@rollup/rollup-darwin-arm64@4.41.0': + resolution: {integrity: sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==} + cpu: [arm64] + os: [darwin] - '@szmarczak/http-timer@1.1.2': - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} + '@rollup/rollup-darwin-x64@4.41.0': + resolution: {integrity: sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==} + cpu: [x64] + os: [darwin] - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + '@rollup/rollup-freebsd-arm64@4.41.0': + resolution: {integrity: sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==} + cpu: [arm64] + os: [freebsd] - '@tanstack/query-core@5.76.0': - resolution: {integrity: sha512-FN375hb8ctzfNAlex5gHI6+WDXTNpe0nbxp/d2YJtnP+IBM6OUm7zcaoCW6T63BawGOYZBbKC0iPvr41TteNVg==} + '@rollup/rollup-freebsd-x64@4.41.0': + resolution: {integrity: sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==} + cpu: [x64] + os: [freebsd] - '@tanstack/react-query@5.76.1': - resolution: {integrity: sha512-YxdLZVGN4QkT5YT1HKZQWiIlcgauIXEIsMOTSjvyD5wLYK8YVvKZUPAysMqossFJJfDpJW3pFn7WNZuPOqq+fw==} - peerDependencies: - react: ^18 || ^19 + '@rollup/rollup-linux-arm-gnueabihf@4.41.0': + resolution: {integrity: sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==} + cpu: [arm] + os: [linux] - '@testing-library/cypress@10.0.1': - resolution: {integrity: sha512-e8uswjTZIBhaIXjzEcrQQ8nHRWHgZH7XBxKuIWxZ/T7FxfWhCR48nFhUX5nfPizjVOKSThEfOSv67jquc1ASkw==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - cypress: ^12.0.0 || ^13.0.0 + '@rollup/rollup-linux-arm-musleabihf@4.41.0': + resolution: {integrity: sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==} + cpu: [arm] + os: [linux] - '@testing-library/dom@10.4.0': - resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} - engines: {node: '>=18'} + '@rollup/rollup-linux-arm64-gnu@4.41.0': + resolution: {integrity: sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==} + cpu: [arm64] + os: [linux] - '@testing-library/dom@6.16.0': - resolution: {integrity: sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==} - engines: {node: '>=8'} + '@rollup/rollup-linux-arm64-musl@4.41.0': + resolution: {integrity: sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==} + cpu: [arm64] + os: [linux] - '@testing-library/dom@8.20.1': - resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} - engines: {node: '>=12'} + '@rollup/rollup-linux-loongarch64-gnu@4.41.0': + resolution: {integrity: sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==} + cpu: [loong64] + os: [linux] - '@testing-library/dom@9.3.4': - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} + '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': + resolution: {integrity: sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==} + cpu: [ppc64] + os: [linux] - '@testing-library/jest-dom@5.16.5': - resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} - engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + '@rollup/rollup-linux-riscv64-gnu@4.41.0': + resolution: {integrity: sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==} + cpu: [riscv64] + os: [linux] - '@testing-library/jest-dom@6.4.2': - resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@rollup/rollup-linux-riscv64-musl@4.41.0': + resolution: {integrity: sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.41.0': + resolution: {integrity: sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.41.0': + resolution: {integrity: sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.41.0': + resolution: {integrity: sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.41.0': + resolution: {integrity: sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.41.0': + resolution: {integrity: sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.41.0': + resolution: {integrity: sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==} + cpu: [x64] + os: [win32] + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.11.0': + resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + + '@rushstack/node-core-library@4.0.2': + resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} peerDependencies: - '@jest/globals': '>= 28' - '@types/bun': latest - '@types/jest': '>= 28' - jest: '>= 28' - vitest: '>= 0.32' + '@types/node': '*' peerDependenciesMeta: - '@jest/globals': - optional: true - '@types/bun': - optional: true - '@types/jest': - optional: true - jest: - optional: true - vitest: + '@types/node': optional: true - '@testing-library/jest-dom@6.5.0': - resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@rushstack/rig-package@0.5.2': + resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} - '@testing-library/react-hooks@8.0.1': - resolution: {integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==} - engines: {node: '>=12'} + '@rushstack/terminal@0.10.0': + resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 - react: ^16.9.0 || ^17.0.0 - react-dom: ^16.9.0 || ^17.0.0 - react-test-renderer: ^16.9.0 || ^17.0.0 + '@types/node': '*' peerDependenciesMeta: - '@types/react': - optional: true - react-dom: - optional: true - react-test-renderer: + '@types/node': optional: true - '@testing-library/react@12.1.5': - resolution: {integrity: sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==} - engines: {node: '>=12'} - peerDependencies: - react: <18.0.0 - react-dom: <18.0.0 - - '@testing-library/react@13.4.0': - resolution: {integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==} - engines: {node: '>=12'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + '@rushstack/ts-command-line@4.19.1': + resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} - '@testing-library/react@14.2.0': - resolution: {integrity: sha512-7uBnPHyOG6nDGCzv8SLeJbSa33ZoYw7swYpSLIgJvBALdq7l9zPNk33om4USrxy1lKTxXaVfufzLmq83WNfWIw==} - engines: {node: '>=14'} + '@semantic-ui-react/event-stack@3.1.3': + resolution: {integrity: sha512-FdTmJyWvJaYinHrKRsMLDrz4tTMGdFfds299Qory53hBugiDvGC0tEJf+cHsi5igDwWb/CLOgOiChInHwq8URQ==} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 - '@testing-library/react@14.2.1': - resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + '@seznam/compose-react-refs@1.0.6': + resolution: {integrity: sha512-izzOXQfeQLonzrIQb8u6LQ8dk+ymz3WXTIXjvOlTXHq6sbzROg3NWU+9TTAOpEoK9Bth24/6F/XrfHJ5yR5n6Q==} - '@testing-library/react@9.5.0': - resolution: {integrity: sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==} - engines: {node: '>=8'} - peerDependencies: - react: '*' - react-dom: '*' + '@sheerun/mutationobserver-shim@0.3.3': + resolution: {integrity: sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==} - '@testing-library/user-event@14.5.2': - resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - '@tootallnate/once@1.1.2': - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@sigstore/bundle@1.1.0': + resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} + '@sigstore/protobuf-specs@0.2.1': + resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@tufjs/canonical-json@1.0.0': - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + '@sigstore/sign@1.0.0': + resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@tufjs/models@1.0.4': - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + '@sigstore/tuf@1.0.3': + resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + '@sindresorhus/is@0.14.0': + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + '@sinonjs/commons@1.8.6': + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@sinonjs/fake-timers@11.3.1': + resolution: {integrity: sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==} - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + '@sinonjs/fake-timers@6.0.1': + resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@sinonjs/fake-timers@7.1.2': + resolution: {integrity: sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==} - '@types/cookie@0.3.3': - resolution: {integrity: sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==} + '@sinonjs/samsam@6.1.3': + resolution: {integrity: sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@sinonjs/text-encoding@0.7.3': + resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} - '@types/doctrine@0.0.9': - resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} + '@spectrum-icons/ui@3.6.16': + resolution: {integrity: sha512-5rWG5Tbd0WvBE+vls586n3iqzXkdLpd3g5bPJe9el9m/U9/Ag4epNsNoTL8IoDWFD6P7yjWyEL66UU0ojwKWOw==} + peerDependencies: + '@react-spectrum/provider': ^3.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + '@spectrum-icons/workflow@4.2.21': + resolution: {integrity: sha512-PojyoIKHnAwOVM84IkZnxI0WSM+r9qw6mppPmy5dnUCXNetuK9SAejG7QFRXP7ERi45wy19XLWvot9/uTM2BsQ==} + peerDependencies: + '@react-spectrum/provider': ^3.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - '@types/expect@1.20.4': - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + '@storybook/addon-actions@8.6.14': + resolution: {integrity: sha512-mDQxylxGGCQSK7tJPkD144J8jWh9IU9ziJMHfB84PKpI/V5ZgqMDnpr2bssTrUaGDqU5e1/z8KcRF+Melhs9pQ==} + peerDependencies: + storybook: ^8.6.14 - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + '@storybook/addon-backgrounds@8.6.14': + resolution: {integrity: sha512-l9xS8qWe5n4tvMwth09QxH2PmJbCctEvBAc1tjjRasAfrd69f7/uFK4WhwJAstzBTNgTc8VXI4w8ZR97i1sFbg==} + peerDependencies: + storybook: ^8.6.14 - '@types/express-serve-static-core@5.0.6': - resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} + '@storybook/addon-controls@8.6.14': + resolution: {integrity: sha512-IiQpkNJdiRyA4Mq9mzjZlvQugL/aE7hNgVxBBGPiIZG6wb6Ht9hNnBYpap5ZXXFKV9p2qVI0FZK445ONmAa+Cw==} + peerDependencies: + storybook: ^8.6.14 - '@types/express@4.17.22': - resolution: {integrity: sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==} + '@storybook/addon-docs@8.6.14': + resolution: {integrity: sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==} + peerDependencies: + storybook: ^8.6.14 - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + '@storybook/addon-essentials@8.6.14': + resolution: {integrity: sha512-5ZZSHNaW9mXMOFkoPyc3QkoNGdJHETZydI62/OASR0lmPlJ1065TNigEo5dJddmZNn0/3bkE8eKMAzLnO5eIdA==} + peerDependencies: + storybook: ^8.6.14 - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@storybook/addon-highlight@8.6.14': + resolution: {integrity: sha512-4H19OJlapkofiE9tM6K/vsepf4ir9jMm9T+zw5L85blJZxhKZIbJ6FO0TCG9PDc4iPt3L6+aq5B0X29s9zicNQ==} + peerDependencies: + storybook: ^8.6.14 - '@types/history@4.7.11': - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + '@storybook/addon-interactions@8.6.14': + resolution: {integrity: sha512-8VmElhm2XOjh22l/dO4UmXxNOolGhNiSpBcls2pqWSraVh4a670EyYBZsHpkXqfNHo2YgKyZN3C91+9zfH79qQ==} + peerDependencies: + storybook: ^8.6.14 - '@types/hoist-non-react-statics@3.3.6': - resolution: {integrity: sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==} + '@storybook/addon-links@8.6.14': + resolution: {integrity: sha512-DRlXHIyZzOruAZkxmXfVgTF+4d6K27pFcH4cUsm3KT1AXuZbr23lb5iZHpUZoG6lmU85Sru4xCEgewSTXBIe1w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + peerDependenciesMeta: + react: + optional: true - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + '@storybook/addon-mdx-gfm@8.6.14': + resolution: {integrity: sha512-ClfngOSwFrhc3x2dXSzfBSSbzz4VHzUs0XOg9V8fj1bgQhmPoMz9OD3vIjbnJOC33wORbC0ZpfcQPt3RGILYrA==} + peerDependencies: + storybook: ^8.6.14 - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@storybook/addon-measure@8.6.14': + resolution: {integrity: sha512-1Tlyb72NX8aAqm6I6OICsUuGOP6hgnXcuFlXucyhKomPa6j3Eu2vKu561t/f0oGtAK2nO93Z70kVaEh5X+vaGw==} + peerDependencies: + storybook: ^8.6.14 - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@storybook/addon-outline@8.6.14': + resolution: {integrity: sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==} + peerDependencies: + storybook: ^8.6.14 - '@types/http-proxy@1.17.16': - resolution: {integrity: sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==} + '@storybook/addon-toolbars@8.6.14': + resolution: {integrity: sha512-W/wEXT8h3VyZTVfWK/84BAcjAxTdtRiAkT2KAN0nbSHxxB5KEM1MjKpKu2upyzzMa3EywITqbfy4dP6lpkVTwQ==} + peerDependencies: + storybook: ^8.6.14 - '@types/invariant@2.2.37': - resolution: {integrity: sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A==} + '@storybook/addon-viewport@8.6.14': + resolution: {integrity: sha512-gNzVQbMqRC+/4uQTPI2ZrWuRHGquTMZpdgB9DrD88VTEjNudP+J6r8myLfr2VvGksBbUMHkGHMXHuIhrBEnXYA==} + peerDependencies: + storybook: ^8.6.14 - '@types/is-hotkey@0.1.10': - resolution: {integrity: sha512-RvC8KMw5BCac1NvRRyaHgMMEtBaZ6wh0pyPTBu7izn4Sj/AX9Y4aXU5c7rX8PnM/knsuUpC1IeoBkANtxBypsQ==} + '@storybook/addon-webpack5-compiler-babel@3.0.3': + resolution: {integrity: sha512-rVQTTw+oxJltbVKaejIWSHwVKOBJs3au21f/pYXhV0aiNgNhxEa3vr79t/j0j8ox8uJtzM8XYOb7FlkvGfHlwQ==} + engines: {node: '>=18'} - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + '@storybook/blocks@8.6.14': + resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.6.14 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + '@storybook/builder-vite@8.6.14': + resolution: {integrity: sha512-ajWYhy32ksBWxwWHrjwZzyC0Ii5ZTeu5lsqA95Q/EQBB0P5qWlHWGM3AVyv82Mz/ND03ebGy123uVwgf6olnYQ==} + peerDependencies: + storybook: ^8.6.14 + vite: ^4.0.0 || ^5.0.0 || ^6.0.0 - '@types/istanbul-reports@1.1.2': - resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==} + '@storybook/builder-webpack5@8.6.14': + resolution: {integrity: sha512-YZYAqc6NBKoMTKZpjxnkMch6zDtMkBZdS/yaji1+wJX2QPFBwTbSh7SpeBxDp1S11gXSAJ4f1btUWeqSqo8nJA==} + peerDependencies: + storybook: ^8.6.14 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@storybook/components@8.6.14': + resolution: {integrity: sha512-HNR2mC5I4Z5ek8kTrVZlIY/B8gJGs5b3XdZPBPBopTIN6U/YHXiDyOjY3JlaS4fSG1fVhp/Qp1TpMn1w/9m1pw==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@types/jest-axe@3.5.9': - resolution: {integrity: sha512-z98CzR0yVDalCEuhGXXO4/zN4HHuSebAukXDjTLJyjEAgoUf1H1i+sr7SUB/mz8CRS/03/XChsx0dcLjHkndoQ==} + '@storybook/core-webpack@8.6.14': + resolution: {integrity: sha512-iG7r8osNKabSGBbuJuSeMWKbU+ilt5PvzTYkClcYaagla/DliXkXvfywA6jOugVk/Cpx+c6tVKlPfjLcaQHwmw==} + peerDependencies: + storybook: ^8.6.14 - '@types/jest@29.5.14': - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + '@storybook/core@8.6.14': + resolution: {integrity: sha512-1P/w4FSNRqP8j3JQBOi3yGt8PVOgSRbP66Ok520T78eJBeqx9ukCfl912PQZ7SPbW3TIunBwLXMZOjZwBB/JmA==} + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@storybook/csf-plugin@8.6.14': + resolution: {integrity: sha512-dErtc9teAuN+eelN8FojzFE635xlq9cNGGGEu0WEmMUQ4iJ8pingvBO1N8X3scz4Ry7KnxX++NNf3J3gpxS8qQ==} + peerDependencies: + storybook: ^8.6.14 - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@storybook/csf@0.1.13': + resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + '@storybook/global@5.0.0': + resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@types/loadable__component@5.13.9': - resolution: {integrity: sha512-QWOtIkwZqHNdQj3nixQ8oyihQiTMKZLk/DNuvNxMSbTfxf47w+kqcbnxlUeBgAxdOtW0Dh48dTAIp83iJKtnrQ==} + '@storybook/icons@1.4.0': + resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@types/lodash@4.17.17': - resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} + '@storybook/instrumenter@8.6.14': + resolution: {integrity: sha512-iG4MlWCcz1L7Yu8AwgsnfVAmMbvyRSk700Mfy2g4c8y5O+Cv1ejshE1LBBsCwHgkuqU0H4R0qu4g23+6UnUemQ==} + peerDependencies: + storybook: ^8.6.14 - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@storybook/manager-api@8.6.14': + resolution: {integrity: sha512-ez0Zihuy17udLbfHZQXkGqwtep0mSGgHcNzGN7iZrMP1m+VmNo+7aGCJJdvXi7+iU3yq8weXSQFWg5DqWgLS7g==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + '@storybook/preset-react-webpack@8.6.14': + resolution: {integrity: sha512-M7Q6ErNx7N2hQorTz0OLa3YV8nc8OcvkDlCxqqnkHPGQNEIWEpeDvq3wn2OvZlrHDpchyuiquGXZ8aztVtBP2g==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + '@storybook/preview-api@8.6.14': + resolution: {integrity: sha512-2GhcCd4dNMrnD7eooEfvbfL4I83qAqEyO0CO7JQAmIO6Rxb9BsOLLI/GD5HkvQB73ArTJ+PT50rfaO820IExOQ==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0': + resolution: {integrity: sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==} + peerDependencies: + typescript: '>= 4.x' + webpack: '>= 4' - '@types/node@15.14.9': - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + '@storybook/react-dom-shim@8.6.14': + resolution: {integrity: sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 - '@types/node@20.17.50': - resolution: {integrity: sha512-Mxiq0ULv/zo1OzOhwPqOA13I81CV/W3nvd3ChtQZRT5Cwz3cr0FKo/wMSsbTqL3EXpaBAEQhva2B8ByRkOIh9A==} + '@storybook/react-vite@8.6.14': + resolution: {integrity: sha512-FZU0xMPxa4/TO87FgcWwappOxLBHZV5HSRK5K+2bJD7rFJAoNorbHvB4Q1zvIAk7eCMjkr2GPCPHx9PRB9vJFg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.6.14 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + vite: ^4.0.0 || ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + '@storybook/test': + optional: true - '@types/node@22.15.21': - resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + '@storybook/react-webpack5@8.6.14': + resolution: {integrity: sha512-ka0q9tQBLruhO38sybP/MkZzejqAltce7HJTJ2KKbUYUlbvuG7m56tBX7DVC5JaImbsO3b8fqOrKH7gRt4KYrQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + typescript: '>= 4.2.x' + peerDependenciesMeta: + typescript: + optional: true - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@storybook/react@8.6.14': + resolution: {integrity: sha512-BOepx5bBFwl/CPI+F+LnmMmsG1wQYmrX/UQXgUbHQUU9Tj7E2ndTnNbpIuSLc8IrM03ru+DfwSg1Co3cxWtT+g==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.6.14 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + typescript: '>= 4.2.x' + peerDependenciesMeta: + '@storybook/test': + optional: true + typescript: + optional: true - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@storybook/test@8.6.14': + resolution: {integrity: sha512-GkPNBbbZmz+XRdrhMtkxPotCLOQ1BaGNp/gFZYdGDk2KmUWBKmvc5JxxOhtoXM2703IzNFlQHSSNnhrDZYuLlw==} + peerDependencies: + storybook: ^8.6.14 - '@types/prettier@2.7.3': - resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + '@storybook/theming@8.6.14': + resolution: {integrity: sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/q@1.5.8': - resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} + '@szmarczak/http-timer@1.1.2': + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} - '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@tanstack/query-core@5.76.0': + resolution: {integrity: sha512-FN375hb8ctzfNAlex5gHI6+WDXTNpe0nbxp/d2YJtnP+IBM6OUm7zcaoCW6T63BawGOYZBbKC0iPvr41TteNVg==} - '@types/react-dom@17.0.26': - resolution: {integrity: sha512-Z+2VcYXJwOqQ79HreLU/1fyQ88eXSSFh6I3JdrEHQIfYSI0kCQpTGvOrbE6jFGGYXKsHuwY9tBa/w5Uo6KzrEg==} + '@tanstack/react-query@5.76.1': + resolution: {integrity: sha512-YxdLZVGN4QkT5YT1HKZQWiIlcgauIXEIsMOTSjvyD5wLYK8YVvKZUPAysMqossFJJfDpJW3pFn7WNZuPOqq+fw==} peerDependencies: - '@types/react': ^17.0.0 + react: ^18 || ^19 - '@types/react-dom@18.3.7': - resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + '@testing-library/cypress@10.0.1': + resolution: {integrity: sha512-e8uswjTZIBhaIXjzEcrQQ8nHRWHgZH7XBxKuIWxZ/T7FxfWhCR48nFhUX5nfPizjVOKSThEfOSv67jquc1ASkw==} + engines: {node: '>=12', npm: '>=6'} peerDependencies: - '@types/react': ^18.0.0 + cypress: ^12.0.0 || ^13.0.0 - '@types/react-redux@7.1.34': - resolution: {integrity: sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==} + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} - '@types/react-router-dom@5.3.3': - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + '@testing-library/dom@6.16.0': + resolution: {integrity: sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==} + engines: {node: '>=8'} - '@types/react-router@5.1.20': - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + '@testing-library/dom@8.20.1': + resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} + engines: {node: '>=12'} - '@types/react-test-renderer@18.0.7': - resolution: {integrity: sha512-1+ANPOWc6rB3IkSnElhjv6VLlKg2dSv/OWClUyZimbLsQyBn8Js9Vtdsi3UICJ2rIQ3k2la06dkB+C92QfhKmg==} + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} - '@types/react@18.3.22': - resolution: {integrity: sha512-vUhG0YmQZ7kL/tmKLrD3g5zXbXXreZXB3pmROW8bg3CnLnpjkRVwUlLne7Ufa2r9yJ8+/6B73RzhAek5TBKh2Q==} + '@testing-library/jest-dom@5.16.5': + resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} + engines: {node: '>=8', npm: '>=6', yarn: '>=1'} - '@types/resolve@1.20.6': - resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + '@testing-library/jest-dom@6.4.2': + resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/bun': latest + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/bun': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + '@testing-library/jest-dom@6.5.0': + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + '@testing-library/react-hooks@8.0.1': + resolution: {integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==} + engines: {node: '>=12'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 + react: ^16.9.0 || ^17.0.0 + react-dom: ^16.9.0 || ^17.0.0 + react-test-renderer: ^16.9.0 || ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-dom: + optional: true + react-test-renderer: + optional: true - '@types/schema-utils@1.0.0': - resolution: {integrity: sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A==} + '@testing-library/react@12.1.5': + resolution: {integrity: sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==} + engines: {node: '>=12'} + peerDependencies: + react: <18.0.0 + react-dom: <18.0.0 - '@types/semver@7.7.0': - resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + '@testing-library/react@13.4.0': + resolution: {integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==} + engines: {node: '>=12'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + '@testing-library/react@14.2.0': + resolution: {integrity: sha512-7uBnPHyOG6nDGCzv8SLeJbSa33ZoYw7swYpSLIgJvBALdq7l9zPNk33om4USrxy1lKTxXaVfufzLmq83WNfWIw==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + '@testing-library/react@14.2.1': + resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + '@testing-library/react@9.5.0': + resolution: {integrity: sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==} + engines: {node: '>=8'} + peerDependencies: + react: '*' + react-dom: '*' - '@types/sinonjs__fake-timers@8.1.1': - resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + '@testing-library/user-event@14.5.2': + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' - '@types/sizzle@2.3.9': - resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==} + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@types/testing-library__dom@6.14.0': - resolution: {integrity: sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==} + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} - '@types/testing-library__dom@7.5.0': - resolution: {integrity: sha512-mj1aH4cj3XUpMEgVpognma5kHVtbm6U6cHZmEFzCRiXPvKkuHrFr3+yXdGLXvfFRBaQIVshPGHI+hGTOJlhS/g==} - deprecated: This is a stub types definition. testing-library__dom provides its own type definitions, so you do not need this installed. + '@tufjs/canonical-json@1.0.0': + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@types/testing-library__jest-dom@5.14.9': - resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} + '@tufjs/models@1.0.4': + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.7': + resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/cookie@0.3.3': + resolution: {integrity: sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/doctrine@0.0.9': + resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + + '@types/expect@1.20.4': + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + + '@types/express-serve-static-core@5.0.6': + resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} + + '@types/express@4.17.22': + resolution: {integrity: sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==} + + '@types/glob@8.1.0': + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + + '@types/hoist-non-react-statics@3.3.6': + resolution: {integrity: sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/http-proxy@1.17.16': + resolution: {integrity: sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==} + + '@types/invariant@2.2.37': + resolution: {integrity: sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A==} + + '@types/is-hotkey@0.1.10': + resolution: {integrity: sha512-RvC8KMw5BCac1NvRRyaHgMMEtBaZ6wh0pyPTBu7izn4Sj/AX9Y4aXU5c7rX8PnM/knsuUpC1IeoBkANtxBypsQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@1.1.2': + resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest-axe@3.5.9': + resolution: {integrity: sha512-z98CzR0yVDalCEuhGXXO4/zN4HHuSebAukXDjTLJyjEAgoUf1H1i+sr7SUB/mz8CRS/03/XChsx0dcLjHkndoQ==} + + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/loadable__component@5.13.9': + resolution: {integrity: sha512-QWOtIkwZqHNdQj3nixQ8oyihQiTMKZLk/DNuvNxMSbTfxf47w+kqcbnxlUeBgAxdOtW0Dh48dTAIp83iJKtnrQ==} + + '@types/lodash@4.17.17': + resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@15.14.9': + resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} + + '@types/node@20.17.50': + resolution: {integrity: sha512-Mxiq0ULv/zo1OzOhwPqOA13I81CV/W3nvd3ChtQZRT5Cwz3cr0FKo/wMSsbTqL3EXpaBAEQhva2B8ByRkOIh9A==} + + '@types/node@22.15.21': + resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prettier@2.7.3': + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + + '@types/q@1.5.8': + resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} + + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react-dom@17.0.26': + resolution: {integrity: sha512-Z+2VcYXJwOqQ79HreLU/1fyQ88eXSSFh6I3JdrEHQIfYSI0kCQpTGvOrbE6jFGGYXKsHuwY9tBa/w5Uo6KzrEg==} + peerDependencies: + '@types/react': ^17.0.0 + + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react-redux@7.1.34': + resolution: {integrity: sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==} + + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + + '@types/react-router@5.1.20': + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + + '@types/react-test-renderer@18.0.7': + resolution: {integrity: sha512-1+ANPOWc6rB3IkSnElhjv6VLlKg2dSv/OWClUyZimbLsQyBn8Js9Vtdsi3UICJ2rIQ3k2la06dkB+C92QfhKmg==} + + '@types/react@18.3.22': + resolution: {integrity: sha512-vUhG0YmQZ7kL/tmKLrD3g5zXbXXreZXB3pmROW8bg3CnLnpjkRVwUlLne7Ufa2r9yJ8+/6B73RzhAek5TBKh2Q==} + + '@types/redux@3.6.0': + resolution: {integrity: sha512-ic+60DXHW5seNyqFvfr7Sk5cnXs+HsF9tIeIaxjOuSP5kzgDXC+AzKTYmjAfuLx4Sccm/0vjwBQj3OOkUkwOqg==} + deprecated: This is a stub types definition for Redux (https://github.com/reactjs/redux). Redux provides its own type definitions, so you don't need @types/redux installed! + + '@types/resolve@1.20.6': + resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/schema-utils@1.0.0': + resolution: {integrity: sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A==} + + '@types/semver@7.7.0': + resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/sinonjs__fake-timers@8.1.1': + resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + + '@types/sizzle@2.3.9': + resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==} + + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/testing-library__dom@6.14.0': + resolution: {integrity: sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==} + + '@types/testing-library__dom@7.5.0': + resolution: {integrity: sha512-mj1aH4cj3XUpMEgVpognma5kHVtbm6U6cHZmEFzCRiXPvKkuHrFr3+yXdGLXvfFRBaQIVshPGHI+hGTOJlhS/g==} + deprecated: This is a stub types definition. testing-library__dom provides its own type definitions, so you do not need this installed. + + '@types/testing-library__jest-dom@5.14.9': + resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} '@types/testing-library__react@9.1.3': resolution: {integrity: sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==} @@ -5328,7 +5891,16 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - abab@2.0.6: + '@xyflow/react@12.6.4': + resolution: {integrity: sha512-/dOQ43Nu217cwHzy7f8kNUrFMeJJENzftVgT2VdFFHi6fHlG83pF+gLmvkRW9Be7alCsR6G+LFxxCdsQQbazHg==} + peerDependencies: + react: '>=17' + react-dom: '>=17' + + '@xyflow/system@0.0.61': + resolution: {integrity: sha512-TsZG/Ez8dzxX6/Ol44LvFqVZsYvyz6dpDlAQZZk6hTL7JLGO5vN3dboRJqMwU8/Qtr5IEv5YBzojjAwIqW1HCA==} + + abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead @@ -6248,6 +6820,9 @@ packages: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} + classcat@5.0.5: + resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -6828,6 +7403,44 @@ packages: engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} hasBin: true + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + d@1.0.2: resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} engines: {node: '>=0.12'} @@ -10057,6 +10670,11 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lucide-react@0.511.0: + resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -12171,9 +12789,17 @@ packages: peerDependencies: redux: ^4 + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + redux@4.2.1: resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -12295,6 +12921,9 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -14468,6 +15097,21 @@ packages: zod@3.25.20: resolution: {integrity: sha512-z03fqpTMDF1G02VLKUMt6vyACE7rNWkh3gpXVHgPTw28NPtDFRGvcpTtPwn2kMKtQ0idtYJUTxchytmnqYswcw==} + zustand@4.5.7: + resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -14475,6 +15119,85 @@ snapshots: '@adobe/css-tools@4.4.3': {} + '@adobe/react-spectrum-ui@1.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@adobe/react-spectrum-workflow@2.3.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@adobe/react-spectrum@3.42.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@internationalized/string': 3.2.6 + '@react-aria/collections': 3.0.0-rc.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/accordion': 3.0.6(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/actionbar': 3.6.7(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/actiongroup': 3.10.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/avatar': 3.0.22(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/badge': 3.1.23(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/breadcrumbs': 3.9.17(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/buttongroup': 3.6.22(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/calendar': 3.7.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/checkbox': 3.9.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/color': 3.0.7(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/combobox': 3.15.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/contextualhelp': 3.6.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/datepicker': 3.14.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dialog': 3.8.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/divider': 3.5.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dnd': 3.5.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dropzone': 3.0.11(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/filetrigger': 3.0.11(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/icon': 3.8.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/illustratedmessage': 3.5.10(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/image': 3.5.11(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/inlinealert': 3.2.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/labeledvalue': 3.2.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/link': 3.6.17(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/list': 3.10.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/listbox': 3.15.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/menu': 3.22.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/meter': 3.5.10(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/numberfield': 3.9.13(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/picker': 3.15.9(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/radio': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/searchfield': 3.8.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/slider': 3.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/statuslight': 3.5.22(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/switch': 3.6.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/table': 3.17.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/tabs': 3.8.20(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/tag': 3.3.0(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/textfield': 3.13.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/theme-dark': 3.5.18(react@18.2.0) + '@react-spectrum/theme-default': 3.5.18(react@18.2.0) + '@react-spectrum/theme-light': 3.4.18(react@18.2.0) + '@react-spectrum/toast': 3.0.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/tooltip': 3.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/tree': 3.1.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/view': 3.6.19(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/well': 3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/data': 3.13.0(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + client-only: 0.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -16684,620 +17407,1481 @@ snapshots: '@octokit/tsconfig@1.0.2': {} - '@octokit/types@10.0.0': + '@octokit/types@10.0.0': + dependencies: + '@octokit/openapi-types': 18.1.1 + + '@octokit/types@12.6.0': + dependencies: + '@octokit/openapi-types': 20.0.0 + + '@octokit/types@13.10.0': + dependencies: + '@octokit/openapi-types': 24.2.0 + + '@octokit/types@6.41.0': + dependencies: + '@octokit/openapi-types': 12.11.0 + + '@octokit/types@9.3.2': + dependencies: + '@octokit/openapi-types': 18.1.1 + + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.4': {} + + '@plone/scripts@3.10.1': + dependencies: + '@babel/core': 7.27.1 + babel-plugin-react-intl: 5.1.17 + babel-preset-razzle: 4.2.17 + chalk: 4.1.2 + commander: 8.2.0 + comment-json: 4.2.5 + execa: 0.6.3 + find-parent-dir: 0.3.1 + fs-extra: 10.1.0 + git-url-parse: 13.1.1 + glob: 7.1.6 + lodash: 4.17.21 + mrs-developer: 2.3.0 + pofile: 1.0.10 + wait-on: 7.2.0 + transitivePeerDependencies: + - debug + - supports-color + + '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(sockjs-client@1.4.0)(type-fest@2.19.0)(webpack-dev-server@4.11.1(debug@4.3.2)(webpack@5.90.1(esbuild@0.25.4)))(webpack-hot-middleware@2.26.1)(webpack@5.90.1(esbuild@0.25.4))': + dependencies: + ansi-html: 0.0.9 + core-js-pure: 3.42.0 + error-stack-parser: 2.1.4 + html-entities: 2.6.0 + loader-utils: 2.0.4 + react-refresh: 0.14.2 + schema-utils: 4.3.2 + source-map: 0.7.4 + webpack: 5.90.1(esbuild@0.25.4) + optionalDependencies: + sockjs-client: 1.4.0 + type-fest: 2.19.0 + webpack-dev-server: 4.11.1(debug@4.3.2)(webpack@5.90.1(esbuild@0.25.4)) + webpack-hot-middleware: 2.26.1 + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@polka/url@1.0.0-next.29': {} + + '@popperjs/core@2.11.8': {} + + '@react-aria/actiongroup@3.7.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/list': 3.12.2(react@18.2.0) + '@react-types/actiongroup': 3.4.17(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/autocomplete@3.0.0-beta.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/combobox': 3.12.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/listbox': 3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/searchfield': 3.8.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/autocomplete': 3.0.0-beta.1(react@18.2.0) + '@react-stately/combobox': 3.10.5(react@18.2.0) + '@react-types/autocomplete': 3.0.0-alpha.31(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/breadcrumbs@3.5.24(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/link': 3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/breadcrumbs': 3.7.13(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/button@3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/toolbar': 3.0.0-beta.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/toggle': 3.8.4(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/calendar@3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/calendar': 3.8.1(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/calendar': 3.7.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/checkbox@3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/toggle': 3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/checkbox': 3.6.14(react@18.2.0) + '@react-stately/form': 3.1.4(react@18.2.0) + '@react-stately/toggle': 3.8.4(react@18.2.0) + '@react-types/checkbox': 3.9.4(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/collections@3.0.0-rc.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.5.0(react@18.2.0) + + '@react-aria/color@3.0.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/numberfield': 3.11.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/slider': 3.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/spinbutton': 3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/color': 3.8.5(react@18.2.0) + '@react-stately/form': 3.1.4(react@18.2.0) + '@react-types/color': 3.0.5(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/combobox@3.12.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/listbox': 3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/menu': 3.18.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/combobox': 3.10.5(react@18.2.0) + '@react-stately/form': 3.1.4(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/combobox': 3.13.5(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/datepicker@3.14.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@internationalized/number': 3.6.2 + '@internationalized/string': 3.2.6 + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/spinbutton': 3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/datepicker': 3.14.1(react@18.2.0) + '@react-stately/form': 3.1.4(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/calendar': 3.7.1(react@18.2.0) + '@react-types/datepicker': 3.12.1(react@18.2.0) + '@react-types/dialog': 3.5.18(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/dialog@3.5.25(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/dialog': 3.5.18(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/disclosure@3.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/disclosure': 3.0.4(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/dnd@3.9.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@internationalized/string': 3.2.6 + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/dnd': 3.5.4(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/focus@3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/form@3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/form': 3.1.4(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/grid@3.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/grid': 3.11.2(react@18.2.0) + '@react-stately/selection': 3.20.2(react@18.2.0) + '@react-types/checkbox': 3.9.4(react@18.2.0) + '@react-types/grid': 3.3.2(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/gridlist@3.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/grid': 3.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/list': 3.12.2(react@18.2.0) + '@react-stately/tree': 3.8.10(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/i18n@3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@internationalized/date': 3.8.1 + '@internationalized/message': 3.1.7 + '@internationalized/number': 3.6.2 + '@internationalized/string': 3.2.6 + '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/interactions@3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/flags': 3.1.1 + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/label@3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/landmark@3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.5.0(react@18.2.0) + + '@react-aria/link@3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/link': 3.6.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/listbox@3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/list': 3.12.2(react@18.2.0) + '@react-types/listbox': 3.7.0(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/live-announcer@3.4.2': + dependencies: + '@swc/helpers': 0.5.17 + + '@react-aria/menu@3.18.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/menu': 3.9.4(react@18.2.0) + '@react-stately/selection': 3.20.2(react@18.2.0) + '@react-stately/tree': 3.8.10(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/menu': 3.10.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/meter@3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/progress': 3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/meter': 3.4.9(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/numberfield@3.11.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/spinbutton': 3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/form': 3.1.4(react@18.2.0) + '@react-stately/numberfield': 3.9.12(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/numberfield': 3.8.11(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/overlays@3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/overlays': 3.6.16(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/overlays': 3.8.15(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/progress@3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/progress': 3.5.12(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/radio@3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/radio': 3.10.13(react@18.2.0) + '@react-types/radio': 3.8.9(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/searchfield@3.8.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/searchfield': 3.5.12(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/searchfield': 3.6.2(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/select@3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/listbox': 3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/menu': 3.18.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/select': 3.6.13(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/select': 3.9.12(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/selection@3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/selection': 3.20.2(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/separator@3.4.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/slider@3.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/slider': 3.6.4(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/slider': 3.7.11(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/spinbutton@3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/ssr@3.9.8(react@18.2.0)': + dependencies: + '@swc/helpers': 0.5.17 + react: 18.2.0 + + '@react-aria/switch@3.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/toggle': 3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/toggle': 3.8.4(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/switch': 3.5.11(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/table@3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/grid': 3.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/flags': 3.1.1 + '@react-stately/table': 3.14.2(react@18.2.0) + '@react-types/checkbox': 3.9.4(react@18.2.0) + '@react-types/grid': 3.3.2(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/table': 3.13.0(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/tabs@3.10.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/tabs': 3.8.2(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/tabs': 3.3.15(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/tag@3.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/gridlist': 3.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/list': 3.12.2(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/textfield@3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/form': 3.1.4(react@18.2.0) + '@react-stately/utils': 3.10.6(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/textfield': 3.12.2(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/toast@3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/landmark': 3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/toast': 3.1.0(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/toggle@3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/toggle': 3.8.4(react@18.2.0) + '@react-types/checkbox': 3.9.4(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/toolbar@3.0.0-beta.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@octokit/openapi-types': 18.1.1 + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@octokit/types@12.6.0': + '@react-aria/tooltip@3.8.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@octokit/openapi-types': 20.0.0 + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/tooltip': 3.5.4(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/tooltip': 3.4.17(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@octokit/types@13.10.0': + '@react-aria/tree@3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@octokit/openapi-types': 24.2.0 + '@react-aria/gridlist': 3.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/tree': 3.8.10(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@octokit/types@6.41.0': + '@react-aria/utils@3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@octokit/openapi-types': 12.11.0 + '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-stately/flags': 3.1.1 + '@react-stately/utils': 3.10.6(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@octokit/types@9.3.2': + '@react-aria/virtualizer@4.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@octokit/openapi-types': 18.1.1 - - '@parcel/watcher-android-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-x64@2.5.1': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - - '@parcel/watcher-win32-arm64@2.5.1': - optional: true - - '@parcel/watcher-win32-ia32@2.5.1': - optional: true - - '@parcel/watcher-win32-x64@2.5.1': - optional: true + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/virtualizer': 4.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@parcel/watcher@2.5.1': + '@react-aria/visually-hidden@3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - optional: true - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.2.4': {} + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@plone/scripts@3.10.1': + '@react-spectrum/accordion@3.0.6(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/core': 7.27.1 - babel-plugin-react-intl: 5.1.17 - babel-preset-razzle: 4.2.17 - chalk: 4.1.2 - commander: 8.2.0 - comment-json: 4.2.5 - execa: 0.6.3 - find-parent-dir: 0.3.1 - fs-extra: 10.1.0 - git-url-parse: 13.1.1 - glob: 7.1.6 - lodash: 4.17.21 - mrs-developer: 2.3.0 - pofile: 1.0.10 - wait-on: 7.2.0 - transitivePeerDependencies: - - debug - - supports-color + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-aria-components: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) - '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(sockjs-client@1.4.0)(type-fest@2.19.0)(webpack-dev-server@4.11.1(debug@4.3.2)(webpack@5.90.1(esbuild@0.25.4)))(webpack-hot-middleware@2.26.1)(webpack@5.90.1(esbuild@0.25.4))': + '@react-spectrum/actionbar@3.6.7(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - ansi-html: 0.0.9 - core-js-pure: 3.42.0 - error-stack-parser: 2.1.4 - html-entities: 2.6.0 - loader-utils: 2.0.4 - react-refresh: 0.14.2 - schema-utils: 4.3.2 - source-map: 0.7.4 - webpack: 5.90.1(esbuild@0.25.4) - optionalDependencies: - sockjs-client: 1.4.0 - type-fest: 2.19.0 - webpack-dev-server: 4.11.1(debug@4.3.2)(webpack@5.90.1(esbuild@0.25.4)) - webpack-hot-middleware: 2.26.1 - - '@pnpm/config.env-replace@1.1.0': {} + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/live-announcer': 3.4.2 + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/actiongroup': 3.10.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-types/actionbar': 3.1.15(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@pnpm/network.ca-file@1.0.2': + '@react-spectrum/actiongroup@3.10.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - graceful-fs: 4.2.10 + '@react-aria/actiongroup': 3.7.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/menu': 3.22.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/tooltip': 3.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/list': 3.12.2(react@18.2.0) + '@react-types/actiongroup': 3.4.17(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@spectrum-icons/workflow': 4.2.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@pnpm/npm-conf@2.3.1': + '@react-spectrum/avatar@3.0.22(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - - '@polka/url@1.0.0-next.29': {} - - '@popperjs/core@2.11.8': {} + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/avatar': 3.0.15(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@react-aria/autocomplete@3.0.0-beta.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/badge@3.1.23(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/combobox': 3.12.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/listbox': 3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/searchfield': 3.8.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/autocomplete': 3.0.0-beta.1(react@18.2.0) - '@react-stately/combobox': 3.10.5(react@18.2.0) - '@react-types/autocomplete': 3.0.0-alpha.31(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/badge': 3.1.17(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/breadcrumbs@3.5.24(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/breadcrumbs@3.9.17(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/breadcrumbs': 3.5.24(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/link': 3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/menu': 3.22.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) '@react-types/breadcrumbs': 3.7.13(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/button@3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/button@3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/button': 3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/toolbar': 3.0.0-beta.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/toggle': 3.8.4(react@18.2.0) '@react-types/button': 3.12.1(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/calendar@3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/buttongroup@3.6.22(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@internationalized/date': 3.8.1 - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/live-announcer': 3.4.2 '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/calendar': 3.8.1(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) - '@react-types/calendar': 3.7.1(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/buttongroup': 3.3.17(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/checkbox@3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/calendar@3.7.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@internationalized/date': 3.8.1 + '@react-aria/calendar': 3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/toggle': 3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/checkbox': 3.6.14(react@18.2.0) - '@react-stately/form': 3.1.4(react@18.2.0) - '@react-stately/toggle': 3.8.4(react@18.2.0) - '@react-types/checkbox': 3.9.4(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/calendar': 3.8.1(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) + '@react-types/calendar': 3.7.1(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/collections@3.0.0-rc.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/checkbox@3.9.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/checkbox': 3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/ssr': 3.9.8(react@18.2.0) - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/checkbox': 3.6.14(react@18.2.0) + '@react-stately/toggle': 3.8.4(react@18.2.0) + '@react-types/checkbox': 3.9.4(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 + react-aria-components: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.5.0(react@18.2.0) - '@react-aria/color@3.0.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/color@3.0.7(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/color': 3.0.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/numberfield': 3.11.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/slider': 3.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/spinbutton': 3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dialog': 3.8.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/picker': 3.15.9(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/textfield': 3.13.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/view': 3.6.19(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/color': 3.8.5(react@18.2.0) - '@react-stately/form': 3.1.4(react@18.2.0) '@react-types/color': 3.0.5(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/textfield': 3.12.2(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 + react-aria-components: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: 18.2.0(react@18.2.0) - '@react-aria/combobox@3.12.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/combobox@3.15.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/button': 3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/combobox': 3.12.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/dialog': 3.5.25(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/listbox': 3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/live-announcer': 3.4.2 - '@react-aria/menu': 3.18.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/listbox': 3.15.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/textfield': 3.13.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/collections': 3.12.4(react@18.2.0) '@react-stately/combobox': 3.10.5(react@18.2.0) - '@react-stately/form': 3.1.4(react@18.2.0) '@react-types/button': 3.12.1(react@18.2.0) '@react-types/combobox': 3.13.5(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/datepicker@3.14.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/contextualhelp@3.6.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dialog': 3.8.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/contextualhelp': 3.2.18(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/workflow': 4.2.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-spectrum/datepicker@3.14.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@internationalized/date': 3.8.1 - '@internationalized/number': 3.6.2 - '@internationalized/string': 3.2.6 + '@react-aria/datepicker': 3.14.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/spinbutton': 3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/calendar': 3.7.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dialog': 3.8.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/view': 3.6.19(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/datepicker': 3.14.1(react@18.2.0) - '@react-stately/form': 3.1.4(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) - '@react-types/calendar': 3.7.1(react@18.2.0) '@react-types/datepicker': 3.12.1(react@18.2.0) - '@react-types/dialog': 3.5.18(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@spectrum-icons/workflow': 4.2.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/dialog@3.5.25(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/dialog@3.8.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/dialog': 3.5.25(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/buttongroup': 3.6.22(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/divider': 3.5.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/view': 3.6.19(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/overlays': 3.6.16(react@18.2.0) + '@react-types/button': 3.12.1(react@18.2.0) '@react-types/dialog': 3.5.18(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/disclosure@3.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/divider@3.5.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/ssr': 3.9.8(react@18.2.0) - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/disclosure': 3.0.4(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) + '@react-aria/separator': 3.4.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/divider': 3.3.17(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/dnd@3.9.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/dnd@3.5.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@internationalized/string': 3.2.6 - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/live-announcer': 3.4.2 - '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/dnd': 3.9.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/dnd': 3.5.4(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/focus@3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/dropzone@3.0.11(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 - clsx: 2.1.1 react: 18.2.0 + react-aria-components: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: 18.2.0(react@18.2.0) - '@react-aria/form@3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/filetrigger@3.0.11(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-aria-components: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + + '@react-spectrum/form@3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/form': 3.1.4(react@18.2.0) + '@react-types/form': 3.7.12(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/grid@3.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/icon@3.8.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/live-announcer': 3.4.2 - '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/collections': 3.12.4(react@18.2.0) - '@react-stately/grid': 3.11.2(react@18.2.0) - '@react-stately/selection': 3.20.2(react@18.2.0) - '@react-types/checkbox': 3.9.4(react@18.2.0) - '@react-types/grid': 3.3.2(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/gridlist@3.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/illustratedmessage@3.5.10(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/grid': 3.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/collections': 3.12.4(react@18.2.0) - '@react-stately/list': 3.12.2(react@18.2.0) - '@react-stately/tree': 3.8.10(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/illustratedmessage': 3.3.17(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/i18n@3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/image@3.5.11(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@internationalized/date': 3.8.1 - '@internationalized/message': 3.1.7 - '@internationalized/number': 3.6.2 - '@internationalized/string': 3.2.6 - '@react-aria/ssr': 3.9.8(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/image': 3.4.9(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/interactions@3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/inlinealert@3.2.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/flags': 3.1.1 + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/label@3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/label@3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/label': 3.9.11(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/landmark@3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/labeledvalue@3.2.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@internationalized/date': 3.8.1 + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.5.0(react@18.2.0) - '@react-aria/link@3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/layout@3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/layout': 3.3.23(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-spectrum/link@3.6.17(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/link': 3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/link': 3.6.1(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/listbox@3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/list@3.10.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/button': 3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/gridlist': 3.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/virtualizer': 4.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/checkbox': 3.9.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dnd': 3.5.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/layout': 4.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/list': 3.12.2(react@18.2.0) - '@react-types/listbox': 3.7.0(react@18.2.0) + '@react-stately/virtualizer': 4.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/grid': 3.3.2(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/live-announcer@3.4.2': + '@react-spectrum/listbox@3.15.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/listbox': 3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/virtualizer': 4.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/layout': 4.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/list': 3.12.2(react@18.2.0) + '@react-stately/virtualizer': 4.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/listbox': 3.7.0(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@react-aria/menu@3.18.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/menu@3.22.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/menu': 3.18.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/separator': 3.4.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/collections': 3.12.4(react@18.2.0) '@react-stately/menu': 3.9.4(react@18.2.0) - '@react-stately/selection': 3.20.2(react@18.2.0) + '@react-stately/overlays': 3.6.16(react@18.2.0) '@react-stately/tree': 3.8.10(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) '@react-types/menu': 3.10.1(react@18.2.0) + '@react-types/overlays': 3.8.15(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@spectrum-icons/workflow': 4.2.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/meter@3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/meter@3.5.10(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/progress': 3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/meter': 3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/meter': 3.4.9(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/numberfield@3.11.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/numberfield@3.9.13(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/button': 3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/spinbutton': 3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/numberfield': 3.11.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/form': 3.1.4(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/textfield': 3.13.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/numberfield': 3.9.12(react@18.2.0) '@react-types/button': 3.12.1(react@18.2.0) '@react-types/numberfield': 3.8.11(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@spectrum-icons/workflow': 4.2.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/overlays@3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/overlays@5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/ssr': 3.9.8(react@18.2.0) + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/overlays': 3.6.16(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) '@react-types/overlays': 3.8.15(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/progress@3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-types/progress': 3.5.12(react@18.2.0) - '@react-types/shared': 3.29.1(react@18.2.0) - '@swc/helpers': 0.5.17 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@react-aria/radio@3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/picker@3.15.9(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/select': 3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/radio': 3.10.13(react@18.2.0) - '@react-types/radio': 3.8.9(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/listbox': 3.15.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/select': 3.6.13(react@18.2.0) + '@react-types/select': 3.9.12(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/searchfield@3.8.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/progress@3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/progress': 3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/searchfield': 3.5.12(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) - '@react-types/searchfield': 3.6.2(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/progress': 3.5.12(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/select@3.15.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/listbox': 3.14.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/menu': 3.18.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/select': 3.6.13(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) - '@react-types/select': 3.9.12(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/provider': 3.8.9(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 + clsx: 2.1.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/selection@3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/radio@3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/selection': 3.20.2(react@18.2.0) + '@react-aria/radio': 3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/radio': 3.10.13(react@18.2.0) + '@react-types/radio': 3.8.9(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/separator@3.4.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/searchfield@3.8.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-types/shared': 3.29.1(react@18.2.0) + '@react-aria/searchfield': 3.8.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/textfield': 3.13.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/searchfield': 3.5.12(react@18.2.0) + '@react-types/searchfield': 3.6.2(react@18.2.0) + '@react-types/textfield': 3.12.2(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/slider@3.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/slider@3.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/slider': 3.6.4(react@18.2.0) - '@react-types/shared': 3.29.1(react@18.2.0) - '@react-types/slider': 3.7.11(react@18.2.0) - '@swc/helpers': 0.5.17 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@react-aria/spinbutton@3.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/live-announcer': 3.4.2 + '@react-aria/slider': 3.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) + '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/slider': 3.6.4(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/slider': 3.7.11(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/ssr@3.9.8(react@18.2.0)': + '@react-spectrum/statuslight@3.5.22(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/statuslight': 3.3.17(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@react-aria/switch@3.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/switch@3.6.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/toggle': 3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/switch': 3.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/toggle': 3.8.4(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@react-types/switch': 3.5.11(react@18.2.0) @@ -17305,165 +18889,210 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/table@3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/table@3.17.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: + '@react-aria/button': 3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/grid': 3.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/live-announcer': 3.4.2 + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/table': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/virtualizer': 4.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/visually-hidden': 3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-spectrum/checkbox': 3.9.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/dnd': 3.5.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/layout': 3.6.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/menu': 3.22.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/progress': 3.7.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/tooltip': 3.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/flags': 3.1.1 + '@react-stately/layout': 4.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/table': 3.14.2(react@18.2.0) - '@react-types/checkbox': 3.9.4(react@18.2.0) + '@react-stately/virtualizer': 4.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/grid': 3.3.2(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@react-types/table': 3.13.0(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/tabs@3.10.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/tabs@3.8.20(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/tabs': 3.10.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/picker': 3.15.9(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) + '@react-stately/list': 3.12.2(react@18.2.0) '@react-stately/tabs': 3.8.2(react@18.2.0) + '@react-types/select': 3.9.12(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@react-types/tabs': 3.3.15(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/tag@3.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/tag@3.3.0(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/gridlist': 3.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/tag': 3.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/collections': 3.12.4(react@18.2.0) '@react-stately/list': 3.12.2(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/textfield@3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/text@3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/form': 3.0.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/label': 3.7.18(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/form': 3.1.4(react@18.2.0) - '@react-stately/utils': 3.10.6(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) - '@react-types/textfield': 3.12.2(react@18.2.0) + '@react-types/text': 3.3.17(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 + react-aria-components: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: 18.2.0(react@18.2.0) - '@react-aria/toast@3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/textfield@3.13.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/landmark': 3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.17.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/toast': 3.1.0(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) + '@react-spectrum/form': 3.7.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/label': 3.16.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/utils': 3.10.6(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/textfield': 3.12.2(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/toggle@3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/theme-dark@3.5.18(react@18.2.0)': dependencies: - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/toggle': 3.8.4(react@18.2.0) - '@react-types/checkbox': 3.9.4(react@18.2.0) - '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/provider': 3.8.9(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - '@react-aria/toolbar@3.0.0-beta.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/theme-default@3.5.18(react@18.2.0)': + dependencies: + '@react-types/provider': 3.8.9(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + + '@react-spectrum/theme-light@3.4.18(react@18.2.0)': + dependencies: + '@react-types/provider': 3.8.9(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + + '@react-spectrum/toast@3.0.3(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/toast': 3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/button': 3.16.14(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-stately/toast': 3.1.0(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.5.0(react@18.2.0) - '@react-aria/tooltip@3.8.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/tooltip@3.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.20.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/tooltip': 3.8.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/overlays': 5.7.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-stately/tooltip': 3.5.4(react@18.2.0) + '@react-types/overlays': 3.8.15(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@react-types/tooltip': 3.4.17(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/tree@3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/tree@3.1.1(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/gridlist': 3.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/button': 3.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/selection': 3.24.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/tree': 3.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/tree': 3.8.10(react@18.2.0) - '@react-types/button': 3.12.1(react@18.2.0) - '@react-types/shared': 3.29.1(react@18.2.0) - '@swc/helpers': 0.5.17 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@react-aria/utils@3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@react-aria/ssr': 3.9.8(react@18.2.0) - '@react-stately/flags': 3.1.1 - '@react-stately/utils': 3.10.6(react@18.2.0) + '@react-spectrum/checkbox': 3.9.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/text': 3.5.15(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@spectrum-icons/ui': 3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@swc/helpers': 0.5.17 - clsx: 2.1.1 react: 18.2.0 + react-aria-components: 1.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: 18.2.0(react@18.2.0) - '@react-aria/virtualizer@4.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/utils@3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/ssr': 3.9.8(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-stately/virtualizer': 4.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) '@swc/helpers': 0.5.17 + clsx: 2.1.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-aria/visually-hidden@3.8.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/view@3.6.19(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/interactions': 3.25.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/view': 3.4.17(react@18.2.0) '@swc/helpers': 0.5.17 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-spectrum/utils@3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@react-spectrum/well@3.4.23(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@react-aria/i18n': 3.12.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@react-aria/ssr': 3.9.8(react@18.2.0) '@react-aria/utils': 3.29.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/utils': 3.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-types/shared': 3.29.1(react@18.2.0) + '@react-types/well': 3.3.17(react@18.2.0) '@swc/helpers': 0.5.17 - clsx: 2.1.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -17725,6 +19354,16 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + '@react-types/actionbar@3.1.15(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + + '@react-types/actiongroup@3.4.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/autocomplete@3.0.0-alpha.31(react@18.2.0)': dependencies: '@react-types/combobox': 3.13.5(react@18.2.0) @@ -17732,6 +19371,16 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/avatar@3.0.15(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + + '@react-types/badge@3.1.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/breadcrumbs@3.7.13(react@18.2.0)': dependencies: '@react-types/link': 3.6.1(react@18.2.0) @@ -17743,6 +19392,11 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/buttongroup@3.3.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/calendar@3.7.1(react@18.2.0)': dependencies: '@internationalized/date': 3.8.1 @@ -17765,6 +19419,12 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/contextualhelp@3.2.18(react@18.2.0)': + dependencies: + '@react-types/overlays': 3.8.15(react@18.2.0) + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/datepicker@3.12.1(react@18.2.0)': dependencies: '@internationalized/date': 3.8.1 @@ -17779,6 +19439,11 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/divider@3.3.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/form@3.7.12(react@18.2.0)': dependencies: '@react-types/shared': 3.29.1(react@18.2.0) @@ -17789,6 +19454,26 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/illustratedmessage@3.3.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + + '@react-types/image@3.4.9(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + + '@react-types/label@3.9.11(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + + '@react-types/layout@3.3.23(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/link@3.6.1(react@18.2.0)': dependencies: '@react-types/shared': 3.29.1(react@18.2.0) @@ -17825,6 +19510,11 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/provider@3.8.9(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/radio@3.8.9(react@18.2.0)': dependencies: '@react-types/shared': 3.29.1(react@18.2.0) @@ -17850,6 +19540,11 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/statuslight@3.3.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/switch@3.5.11(react@18.2.0)': dependencies: '@react-types/shared': 3.29.1(react@18.2.0) @@ -17866,6 +19561,11 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/text@3.3.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@react-types/textfield@3.12.2(react@18.2.0)': dependencies: '@react-types/shared': 3.29.1(react@18.2.0) @@ -17877,12 +19577,34 @@ snapshots: '@react-types/shared': 3.29.1(react@18.2.0) react: 18.2.0 + '@react-types/view@3.4.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + + '@react-types/well@3.3.17(react@18.2.0)': + dependencies: + '@react-types/shared': 3.29.1(react@18.2.0) + react: 18.2.0 + '@redux-devtools/extension@3.3.0(redux@4.2.1)': dependencies: '@babel/runtime': 7.27.1 immutable: 4.3.7 redux: 4.2.1 + '@reduxjs/toolkit@2.8.2(react-redux@8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1))(react@18.2.0)': + dependencies: + '@standard-schema/spec': 1.0.0 + '@standard-schema/utils': 0.3.0 + immer: 10.1.1 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 18.2.0 + react-redux: 8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@4.2.1) + '@rollup/pluginutils@5.1.4(rollup@4.41.0)': dependencies: '@types/estree': 1.0.7 @@ -18099,6 +19821,28 @@ snapshots: '@sinonjs/text-encoding@0.7.3': {} + '@spectrum-icons/ui@3.6.16(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@adobe/react-spectrum-ui': 1.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/icon': 3.8.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@spectrum-icons/workflow@4.2.21(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@adobe/react-spectrum-workflow': 2.3.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/icon': 3.8.5(@react-spectrum/provider@3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-spectrum/provider': 3.10.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@swc/helpers': 0.5.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@standard-schema/spec@1.0.0': {} + + '@standard-schema/utils@0.3.0': {} + '@storybook/addon-actions@8.6.14(storybook@8.6.14(prettier@3.2.5))': dependencies: '@storybook/global': 5.0.0 @@ -18750,6 +20494,27 @@ snapshots: '@types/cookie@0.3.3': {} + '@types/d3-color@3.1.3': {} + + '@types/d3-drag@3.0.7': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-selection@3.0.11': {} + + '@types/d3-transition@3.0.9': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-zoom@3.0.8': + dependencies: + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.11 + '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 @@ -18937,6 +20702,10 @@ snapshots: '@types/prop-types': 15.7.14 csstype: 3.1.3 + '@types/redux@3.6.0': + dependencies: + redux: 4.2.1 + '@types/resolve@1.20.6': {} '@types/responselike@1.0.3': @@ -19616,6 +21385,27 @@ snapshots: '@xtuc/long@4.2.2': {} + '@xyflow/react@12.6.4(@types/react@18.3.22)(immer@10.1.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@xyflow/system': 0.0.61 + classcat: 5.0.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zustand: 4.5.7(@types/react@18.3.22)(immer@10.1.1)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - immer + + '@xyflow/system@0.0.61': + dependencies: + '@types/d3-drag': 3.0.7 + '@types/d3-selection': 3.0.11 + '@types/d3-transition': 3.0.9 + '@types/d3-zoom': 3.0.8 + d3-drag: 3.0.0 + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + abab@2.0.6: {} abbrev@1.1.1: {} @@ -20826,6 +22616,8 @@ snapshots: isobject: 3.0.1 static-extend: 0.1.2 + classcat@5.0.5: {} + classnames@2.5.1: {} clean-css@5.3.3: @@ -21494,6 +23286,42 @@ snapshots: untildify: 4.0.0 yauzl: 2.10.0 + d3-color@3.1.0: {} + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-ease@3.0.1: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-selection@3.0.0: {} + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + d@1.0.2: dependencies: es5-ext: 0.10.64 @@ -25402,6 +27230,10 @@ snapshots: lru-cache@7.18.3: {} + lucide-react@0.511.0(react@18.2.0): + dependencies: + react: 18.2.0 + lz-string@1.5.0: {} macos-release@3.3.0: {} @@ -27998,6 +29830,21 @@ snapshots: react-dom: 18.2.0(react@18.2.0) redux: 4.2.1 + react-redux@8.1.2(@types/react-dom@18.3.7(@types/react@18.3.22))(@types/react@18.3.22)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@5.0.1): + dependencies: + '@babel/runtime': 7.20.6 + '@types/hoist-non-react-statics': 3.3.6 + '@types/use-sync-external-store': 0.0.3 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-is: 18.3.1 + use-sync-external-store: 1.5.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.22 + '@types/react-dom': 18.3.7(@types/react@18.3.22) + react-dom: 18.2.0(react@18.2.0) + redux: 5.0.1 + react-refresh@0.14.2: {} react-router-config@5.1.1(react-router@5.2.0(react@18.2.0))(react@18.2.0): @@ -28319,10 +30166,16 @@ snapshots: dependencies: redux: 4.2.1 + redux-thunk@3.1.0(redux@5.0.1): + dependencies: + redux: 5.0.1 + redux@4.2.1: dependencies: '@babel/runtime': 7.20.6 + redux@5.0.1: {} + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -28539,6 +30392,8 @@ snapshots: requires-port@1.0.0: {} + reselect@5.1.1: {} + resolve-alpn@1.2.1: {} resolve-cwd@3.0.0: @@ -31455,4 +33310,12 @@ snapshots: zod@3.25.20: {} + zustand@4.5.7(@types/react@18.3.22)(immer@10.1.1)(react@18.2.0): + dependencies: + use-sync-external-store: 1.5.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.22 + immer: 10.1.1 + react: 18.2.0 + zwitch@2.0.4: {} From c71e137badf8322d3f4076a25b714c54992292a7 Mon Sep 17 00:00:00 2001 From: Manas Kenge <110519001+Manas-Kenge@users.noreply.github.com> Date: Mon, 2 Jun 2025 23:42:43 +0530 Subject: [PATCH 02/60] install-uninstall done --- backend/src/workflow/manager/actionmanager.py | 115 +++++++++++++++ .../control_panel/controlpanel.py | 1 - backend/src/workflow/manager/graphviz.py | 134 ++++++++++++++++++ .../manager/profiles/default/browserlayer.xml | 2 +- .../manager/profiles/default/controlpanel.xml | 4 +- .../default/registry/control_panel.xml | 2 +- .../profiles/uninstall/controlpanel.xml | 4 +- backend/src/workflow/manager/utils.py | 49 +++++++ 8 files changed, 306 insertions(+), 5 deletions(-) create mode 100644 backend/src/workflow/manager/actionmanager.py create mode 100644 backend/src/workflow/manager/graphviz.py create mode 100644 backend/src/workflow/manager/utils.py diff --git a/backend/src/workflow/manager/actionmanager.py b/backend/src/workflow/manager/actionmanager.py new file mode 100644 index 0000000..2ebddf4 --- /dev/null +++ b/backend/src/workflow/manager/actionmanager.py @@ -0,0 +1,115 @@ +from zope.component import queryUtility + +from plone.memoize.instance import memoize +from plone.contentrules.engine.interfaces import IRuleStorage, IRuleAssignmentManager +from plone.app.contentrules.conditions.wftransition import WorkflowTransitionCondition +from plone.contentrules.engine import utils +from plone.app.contentrules.rule import Rule, get_assignments +from plone.contentrules.engine.assignments import RuleAssignment +from Products.CMFCore.interfaces._events import IActionSucceededEvent +from Products.CMFCore.utils import getToolByName +from workflow.manager.utils import generateRuleName, generateRuleNameOld + +from zope.i18nmessageid import MessageFactory +_ = MessageFactory("plone") + + +class RuleAdapter: + """Adapter for managing content rules with workflow transitions.""" + + def __init__(self, rule, transition): + self.rule = rule + self.transition = transition + + @property + @memoize + def portal(self): + return getToolByName(self.transition, 'portal_url').getPortalObject() + + def activate(self): + """ + 1) make sure condition is enabled for transition + 2) enable at root and bubble to item below + """ + c = WorkflowTransitionCondition() + c.wf_transitions = [self.transition.id] + self.rule.conditions = [c] + self.rule.event = IActionSucceededEvent + + assignable = IRuleAssignmentManager(self.portal) + path = '/'.join(self.portal.getPhysicalPath()) + assignable[self.rule.__name__] = RuleAssignment( + self.rule.id, + enabled=True, + bubbles=True + ) + assignments = get_assignments(self.rule) + if path not in assignments: + assignments.insert(path) + + @property + def id(self): + return self.rule.id + + def get_action(self, index): + return self.rule.actions[index] + + def action_index(self, action): + return self.rule.actions.index(action) + + def action_url(self, action): + return f'{self.portal.absolute_url()}/{self.rule.id}/++action++{self.action_index(action)}/edit' + + def delete_action(self, index): + self.rule.actions.remove(self.rule.actions[index]) + + @property + def actions(self): + return self.rule.actions + + +class ActionManager: + """Manager for workflow transition content rules and actions.""" + + def get_rule(self, transition): + rulename = generateRuleName(transition) + rulename_old = generateRuleNameOld(transition) + if self.storage is not None: + for rule in self.storage.values(): + if rule.__name__ in (rulename, rulename_old): + return RuleAdapter(rule, transition) + return None + + def create(self, transition): + rule = self.get_rule(transition) + if rule is None: + rule_id = generateRuleName(transition) + r = Rule() + r.title = _("%s transition content rule") % transition.id + r.description = _( + "This content rule was automatically created by " + "the workflow manager to create actions on " + "workflow events. If you want the behavior to " + "work as expected, do not modify this out of " + "the workflow manager." + ) + self.storage[rule_id] = r + rule = RuleAdapter(r, transition) + rule.activate() + + return rule + + @property + @memoize + def storage(self): + return queryUtility(IRuleStorage) + + @property + @memoize + def available_actions(self): + return utils.allAvailableActions(IActionSucceededEvent) + + def delete_rule_for(self, transition): + rule = self.get_rule(transition) + if rule is not None: + del self.storage[rule.rule.__name__] \ No newline at end of file diff --git a/backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py b/backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py index cb7ba03..4ee9a83 100644 --- a/backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py +++ b/backend/src/workflow/manager/controlpanel/control_panel/controlpanel.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from plone.app.registry.browser.controlpanel import ControlPanelFormWrapper from plone.app.registry.browser.controlpanel import RegistryEditForm from plone.restapi.controlpanels import RegistryConfigletPanel diff --git a/backend/src/workflow/manager/graphviz.py b/backend/src/workflow/manager/graphviz.py new file mode 100644 index 0000000..b85d25e --- /dev/null +++ b/backend/src/workflow/manager/graphviz.py @@ -0,0 +1,134 @@ +import os +import subprocess +from tempfile import NamedTemporaryFile +from os.path import join + +from Products.CMFCore.utils import getToolByName + +DOT_EXE = "dot" +bin_search_path = [] + +if os.name == "nt": + DOT_EXE = "dot.exe" + try: + import win32api + import win32con + + try: + key = win32api.RegOpenKeyEx( + win32con.HKEY_LOCAL_MACHINE, r"SOFTWARE\ATT\Graphviz" + ) + value, _ = win32api.RegQueryValueEx(key, "InstallPath") + bin_search_path = [join(str(value), "bin")] + except Exception: + pass + except ImportError: + pass +else: + path = os.getenv("PATH", "") + bin_search_path = path.split(":") + + +class MissingBinary(Exception): + pass + + +def bin_search(binary): + for p in bin_search_path: + path = join(p, binary) + if os.access(path, os.R_OK | os.X_OK): + return path + raise MissingBinary(f'Unable to find binary "{binary}"') + + +try: + bin_path = bin_search(DOT_EXE) + HAS_GRAPHVIZ = True +except MissingBinary: + HAS_GRAPHVIZ = False + bin_path = None + + +def getObjectTitle(obj): + obj_id = obj.getId() + title = obj.title or obj_id + return f"{title}\\n(id: {obj_id})" if obj.title else title + + +def getGuardTitle(guard): + out = [] + if guard: + if guard.expr: + out.append(f"Expression: {guard.expr.text};") + if guard.permissions: + out.append(f'Permissions: {",".join(guard.permissions)};') + if guard.roles: + out.append(f'Roles: {",".join(guard.roles)};') + if guard.groups: + out.append(f'Groups: {",".join(guard.groups)};') + return " ".join(out) + + +def getPOT(wf): + out = [f'digraph "{wf.title}" {{'] + transitions = {} + transitions_with_init_state = [] + + for s in wf.states.objectValues(): + s_id = s.getId() + s_title = getObjectTitle(s) + out.append( + f'"{s_id}" [shape=box,label="{s_title}",style="filled",fillcolor="#ffcc99"];' + ) + + for t_id in s.transitions: + transitions_with_init_state.append(t_id) + t = wf.transitions.get(t_id) + if not t: + out.append(f'# transition "{t_id}" from state "{s_id}" is missing') + continue + + new_state_id = t.new_state_id or s_id + key = (s_id, new_state_id) + transitions.setdefault(key, []).append( + f"{getObjectTitle(t)} {getGuardTitle(t.guard)}" + ) + + for t in wf.transitions.objectValues(): + if t.getId() not in transitions_with_init_state: + new_state_id = t.new_state_id or None + key = (None, new_state_id) + transitions.setdefault(key, []).append( + f"{getObjectTitle(t)} {getGuardTitle(t.guard)}" + ) + + for (src, dest), labels in transitions.items(): + out.append(f'"{src}" -> "{dest}" [label="{",".join(labels)}"];') + + out.append("}") + return "\n".join(out) + + +def getGraph(workflow, output_format="gif"): + pot = getPOT(workflow) + portal_properties = getToolByName(workflow, "portal_properties") + encoding = portal_properties.site_properties.getProperty("default_charset", "utf-8") + pot = pot.encode(encoding) if isinstance(pot, str) else pot + + with NamedTemporaryFile(suffix=".dot", delete=False) as infile: + infile.write(pot) + infile_path = infile.name + + with NamedTemporaryFile(suffix=f".{output_format}", delete=False) as outfile: + outfile_path = outfile.name + + subprocess.run( + [bin_path, f"-T{output_format}", "-o", outfile_path, infile_path], check=True + ) + + with open(outfile_path, "rb") as out: + result = out.read() + + os.remove(outfile_path) + os.remove(infile_path) + return result \ No newline at end of file diff --git a/backend/src/workflow/manager/profiles/default/browserlayer.xml b/backend/src/workflow/manager/profiles/default/browserlayer.xml index 53e5fab..1797600 100644 --- a/backend/src/workflow/manager/profiles/default/browserlayer.xml +++ b/backend/src/workflow/manager/profiles/default/browserlayer.xml @@ -1,6 +1,6 @@ - diff --git a/backend/src/workflow/manager/profiles/default/controlpanel.xml b/backend/src/workflow/manager/profiles/default/controlpanel.xml index 07aa6b7..617eaa1 100644 --- a/backend/src/workflow/manager/profiles/default/controlpanel.xml +++ b/backend/src/workflow/manager/profiles/default/controlpanel.xml @@ -1,5 +1,7 @@ - + - diff --git a/backend/src/workflow/manager/profiles/uninstall/controlpanel.xml b/backend/src/workflow/manager/profiles/uninstall/controlpanel.xml index fd76d81..f282c96 100644 --- a/backend/src/workflow/manager/profiles/uninstall/controlpanel.xml +++ b/backend/src/workflow/manager/profiles/uninstall/controlpanel.xml @@ -1,5 +1,7 @@ - + Date: Fri, 13 Jun 2025 10:45:20 +0530 Subject: [PATCH 03/60] setup graph --- .../manager/api/services/workflow/actions.py | 0 .../manager/api/services/workflow/base.py | 281 +++++++++ .../api/services/workflow/configure.zcml | 48 +- .../manager/api/services/workflow/layout.py | 49 ++ .../manager/api/services/workflow/workflow.py | 439 ++++++++++++++ backend/src/workflow/manager/configure.zcml | 3 +- .../controlpanel/control_panel/configure.zcml | 3 - .../volto-workflow-manager/package.json | 2 + .../volto-workflow-manager/src/Provider.tsx | 9 + .../src/actions/index.ts | 1 + .../src/actions/workflow.ts | 38 ++ .../components/Controlpanel/ControlPanel.tsx | 247 ++++++++ .../src/components/Edges/CustomEdge.tsx | 105 ++-- .../src/components/Edges/index.ts | 5 + .../src/components/Nodes/CustomNode.tsx | 56 ++ .../src/components/Nodes/index.css | 107 ++++ .../src/components/State/StateEditDialog.tsx | 151 +++++ .../components/State/Tabs/GroupRolesTab.tsx | 78 +++ .../State/Tabs/PermissionRolesTab.tsx | 99 ++++ .../components/State/Tabs/PropertiesTab.tsx | 63 ++ .../components/State/Tabs/TransitionsTab.tsx | 69 +++ .../components/Workflow/CreateWorkflow.tsx | 110 ++++ .../src/components/Workflow/Toolbox.tsx | 156 +++++ .../src/components/Workflow/Topbar.tsx | 55 ++ .../src/components/Workflow/Workflow.tsx | 218 ------- .../src/components/Workflow/WorkflowGraph.tsx | 223 +++++++ .../src/components/Workflow/WorkflowView.tsx | 556 ++++++++---------- .../volto-workflow-manager/src/index.js | 23 +- .../src/reducers/index.ts | 1 + .../src/reducers/workflow.ts | 97 ++- .../volto-workflow-manager/src/types/index.ts | 32 +- .../volto-workflow-manager/tsconfig.json | 2 +- frontend/pnpm-lock.yaml | 188 +++++- frontend/volto.config.js | 2 +- 34 files changed, 2914 insertions(+), 602 deletions(-) create mode 100644 backend/src/workflow/manager/api/services/workflow/actions.py create mode 100644 backend/src/workflow/manager/api/services/workflow/base.py create mode 100644 backend/src/workflow/manager/api/services/workflow/layout.py create mode 100644 frontend/packages/volto-workflow-manager/src/Provider.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/actions/index.ts create mode 100644 frontend/packages/volto-workflow-manager/src/components/Controlpanel/ControlPanel.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Edges/index.ts create mode 100644 frontend/packages/volto-workflow-manager/src/components/Nodes/index.css create mode 100644 frontend/packages/volto-workflow-manager/src/components/State/StateEditDialog.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/State/Tabs/GroupRolesTab.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/State/Tabs/PermissionRolesTab.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/State/Tabs/PropertiesTab.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/State/Tabs/TransitionsTab.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Workflow/CreateWorkflow.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Workflow/Toolbox.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Workflow/Topbar.tsx delete mode 100644 frontend/packages/volto-workflow-manager/src/components/Workflow/Workflow.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/components/Workflow/WorkflowGraph.tsx create mode 100644 frontend/packages/volto-workflow-manager/src/reducers/index.ts diff --git a/backend/src/workflow/manager/api/services/workflow/actions.py b/backend/src/workflow/manager/api/services/workflow/actions.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/workflow/manager/api/services/workflow/base.py b/backend/src/workflow/manager/api/services/workflow/base.py new file mode 100644 index 0000000..1ee7565 --- /dev/null +++ b/backend/src/workflow/manager/api/services/workflow/base.py @@ -0,0 +1,281 @@ +from Products.CMFCore.utils import getToolByName +import json +from urllib.parse import urlencode + +from AccessControl import Unauthorized + +from zope.component import getUtility, getMultiAdapter +from zope.schema.interfaces import IVocabularyFactory +from Products.CMFCore.utils import getToolByName +from plone.memoize.view import memoize + +from workflow.manager.api.services.workflow.layout import GraphLayout +from workflow.manager.permissions import ( + managed_permissions, + allowed_guard_permissions, +) +from workflow.manager.actionmanager import ActionManager +from workflow.manager import _ + +plone_shipped_workflows = [ + "folder_workflow", + "intranet_folder_workflow", + "intranet_workflow", + "one_state_workflow", + "plone_workflow", + "simple_publication_workflow", + "comment_review_workflow", +] + +class Base: + def __init__(self, context, request): + self.context = context + self.request = request + + debug = False + errors = {} + next_id = None # the id of the next workflow to be viewed + label = _("Workflow Manager") + description = _("Manage your custom workflows TTW.") + + @property + @memoize + def managed_permissions(self): + return managed_permissions(self.selected_workflow.getId()) + + @property + @memoize + def actions(self): + return ActionManager() + + @property + @memoize + def allowed_guard_permissions(self): + return allowed_guard_permissions(self.selected_workflow.getId()) + + @property + @memoize + def portal(self): + utool = getToolByName(self.context, "portal_url") + return utool.getPortalObject() + + @property + @memoize + def portal_workflow(self): + return getToolByName(self.context, "portal_workflow") + + @property + @memoize + def available_workflows(self): + return [w for w in self.workflows if w.id not in plone_shipped_workflows] + + @property + @memoize + def workflows(self): + pw = self.portal_workflow + ids = pw.portal_workflow.listWorkflows() + return [pw[id] for id in sorted(ids)] + + @property + @memoize + def selected_workflow(self): + selected = self.request.get("selected-workflow") + if isinstance(selected, list) and selected: + selected = selected[0] + return ( + self.portal_workflow.get(selected) + if selected in self.portal_workflow.objectIds() + else None + ) + + @property + @memoize + def selected_state(self): + state = self.request.get("selected-state") + if isinstance(state, list) and state: + state = state[0] + + workflow = self.selected_workflow + if workflow and state in workflow.states.objectIds(): + return workflow.states.get(state) + + return None + + @property + @memoize + def selected_transition(self): + transition = self.request.get("selected-transition") + if isinstance(transition, list) and transition: + transition = transition[0] + + workflow = self.selected_workflow + if workflow and transition in workflow.transitions.objectIds(): + return workflow.transitions.get(transition) + + return None + + @property + @memoize + def available_states(self): + return ( + sorted( + self.selected_workflow.states.objectValues(), + key=lambda x: x.title.lower(), + ) + if self.selected_workflow + else [] + ) + + @property + @memoize + def available_transitions(self): + return ( + sorted( + self.selected_workflow.transitions.objectValues(), + key=lambda x: x.title.lower(), + ) + if self.selected_workflow + else [] + ) + + def authorize(self): + authenticator = getMultiAdapter( + (self.context, self.request), name="authenticator" + ) + if not authenticator.verify(): + raise Unauthorized + + def render_transitions_template(self): + return self.workflow_transitions_template( + available_states=self.available_states, + available_transitions=self.available_transitions) + + def get_transition(self, id): + if id in self.selected_workflow.transitions.objectIds(): + return self.selected_workflow.transitions[id] + + @property + @memoize + def assignable_types(self): + vocab_factory = getUtility(IVocabularyFactory, + name="plone.app.vocabularies.ReallyUserFriendlyTypes") + types = [] + for v in vocab_factory(self.context): + types.append(dict(id=v.value, title=v.title)) + + def _key(v): + return v['title'] + + types.sort(key=_key) + return types + + @property + def assigned_types(self): + types = [] + try: + chain = self.portal_workflow.listChainOverrides() + nondefault = [info[0] for info in chain] + for type_ in self.assignable_types: + if type_['id'] in nondefault: + chain = self.portal_workflow.getChainForPortalType( + type_['id']) + if len(chain) > 0 and chain[0] == \ + self.selected_workflow.id: + types.append(type_) + except: + pass + + return types + + def get_transition_list(self, state): + transitions = state.getTransitions() + return [t for t in self.available_transitions if t.id in transitions] + + def get_state(self, id): + if id in self.selected_workflow.states.objectIds(): + return self.selected_workflow.states[id] + else: + return None + + def get_transition_paths(self, state=None): + + if state is not None: + states = [state,] + else: + states = self.available_states + + paths = dict() + transitions = self.available_transitions + for state in states: + + stateId = state.id + + for trans in state.transitions: + current_transition = self.get_transition(trans) + if current_transition is not None: + if current_transition.id is not None and current_transition.new_state_id is not None: + + nextState = current_transition.new_state_id + + if stateId not in paths: + paths[stateId] = dict() + + if nextState not in paths[stateId]: + paths[stateId][nextState] = dict() + + paths[state.id][nextState][current_transition.id] = current_transition.title + + return json.dumps(paths) + + def get_graphLayout(self, workflow): + gl = GraphLayout(self.context, self.request, workflow.id) + return gl.getLayout() + + def get_debug_mode(self): + return self.debug + + def get_transition_paths(self, state=None): + states = [state] if state else self.available_states + paths = {} + for state in states: + stateId = state.id + paths[stateId] = { + trans.new_state_id: {trans.id: trans.title} + for trans in map(self.get_transition, state.transitions) + if trans and trans.new_state_id + } + return json.dumps(paths) + + @property + @memoize + def next_url(self): + return self.get_url() + + def get_url( + self, relative=None, workflow=None, transition=None, state=None, **kwargs + ): + url = ( + f"{self.context.absolute_url()}/@@workflowmanager" + if not relative + else f"{self.context.absolute_url()}/{relative.lstrip('/')}" + ) + params = { + "selected-workflow": ( + workflow.id + if workflow + else ( + self.next_id + or (self.selected_workflow.id if self.selected_workflow else None) + ) + ), + "selected-transition": transition.id if transition else None, + "selected-state": state.id if state else None, + **kwargs, + } + params = {k: v for k, v in params.items() if v is not None} + return f"{url}?{urlencode(params)}" if params else url + + @property + @memoize + def context_state(self): + return getMultiAdapter((self.context, self.request), name="plone_portal_state") \ No newline at end of file diff --git a/backend/src/workflow/manager/api/services/workflow/configure.zcml b/backend/src/workflow/manager/api/services/workflow/configure.zcml index 6c01556..c215816 100644 --- a/backend/src/workflow/manager/api/services/workflow/configure.zcml +++ b/backend/src/workflow/manager/api/services/workflow/configure.zcml @@ -4,5 +4,51 @@ xmlns:zcml="http://namespaces.zope.org/zcml" > - + + + + + + + + + + + \ No newline at end of file diff --git a/backend/src/workflow/manager/api/services/workflow/layout.py b/backend/src/workflow/manager/api/services/workflow/layout.py new file mode 100644 index 0000000..bef7cb1 --- /dev/null +++ b/backend/src/workflow/manager/api/services/workflow/layout.py @@ -0,0 +1,49 @@ +from Products.Five.browser import BrowserView +import json +from plone import api + + +class GraphLayout(BrowserView): + """Class to handle the Workflow Manager graph layouts.""" + + REGISTRY_KEY = "workflow.manager.layouts" + + def __init__(self, context, request, workflow=None): + super().__init__(context, request) + self.workflow = ( + workflow or self.request.form.get("workflow") or None + ) + + self.layout = {} + layouts = self.getLayouts() or {} + + if self.workflow not in layouts: + layouts[self.workflow] = "{}" + else: + try: + self.layout = json.loads(layouts[self.workflow]) + except json.JSONDecodeError: + self.layout = {} + + def __call__(self): + layout_json = self.request.form.get("layout") + if layout_json: + try: + self.layout = json.loads(layout_json) + self.saveLayout() + except json.JSONDecodeError: + pass # Optionally log error here + + def getLayouts(self): + try: + return api.portal.get_registry_record(self.REGISTRY_KEY) + except Exception: + return {} + + def saveLayout(self): + layouts = self.getLayouts() or {} + layouts[self.workflow] = json.dumps(self.layout) + api.portal.set_registry_record(self.REGISTRY_KEY, layouts) + + def getLayout(self): + return json.dumps(self.layout) if self.workflow else False diff --git a/backend/src/workflow/manager/api/services/workflow/workflow.py b/backend/src/workflow/manager/api/services/workflow/workflow.py index e69de29..54e47da 100644 --- a/backend/src/workflow/manager/api/services/workflow/workflow.py +++ b/backend/src/workflow/manager/api/services/workflow/workflow.py @@ -0,0 +1,439 @@ +# -*- coding: utf-8 -*- +from plone.restapi.interfaces import IExpandableElement +from Products.CMFCore.interfaces._content import IWorkflowAware +from plone.restapi.services import Service +from zope.component import adapter +from zope.interface import implementer +from zope.interface import Interface +from urllib.parse import urlencode +from plone.restapi.deserializer import json_body + +from zope.publisher.interfaces import IPublishTraverse +from workflow.manager import _ +from workflow.manager.api.services.workflow.base import Base +from urllib.parse import urlencode + +plone_shipped_workflows = [ + "folder_workflow", + "intranet_folder_workflow", + "intranet_workflow", + "one_state_workflow", + "plone_workflow", + "simple_publication_workflow", + "comment_review_workflow", +] + + +@implementer(IExpandableElement) +@adapter(IWorkflowAware, Interface) +class DeleteWorkflow(Service): + def __init__(self, context, request): + self.request = json_body(request) + self.context = context + self.base = Base(context, request) + + def reply(self): + self.errors = {} + + # self.can_delete = len(self.assigned_types) == 0 # get assigned types to a workflow somehow + + # if not self.can_delete: + # return {"status": "error", "message": "Cant delete workflow unless assigned types removed and attached to some other workflow."} + self.base.authorize() + # delete all rules also. + for transition in self.base.available_transitions: + self.base.actions.delete_rule_for(transition) + + self.base.portal_workflow.manage_delObjects([self.base.selected_workflow.id]) + return {"status": "success", "message": "Workflow deleted successfully"} + + +@implementer(IPublishTraverse) +@adapter(IWorkflowAware, Interface) +class AddWorkflow(Service): + def __init__(self, context, request): + super().__init__(context, request) + # Disable CSRF protection + from zope.interface import alsoProvides + import plone.protect.interfaces + + if "IDisableCSRFProtection" in dir(plone.protect.interfaces): + alsoProvides(self.request, plone.protect.interfaces.IDisableCSRFProtection) + + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + body = json_body(self.request) + workflow = body.get("workflow-name") + workflow_id = workflow.strip().replace("-", "_") + if not workflow or not workflow_id: + return {"error": "Missing required workflow information"} + + cloned_from_workflow = self.base.portal_workflow[ + body.get("clone-from-workflow") + ] + + self.base.portal_workflow.manage_clone(cloned_from_workflow, workflow_id) + new_workflow = self.base.portal_workflow[workflow_id] + new_workflow.title = workflow + + return { + "status": "success", + "workflow_id": new_workflow.id, + "message": _("Workflow created successfully"), + } + + +@implementer(IExpandableElement) +@adapter(IWorkflowAware, Interface) +class UpdateSecuritySettings(Service): + def __init__(self, context, request): + self.request = json_body(request) + self.context = context + self.base = Base(context, request) + + def reply(self): + self.base.authorize() + count = self.base.portal_workflow._recursiveUpdateRoleMappings( + self.base.portal, + {self.base.selected_workflow.id: self.base.selected_workflow}, + ) + return { + "status": "success", + "message": _( + "msg_updated_objects", + default="Updated ${count} objects.", + mapping={"count": count}, + ), + } + + +@implementer(IExpandableElement) +@adapter(IWorkflowAware, Interface) +class Assign(Service): + def __init__(self, context, request): + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + self.errors = {} + + self.base.authorize() + params = urlencode( + { + "type_id": self.request.get("type_id"), + "new_workflow": self.base.selected_workflow.id, + } + ) + return { + "status": "success", + "message": "Workflow assigned successfully", + "redirect": self.context_state.portal_url() + + "/@@content-controlpanel?" + + params, + } + + +@implementer(IExpandableElement) +@adapter(IWorkflowAware, Interface) +class SanityCheck(Service): + def __init__(self, context, request): + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + self.errors = {} + states = self.base.available_states + transitions = self.base.available_transitions + self.errors["state-errors"] = [] + self.errors["transition-errors"] = [] + + for state in states: + found = False + for transition in transitions: + if transition.new_state_id == state.id: + found = True + break + + if ( + self.base.selected_workflow.initial_state == state.id + and len(state.transitions) > 0 + ): + found = True + + if not found: + self.errors["state-errors"].append(state) + + for transition in transitions: + found = False + if not transition.new_state_id: + found = True + + for state in states: + if transition.id in state.transitions: + found = True + break + + if not found: + self.errors["transition-errors"].append(transition) + + state_ids = [s.id for s in states] + if ( + not self.base.selected_workflow.initial_state + or self.base.selected_workflow.initial_state not in state_ids + ): + self.errors["initial-state-error"] = True + + has_errors = ( + len(self.errors["state-errors"]) > 0 + or len(self.errors["transition-errors"]) > 0 + or "initial-state-error" in self.errors + ) + + return { + "status": "success" if not has_errors else "error", + "errors": self.errors, + } + + +@implementer(IExpandableElement) +@adapter(IWorkflowAware, Interface) +class UpdateSecurityService(Service): + def __init__(self, context, request): + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + + workflow = self.get_selected_workflow() + if not workflow: + return {"error": "No workflow selected"} + + count = self.base.portal_workflow._recursiveUpdateRoleMappings( + self.base.context, {workflow.id: workflow} + ) + + return { + "status": "success", + "count": count, + "message": _( + "msg_updated_objects", + default="Updated ${count} objects.", + mapping={"count": count}, + ), + } + + def get_selected_workflow(self): + workflow_id = self.request.get("selected-workflow") + if workflow_id: + return self.portal_workflow.get(workflow_id) + return None + + +@implementer(IExpandableElement) +@adapter(IWorkflowAware, Interface) +class AssignWorkflowService(Service): + def __init__(self, context, request): + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + workflow = self.get_selected_workflow() + if not workflow: + return {"error": "No workflow selected"} + + type_id = self.request.get("type_id") + if not type_id: + return {"error": "No content type specified"} + + # Update workflow chain for type + chain = (workflow.id,) + self.base.portal_workflow.setChainForPortalTypes((type_id,), chain) + + return { + "status": "success", + "workflow": workflow.id, + "type": type_id, + "message": _("Workflow assigned successfully"), + } + + def get_selected_workflow(self): + workflow_id = self.request.get("selected-workflow") + if workflow_id: + return self.base.portal_workflow.get(workflow_id) + return None + + +@adapter(IWorkflowAware, Interface) +class DeleteWorkflowService(Service): + def __init__(self, context, request): + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + workflow = self.get_selected_workflow() + if not workflow: + return {"error": "No workflow selected"} + + workflow_id = workflow.id + self.base.portal_workflow.manage_delObjects([workflow_id]) + + return { + "status": "success", + "workflow": workflow_id, + "message": _("Workflow deleted successfully"), + } + + def get_selected_workflow(self): + body = json_body(self.request) + workflow_id = body.get("selected-workflow") + if workflow_id: + return self.base.portal_workflow.get(workflow_id) + return None + + +@adapter(IWorkflowAware, Interface) +class SanityCheckService(Service): + def __init__(self, context, request): + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + workflow = self.get_selected_workflow() + if not workflow: + return {"error": "No workflow selected"} + + states = workflow.states + transitions = workflow.transitions + errors = { + "state_errors": [], + "transition_errors": [], + "initial_state_error": False, + } + + # Check states + for state in states.values(): + found = False + for transition in transitions.values(): + if transition.new_state_id == state.id: + found = True + break + + if workflow.initial_state == state.id and len(state.transitions) > 0: + found = True + + if not found: + errors["state_errors"].append( + { + "id": state.id, + "title": state.title, + "error": "State is not reachable", + } + ) + + # Check transitions + for transition in transitions.values(): + found = False + if not transition.new_state_id: + found = True + + for state in states.values(): + if transition.id in state.transitions: + found = True + break + + if not found: + errors["transition_errors"].append( + { + "id": transition.id, + "title": transition.title, + "error": "Transition is not used by any state", + } + ) + + # Check initial state + state_ids = [s.id for s in states.values()] + if not workflow.initial_state or workflow.initial_state not in state_ids: + errors["initial_state_error"] = True + + has_errors = ( + len(errors["state_errors"]) > 0 + or len(errors["transition_errors"]) > 0 + or errors["initial_state_error"] + ) + + return { + "status": "success" if not has_errors else "error", + "workflow": workflow.id, + "errors": errors, + "message": _("Workflow validation complete"), + } + + def get_selected_workflow(self): + workflow_id = self.request.get("selected-workflow") + if workflow_id: + return self.base.portal_workflow.get(workflow_id) + return None + + +@implementer(IExpandableElement) +@adapter(IWorkflowAware, Interface) +class GetWorkflowsService(Service): + def __init__(self, context, request): + self.request = request + self.context = context + self.base = Base(context, request) + + def reply(self): + portal_workflow = self.base.portal_workflow + workflows = [] + + for workflow_id in portal_workflow.listWorkflows(): + workflow = portal_workflow[workflow_id] + + # # Skip Plone shipped workflows if needed + # if workflow_id in plone_shipped_workflows: + # continue + + workflow_info = { + "id": workflow_id, + "title": workflow.title or workflow_id, + "description": getattr(workflow, "description", ""), + "initial_state": workflow.initial_state, + "states": [ + { + "id": state_id, + "title": state.title, + "transitions": state.transitions, + } + for state_id, state in workflow.states.items() + ], + "transitions": [ + { + "id": trans_id, + "title": trans.title, + "new_state": trans.new_state_id, + "description": getattr(trans, "description", ""), + } + for trans_id, trans in workflow.transitions.items() + ], + } + + # Get content types using this workflow + chain_types = [] + for portal_type, chain in self.base.portal_workflow.listChainOverrides(): + if workflow_id in chain: + chain_types.append(portal_type) + + workflow_info["assigned_types"] = chain_types + workflows.append(workflow_info) + + return {"workflows": workflows} \ No newline at end of file diff --git a/backend/src/workflow/manager/configure.zcml b/backend/src/workflow/manager/configure.zcml index 7c120a3..8aba1b8 100644 --- a/backend/src/workflow/manager/configure.zcml +++ b/backend/src/workflow/manager/configure.zcml @@ -2,6 +2,7 @@ xmlns="http://namespaces.zope.org/zope" xmlns:genericsetup="http://namespaces.zope.org/genericsetup" xmlns:i18n="http://namespaces.zope.org/i18n" + xmlns:plone="http://namespaces.plone.org/plone" i18n_domain="workflow.manager" > @@ -27,7 +28,7 @@ description='Uninstalls the Workflow Manager for Plone.' provides="Products.GenericSetup.interfaces.EXTENSION" /> - diff --git a/backend/src/workflow/manager/controlpanel/control_panel/configure.zcml b/backend/src/workflow/manager/controlpanel/control_panel/configure.zcml index b83c03b..08b0df1 100644 --- a/backend/src/workflow/manager/controlpanel/control_panel/configure.zcml +++ b/backend/src/workflow/manager/controlpanel/control_panel/configure.zcml @@ -14,9 +14,6 @@ /> - \ No newline at end of file diff --git a/frontend/packages/volto-workflow-manager/package.json b/frontend/packages/volto-workflow-manager/package.json index 7319460..0a77e92 100644 --- a/frontend/packages/volto-workflow-manager/package.json +++ b/frontend/packages/volto-workflow-manager/package.json @@ -30,11 +30,13 @@ "dependencies": { "@adobe/react-spectrum": "^3.42.0", "@reduxjs/toolkit": "^2.8.2", + "@spectrum-icons/workflow": "^4.2.22", "@types/redux": "^3.6.0", "@xyflow/react": "^12.6.4", "lucide-react": "^0.511.0", "react-aria-components": "^1.9.0", "react-redux": "8.1.2", + "react-router-dom": "5.2.0", "redux": "4.2.1" }, "peerDependencies": { diff --git a/frontend/packages/volto-workflow-manager/src/Provider.tsx b/frontend/packages/volto-workflow-manager/src/Provider.tsx new file mode 100644 index 0000000..a251faa --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/Provider.tsx @@ -0,0 +1,9 @@ +import { Provider, defaultTheme } from '@adobe/react-spectrum'; + +const ThemeProvider = (Component) => (props) => ( + + + +); + +export default ThemeProvider; diff --git a/frontend/packages/volto-workflow-manager/src/actions/index.ts b/frontend/packages/volto-workflow-manager/src/actions/index.ts new file mode 100644 index 0000000..da6b566 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/actions/index.ts @@ -0,0 +1 @@ +export * from './workflow'; diff --git a/frontend/packages/volto-workflow-manager/src/actions/workflow.ts b/frontend/packages/volto-workflow-manager/src/actions/workflow.ts index d61a28a..56e5be6 100644 --- a/frontend/packages/volto-workflow-manager/src/actions/workflow.ts +++ b/frontend/packages/volto-workflow-manager/src/actions/workflow.ts @@ -1,9 +1,13 @@ +import type { WorkflowState } from '../reducers/workflow'; + export const GET_WORKFLOWS = 'GET_WORKFLOWS' as const; export const ADD_WORKFLOW = 'ADD_WORKFLOW' as const; export const DELETE_WORKFLOW = 'DELETE_WORKFLOW' as const; export const UPDATE_WORKFLOW_SECURITY = 'UPDATE_WORKFLOW_SECURITY' as const; +export const UPDATE_WORKFLOW_STATE = 'UPDATE_WORKFLOW_STATE'; export const ASSIGN_WORKFLOW = 'ASSIGN_WORKFLOW' as const; export const VALIDATE_WORKFLOW = 'VALIDATE_WORKFLOW' as const; +export const RENAME_WORKFLOW = 'RENAME_WORKFLOW' as const; export function getWorkflows() { return { @@ -43,6 +47,25 @@ export function deleteWorkflow(workflowId: string) { }; } +// Add this constant with your others + +// Add this action creator function +// It prepares the request for your API middleware +export function updateWorkflowState(workflowId: string, state: WorkflowState) { + return { + type: UPDATE_WORKFLOW_STATE, + // This structure assumes you have middleware that handles API requests + request: { + op: 'put', // Or 'patch' + path: `/api/@workflow/${workflowId}/states/${state.id}`, // Example API path + data: state, + }, + // Pass the data along for the reducer to use on success + workflowId, + state, + }; +} + export function updateWorkflowSecurity(workflowId: string) { return { type: UPDATE_WORKFLOW_SECURITY, @@ -83,3 +106,18 @@ export function validateWorkflow(workflowId: string) { }, }; } + +export function renameWorkflow(workflowId: string, newTitle: string) { + return { + type: RENAME_WORKFLOW, + request: { + op: 'post', + path: '/@workflow-rename', + data: { + 'selected-workflow': workflowId, + 'new-title': newTitle, + 'form.actions.rename': true, + }, + }, + }; +} diff --git a/frontend/packages/volto-workflow-manager/src/components/Controlpanel/ControlPanel.tsx b/frontend/packages/volto-workflow-manager/src/components/Controlpanel/ControlPanel.tsx new file mode 100644 index 0000000..f6a93fb --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/Controlpanel/ControlPanel.tsx @@ -0,0 +1,247 @@ +import { useEffect, useState } from 'react'; +import { useSelector, useDispatch } from 'react-redux'; +import { useLocation, useHistory } from 'react-router-dom'; +import { + Heading, + Text, + ProgressCircle, + AlertDialog, + DialogTrigger, + ActionButton, + Flex, + Form, + Well, + Item, + View, + Column, + TableHeader, + Cell, + Row, + TableBody, + TableView, + MenuTrigger, + Menu, +} from '@adobe/react-spectrum'; +import { + getWorkflows, + addWorkflow, + deleteWorkflow, + renameWorkflow, +} from '../../actions'; +import CreateWorkflow from '../Workflow/CreateWorkflow'; +import WorkflowView from '../Workflow/WorkflowView'; +import ThemeProvider from '../../Provider'; +import MoreSmallList from '@spectrum-icons/workflow/MoreSmallList'; + +const plone_shipped_workflows = [ + 'folder_workflow', + 'intranet_folder_workflow', + 'intranet_workflow', + 'one_state_workflow', + 'plone_workflow', + 'simple_publication_workflow', + 'comment_review_workflow', + 'comment_one_state_workflow', +]; + +interface WorkflowItem { + id: string; + title: string; + description: string; + assignedTypes: string | null; +} + +const WorkflowTable = ({ workflows, handleWorkflowClick, isClickable }) => { + const dispatch = useDispatch(); + const [renameDialogOpen, setRenameDialogOpen] = useState(false); + const [workflowToRename, setWorkflowToRename] = useState(null); + const [newTitle, setNewTitle] = useState(''); + + const workflowItems: WorkflowItem[] = workflows.map((workflow) => ({ + id: workflow.id, + title: workflow.title || workflow.id, + description: workflow.description || 'No description available', + assignedTypes: + workflow.assigned_types?.length > 0 + ? `Assigned to: ${workflow.assigned_types.join(', ')}` + : null, + })); + + const handleAction = (key, item) => { + if (key === 'edit') { + handleWorkflowClick(item.id); + } else if (key === 'delete') { + dispatch(deleteWorkflow(item.id)); + } else if (key === 'rename') { + setWorkflowToRename(item); + setNewTitle(item.title); + setRenameDialogOpen(true); + } + }; + + const handleRename = () => { + dispatch(renameWorkflow(workflowToRename.id, newTitle)); + setRenameDialogOpen(false); + }; + + return ( + <> + isClickable && handleWorkflowClick(key)} + > + + Title + Description + Actions + + + {(item) => ( + + {item.title} + {item.description} + + + + + + handleAction(key, item)}> + Edit + Rename + Delete + + + + + )} + + + + {renameDialogOpen && ( + + <> + setRenameDialogOpen(false)} + > + + + Enter a new name for workflow "{workflowToRename?.title}" + + setNewTitle(e.target.value)} + style={{ + padding: '8px', + borderRadius: '4px', + border: '1px solid #ccc', + }} + /> + + + + )} + + ); +}; + +const WorkflowControlPanel = () => { + const dispatch = useDispatch(); + const history = useHistory(); + const location = useLocation(); + const searchParams = new URLSearchParams(location.search); + const selectedWorkflow = searchParams.get('workflow'); + + const { + items: workflows, + loading, + error, + } = useSelector((state) => state.workflow.workflows); + const [modalOpen, setModalOpen] = useState(false); + + useEffect(() => { + dispatch(getWorkflows()); + }, [dispatch]); + + const handleCreateWorkflow = async (cloneFromWorkflow, workflowName) => { + const result = dispatch(addWorkflow(cloneFromWorkflow, workflowName)); + if (result?.workflow_id) { + dispatch(getWorkflows()); + history.push( + `/controlpanel/workflowmanager?workflow=${result.workflow_id}`, + ); + } + setModalOpen(false); + }; + + const handleWorkflowClick = (workflowId) => { + history.push(`/controlpanel/workflowmanager?workflow=${workflowId}`); + }; + + if (selectedWorkflow) { + return ; + } + + return ( + +
+ + Workflow Manager + + + + + + {loading && ( + + + Loading Workflows... + + )} + + {/* Error State */} + {error && ( + + + Error Loading Workflows + + {(close) => ( + + {error.message} + + )} + + )} + + + Please select your workflow + + !plone_shipped_workflows.includes(workflow.id), + )} + handleWorkflowClick={handleWorkflowClick} + isClickable={true} + /> + +
+
+ ); +}; + +export default ThemeProvider(WorkflowControlPanel); diff --git a/frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx b/frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx index fc45ab7..e384a2a 100644 --- a/frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx +++ b/frontend/packages/volto-workflow-manager/src/components/Edges/CustomEdge.tsx @@ -1,63 +1,90 @@ import React from 'react'; -import { X } from 'lucide-react'; -import { - BezierEdge, - EdgeLabelRenderer, - getBezierPath, - useReactFlow, -} from '@xyflow/react'; +import { BezierEdge, getBezierPath, EdgeLabelRenderer } from '@xyflow/react'; import type { EdgeProps } from '@xyflow/react'; -import { Button } from 'react-aria-components'; -export default function CustomEdge(props: EdgeProps) { +// Define the shape of data that your workflow transition edges will have +interface WorkflowTransitionEdgeData { + [key: string]: unknown; + label?: string; + highlighted?: boolean; + transitionId?: string; + // Add other properties your workflow transitions might have + description?: string; + conditions?: string[]; + permissions?: string[]; + automatic?: boolean; +} + +// Type the EdgeProps to specify what data structure you expect +interface CustomEdgeProps extends EdgeProps { + data?: WorkflowTransitionEdgeData; +} + +const CustomEdge: React.FC = (props) => { const { - id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, + data, + id, + selected, } = props; - const { setEdges } = useReactFlow(); - - const [labelX, labelY] = getBezierPath({ + const [edgePath, labelX, labelY] = getBezierPath({ sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, + curvature: 0.25, }); - const onEdgeClick = () => { - setEdges((edges) => edges.filter((edge) => edge.id !== id)); - }; - return ( <> - - - - + + {data?.label && ( + +
+ {data.label} + {data.automatic && ( + + )} +
+
+ )} ); -} +}; + +export default CustomEdge; +export type { WorkflowTransitionEdgeData, CustomEdgeProps }; diff --git a/frontend/packages/volto-workflow-manager/src/components/Edges/index.ts b/frontend/packages/volto-workflow-manager/src/components/Edges/index.ts new file mode 100644 index 0000000..1cc2adb --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/Edges/index.ts @@ -0,0 +1,5 @@ +import CustomEdge from './CustomEdge'; + +export const edgeTypes = { + custom: CustomEdge, +}; diff --git a/frontend/packages/volto-workflow-manager/src/components/Nodes/CustomNode.tsx b/frontend/packages/volto-workflow-manager/src/components/Nodes/CustomNode.tsx index e69de29..113a939 100644 --- a/frontend/packages/volto-workflow-manager/src/components/Nodes/CustomNode.tsx +++ b/frontend/packages/volto-workflow-manager/src/components/Nodes/CustomNode.tsx @@ -0,0 +1,56 @@ +import React from 'react'; +import { Handle, Position, type NodeProps } from '@xyflow/react'; +import './index.css'; + +// Define the shape of data that your workflow state nodes will have +interface WorkflowStateNodeData { + [key: string]: unknown; // Index signature to satisfy Record + label: string; + highlighted?: boolean; + stateId?: string; + // Add other properties your workflow states might have + description?: string; + isInitial?: boolean; + isFinal?: boolean; + permissions?: string[]; + // You can extend this based on your actual workflow state structure +} + +// Type the NodeProps to specify what data structure you expect +interface CustomNodeProps extends NodeProps { + data: WorkflowStateNodeData; +} + +const CustomNode: React.FC = ({ data, id, selected }) => { + return ( +
+ +
+ {data.label} + {data.description && ( +
{data.description}
+ )} + {data.isInitial &&
Initial
} + {data.isFinal &&
Final
} +
+ +
+ ); +}; + +export default CustomNode; +export type { WorkflowStateNodeData, CustomNodeProps }; diff --git a/frontend/packages/volto-workflow-manager/src/components/Nodes/index.css b/frontend/packages/volto-workflow-manager/src/components/Nodes/index.css new file mode 100644 index 0000000..02e6ea6 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/Nodes/index.css @@ -0,0 +1,107 @@ +/* Custom Node Styles */ +.custom-node { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + background: white; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + min-width: 100px; + transition: all 0.2s ease; + position: relative; +} + +.custom-node:hover { + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); + transform: translateY(-1px); +} + +.custom-node.selected { + border-color: #0078d4; + box-shadow: 0 0 0 2px rgba(0, 120, 212, 0.2); +} + +/* Pulse animation for highlighted nodes */ +.custom-node.pulse-border { + animation: pulse-border 2s ease-in-out infinite; + border-color: #ff6b6b; +} + +@keyframes pulse-border { + 0% { + border-color: #ff6b6b; + box-shadow: 0 0 0 0 rgba(255, 107, 107, 0.7); + } + 50% { + border-color: #ff8e8e; + box-shadow: 0 0 0 8px rgba(255, 107, 107, 0); + } + 100% { + border-color: #ff6b6b; + box-shadow: 0 0 0 0 rgba(255, 107, 107, 0); + } +} + +/* Node content layout */ +.node-content { + text-align: center; + line-height: 1.4; +} + +.node-description { + font-size: 11px; + color: #666; + margin-top: 4px; + font-weight: normal; +} + +/* Node badges for initial/final states */ +.node-badge { + font-size: 9px; + padding: 2px 6px; + border-radius: 10px; + margin-top: 4px; + display: inline-block; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.node-badge.initial { + background: #d4edda; + color: #155724; + border: 1px solid #c3e6cb; +} + +.node-badge.final { + background: #f8d7da; + color: #721c24; + border: 1px solid #f5c6cb; +} + +/* Handle styles */ +.react-flow__handle { + width: 8px; + height: 8px; + border: 2px solid white; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); +} + +.react-flow__handle-left { + left: -4px; +} + +.react-flow__handle-right { + right: -4px; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .custom-node { + padding: 8px 12px; + min-width: 80px; + } + + .node-description { + display: none; /* Hide descriptions on small screens */ + } +} \ No newline at end of file diff --git a/frontend/packages/volto-workflow-manager/src/components/State/StateEditDialog.tsx b/frontend/packages/volto-workflow-manager/src/components/State/StateEditDialog.tsx new file mode 100644 index 0000000..b4f7b95 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/State/StateEditDialog.tsx @@ -0,0 +1,151 @@ +import React, { useState, useEffect } from 'react'; +import { + Dialog, + Heading, + Content, + Tabs, + TabList, + TabPanels, + Item, + ButtonGroup, + Button, +} from '@adobe/react-spectrum'; +import TransitionsTab from './Tabs/TransitionsTab'; +import PropertiesTab from './Tabs/PropertiesTab'; +import PermissionRolesTab from './Tabs/PermissionRolesTab'; +import GroupRolesTab from './Tabs/GroupRolesTab'; +// Assuming your WorkflowState type is available to import +import type { WorkflowState } from '../../types'; // Adjust path as needed + +type StateEditDialogProps = { + onClose: () => void; + // Use the specific WorkflowState type instead of 'any' + selectedState: WorkflowState; + // Add an onSave handler to pass data back to the parent + onSave: (updatedState: WorkflowState) => void; +}; + +const StateEditDialog: React.FC = ({ + onClose, + selectedState, + onSave, +}) => { + // Local state to manage edits within the dialog + const [editableState, setEditableState] = useState( + null, + ); + const [selectedTab, setSelectedTab] = useState('properties'); + + // Initialize or reset the local state when the selectedState prop changes + useEffect(() => { + // Create a deep copy to avoid direct mutation of the prop + setEditableState(JSON.parse(JSON.stringify(selectedState))); + }, [selectedState]); + + const handleSave = () => { + if (editableState) { + onSave(editableState); + onClose(); // Close the dialog after saving + } + }; + + // Handler for the properties tab + const handlePropertyChange = (key: keyof WorkflowState, value: any) => { + setEditableState((prevState) => { + if (!prevState) return null; + return { ...prevState, [key]: value }; + }); + }; + + // If the state hasn't been initialized yet, don't render + if (!editableState) return null; + + return ( + + Edit State: {editableState.title} + + + + Properties + Transitions + Permission Roles + Group Roles + + + + + handlePropertyChange('title', value)} + onChangeDescription={(value) => + handlePropertyChange('description', value) + } + onToggleInitial={() => + handlePropertyChange('isInitial', !editableState.isInitial) + } + /> + + + {/* Wire up this tab next using the same pattern */} + { + // Implement logic to add/remove from editableState.transitions + console.log('Toggling transition:', transitionId); + }} + onAddTransitionClick={() => { + console.log('Add new transition clicked'); + }} + /> + + + {/* Wire up this tab next */} + + + + {/* Wire up this tab next */} + + + + + + + + + + + + ); +}; + +export default StateEditDialog; diff --git a/frontend/packages/volto-workflow-manager/src/components/State/Tabs/GroupRolesTab.tsx b/frontend/packages/volto-workflow-manager/src/components/State/Tabs/GroupRolesTab.tsx new file mode 100644 index 0000000..5934175 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/State/Tabs/GroupRolesTab.tsx @@ -0,0 +1,78 @@ +import React from 'react'; +import { + View, + Heading, + Text, + TableView, + TableHeader, + Column, + TableBody, + Row, + Cell, + Checkbox, +} from '@adobe/react-spectrum'; + +interface GroupInfo { + id: string; +} + +interface GroupRolesMatrix { + [groupId: string]: { + [role: string]: boolean; + }; +} + +interface GroupRolesTabProps { + availableRoles: string[]; + groups: GroupInfo[]; + groupRoles: GroupRolesMatrix; + onToggleGroupRole: (groupId: string, role: string) => void; +} + +const GroupRolesTab: React.FC = ({ + availableRoles, + groups, + groupRoles, + onToggleGroupRole, +}) => { + return ( + + Group Roles + + The local roles that are assigned to these groups in this state. + + + + + + Role + + {groups.map((group) => ( + + {group.id} + + ))} + + + + {availableRoles.map((role) => ( + + {role} + {groups.map((group) => ( + + onToggleGroupRole(group.id, role)} + aria-label={`${group.id} has role ${role}`} + /> + + ))} + + ))} + + + + ); +}; + +export default GroupRolesTab; diff --git a/frontend/packages/volto-workflow-manager/src/components/State/Tabs/PermissionRolesTab.tsx b/frontend/packages/volto-workflow-manager/src/components/State/Tabs/PermissionRolesTab.tsx new file mode 100644 index 0000000..022fffa --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/State/Tabs/PermissionRolesTab.tsx @@ -0,0 +1,99 @@ +import React from 'react'; +import { + View, + Heading, + Text, + TableView, + TableHeader, + Column, + TableBody, + Row, + Cell, + Checkbox, + Flex, +} from '@adobe/react-spectrum'; + +interface PermissionInfo { + name: string; + perm: string; + description: string; +} + +interface StatePermissionMatrix { + [permName: string]: { + acquired: boolean; + roles: string[]; + }; +} + +interface PermissionRolesTabProps { + managedPermissions: PermissionInfo[]; + availableRoles: string[]; + permissions: StatePermissionMatrix; + onTogglePermissionAcquire: (permName: string) => void; + onToggleRolePermission: (permName: string, role: string) => void; +} + +const PermissionRolesTab: React.FC = ({ + managedPermissions, + availableRoles, + permissions, + onTogglePermissionAcquire, + onToggleRolePermission, +}) => { + return ( + + Permission Roles + + Permissions these roles have in this state. + + + + + + Role + + {managedPermissions.map((perm) => ( + + {perm.name} + + ))} + + + + {/* Acquired row */} + + Acquired + {managedPermissions.map((perm) => ( + + onTogglePermissionAcquire(perm.name)} + aria-label={`Acquire ${perm.name}`} + /> + + ))} + + + {/* Role rows */} + {availableRoles.map((role) => ( + + {role} + {managedPermissions.map((perm) => ( + + onToggleRolePermission(perm.name, role)} + aria-label={`${role} can ${perm.name}`} + /> + + ))} + + ))} + + + + ); +}; + +export default PermissionRolesTab; diff --git a/frontend/packages/volto-workflow-manager/src/components/State/Tabs/PropertiesTab.tsx b/frontend/packages/volto-workflow-manager/src/components/State/Tabs/PropertiesTab.tsx new file mode 100644 index 0000000..6cbff34 --- /dev/null +++ b/frontend/packages/volto-workflow-manager/src/components/State/Tabs/PropertiesTab.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import { + Checkbox, + TextField, + TextArea, + Heading, + View, + Content, + Text, + Flex, +} from '@adobe/react-spectrum'; + +interface PropertiesTabProps { + isInitialState: boolean; + title: string; + description: string; + onToggleInitial: () => void; + onChangeTitle: (value: string) => void; + onChangeDescription: (value: string) => void; +} + +const PropertiesTab: React.FC = ({ + isInitialState, + title, + description, + onToggleInitial, + onChangeTitle, + onChangeDescription, +}) => { + return ( + + Properties + + + + Initial State + + + Should this state be the initial state of the workflow? + + + + +