diff --git a/.gitignore b/.gitignore
index 71b8cb8..1da02bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-frontend/node_modules
-frontend/.parcel-cache
+node_modules
+.parcel-cache
public/assets/*
!public/assets/.gitkeep
diff --git a/frontend/components/App.js b/frontend/components/App.js
new file mode 100644
index 0000000..144886d
--- /dev/null
+++ b/frontend/components/App.js
@@ -0,0 +1,45 @@
+import { useState } from 'react';
+import CssBaseline from '@mui/material/CssBaseline';
+import Container from '@mui/material/Container';
+import { ThemeProvider, createTheme } from '@mui/material/styles';
+import { SnackbarProvider } from 'notistack';
+
+import NavbarComponent from './Navbar';
+import SearchComponent from './Search';
+import ResultComponent from './Result';
+
+const darkTheme = createTheme({
+ palette: {
+ mode: 'dark',
+ },
+});
+
+export default function App() {
+ const [zip, setZip] = useState(0);
+ const [city, setCity] = useState("");
+
+ function handleSearch(value, zip, city) {
+ setZip(zip);
+ setCity(city);
+
+ if (window.history.replaceState) {
+ value = encodeURIComponent(value);
+ window.history.replaceState({}, null, `?s=${value}`);
+ }
+ }
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/components/Navbar.js b/frontend/components/Navbar.js
new file mode 100644
index 0000000..c809aea
--- /dev/null
+++ b/frontend/components/Navbar.js
@@ -0,0 +1,25 @@
+import AppBar from '@mui/material/AppBar';
+import Box from '@mui/material/Box';
+import Toolbar from '@mui/material/Toolbar';
+import Typography from '@mui/material/Typography';
+import Place from '@mui/icons-material/Place';
+import Container from '@mui/material/Container';
+
+function Component() {
+ return (
+
+
+
+
+
+
+ Chercher un code postal en Suisse
+
+
+
+
+
+ );
+}
+
+export default Component;
diff --git a/frontend/components/Result.js b/frontend/components/Result.js
new file mode 100644
index 0000000..d9b9da6
--- /dev/null
+++ b/frontend/components/Result.js
@@ -0,0 +1,77 @@
+import { useEffect, useState } from 'react';
+import axios from 'axios';
+import List from '@mui/material/List';
+import ListItem from '@mui/material/ListItem';
+import ListItemButton from '@mui/material/ListItemButton';
+import ListItemText from '@mui/material/ListItemText';
+import IconButton from '@mui/material/IconButton';
+import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded';
+import { useSnackbar } from 'notistack';
+
+function Component({zip, city}) {
+ const [zips, setZips] = useState([]);
+ const { enqueueSnackbar, closeSnackbar } = useSnackbar();
+
+ const fetchResults = (zip, city) => {
+ city = encodeURIComponent(city);
+ axios.get(`/api/query.php?zip=${zip}&city=${city}`)
+ .then(function (response) {
+ if (response.data.zips) {
+ setZips(response.data.zips);
+ }
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+
+ const copyValue = (value) => {
+ navigator.clipboard.writeText(value);
+ enqueueSnackbar("Copié dans le presse-papier", {
+ autoHideDuration: 2000,
+ variant: "success",
+ anchorOrigin: {
+ vertical: "top",
+ horizontal: "center"
+ }
+ });
+ }
+
+ useEffect(() => {
+ if (zip > 0 || city.length >= 4) {
+ fetchResults(zip, city);
+ } else {
+ setZips([]);
+ }
+ }, [zip, city]);
+
+ return (
+ <>
+
+ {zips.map((zip, i) => {
+ return (
+ {copyValue(`${zip.zip} ${zip.city}`)}}
+ >
+
+
+ }
+ disablePadding
+ >
+ {copyValue(`${zip.zip} ${zip.city}`)}}>
+
+
+
+ );
+ })}
+
+ >
+ );
+}
+
+export default Component;
\ No newline at end of file
diff --git a/frontend/src/components/Search.js b/frontend/components/Search.js
similarity index 55%
rename from frontend/src/components/Search.js
rename to frontend/components/Search.js
index 1b22163..18916f7 100644
--- a/frontend/src/components/Search.js
+++ b/frontend/components/Search.js
@@ -1,7 +1,7 @@
-import { useEffect, useState } from 'npm:react';
-import Form from 'react-bootstrap/Form';
-import InputGroup from 'react-bootstrap/InputGroup';
-import { Search } from 'react-bootstrap-icons';
+import { useEffect, useState } from 'react';
+import InputAdornment from '@mui/material/InputAdornment';
+import TextField from '@mui/material/TextField';
+import Search from '@mui/icons-material/Search';
function Component({callback}) {
const [searchValue, setSearchValue] = useState("");
@@ -41,16 +41,26 @@ function Component({callback}) {
return (
<>
-
-
-
-
-
-
+
+
+
+ )
+ }
+ }}
+ sx={{
+ width: "100%",
+ marginTop: "1.5rem",
+ marginBottom: "1.5rem"
+ }}
+ />
>
);
}
diff --git a/frontend/src/main.css b/frontend/main.css
similarity index 100%
rename from frontend/src/main.css
rename to frontend/main.css
diff --git a/frontend/main.js b/frontend/main.js
new file mode 100644
index 0000000..a1d569a
--- /dev/null
+++ b/frontend/main.js
@@ -0,0 +1,12 @@
+import '@fontsource/roboto/300.css';
+import '@fontsource/roboto/400.css';
+import '@fontsource/roboto/500.css';
+import '@fontsource/roboto/700.css';
+import { createRoot } from 'react-dom/client';
+
+import './main.css';
+import App from './components/App';
+
+const container = document.getElementById("app");
+const root = createRoot(container);
+root.render();
diff --git a/frontend/src/components/App.js b/frontend/src/components/App.js
deleted file mode 100644
index 2433924..0000000
--- a/frontend/src/components/App.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import { useState } from 'react';
-import Container from 'react-bootstrap/Container';
-import NavbarComponent from './Navbar';
-import SearchComponent from './Search';
-import ResultComponent from './Result';
-
-export function App() {
- const [zip, setZip] = useState(0);
- const [city, setCity] = useState("");
-
- function handleSearch(value, zip, city) {
- setZip(zip);
- setCity(city);
-
- if (window.history.replaceState) {
- value = encodeURIComponent(value);
- window.history.replaceState({}, null, `?s=${value}`);
- }
- }
-
- return (
- <>
-
-
-
-
-
-
-
- >
- );
-}
diff --git a/frontend/src/components/Navbar.js b/frontend/src/components/Navbar.js
deleted file mode 100644
index ca3e09b..0000000
--- a/frontend/src/components/Navbar.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import Container from 'react-bootstrap/Container';
-import Navbar from 'react-bootstrap/Navbar';
-
-function Component() {
- return (
-
-
- Codes postaux | Suisse
-
-
- );
-}
-
-export default Component;
diff --git a/frontend/src/components/Result.js b/frontend/src/components/Result.js
deleted file mode 100644
index 250ca1f..0000000
--- a/frontend/src/components/Result.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import { useEffect, useState } from 'react';
-import axios from 'axios';
-import { Card } from 'react-bootstrap';
-
-function Component({zip, city}) {
- const [zips, setZips] = useState(Object);
-
- const fetchResults = (zip, city) => {
- city = encodeURIComponent(city);
- axios.get(`/api/query.php?zip=${zip}&city=${city}`)
- .then(function (response) {
- if (response.data.zips) {
- setZips(response.data.zips);
- }
- })
- .catch(function (error) {
- console.log(error);
- });
- }
-
- useEffect(() => {
- if (zip > 0 || city.length >= 4) {
- fetchResults(zip, city);
- } else {
- setZips((new Object));
- }
- }, [zip, city]);
-
- return (
- <>
- {Object.entries(zips).map((zip, i) => {
- return (
-
- {zip[0]} {zip[1]}
-
- )
- })}
- >
- );
-}
-
-export default Component;
\ No newline at end of file
diff --git a/frontend/src/main.js b/frontend/src/main.js
deleted file mode 100644
index fb013d6..0000000
--- a/frontend/src/main.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import "npm:bootstrap/dist/css/bootstrap.css"
-import "./main.css"
-
-import { createRoot } from "react-dom/client";
-import { App } from "./components/App";
-
-const container = document.getElementById("app");
-const root = createRoot(container);
-root.render();
diff --git a/frontend/package.json b/package.json
similarity index 71%
rename from frontend/package.json
rename to package.json
index b1353a1..a8b672c 100644
--- a/frontend/package.json
+++ b/package.json
@@ -2,10 +2,10 @@
"name": "frontend",
"version": "1.0.0",
"description": "",
- "source": "src/main.js",
+ "source": "frontend/main.js",
"targets": {
"default": {
- "distDir": "../public/assets"
+ "distDir": "public/assets"
}
},
"scripts": {
@@ -19,7 +19,7 @@
"devDependencies": {
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
- "buffer": "^5.5.0||^6.0.0",
+ "buffer": "^6.0.3",
"parcel": "^2.13.3",
"process": "^0.11.10"
},
@@ -35,11 +35,14 @@
]
},
"dependencies": {
+ "@emotion/react": "^11.14.0",
+ "@emotion/styled": "^11.14.0",
+ "@fontsource/roboto": "^5.2.5",
+ "@mui/icons-material": "^6.4.6",
+ "@mui/material": "^6.4.6",
"axios": "^1.8.1",
- "bootstrap": "^5.3.3",
+ "notistack": "^3.0.2",
"react": "^19.0.0",
- "react-bootstrap": "^2.10.9",
- "react-bootstrap-icons": "^1.11.5",
"react-dom": "^19.0.0"
}
}
diff --git a/frontend/pnpm-lock.yaml b/pnpm-lock.yaml
similarity index 82%
rename from frontend/pnpm-lock.yaml
rename to pnpm-lock.yaml
index e024c5c..69afa4f 100644
--- a/frontend/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,21 +8,30 @@ importers:
.:
dependencies:
+ '@emotion/react':
+ specifier: ^11.14.0
+ version: 11.14.0(@types/react@19.0.10)(react@19.0.0)
+ '@emotion/styled':
+ specifier: ^11.14.0
+ version: 11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)
+ '@fontsource/roboto':
+ specifier: ^5.2.5
+ version: 5.2.5
+ '@mui/icons-material':
+ specifier: ^6.4.6
+ version: 6.4.6(@mui/material@6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)
+ '@mui/material':
+ specifier: ^6.4.6
+ version: 6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
axios:
specifier: ^1.8.1
version: 1.8.1
- bootstrap:
- specifier: ^5.3.3
- version: 5.3.3(@popperjs/core@2.11.8)
+ notistack:
+ specifier: ^3.0.2
+ version: 3.0.2(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react:
specifier: ^19.0.0
version: 19.0.0
- react-bootstrap:
- specifier: ^2.10.9
- version: 2.10.9(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
- react-bootstrap-icons:
- specifier: ^1.11.5
- version: 1.11.5(react@19.0.0)
react-dom:
specifier: ^19.0.0
version: 19.0.0(react@19.0.0)
@@ -34,7 +43,7 @@ importers:
specifier: ^19.0.4
version: 19.0.4(@types/react@19.0.10)
buffer:
- specifier: ^5.5.0||^6.0.0
+ specifier: ^6.0.3
version: 6.0.3
parcel:
specifier: ^2.13.3
@@ -49,14 +58,100 @@ packages:
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@7.26.9':
+ resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.25.9':
+ resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.25.9':
+ resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
+ '@babel/parser@7.26.9':
+ resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/runtime@7.26.9':
resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==}
engines: {node: '>=6.9.0'}
+ '@babel/template@7.26.9':
+ resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.26.9':
+ resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.26.9':
+ resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
+ engines: {node: '>=6.9.0'}
+
+ '@emotion/babel-plugin@11.13.5':
+ resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==}
+
+ '@emotion/cache@11.14.0':
+ resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==}
+
+ '@emotion/hash@0.9.2':
+ resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
+
+ '@emotion/is-prop-valid@1.3.1':
+ resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==}
+
+ '@emotion/memoize@0.9.0':
+ resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==}
+
+ '@emotion/react@11.14.0':
+ resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@emotion/serialize@1.3.3':
+ resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==}
+
+ '@emotion/sheet@1.4.0':
+ resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==}
+
+ '@emotion/styled@11.14.0':
+ resolution: {integrity: sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==}
+ peerDependencies:
+ '@emotion/react': ^11.0.0-rc.0
+ '@types/react': '*'
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@emotion/unitless@0.10.0':
+ resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.2.0':
+ resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==}
+ peerDependencies:
+ react: '>=16.8.0'
+
+ '@emotion/utils@1.4.2':
+ resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==}
+
+ '@emotion/weak-memoize@0.4.0':
+ resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==}
+
+ '@fontsource/roboto@5.2.5':
+ resolution: {integrity: sha512-70r2UZ0raqLn5W+sPeKhqlf8wGvUXFWlofaDlcbt/S3d06+17gXKr3VNqDODB0I1ASme3dGT5OJj9NABt7OTZQ==}
+
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
@@ -148,6 +243,97 @@ packages:
cpu: [x64]
os: [win32]
+ '@mui/core-downloads-tracker@6.4.6':
+ resolution: {integrity: sha512-rho5Q4IscbrVmK9rCrLTJmjLjfH6m/NcqKr/mchvck0EIXlyYUB9+Z0oVmkt/+Mben43LMRYBH8q/Uzxj/c4Vw==}
+
+ '@mui/icons-material@6.4.6':
+ resolution: {integrity: sha512-rGJBvIQQbQAlyKYljHQ8wAQS/K2/uYwvemcpygnAmCizmCI4zSF9HQPuiG8Ql4YLZ6V/uKjA3WHIYmF/8sV+pQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@mui/material': ^6.4.6
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@mui/material@6.4.6':
+ resolution: {integrity: sha512-6UyAju+DBOdMogfYmLiT3Nu7RgliorimNBny1pN/acOjc+THNFVE7hlxLyn3RDONoZJNDi/8vO4AQQr6dLAXqA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.5.0
+ '@emotion/styled': ^11.3.0
+ '@mui/material-pigment-css': ^6.4.6
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ '@mui/material-pigment-css':
+ optional: true
+ '@types/react':
+ optional: true
+
+ '@mui/private-theming@6.4.6':
+ resolution: {integrity: sha512-T5FxdPzCELuOrhpA2g4Pi6241HAxRwZudzAuL9vBvniuB5YU82HCmrARw32AuCiyTfWzbrYGGpZ4zyeqqp9RvQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@mui/styled-engine@6.4.6':
+ resolution: {integrity: sha512-vSWYc9ZLX46be5gP+FCzWVn5rvDr4cXC5JBZwSIkYk9xbC7GeV+0kCvB8Q6XLFQJy+a62bbqtmdwS4Ghi9NBlQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.4.1
+ '@emotion/styled': ^11.3.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+
+ '@mui/system@6.4.6':
+ resolution: {integrity: sha512-FQjWwPec7pMTtB/jw5f9eyLynKFZ6/Ej9vhm5kGdtmts1z5b7Vyn3Rz6kasfYm1j2TfrfGnSXRvvtwVWxjpz6g==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.5.0
+ '@emotion/styled': ^11.3.0
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ '@types/react':
+ optional: true
+
+ '@mui/types@7.2.21':
+ resolution: {integrity: sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@mui/utils@6.4.6':
+ resolution: {integrity: sha512-43nZeE1pJF2anGafNydUcYFPtHwAqiBiauRtaMvurdrZI3YrUjHkAu43RBsxef7OFtJMXGiHFvq43kb7lig0sA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@parcel/bundler-default@2.13.3':
resolution: {integrity: sha512-mOuWeth0bZzRv1b9Lrvydis/hAzJyePy0gwa0tix3/zyYBvw0JY+xkXVR4qKyD/blc1Ra2qOlfI2uD3ucnsdXA==}
engines: {node: '>= 16.0.0', parcel: ^2.13.3}
@@ -462,90 +648,68 @@ packages:
'@popperjs/core@2.11.8':
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
- '@react-aria/ssr@3.9.7':
- resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==}
- engines: {node: '>= 12'}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@restart/hooks@0.4.16':
- resolution: {integrity: sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==}
- peerDependencies:
- react: '>=16.8.0'
-
- '@restart/hooks@0.5.1':
- resolution: {integrity: sha512-EMoH04NHS1pbn07iLTjIjgttuqb7qu4+/EyhAx27MHpoENcB2ZdSsLTNxmKD+WEPnZigo62Qc8zjGnNxoSE/5Q==}
- peerDependencies:
- react: '>=16.8.0'
-
- '@restart/ui@1.9.4':
- resolution: {integrity: sha512-N4C7haUc3vn4LTwVUPlkJN8Ach/+yIMvRuTVIhjilNHqegY60SGLrzud6errOMNJwSnmYFnt1J0H/k8FE3A4KA==}
- peerDependencies:
- react: '>=16.14.0'
- react-dom: '>=16.14.0'
-
- '@swc/core-darwin-arm64@1.11.6':
- resolution: {integrity: sha512-Ay+GTjCZs/hc3jsLXdBE/CIB+ZMXun/bQqIApBoGcXmtsEAnJH2ogo2q/R9WHg+4CmxHxTHBtX6vpXhGcYHuxQ==}
+ '@swc/core-darwin-arm64@1.11.7':
+ resolution: {integrity: sha512-3+LhCP2H50CLI6yv/lhOtoZ5B/hi7Q/23dye1KhbSDeDprLTm/KfLJh/iQqwaHUponf5m8C2U0y6DD+HGLz8Yw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
- '@swc/core-darwin-x64@1.11.6':
- resolution: {integrity: sha512-ihfft5AEe3noKqdQ/pF+1NBfOr0khaQIqNxqWh9uTMHjJiUsv78cOEjXPQserwVXa8hcTzWTYV6Y+I4+r7P7pA==}
+ '@swc/core-darwin-x64@1.11.7':
+ resolution: {integrity: sha512-1diWpJqwX1XmOghf9ENFaeRaTtqLiqlZIW56RfOqmeZ7tPp3qS7VygWb9akptBsO5pEA5ZwNgSerD6AJlQcjAw==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
- '@swc/core-linux-arm-gnueabihf@1.11.6':
- resolution: {integrity: sha512-uEQu6WNPDBDTWRoN23LQwEnhbAqC0P4be5x8csdvaY/OpUjjzmi66IeCc/nDV67yG2wv/auCHH/z+SLjHwGzJQ==}
+ '@swc/core-linux-arm-gnueabihf@1.11.7':
+ resolution: {integrity: sha512-MV8+hLREf0NN23NuSKemsjFaWjl/HnqdOkE7uhXTnHzg8WTwp6ddVtU5Yriv15+d/ktfLWPVAOhLHQ4gzaoa8A==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
- '@swc/core-linux-arm64-gnu@1.11.6':
- resolution: {integrity: sha512-jxqooWkMObrakms9ai49IO6Ip9ADvxYYmGc0R5TtRdWBZ5vBJuURIS+KB6MR3MVVCrUG69PciaQ1VvUoVvamDw==}
+ '@swc/core-linux-arm64-gnu@1.11.7':
+ resolution: {integrity: sha512-5GNs8ZjHQy/UTSnzzn+gm1RCUpCYo43lsxYOl8mpcnZSfxkNFVpjfylBv0QuJ5qhdfZ2iU55+v4iJCwCMtw0nA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- '@swc/core-linux-arm64-musl@1.11.6':
- resolution: {integrity: sha512-aMntF+a5FjhNWt3CSkFrc5ritpomveXkGL5ZcTXh1D4Q3Fvx7efxJPDAG4HUBxwBzo9BqyAPqOBMD3QhQxw1tA==}
+ '@swc/core-linux-arm64-musl@1.11.7':
+ resolution: {integrity: sha512-cTydaYBwDbVV5CspwVcCp9IevYWpGD1cF5B5KlBdjmBzxxeWyTAJRtKzn8w5/UJe/MfdAptarpqMPIs2f33YEQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- '@swc/core-linux-x64-gnu@1.11.6':
- resolution: {integrity: sha512-ydJ/8jmVjKlL2EoWy+dzEe2qPe2dV2Dns7Wei+CAuIkFB2IkfpCuWekSNJ1uL4NEU98ElqnR9337tins4UcNww==}
+ '@swc/core-linux-x64-gnu@1.11.7':
+ resolution: {integrity: sha512-YAX2KfYPlbDsnZiVMI4ZwotF3VeURUrzD+emJgFf1g26F4eEmslldgnDrKybW7V+bObsH22cDqoy6jmQZgpuPQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- '@swc/core-linux-x64-musl@1.11.6':
- resolution: {integrity: sha512-n0YRUgbjiNlvJmAyi63iciY0gMN9Li4zgkKuKz5sT5JL9YfL9nETTrY0n4DcB6zH6dnqj5rXq+zTbEmvNHuV2A==}
+ '@swc/core-linux-x64-musl@1.11.7':
+ resolution: {integrity: sha512-mYT6FTDZyYx5pailc8xt6ClS2yjKmP8jNHxA9Ce3K21n5qkKilI5M2N7NShwXkd3Ksw3F29wKrg+wvEMXTRY/A==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- '@swc/core-win32-arm64-msvc@1.11.6':
- resolution: {integrity: sha512-fa6RHB9ig7IYfNig+S4aM48EutCEBmet54rXm4jOEaawjTKMj/ESE/lKKZIDvwKbnPmclZpp5lB7uivbAihCJg==}
+ '@swc/core-win32-arm64-msvc@1.11.7':
+ resolution: {integrity: sha512-uLDQEcv0BHcepypstyxKkNsW6KfLyI5jVxTbcxka+B2UnMcFpvoR87nGt2JYW0grO2SNZPoFz+UnoKL9c6JxpA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
- '@swc/core-win32-ia32-msvc@1.11.6':
- resolution: {integrity: sha512-0By180dp6DAnEu0hxyw8fgVj2n9Af5hDB/PIz1szaXMM2/hTXXBlSU9jz8YLPps7stvDDVVmG7xOXBmfwoHDcA==}
+ '@swc/core-win32-ia32-msvc@1.11.7':
+ resolution: {integrity: sha512-wiq5G3fRizdxAJVFcon7zpyfbfrb+YShuTy+TqJ4Nf5PC0ueMOXmsmeuyQGApn6dVWtGCyymYQYt77wHeQajdA==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
- '@swc/core-win32-x64-msvc@1.11.6':
- resolution: {integrity: sha512-IrZAab1kJUIccN4X61YCgBbfUvxd36tFL80T8/HX5MHJ60v3ObIGFbdUOs24KdMjG13A7P1G/8kUe3hFATWO4w==}
+ '@swc/core-win32-x64-msvc@1.11.7':
+ resolution: {integrity: sha512-/zQdqY4fHkSORxEJ2cKtRBOwglvf/8gs6Tl4Q6VMx2zFtFpIOwFQstfY5u8wBNN2Z+PkAzyUCPoi8/cQFK8HLQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@swc/core@1.11.6':
- resolution: {integrity: sha512-Xge6xbgiUsVFHkgjMzBq5Ui3T/7Rx430kkBv+IQ1wgSiZhW3WRIlE6XqPMsc4fe98GIIqIXRI1jVFaR/syFuNA==}
+ '@swc/core@1.11.7':
+ resolution: {integrity: sha512-ICuzjyfz8Hh3U16Mb21uCRJeJd/lUgV999GjgvPhJSISM1L8GDSB5/AMNcwuGs7gFywTKI4vAeeXWyCETUXHAg==}
engines: {node: '>=10'}
peerDependencies:
'@swc/helpers': '*'
@@ -562,6 +726,9 @@ packages:
'@swc/types@0.1.19':
resolution: {integrity: sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==}
+ '@types/parse-json@4.0.2':
+ resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
+
'@types/prop-types@15.7.14':
resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
@@ -578,9 +745,6 @@ packages:
'@types/react@19.0.10':
resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==}
- '@types/warning@3.0.3':
- resolution: {integrity: sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==}
-
abab@2.0.6:
resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
deprecated: Use your platform's native atob() and btoa() methods instead
@@ -637,6 +801,10 @@ packages:
axios@1.8.1:
resolution: {integrity: sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==}
+ babel-plugin-macros@3.1.0:
+ resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
+ engines: {node: '>=10', npm: '>=6'}
+
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -649,11 +817,6 @@ packages:
bcrypt-pbkdf@1.0.2:
resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
- bootstrap@5.3.3:
- resolution: {integrity: sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==}
- peerDependencies:
- '@popperjs/core': ^2.11.8
-
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -697,13 +860,18 @@ packages:
resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
engines: {node: '>=6.0'}
- classnames@2.5.1:
- resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
-
clone@2.1.2:
resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
engines: {node: '>=0.8'}
+ clsx@1.2.1:
+ resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
+ engines: {node: '>=6'}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -725,9 +893,16 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
core-util-is@1.0.2:
resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
+ cosmiconfig@7.1.0:
+ resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
+ engines: {node: '>=10'}
+
cosmiconfig@9.0.0:
resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
engines: {node: '>=14'}
@@ -758,6 +933,15 @@ packages:
data-urls@1.1.0:
resolution: {integrity: sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==}
+ debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -765,10 +949,6 @@ packages:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
- dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
-
detect-libc@1.0.3:
resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
engines: {node: '>=0.10'}
@@ -864,6 +1044,10 @@ packages:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
escodegen@1.14.3:
resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==}
engines: {node: '>=4.0'}
@@ -902,6 +1086,9 @@ packages:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
+ find-root@1.1.0:
+ resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
+
follow-redirects@1.15.9:
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
engines: {node: '>=4.0'}
@@ -947,10 +1134,19 @@ packages:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
+ globals@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
+ goober@2.1.16:
+ resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==}
+ peerDependencies:
+ csstype: ^3.0.10
+
gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
@@ -980,6 +1176,9 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
+ hoist-non-react-statics@3.3.2:
+ resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+
html-encoding-sniffer@1.0.2:
resolution: {integrity: sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==}
@@ -1047,9 +1246,6 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- invariant@2.2.4:
- resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
-
is-absolute-url@3.0.3:
resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==}
engines: {node: '>=8'}
@@ -1057,6 +1253,10 @@ packages:
is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -1096,6 +1296,11 @@ packages:
resolution: {integrity: sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==}
engines: {node: '>=8'}
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@@ -1221,6 +1426,9 @@ packages:
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
msgpackr-extract@3.0.3:
resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==}
hasBin: true
@@ -1245,6 +1453,13 @@ packages:
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ notistack@3.0.2:
+ resolution: {integrity: sha512-0R+/arLYbK5Hh7mEfR2adt0tyXJcCC9KkA2hc56FeWik2QN6Bm/S4uW+BjzDARsJth5u06nTjelSw/VSnB1YEA==}
+ engines: {node: '>=12.0.0', npm: '>=6.0.0'}
+ peerDependencies:
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
+
nullthrows@1.1.1:
resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
@@ -1288,6 +1503,13 @@ packages:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
performance-now@2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
@@ -1339,11 +1561,6 @@ packages:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
- prop-types-extra@1.1.1:
- resolution: {integrity: sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==}
- peerDependencies:
- react: '>=0.14.0'
-
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
@@ -1361,21 +1578,6 @@ packages:
resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==}
engines: {node: '>=0.6'}
- react-bootstrap-icons@1.11.5:
- resolution: {integrity: sha512-eOhtFJMUqw98IJcfKJsSMZkFHCeNPTTwXZAe9V9d4mT22ARmbrISxPO9GmtWWuf72zQctLeZMGodX/q6wrbYYg==}
- peerDependencies:
- react: '>=16.8.6'
-
- react-bootstrap@2.10.9:
- resolution: {integrity: sha512-TJUCuHcxdgYpOqeWmRApM/Dy0+hVsxNRFvq2aRFQuxhNi/+ivOxC5OdWIeHS3agxvzJ4Ev4nDw2ZdBl9ymd/JQ==}
- peerDependencies:
- '@types/react': '>=16.14.8'
- react: '>=16.14.0'
- react-dom: '>=16.14.0'
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
react-dom@19.0.0:
resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
peerDependencies:
@@ -1387,8 +1589,8 @@ packages:
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
- react-lifecycles-compat@3.0.4:
- resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
+ react-is@19.0.0:
+ resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==}
react-refresh@0.14.2:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
@@ -1433,6 +1635,11 @@ packages:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
+ resolve@1.22.10:
+ resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -1454,6 +1661,10 @@ packages:
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
@@ -1471,10 +1682,17 @@ packages:
resolution: {integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==}
engines: {node: '>=0.10.0'}
+ stylis@4.2.0:
+ resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
+
supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
@@ -1518,16 +1736,6 @@ packages:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
- uncontrollable@7.2.1:
- resolution: {integrity: sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==}
- peerDependencies:
- react: '>=15.0.0'
-
- uncontrollable@8.0.4:
- resolution: {integrity: sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==}
- peerDependencies:
- react: '>=16.14.0'
-
uncss@0.17.3:
resolution: {integrity: sha512-ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog==}
engines: {node: '>=6.0'}
@@ -1565,9 +1773,6 @@ packages:
w3c-xmlserializer@1.1.2:
resolution: {integrity: sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==}
- warning@4.0.3:
- resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
-
weak-lru-cache@1.2.2:
resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==}
@@ -1607,6 +1812,10 @@ packages:
xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+ yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+
snapshots:
'@babel/code-frame@7.26.2':
@@ -1615,24 +1824,150 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
+ '@babel/generator@7.26.9':
+ dependencies:
+ '@babel/parser': 7.26.9
+ '@babel/types': 7.26.9
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.1.0
+
+ '@babel/helper-module-imports@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.26.9
+ '@babel/types': 7.26.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-string-parser@7.25.9': {}
+
'@babel/helper-validator-identifier@7.25.9': {}
+ '@babel/parser@7.26.9':
+ dependencies:
+ '@babel/types': 7.26.9
+
'@babel/runtime@7.26.9':
dependencies:
regenerator-runtime: 0.14.1
+ '@babel/template@7.26.9':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/parser': 7.26.9
+ '@babel/types': 7.26.9
+
+ '@babel/traverse@7.26.9':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.9
+ '@babel/parser': 7.26.9
+ '@babel/template': 7.26.9
+ '@babel/types': 7.26.9
+ debug: 4.4.0
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.26.9':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
+ '@emotion/babel-plugin@11.13.5':
+ dependencies:
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/runtime': 7.26.9
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/serialize': 1.3.3
+ babel-plugin-macros: 3.1.0
+ convert-source-map: 1.9.0
+ escape-string-regexp: 4.0.0
+ find-root: 1.1.0
+ source-map: 0.5.7
+ stylis: 4.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/cache@11.14.0':
+ dependencies:
+ '@emotion/memoize': 0.9.0
+ '@emotion/sheet': 1.4.0
+ '@emotion/utils': 1.4.2
+ '@emotion/weak-memoize': 0.4.0
+ stylis: 4.2.0
+
+ '@emotion/hash@0.9.2': {}
+
+ '@emotion/is-prop-valid@1.3.1':
+ dependencies:
+ '@emotion/memoize': 0.9.0
+
+ '@emotion/memoize@0.9.0': {}
+
+ '@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@emotion/babel-plugin': 11.13.5
+ '@emotion/cache': 11.14.0
+ '@emotion/serialize': 1.3.3
+ '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0)
+ '@emotion/utils': 1.4.2
+ '@emotion/weak-memoize': 0.4.0
+ hoist-non-react-statics: 3.3.2
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/serialize@1.3.3':
+ dependencies:
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/unitless': 0.10.0
+ '@emotion/utils': 1.4.2
+ csstype: 3.1.3
+
+ '@emotion/sheet@1.4.0': {}
+
+ '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@emotion/babel-plugin': 11.13.5
+ '@emotion/is-prop-valid': 1.3.1
+ '@emotion/react': 11.14.0(@types/react@19.0.10)(react@19.0.0)
+ '@emotion/serialize': 1.3.3
+ '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0)
+ '@emotion/utils': 1.4.2
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/unitless@0.10.0': {}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)':
+ dependencies:
+ react: 19.0.0
+
+ '@emotion/utils@1.4.2': {}
+
+ '@emotion/weak-memoize@0.4.0': {}
+
+ '@fontsource/roboto@5.2.5': {}
+
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
- optional: true
- '@jridgewell/resolve-uri@3.1.2':
- optional: true
+ '@jridgewell/resolve-uri@3.1.2': {}
- '@jridgewell/set-array@1.2.1':
- optional: true
+ '@jridgewell/set-array@1.2.1': {}
'@jridgewell/source-map@0.3.6':
dependencies:
@@ -1640,14 +1975,12 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
optional: true
- '@jridgewell/sourcemap-codec@1.5.0':
- optional: true
+ '@jridgewell/sourcemap-codec@1.5.0': {}
'@jridgewell/trace-mapping@0.3.25':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
- optional: true
'@lezer/common@1.2.3': {}
@@ -1697,6 +2030,91 @@ snapshots:
'@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3':
optional: true
+ '@mui/core-downloads-tracker@6.4.6': {}
+
+ '@mui/icons-material@6.4.6(@mui/material@6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@mui/material': 6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@mui/material@6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@mui/core-downloads-tracker': 6.4.6
+ '@mui/system': 6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)
+ '@mui/types': 7.2.21(@types/react@19.0.10)
+ '@mui/utils': 6.4.6(@types/react@19.0.10)(react@19.0.0)
+ '@popperjs/core': 2.11.8
+ '@types/react-transition-group': 4.4.12(@types/react@19.0.10)
+ clsx: 2.1.1
+ csstype: 3.1.3
+ prop-types: 15.8.1
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ react-is: 19.0.0
+ react-transition-group: 4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ optionalDependencies:
+ '@emotion/react': 11.14.0(@types/react@19.0.10)(react@19.0.0)
+ '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)
+ '@types/react': 19.0.10
+
+ '@mui/private-theming@6.4.6(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@mui/utils': 6.4.6(@types/react@19.0.10)(react@19.0.0)
+ prop-types: 15.8.1
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@mui/styled-engine@6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@emotion/cache': 11.14.0
+ '@emotion/serialize': 1.3.3
+ '@emotion/sheet': 1.4.0
+ csstype: 3.1.3
+ prop-types: 15.8.1
+ react: 19.0.0
+ optionalDependencies:
+ '@emotion/react': 11.14.0(@types/react@19.0.10)(react@19.0.0)
+ '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)
+
+ '@mui/system@6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@mui/private-theming': 6.4.6(@types/react@19.0.10)(react@19.0.0)
+ '@mui/styled-engine': 6.4.6(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)
+ '@mui/types': 7.2.21(@types/react@19.0.10)
+ '@mui/utils': 6.4.6(@types/react@19.0.10)(react@19.0.0)
+ clsx: 2.1.1
+ csstype: 3.1.3
+ prop-types: 15.8.1
+ react: 19.0.0
+ optionalDependencies:
+ '@emotion/react': 11.14.0(@types/react@19.0.10)(react@19.0.0)
+ '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@19.0.10)(react@19.0.0))(@types/react@19.0.10)(react@19.0.0)
+ '@types/react': 19.0.10
+
+ '@mui/types@7.2.21(@types/react@19.0.10)':
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@mui/utils@6.4.6(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@mui/types': 7.2.21(@types/react@19.0.10)
+ '@types/prop-types': 15.7.14
+ clsx: 2.1.1
+ prop-types: 15.8.1
+ react: 19.0.0
+ react-is: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
'@parcel/bundler-default@2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15))':
dependencies:
'@parcel/diagnostic': 2.13.3
@@ -1910,7 +2328,7 @@ snapshots:
'@parcel/plugin': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15))
'@parcel/source-map': 2.1.1
'@parcel/utils': 2.13.3
- '@swc/core': 1.11.6(@swc/helpers@0.5.15)
+ '@swc/core': 1.11.7(@swc/helpers@0.5.15)
nullthrows: 1.1.1
transitivePeerDependencies:
- '@parcel/core'
@@ -1926,7 +2344,7 @@ snapshots:
'@parcel/types': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15))
'@parcel/utils': 2.13.3
'@parcel/workers': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15))
- '@swc/core': 1.11.6(@swc/helpers@0.5.15)
+ '@swc/core': 1.11.7(@swc/helpers@0.5.15)
semver: 7.7.1
transitivePeerDependencies:
- '@swc/helpers'
@@ -2289,80 +2707,51 @@ snapshots:
'@popperjs/core@2.11.8': {}
- '@react-aria/ssr@3.9.7(react@19.0.0)':
- dependencies:
- '@swc/helpers': 0.5.15
- react: 19.0.0
-
- '@restart/hooks@0.4.16(react@19.0.0)':
- dependencies:
- dequal: 2.0.3
- react: 19.0.0
-
- '@restart/hooks@0.5.1(react@19.0.0)':
- dependencies:
- dequal: 2.0.3
- react: 19.0.0
-
- '@restart/ui@1.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
- dependencies:
- '@babel/runtime': 7.26.9
- '@popperjs/core': 2.11.8
- '@react-aria/ssr': 3.9.7(react@19.0.0)
- '@restart/hooks': 0.5.1(react@19.0.0)
- '@types/warning': 3.0.3
- dequal: 2.0.3
- dom-helpers: 5.2.1
- react: 19.0.0
- react-dom: 19.0.0(react@19.0.0)
- uncontrollable: 8.0.4(react@19.0.0)
- warning: 4.0.3
-
- '@swc/core-darwin-arm64@1.11.6':
+ '@swc/core-darwin-arm64@1.11.7':
optional: true
- '@swc/core-darwin-x64@1.11.6':
+ '@swc/core-darwin-x64@1.11.7':
optional: true
- '@swc/core-linux-arm-gnueabihf@1.11.6':
+ '@swc/core-linux-arm-gnueabihf@1.11.7':
optional: true
- '@swc/core-linux-arm64-gnu@1.11.6':
+ '@swc/core-linux-arm64-gnu@1.11.7':
optional: true
- '@swc/core-linux-arm64-musl@1.11.6':
+ '@swc/core-linux-arm64-musl@1.11.7':
optional: true
- '@swc/core-linux-x64-gnu@1.11.6':
+ '@swc/core-linux-x64-gnu@1.11.7':
optional: true
- '@swc/core-linux-x64-musl@1.11.6':
+ '@swc/core-linux-x64-musl@1.11.7':
optional: true
- '@swc/core-win32-arm64-msvc@1.11.6':
+ '@swc/core-win32-arm64-msvc@1.11.7':
optional: true
- '@swc/core-win32-ia32-msvc@1.11.6':
+ '@swc/core-win32-ia32-msvc@1.11.7':
optional: true
- '@swc/core-win32-x64-msvc@1.11.6':
+ '@swc/core-win32-x64-msvc@1.11.7':
optional: true
- '@swc/core@1.11.6(@swc/helpers@0.5.15)':
+ '@swc/core@1.11.7(@swc/helpers@0.5.15)':
dependencies:
'@swc/counter': 0.1.3
'@swc/types': 0.1.19
optionalDependencies:
- '@swc/core-darwin-arm64': 1.11.6
- '@swc/core-darwin-x64': 1.11.6
- '@swc/core-linux-arm-gnueabihf': 1.11.6
- '@swc/core-linux-arm64-gnu': 1.11.6
- '@swc/core-linux-arm64-musl': 1.11.6
- '@swc/core-linux-x64-gnu': 1.11.6
- '@swc/core-linux-x64-musl': 1.11.6
- '@swc/core-win32-arm64-msvc': 1.11.6
- '@swc/core-win32-ia32-msvc': 1.11.6
- '@swc/core-win32-x64-msvc': 1.11.6
+ '@swc/core-darwin-arm64': 1.11.7
+ '@swc/core-darwin-x64': 1.11.7
+ '@swc/core-linux-arm-gnueabihf': 1.11.7
+ '@swc/core-linux-arm64-gnu': 1.11.7
+ '@swc/core-linux-arm64-musl': 1.11.7
+ '@swc/core-linux-x64-gnu': 1.11.7
+ '@swc/core-linux-x64-musl': 1.11.7
+ '@swc/core-win32-arm64-msvc': 1.11.7
+ '@swc/core-win32-ia32-msvc': 1.11.7
+ '@swc/core-win32-x64-msvc': 1.11.7
'@swc/helpers': 0.5.15
'@swc/counter@0.1.3': {}
@@ -2375,6 +2764,8 @@ snapshots:
dependencies:
'@swc/counter': 0.1.3
+ '@types/parse-json@4.0.2': {}
+
'@types/prop-types@15.7.14': {}
'@types/react-dom@19.0.4(@types/react@19.0.10)':
@@ -2389,8 +2780,6 @@ snapshots:
dependencies:
csstype: 3.1.3
- '@types/warning@3.0.3': {}
-
abab@2.0.6:
optional: true
@@ -2453,6 +2842,12 @@ snapshots:
transitivePeerDependencies:
- debug
+ babel-plugin-macros@3.1.0:
+ dependencies:
+ '@babel/runtime': 7.26.9
+ cosmiconfig: 7.1.0
+ resolve: 1.22.10
+
balanced-match@1.0.2:
optional: true
@@ -2467,10 +2862,6 @@ snapshots:
tweetnacl: 0.14.5
optional: true
- bootstrap@5.3.3(@popperjs/core@2.11.8):
- dependencies:
- '@popperjs/core': 2.11.8
-
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -2518,10 +2909,12 @@ snapshots:
chrome-trace-event@1.0.4: {}
- classnames@2.5.1: {}
-
clone@2.1.2: {}
+ clsx@1.2.1: {}
+
+ clsx@2.1.1: {}
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -2540,9 +2933,19 @@ snapshots:
concat-map@0.0.1:
optional: true
+ convert-source-map@1.9.0: {}
+
core-util-is@1.0.2:
optional: true
+ cosmiconfig@7.1.0:
+ dependencies:
+ '@types/parse-json': 4.0.2
+ import-fresh: 3.3.1
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.2
+
cosmiconfig@9.0.0:
dependencies:
env-paths: 2.2.1
@@ -2575,13 +2978,15 @@ snapshots:
whatwg-url: 7.1.0
optional: true
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
deep-is@0.1.4:
optional: true
delayed-stream@1.0.0: {}
- dequal@2.0.3: {}
-
detect-libc@1.0.3: {}
detect-libc@2.0.3: {}
@@ -2679,6 +3084,8 @@ snapshots:
escalade@3.2.0: {}
+ escape-string-regexp@4.0.0: {}
+
escodegen@1.14.3:
dependencies:
esprima: 4.0.1
@@ -2717,6 +3124,8 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
+ find-root@1.1.0: {}
+
follow-redirects@1.15.9: {}
forever-agent@0.6.1:
@@ -2776,10 +3185,16 @@ snapshots:
path-is-absolute: 1.0.1
optional: true
+ globals@11.12.0: {}
+
globals@13.24.0:
dependencies:
type-fest: 0.20.2
+ goober@2.1.16(csstype@3.1.3):
+ dependencies:
+ csstype: 3.1.3
+
gopd@1.2.0: {}
har-schema@2.0.0:
@@ -2803,6 +3218,10 @@ snapshots:
dependencies:
function-bind: 1.1.2
+ hoist-non-react-statics@3.3.2:
+ dependencies:
+ react-is: 16.13.1
+
html-encoding-sniffer@1.0.2:
dependencies:
whatwg-encoding: 1.0.5
@@ -2868,15 +3287,15 @@ snapshots:
inherits@2.0.4:
optional: true
- invariant@2.2.4:
- dependencies:
- loose-envify: 1.4.0
-
is-absolute-url@3.0.3:
optional: true
is-arrayish@0.2.1: {}
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
is-extglob@2.1.1: {}
is-glob@4.0.3:
@@ -2940,6 +3359,8 @@ snapshots:
- utf-8-validate
optional: true
+ jsesc@3.1.0: {}
+
json-parse-even-better-errors@2.3.1: {}
json-schema-traverse@0.4.1:
@@ -3057,6 +3478,8 @@ snapshots:
brace-expansion: 1.1.11
optional: true
+ ms@2.1.3: {}
+
msgpackr-extract@3.0.3:
dependencies:
node-gyp-build-optional-packages: 5.2.2
@@ -3088,6 +3511,15 @@ snapshots:
node-releases@2.0.19: {}
+ notistack@3.0.2(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
+ dependencies:
+ clsx: 1.2.1
+ goober: 2.1.16(csstype@3.1.3)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ transitivePeerDependencies:
+ - csstype
+
nullthrows@1.1.1: {}
nwsapi@2.2.18:
@@ -3161,6 +3593,10 @@ snapshots:
path-is-absolute@1.0.1:
optional: true
+ path-parse@1.0.7: {}
+
+ path-type@4.0.0: {}
+
performance-now@2.1.0:
optional: true
@@ -3211,12 +3647,6 @@ snapshots:
process@0.11.10: {}
- prop-types-extra@1.1.1(react@19.0.0):
- dependencies:
- react: 19.0.0
- react-is: 16.13.1
- warning: 4.0.3
-
prop-types@15.8.1:
dependencies:
loose-envify: 1.4.0
@@ -3236,31 +3666,6 @@ snapshots:
qs@6.5.3:
optional: true
- react-bootstrap-icons@1.11.5(react@19.0.0):
- dependencies:
- prop-types: 15.8.1
- react: 19.0.0
-
- react-bootstrap@2.10.9(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
- dependencies:
- '@babel/runtime': 7.26.9
- '@restart/hooks': 0.4.16(react@19.0.0)
- '@restart/ui': 1.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
- '@types/prop-types': 15.7.14
- '@types/react-transition-group': 4.4.12(@types/react@19.0.10)
- classnames: 2.5.1
- dom-helpers: 5.2.1
- invariant: 2.2.4
- prop-types: 15.8.1
- prop-types-extra: 1.1.1(react@19.0.0)
- react: 19.0.0
- react-dom: 19.0.0(react@19.0.0)
- react-transition-group: 4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
- uncontrollable: 7.2.1(react@19.0.0)
- warning: 4.0.3
- optionalDependencies:
- '@types/react': 19.0.10
-
react-dom@19.0.0(react@19.0.0):
dependencies:
react: 19.0.0
@@ -3270,7 +3675,7 @@ snapshots:
react-is@16.13.1: {}
- react-lifecycles-compat@3.0.4: {}
+ react-is@19.0.0: {}
react-refresh@0.14.2: {}
@@ -3330,6 +3735,12 @@ snapshots:
resolve-from@4.0.0: {}
+ resolve@1.22.10:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
safe-buffer@5.2.1: {}
safer-buffer@2.1.2:
@@ -3350,6 +3761,8 @@ snapshots:
source-map: 0.6.1
optional: true
+ source-map@0.5.7: {}
+
source-map@0.6.1:
optional: true
@@ -3371,10 +3784,14 @@ snapshots:
stealthy-require@1.1.1:
optional: true
+ stylis@4.2.0: {}
+
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
+ supports-preserve-symlinks-flag@1.0.0: {}
+
symbol-tree@3.2.4:
optional: true
@@ -3422,18 +3839,6 @@ snapshots:
type-fest@0.20.2: {}
- uncontrollable@7.2.1(react@19.0.0):
- dependencies:
- '@babel/runtime': 7.26.9
- '@types/react': 19.0.10
- invariant: 2.2.4
- react: 19.0.0
- react-lifecycles-compat: 3.0.4
-
- uncontrollable@8.0.4(react@19.0.0):
- dependencies:
- react: 19.0.0
-
uncss@0.17.3:
dependencies:
commander: 2.20.3
@@ -3488,10 +3893,6 @@ snapshots:
xml-name-validator: 3.0.0
optional: true
- warning@4.0.3:
- dependencies:
- loose-envify: 1.4.0
-
weak-lru-cache@1.2.2: {}
webidl-conversions@4.0.2:
@@ -3528,3 +3929,5 @@ snapshots:
xmlchars@2.2.0:
optional: true
+
+ yaml@1.10.2: {}
diff --git a/public/api/query.php b/public/api/query.php
index 012fd89..24d20b6 100644
--- a/public/api/query.php
+++ b/public/api/query.php
@@ -44,7 +44,10 @@ if (isset($json->zips) && !empty($json->zips)) {
continue;
}
- $zips[(int)$zip->zip] = $zip->city27;
+ $zips[] = [
+ "zip" => (int)$zip->zip,
+ "city" => $zip->city27
+ ];
}
}
diff --git a/public/index.html b/public/index.html
index 140eca1..47a86af 100644
--- a/public/index.html
+++ b/public/index.html
@@ -3,7 +3,7 @@
- Codes postaux | Suisse
+ Chercher un code postal en Suisse