({
+ display: "flex",
+ gap: theme.customProperties.spacing.xl,
+ position: "relative",
+ })}
+ >
-
+
+
UiKit
This is where you can display all your custom components/containers.
-
+ ({
+ display: "flex",
+ gap: theme.customProperties.spacing.md,
+ })}
+ >
For all the Styled MUI components, please refer to
MUI documentation
-
+
({
+ display: "flex",
+ flexDirection: "column",
+ gap: theme.customProperties.spacing.xs,
+ })}
+ >
H1. Heading
H2. Heading
@@ -188,6 +206,6 @@ export default function UiKit() {
-
+
);
}
diff --git a/frontend/src/app/pages/uikit/uikit.route.tsx b/frontend/src/app/pages/uikit/uikit.route.tsx
index 63407b0..3baefd2 100755
--- a/frontend/src/app/pages/uikit/uikit.route.tsx
+++ b/frontend/src/app/pages/uikit/uikit.route.tsx
@@ -5,7 +5,7 @@ import { lazy } from "react";
const uikitRoute: IRoute = {
name: "uikit__page_title",
- component: lazy(() => import("./withAuthUikit")),
+ component: lazy(() => import("./UiKit")),
paths: {
en: `/${en.locale__key}/${en.routes__uikit}`,
fr: `/${fr.locale__key}/${fr.routes__uikit}`,
diff --git a/frontend/src/app/pages/uikit/withAuthUikit.tsx b/frontend/src/app/pages/uikit/withAuthUikit.tsx
deleted file mode 100644
index 98af659..0000000
--- a/frontend/src/app/pages/uikit/withAuthUikit.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import EPermission from "@enums/EPermission";
-import withAuth from "@hocs/withAuth";
-import UiKit from "./UiKit";
-
-const withAuthUikit = withAuth(UiKit, EPermission.UikitRead);
-
-export default withAuthUikit;
diff --git a/frontend/src/app/routes/Router.tsx b/frontend/src/app/routes/Router.tsx
index 89997e4..3184252 100755
--- a/frontend/src/app/routes/Router.tsx
+++ b/frontend/src/app/routes/Router.tsx
@@ -1,56 +1,104 @@
-import DebugBanner from "@containers/debugBanner/DebugBanner";
-import homeRoute from "@pages/home/home.route";
+import DebugBanner from "@components/debugBanner/DebugBanner";
import notFoundRoute from "@pages/notFound/notFound.route";
-import routes from "@routes/routes";
-import { useMemo } from "react";
+import protectedRoutes from "@routes/routes.protected";
+import publicRoutes from "@routes/routes.public";
+import DashboardLayout from "@components/layouts/Dashboard";
+import { Suspense, useMemo } from "react";
import { Helmet } from "react-helmet-async";
import { useTranslation } from "react-i18next";
import {
Navigate,
+ Route,
RouterProvider,
createBrowserRouter,
+ createRoutesFromElements,
} from "react-router-dom";
+import AuthGuard from "@containers/authGuard/AuthGuard";
+import loginRoute from "@pages/login/login.route";
+import Loading from "@components/loading/Loading";
export default function Router() {
const { t } = useTranslation();
const localePath = t("locale__key");
- const routesObj = useMemo(
- () =>
- routes.flatMap((route) =>
- Object.values(route.paths).map((path) => ({
- path,
- element: (
- <>
-
-
- {t(route.name)} - {t("routes__page_title")}
-
-
-
-
- >
- ),
- })),
+ const router = useMemo(() => {
+ return createBrowserRouter(
+ createRoutesFromElements(
+ <>
+
}
+ />
+
+ {/* Protected routes - requiring auth guard, living inside the dashboard layout */}
+
+
+
+
+
+ >
+ }
+ >
+ {protectedRoutes.flatMap((route) =>
+ Object.values(route.paths).map((path, index) => (
+
+
+
+ {t(route.name)} - {t("routes__page_title")}
+
+
+ }>
+
+
+ >
+ }
+ />
+ )),
+ )}
+
+
+ {/*
+ Public routes - if they live inside a common layout,
+ you can wrap this block inside a Router component
+ */}
+ {publicRoutes.flatMap((route) =>
+ Object.values(route.paths).map((path, index) => (
+
+
+
+ {t(route.name)} - {t("routes__page_title")}
+
+
+
+ }>
+
+
+
+
+ >
+ }
+ />
+ )),
+ )}
+
+ }
+ />
+ >,
),
- [t, localePath],
- );
-
- const router = useMemo(
- () =>
- createBrowserRouter([
- {
- path: "/",
- element: ,
- },
- ...routesObj,
- {
- path: notFoundRoute.paths[localePath],
- element: ,
- },
- ]),
- [routesObj, localePath],
- );
+ );
+ }, [t, localePath]);
return ;
}
diff --git a/frontend/src/app/routes/findRoute.ts b/frontend/src/app/routes/findRoute.ts
index 7857de3..bb95aef 100644
--- a/frontend/src/app/routes/findRoute.ts
+++ b/frontend/src/app/routes/findRoute.ts
@@ -1,10 +1,11 @@
-import routes from "@routes/routes";
+import protectedRoutes from "@routes/routes.protected";
+import publicRoutes from "@routes/routes.public";
const findRoute = (path: string, locale: string): string => {
let segmentValues: string[] = [];
let segmentNames: string[] = [];
- const route = routes.find((route) => {
+ const route = [...protectedRoutes, ...publicRoutes].find((route) => {
return Object.values(route.paths).some((pattern) => {
segmentNames = (pattern.match(/:([^\s/]+)/g) || []).map((s) =>
s.substring(1),
diff --git a/frontend/src/app/routes/routes.protected.ts b/frontend/src/app/routes/routes.protected.ts
new file mode 100644
index 0000000..551a596
--- /dev/null
+++ b/frontend/src/app/routes/routes.protected.ts
@@ -0,0 +1,6 @@
+import myAccountRoute from "@pages/myAccount/myAccount.route";
+import homeRoute from "@pages/home/home.route";
+
+const protectedRoutes = [homeRoute, myAccountRoute];
+
+export default protectedRoutes;
diff --git a/frontend/src/app/routes/routes.public.ts b/frontend/src/app/routes/routes.public.ts
new file mode 100644
index 0000000..56cb704
--- /dev/null
+++ b/frontend/src/app/routes/routes.public.ts
@@ -0,0 +1,10 @@
+import loginRoute from "@pages/login/login.route";
+import uikitRoute from "@pages/uikit/uikit.route";
+
+const publicRoutes = [loginRoute];
+
+if (__ENV__ !== "prod") {
+ publicRoutes.push(uikitRoute);
+}
+
+export default publicRoutes;
diff --git a/frontend/src/app/routes/routes.ts b/frontend/src/app/routes/routes.ts
deleted file mode 100644
index f5ff3ac..0000000
--- a/frontend/src/app/routes/routes.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import dashboardRoute from "@pages/dashbaord/dashboard.route";
-import homeRoute from "@pages/home/home.route";
-import loginRoute from "@pages/login/login.route";
-import uikitRoute from "@pages/uikit/uikit.route";
-
-const routes = [homeRoute, loginRoute, dashboardRoute];
-
-if (__ENV__ !== "prod") {
- routes.push(uikitRoute);
-}
-
-export default routes;
diff --git a/frontend/src/app/services/users/interfaces/IUser.ts b/frontend/src/app/services/users/interfaces/IUser.ts
index 0b2228a..9a0fba9 100644
--- a/frontend/src/app/services/users/interfaces/IUser.ts
+++ b/frontend/src/app/services/users/interfaces/IUser.ts
@@ -5,6 +5,6 @@ export default interface IUser {
lastName: string;
gender: string;
image: string;
- token?: string;
+ accessToken?: string;
refreshToken?: string;
}
diff --git a/frontend/src/assets/locales/en.json b/frontend/src/assets/locales/en.json
index eada460..687d695 100644
--- a/frontend/src/assets/locales/en.json
+++ b/frontend/src/assets/locales/en.json
@@ -39,8 +39,8 @@
"routes__page_title": "React Template",
"routes__login": "login",
"routes__home": "home",
+ "routes__my_account": "my-account",
"routes__uikit": "uikit",
- "routes__dashboard": "dashboard",
"routes__not_found": "not-found",
"validations__required": "{{ field }} is required.",
"validations__max_characters": "{{ field }} can have a maximum of {{ max }} characters.",
@@ -51,7 +51,6 @@
"errors__expired_session": "The session has expired.",
"home__page_title": "Home",
"home__welcome": "Welcome",
- "home__count": "Count is at",
"home__logout": "Logout",
"login__page_title": "Log in",
"login__username": "Username",
@@ -59,5 +58,5 @@
"login__sign_in": "Sign in",
"login__more_user": "More user",
"uikit__page_title": "Uikit",
- "dashboard__page_title": "Dashboard"
+ "my_account__page_title": "My Account"
}
diff --git a/frontend/src/assets/locales/fr.json b/frontend/src/assets/locales/fr.json
index 194d920..ea91530 100644
--- a/frontend/src/assets/locales/fr.json
+++ b/frontend/src/assets/locales/fr.json
@@ -39,8 +39,8 @@
"routes__page_title": "React Template",
"routes__login": "connexion",
"routes__home": "accueil",
+ "routes__my_account": "mon-compte",
"routes__uikit": "uikit",
- "routes__dashboard": "dashboard",
"routes__not_found": "page-introuvable",
"validations__required": "{{ field }} est obligatoire.",
"validations__max_characters": "{{ field }} peut avoir un maximum de {{ max }} caractères.",
@@ -51,7 +51,6 @@
"errors__expired_session": "La session est expirée.",
"home__page_title": "Accueil",
"home__welcome": "Bienvenue",
- "home__count": "Le comte est à",
"home__logout": "Se déconnecter",
"login__page_title": "Connectez-vous",
"login__username": "Nom d'utilisateur",
@@ -59,5 +58,5 @@
"login__sign_in": "Se connecter",
"login__more_user": "Plus d'utilisateur",
"uikit__page_title": "Uikit",
- "dashboard__page_title": "Dashboard"
+ "my_account__page_title": "Mon compte"
}
diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx
index c337e85..afd5aa1 100644
--- a/frontend/src/main.tsx
+++ b/frontend/src/main.tsx
@@ -1,6 +1,7 @@
import { StrictMode } from "react";
import * as ReactDOM from "react-dom/client";
import { HelmetProvider } from "react-helmet-async";
+import CssBaseline from "@mui/material/CssBaseline";
import App from "./App";
import "@mui/material-pigment-css/styles.css";
@@ -10,6 +11,7 @@ ReactDOM.createRoot(
).render(
+
,
diff --git a/frontend/src/sheet2i18n.config.cjs b/frontend/src/sheet2i18n.config.cjs
index f673d21..09a4e56 100644
--- a/frontend/src/sheet2i18n.config.cjs
+++ b/frontend/src/sheet2i18n.config.cjs
@@ -18,6 +18,8 @@ module.exports = {
"https://docs.google.com/spreadsheets/d/e/2PACX-1vQe6sBfW-7S3xGPlYVaOB8v39yfZHx0FqCOeGEChuWlkObw-F5EsuVag_olya-psWYyKOuCl9y8ZGcf/pub?gid=1136921178&single=true&output=csv",
// Uikit
"https://docs.google.com/spreadsheets/d/e/2PACX-1vQe6sBfW-7S3xGPlYVaOB8v39yfZHx0FqCOeGEChuWlkObw-F5EsuVag_olya-psWYyKOuCl9y8ZGcf/pub?gid=268501364&single=true&output=csv",
+ // My Account
+ "https://docs.google.com/spreadsheets/d/e/2PACX-1vQe6sBfW-7S3xGPlYVaOB8v39yfZHx0FqCOeGEChuWlkObw-F5EsuVag_olya-psWYyKOuCl9y8ZGcf/pub?gid=204236050&single=true&output=csv",
],
localesKey: ["en", "fr"],
};
diff --git a/frontend/src/styles/_export.scss b/frontend/src/styles/_export.scss
deleted file mode 100755
index 95b0e83..0000000
--- a/frontend/src/styles/_export.scss
+++ /dev/null
@@ -1,49 +0,0 @@
-@use "variables" as v;
-
-/* ============================================
-= Exports =
-============================================ */
-
-$_property: (gap);
-
-$_property-with-direction: (
- m: margin,
- p: padding,
-);
-
-$_position: (top, bottom, left, right);
-
-// Property-spacing (eg: gap-xs -> gap: get-spacing(xs))
-@each $propertyKey in $_property {
- @each $spacingKey, $spacingValue in v.$spacing {
- #body .#{$propertyKey}-#{$spacingKey} {
- #{$propertyKey}: $spacingValue;
- }
- }
-}
-
-// Property with direction-spacing (eg: mr-xs -> margin-right: get-spacing(xs))
-@each $propertyKey, $propertyValue in $_property-with-direction {
- @each $spacingKey, $spacingValue in v.$spacing {
- @each $directionKey, $directionValues in v.$direction {
- #body .#{$propertyKey}#{$directionKey}-#{$spacingKey} {
- @if $directionValues == all {
- #{$propertyValue}: $spacingValue;
- } @else {
- @each $directionValue in $directionValues {
- #{$propertyValue}-#{$directionValue}: $spacingValue;
- }
- }
- }
- }
- }
-}
-
-// Position-spacing (eg: top-xs -> top: get-spacing(xs))
-@each $positionKey in $_position {
- @each $spacingKey, $spacingValue in v.$spacing {
- #body .#{$positionKey}-#{$spacingKey} {
- #{$positionKey}: $spacingValue;
- }
- }
-}
diff --git a/frontend/src/styles/_globals.scss b/frontend/src/styles/_globals.scss
index 68755fe..3ea994a 100755
--- a/frontend/src/styles/_globals.scss
+++ b/frontend/src/styles/_globals.scss
@@ -22,64 +22,3 @@ body {
height: 100%;
width: 100%;
}
-
-.flex {
- display: flex;
-
- &-column {
- display: flex;
- flex-direction: column;
- }
-
- &-1 {
- flex: 1;
- }
-
- &-grow {
- flex-grow: 1;
- }
-}
-
-.align-center {
- align-items: center;
-}
-
-.justify {
- &-center {
- justify-content: center;
- }
-
- &-between {
- justify-content: space-between;
- }
-
- &-start {
- justify-content: flex-start;
- }
-
- &-end {
- justify-content: flex-end;
- }
-}
-
-.text-center {
- text-align: center;
-}
-
-.position {
- &-absolute {
- position: absolute;
- }
-
- &-fixed {
- position: fixed;
- }
-
- &-relative {
- position: relative;
- }
-
- &-sticky {
- position: sticky;
- }
-}
diff --git a/frontend/src/styles/_variables.scss b/frontend/src/styles/_variables.scss
deleted file mode 100755
index 7440938..0000000
--- a/frontend/src/styles/_variables.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-/* ============================================
-= Variables =
-============================================ */
-
-// Allow utility classes to use the same spacing properties defined in the MUI theme
-$spacing: (
- a: var(--mui-customProperties-spacing-a),
- xxs: var(--mui-customProperties-spacing-xxs),
- xs: var(--mui-customProperties-spacing-xs),
- sm: var(--mui-customProperties-spacing-sm),
- md: var(--mui-customProperties-spacing-md),
- lg: var(--mui-customProperties-spacing-lg),
- xl: var(--mui-customProperties-spacing-xl),
- xxl: var(--mui-customProperties-spacing-xxl),
-);
-
-$direction: (
- "": all,
- l: left,
- r: right,
- t: top,
- b: bottom,
- x: left right,
- y: top bottom,
-);
diff --git a/frontend/src/styles/index.scss b/frontend/src/styles/index.scss
index bc3e9f4..79510ee 100755
--- a/frontend/src/styles/index.scss
+++ b/frontend/src/styles/index.scss
@@ -1,9 +1,3 @@
-@forward "mixins/normalize";
-
@forward "vendors/toastify.css";
-
-@forward "export";
-
@forward "fonts";
-
@forward "globals";
diff --git a/frontend/src/styles/mixins/_generics.scss b/frontend/src/styles/mixins/_generics.scss
deleted file mode 100755
index 54706df..0000000
--- a/frontend/src/styles/mixins/_generics.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/* ============================================
-= Generics =
-============================================ */
-/* stylelint-disable scss/no-global-function-names */
-
-$_font-base-size: 16;
-
-@function rem($sizeInPx) {
- @return calc($sizeInPx / $_font-base-size) * 1rem;
-}
-
-@function get($map, $key) {
- @if map-has-key($map, $key) {
- @return map-get($map, $key);
- }
- @error 'Invalid key: `#{$key}` for map `#{$map}`';
-}
diff --git a/frontend/src/styles/mixins/_media-queries.scss b/frontend/src/styles/mixins/_media-queries.scss
deleted file mode 100644
index d413eab..0000000
--- a/frontend/src/styles/mixins/_media-queries.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-@use "../variables" as v;
-
-/* ============================================
-= Media queries =
-Use these mixins like this:
-.example-class{
- display: flex;
- flex-direction: row;
-
- @include media-min(xs){
- flex-direction: column;
- }
-}
-============================================ */
-
-@mixin media-min($breakpoint) {
- @media (min-width: v.get-media($breakpoint)) {
- @content;
- }
-}
-
-@mixin media-max($breakpoint) {
- @media (max-width: (v.get-media($breakpoint) - 1)) {
- @content;
- }
-}
-
-@mixin media-range($breakpoint-start, $breakpoint-end) {
- @media (min-width: v.get-media($breakpoint-start)) and (max-width: (v.get-media($breakpoint-end) - 1)) {
- @content;
- }
-}
diff --git a/frontend/src/styles/mixins/_normalize.scss b/frontend/src/styles/mixins/_normalize.scss
deleted file mode 100755
index 4d3159e..0000000
--- a/frontend/src/styles/mixins/_normalize.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ============================================
-= Normalize =
-============================================ */
-
-*,
-*:before,
-*:after {
- box-sizing: border-box;
-}
-
-ul {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-a,
-a:active,
-a:hover,
-a:visited {
- text-decoration: none;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-p {
- margin: 0;
-}
-
-html,
-body {
- margin: 0;
-}
-
-button {
- background: none;
- color: inherit;
- border: none;
- padding: 0;
- outline: inherit;
- appearance: none;
- cursor: pointer;
-}
-
-::-ms-reveal {
- display: none;
-}
-
-input::-webkit-outer-spin-button,
-input::-webkit-inner-spin-button {
- appearance: none;
- margin: 0;
-}
-
-input[type="number"] {
- appearance: textfield;
-}
diff --git a/frontend/src/themes/variables.ts b/frontend/src/themes/variables.ts
index 2f4a658..63d3470 100644
--- a/frontend/src/themes/variables.ts
+++ b/frontend/src/themes/variables.ts
@@ -2,16 +2,16 @@ import { CustomBorderRadius, CustomSpacing } from "@mui/material";
import { BreakpointsOptions, ZIndex } from "@mui/material/styles";
export const breakpoints: BreakpointsOptions["values"] = {
- xs: 640,
- sm: 768,
- md: 1024,
- lg: 1280,
- xl: 1440,
+ xs: 0,
+ sm: 600,
+ md: 900,
+ lg: 1200,
+ xl: 1536,
};
export const zIndex: Partial = {
- debugBanner: 100,
- cookieBanner: 200,
+ debugBanner: 1200,
+ cookieBanner: 1201,
loading: 1000,
};
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 3785c81..1819095 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -2987,10 +2987,17 @@ __metadata:
languageName: node
linkType: hard
-"csv-parse@npm:^5.5.6":
- version: 5.5.6
- resolution: "csv-parse@npm:5.5.6"
- checksum: 10c0/b4f6e9b885e4488829356455157bd009f3fed4119c5fbaadab1a879e85f0a9a1b62cd01e6de68ff77a50f820a6261722bce1b799da1ace2e2126e0b7c8d86760
+"csv-parse@npm:^5.6.0":
+ version: 5.6.0
+ resolution: "csv-parse@npm:5.6.0"
+ checksum: 10c0/52f5e6c45359902e0c8e57fc2eeed41366dc6b6d283b495b538dd50c8e8510413d6f924096ea056319cbbb8ed26e111c3a3485d7985c021bcf5abaa9e92425c7
+ languageName: node
+ linkType: hard
+
+"data-uri-to-buffer@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "data-uri-to-buffer@npm:4.0.1"
+ checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b
languageName: node
linkType: hard
@@ -3871,6 +3878,16 @@ __metadata:
languageName: node
linkType: hard
+"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4":
+ version: 3.2.0
+ resolution: "fetch-blob@npm:3.2.0"
+ dependencies:
+ node-domexception: "npm:^1.0.0"
+ web-streams-polyfill: "npm:^3.0.3"
+ checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69
+ languageName: node
+ linkType: hard
+
"file-entry-cache@npm:^6.0.1":
version: 6.0.1
resolution: "file-entry-cache@npm:6.0.1"
@@ -4025,6 +4042,15 @@ __metadata:
languageName: node
linkType: hard
+"formdata-polyfill@npm:^4.0.10":
+ version: 4.0.10
+ resolution: "formdata-polyfill@npm:4.0.10"
+ dependencies:
+ fetch-blob: "npm:^3.1.2"
+ checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6
+ languageName: node
+ linkType: hard
+
"fs-extra@npm:^7.0.1":
version: 7.0.1
resolution: "fs-extra@npm:7.0.1"
@@ -5763,6 +5789,24 @@ __metadata:
languageName: node
linkType: hard
+"node-domexception@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "node-domexception@npm:1.0.0"
+ checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b
+ languageName: node
+ linkType: hard
+
+"node-fetch@npm:^3.3.2":
+ version: 3.3.2
+ resolution: "node-fetch@npm:3.3.2"
+ dependencies:
+ data-uri-to-buffer: "npm:^4.0.0"
+ fetch-blob: "npm:^3.1.4"
+ formdata-polyfill: "npm:^4.0.10"
+ checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538
+ languageName: node
+ linkType: hard
+
"node-gyp@npm:latest":
version: 10.2.0
resolution: "node-gyp@npm:10.2.0"
@@ -6536,6 +6580,7 @@ __metadata:
"@vitejs/plugin-react": "npm:^4.3.1"
axios: "npm:^1.7.4"
classnames: "npm:^2.5.1"
+ csv-parse: "npm:^5.6.0"
dayjs: "npm:^1.11.11"
eclint: "npm:^2.8.1"
eslint: "npm:^8.57.0"
@@ -6545,6 +6590,7 @@ __metadata:
eslint-plugin-react-refresh: "npm:^0.4.7"
i18next: "npm:^23.11.5"
i18next-browser-languagedetector: "npm:^8.0.0"
+ node-fetch: "npm:^3.3.2"
postcss: "npm:^8.4.29"
prettier: "npm:^3.3.2"
prism-react-renderer: "npm:^2.3.1"
@@ -6558,7 +6604,6 @@ __metadata:
react-toastify: "npm:^10.0.5"
react-transition-group: "npm:^4.4.5"
sass: "npm:^1.77.6"
- sheet2i18n: "npm:^1.1.2"
stylelint: "npm:^16.6.1"
stylelint-config-prettier-scss: "npm:^1.0.0"
stylelint-config-standard-scss: "npm:^13.1.0"
@@ -7078,17 +7123,6 @@ __metadata:
languageName: node
linkType: hard
-"sheet2i18n@npm:^1.1.2":
- version: 1.1.2
- resolution: "sheet2i18n@npm:1.1.2"
- dependencies:
- csv-parse: "npm:^5.5.6"
- bin:
- sheet2i18n: bin/sheet2i18n.js
- checksum: 10c0/3afcc9abcc13e7addf2f7cf7d4314e5b6a153006a657e1c22257829d782a0a0663a274e364f90aee3507ec3c4f310f2069e32a17ea34e754b72f6edf60c61d57
- languageName: node
- linkType: hard
-
"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6":
version: 1.0.6
resolution: "side-channel@npm:1.0.6"
@@ -8121,6 +8155,13 @@ __metadata:
languageName: node
linkType: hard
+"web-streams-polyfill@npm:^3.0.3":
+ version: 3.3.3
+ resolution: "web-streams-polyfill@npm:3.3.3"
+ checksum: 10c0/64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f
+ languageName: node
+ linkType: hard
+
"webidl-conversions@npm:^7.0.0":
version: 7.0.0
resolution: "webidl-conversions@npm:7.0.0"