diff --git a/pwa/.vscode/settings.json b/pwa/.vscode/settings.json index 2f215149a..f199eef71 100644 --- a/pwa/.vscode/settings.json +++ b/pwa/.vscode/settings.json @@ -1,4 +1,8 @@ { "typescript.tsdk": "node_modules/.pnpm/typescript@4.8.3/node_modules/typescript/lib", - "typescript.enablePromptUseWorkspaceTsdk": true -} \ No newline at end of file + "typescript.enablePromptUseWorkspaceTsdk": true, + "tailwindCSS.experimental.configFile": { + "common.tailwind.config.js": ["app/(common)/**/*", "components/**/*"], + "con.tailwind.config.js": ["app/(con)/**/*", "components/con/**/*"] + } +} diff --git a/pwa/app/(common)/components/Cover.tsx b/pwa/app/(common)/components/Cover.tsx deleted file mode 100644 index 0ddbb9230..000000000 --- a/pwa/app/(common)/components/Cover.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import Image from "next/image"; -import Button from "components/common/Button"; -import Logo from "components/common/Logo"; -import classNames from "classnames"; -import ShapeSection from "components/common/ShapeSection"; - -export default function Cover() { - return ( - -
- -
- -
-
- -

- The API-first framework -

-
- - -
-
-
-
- ); -} diff --git a/pwa/app/(common)/components/Timeline.tsx b/pwa/app/(common)/components/Timeline.tsx index 5fc7a020b..47e007932 100644 --- a/pwa/app/(common)/components/Timeline.tsx +++ b/pwa/app/(common)/components/Timeline.tsx @@ -1,16 +1,15 @@ +"use client"; + +import { useSearchParams } from "next/navigation"; import classNames from "classnames"; import styles from "./Timeline.module.css"; -import InstallCode from "./timeline/Install.mdx"; -import ExposeCode from "./timeline/Expose.mdx"; -import PlugCode from "./timeline/Plug.mdx"; -import NativeCode from "./timeline/Native.mdx"; -import CodeBlock from "./timeline/CodeBlock"; -import StepContent from "./timeline/StepContent"; -import TimelineStepTitle from "./timeline/TimelineStepTitle"; -import ListPoint from "./timeline/ListPoint"; -import Link from "components/common/Link"; +import TimelineSymfony from "./timeline/TimelineSymfony"; +import TimelinePhp from "./timeline/TimelinePhp"; +import TimelineLaravel from "./timeline/TimelineLaravel"; export default function Timeline() { + const searchParams = useSearchParams(); + const stack = searchParams.get("s"); return (
-
- Install the framework - - Install Docker and optionally GitHub CLI. - - - - - -

- Your development environment is ready!{" "} -

- Continuous integration (GitHub Action) as well as recipes to deploy in - production with{" "} - - Docker Compose - {" "} - or{" "} - - Kubernetes - {" "} - are also pre-installed. -
- - Define the resources - - as PHP classes, or using OpenAPI - - - - - - - You get: -
    - - A stable state-of-the-art{" "} - - REST - {" "} - &{" "} - - GraphQL - {" "} - API - - - Automatic documentation{" "} - - OpenAPI - - , SwaggerUI, GraphiQL... - - - Support for standards and formats{" "} - - JSON-LD - - ,{" "} - - Hydra - - , JSON:API - -
-

- Alternatively,{" "} - - generate the classes from an existing RDF vocabulary - - . -
-
API Platform automatically exposes production-grade{" "} - - - HATEOAS - - {" "} - API for you! -

-
- - Plug your business & persistence logic - - - - - -

- The framework has been designed from the ground up to be usable from - Rapid Application Development contexts to{" "} - - Domain-Driven Design - {" "} - or Clean Architecture-like approaches. -

-

You can even mix both approaches!

-
- -

- ...or use the native integration with popular persistence libraries! -

- - - -
-

- API Platform can automatically{" "} - - retrieve - - ,{" "} - - persist - - ,{" "} - - paginate - {" "} - and{" "} - - validate - {" "} - data using the most popular database systems. -

-

- - PostgreSQL - - ,{" "} - - MongoDB - - ,{" "} - - ElasticSearch - - , SQLite, MySQL, MariaDB, SQL Server and Oracle are supported{" "} - - out of the box - - . -

-
- -

- You can also make your own{" "} - - persistence system - - ! -

-
- Customize! - -

- Customize every single behavior thanks to our carefully designed - - {" "} - extension points - - . -

-
-
-
+ {stack === "laravel" ? : stack === "symfony" ? : }
); } diff --git a/pwa/app/(common)/components/cover/Cover.tsx b/pwa/app/(common)/components/cover/Cover.tsx new file mode 100644 index 000000000..883805df9 --- /dev/null +++ b/pwa/app/(common)/components/cover/Cover.tsx @@ -0,0 +1,53 @@ +"use client"; +import { useSearchParams } from "next/navigation"; +import Button from "components/common/Button"; +import Logo from "components/common/Logo"; +import classNames from "classnames"; +import CoverCircleStacks from "./CoverCircleStacks"; +import StackSelector from "./StackSelector"; + +export default function Cover() { + const searchParams = useSearchParams(); + const stack = searchParams.get("s"); + + return ( +
+
+
+ +
+
+ +
+
+
+ +

+ The API-first framework +

+
+ +
+ +
+
+
+ ); +} diff --git a/pwa/app/(common)/components/cover/CoverCircleStacks.tsx b/pwa/app/(common)/components/cover/CoverCircleStacks.tsx new file mode 100644 index 000000000..23bcee795 --- /dev/null +++ b/pwa/app/(common)/components/cover/CoverCircleStacks.tsx @@ -0,0 +1,151 @@ +"use client"; +import classNames from "classnames"; +import { useSearchParams } from "next/navigation"; +import WebbyChoice from "./WebbyChoice"; +import LaravelSign from "./LaravelSign"; +import SymfonySign from "./SymfonySign"; +import { useCallback, useState } from "react"; + +export default function CoverCircleStacks() { + const searchParams = useSearchParams(); + const stack = searchParams.get("s"); + const [percentage, setPercentage] = useState(50); // Pourcentage + + const handleMouseMove = useCallback( + (event: React.MouseEvent) => { + const { left, top, width, height } = + event.currentTarget.getBoundingClientRect(); + const mouseX = event.clientX - left; + const mouseY = event.clientY - top; + + const percentX = (mouseX / width) * 100; + const percentY = (mouseY / height) * 100; + if (percentY > -20 && percentY < 10) setPercentage(Math.round(percentX)); + }, + [] + ); + + return ( +
+
+ +
+
+ {" "} + +
+
+ {" "} + +
+
+
+ +
+
+ +
+
+ + 55} + className={classNames( + "absolute cursor-pointer w-[18%] left-1/2 top-0 -translate-y-[80%] translate-x-[50%] z-40 transition-all duration-500 origin-bottom-left", + percentage > 55 && "scale-110" + )} + /> + +
+
+ ); +} diff --git a/pwa/app/(common)/components/cover/LaravelSign.tsx b/pwa/app/(common)/components/cover/LaravelSign.tsx new file mode 100644 index 000000000..2bbce1562 --- /dev/null +++ b/pwa/app/(common)/components/cover/LaravelSign.tsx @@ -0,0 +1,80 @@ +"use client"; + +import { useRouter, usePathname } from "next/navigation"; +import { useCallback } from "react"; + +export default function LaravelSign({ className, active }: { className: string, active: boolean }) { + const pathname = usePathname(); + const router = useRouter(); + + const onStackChoose = useCallback(() => { + router.replace(pathname + "?s=laravel"); + }, [pathname, router]); + + return ( + + + + + + + + + + + + + ); +} diff --git a/pwa/app/(common)/components/cover/StackSelector.tsx b/pwa/app/(common)/components/cover/StackSelector.tsx new file mode 100644 index 000000000..335973149 --- /dev/null +++ b/pwa/app/(common)/components/cover/StackSelector.tsx @@ -0,0 +1,144 @@ +"use client"; + +import classNames from "classnames"; +import { useSearchParams, useRouter, usePathname } from "next/navigation"; +import { useCallback } from "react"; + +export default function StackSelector() { + const searchParams = useSearchParams(); + const pathname = usePathname(); + const stack = searchParams.get("s"); + const router = useRouter(); + + const onStackChoose = useCallback( + (s?: string) => { + if (!s) router.replace(pathname); + else router.replace(pathname + "?s=" + s); + }, + [pathname, router] + ); + + return ( +
+

+ Choose your favorite stack : +

+
+
+
+ + {stack ? ( + + ) : ( +
+ + + + + + +
+ )} + +
+
+
+ ); +} diff --git a/pwa/app/(common)/components/cover/SymfonySign.tsx b/pwa/app/(common)/components/cover/SymfonySign.tsx new file mode 100644 index 000000000..bfe694757 --- /dev/null +++ b/pwa/app/(common)/components/cover/SymfonySign.tsx @@ -0,0 +1,82 @@ +"use client"; + +import { useRouter, usePathname } from "next/navigation"; +import { useCallback } from "react"; + +export default function SymfonySign({ + className, + active, +}: { + className: string; + active: boolean; +}) { + const pathname = usePathname(); + const router = useRouter(); + + const onStackChoose = useCallback(() => { + router.replace(pathname + "?s=symfony"); + }, [pathname, router]); + + return ( + + + + + + + + + + + + + + + + ); +} diff --git a/pwa/app/(common)/components/cover/WebbyChoice.tsx b/pwa/app/(common)/components/cover/WebbyChoice.tsx new file mode 100644 index 000000000..196b1d558 --- /dev/null +++ b/pwa/app/(common)/components/cover/WebbyChoice.tsx @@ -0,0 +1,199 @@ +type WebbyChoiceProps = { + className?: string; + percentEyes: number; +}; + +export default function WebbyChoice({ + className, + percentEyes, +}: WebbyChoiceProps) { + const minPos = -15; + const maxPos = 8; + + const positionEyes = minPos + (percentEyes / 100) * (maxPos - minPos); + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/pwa/app/(common)/components/timeline/TimelineLaravel.tsx b/pwa/app/(common)/components/timeline/TimelineLaravel.tsx new file mode 100644 index 000000000..6521a6a7e --- /dev/null +++ b/pwa/app/(common)/components/timeline/TimelineLaravel.tsx @@ -0,0 +1,229 @@ +"use client"; + +import InstallLaravelCode from "./laravel/InstallLaravelCode.mdx"; +import InstallCode from "./laravel/InstallCode.mdx"; +import NativeCode from "./laravel/Native.mdx"; +import ExposeCode from "./symfony/Expose.mdx"; +import CodeBlock from "./CodeBlock"; +import StepContent from "./StepContent"; +import TimelineStepTitle from "./TimelineStepTitle"; +import ListPoint from "./ListPoint"; +import Link from "components/common/Link"; + +export default function TimelineLaravel() { + return ( +
+ Install the framework + +

+ Installing Laravel +

+ + + + API Platform can be installed easily on new and existing Laravel + projects. If you already have an existing project, skip directly to the + next section. +
+ +

+ Installing API Platform +

+ + + +

+ In your Laravel project, install the API Platform integration for + Laravel. +

+
+ +

+ If it's not already done, run{" "} + + php artisan serve + {" "} + to start the built-in web server. +

+
+

+ Your development environment is ready!{" "} +

+
+ + Define the resources + + as PHP classes, or using OpenAPI + + + + + + + You get: +
    + + A stable state-of-the-art{" "} + + REST + {" "} + &{" "} + + GraphQL + {" "} + API + + + Automatic documentation{" "} + + OpenAPI + + , SwaggerUI, GraphiQL... + + + Support for standards and formats{" "} + + JSON-LD + + ,{" "} + + Hydra + + , JSON:API + +
+

+ Alternatively,{" "} + + generate the classes from an existing RDF vocabulary + + . +
+
API Platform automatically exposes production-grade{" "} + + + HATEOAS + + {" "} + API for you! +

+
+ +

+ ...or use the native integration with popular persistence libraries! +

+ + + +
+

+ API Platform can automatically{" "} + + retrieve + + ,{" "} + + persist + + ,{" "} + + paginate + {" "} + and{" "} + + validate + {" "} + data using the most popular database systems thanks to{" "} + + Eloquent + + . +

+
+

+ + PostgreSQL + + ,{" "} + + MongoDB + + ,{" "} + + ElasticSearch + + , SQLite, MySQL, MariaDB, SQL Server and Oracle are supported{" "} + + out of the box + + . +

+
+ +

+ You can also make your own{" "} + + persistence system + + ! +

+
+ Customize! + +

+ Customize every single behavior thanks to our carefully designed + + {" "} + extension points + + . +

+
+
+
+ ); +} diff --git a/pwa/app/(common)/components/timeline/TimelinePhp.tsx b/pwa/app/(common)/components/timeline/TimelinePhp.tsx new file mode 100644 index 000000000..897933299 --- /dev/null +++ b/pwa/app/(common)/components/timeline/TimelinePhp.tsx @@ -0,0 +1,217 @@ +"use client"; + +import InstallCode from "./php/InstallCode.mdx"; +import ExposeCode from "./symfony/Expose.mdx"; +import PlugCode from "./symfony/Plug.mdx"; +import NativeCode from "./symfony/Native.mdx"; +import CodeBlock from "./CodeBlock"; +import StepContent from "./StepContent"; +import TimelineStepTitle from "./TimelineStepTitle"; +import ListPoint from "./ListPoint"; +import Link from "components/common/Link"; + +export default function TimelineSymfony() { + return ( +
+ Install the framework + + Install the API Platform Framework + + + + + + Define the resources + + as PHP classes, or using OpenAPI + + + + + + + You get: +
    + + A stable state-of-the-art{" "} + + REST + {" "} + &{" "} + + GraphQL + {" "} + API + + + Automatic documentation{" "} + + OpenAPI + + , SwaggerUI, GraphiQL... + + + Support for standards and formats{" "} + + JSON-LD + + ,{" "} + + Hydra + + , JSON:API + +
+

+ Alternatively,{" "} + + generate the classes from an existing RDF vocabulary + + . +
+
API Platform automatically exposes production-grade{" "} + + + HATEOAS + + {" "} + API for you! +

+
+ + Plug your business & persistence logic + + + + + +

+ The framework has been designed from the ground up to be usable from + Rapid Application Development contexts to{" "} + + Domain-Driven Design + {" "} + or Clean Architecture-like approaches. +

+

You can even mix both approaches!

+
+ +

+ ...or use the native integration with popular persistence libraries! +

+
+

+ API Platform can automatically{" "} + + retrieve + + ,{" "} + + persist + + ,{" "} + + paginate + {" "} + and{" "} + + validate + {" "} + data using the most popular database systems thanks to{" "} + + Eloquent + {" "} + or{" "} + + Doctrine + + . +

+
+

+ + PostgreSQL + + ,{" "} + + MongoDB + + ,{" "} + + ElasticSearch + + , SQLite, MySQL, MariaDB, SQL Server and Oracle are supported{" "} + + out of the box + + . +

+
+ +

+ You can also make your own{" "} + + persistence system + + ! +

+
+ Customize! + +

+ Customize every single behavior thanks to our carefully designed + + {" "} + extension points + + . +

+
+
+
+ ); +} diff --git a/pwa/app/(common)/components/timeline/TimelineStepTitle.tsx b/pwa/app/(common)/components/timeline/TimelineStepTitle.tsx index 49bc505e0..52fd5c20f 100644 --- a/pwa/app/(common)/components/timeline/TimelineStepTitle.tsx +++ b/pwa/app/(common)/components/timeline/TimelineStepTitle.tsx @@ -13,7 +13,7 @@ export default function TimelineStepTitle({
{step}
-

+

{children}

diff --git a/pwa/app/(common)/components/timeline/TimelineSymfony.tsx b/pwa/app/(common)/components/timeline/TimelineSymfony.tsx new file mode 100644 index 000000000..b98b41425 --- /dev/null +++ b/pwa/app/(common)/components/timeline/TimelineSymfony.tsx @@ -0,0 +1,226 @@ +"use client"; + +import InstallCode from "./symfony/Install.mdx"; +import ExposeCode from "./symfony/Expose.mdx"; +import PlugCode from "./symfony/Plug.mdx"; +import NativeCode from "./symfony/Native.mdx"; +import CodeBlock from "./CodeBlock"; +import StepContent from "./StepContent"; +import TimelineStepTitle from "./TimelineStepTitle"; +import ListPoint from "./ListPoint"; +import Link from "components/common/Link"; + +export default function TimelineSymfony() { + return ( +
+ Install the framework + + Install Docker and optionally GitHub CLI. + + + + + +

+ Your development environment is ready!{" "} +

+ Continuous integration (GitHub Action) as well as recipes to deploy in + production with{" "} + + Docker Compose + {" "} + or{" "} + + Kubernetes + {" "} + are also pre-installed. +
+ + Define the resources + + as PHP classes, or using OpenAPI + + + + + + + You get: +
    + + A stable state-of-the-art{" "} + + REST + {" "} + &{" "} + + GraphQL + {" "} + API + + + Automatic documentation{" "} + + OpenAPI + + , SwaggerUI, GraphiQL... + + + Support for standards and formats{" "} + + JSON-LD + + ,{" "} + + Hydra + + , JSON:API + +
+

+ Alternatively,{" "} + + generate the classes from an existing RDF vocabulary + + . +
+
API Platform automatically exposes production-grade{" "} + + + HATEOAS + + {" "} + API for you! +

+
+ + Plug your business & persistence logic + + + + + +

+ The framework has been designed from the ground up to be usable from + Rapid Application Development contexts to{" "} + + Domain-Driven Design + {" "} + or Clean Architecture-like approaches. +

+

You can even mix both approaches!

+
+ +

+ ...or use the native integration with popular persistence libraries! +

+ + + +
+

+ API Platform can automatically{" "} + + retrieve + + ,{" "} + + persist + + ,{" "} + + paginate + {" "} + and{" "} + + validate + {" "} + data using the most popular database systems. +

+

+ + PostgreSQL + + ,{" "} + + MongoDB + + ,{" "} + + ElasticSearch + + , SQLite, MySQL, MariaDB, SQL Server and Oracle are supported{" "} + + out of the box + + . +

+
+ +

+ You can also make your own{" "} + + persistence system + + ! +

+
+ Customize! + +

+ Customize every single behavior thanks to our carefully designed + + {" "} + extension points + + . +

+
+
+
+ ); +} diff --git a/pwa/app/(common)/components/timeline/laravel/InstallCode.mdx b/pwa/app/(common)/components/timeline/laravel/InstallCode.mdx new file mode 100644 index 000000000..948997943 --- /dev/null +++ b/pwa/app/(common)/components/timeline/laravel/InstallCode.mdx @@ -0,0 +1,3 @@ +```bash +composer require api-platform/laravel +``` diff --git a/pwa/app/(common)/components/timeline/laravel/InstallLaravelCode.mdx b/pwa/app/(common)/components/timeline/laravel/InstallLaravelCode.mdx new file mode 100644 index 000000000..a94d3ddb4 --- /dev/null +++ b/pwa/app/(common)/components/timeline/laravel/InstallLaravelCode.mdx @@ -0,0 +1,4 @@ +```bash +composer create-project laravel/laravel my-api-platform-laravel-app +cd my-api-platform-laravel-app +``` diff --git a/pwa/app/(common)/components/timeline/laravel/Native.mdx b/pwa/app/(common)/components/timeline/laravel/Native.mdx new file mode 100644 index 000000000..d1996c324 --- /dev/null +++ b/pwa/app/(common)/components/timeline/laravel/Native.mdx @@ -0,0 +1,10 @@ +```php +namespace App\Models; + +use ApiPlatform\Metadata\ApiResource; +use Illuminate\Database\Eloquent\Model; + +#[ApiResource] +class Book extends Model +{ +} diff --git a/pwa/app/(common)/components/timeline/php/InstallCode.mdx b/pwa/app/(common)/components/timeline/php/InstallCode.mdx new file mode 100644 index 000000000..59a439afb --- /dev/null +++ b/pwa/app/(common)/components/timeline/php/InstallCode.mdx @@ -0,0 +1,3 @@ +```bash +composer require api-platform/core +``` diff --git a/pwa/app/(common)/components/timeline/Expose.mdx b/pwa/app/(common)/components/timeline/symfony/Expose.mdx similarity index 75% rename from pwa/app/(common)/components/timeline/Expose.mdx rename to pwa/app/(common)/components/timeline/symfony/Expose.mdx index 8881de8ec..6dc1cc081 100644 --- a/pwa/app/(common)/components/timeline/Expose.mdx +++ b/pwa/app/(common)/components/timeline/symfony/Expose.mdx @@ -3,6 +3,8 @@ namespace App\ApiResource; +use ApiPlatform\Metadata\ApiResource; + #[ApiResource] class Beer { diff --git a/pwa/app/(common)/components/timeline/Install.mdx b/pwa/app/(common)/components/timeline/symfony/Install.mdx similarity index 100% rename from pwa/app/(common)/components/timeline/Install.mdx rename to pwa/app/(common)/components/timeline/symfony/Install.mdx diff --git a/pwa/app/(common)/components/timeline/Native.mdx b/pwa/app/(common)/components/timeline/symfony/Native.mdx similarity index 100% rename from pwa/app/(common)/components/timeline/Native.mdx rename to pwa/app/(common)/components/timeline/symfony/Native.mdx diff --git a/pwa/app/(common)/components/timeline/Plug.mdx b/pwa/app/(common)/components/timeline/symfony/Plug.mdx similarity index 100% rename from pwa/app/(common)/components/timeline/Plug.mdx rename to pwa/app/(common)/components/timeline/symfony/Plug.mdx diff --git a/pwa/app/(common)/page.tsx b/pwa/app/(common)/page.tsx index bccf21d44..ff33074f2 100644 --- a/pwa/app/(common)/page.tsx +++ b/pwa/app/(common)/page.tsx @@ -1,5 +1,5 @@ import ClientGenerator from "./components/ClientGenerator"; -import Cover from "./components/Cover"; +import Cover from "./components/cover/Cover"; import Admin from "./components/Admin"; import RealTime from "./components/RealTime"; import Features from "./components/Features"; diff --git a/pwa/app/(con)/[locale]/con/[edition]/schedule/components/ScheduleDay.tsx b/pwa/app/(con)/[locale]/con/[edition]/schedule/components/ScheduleDay.tsx index 90c68b214..23d0aaf5a 100644 --- a/pwa/app/(con)/[locale]/con/[edition]/schedule/components/ScheduleDay.tsx +++ b/pwa/app/(con)/[locale]/con/[edition]/schedule/components/ScheduleDay.tsx @@ -90,14 +90,18 @@ export default function ScheduleDay({ return acc; }, [] as string[]); - const daySlug = slugify(day.title?.[locale] || ''); + const daySlug = slugify(day.title?.[locale] || ""); return day ? (
- -

- {day.title?.[locale]} -

+
+

+ {day.title?.[locale]} +

{" "} diff --git a/pwa/common.tailwind.config.js b/pwa/common.tailwind.config.js index 282c5f59a..22cc955ac 100644 --- a/pwa/common.tailwind.config.js +++ b/pwa/common.tailwind.config.js @@ -1,8 +1,10 @@ + // @ts-check // eslint-disable-next-line @typescript-eslint/no-var-requires const colors = require("tailwindcss/colors"); /** @type {import('tailwindcss').Config} */ + module.exports = { mode: 'jit', future: { diff --git a/pwa/components/common/Button.tsx b/pwa/components/common/Button.tsx index d24cc69f4..911b046a6 100644 --- a/pwa/components/common/Button.tsx +++ b/pwa/components/common/Button.tsx @@ -3,9 +3,8 @@ import React from "react"; import classNames from "classnames"; import Link from "components/common/Link"; -export interface ButtonProps - extends React.ButtonHTMLAttributes { - size?: "small" | "medium" | "large"; +export interface ButtonProps extends React.ButtonHTMLAttributes { + size?: "small" | "medium" | "large" | "extralarge"; className?: string; empty?: boolean; disabled?: boolean; @@ -39,6 +38,9 @@ export default function Button({ case "medium": sizeClassName = "text-base px-3 py-1"; break; + case "extralarge": + sizeClassName = "py-2 px-6 text-lg"; + break; default: sizeClassName = "py-1 px-5 text-lg"; } diff --git a/pwa/package.json b/pwa/package.json index 77f23fbe9..ff699c6e4 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -69,7 +69,7 @@ "@types/react-dom": "^18.2.7", "@types/sharp": "^0.31.1", "@typescript-eslint/eslint-plugin": "^5.62.0", - "autoprefixer": "^10.4.15", + "autoprefixer": "^10.4.20", "cpr": "^3.0.1", "encoding": "^0.1.13", "eslint": "^8.47.0", @@ -79,8 +79,8 @@ "eslint-plugin-next": "^0.0.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react-hooks": "^4.6.0", - "postcss": "^8.4.28", - "tailwindcss": "^3.3.3", + "postcss": "^8.4.45", + "tailwindcss": "^3.4.10", "ts-node": "^10.9.1", "typescript": "^5.1.6" }, diff --git a/pwa/pnpm-lock.yaml b/pwa/pnpm-lock.yaml index eaf87dad1..5011731a6 100644 --- a/pwa/pnpm-lock.yaml +++ b/pwa/pnpm-lock.yaml @@ -34,7 +34,7 @@ importers: version: 20.0.1 '@tailwindcss/typography': specifier: ^0.5.9 - version: 0.5.10(tailwindcss@3.3.3(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2))) + version: 0.5.10(tailwindcss@3.4.10(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2))) '@types/http-headers': specifier: ^3.0.0 version: 3.0.0 @@ -172,8 +172,8 @@ importers: specifier: ^5.62.0 version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.48.0)(typescript@5.2.2))(eslint@8.48.0)(typescript@5.2.2) autoprefixer: - specifier: ^10.4.15 - version: 10.4.15(postcss@8.4.29) + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.45) cpr: specifier: ^3.0.1 version: 3.0.1 @@ -202,11 +202,11 @@ importers: specifier: ^4.6.0 version: 4.6.0(eslint@8.48.0) postcss: - specifier: ^8.4.28 - version: 8.4.29 + specifier: ^8.4.45 + version: 8.4.45 tailwindcss: - specifier: ^3.3.3 - version: 3.3.3(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)) + specifier: ^3.4.10 + version: 3.4.10(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)) ts-node: specifier: ^10.9.1 version: 10.9.1(@types/node@18.17.14)(typescript@5.2.2) @@ -1080,6 +1080,9 @@ packages: '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.19': resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} @@ -1494,8 +1497,8 @@ packages: '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree-jsx@1.0.0': resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} @@ -1569,8 +1572,8 @@ packages: '@types/node@18.17.14': resolution: {integrity: sha512-ZE/5aB73CyGqgQULkLG87N9GnyGe5TcQjv34pwS8tfBs1IkCh0ASM69mydb2znqd6v0eX+9Ytvk6oQRqu8T1Vw==} - '@types/node@18.19.39': - resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} + '@types/node@18.19.50': + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} '@types/parse-json@4.0.0': resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} @@ -1887,8 +1890,8 @@ packages: autolinker@3.16.2: resolution: {integrity: sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==} - autoprefixer@10.4.15: - resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -1973,8 +1976,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2011,6 +2014,9 @@ packages: caniuse-lite@1.0.30001640: resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==} + caniuse-lite@1.0.30001658: + resolution: {integrity: sha512-N2YVqWbJELVdrnsW5p+apoQyYt51aBMSsBZki1XZEfeBCexcM/sf4xiAHcXQBkuOwJBXtWF7aW1sYX6tKebPHw==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2272,8 +2278,8 @@ packages: electron-to-chromium@1.4.508: resolution: {integrity: sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==} - electron-to-chromium@1.4.816: - resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} + electron-to-chromium@1.5.16: + resolution: {integrity: sha512-2gQpi2WYobXmz2q23FrOBYTLcI1O/P4heW3eqX+ldmPVDQELRqhiebV380EhlGG12NtnX1qbK/FHpN0ba+7bLA==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -2288,8 +2294,8 @@ packages: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} - enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} entities@3.0.1: @@ -2324,8 +2330,8 @@ packages: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-string-regexp@1.0.5: @@ -2628,8 +2634,8 @@ packages: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} - fraction.js@4.3.6: - resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} fromentries@1.3.2: resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} @@ -2702,6 +2708,7 @@ packages: glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} @@ -3030,8 +3037,8 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jiti@1.19.3: - resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==} + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true js-file-download@0.4.12: @@ -3414,6 +3421,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -3471,8 +3483,8 @@ packages: node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -3600,6 +3612,9 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -3653,14 +3668,14 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.29: - resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} + engines: {node: ^10 || ^12 || >=14} + potpack@2.0.0: resolution: {integrity: sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==} @@ -4070,6 +4085,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -4191,8 +4210,8 @@ packages: swagger-ui@5.6.2: resolution: {integrity: sha512-zY1YDUPDBJjIGXaiybD9hCtmiHzZD4+rNmz3rPj8kkSwiQnz+LCqUEXLkYEJ03PSFTsI/p4651j7zoyMCC2lCA==} - tailwindcss@3.3.3: - resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + tailwindcss@3.4.10: + resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} engines: {node: '>=14.0.0'} hasBin: true @@ -4229,8 +4248,8 @@ packages: uglify-js: optional: true - terser@5.31.1: - resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} + terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} engines: {node: '>=10'} hasBin: true @@ -4486,8 +4505,8 @@ packages: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} web-streams-polyfill@4.0.0-beta.3: @@ -5595,7 +5614,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.1': {} @@ -5613,6 +5632,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.19': dependencies: '@jridgewell/resolve-uri': 3.1.1 @@ -5621,7 +5642,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping@0.3.9': dependencies: @@ -6267,13 +6288,13 @@ snapshots: dependencies: tslib: 2.6.2 - '@tailwindcss/typography@0.5.10(tailwindcss@3.3.3(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)))': + '@tailwindcss/typography@0.5.10(tailwindcss@3.4.10(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.3.3(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)) + tailwindcss: 3.4.10(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)) '@tsconfig/node10@1.0.9': {} @@ -6299,10 +6320,10 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 8.56.10 + '@types/eslint': 9.6.1 '@types/estree': 1.0.5 - '@types/eslint@8.56.10': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -6377,7 +6398,7 @@ snapshots: '@types/node@18.17.14': {} - '@types/node@18.19.39': + '@types/node@18.19.50': dependencies: undici-types: 5.26.5 @@ -6783,14 +6804,14 @@ snapshots: dependencies: tslib: 2.6.2 - autoprefixer@10.4.15(postcss@8.4.29): + autoprefixer@10.4.20(postcss@8.4.45): dependencies: - browserslist: 4.21.10 - caniuse-lite: 1.0.30001527 - fraction.js: 4.3.6 + browserslist: 4.23.3 + caniuse-lite: 1.0.30001658 + fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.29 + picocolors: 1.1.0 + postcss: 8.4.45 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.5: {} @@ -6903,12 +6924,12 @@ snapshots: node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) - browserslist@4.23.1: + browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001640 - electron-to-chromium: 1.4.816 - node-releases: 2.0.14 - update-browserslist-db: 1.1.0(browserslist@4.23.1) + caniuse-lite: 1.0.30001658 + electron-to-chromium: 1.5.16 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) btoa-lite@1.0.0: {} @@ -6938,6 +6959,8 @@ snapshots: caniuse-lite@1.0.30001640: {} + caniuse-lite@1.0.30001658: {} + ccount@2.0.1: {} chalk@2.4.2: @@ -7159,7 +7182,7 @@ snapshots: electron-to-chromium@1.4.508: {} - electron-to-chromium@1.4.816: {} + electron-to-chromium@1.5.16: {} emoji-regex@9.2.2: {} @@ -7176,7 +7199,7 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - enhanced-resolve@5.17.0: + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -7266,7 +7289,7 @@ snapshots: escalade@3.1.1: {} - escalade@3.1.2: {} + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -7672,7 +7695,7 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.3 - fraction.js@4.3.6: {} + fraction.js@4.3.7: {} fromentries@1.3.2: {} @@ -8083,11 +8106,11 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.50 merge-stream: 2.0.0 supports-color: 8.1.1 - jiti@1.19.3: {} + jiti@1.21.6: {} js-file-download@0.4.12: {} @@ -8666,6 +8689,8 @@ snapshots: nanoid@3.3.6: {} + nanoid@3.3.7: {} + napi-build-utils@1.0.2: {} natural-compare-lite@1.4.0: {} @@ -8719,7 +8744,7 @@ snapshots: node-releases@2.0.13: {} - node-releases@2.0.14: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -8888,35 +8913,37 @@ snapshots: picocolors@1.0.1: {} + picocolors@1.1.0: {} + picomatch@2.3.1: {} pify@2.3.0: {} pirates@4.0.6: {} - postcss-import@15.1.0(postcss@8.4.29): + postcss-import@15.1.0(postcss@8.4.45): dependencies: - postcss: 8.4.29 + postcss: 8.4.45 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.4 - postcss-js@4.0.1(postcss@8.4.29): + postcss-js@4.0.1(postcss@8.4.45): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.29 + postcss: 8.4.45 - postcss-load-config@4.0.1(postcss@8.4.29)(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)): + postcss-load-config@4.0.1(postcss@8.4.45)(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)): dependencies: lilconfig: 2.1.0 yaml: 2.3.2 optionalDependencies: - postcss: 8.4.29 + postcss: 8.4.45 ts-node: 10.9.1(@types/node@18.17.14)(typescript@5.2.2) - postcss-nested@6.0.1(postcss@8.4.29): + postcss-nested@6.0.1(postcss@8.4.45): dependencies: - postcss: 8.4.29 + postcss: 8.4.45 postcss-selector-parser: 6.0.13 postcss-selector-parser@6.0.10: @@ -8931,18 +8958,18 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.29: - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - postcss@8.4.31: dependencies: nanoid: 3.3.6 picocolors: 1.0.1 source-map-js: 1.0.2 + postcss@8.4.45: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.0 + potpack@2.0.0: {} prebuild-install@7.1.1: @@ -9412,6 +9439,8 @@ snapshots: source-map-js@1.0.2: {} + source-map-js@1.2.0: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -9503,7 +9532,7 @@ snapshots: sucrase@3.34.0: dependencies: - '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -9597,7 +9626,7 @@ snapshots: - encoding - react-native - tailwindcss@3.3.3(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)): + tailwindcss@3.4.10(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -9607,17 +9636,17 @@ snapshots: fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.19.3 + jiti: 1.21.6 lilconfig: 2.1.0 micromatch: 4.0.5 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.29 - postcss-import: 15.1.0(postcss@8.4.29) - postcss-js: 4.0.1(postcss@8.4.29) - postcss-load-config: 4.0.1(postcss@8.4.29)(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)) - postcss-nested: 6.0.1(postcss@8.4.29) + picocolors: 1.1.0 + postcss: 8.4.45 + postcss-import: 15.1.0(postcss@8.4.45) + postcss-js: 4.0.1(postcss@8.4.45) + postcss-load-config: 4.0.1(postcss@8.4.45)(ts-node@10.9.1(@types/node@18.17.14)(typescript@5.2.2)) + postcss-nested: 6.0.1(postcss@8.4.45) postcss-selector-parser: 6.0.13 resolve: 1.22.4 sucrase: 3.34.0 @@ -9659,10 +9688,10 @@ snapshots: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.1 + terser: 5.31.6 webpack: 5.88.2 - terser@5.31.1: + terser@5.31.6: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -9889,11 +9918,11 @@ snapshots: escalade: 3.1.1 picocolors: 1.0.0 - update-browserslist-db@1.1.0(browserslist@4.23.1): + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: - browserslist: 4.23.1 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 uri-js@4.4.1: dependencies: @@ -9951,7 +9980,7 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - watchpack@2.4.1: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -9974,9 +10003,9 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.1 acorn-import-assertions: 1.9.0(acorn@8.12.1) - browserslist: 4.23.1 + browserslist: 4.23.3 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 @@ -9989,7 +10018,7 @@ snapshots: schema-utils: 3.3.0 tapable: 2.2.1 terser-webpack-plugin: 5.3.10(webpack@5.88.2) - watchpack: 2.4.1 + watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' diff --git a/pwa/public/images/cover/choice-back.svg b/pwa/public/images/cover/choice-back.svg new file mode 100644 index 000000000..5d998039d --- /dev/null +++ b/pwa/public/images/cover/choice-back.svg @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pwa/public/images/cover/laravel-back.svg b/pwa/public/images/cover/laravel-back.svg new file mode 100644 index 000000000..96a8a5d67 --- /dev/null +++ b/pwa/public/images/cover/laravel-back.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pwa/public/images/cover/laravel-front.svg b/pwa/public/images/cover/laravel-front.svg new file mode 100644 index 000000000..6b4ee46f5 --- /dev/null +++ b/pwa/public/images/cover/laravel-front.svg @@ -0,0 +1,606 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pwa/public/images/cover/symfony-back.svg b/pwa/public/images/cover/symfony-back.svg new file mode 100644 index 000000000..53241807d --- /dev/null +++ b/pwa/public/images/cover/symfony-back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pwa/public/images/cover/symfony-front.svg b/pwa/public/images/cover/symfony-front.svg new file mode 100644 index 000000000..e0a086203 --- /dev/null +++ b/pwa/public/images/cover/symfony-front.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +