From 5b3c18c6142fcb3a42b2aa6c14d493b0be21a414 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Mon, 16 Feb 2026 16:55:52 +0000 Subject: [PATCH 01/15] Fixed display_config endpoint and moved function out of jsx --- src/screens/OavMover/OAVStageController.tsx | 47 ++++++++++----------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index e55204c..29356dc 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -10,7 +10,7 @@ import { useMemo } from "react"; export function OavMover() { const DISPLAY_CONFIG_ENDPOINT = - "/dls_sw/i24/software/daq_configuration/display.configuration"; + "/dls_sw/i24/software/daq_configuration/domain/display.configuration"; const beamCenterQuery = useConfigCall(DISPLAY_CONFIG_ENDPOINT); const currentZoomValue = String( useParsedPvConnection({ @@ -46,6 +46,27 @@ export function OavMover() { const fullVisit = readVisitFromPv(); + function onCoordClick(x: number, y: number) { + const [x_um, y_um] = [x / pixelsPerMicron, y / pixelsPerMicron]; + console.debug( + `Clicked on position (${x}, ${y}) (px relative to beam centre) in original stream. Relative position in um (${x_um}, ${y_um}). Submitting to BlueAPI...`, + ); + if (Number.isNaN(x_um) || Number.isNaN(y_um)) { + console.log("Not submitting plan while disconnected from PVs!"); + } else { + const [x_int, y_int] = [Math.round(x), Math.round(y)]; + submitAndRunPlanImmediately({ + planName: "move_on_oav_view_click", + planParams: { position_px: [x_int, y_int] }, + instrumentSession: parseInstrumentSession(fullVisit), + }).catch((error) => { + console.log( + `Failed to run plan , see console and logs for full error. Reason: ${error}`, + ); + }); + } + } + return (
@@ -56,29 +77,7 @@ export function OavMover() { label="I24 OAV image stream" crosshairX={crosshairX} crosshairY={crosshairY} - onCoordClick={(x: number, y: number) => { - const [x_um, y_um] = [x / pixelsPerMicron, y / pixelsPerMicron]; - console.log( - `Clicked on position (${x}, ${y}) (px relative to beam centre) in original stream. Relative position in um (${x_um}, ${y_um}). Submitting to BlueAPI...`, - ); - const [x_int, y_int] = [Math.round(x), Math.round(y)]; - if (Number.isNaN(x_um) || Number.isNaN(y_um)) { - console.log( - "Not submitting plan while disconnected from PVs!", - ); - } else { - // This is an example but not useful for actual production use. - submitAndRunPlanImmediately({ - planName: "gui_gonio_move_on_click", - planParams: { position_px: [x_int, y_int] }, - instrumentSession: parseInstrumentSession(fullVisit), - }).catch((error) => { - console.log( - `Failed to run plan gui_gonio_move_on_click, see console and logs for full error. Reason: ${error}`, - ); - }); - } - }} + onCoordClick={onCoordClick} /> From cbbded4ee5307dccf9abf4f94ad8f1b68f28dbf7 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Thu, 19 Feb 2026 10:02:04 +0000 Subject: [PATCH 02/15] Cleaned up click canvas code with new plan --- src/components/OavVideoStream.tsx | 12 +-------- src/screens/OavMover/OAVStageController.tsx | 29 +++++++-------------- 2 files changed, 10 insertions(+), 31 deletions(-) diff --git a/src/components/OavVideoStream.tsx b/src/components/OavVideoStream.tsx index 82defa4..585d71f 100644 --- a/src/components/OavVideoStream.tsx +++ b/src/components/OavVideoStream.tsx @@ -137,18 +137,8 @@ function VideoBoxWithOverlay(props: { const canvas = canvasRef.current; if (canvas) { const rect = canvas.getBoundingClientRect(); - // x and y relative to the canvas const [x, y] = [e.clientX - rect.left, e.clientY - rect.top]; - // x and y relative to the crosshair - const [relX, relY] = [x - props.crosshairX, y - props.crosshairY]; - // fraction of the image in x/y * original dimension in pixels - const scaledX = props.originalDims - ? (relX / width) * props.originalDims.width - : x; - const scaledY = props.originalDims - ? (relY / height) * props.originalDims.height - : y; - props.onCoordClick(scaledX, scaledY); + props.onCoordClick(x, y); } } }} diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index 29356dc..29a4fcd 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -39,32 +39,21 @@ export function OavMover() { return [Number(xLine.split(" ")[2]), Number(yLine.split(" ")[2])]; }, [beamCenterQuery.data, zoomIndex]); - // #Issue 86: Remove these constants - https://github.com/DiamondLightSource/mx-daq-ui/issues/86 - const pixelsPerMicron = 1.25; const theme = useTheme(); const bgColor = theme.palette.background.paper; const fullVisit = readVisitFromPv(); function onCoordClick(x: number, y: number) { - const [x_um, y_um] = [x / pixelsPerMicron, y / pixelsPerMicron]; - console.debug( - `Clicked on position (${x}, ${y}) (px relative to beam centre) in original stream. Relative position in um (${x_um}, ${y_um}). Submitting to BlueAPI...`, - ); - if (Number.isNaN(x_um) || Number.isNaN(y_um)) { - console.log("Not submitting plan while disconnected from PVs!"); - } else { - const [x_int, y_int] = [Math.round(x), Math.round(y)]; - submitAndRunPlanImmediately({ - planName: "move_on_oav_view_click", - planParams: { position_px: [x_int, y_int] }, - instrumentSession: parseInstrumentSession(fullVisit), - }).catch((error) => { - console.log( - `Failed to run plan , see console and logs for full error. Reason: ${error}`, - ); - }); - } + submitAndRunPlanImmediately({ + planName: "move_on_oav_view_click", + planParams: { position: [x, y] }, + instrumentSession: parseInstrumentSession(fullVisit), + }).catch((error) => { + console.log( + `Failed to run plan , see console and logs for full error. Reason: ${error}`, + ); + }); } return ( From e0ace88aa9b96712889ee9a0e282bace2a23b434 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Mon, 23 Feb 2026 14:25:29 +0000 Subject: [PATCH 03/15] Fixed merge error --- src/screens/OavMover/OAVStageController.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index fc5b725..deee4c5 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -12,8 +12,6 @@ const DISPLAY_CONFIG_ENDPOINT = "/dls_sw/i24/software/daq_configuration/domain/display.configuration"; export function OavMover() { - const DISPLAY_CONFIG_ENDPOINT = - "/dls_sw/i24/software/daq_configuration/domain/display.configuration"; const beamCenterQuery = useConfigCall(DISPLAY_CONFIG_ENDPOINT); const currentZoomValue = String( useParsedPvConnection({ From 591d13dcc82be214b69bcbfc6ecf65800f33c47e Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Tue, 24 Feb 2026 11:23:50 +0000 Subject: [PATCH 04/15] Removed box --- src/screens/OavMover/OAVStageController.tsx | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index deee4c5..cd15b44 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -1,4 +1,4 @@ -import { Box, Grid2, useTheme } from "@mui/material"; +import { Grid2, useTheme } from "@mui/material"; import { OAVSideBar } from "./OAVSideBar"; import { submitAndRunPlanImmediately } from "#/blueapi/blueapi.ts"; import { readVisitFromPv, parseInstrumentSession } from "#/blueapi/visit.ts"; @@ -61,15 +61,13 @@ export function OavMover() {
- - - + From a85fee568bb983ce6a0251789756682fe4c51a4e Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Tue, 24 Feb 2026 16:21:30 +0000 Subject: [PATCH 05/15] Removed empty log and set polling to false. --- src/components/OavVideoStream.tsx | 2 -- src/config_server/configServer.ts | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/components/OavVideoStream.tsx b/src/components/OavVideoStream.tsx index 585d71f..8e5f439 100644 --- a/src/components/OavVideoStream.tsx +++ b/src/components/OavVideoStream.tsx @@ -116,8 +116,6 @@ function VideoBoxWithOverlay(props: { drawCanvas(canvasRef, props.crosshairX, props.crosshairY); }, [props.crosshairX, props.crosshairY, width, height]); - console.info(); - return ( Date: Tue, 24 Feb 2026 17:17:24 +0000 Subject: [PATCH 06/15] Added useEffect to refetch each time zoomValue is changed --- src/screens/OavMover/OAVStageController.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index cd15b44..d689d05 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -6,7 +6,7 @@ import { OavVideoStream } from "#/components/OavVideoStream.tsx"; import { useConfigCall } from "#/config_server/configServer.ts"; import { forceString, useParsedPvConnection } from "#/pv/util.ts"; import { ZoomLevels } from "#/pv/enumPvValues.ts"; -import { useMemo } from "react"; +import { useMemo, useEffect } from "react"; const DISPLAY_CONFIG_ENDPOINT = "/dls_sw/i24/software/daq_configuration/domain/display.configuration"; @@ -20,6 +20,9 @@ export function OavMover() { transformValue: forceString, }), ); + useEffect(() => { + beamCenterQuery.refetch(); + }, [currentZoomValue]); const zoomIndex = ZoomLevels.findIndex( (element: string) => element == currentZoomValue, ); From 1649efed1196e6037c5ca9368f683cb3a680ef47 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Wed, 25 Feb 2026 17:39:36 +0000 Subject: [PATCH 07/15] Refactored OAVStageController into smaller functions --- src/screens/OavMover/OAVStageController.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index d689d05..616b23f 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -10,19 +10,22 @@ import { useMemo, useEffect } from "react"; const DISPLAY_CONFIG_ENDPOINT = "/dls_sw/i24/software/daq_configuration/domain/display.configuration"; +const ZOOM_PV = "ca://BL24I-EA-OAV-01:FZOOM:MP:SELECT"; -export function OavMover() { +function useZoomAndCrosshair() { const beamCenterQuery = useConfigCall(DISPLAY_CONFIG_ENDPOINT); const currentZoomValue = String( useParsedPvConnection({ - pv: "ca://BL24I-EA-OAV-01:FZOOM:MP:SELECT", + pv: ZOOM_PV, label: "zoom-level", transformValue: forceString, }), ); + useEffect(() => { beamCenterQuery.refetch(); }, [currentZoomValue]); + const zoomIndex = ZoomLevels.findIndex( (element: string) => element == currentZoomValue, ); @@ -43,6 +46,12 @@ export function OavMover() { return [Number(xLine.split(" ")[2]), Number(yLine.split(" ")[2])]; }, [beamCenterQuery.data, zoomIndex]); + return { crosshairX, crosshairY }; +} + +export function OavMover() { + const { crosshairX, crosshairY } = useZoomAndCrosshair(); + const theme = useTheme(); const bgColor = theme.palette.background.paper; From c38bfe5f3a2e58b66eb15c8ef607e11d8c270499 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Fri, 27 Feb 2026 15:12:04 +0000 Subject: [PATCH 08/15] Created BeamCenter Context and some refactoring --- src/context/BeamCenterContext.ts | 8 ++++++++ src/context/BeamCenterProvider.tsx | 16 ++++++++++++++++ src/routes/BeamlineI24.tsx | 9 ++++++--- src/screens/OavMover/OAVStageController.tsx | 16 ++++++++-------- 4 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 src/context/BeamCenterContext.ts create mode 100644 src/context/BeamCenterProvider.tsx diff --git a/src/context/BeamCenterContext.ts b/src/context/BeamCenterContext.ts new file mode 100644 index 0000000..37ce7e2 --- /dev/null +++ b/src/context/BeamCenterContext.ts @@ -0,0 +1,8 @@ +import { createContext } from "react"; +import { UseQueryResult } from "react-query"; + +type BeamCenterQueryResult = UseQueryResult; + +export const BeamCenterContext = createContext( + null as unknown as BeamCenterQueryResult, +); diff --git a/src/context/BeamCenterProvider.tsx b/src/context/BeamCenterProvider.tsx new file mode 100644 index 0000000..a9db5f2 --- /dev/null +++ b/src/context/BeamCenterProvider.tsx @@ -0,0 +1,16 @@ +import { ReactNode } from "react"; +import { useConfigCall } from "#/config_server/configServer.ts"; +import { BeamCenterContext } from "./BeamCenterContext"; + +const DISPLAY_CONFIG_ENDPOINT = + "/dls_sw/i24/software/daq_configuration/domain/display.configuration"; + +export const BeamCenterProvider = ({ children }: { children: ReactNode }) => { + const beamCenterQuery = useConfigCall(DISPLAY_CONFIG_ENDPOINT); + + return ( + + {children} + + ); +}; diff --git a/src/routes/BeamlineI24.tsx b/src/routes/BeamlineI24.tsx index 40bea1b..3f14120 100644 --- a/src/routes/BeamlineI24.tsx +++ b/src/routes/BeamlineI24.tsx @@ -2,9 +2,10 @@ import { BeamlineStatsTabPanel } from "#/screens/BeamlineStats.tsx"; import { DetectorMotionTabPanel } from "#/screens/DetectorMotion.tsx"; import { FallbackScreen } from "#/screens/FallbackScreen.tsx"; import { OavMover } from "#/screens/OavMover/OAVStageController.tsx"; +import { BeamCenterProvider } from "#/context/BeamCenterProvider.tsx"; import { Box, Tab, Tabs, useTheme } from "@mui/material"; -import React from "react"; import { ErrorBoundary } from "react-error-boundary"; +import { useState } from "react"; interface TabPanelProps { children?: React.ReactNode; @@ -37,7 +38,7 @@ function CustomTabPanel(props: TabPanelProps) { export function BeamlineI24() { const theme = useTheme(); - const [tab, setTab] = React.useState(0); + const [tab, setTab] = useState(0); const handleChange = (_event: React.SyntheticEvent, newTab: number) => { setTab(newTab); @@ -73,7 +74,9 @@ export function BeamlineI24() { - + + + diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index 616b23f..bc025c7 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -1,19 +1,19 @@ import { Grid2, useTheme } from "@mui/material"; +import { useContext } from "react"; import { OAVSideBar } from "./OAVSideBar"; import { submitAndRunPlanImmediately } from "#/blueapi/blueapi.ts"; import { readVisitFromPv, parseInstrumentSession } from "#/blueapi/visit.ts"; import { OavVideoStream } from "#/components/OavVideoStream.tsx"; -import { useConfigCall } from "#/config_server/configServer.ts"; import { forceString, useParsedPvConnection } from "#/pv/util.ts"; import { ZoomLevels } from "#/pv/enumPvValues.ts"; import { useMemo, useEffect } from "react"; +import { BeamCenterContext } from "#/context/BeamCenterContext.ts"; -const DISPLAY_CONFIG_ENDPOINT = - "/dls_sw/i24/software/daq_configuration/domain/display.configuration"; const ZOOM_PV = "ca://BL24I-EA-OAV-01:FZOOM:MP:SELECT"; +const BEAM_CENTER_LINES_PER_ZOOM = 7; function useZoomAndCrosshair() { - const beamCenterQuery = useConfigCall(DISPLAY_CONFIG_ENDPOINT); + const beamCenterQuery = useContext(BeamCenterContext); const currentZoomValue = String( useParsedPvConnection({ pv: ZOOM_PV, @@ -24,7 +24,7 @@ function useZoomAndCrosshair() { useEffect(() => { beamCenterQuery.refetch(); - }, [currentZoomValue]); + }, [currentZoomValue, beamCenterQuery]); const zoomIndex = ZoomLevels.findIndex( (element: string) => element == currentZoomValue, @@ -36,8 +36,8 @@ function useZoomAndCrosshair() { } const lines = beamCenterQuery.data.split("\n"); - const xLine = lines[zoomIndex * 7 + 1]; - const yLine = lines[zoomIndex * 7 + 2]; + const xLine = lines[zoomIndex * BEAM_CENTER_LINES_PER_ZOOM + 1]; + const yLine = lines[zoomIndex * BEAM_CENTER_LINES_PER_ZOOM + 2]; if (!xLine || !yLine) { return [NaN, NaN]; @@ -64,7 +64,7 @@ export function OavMover() { instrumentSession: parseInstrumentSession(fullVisit), }).catch((error) => { console.log( - `Failed to run plan , see console and logs for full error. Reason: ${error}`, + `Failed to run plan, see console and logs for full error. Reason: ${error}`, ); }); } From aac961db7ce639cc326aeaea834eb8e4965c0f0c Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Fri, 27 Feb 2026 15:26:54 +0000 Subject: [PATCH 09/15] Added refetch to canvas click --- src/components/OavVideoStream.tsx | 5 ++++- src/screens/OavMover/OAVStageController.tsx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/OavVideoStream.tsx b/src/components/OavVideoStream.tsx index 8e5f439..0283471 100644 --- a/src/components/OavVideoStream.tsx +++ b/src/components/OavVideoStream.tsx @@ -1,5 +1,5 @@ import { Box } from "@mui/material"; -import React, { useEffect } from "react"; +import React, { useContext, useEffect } from "react"; import { useContainerDimensions } from "./OavVideoStreamHelper"; import { PvComponent } from "#/pv/PvComponent.tsx"; import { PvDescription, PvItem } from "#/pv/types.ts"; @@ -8,6 +8,7 @@ import { parseNumericPv, pvIntArrayToString, } from "#/pv/util.ts"; +import { BeamCenterContext } from "#/context/BeamCenterContext.ts"; /* * A viewer which allows overlaying a crosshair (takes numbers which could be the values from a react useState hook) @@ -111,6 +112,7 @@ function VideoBoxWithOverlay(props: { const canvasRef = React.useRef(null); const videoBoxRef = React.useRef(null); const { width, height } = useContainerDimensions(videoBoxRef); + const beamCenterQuery = useContext(BeamCenterContext); useEffect(() => { drawCanvas(canvasRef, props.crosshairX, props.crosshairY); @@ -137,6 +139,7 @@ function VideoBoxWithOverlay(props: { const rect = canvas.getBoundingClientRect(); const [x, y] = [e.clientX - rect.left, e.clientY - rect.top]; props.onCoordClick(x, y); + beamCenterQuery.refetch(); } } }} diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index bc025c7..51f089d 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -24,7 +24,7 @@ function useZoomAndCrosshair() { useEffect(() => { beamCenterQuery.refetch(); - }, [currentZoomValue, beamCenterQuery]); + }, [currentZoomValue]); const zoomIndex = ZoomLevels.findIndex( (element: string) => element == currentZoomValue, From b38b183af2a0319cf4d2d7e8cfaccef1350fa165 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Fri, 27 Feb 2026 15:55:04 +0000 Subject: [PATCH 10/15] Buttons added to run refetch on click --- src/blueapi/BlueapiComponents.tsx | 19 ++++--- src/screens/OavMover/OAVMoveController.tsx | 62 ++++++++++++++++++---- 2 files changed, 65 insertions(+), 16 deletions(-) diff --git a/src/blueapi/BlueapiComponents.tsx b/src/blueapi/BlueapiComponents.tsx index 37e28c4..0539ba9 100644 --- a/src/blueapi/BlueapiComponents.tsx +++ b/src/blueapi/BlueapiComponents.tsx @@ -29,6 +29,7 @@ type RunPlanButtonProps = { sx?: object; tooltipSx?: object; typographySx?: object; + onSuccess?: () => void | Promise; // Optional callback after plan succeeds }; export function RunPlanButton(props: RunPlanButtonProps) { @@ -56,13 +57,17 @@ export function RunPlanButton(props: RunPlanButtonProps) { planName: props.planName, planParams: params, instrumentSession: instrumentSession, - }).catch((error) => { - setSeverity("error"); - setMsg( - `Failed to run plan ${props.planName}, see console and logs for full error`, - ); - console.log(`${msg}. Reason: ${error}`); - }); + }) + .then(() => { + props.onSuccess?.(); + }) + .catch((error) => { + setSeverity("error"); + setMsg( + `Failed to run plan ${props.planName}, see console and logs for full error`, + ); + console.log(`${msg}. Reason: ${error}`); + }); } catch (error) { setSeverity("error"); setMsg( diff --git a/src/screens/OavMover/OAVMoveController.tsx b/src/screens/OavMover/OAVMoveController.tsx index 2344426..7904334 100644 --- a/src/screens/OavMover/OAVMoveController.tsx +++ b/src/screens/OavMover/OAVMoveController.tsx @@ -1,4 +1,6 @@ import { RunPlanButton } from "#/blueapi/BlueapiComponents.tsx"; +import { useContext } from "react"; +import { BeamCenterContext } from "#/context/BeamCenterContext.ts"; import { KeyboardDoubleArrowUp, KeyboardArrowUp, @@ -36,7 +38,7 @@ const arrowsScreenSizing = { }, }; -function BlockMove(props: TabPanelProps) { +function BlockMove(props: TabPanelProps & { onMoveSuccess?: () => void }) { if (props.value !== props.index) return null; return ( @@ -47,6 +49,7 @@ function BlockMove(props: TabPanelProps) { planName={"move_block_on_arrow_click"} planParams={{ direction: "up" }} btnVariant="outlined" + onSuccess={props.onMoveSuccess} /> ); } -function NudgeMove(props: TabPanelProps) { +function NudgeMove(props: TabPanelProps & { onMoveSuccess?: () => void }) { if (props.value !== props.index) return null; return ( @@ -86,6 +92,7 @@ function NudgeMove(props: TabPanelProps) { planParams={{ direction: "up", size_of_move: "big" }} btnVariant="outlined" sx={arrowsScreenSizing} + onSuccess={props.onMoveSuccess} /> } @@ -109,6 +118,7 @@ function NudgeMove(props: TabPanelProps) { planParams={{ direction: "left", size_of_move: "small" }} btnVariant="outlined" sx={arrowsScreenSizing} + onSuccess={props.onMoveSuccess} /> } @@ -124,6 +135,7 @@ function NudgeMove(props: TabPanelProps) { planParams={{ direction: "right", size_of_move: "big" }} btnVariant="outlined" sx={arrowsScreenSizing} + onSuccess={props.onMoveSuccess} /> ); } -function WindowMove(props: TabPanelProps) { +function WindowMove(props: TabPanelProps & { onMoveSuccess?: () => void }) { if (props.value !== props.index) return null; return ( @@ -157,6 +171,7 @@ function WindowMove(props: TabPanelProps) { planParams={{ direction: "up", size_of_move: "big" }} btnVariant="outlined" sx={arrowsScreenSizing} + onSuccess={props.onMoveSuccess} /> } @@ -180,6 +197,7 @@ function WindowMove(props: TabPanelProps) { planParams={{ direction: "left", size_of_move: "small" }} btnVariant="outlined" sx={arrowsScreenSizing} + onSuccess={props.onMoveSuccess} /> } @@ -195,6 +214,7 @@ function WindowMove(props: TabPanelProps) { planParams={{ direction: "right", size_of_move: "big" }} btnVariant="outlined" sx={arrowsScreenSizing} + onSuccess={props.onMoveSuccess} /> ); } -function FocusMove(props: TabPanelProps) { +function FocusMove(props: TabPanelProps & { onMoveSuccess?: () => void }) { if (props.value !== props.index) return null; return ( @@ -228,24 +250,28 @@ function FocusMove(props: TabPanelProps) { planName={"focus_on_oav_view"} planParams={{ direction: "in", size_of_move: "big" }} btnVariant="outlined" + onSuccess={props.onMoveSuccess} /> ); @@ -253,7 +279,7 @@ function FocusMove(props: TabPanelProps) { export function MoveArrows() { const theme = useTheme(); - + const beamCenterQuery = useContext(BeamCenterContext); const [value, setValue] = useState(0); const handleChange = (_event: React.SyntheticEvent, newValue: number) => { @@ -287,10 +313,28 @@ export function MoveArrows() { - - - - + { + beamCenterQuery?.refetch(); + }} + /> + beamCenterQuery?.refetch()} + /> + beamCenterQuery?.refetch()} + /> + beamCenterQuery?.refetch()} + /> ); } From 30a42d448d611252ea95e78629fbf02153e404e2 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Mon, 2 Mar 2026 15:33:13 +0000 Subject: [PATCH 11/15] Moved context files and added tests --- src/components/OavVideoStream.tsx | 2 +- .../{ => beamcenter}/BeamCenterContext.ts | 0 .../beamcenter/BeamCenterProvider.test.tsx | 80 +++++++++++++++++++ .../{ => beamcenter}/BeamCenterProvider.tsx | 0 src/routes/BeamlineI24.tsx | 2 +- src/screens/OavMover/OAVMoveController.tsx | 2 +- src/screens/OavMover/OAVStageController.tsx | 2 +- 7 files changed, 84 insertions(+), 4 deletions(-) rename src/context/{ => beamcenter}/BeamCenterContext.ts (100%) create mode 100644 src/context/beamcenter/BeamCenterProvider.test.tsx rename src/context/{ => beamcenter}/BeamCenterProvider.tsx (100%) diff --git a/src/components/OavVideoStream.tsx b/src/components/OavVideoStream.tsx index 0283471..9754619 100644 --- a/src/components/OavVideoStream.tsx +++ b/src/components/OavVideoStream.tsx @@ -8,7 +8,7 @@ import { parseNumericPv, pvIntArrayToString, } from "#/pv/util.ts"; -import { BeamCenterContext } from "#/context/BeamCenterContext.ts"; +import { BeamCenterContext } from "#/context/beamcenter/BeamCenterContext.ts"; /* * A viewer which allows overlaying a crosshair (takes numbers which could be the values from a react useState hook) diff --git a/src/context/BeamCenterContext.ts b/src/context/beamcenter/BeamCenterContext.ts similarity index 100% rename from src/context/BeamCenterContext.ts rename to src/context/beamcenter/BeamCenterContext.ts diff --git a/src/context/beamcenter/BeamCenterProvider.test.tsx b/src/context/beamcenter/BeamCenterProvider.test.tsx new file mode 100644 index 0000000..4cca674 --- /dev/null +++ b/src/context/beamcenter/BeamCenterProvider.test.tsx @@ -0,0 +1,80 @@ +import { cleanup, fireEvent, render, screen } from "@testing-library/react"; +import { describe, it, expect, vi, afterEach, beforeEach } from "vitest"; +import { useContext } from "react"; +import "@testing-library/jest-dom/vitest"; +import { BeamCenterProvider } from "./BeamCenterProvider"; +import { BeamCenterContext } from "./BeamCenterContext"; +import { useConfigCall } from "#/config_server/configServer.ts"; +import type { UseQueryResult } from "react-query"; + +vi.mock("#/config_server/configServer.ts", () => ({ + useConfigCall: vi.fn(), +})); + +const TestConsumer = () => { + const value = useContext(BeamCenterContext); + return ( + <> +
{value.data}
+ + + ); +}; + +describe("BeamCenterProvider", () => { + afterEach(() => { + cleanup(); + vi.clearAllMocks(); + }); + + const mockRefetch = vi.fn(); + const mockQueryResult = { + data: "mock config text", + refetch: mockRefetch, + }; + + beforeEach(() => + vi + .mocked(useConfigCall) + .mockReturnValue( + mockQueryResult as unknown as UseQueryResult, + ), + ); + + it("calls useConfigCall with the correct endpoint", () => { + render( + + + , + ); + + expect(useConfigCall).toHaveBeenCalledWith( + "/dls_sw/i24/software/daq_configuration/domain/display.configuration", + ); + }); + + it("provides the data to consumers via context", () => { + render( + + + , + ); + + expect(screen.getByTestId("context-value")).toHaveTextContent( + "mock config text", + ); + }); + + it("passes refetch function through context and it can be called", () => { + render( + + + , + ); + + fireEvent.click(screen.getByTestId("refetch-button")); + expect(mockRefetch).toHaveBeenCalled(); + }); +}); diff --git a/src/context/BeamCenterProvider.tsx b/src/context/beamcenter/BeamCenterProvider.tsx similarity index 100% rename from src/context/BeamCenterProvider.tsx rename to src/context/beamcenter/BeamCenterProvider.tsx diff --git a/src/routes/BeamlineI24.tsx b/src/routes/BeamlineI24.tsx index 3f14120..c684cbb 100644 --- a/src/routes/BeamlineI24.tsx +++ b/src/routes/BeamlineI24.tsx @@ -2,7 +2,7 @@ import { BeamlineStatsTabPanel } from "#/screens/BeamlineStats.tsx"; import { DetectorMotionTabPanel } from "#/screens/DetectorMotion.tsx"; import { FallbackScreen } from "#/screens/FallbackScreen.tsx"; import { OavMover } from "#/screens/OavMover/OAVStageController.tsx"; -import { BeamCenterProvider } from "#/context/BeamCenterProvider.tsx"; +import { BeamCenterProvider } from "#/context/beamcenter/BeamCenterProvider.tsx"; import { Box, Tab, Tabs, useTheme } from "@mui/material"; import { ErrorBoundary } from "react-error-boundary"; import { useState } from "react"; diff --git a/src/screens/OavMover/OAVMoveController.tsx b/src/screens/OavMover/OAVMoveController.tsx index 7904334..c91f8bf 100644 --- a/src/screens/OavMover/OAVMoveController.tsx +++ b/src/screens/OavMover/OAVMoveController.tsx @@ -1,6 +1,6 @@ import { RunPlanButton } from "#/blueapi/BlueapiComponents.tsx"; import { useContext } from "react"; -import { BeamCenterContext } from "#/context/BeamCenterContext.ts"; +import { BeamCenterContext } from "#/context/beamcenter/BeamCenterContext.ts"; import { KeyboardDoubleArrowUp, KeyboardArrowUp, diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index 51f089d..85f3bf9 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -7,7 +7,7 @@ import { OavVideoStream } from "#/components/OavVideoStream.tsx"; import { forceString, useParsedPvConnection } from "#/pv/util.ts"; import { ZoomLevels } from "#/pv/enumPvValues.ts"; import { useMemo, useEffect } from "react"; -import { BeamCenterContext } from "#/context/BeamCenterContext.ts"; +import { BeamCenterContext } from "#/context/beamcenter/BeamCenterContext.ts"; const ZOOM_PV = "ca://BL24I-EA-OAV-01:FZOOM:MP:SELECT"; const BEAM_CENTER_LINES_PER_ZOOM = 7; From ec6c647115d1a20ca57864d67d1979f6948034ab Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Mon, 2 Mar 2026 16:11:23 +0000 Subject: [PATCH 12/15] Refactor of context --- src/components/OavVideoStream.tsx | 5 +---- src/screens/OavMover/OAVStageController.tsx | 9 +++++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/components/OavVideoStream.tsx b/src/components/OavVideoStream.tsx index 9754619..8e5f439 100644 --- a/src/components/OavVideoStream.tsx +++ b/src/components/OavVideoStream.tsx @@ -1,5 +1,5 @@ import { Box } from "@mui/material"; -import React, { useContext, useEffect } from "react"; +import React, { useEffect } from "react"; import { useContainerDimensions } from "./OavVideoStreamHelper"; import { PvComponent } from "#/pv/PvComponent.tsx"; import { PvDescription, PvItem } from "#/pv/types.ts"; @@ -8,7 +8,6 @@ import { parseNumericPv, pvIntArrayToString, } from "#/pv/util.ts"; -import { BeamCenterContext } from "#/context/beamcenter/BeamCenterContext.ts"; /* * A viewer which allows overlaying a crosshair (takes numbers which could be the values from a react useState hook) @@ -112,7 +111,6 @@ function VideoBoxWithOverlay(props: { const canvasRef = React.useRef(null); const videoBoxRef = React.useRef(null); const { width, height } = useContainerDimensions(videoBoxRef); - const beamCenterQuery = useContext(BeamCenterContext); useEffect(() => { drawCanvas(canvasRef, props.crosshairX, props.crosshairY); @@ -139,7 +137,6 @@ function VideoBoxWithOverlay(props: { const rect = canvas.getBoundingClientRect(); const [x, y] = [e.clientX - rect.left, e.clientY - rect.top]; props.onCoordClick(x, y); - beamCenterQuery.refetch(); } } }} diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index 85f3bf9..373b091 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -1,5 +1,5 @@ import { Grid2, useTheme } from "@mui/material"; -import { useContext } from "react"; +import { useContext, useRef } from "react"; import { OAVSideBar } from "./OAVSideBar"; import { submitAndRunPlanImmediately } from "#/blueapi/blueapi.ts"; import { readVisitFromPv, parseInstrumentSession } from "#/blueapi/visit.ts"; @@ -22,8 +22,10 @@ function useZoomAndCrosshair() { }), ); + const beamCenterQueryRef = useRef(beamCenterQuery); + useEffect(() => { - beamCenterQuery.refetch(); + beamCenterQueryRef.current.refetch(); }, [currentZoomValue]); const zoomIndex = ZoomLevels.findIndex( @@ -56,6 +58,7 @@ export function OavMover() { const bgColor = theme.palette.background.paper; const fullVisit = readVisitFromPv(); + const beamCenterQuery = useContext(BeamCenterContext); function onCoordClick(x: number, y: number) { submitAndRunPlanImmediately({ @@ -67,6 +70,8 @@ export function OavMover() { `Failed to run plan, see console and logs for full error. Reason: ${error}`, ); }); + + beamCenterQuery.refetch(); } return ( From dd385be02e7ab78dce936f90e209e55540b78ff1 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Mon, 2 Mar 2026 16:48:24 +0000 Subject: [PATCH 13/15] Pnpm audit fix --- package.json | 14 +- pnpm-lock.yaml | 1448 +++++++++++++++++++++++-------------------- pnpm-workspace.yaml | 10 + 3 files changed, 778 insertions(+), 694 deletions(-) diff --git a/package.json b/package.json index 64b374f..8e3ba93 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@apollo/client": "^3.14.0", - "@base-ui/react": "^1.1.0", + "@base-ui/react": "^1.2.0", "@diamondlightsource/cs-web-lib": "^0.9.14", "@diamondlightsource/sci-react-ui": "^0.3.0", "@emotion/react": "^11.14.0", @@ -26,7 +26,7 @@ "@mui/icons-material": "^6.5.0", "@mui/material": "^6.5.0", "@types/react-redux": "^7.1.34", - "@typescript-eslint/parser": "^8.54.0", + "@typescript-eslint/parser": "^8.56.1", "buffer": "^6.0.3", "eslint-plugin-tsdoc": "^0.4.0", "husky": "^9.1.7", @@ -42,13 +42,13 @@ "yaml": "^2.8.2" }, "devDependencies": { - "@eslint/js": "^9.39.2", + "@eslint/js": "^9.39.3", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", - "@types/node": "^22.19.7", - "@types/react": "^18.3.27", + "@types/node": "^22.19.13", + "@types/react": "^18.3.28", "@types/react-dom": "^18.3.7", "@vitejs/plugin-react-swc": "^3.11.0", "@vitest/ui": "^3.2.4", @@ -62,11 +62,11 @@ "globals": "^15.15.0", "jsdom": "^26.1.0", "typescript": "~5.6.3", - "typescript-eslint": "^8.54.0", + "typescript-eslint": "^8.56.1", "vite": "^5.4.21", "vitest": "^3.2.4" }, - "resolutions": { + "overrides": { "minimatch": "^10.2.1" }, "imports": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68bd4ce..8125716 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,41 +5,45 @@ settings: excludeLinksFromLockfile: false overrides: - minimatch: ^10.2.1 + ajv@>=7.0.0-alpha.0 <8.18.0: ">=8.18.0" + esbuild@<=0.24.2: ">=0.25.0" + minimatch@>=9.0.0 <9.0.6: ">=9.0.6" + minimatch@>=9.0.0 <9.0.7: ">=9.0.7" + serialize-javascript@<=7.0.2: ">=7.0.3" importers: .: dependencies: "@apollo/client": specifier: ^3.14.0 - version: 3.14.0(@types/react@18.3.27)(graphql@15.10.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.14.0(@types/react@18.3.28)(graphql@15.10.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@base-ui/react": - specifier: ^1.1.0 - version: 1.1.0(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.2.0 + version: 1.2.0(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@diamondlightsource/cs-web-lib": specifier: ^0.9.14 - version: 0.9.14(@types/react@18.3.27)(graphql@15.10.1)(mapbox-gl@1.13.3)(react-dom@18.3.1(react@18.3.1))(react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.104.1) + version: 0.9.14(@types/react@18.3.28)(graphql@15.10.1)(mapbox-gl@1.13.3)(react-dom@18.3.1(react@18.3.1))(react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.104.1) "@diamondlightsource/sci-react-ui": specifier: ^0.3.0 - version: 0.3.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@jsonforms/core@3.7.0)(@jsonforms/material-renderers@3.7.0(92b54390c5d6c5a39f40ff77e05d6052))(@jsonforms/react@3.7.0(@jsonforms/core@3.7.0)(react@18.3.1))(@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 0.3.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@jsonforms/core@3.7.0)(@jsonforms/material-renderers@3.7.0(084ffb6e2cd7bbd51e9104c649105a46))(@jsonforms/react@3.7.0(@jsonforms/core@3.7.0)(react@18.3.1))(@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) "@emotion/react": specifier: ^11.14.0 - version: 11.14.0(@types/react@18.3.27)(react@18.3.1) + version: 11.14.0(@types/react@18.3.28)(react@18.3.1) "@emotion/styled": specifier: ^11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) + version: 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) "@mui/icons-material": specifier: ^6.5.0 - version: 6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) + version: 6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) "@mui/material": specifier: ^6.5.0 - version: 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@types/react-redux": specifier: ^7.1.34 version: 7.1.34 "@typescript-eslint/parser": - specifier: ^8.54.0 - version: 8.54.0(eslint@8.57.1)(typescript@5.6.3) + specifier: ^8.56.1 + version: 8.56.1(eslint@8.57.1)(typescript@5.6.3) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -81,8 +85,8 @@ importers: version: 2.8.2 devDependencies: "@eslint/js": - specifier: ^9.39.2 - version: 9.39.2 + specifier: ^9.39.3 + version: 9.39.3 "@testing-library/dom": specifier: ^10.4.1 version: 10.4.1 @@ -91,22 +95,22 @@ importers: version: 6.9.1 "@testing-library/react": specifier: ^16.3.2 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@testing-library/user-event": specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) "@types/node": - specifier: ^22.19.7 - version: 22.19.7 + specifier: ^22.19.13 + version: 22.19.13 "@types/react": - specifier: ^18.3.27 - version: 18.3.27 + specifier: ^18.3.28 + version: 18.3.28 "@types/react-dom": specifier: ^18.3.7 - version: 18.3.7(@types/react@18.3.27) + version: 18.3.7(@types/react@18.3.28) "@vitejs/plugin-react-swc": specifier: ^3.11.0 - version: 3.11.0(vite@5.4.21(@types/node@22.19.7)(terser@5.46.0)) + version: 3.11.0(vite@5.4.21(@types/node@22.19.13)(terser@5.46.0)) "@vitest/ui": specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) @@ -115,10 +119,10 @@ importers: version: 8.57.1 eslint-config-airbnb: specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1) + version: 19.0.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1) + version: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@8.57.1) @@ -141,14 +145,14 @@ importers: specifier: ~5.6.3 version: 5.6.3 typescript-eslint: - specifier: ^8.54.0 - version: 8.54.0(eslint@8.57.1)(typescript@5.6.3) + specifier: ^8.56.1 + version: 8.56.1(eslint@8.57.1)(typescript@5.6.3) vite: specifier: ^5.4.21 - version: 5.4.21(@types/node@22.19.7)(terser@5.46.0) + version: 5.4.21(@types/node@22.19.13)(terser@5.46.0) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@22.19.7)(@vitest/ui@3.2.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(terser@5.46.0) + version: 3.2.4(@types/node@22.19.13)(@vitest/ui@3.2.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(terser@5.46.0) packages: "@adobe/css-tools@4.4.4": @@ -184,17 +188,17 @@ packages: integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==, } - "@babel/code-frame@7.28.6": + "@babel/code-frame@7.29.0": resolution: { - integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==, + integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==, } engines: { node: ">=6.9.0" } - "@babel/generator@7.28.6": + "@babel/generator@7.29.1": resolution: { - integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==, + integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==, } engines: { node: ">=6.9.0" } @@ -226,10 +230,10 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/parser@7.28.6": + "@babel/parser@7.29.0": resolution: { - integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==, + integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==, } engines: { node: ">=6.0.0" } hasBin: true @@ -248,24 +252,24 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/traverse@7.28.6": + "@babel/traverse@7.29.0": resolution: { - integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==, + integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==, } engines: { node: ">=6.9.0" } - "@babel/types@7.28.6": + "@babel/types@7.29.0": resolution: { - integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==, + integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==, } engines: { node: ">=6.9.0" } - "@base-ui/react@1.1.0": + "@base-ui/react@1.2.0": resolution: { - integrity: sha512-ikcJRNj1mOiF2HZ5jQHrXoVoHcNHdBU5ejJljcBl+VTLoYXR6FidjTN86GjO6hyshi6TZFuNvv0dEOgaOFv6Lw==, + integrity: sha512-O6aEQHcm+QyGTFY28xuwRD3SEJGZOBDpyjN2WvpfWYFVhg+3zfXPysAILqtM0C1kWC82MccOE/v1j+GHXE4qIw==, } engines: { node: ">=14.0.0" } peerDependencies: @@ -276,10 +280,10 @@ packages: "@types/react": optional: true - "@base-ui/utils@0.2.4": + "@base-ui/utils@0.2.5": resolution: { - integrity: sha512-smZwpMhjO29v+jrZusBSc5T+IJ3vBb9cjIiBjtKcvWmRj9Z4DWGVR3efr1eHR56/bqY5a4qyY9ElkOY5ljo3ng==, + integrity: sha512-oYC7w0gp76RI5MxprlGLV0wze0SErZaRl3AAkeP3OnNB/UBMb6RqNf6ZSIlxOc9Qp68Ab3C2VOcJQyRs7Xc7Vw==, } peerDependencies: "@types/react": ^17 || ^18 || ^19 @@ -476,210 +480,237 @@ packages: integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==, } - "@esbuild/aix-ppc64@0.21.5": + "@esbuild/aix-ppc64@0.27.3": resolution: { - integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, + integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [ppc64] os: [aix] - "@esbuild/android-arm64@0.21.5": + "@esbuild/android-arm64@0.27.3": resolution: { - integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, + integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [arm64] os: [android] - "@esbuild/android-arm@0.21.5": + "@esbuild/android-arm@0.27.3": resolution: { - integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, + integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [arm] os: [android] - "@esbuild/android-x64@0.21.5": + "@esbuild/android-x64@0.27.3": resolution: { - integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, + integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [x64] os: [android] - "@esbuild/darwin-arm64@0.21.5": + "@esbuild/darwin-arm64@0.27.3": resolution: { - integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, + integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [arm64] os: [darwin] - "@esbuild/darwin-x64@0.21.5": + "@esbuild/darwin-x64@0.27.3": resolution: { - integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, + integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [x64] os: [darwin] - "@esbuild/freebsd-arm64@0.21.5": + "@esbuild/freebsd-arm64@0.27.3": resolution: { - integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, + integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - "@esbuild/freebsd-x64@0.21.5": + "@esbuild/freebsd-x64@0.27.3": resolution: { - integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, + integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [x64] os: [freebsd] - "@esbuild/linux-arm64@0.21.5": + "@esbuild/linux-arm64@0.27.3": resolution: { - integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, + integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [arm64] os: [linux] - "@esbuild/linux-arm@0.21.5": + "@esbuild/linux-arm@0.27.3": resolution: { - integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, + integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [arm] os: [linux] - "@esbuild/linux-ia32@0.21.5": + "@esbuild/linux-ia32@0.27.3": resolution: { - integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, + integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [ia32] os: [linux] - "@esbuild/linux-loong64@0.21.5": + "@esbuild/linux-loong64@0.27.3": resolution: { - integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, + integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [loong64] os: [linux] - "@esbuild/linux-mips64el@0.21.5": + "@esbuild/linux-mips64el@0.27.3": resolution: { - integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, + integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [mips64el] os: [linux] - "@esbuild/linux-ppc64@0.21.5": + "@esbuild/linux-ppc64@0.27.3": resolution: { - integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, + integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [ppc64] os: [linux] - "@esbuild/linux-riscv64@0.21.5": + "@esbuild/linux-riscv64@0.27.3": resolution: { - integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, + integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [riscv64] os: [linux] - "@esbuild/linux-s390x@0.21.5": + "@esbuild/linux-s390x@0.27.3": resolution: { - integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, + integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [s390x] os: [linux] - "@esbuild/linux-x64@0.21.5": + "@esbuild/linux-x64@0.27.3": resolution: { - integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, + integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [x64] os: [linux] - "@esbuild/netbsd-x64@0.21.5": + "@esbuild/netbsd-arm64@0.27.3": resolution: { - integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, + integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } + cpu: [arm64] + os: [netbsd] + + "@esbuild/netbsd-x64@0.27.3": + resolution: + { + integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==, + } + engines: { node: ">=18" } cpu: [x64] os: [netbsd] - "@esbuild/openbsd-x64@0.21.5": + "@esbuild/openbsd-arm64@0.27.3": resolution: { - integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, + integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==, } - engines: { node: ">=12" } + engines: { node: ">=18" } + cpu: [arm64] + os: [openbsd] + + "@esbuild/openbsd-x64@0.27.3": + resolution: + { + integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==, + } + engines: { node: ">=18" } cpu: [x64] os: [openbsd] - "@esbuild/sunos-x64@0.21.5": + "@esbuild/openharmony-arm64@0.27.3": resolution: { - integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, + integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==, } - engines: { node: ">=12" } + engines: { node: ">=18" } + cpu: [arm64] + os: [openharmony] + + "@esbuild/sunos-x64@0.27.3": + resolution: + { + integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==, + } + engines: { node: ">=18" } cpu: [x64] os: [sunos] - "@esbuild/win32-arm64@0.21.5": + "@esbuild/win32-arm64@0.27.3": resolution: { - integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, + integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [arm64] os: [win32] - "@esbuild/win32-ia32@0.21.5": + "@esbuild/win32-ia32@0.27.3": resolution: { - integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, + integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [ia32] os: [win32] - "@esbuild/win32-x64@0.21.5": + "@esbuild/win32-x64@0.27.3": resolution: { - integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, + integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } cpu: [x64] os: [win32] @@ -713,10 +744,10 @@ packages: } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - "@eslint/js@9.39.2": + "@eslint/js@9.39.3": resolution: { - integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==, + integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -1037,10 +1068,10 @@ packages: "@types/react": optional: true - "@mui/types@7.4.10": + "@mui/types@7.4.11": resolution: { - integrity: sha512-0+4mSjknSu218GW3isRqoxKRTOrTLd/vHi/7UC4+wZcUrOAqD9kRk7UQRL1mcrzqRoe7s3UT6rsRpbLkW5mHpQ==, + integrity: sha512-fZ2xO9D08IKOxO2oUBi1nnVKH6oJUD+64cnv4YAaFoC0E5+i1+S5AHbNqqvZlYYsbPEQ6qEVwuBqY3jl5W4G+Q==, } peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -1061,10 +1092,10 @@ packages: "@types/react": optional: true - "@mui/utils@7.3.7": + "@mui/utils@7.3.8": resolution: { - integrity: sha512-+YjnjMRnyeTkWnspzoxRdiSOgkrcpTikhNPoxOZW0APXx+urHtUoXJ9lbtCZRCA5a4dg5gSbd19alL1DvRs5fg==, + integrity: sha512-kZRcE2620CBGr+XI8YMmwPj6WIPwSF7uMJjvSfqd8zXVvlz0MCJbzRRUGNf8NgflCLthdji2DdS643TeyJ3+nA==, } engines: { node: ">=14.0.0" } peerDependencies: @@ -1206,215 +1237,215 @@ packages: integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==, } - "@rollup/rollup-android-arm-eabi@4.57.1": + "@rollup/rollup-android-arm-eabi@4.59.0": resolution: { - integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==, + integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==, } cpu: [arm] os: [android] - "@rollup/rollup-android-arm64@4.57.1": + "@rollup/rollup-android-arm64@4.59.0": resolution: { - integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==, + integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==, } cpu: [arm64] os: [android] - "@rollup/rollup-darwin-arm64@4.57.1": + "@rollup/rollup-darwin-arm64@4.59.0": resolution: { - integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==, + integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==, } cpu: [arm64] os: [darwin] - "@rollup/rollup-darwin-x64@4.57.1": + "@rollup/rollup-darwin-x64@4.59.0": resolution: { - integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==, + integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==, } cpu: [x64] os: [darwin] - "@rollup/rollup-freebsd-arm64@4.57.1": + "@rollup/rollup-freebsd-arm64@4.59.0": resolution: { - integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==, + integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==, } cpu: [arm64] os: [freebsd] - "@rollup/rollup-freebsd-x64@4.57.1": + "@rollup/rollup-freebsd-x64@4.59.0": resolution: { - integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==, + integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==, } cpu: [x64] os: [freebsd] - "@rollup/rollup-linux-arm-gnueabihf@4.57.1": + "@rollup/rollup-linux-arm-gnueabihf@4.59.0": resolution: { - integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==, + integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==, } cpu: [arm] os: [linux] libc: [glibc] - "@rollup/rollup-linux-arm-musleabihf@4.57.1": + "@rollup/rollup-linux-arm-musleabihf@4.59.0": resolution: { - integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==, + integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==, } cpu: [arm] os: [linux] libc: [musl] - "@rollup/rollup-linux-arm64-gnu@4.57.1": + "@rollup/rollup-linux-arm64-gnu@4.59.0": resolution: { - integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==, + integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==, } cpu: [arm64] os: [linux] libc: [glibc] - "@rollup/rollup-linux-arm64-musl@4.57.1": + "@rollup/rollup-linux-arm64-musl@4.59.0": resolution: { - integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==, + integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==, } cpu: [arm64] os: [linux] libc: [musl] - "@rollup/rollup-linux-loong64-gnu@4.57.1": + "@rollup/rollup-linux-loong64-gnu@4.59.0": resolution: { - integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==, + integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==, } cpu: [loong64] os: [linux] libc: [glibc] - "@rollup/rollup-linux-loong64-musl@4.57.1": + "@rollup/rollup-linux-loong64-musl@4.59.0": resolution: { - integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==, + integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==, } cpu: [loong64] os: [linux] libc: [musl] - "@rollup/rollup-linux-ppc64-gnu@4.57.1": + "@rollup/rollup-linux-ppc64-gnu@4.59.0": resolution: { - integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==, + integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==, } cpu: [ppc64] os: [linux] libc: [glibc] - "@rollup/rollup-linux-ppc64-musl@4.57.1": + "@rollup/rollup-linux-ppc64-musl@4.59.0": resolution: { - integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==, + integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==, } cpu: [ppc64] os: [linux] libc: [musl] - "@rollup/rollup-linux-riscv64-gnu@4.57.1": + "@rollup/rollup-linux-riscv64-gnu@4.59.0": resolution: { - integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==, + integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==, } cpu: [riscv64] os: [linux] libc: [glibc] - "@rollup/rollup-linux-riscv64-musl@4.57.1": + "@rollup/rollup-linux-riscv64-musl@4.59.0": resolution: { - integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==, + integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==, } cpu: [riscv64] os: [linux] libc: [musl] - "@rollup/rollup-linux-s390x-gnu@4.57.1": + "@rollup/rollup-linux-s390x-gnu@4.59.0": resolution: { - integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==, + integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==, } cpu: [s390x] os: [linux] libc: [glibc] - "@rollup/rollup-linux-x64-gnu@4.57.1": + "@rollup/rollup-linux-x64-gnu@4.59.0": resolution: { - integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==, + integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==, } cpu: [x64] os: [linux] libc: [glibc] - "@rollup/rollup-linux-x64-musl@4.57.1": + "@rollup/rollup-linux-x64-musl@4.59.0": resolution: { - integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==, + integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==, } cpu: [x64] os: [linux] libc: [musl] - "@rollup/rollup-openbsd-x64@4.57.1": + "@rollup/rollup-openbsd-x64@4.59.0": resolution: { - integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==, + integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==, } cpu: [x64] os: [openbsd] - "@rollup/rollup-openharmony-arm64@4.57.1": + "@rollup/rollup-openharmony-arm64@4.59.0": resolution: { - integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==, + integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==, } cpu: [arm64] os: [openharmony] - "@rollup/rollup-win32-arm64-msvc@4.57.1": + "@rollup/rollup-win32-arm64-msvc@4.59.0": resolution: { - integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==, + integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==, } cpu: [arm64] os: [win32] - "@rollup/rollup-win32-ia32-msvc@4.57.1": + "@rollup/rollup-win32-ia32-msvc@4.59.0": resolution: { - integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==, + integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==, } cpu: [ia32] os: [win32] - "@rollup/rollup-win32-x64-gnu@4.57.1": + "@rollup/rollup-win32-x64-gnu@4.59.0": resolution: { - integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==, + integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==, } cpu: [x64] os: [win32] - "@rollup/rollup-win32-x64-msvc@4.57.1": + "@rollup/rollup-win32-x64-msvc@4.59.0": resolution: { - integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==, + integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==, } cpu: [x64] os: [win32] @@ -1425,110 +1456,110 @@ packages: integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==, } - "@sinclair/typebox@0.27.8": + "@sinclair/typebox@0.27.10": resolution: { - integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==, } - "@swc/core-darwin-arm64@1.15.11": + "@swc/core-darwin-arm64@1.15.18": resolution: { - integrity: sha512-QoIupRWVH8AF1TgxYyeA5nS18dtqMuxNwchjBIwJo3RdwLEFiJq6onOx9JAxHtuPwUkIVuU2Xbp+jCJ7Vzmgtg==, + integrity: sha512-+mIv7uBuSaywN3C9LNuWaX1jJJ3SKfiJuE6Lr3bd+/1Iv8oMU7oLBjYMluX1UrEPzwN2qCdY6Io0yVicABoCwQ==, } engines: { node: ">=10" } cpu: [arm64] os: [darwin] - "@swc/core-darwin-x64@1.15.11": + "@swc/core-darwin-x64@1.15.18": resolution: { - integrity: sha512-S52Gu1QtPSfBYDiejlcfp9GlN+NjTZBRRNsz8PNwBgSE626/FUf2PcllVUix7jqkoMC+t0rS8t+2/aSWlMuQtA==, + integrity: sha512-wZle0eaQhnzxWX5V/2kEOI6Z9vl/lTFEC6V4EWcn+5pDjhemCpQv9e/TDJ0GIoiClX8EDWRvuZwh+Z3dhL1NAg==, } engines: { node: ">=10" } cpu: [x64] os: [darwin] - "@swc/core-linux-arm-gnueabihf@1.15.11": + "@swc/core-linux-arm-gnueabihf@1.15.18": resolution: { - integrity: sha512-lXJs8oXo6Z4yCpimpQ8vPeCjkgoHu5NoMvmJZ8qxDyU99KVdg6KwU9H79vzrmB+HfH+dCZ7JGMqMF//f8Cfvdg==, + integrity: sha512-ao61HGXVqrJFHAcPtF4/DegmwEkVCo4HApnotLU8ognfmU8x589z7+tcf3hU+qBiU1WOXV5fQX6W9Nzs6hjxDw==, } engines: { node: ">=10" } cpu: [arm] os: [linux] - "@swc/core-linux-arm64-gnu@1.15.11": + "@swc/core-linux-arm64-gnu@1.15.18": resolution: { - integrity: sha512-chRsz1K52/vj8Mfq/QOugVphlKPWlMh10V99qfH41hbGvwAU6xSPd681upO4bKiOr9+mRIZZW+EfJqY42ZzRyA==, + integrity: sha512-3xnctOBLIq3kj8PxOCgPrGjBLP/kNOddr6f5gukYt/1IZxsITQaU9TDyjeX6jG+FiCIHjCuWuffsyQDL5Ew1bg==, } engines: { node: ">=10" } cpu: [arm64] os: [linux] libc: [glibc] - "@swc/core-linux-arm64-musl@1.15.11": + "@swc/core-linux-arm64-musl@1.15.18": resolution: { - integrity: sha512-PYftgsTaGnfDK4m6/dty9ryK1FbLk+LosDJ/RJR2nkXGc8rd+WenXIlvHjWULiBVnS1RsjHHOXmTS4nDhe0v0w==, + integrity: sha512-0a+Lix+FSSHBSBOA0XznCcHo5/1nA6oLLjcnocvzXeqtdjnPb+SvchItHI+lfeiuj1sClYPDvPMLSLyXFaiIKw==, } engines: { node: ">=10" } cpu: [arm64] os: [linux] libc: [musl] - "@swc/core-linux-x64-gnu@1.15.11": + "@swc/core-linux-x64-gnu@1.15.18": resolution: { - integrity: sha512-DKtnJKIHiZdARyTKiX7zdRjiDS1KihkQWatQiCHMv+zc2sfwb4Glrodx2VLOX4rsa92NLR0Sw8WLcPEMFY1szQ==, + integrity: sha512-wG9J8vReUlpaHz4KOD/5UE1AUgirimU4UFT9oZmupUDEofxJKYb1mTA/DrMj0s78bkBiNI+7Fo2EgPuvOJfuAA==, } engines: { node: ">=10" } cpu: [x64] os: [linux] libc: [glibc] - "@swc/core-linux-x64-musl@1.15.11": + "@swc/core-linux-x64-musl@1.15.18": resolution: { - integrity: sha512-mUjjntHj4+8WBaiDe5UwRNHuEzLjIWBTSGTw0JT9+C9/Yyuh4KQqlcEQ3ro6GkHmBGXBFpGIj/o5VMyRWfVfWw==, + integrity: sha512-4nwbVvCphKzicwNWRmvD5iBaZj8JYsRGa4xOxJmOyHlMDpsvvJ2OR2cODlvWyGFH6BYL1MfIAK3qph3hp0Az6g==, } engines: { node: ">=10" } cpu: [x64] os: [linux] libc: [musl] - "@swc/core-win32-arm64-msvc@1.15.11": + "@swc/core-win32-arm64-msvc@1.15.18": resolution: { - integrity: sha512-ZkNNG5zL49YpaFzfl6fskNOSxtcZ5uOYmWBkY4wVAvgbSAQzLRVBp+xArGWh2oXlY/WgL99zQSGTv7RI5E6nzA==, + integrity: sha512-zk0RYO+LjiBCat2RTMHzAWaMky0cra9loH4oRrLKLLNuL+jarxKLFDA8xTZWEkCPLjUTwlRN7d28eDLLMgtUcQ==, } engines: { node: ">=10" } cpu: [arm64] os: [win32] - "@swc/core-win32-ia32-msvc@1.15.11": + "@swc/core-win32-ia32-msvc@1.15.18": resolution: { - integrity: sha512-6XnzORkZCQzvTQ6cPrU7iaT9+i145oLwnin8JrfsLG41wl26+5cNQ2XV3zcbrnFEV6esjOceom9YO1w9mGJByw==, + integrity: sha512-yVuTrZ0RccD5+PEkpcLOBAuPbYBXS6rslENvIXfvJGXSdX5QGi1ehC4BjAMl5FkKLiam4kJECUI0l7Hq7T1vwg==, } engines: { node: ">=10" } cpu: [ia32] os: [win32] - "@swc/core-win32-x64-msvc@1.15.11": + "@swc/core-win32-x64-msvc@1.15.18": resolution: { - integrity: sha512-IQ2n6af7XKLL6P1gIeZACskSxK8jWtoKpJWLZmdXTDj1MGzktUy4i+FvpdtxFmJWNavRWH1VmTr6kAubRDHeKw==, + integrity: sha512-7NRmE4hmUQNCbYU3Hn9Tz57mK9Qq4c97ZS+YlamlK6qG9Fb5g/BB3gPDe0iLlJkns/sYv2VWSkm8c3NmbEGjbg==, } engines: { node: ">=10" } cpu: [x64] os: [win32] - "@swc/core@1.15.11": + "@swc/core@1.15.18": resolution: { - integrity: sha512-iLmLTodbYxU39HhMPaMUooPwO/zqJWvsqkrXv1ZI38rMb048p6N7qtAtTp37sw9NzSrvH6oli8EdDygo09IZ/w==, + integrity: sha512-z87aF9GphWp//fnkRsqvtY+inMVPgYW3zSlXH1kJFvRT5H/wiAn+G32qW5l3oEk63KSF1x3Ov0BfHCObAmT8RA==, } engines: { node: ">=10" } peerDependencies: @@ -1590,34 +1621,34 @@ packages: peerDependencies: "@testing-library/dom": ">=7.21.4" - "@turf/area@7.3.3": + "@turf/area@7.3.4": resolution: { - integrity: sha512-FT66TCxUec+3RsCCyO1kWP57/tiEWEqYfpIs5n44dup401Cne/E+xunahEWxMfP/HSUxfcRQqrjH5vEulLrNoA==, + integrity: sha512-UEQQFw2XwHpozSBAMEtZI3jDsAad4NnHL/poF7/S6zeDCjEBCkt3MYd6DSGH/cvgcOozxH/ky3/rIVSMZdx4vA==, } - "@turf/bbox@7.3.3": + "@turf/bbox@7.3.4": resolution: { - integrity: sha512-1zNO/JUgDp0N+3EG5fG7+8EolE95OW1LD8ur0hRP0JK+lRyN0gAvJT7n1I9pu/NIqTa8x/zXxGRc1dcOdohYkg==, + integrity: sha512-D5ErVWtfQbEPh11yzI69uxqrcJmbPU/9Y59f1uTapgwAwQHQztDWgsYpnL3ns8r1GmPWLP8sGJLVTIk2TZSiYA==, } - "@turf/centroid@7.3.3": + "@turf/centroid@7.3.4": resolution: { - integrity: sha512-3vWLnF1CksLk7xTUH11IzOQJ6fOoj7zhuL8M3GTxcKruVkGat/vIm3Ye5b68sDVcE5nFDA2pYjjbL7Rfmn3/GQ==, + integrity: sha512-6c3kyTSKBrmiPMe75UkHw6MgedroZ6eR5usEvdlDhXgA3MudFPXIZkMFmMd1h9XeJ9xFfkmq+HPCdF0cOzvztA==, } - "@turf/helpers@7.3.3": + "@turf/helpers@7.3.4": resolution: { - integrity: sha512-9Ias0L1GuZPIzO6sk8jraTEuLJye6n9LYNEdw69ZGOQ6C1IigjxkPW49zmn21aTv1z27vxdVLSS3r+78DB2QnQ==, + integrity: sha512-U/S5qyqgx3WTvg4twaH0WxF3EixoTCfDsmk98g1E3/5e2YKp7JKYZdz0vivsS5/UZLJeZDEElOSFH4pUgp+l7g==, } - "@turf/meta@7.3.3": + "@turf/meta@7.3.4": resolution: { - integrity: sha512-Tz1j4h70iFB5SebWWoVv/uL59x4aOngXU+d1xQDXzOCn/O6txnreGVGMcYU362c5F06yqZx38H9UFTQ553lK0w==, + integrity: sha512-tlmw9/Hs1p2n0uoHVm1w3ugw1I6L8jv9YZrcdQa4SH5FX5UY0ATrKeIvfA55FlL//PGuYppJp+eyg/0eb4goqw==, } "@types/aria-query@5.0.4": @@ -1700,10 +1731,10 @@ packages: integrity: sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==, } - "@types/node@22.19.7": + "@types/node@22.19.13": resolution: { - integrity: sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==, + integrity: sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw==, } "@types/parse-json@4.0.2": @@ -1746,10 +1777,10 @@ packages: peerDependencies: "@types/react": "*" - "@types/react@18.3.27": + "@types/react@18.3.28": resolution: { - integrity: sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==, + integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==, } "@types/supercluster@7.1.3": @@ -1770,15 +1801,15 @@ packages: integrity: sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==, } - "@typescript-eslint/eslint-plugin@8.54.0": + "@typescript-eslint/eslint-plugin@8.56.1": resolution: { - integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==, + integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - "@typescript-eslint/parser": ^8.54.0 - eslint: ^8.57.0 || ^9.0.0 + "@typescript-eslint/parser": ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" "@typescript-eslint/parser@6.21.0": @@ -1794,20 +1825,20 @@ packages: typescript: optional: true - "@typescript-eslint/parser@8.54.0": + "@typescript-eslint/parser@8.56.1": resolution: { - integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==, + integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" - "@typescript-eslint/project-service@8.54.0": + "@typescript-eslint/project-service@8.56.1": resolution: { - integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==, + integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: @@ -1820,30 +1851,30 @@ packages: } engines: { node: ^16.0.0 || >=18.0.0 } - "@typescript-eslint/scope-manager@8.54.0": + "@typescript-eslint/scope-manager@8.56.1": resolution: { - integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==, + integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@typescript-eslint/tsconfig-utils@8.54.0": + "@typescript-eslint/tsconfig-utils@8.56.1": resolution: { - integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==, + integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: ">=4.8.4 <6.0.0" - "@typescript-eslint/type-utils@8.54.0": + "@typescript-eslint/type-utils@8.56.1": resolution: { - integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==, + integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" "@typescript-eslint/types@6.21.0": @@ -1853,10 +1884,10 @@ packages: } engines: { node: ^16.0.0 || >=18.0.0 } - "@typescript-eslint/types@8.54.0": + "@typescript-eslint/types@8.56.1": resolution: { - integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==, + integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -1872,23 +1903,23 @@ packages: typescript: optional: true - "@typescript-eslint/typescript-estree@8.54.0": + "@typescript-eslint/typescript-estree@8.56.1": resolution: { - integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==, + integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: ">=4.8.4 <6.0.0" - "@typescript-eslint/utils@8.54.0": + "@typescript-eslint/utils@8.56.1": resolution: { - integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==, + integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" "@typescript-eslint/visitor-keys@6.21.0": @@ -1898,10 +1929,10 @@ packages: } engines: { node: ^16.0.0 || >=18.0.0 } - "@typescript-eslint/visitor-keys@8.54.0": + "@typescript-eslint/visitor-keys@8.56.1": resolution: { - integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==, + integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -2144,10 +2175,10 @@ packages: engines: { node: ">=0.4.0" } hasBin: true - acorn@8.15.0: + acorn@8.16.0: resolution: { - integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==, + integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==, } engines: { node: ">=0.4.0" } hasBin: true @@ -2165,7 +2196,7 @@ packages: integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, } peerDependencies: - ajv: ^8.0.0 + ajv: ">=8.18.0" peerDependenciesMeta: ajv: optional: true @@ -2176,24 +2207,18 @@ packages: integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, } peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, - } + ajv: ">=8.18.0" - ajv@8.12.0: + ajv@6.14.0: resolution: { - integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, + integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==, } - ajv@8.17.1: + ajv@8.18.0: resolution: { - integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, + integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==, } almost-equal@1.1.0: @@ -2420,12 +2445,18 @@ packages: } engines: { node: ">=10", npm: ">=6" } - balanced-match@4.0.3: + balanced-match@1.0.2: resolution: { - integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==, + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, } - engines: { node: 20 || >=22 } + + balanced-match@4.0.4: + resolution: + { + integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==, + } + engines: { node: 18 || 20 || >=22 } base64-arraybuffer@1.0.2: resolution: @@ -2440,11 +2471,12 @@ packages: integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, } - baseline-browser-mapping@2.9.19: + baseline-browser-mapping@2.10.0: resolution: { - integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==, + integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==, } + engines: { node: ">=6.0.0" } hasBin: true big-integer@1.6.52: @@ -2478,12 +2510,18 @@ packages: integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==, } - brace-expansion@5.0.2: + brace-expansion@1.1.12: resolution: { - integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==, + integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==, } - engines: { node: 20 || >=22 } + + brace-expansion@5.0.4: + resolution: + { + integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==, + } + engines: { node: 18 || 20 || >=22 } braces@3.0.3: resolution: @@ -2560,10 +2598,10 @@ packages: } engines: { node: ">=6" } - caniuse-lite@1.0.30001766: + caniuse-lite@1.0.30001775: resolution: { - integrity: sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==, + integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==, } canvas-fit@1.5.0: @@ -2695,6 +2733,12 @@ packages: } engines: { node: ">=18" } + concat-map@0.0.1: + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } + concat-stream@1.6.2: resolution: { @@ -2776,14 +2820,14 @@ packages: integrity: sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==, } - css-loader@7.1.3: + css-loader@7.1.4: resolution: { - integrity: sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==, + integrity: sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==, } engines: { node: ">= 18.12.0" } peerDependencies: - "@rspack/core": 0.x || 1.x + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 webpack: ^5.27.0 peerDependenciesMeta: "@rspack/core": @@ -3157,10 +3201,10 @@ packages: integrity: sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==, } - electron-to-chromium@1.5.283: + electron-to-chromium@1.5.302: resolution: { - integrity: sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w==, + integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==, } element-size@1.1.1: @@ -3187,10 +3231,10 @@ packages: integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==, } - enhanced-resolve@5.18.4: + enhanced-resolve@5.20.0: resolution: { - integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==, + integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==, } engines: { node: ">=10.13.0" } @@ -3301,12 +3345,12 @@ packages: integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==, } - esbuild@0.21.5: + esbuild@0.27.3: resolution: { - integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, + integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } hasBin: true escalade@3.2.0: @@ -3466,12 +3510,12 @@ packages: } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - eslint-visitor-keys@4.2.1: + eslint-visitor-keys@5.0.1: resolution: { - integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==, + integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==, } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } eslint@8.57.1: resolution: @@ -3673,10 +3717,10 @@ packages: } engines: { node: ^10.12.0 || >=12.0.0 } - flatted@3.3.3: + flatted@3.3.4: resolution: { - integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, + integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==, } flatten-vertex-data@1.0.2: @@ -3845,7 +3889,7 @@ packages: { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, } - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me global-prefix@4.0.0: resolution: @@ -4490,12 +4534,12 @@ packages: integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, } - isexe@3.1.1: + isexe@3.1.5: resolution: { - integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==, + integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==, } - engines: { node: ">=16" } + engines: { node: ">=18" } iterator.prototype@1.1.5: resolution: @@ -4821,13 +4865,19 @@ packages: } engines: { node: ">=4" } - minimatch@10.2.2: + minimatch@10.2.4: resolution: { - integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==, + integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==, } engines: { node: 18 || 20 || >=22 } + minimatch@3.1.5: + resolution: + { + integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==, + } + minimist@1.2.8: resolution: { @@ -4936,6 +4986,13 @@ packages: integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==, } + node-exports-info@1.6.0: + resolution: + { + integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==, + } + engines: { node: ">= 0.4" } + node-gyp-build@4.8.4: resolution: { @@ -5416,12 +5473,6 @@ packages: integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==, } - randombytes@2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, - } - react-dom@18.3.1: resolution: { @@ -5679,11 +5730,12 @@ packages: engines: { node: ">= 0.4" } hasBin: true - resolve@2.0.0-next.5: + resolve@2.0.0-next.6: resolution: { - integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, + integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==, } + engines: { node: ">= 0.4" } hasBin: true reusify@1.1.0: @@ -5707,10 +5759,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.57.1: + rollup@4.59.0: resolution: { - integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==, + integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==, } engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true @@ -5772,10 +5824,10 @@ packages: integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, } - sax@1.4.4: + sax@1.5.0: resolution: { - integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==, + integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==, } engines: { node: ">=11.0.0" } @@ -5806,19 +5858,20 @@ packages: } hasBin: true - semver@7.7.3: + semver@7.7.4: resolution: { - integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==, + integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==, } engines: { node: ">=10" } hasBin: true - serialize-javascript@6.0.2: + serialize-javascript@7.0.3: resolution: { - integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, + integrity: sha512-h+cZ/XXarqDgCjo+YSyQU/ulDEESGGf8AMK9pPNmhNSl/FzPl6L8pMp1leca5z6NuG6tvV/auC8/43tmovowww==, } + engines: { node: ">=20.0.0" } set-function-length@1.2.2: resolution: @@ -6474,14 +6527,14 @@ packages: integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, } - typescript-eslint@8.54.0: + typescript-eslint@8.56.1: resolution: { - integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==, + integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" typescript@5.6.3: @@ -6693,10 +6746,10 @@ packages: } engines: { node: ">=12" } - webpack-sources@3.3.3: + webpack-sources@3.3.4: resolution: { - integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==, + integrity: sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==, } engines: { node: ">=10.13.0" } @@ -6891,7 +6944,7 @@ packages: snapshots: "@adobe/css-tools@4.4.4": {} - "@apollo/client@3.14.0(@types/react@18.3.27)(graphql@15.10.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@apollo/client@3.14.0(@types/react@18.3.28)(graphql@15.10.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@graphql-typed-document-node/core": 3.2.0(graphql@15.10.1) "@wry/caches": 1.0.1 @@ -6902,7 +6955,7 @@ snapshots: hoist-non-react-statics: 3.3.2 optimism: 0.18.1 prop-types: 15.8.1 - rehackt: 0.1.0(@types/react@18.3.27)(react@18.3.1) + rehackt: 0.1.0(@types/react@18.3.28)(react@18.3.1) symbol-observable: 4.0.0 ts-invariant: 0.10.3 tslib: 2.8.1 @@ -6921,16 +6974,16 @@ snapshots: "@csstools/css-tokenizer": 3.0.4 lru-cache: 10.4.3 - "@babel/code-frame@7.28.6": + "@babel/code-frame@7.29.0": dependencies: "@babel/helper-validator-identifier": 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - "@babel/generator@7.28.6": + "@babel/generator@7.29.1": dependencies: - "@babel/parser": 7.28.6 - "@babel/types": 7.28.6 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 "@jridgewell/gen-mapping": 0.3.13 "@jridgewell/trace-mapping": 0.3.31 jsesc: 3.1.0 @@ -6939,8 +6992,8 @@ snapshots: "@babel/helper-module-imports@7.28.6": dependencies: - "@babel/traverse": 7.28.6 - "@babel/types": 7.28.6 + "@babel/traverse": 7.29.0 + "@babel/types": 7.29.0 transitivePeerDependencies: - supports-color @@ -6948,50 +7001,49 @@ snapshots: "@babel/helper-validator-identifier@7.28.5": {} - "@babel/parser@7.28.6": + "@babel/parser@7.29.0": dependencies: - "@babel/types": 7.28.6 + "@babel/types": 7.29.0 "@babel/runtime@7.28.6": {} "@babel/template@7.28.6": dependencies: - "@babel/code-frame": 7.28.6 - "@babel/parser": 7.28.6 - "@babel/types": 7.28.6 + "@babel/code-frame": 7.29.0 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 - "@babel/traverse@7.28.6": + "@babel/traverse@7.29.0": dependencies: - "@babel/code-frame": 7.28.6 - "@babel/generator": 7.28.6 + "@babel/code-frame": 7.29.0 + "@babel/generator": 7.29.1 "@babel/helper-globals": 7.28.0 - "@babel/parser": 7.28.6 + "@babel/parser": 7.29.0 "@babel/template": 7.28.6 - "@babel/types": 7.28.6 + "@babel/types": 7.29.0 debug: 4.4.3 transitivePeerDependencies: - supports-color - "@babel/types@7.28.6": + "@babel/types@7.29.0": dependencies: "@babel/helper-string-parser": 7.27.1 "@babel/helper-validator-identifier": 7.28.5 - "@base-ui/react@1.1.0(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@base-ui/react@1.2.0(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@base-ui/utils": 0.2.4(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@base-ui/utils": 0.2.5(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@floating-ui/react-dom": 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@floating-ui/utils": 0.2.10 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - reselect: 5.1.1 tabbable: 6.4.0 use-sync-external-store: 1.6.0(react@18.3.1) optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@base-ui/utils@0.2.4(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@base-ui/utils@0.2.5(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 "@floating-ui/utils": 0.2.10 @@ -7000,7 +7052,7 @@ snapshots: reselect: 5.1.1 use-sync-external-store: 1.6.0(react@18.3.1) optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 "@choojs/findup@0.2.1": dependencies: @@ -7034,9 +7086,9 @@ snapshots: optionalDependencies: dayjs: 1.10.7 - "@diamondlightsource/cs-web-lib@0.9.14(@types/react@18.3.27)(graphql@15.10.1)(mapbox-gl@1.13.3)(react-dom@18.3.1(react@18.3.1))(react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.104.1)": + "@diamondlightsource/cs-web-lib@0.9.14(@types/react@18.3.28)(graphql@15.10.1)(mapbox-gl@1.13.3)(react-dom@18.3.1(react@18.3.1))(react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.104.1)": dependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 apollo-link-retry: 2.2.16(graphql@15.10.1) bufferutil: 4.1.0 loglevel: 1.9.2 @@ -7057,15 +7109,15 @@ snapshots: - supports-color - webpack - "@diamondlightsource/sci-react-ui@0.3.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@jsonforms/core@3.7.0)(@jsonforms/material-renderers@3.7.0(92b54390c5d6c5a39f40ff77e05d6052))(@jsonforms/react@3.7.0(@jsonforms/core@3.7.0)(react@18.3.1))(@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)": + "@diamondlightsource/sci-react-ui@0.3.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@jsonforms/core@3.7.0)(@jsonforms/material-renderers@3.7.0(084ffb6e2cd7bbd51e9104c649105a46))(@jsonforms/react@3.7.0(@jsonforms/core@3.7.0)(react@18.3.1))(@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)": dependencies: - "@emotion/react": 11.14.0(@types/react@18.3.27)(react@18.3.1) - "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) + "@emotion/react": 11.14.0(@types/react@18.3.28)(react@18.3.1) + "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) "@jsonforms/core": 3.7.0 - "@jsonforms/material-renderers": 3.7.0(92b54390c5d6c5a39f40ff77e05d6052) + "@jsonforms/material-renderers": 3.7.0(084ffb6e2cd7bbd51e9104c649105a46) "@jsonforms/react": 3.7.0(@jsonforms/core@3.7.0)(react@18.3.1) - "@mui/icons-material": 6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) - "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@mui/icons-material": 6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@types/utif": 3.0.6 react: 18.3.1 react-icons: 5.5.0(react@18.3.1) @@ -7103,7 +7155,7 @@ snapshots: "@emotion/memoize@0.9.0": {} - "@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1)": + "@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 "@emotion/babel-plugin": 11.13.5 @@ -7115,7 +7167,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 18.3.1 optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 transitivePeerDependencies: - supports-color @@ -7129,18 +7181,18 @@ snapshots: "@emotion/sheet@1.4.0": {} - "@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1)": + "@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 "@emotion/babel-plugin": 11.13.5 "@emotion/is-prop-valid": 1.4.0 - "@emotion/react": 11.14.0(@types/react@18.3.27)(react@18.3.1) + "@emotion/react": 11.14.0(@types/react@18.3.28)(react@18.3.1) "@emotion/serialize": 1.3.3 "@emotion/use-insertion-effect-with-fallbacks": 1.2.0(react@18.3.1) "@emotion/utils": 1.4.2 react: 18.3.1 optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 transitivePeerDependencies: - supports-color @@ -7154,73 +7206,82 @@ snapshots: "@emotion/weak-memoize@0.4.0": {} - "@esbuild/aix-ppc64@0.21.5": + "@esbuild/aix-ppc64@0.27.3": optional: true - "@esbuild/android-arm64@0.21.5": + "@esbuild/android-arm64@0.27.3": optional: true - "@esbuild/android-arm@0.21.5": + "@esbuild/android-arm@0.27.3": optional: true - "@esbuild/android-x64@0.21.5": + "@esbuild/android-x64@0.27.3": optional: true - "@esbuild/darwin-arm64@0.21.5": + "@esbuild/darwin-arm64@0.27.3": optional: true - "@esbuild/darwin-x64@0.21.5": + "@esbuild/darwin-x64@0.27.3": optional: true - "@esbuild/freebsd-arm64@0.21.5": + "@esbuild/freebsd-arm64@0.27.3": optional: true - "@esbuild/freebsd-x64@0.21.5": + "@esbuild/freebsd-x64@0.27.3": optional: true - "@esbuild/linux-arm64@0.21.5": + "@esbuild/linux-arm64@0.27.3": optional: true - "@esbuild/linux-arm@0.21.5": + "@esbuild/linux-arm@0.27.3": optional: true - "@esbuild/linux-ia32@0.21.5": + "@esbuild/linux-ia32@0.27.3": optional: true - "@esbuild/linux-loong64@0.21.5": + "@esbuild/linux-loong64@0.27.3": optional: true - "@esbuild/linux-mips64el@0.21.5": + "@esbuild/linux-mips64el@0.27.3": optional: true - "@esbuild/linux-ppc64@0.21.5": + "@esbuild/linux-ppc64@0.27.3": optional: true - "@esbuild/linux-riscv64@0.21.5": + "@esbuild/linux-riscv64@0.27.3": optional: true - "@esbuild/linux-s390x@0.21.5": + "@esbuild/linux-s390x@0.27.3": optional: true - "@esbuild/linux-x64@0.21.5": + "@esbuild/linux-x64@0.27.3": optional: true - "@esbuild/netbsd-x64@0.21.5": + "@esbuild/netbsd-arm64@0.27.3": optional: true - "@esbuild/openbsd-x64@0.21.5": + "@esbuild/netbsd-x64@0.27.3": optional: true - "@esbuild/sunos-x64@0.21.5": + "@esbuild/openbsd-arm64@0.27.3": optional: true - "@esbuild/win32-arm64@0.21.5": + "@esbuild/openbsd-x64@0.27.3": optional: true - "@esbuild/win32-ia32@0.21.5": + "@esbuild/openharmony-arm64@0.27.3": optional: true - "@esbuild/win32-x64@0.21.5": + "@esbuild/sunos-x64@0.27.3": + optional: true + + "@esbuild/win32-arm64@0.27.3": + optional: true + + "@esbuild/win32-ia32@0.27.3": + optional: true + + "@esbuild/win32-x64@0.27.3": optional: true "@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)": @@ -7232,21 +7293,21 @@ snapshots: "@eslint/eslintrc@2.1.4": dependencies: - ajv: 6.12.6 + ajv: 6.14.0 debug: 4.4.3 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 import-fresh: 3.3.1 js-yaml: 4.1.1 - minimatch: 10.2.2 + minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color "@eslint/js@8.57.1": {} - "@eslint/js@9.39.2": {} + "@eslint/js@9.39.3": {} "@floating-ui/core@1.7.4": dependencies: @@ -7273,7 +7334,7 @@ snapshots: dependencies: "@humanwhocodes/object-schema": 2.0.3 debug: 4.4.3 - minimatch: 10.2.2 + minimatch: 3.1.5 transitivePeerDependencies: - supports-color @@ -7283,7 +7344,7 @@ snapshots: "@jest/schemas@29.6.3": dependencies: - "@sinclair/typebox": 0.27.8 + "@sinclair/typebox": 0.27.10 "@jridgewell/gen-mapping@0.3.13": dependencies: @@ -7307,20 +7368,20 @@ snapshots: "@jsonforms/core@3.7.0": dependencies: "@types/json-schema": 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) + ajv: 8.18.0 + ajv-formats: 2.1.1(ajv@8.18.0) lodash: 4.17.23 - "@jsonforms/material-renderers@3.7.0(92b54390c5d6c5a39f40ff77e05d6052)": + "@jsonforms/material-renderers@3.7.0(084ffb6e2cd7bbd51e9104c649105a46)": dependencies: "@date-io/dayjs": 3.2.0(dayjs@1.10.7) - "@emotion/react": 11.14.0(@types/react@18.3.27)(react@18.3.1) - "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) + "@emotion/react": 11.14.0(@types/react@18.3.28)(react@18.3.1) + "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) "@jsonforms/core": 3.7.0 "@jsonforms/react": 3.7.0(@jsonforms/core@3.7.0)(react@18.3.1) - "@mui/icons-material": 6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) - "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@mui/x-date-pickers": 8.26.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(dayjs@1.10.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@mui/icons-material": 6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@mui/x-date-pickers": 8.26.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(dayjs@1.10.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dayjs: 1.10.7 lodash: 4.17.23 react: 18.3.1 @@ -7373,7 +7434,7 @@ snapshots: "@microsoft/tsdoc-config@0.17.1": dependencies: "@microsoft/tsdoc": 0.15.1 - ajv: 8.12.0 + ajv: 8.18.0 jju: 1.4.0 resolve: 1.22.11 @@ -7381,23 +7442,23 @@ snapshots: "@mui/core-downloads-tracker@6.5.0": {} - "@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.27)(react@18.3.1)": + "@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 "@mui/core-downloads-tracker": 6.5.0 - "@mui/system": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) - "@mui/types": 7.2.24(@types/react@18.3.27) - "@mui/utils": 6.4.9(@types/react@18.3.27)(react@18.3.1) + "@mui/system": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + "@mui/types": 7.2.24(@types/react@18.3.28) + "@mui/utils": 6.4.9(@types/react@18.3.28)(react@18.3.1) "@popperjs/core": 2.11.8 - "@types/react-transition-group": 4.4.12(@types/react@18.3.27) + "@types/react-transition-group": 4.4.12(@types/react@18.3.28) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 @@ -7406,20 +7467,20 @@ snapshots: react-is: 19.2.4 react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - "@emotion/react": 11.14.0(@types/react@18.3.27)(react@18.3.1) - "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) - "@types/react": 18.3.27 + "@emotion/react": 11.14.0(@types/react@18.3.28)(react@18.3.1) + "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + "@types/react": 18.3.28 - "@mui/private-theming@6.4.9(@types/react@18.3.27)(react@18.3.1)": + "@mui/private-theming@6.4.9(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@mui/utils": 6.4.9(@types/react@18.3.27)(react@18.3.1) + "@mui/utils": 6.4.9(@types/react@18.3.28)(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)": + "@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 "@emotion/cache": 11.14.0 @@ -7429,83 +7490,83 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 optionalDependencies: - "@emotion/react": 11.14.0(@types/react@18.3.27)(react@18.3.1) - "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) + "@emotion/react": 11.14.0(@types/react@18.3.28)(react@18.3.1) + "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) - "@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1)": + "@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@mui/private-theming": 6.4.9(@types/react@18.3.27)(react@18.3.1) - "@mui/styled-engine": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) - "@mui/types": 7.2.24(@types/react@18.3.27) - "@mui/utils": 6.4.9(@types/react@18.3.27)(react@18.3.1) + "@mui/private-theming": 6.4.9(@types/react@18.3.28)(react@18.3.1) + "@mui/styled-engine": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) + "@mui/types": 7.2.24(@types/react@18.3.28) + "@mui/utils": 6.4.9(@types/react@18.3.28)(react@18.3.1) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 react: 18.3.1 optionalDependencies: - "@emotion/react": 11.14.0(@types/react@18.3.27)(react@18.3.1) - "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) - "@types/react": 18.3.27 + "@emotion/react": 11.14.0(@types/react@18.3.28)(react@18.3.1) + "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + "@types/react": 18.3.28 - "@mui/types@7.2.24(@types/react@18.3.27)": + "@mui/types@7.2.24(@types/react@18.3.28)": optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@mui/types@7.4.10(@types/react@18.3.27)": + "@mui/types@7.4.11(@types/react@18.3.28)": dependencies: "@babel/runtime": 7.28.6 optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@mui/utils@6.4.9(@types/react@18.3.27)(react@18.3.1)": + "@mui/utils@6.4.9(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@mui/types": 7.2.24(@types/react@18.3.27) + "@mui/types": 7.2.24(@types/react@18.3.28) "@types/prop-types": 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 react: 18.3.1 react-is: 19.2.4 optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@mui/utils@7.3.7(@types/react@18.3.27)(react@18.3.1)": + "@mui/utils@7.3.8(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@mui/types": 7.4.10(@types/react@18.3.27) + "@mui/types": 7.4.11(@types/react@18.3.28) "@types/prop-types": 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 react: 18.3.1 react-is: 19.2.4 optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@mui/x-date-pickers@8.26.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(dayjs@1.10.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@mui/x-date-pickers@8.26.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(dayjs@1.10.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@mui/system": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) - "@mui/utils": 7.3.7(@types/react@18.3.27)(react@18.3.1) - "@mui/x-internals": 8.26.0(@types/react@18.3.27)(react@18.3.1) - "@types/react-transition-group": 4.4.12(@types/react@18.3.27) + "@mui/material": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@mui/system": 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + "@mui/utils": 7.3.8(@types/react@18.3.28)(react@18.3.1) + "@mui/x-internals": 8.26.0(@types/react@18.3.28)(react@18.3.1) + "@types/react-transition-group": 4.4.12(@types/react@18.3.28) clsx: 2.1.1 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - "@emotion/react": 11.14.0(@types/react@18.3.27)(react@18.3.1) - "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1))(@types/react@18.3.27)(react@18.3.1) + "@emotion/react": 11.14.0(@types/react@18.3.28)(react@18.3.1) + "@emotion/styled": 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) dayjs: 1.10.7 transitivePeerDependencies: - "@types/react" - "@mui/x-internals@8.26.0(@types/react@18.3.27)(react@18.3.1)": + "@mui/x-internals@8.26.0(@types/react@18.3.28)(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 - "@mui/utils": 7.3.7(@types/react@18.3.27)(react@18.3.1) + "@mui/utils": 7.3.8(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 reselect: 5.1.1 use-sync-external-store: 1.6.0(react@18.3.1) @@ -7589,130 +7650,130 @@ snapshots: "@rolldown/pluginutils@1.0.0-beta.27": {} - "@rollup/rollup-android-arm-eabi@4.57.1": + "@rollup/rollup-android-arm-eabi@4.59.0": optional: true - "@rollup/rollup-android-arm64@4.57.1": + "@rollup/rollup-android-arm64@4.59.0": optional: true - "@rollup/rollup-darwin-arm64@4.57.1": + "@rollup/rollup-darwin-arm64@4.59.0": optional: true - "@rollup/rollup-darwin-x64@4.57.1": + "@rollup/rollup-darwin-x64@4.59.0": optional: true - "@rollup/rollup-freebsd-arm64@4.57.1": + "@rollup/rollup-freebsd-arm64@4.59.0": optional: true - "@rollup/rollup-freebsd-x64@4.57.1": + "@rollup/rollup-freebsd-x64@4.59.0": optional: true - "@rollup/rollup-linux-arm-gnueabihf@4.57.1": + "@rollup/rollup-linux-arm-gnueabihf@4.59.0": optional: true - "@rollup/rollup-linux-arm-musleabihf@4.57.1": + "@rollup/rollup-linux-arm-musleabihf@4.59.0": optional: true - "@rollup/rollup-linux-arm64-gnu@4.57.1": + "@rollup/rollup-linux-arm64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-arm64-musl@4.57.1": + "@rollup/rollup-linux-arm64-musl@4.59.0": optional: true - "@rollup/rollup-linux-loong64-gnu@4.57.1": + "@rollup/rollup-linux-loong64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-loong64-musl@4.57.1": + "@rollup/rollup-linux-loong64-musl@4.59.0": optional: true - "@rollup/rollup-linux-ppc64-gnu@4.57.1": + "@rollup/rollup-linux-ppc64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-ppc64-musl@4.57.1": + "@rollup/rollup-linux-ppc64-musl@4.59.0": optional: true - "@rollup/rollup-linux-riscv64-gnu@4.57.1": + "@rollup/rollup-linux-riscv64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-riscv64-musl@4.57.1": + "@rollup/rollup-linux-riscv64-musl@4.59.0": optional: true - "@rollup/rollup-linux-s390x-gnu@4.57.1": + "@rollup/rollup-linux-s390x-gnu@4.59.0": optional: true - "@rollup/rollup-linux-x64-gnu@4.57.1": + "@rollup/rollup-linux-x64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-x64-musl@4.57.1": + "@rollup/rollup-linux-x64-musl@4.59.0": optional: true - "@rollup/rollup-openbsd-x64@4.57.1": + "@rollup/rollup-openbsd-x64@4.59.0": optional: true - "@rollup/rollup-openharmony-arm64@4.57.1": + "@rollup/rollup-openharmony-arm64@4.59.0": optional: true - "@rollup/rollup-win32-arm64-msvc@4.57.1": + "@rollup/rollup-win32-arm64-msvc@4.59.0": optional: true - "@rollup/rollup-win32-ia32-msvc@4.57.1": + "@rollup/rollup-win32-ia32-msvc@4.59.0": optional: true - "@rollup/rollup-win32-x64-gnu@4.57.1": + "@rollup/rollup-win32-x64-gnu@4.59.0": optional: true - "@rollup/rollup-win32-x64-msvc@4.57.1": + "@rollup/rollup-win32-x64-msvc@4.59.0": optional: true "@rtsao/scc@1.1.0": {} - "@sinclair/typebox@0.27.8": {} + "@sinclair/typebox@0.27.10": {} - "@swc/core-darwin-arm64@1.15.11": + "@swc/core-darwin-arm64@1.15.18": optional: true - "@swc/core-darwin-x64@1.15.11": + "@swc/core-darwin-x64@1.15.18": optional: true - "@swc/core-linux-arm-gnueabihf@1.15.11": + "@swc/core-linux-arm-gnueabihf@1.15.18": optional: true - "@swc/core-linux-arm64-gnu@1.15.11": + "@swc/core-linux-arm64-gnu@1.15.18": optional: true - "@swc/core-linux-arm64-musl@1.15.11": + "@swc/core-linux-arm64-musl@1.15.18": optional: true - "@swc/core-linux-x64-gnu@1.15.11": + "@swc/core-linux-x64-gnu@1.15.18": optional: true - "@swc/core-linux-x64-musl@1.15.11": + "@swc/core-linux-x64-musl@1.15.18": optional: true - "@swc/core-win32-arm64-msvc@1.15.11": + "@swc/core-win32-arm64-msvc@1.15.18": optional: true - "@swc/core-win32-ia32-msvc@1.15.11": + "@swc/core-win32-ia32-msvc@1.15.18": optional: true - "@swc/core-win32-x64-msvc@1.15.11": + "@swc/core-win32-x64-msvc@1.15.18": optional: true - "@swc/core@1.15.11": + "@swc/core@1.15.18": dependencies: "@swc/counter": 0.1.3 "@swc/types": 0.1.25 optionalDependencies: - "@swc/core-darwin-arm64": 1.15.11 - "@swc/core-darwin-x64": 1.15.11 - "@swc/core-linux-arm-gnueabihf": 1.15.11 - "@swc/core-linux-arm64-gnu": 1.15.11 - "@swc/core-linux-arm64-musl": 1.15.11 - "@swc/core-linux-x64-gnu": 1.15.11 - "@swc/core-linux-x64-musl": 1.15.11 - "@swc/core-win32-arm64-msvc": 1.15.11 - "@swc/core-win32-ia32-msvc": 1.15.11 - "@swc/core-win32-x64-msvc": 1.15.11 + "@swc/core-darwin-arm64": 1.15.18 + "@swc/core-darwin-x64": 1.15.18 + "@swc/core-linux-arm-gnueabihf": 1.15.18 + "@swc/core-linux-arm64-gnu": 1.15.18 + "@swc/core-linux-arm64-musl": 1.15.18 + "@swc/core-linux-x64-gnu": 1.15.18 + "@swc/core-linux-x64-musl": 1.15.18 + "@swc/core-win32-arm64-msvc": 1.15.18 + "@swc/core-win32-ia32-msvc": 1.15.18 + "@swc/core-win32-x64-msvc": 1.15.18 "@swc/counter@0.1.3": {} @@ -7722,7 +7783,7 @@ snapshots: "@testing-library/dom@10.4.1": dependencies: - "@babel/code-frame": 7.28.6 + "@babel/code-frame": 7.29.0 "@babel/runtime": 7.28.6 "@types/aria-query": 5.0.4 aria-query: 5.3.0 @@ -7740,49 +7801,49 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - "@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@babel/runtime": 7.28.6 "@testing-library/dom": 10.4.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.27 - "@types/react-dom": 18.3.7(@types/react@18.3.27) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) "@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)": dependencies: "@testing-library/dom": 10.4.1 - "@turf/area@7.3.3": + "@turf/area@7.3.4": dependencies: - "@turf/helpers": 7.3.3 - "@turf/meta": 7.3.3 + "@turf/helpers": 7.3.4 + "@turf/meta": 7.3.4 "@types/geojson": 7946.0.16 tslib: 2.8.1 - "@turf/bbox@7.3.3": + "@turf/bbox@7.3.4": dependencies: - "@turf/helpers": 7.3.3 - "@turf/meta": 7.3.3 + "@turf/helpers": 7.3.4 + "@turf/meta": 7.3.4 "@types/geojson": 7946.0.16 tslib: 2.8.1 - "@turf/centroid@7.3.3": + "@turf/centroid@7.3.4": dependencies: - "@turf/helpers": 7.3.3 - "@turf/meta": 7.3.3 + "@turf/helpers": 7.3.4 + "@turf/meta": 7.3.4 "@types/geojson": 7946.0.16 tslib: 2.8.1 - "@turf/helpers@7.3.3": + "@turf/helpers@7.3.4": dependencies: "@types/geojson": 7946.0.16 tslib: 2.8.1 - "@turf/meta@7.3.3": + "@turf/meta@7.3.4": dependencies: - "@turf/helpers": 7.3.3 + "@turf/helpers": 7.3.4 "@types/geojson": 7946.0.16 tslib: 2.8.1 @@ -7813,9 +7874,9 @@ snapshots: "@types/geojson@7946.0.16": {} - "@types/hoist-non-react-statics@3.3.7(@types/react@18.3.27)": + "@types/hoist-non-react-statics@3.3.7(@types/react@18.3.28)": dependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 hoist-non-react-statics: 3.3.2 "@types/json-schema@7.0.15": {} @@ -7830,7 +7891,7 @@ snapshots: "@types/mapbox__point-geometry": 0.1.4 "@types/pbf": 3.0.5 - "@types/node@22.19.7": + "@types/node@22.19.13": dependencies: undici-types: 6.21.0 @@ -7840,22 +7901,22 @@ snapshots: "@types/prop-types@15.7.15": {} - "@types/react-dom@18.3.7(@types/react@18.3.27)": + "@types/react-dom@18.3.7(@types/react@18.3.28)": dependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 "@types/react-redux@7.1.34": dependencies: - "@types/hoist-non-react-statics": 3.3.7(@types/react@18.3.27) - "@types/react": 18.3.27 + "@types/hoist-non-react-statics": 3.3.7(@types/react@18.3.28) + "@types/react": 18.3.28 hoist-non-react-statics: 3.3.2 redux: 4.2.1 - "@types/react-transition-group@4.4.12(@types/react@18.3.27)": + "@types/react-transition-group@4.4.12(@types/react@18.3.28)": dependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 - "@types/react@18.3.27": + "@types/react@18.3.28": dependencies: "@types/prop-types": 15.7.15 csstype: 3.2.3 @@ -7866,18 +7927,18 @@ snapshots: "@types/utif@3.0.6": dependencies: - "@types/node": 22.19.7 + "@types/node": 22.19.13 "@types/zen-observable@0.8.0": {} - "@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)": + "@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)": dependencies: "@eslint-community/regexpp": 4.12.2 - "@typescript-eslint/parser": 8.54.0(eslint@8.57.1)(typescript@5.6.3) - "@typescript-eslint/scope-manager": 8.54.0 - "@typescript-eslint/type-utils": 8.54.0(eslint@8.57.1)(typescript@5.6.3) - "@typescript-eslint/utils": 8.54.0(eslint@8.57.1)(typescript@5.6.3) - "@typescript-eslint/visitor-keys": 8.54.0 + "@typescript-eslint/parser": 8.56.1(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/scope-manager": 8.56.1 + "@typescript-eslint/type-utils": 8.56.1(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/utils": 8.56.1(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/visitor-keys": 8.56.1 eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 @@ -7899,22 +7960,22 @@ snapshots: transitivePeerDependencies: - supports-color - "@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3)": + "@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3)": dependencies: - "@typescript-eslint/scope-manager": 8.54.0 - "@typescript-eslint/types": 8.54.0 - "@typescript-eslint/typescript-estree": 8.54.0(typescript@5.6.3) - "@typescript-eslint/visitor-keys": 8.54.0 + "@typescript-eslint/scope-manager": 8.56.1 + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/typescript-estree": 8.56.1(typescript@5.6.3) + "@typescript-eslint/visitor-keys": 8.56.1 debug: 4.4.3 eslint: 8.57.1 typescript: 5.6.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/project-service@8.54.0(typescript@5.6.3)": + "@typescript-eslint/project-service@8.56.1(typescript@5.6.3)": dependencies: - "@typescript-eslint/tsconfig-utils": 8.54.0(typescript@5.6.3) - "@typescript-eslint/types": 8.54.0 + "@typescript-eslint/tsconfig-utils": 8.56.1(typescript@5.6.3) + "@typescript-eslint/types": 8.56.1 debug: 4.4.3 typescript: 5.6.3 transitivePeerDependencies: @@ -7925,20 +7986,20 @@ snapshots: "@typescript-eslint/types": 6.21.0 "@typescript-eslint/visitor-keys": 6.21.0 - "@typescript-eslint/scope-manager@8.54.0": + "@typescript-eslint/scope-manager@8.56.1": dependencies: - "@typescript-eslint/types": 8.54.0 - "@typescript-eslint/visitor-keys": 8.54.0 + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/visitor-keys": 8.56.1 - "@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.6.3)": + "@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.6.3)": dependencies: typescript: 5.6.3 - "@typescript-eslint/type-utils@8.54.0(eslint@8.57.1)(typescript@5.6.3)": + "@typescript-eslint/type-utils@8.56.1(eslint@8.57.1)(typescript@5.6.3)": dependencies: - "@typescript-eslint/types": 8.54.0 - "@typescript-eslint/typescript-estree": 8.54.0(typescript@5.6.3) - "@typescript-eslint/utils": 8.54.0(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/typescript-estree": 8.56.1(typescript@5.6.3) + "@typescript-eslint/utils": 8.56.1(eslint@8.57.1)(typescript@5.6.3) debug: 4.4.3 eslint: 8.57.1 ts-api-utils: 2.4.0(typescript@5.6.3) @@ -7948,7 +8009,7 @@ snapshots: "@typescript-eslint/types@6.21.0": {} - "@typescript-eslint/types@8.54.0": {} + "@typescript-eslint/types@8.56.1": {} "@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3)": dependencies: @@ -7957,35 +8018,35 @@ snapshots: debug: 4.4.3 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 10.2.2 - semver: 7.7.3 + minimatch: 10.2.4 + semver: 7.7.4 ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/typescript-estree@8.54.0(typescript@5.6.3)": + "@typescript-eslint/typescript-estree@8.56.1(typescript@5.6.3)": dependencies: - "@typescript-eslint/project-service": 8.54.0(typescript@5.6.3) - "@typescript-eslint/tsconfig-utils": 8.54.0(typescript@5.6.3) - "@typescript-eslint/types": 8.54.0 - "@typescript-eslint/visitor-keys": 8.54.0 + "@typescript-eslint/project-service": 8.56.1(typescript@5.6.3) + "@typescript-eslint/tsconfig-utils": 8.56.1(typescript@5.6.3) + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/visitor-keys": 8.56.1 debug: 4.4.3 - minimatch: 10.2.2 - semver: 7.7.3 + minimatch: 10.2.4 + semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/utils@8.54.0(eslint@8.57.1)(typescript@5.6.3)": + "@typescript-eslint/utils@8.56.1(eslint@8.57.1)(typescript@5.6.3)": dependencies: "@eslint-community/eslint-utils": 4.9.1(eslint@8.57.1) - "@typescript-eslint/scope-manager": 8.54.0 - "@typescript-eslint/types": 8.54.0 - "@typescript-eslint/typescript-estree": 8.54.0(typescript@5.6.3) + "@typescript-eslint/scope-manager": 8.56.1 + "@typescript-eslint/types": 8.56.1 + "@typescript-eslint/typescript-estree": 8.56.1(typescript@5.6.3) eslint: 8.57.1 typescript: 5.6.3 transitivePeerDependencies: @@ -7996,18 +8057,18 @@ snapshots: "@typescript-eslint/types": 6.21.0 eslint-visitor-keys: 3.4.3 - "@typescript-eslint/visitor-keys@8.54.0": + "@typescript-eslint/visitor-keys@8.56.1": dependencies: - "@typescript-eslint/types": 8.54.0 - eslint-visitor-keys: 4.2.1 + "@typescript-eslint/types": 8.56.1 + eslint-visitor-keys: 5.0.1 "@ungap/structured-clone@1.3.0": {} - "@vitejs/plugin-react-swc@3.11.0(vite@5.4.21(@types/node@22.19.7)(terser@5.46.0))": + "@vitejs/plugin-react-swc@3.11.0(vite@5.4.21(@types/node@22.19.13)(terser@5.46.0))": dependencies: "@rolldown/pluginutils": 1.0.0-beta.27 - "@swc/core": 1.15.11 - vite: 5.4.21(@types/node@22.19.7)(terser@5.46.0) + "@swc/core": 1.15.18 + vite: 5.4.21(@types/node@22.19.13)(terser@5.46.0) transitivePeerDependencies: - "@swc/helpers" @@ -8019,13 +8080,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - "@vitest/mocker@3.2.4(vite@5.4.21(@types/node@22.19.7)(terser@5.46.0))": + "@vitest/mocker@3.2.4(vite@5.4.21(@types/node@22.19.13)(terser@5.46.0))": dependencies: "@vitest/spy": 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 5.4.21(@types/node@22.19.7)(terser@5.46.0) + vite: 5.4.21(@types/node@22.19.13)(terser@5.46.0) "@vitest/pretty-format@3.2.4": dependencies: @@ -8051,12 +8112,12 @@ snapshots: dependencies: "@vitest/utils": 3.2.4 fflate: 0.8.2 - flatted: 3.3.3 + flatted: 3.3.4 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.19.7)(@vitest/ui@3.2.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(terser@5.46.0) + vitest: 3.2.4(@types/node@22.19.13)(@vitest/ui@3.2.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(terser@5.46.0) "@vitest/utils@3.2.4": dependencies: @@ -8166,44 +8227,37 @@ snapshots: abs-svg-path@0.1.1: {} - acorn-import-phases@1.0.4(acorn@8.15.0): + acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn-jsx@5.3.2(acorn@8.15.0): + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn@7.4.1: {} - acorn@8.15.0: {} + acorn@8.16.0: {} agent-base@7.1.4: {} - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 - ajv-keywords@5.1.0(ajv@8.17.1): + ajv-keywords@5.1.0(ajv@8.18.0): dependencies: - ajv: 8.17.1 + ajv: 8.18.0 fast-deep-equal: 3.1.3 - ajv@6.12.6: + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.17.1: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.1.0 @@ -8357,13 +8411,15 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.11 - balanced-match@4.0.3: {} + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} base64-arraybuffer@1.0.2: {} base64-js@1.5.1: {} - baseline-browser-mapping@2.9.19: {} + baseline-browser-mapping@2.10.0: {} big-integer@1.6.52: {} @@ -8378,9 +8434,14 @@ snapshots: readable-stream: 2.3.8 safe-buffer: 5.2.1 - brace-expansion@5.0.2: + brace-expansion@1.1.12: dependencies: - balanced-match: 4.0.3 + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@5.0.4: + dependencies: + balanced-match: 4.0.4 braces@3.0.3: dependencies: @@ -8399,9 +8460,9 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001766 - electron-to-chromium: 1.5.283 + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001775 + electron-to-chromium: 1.5.302 node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -8437,7 +8498,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001766: {} + caniuse-lite@1.0.30001775: {} canvas-fit@1.5.0: dependencies: @@ -8517,6 +8578,8 @@ snapshots: component-emitter@2.0.0: {} + concat-map@0.0.1: {} + concat-stream@1.6.2: dependencies: buffer-from: 1.1.2 @@ -8568,7 +8631,7 @@ snapshots: css-global-keywords@1.0.1: {} - css-loader@7.1.3(webpack@5.104.1): + css-loader@7.1.4(webpack@5.104.1): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -8577,7 +8640,7 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.6) postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 - semver: 7.7.3 + semver: 7.7.4 optionalDependencies: webpack: 5.104.1 @@ -8765,7 +8828,7 @@ snapshots: earcut@3.0.2: {} - electron-to-chromium@1.5.283: {} + electron-to-chromium@1.5.302: {} element-size@1.1.1: {} @@ -8779,7 +8842,7 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.18.4: + enhanced-resolve@5.20.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.0 @@ -8920,31 +8983,34 @@ snapshots: es6-iterator: 2.0.3 es6-symbol: 3.1.4 - esbuild@0.21.5: + esbuild@0.27.3: optionalDependencies: - "@esbuild/aix-ppc64": 0.21.5 - "@esbuild/android-arm": 0.21.5 - "@esbuild/android-arm64": 0.21.5 - "@esbuild/android-x64": 0.21.5 - "@esbuild/darwin-arm64": 0.21.5 - "@esbuild/darwin-x64": 0.21.5 - "@esbuild/freebsd-arm64": 0.21.5 - "@esbuild/freebsd-x64": 0.21.5 - "@esbuild/linux-arm": 0.21.5 - "@esbuild/linux-arm64": 0.21.5 - "@esbuild/linux-ia32": 0.21.5 - "@esbuild/linux-loong64": 0.21.5 - "@esbuild/linux-mips64el": 0.21.5 - "@esbuild/linux-ppc64": 0.21.5 - "@esbuild/linux-riscv64": 0.21.5 - "@esbuild/linux-s390x": 0.21.5 - "@esbuild/linux-x64": 0.21.5 - "@esbuild/netbsd-x64": 0.21.5 - "@esbuild/openbsd-x64": 0.21.5 - "@esbuild/sunos-x64": 0.21.5 - "@esbuild/win32-arm64": 0.21.5 - "@esbuild/win32-ia32": 0.21.5 - "@esbuild/win32-x64": 0.21.5 + "@esbuild/aix-ppc64": 0.27.3 + "@esbuild/android-arm": 0.27.3 + "@esbuild/android-arm64": 0.27.3 + "@esbuild/android-x64": 0.27.3 + "@esbuild/darwin-arm64": 0.27.3 + "@esbuild/darwin-x64": 0.27.3 + "@esbuild/freebsd-arm64": 0.27.3 + "@esbuild/freebsd-x64": 0.27.3 + "@esbuild/linux-arm": 0.27.3 + "@esbuild/linux-arm64": 0.27.3 + "@esbuild/linux-ia32": 0.27.3 + "@esbuild/linux-loong64": 0.27.3 + "@esbuild/linux-mips64el": 0.27.3 + "@esbuild/linux-ppc64": 0.27.3 + "@esbuild/linux-riscv64": 0.27.3 + "@esbuild/linux-s390x": 0.27.3 + "@esbuild/linux-x64": 0.27.3 + "@esbuild/netbsd-arm64": 0.27.3 + "@esbuild/netbsd-x64": 0.27.3 + "@esbuild/openbsd-arm64": 0.27.3 + "@esbuild/openbsd-x64": 0.27.3 + "@esbuild/openharmony-arm64": 0.27.3 + "@esbuild/sunos-x64": 0.27.3 + "@esbuild/win32-arm64": 0.27.3 + "@esbuild/win32-ia32": 0.27.3 + "@esbuild/win32-x64": 0.27.3 escalade@3.2.0: {} @@ -8960,20 +9026,20 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1): dependencies: confusing-browser-globals: 1.0.11 eslint: 8.57.1 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1) object.assign: 4.1.7 object.entries: 1.1.9 semver: 6.3.1 - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) @@ -8988,17 +9054,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - "@typescript-eslint/parser": 8.54.0(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/parser": 8.56.1(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1): dependencies: "@rtsao/scc": 1.1.0 array-includes: 3.1.9 @@ -9009,11 +9075,11 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 - minimatch: 10.2.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 @@ -9021,7 +9087,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - "@typescript-eslint/parser": 8.54.0(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/parser": 8.56.1(eslint@8.57.1)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -9041,7 +9107,7 @@ snapshots: hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 - minimatch: 10.2.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 @@ -9066,12 +9132,12 @@ snapshots: estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 - minimatch: 10.2.2 + minimatch: 3.1.5 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.6 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 @@ -9093,7 +9159,7 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@5.0.1: {} eslint@8.57.1: dependencies: @@ -9105,7 +9171,7 @@ snapshots: "@humanwhocodes/module-importer": 1.0.1 "@nodelib/fs.walk": 1.2.8 "@ungap/structured-clone": 1.3.0 - ajv: 6.12.6 + ajv: 6.14.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 @@ -9130,7 +9196,7 @@ snapshots: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 10.2.2 + minimatch: 3.1.5 natural-compare: 1.4.0 optionator: 0.9.4 strip-ansi: 6.0.1 @@ -9147,8 +9213,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -9236,11 +9302,11 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.3 + flatted: 3.3.4 keyv: 4.5.4 rimraf: 3.0.2 - flatted@3.3.3: {} + flatted@3.3.4: {} flatten-vertex-data@1.0.2: dependencies: @@ -9364,7 +9430,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 10.2.2 + minimatch: 3.1.5 once: 1.4.0 path-is-absolute: 1.0.1 @@ -9733,7 +9799,7 @@ snapshots: isexe@2.0.0: {} - isexe@3.1.1: {} + isexe@3.1.5: {} iterator.prototype@1.1.5: dependencies: @@ -9746,7 +9812,7 @@ snapshots: jest-worker@27.5.1: dependencies: - "@types/node": 22.19.7 + "@types/node": 22.19.13 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9954,9 +10020,13 @@ snapshots: min-indent@1.0.1: {} - minimatch@10.2.2: + minimatch@10.2.4: + dependencies: + brace-expansion: 5.0.4 + + minimatch@3.1.5: dependencies: - brace-expansion: 5.0.2 + brace-expansion: 1.1.12 minimist@1.2.8: {} @@ -10000,7 +10070,7 @@ snapshots: dependencies: debug: 3.2.7 iconv-lite: 0.4.24 - sax: 1.4.4 + sax: 1.5.0 transitivePeerDependencies: - supports-color @@ -10008,6 +10078,13 @@ snapshots: next-tick@1.1.0: {} + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-gyp-build@4.8.4: {} node-releases@2.0.27: {} @@ -10116,7 +10193,7 @@ snapshots: parse-json@5.2.0: dependencies: - "@babel/code-frame": 7.28.6 + "@babel/code-frame": 7.29.0 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -10170,9 +10247,9 @@ snapshots: "@plotly/d3-sankey": 0.7.2 "@plotly/d3-sankey-circular": 0.33.1 "@plotly/mapbox-gl": 1.13.4(mapbox-gl@1.13.3) - "@turf/area": 7.3.3 - "@turf/bbox": 7.3.3 - "@turf/centroid": 7.3.3 + "@turf/area": 7.3.4 + "@turf/bbox": 7.3.4 + "@turf/centroid": 7.3.4 base64-arraybuffer: 1.0.2 canvas-fit: 1.5.0 color-alpha: 1.0.4 @@ -10180,7 +10257,7 @@ snapshots: color-parse: 2.0.0 color-rgba: 2.1.1 country-regex: 1.1.0 - css-loader: 7.1.3(webpack@5.104.1) + css-loader: 7.1.4(webpack@5.104.1) d3-force: 1.2.1 d3-format: 1.4.5 d3-geo: 1.12.1 @@ -10332,10 +10409,6 @@ snapshots: dependencies: performance-now: 2.1.0 - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -10512,9 +10585,9 @@ snapshots: regl@2.1.1: {} - rehackt@0.1.0(@types/react@18.3.27)(react@18.3.1): + rehackt@0.1.0(@types/react@18.3.28)(react@18.3.1): optionalDependencies: - "@types/react": 18.3.27 + "@types/react": 18.3.28 react: 18.3.1 remove-accents@0.5.0: {} @@ -10539,9 +10612,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: + resolve@2.0.0-next.6: dependencies: + es-errors: 1.3.0 is-core-module: 2.16.1 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10553,35 +10629,35 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.57.1: + rollup@4.59.0: dependencies: "@types/estree": 1.0.8 optionalDependencies: - "@rollup/rollup-android-arm-eabi": 4.57.1 - "@rollup/rollup-android-arm64": 4.57.1 - "@rollup/rollup-darwin-arm64": 4.57.1 - "@rollup/rollup-darwin-x64": 4.57.1 - "@rollup/rollup-freebsd-arm64": 4.57.1 - "@rollup/rollup-freebsd-x64": 4.57.1 - "@rollup/rollup-linux-arm-gnueabihf": 4.57.1 - "@rollup/rollup-linux-arm-musleabihf": 4.57.1 - "@rollup/rollup-linux-arm64-gnu": 4.57.1 - "@rollup/rollup-linux-arm64-musl": 4.57.1 - "@rollup/rollup-linux-loong64-gnu": 4.57.1 - "@rollup/rollup-linux-loong64-musl": 4.57.1 - "@rollup/rollup-linux-ppc64-gnu": 4.57.1 - "@rollup/rollup-linux-ppc64-musl": 4.57.1 - "@rollup/rollup-linux-riscv64-gnu": 4.57.1 - "@rollup/rollup-linux-riscv64-musl": 4.57.1 - "@rollup/rollup-linux-s390x-gnu": 4.57.1 - "@rollup/rollup-linux-x64-gnu": 4.57.1 - "@rollup/rollup-linux-x64-musl": 4.57.1 - "@rollup/rollup-openbsd-x64": 4.57.1 - "@rollup/rollup-openharmony-arm64": 4.57.1 - "@rollup/rollup-win32-arm64-msvc": 4.57.1 - "@rollup/rollup-win32-ia32-msvc": 4.57.1 - "@rollup/rollup-win32-x64-gnu": 4.57.1 - "@rollup/rollup-win32-x64-msvc": 4.57.1 + "@rollup/rollup-android-arm-eabi": 4.59.0 + "@rollup/rollup-android-arm64": 4.59.0 + "@rollup/rollup-darwin-arm64": 4.59.0 + "@rollup/rollup-darwin-x64": 4.59.0 + "@rollup/rollup-freebsd-arm64": 4.59.0 + "@rollup/rollup-freebsd-x64": 4.59.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.59.0 + "@rollup/rollup-linux-arm-musleabihf": 4.59.0 + "@rollup/rollup-linux-arm64-gnu": 4.59.0 + "@rollup/rollup-linux-arm64-musl": 4.59.0 + "@rollup/rollup-linux-loong64-gnu": 4.59.0 + "@rollup/rollup-linux-loong64-musl": 4.59.0 + "@rollup/rollup-linux-ppc64-gnu": 4.59.0 + "@rollup/rollup-linux-ppc64-musl": 4.59.0 + "@rollup/rollup-linux-riscv64-gnu": 4.59.0 + "@rollup/rollup-linux-riscv64-musl": 4.59.0 + "@rollup/rollup-linux-s390x-gnu": 4.59.0 + "@rollup/rollup-linux-x64-gnu": 4.59.0 + "@rollup/rollup-linux-x64-musl": 4.59.0 + "@rollup/rollup-openbsd-x64": 4.59.0 + "@rollup/rollup-openharmony-arm64": 4.59.0 + "@rollup/rollup-win32-arm64-msvc": 4.59.0 + "@rollup/rollup-win32-ia32-msvc": 4.59.0 + "@rollup/rollup-win32-x64-gnu": 4.59.0 + "@rollup/rollup-win32-x64-msvc": 4.59.0 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} @@ -10617,7 +10693,7 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.4.4: {} + sax@1.5.0: {} saxes@6.0.0: dependencies: @@ -10630,17 +10706,15 @@ snapshots: schema-utils@4.3.3: dependencies: "@types/json-schema": 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + ajv: 8.18.0 + ajv-formats: 2.1.1(ajv@8.18.0) + ajv-keywords: 5.1.0(ajv@8.18.0) semver@6.3.1: {} - semver@7.7.3: {} + semver@7.7.4: {} - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 + serialize-javascript@7.0.3: {} set-function-length@1.2.2: dependencies: @@ -10890,14 +10964,14 @@ snapshots: "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - serialize-javascript: 6.0.2 + serialize-javascript: 7.0.3 terser: 5.46.0 webpack: 5.104.1 terser@5.46.0: dependencies: "@jridgewell/source-map": 0.3.11 - acorn: 8.15.0 + acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -11039,12 +11113,12 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.54.0(eslint@8.57.1)(typescript@5.6.3): + typescript-eslint@8.56.1(eslint@8.57.1)(typescript@5.6.3): dependencies: - "@typescript-eslint/eslint-plugin": 8.54.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) - "@typescript-eslint/parser": 8.54.0(eslint@8.57.1)(typescript@5.6.3) - "@typescript-eslint/typescript-estree": 8.54.0(typescript@5.6.3) - "@typescript-eslint/utils": 8.54.0(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/eslint-plugin": 8.56.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/parser": 8.56.1(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/typescript-estree": 8.56.1(typescript@5.6.3) + "@typescript-eslint/utils": 8.56.1(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 typescript: 5.6.3 transitivePeerDependencies: @@ -11096,13 +11170,13 @@ snapshots: uuid@9.0.1: {} - vite-node@3.2.4(@types/node@22.19.7)(terser@5.46.0): + vite-node@3.2.4(@types/node@22.19.13)(terser@5.46.0): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 5.4.21(@types/node@22.19.7)(terser@5.46.0) + vite: 5.4.21(@types/node@22.19.13)(terser@5.46.0) transitivePeerDependencies: - "@types/node" - less @@ -11114,21 +11188,21 @@ snapshots: - supports-color - terser - vite@5.4.21(@types/node@22.19.7)(terser@5.46.0): + vite@5.4.21(@types/node@22.19.13)(terser@5.46.0): dependencies: - esbuild: 0.21.5 + esbuild: 0.27.3 postcss: 8.5.6 - rollup: 4.57.1 + rollup: 4.59.0 optionalDependencies: - "@types/node": 22.19.7 + "@types/node": 22.19.13 fsevents: 2.3.3 terser: 5.46.0 - vitest@3.2.4(@types/node@22.19.7)(@vitest/ui@3.2.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(terser@5.46.0): + vitest@3.2.4(@types/node@22.19.13)(@vitest/ui@3.2.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(terser@5.46.0): dependencies: "@types/chai": 5.2.3 "@vitest/expect": 3.2.4 - "@vitest/mocker": 3.2.4(vite@5.4.21(@types/node@22.19.7)(terser@5.46.0)) + "@vitest/mocker": 3.2.4(vite@5.4.21(@types/node@22.19.13)(terser@5.46.0)) "@vitest/pretty-format": 3.2.4 "@vitest/runner": 3.2.4 "@vitest/snapshot": 3.2.4 @@ -11146,11 +11220,11 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 5.4.21(@types/node@22.19.7)(terser@5.46.0) - vite-node: 3.2.4(@types/node@22.19.7)(terser@5.46.0) + vite: 5.4.21(@types/node@22.19.13)(terser@5.46.0) + vite-node: 3.2.4(@types/node@22.19.13)(terser@5.46.0) why-is-node-running: 2.3.0 optionalDependencies: - "@types/node": 22.19.7 + "@types/node": 22.19.13 "@vitest/ui": 3.2.4(vitest@3.2.4) jsdom: 26.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -11179,7 +11253,7 @@ snapshots: espree: 9.6.1 esquery: 1.7.0 lodash: 4.17.23 - semver: 7.7.3 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -11200,7 +11274,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-sources@3.3.3: {} + webpack-sources@3.3.4: {} webpack@5.104.1: dependencies: @@ -11210,11 +11284,11 @@ snapshots: "@webassemblyjs/ast": 1.14.1 "@webassemblyjs/wasm-edit": 1.14.1 "@webassemblyjs/wasm-parser": 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.4 + enhanced-resolve: 5.20.0 es-module-lexer: 2.0.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -11228,7 +11302,7 @@ snapshots: tapable: 2.3.0 terser-webpack-plugin: 5.3.16(webpack@5.104.1) watchpack: 2.5.1 - webpack-sources: 3.3.3 + webpack-sources: 3.3.4 transitivePeerDependencies: - "@swc/core" - esbuild @@ -11292,7 +11366,7 @@ snapshots: which@4.0.0: dependencies: - isexe: 3.1.1 + isexe: 3.1.5 why-is-node-running@2.3.0: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index efc037a..793f90b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,12 @@ +ignoredBuiltDependencies: + - "@swc/core" + onlyBuiltDependencies: - esbuild + +overrides: + ajv@>=7.0.0-alpha.0 <8.18.0: ">=8.18.0" + esbuild@<=0.24.2: ">=0.25.0" + minimatch@>=9.0.0 <9.0.6: ">=9.0.6" + minimatch@>=9.0.0 <9.0.7: ">=9.0.7" + serialize-javascript@<=7.0.2: ">=7.0.3" From 2fd086c09decfdc6351d7c468b0e2b35970c9170 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Wed, 4 Mar 2026 12:11:29 +0000 Subject: [PATCH 14/15] Created tests for the fetching of beamCenterQuery --- src/context/beamcenter/BeamCenterContext.ts | 13 +- .../OavMover/OAVStageController.test.tsx | 119 ++++++++++++++++++ src/screens/OavMover/OAVStageController.tsx | 2 +- 3 files changed, 128 insertions(+), 6 deletions(-) create mode 100644 src/screens/OavMover/OAVStageController.test.tsx diff --git a/src/context/beamcenter/BeamCenterContext.ts b/src/context/beamcenter/BeamCenterContext.ts index 37ce7e2..6552751 100644 --- a/src/context/beamcenter/BeamCenterContext.ts +++ b/src/context/beamcenter/BeamCenterContext.ts @@ -1,8 +1,11 @@ import { createContext } from "react"; -import { UseQueryResult } from "react-query"; -type BeamCenterQueryResult = UseQueryResult; +type BeamCenterQueryResult = { + data: string | null | undefined; + refetch: () => void; +}; -export const BeamCenterContext = createContext( - null as unknown as BeamCenterQueryResult, -); +export const BeamCenterContext = createContext({ + data: null, + refetch: () => {}, +}); diff --git a/src/screens/OavMover/OAVStageController.test.tsx b/src/screens/OavMover/OAVStageController.test.tsx new file mode 100644 index 0000000..e4acd21 --- /dev/null +++ b/src/screens/OavMover/OAVStageController.test.tsx @@ -0,0 +1,119 @@ +import { renderHook } from "@testing-library/react"; +import { describe, it, vi, beforeEach, expect } from "vitest"; +import { useZoomAndCrosshair } from "./OAVStageController"; +import { useParsedPvConnection } from "#/pv/util.ts"; +import { BeamCenterContext } from "#/context/beamcenter/BeamCenterContext.ts"; +import type { RawValue } from "#/pv/types.ts"; + +vi.mock("#/pv/util.ts", () => ({ + ...vi.importActual("#/pv/util.ts"), + useParsedPvConnection: vi.fn(), + forceString: (x: RawValue | string | number) => String(x), +})); + +type validateZoomTestType = { + zoomLevel: string; + expectedX: number; + expectedY: number; +}; + +describe("useZoomAndCrosshair", () => { + const mockRefetch = vi.fn(); + const mockBeamCenterData = [ + "zoomLevel = 1.0", + "crosshairX = 561", + "crosshairY = 321", + "topLeftX = 611", + "topLeftY = 441", + "bottomRightX = 631", + "bottomRightY = 461", + "zoomLevel = 2.0", + "crosshairX = 562", + "crosshairY = 322", + "topLeftX = 612", + "topLeftY = 442", + "bottomRightX = 632", + "bottomRightY = 462", + "zoomLevel = 3.0", + "crosshairX = 563", + "crosshairY = 323", + "topLeftX = 613", + "topLeftY = 443", + "bottomRightX = 633", + "bottomRightY = 463", + ].join("\n"); + + beforeEach(() => { + vi.mocked(useParsedPvConnection).mockReturnValue("2.0"); + }); + + it.each` + zoomLevel | expectedX | expectedY + ${"1.0"} | ${561} | ${321} + ${"2.0"} | ${562} | ${322} + ${"3.0"} | ${563} | ${323} + `( + "returns ( $expectedX , $expectedY ) for zoom level '$zoomLevel'", + ({ zoomLevel, expectedX, expectedY }: validateZoomTestType) => { + vi.mocked(useParsedPvConnection).mockReturnValue(zoomLevel); + const wrapper = ({ children }: { children: React.ReactNode }) => ( + + {children} + + ); + + const { result } = renderHook(() => useZoomAndCrosshair(), { wrapper }); + + expect(result.current.crosshairX).toBe(expectedX); + expect(result.current.crosshairY).toBe(expectedY); + }, + ); + + it("returns NaN for crosshair if zoomIndex is not found", () => { + vi.mocked(useParsedPvConnection).mockReturnValue("99.0"); + const wrapper = ({ children }: { children: React.ReactNode }) => ( + + {children} + + ); + + const { result } = renderHook(() => useZoomAndCrosshair(), { wrapper }); + + expect(result.current.crosshairX).toBeNaN(); + expect(result.current.crosshairY).toBeNaN(); + }); + + it("returns NaN if beamCenter data is missing", () => { + const wrapper = ({ children }: { children: React.ReactNode }) => ( + + {children} + + ); + + const { result } = renderHook(() => useZoomAndCrosshair(), { wrapper }); + + expect(result.current.crosshairX).toBeNaN(); + expect(result.current.crosshairY).toBeNaN(); + }); + + it("calls refetch when zoom level changes", () => { + const wrapper = ({ children }: { children: React.ReactNode }) => ( + + {children} + + ); + + renderHook(() => useZoomAndCrosshair(), { wrapper }); + vi.mocked(useParsedPvConnection).mockReturnValue("3.0"); + expect(mockRefetch).toHaveBeenCalled(); + }); +}); diff --git a/src/screens/OavMover/OAVStageController.tsx b/src/screens/OavMover/OAVStageController.tsx index 373b091..4bbff41 100644 --- a/src/screens/OavMover/OAVStageController.tsx +++ b/src/screens/OavMover/OAVStageController.tsx @@ -12,7 +12,7 @@ import { BeamCenterContext } from "#/context/beamcenter/BeamCenterContext.ts"; const ZOOM_PV = "ca://BL24I-EA-OAV-01:FZOOM:MP:SELECT"; const BEAM_CENTER_LINES_PER_ZOOM = 7; -function useZoomAndCrosshair() { +export function useZoomAndCrosshair() { const beamCenterQuery = useContext(BeamCenterContext); const currentZoomValue = String( useParsedPvConnection({ From 1921d1503f49d7af1d47639e8fc9df528f90ec5f Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Thu, 5 Mar 2026 12:00:27 +0000 Subject: [PATCH 15/15] Audit issue fix --- package.json | 3 ++- pnpm-lock.yaml | 22 ++++++---------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 7b3aa46..bccf2c5 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,8 @@ "ajv": "^6.12.6", "esbuild@<=0.24.2": ">=0.25.0", "minimatch@>=9.0.0 <9.0.6": ">=9.0.6", - "minimatch@>=9.0.0 <9.0.7": ">=9.0.7" + "minimatch@>=9.0.0 <9.0.7": ">=9.0.7", + "serialize-javascript@<=7.0.2": ">=7.0.3" } }, "imports": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f5c182..d16d05f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,7 @@ overrides: esbuild@<=0.24.2: ">=0.25.0" minimatch@>=9.0.0 <9.0.6: ">=9.0.6" minimatch@>=9.0.0 <9.0.7: ">=9.0.7" + serialize-javascript@<=7.0.2: ">=7.0.3" importers: .: @@ -5454,12 +5455,6 @@ packages: integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==, } - randombytes@2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, - } - react-dom@18.3.1: resolution: { @@ -5846,11 +5841,12 @@ packages: engines: { node: ">=10" } hasBin: true - serialize-javascript@6.0.2: + serialize-javascript@7.0.4: resolution: { - integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, + integrity: sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==, } + engines: { node: ">=20.0.0" } set-function-length@1.2.2: resolution: @@ -10377,10 +10373,6 @@ snapshots: dependencies: performance-now: 2.1.0 - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -10684,9 +10676,7 @@ snapshots: semver@7.7.4: {} - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 + serialize-javascript@7.0.4: {} set-function-length@1.2.2: dependencies: @@ -10936,7 +10926,7 @@ snapshots: "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - serialize-javascript: 6.0.2 + serialize-javascript: 7.0.4 terser: 5.46.0 webpack: 5.104.1