From 12e50c8af135d2bcd6bfd950282597b9fd55e0ef Mon Sep 17 00:00:00 2001 From: Frederico Estrela Gaiva Date: Fri, 8 Dec 2023 15:12:58 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20=E2=9C=8F=EF=B8=8F=20prepares=20hooks?= =?UTF-8?q?=20docs=20to=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- global.d.ts | 2 + package.json | 6 +- src/app-example/app.html | 14 + src/app-example/app.tsx | 60 ++++ src/app-example/index.html | 12 + src/app-example/index.ts | 7 + src/app-example/pages/Index.tsx | 31 ++ src/app-example/pages/UseInfo.tsx | 25 ++ src/app-example/pages/UseMiro.tsx | 10 + src/app-example/pages/UseOnlineUsers.tsx | 31 ++ src/app-example/pages/UseSelectedItems.tsx | 31 ++ src/app-example/pages/UseViewport.tsx | 64 ++++ src/app-example/pages/UserCurrentUser.tsx | 20 ++ src/useCurrentUser/useCurrentUser.md | 42 ++- src/useInfo/useInfo.md | 51 ++- src/useMiro/useMiro.md | 31 +- src/useOnlineUsers/useOnlineUsers.md | 53 ++- src/useSelectedItems/useSelectedItems.md | 52 ++- src/useViewport/useViewport.md | 85 ++++- vite.config.ts | 32 ++ yarn.lock | 385 ++++++++++++++++++++- 21 files changed, 1035 insertions(+), 9 deletions(-) create mode 100644 global.d.ts create mode 100644 src/app-example/app.html create mode 100644 src/app-example/app.tsx create mode 100644 src/app-example/index.html create mode 100644 src/app-example/index.ts create mode 100644 src/app-example/pages/Index.tsx create mode 100644 src/app-example/pages/UseInfo.tsx create mode 100644 src/app-example/pages/UseMiro.tsx create mode 100644 src/app-example/pages/UseOnlineUsers.tsx create mode 100644 src/app-example/pages/UseSelectedItems.tsx create mode 100644 src/app-example/pages/UseViewport.tsx create mode 100644 src/app-example/pages/UserCurrentUser.tsx create mode 100644 vite.config.ts diff --git a/global.d.ts b/global.d.ts new file mode 100644 index 0000000..18b40cc --- /dev/null +++ b/global.d.ts @@ -0,0 +1,2 @@ +// https://vitejs.dev/guide/features.html#typescript-compiler-options +/// diff --git a/package.json b/package.json index d641e83..840dc62 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "typings": "lib/indeqx.d.ts", "scripts": { "start": "jest --watchAll --silent --coverage", + "app": "yarn build && vite", "test": "jest --maxWorkers 2", "test:ci": "jest --coverage", "commit": "cz", @@ -57,6 +58,7 @@ "@testing-library/react-hooks": "^8.0.1", "@types/jest": "^29.5.10", "@typescript-eslint/eslint-plugin": "^6.4.0", + "@vitejs/plugin-react": "^4.2.1", "commit-and-tag-version": "^12.0.0", "commitizen": "^4.3.0", "concurrently": "^8.2.2", @@ -77,10 +79,12 @@ "prettier": "^3.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router-dom": "^6.20.1", "rimraf": "^5.0.5", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", - "typescript": "*" + "typescript": "*", + "vite": "^5.0.7" }, "config": { "commitizen": { diff --git a/src/app-example/app.html b/src/app-example/app.html new file mode 100644 index 0000000..b6b3742 --- /dev/null +++ b/src/app-example/app.html @@ -0,0 +1,14 @@ + + + + + + + Miro - React hooks app example + + +
+ + + + diff --git a/src/app-example/app.tsx b/src/app-example/app.tsx new file mode 100644 index 0000000..7fe4581 --- /dev/null +++ b/src/app-example/app.tsx @@ -0,0 +1,60 @@ +"use client"; + +import * as React from "react"; +import { createRoot } from "react-dom/client"; +import { createBrowserRouter, RouterProvider } from "react-router-dom"; + +import { MiroProvider } from "../../esm"; + +import { UseCurrentUser } from "./pages/UserCurrentUser"; +import { Index } from "./pages/Index"; +import { Miro } from "./pages/UseMiro"; +import { UseInfo } from "./pages/UseInfo"; +import { UseOnlineUsers } from "./pages/UseOnlineUsers"; +import { UseSelectedItems } from "./pages/UseSelectedItems"; +import { UseViewport } from "./pages/UseViewport"; + +const router = createBrowserRouter([ + { + path: "/app.html", + element: , + }, + { + path: "/miro", + element: , + }, + { + path: "/use-current-user", + element: , + }, + { + path: "/use-info", + element: , + }, + { + path: "/use-online-users", + element: , + }, + { + path: "/use-selected-items", + element: , + }, + { + path: "/use-viewport", + element: , + }, +]); + +const App = () => { + return ( + + + + + + ); +}; + +const container = document.getElementById("root")!; +const root = createRoot(container); +root.render(); diff --git a/src/app-example/index.html b/src/app-example/index.html new file mode 100644 index 0000000..b0fe182 --- /dev/null +++ b/src/app-example/index.html @@ -0,0 +1,12 @@ + + + + + + + Miro - React hooks app example + + + + + diff --git a/src/app-example/index.ts b/src/app-example/index.ts new file mode 100644 index 0000000..ba766d0 --- /dev/null +++ b/src/app-example/index.ts @@ -0,0 +1,7 @@ +export async function init() { + miro.board.ui.on("icon:click", async () => { + await miro.board.ui.openPanel({ url: "app.html" }); + }); +} + +init(); diff --git a/src/app-example/pages/Index.tsx b/src/app-example/pages/Index.tsx new file mode 100644 index 0000000..2ac5b13 --- /dev/null +++ b/src/app-example/pages/Index.tsx @@ -0,0 +1,31 @@ +"use client"; + +import * as React from "react"; +import { Link } from "react-router-dom"; + +export const Index: React.FC = () => { + return ( +
+
    +
  • + useMiro +
  • +
  • + useCurrentUser +
  • +
  • + useInfo +
  • +
  • + useOnlineUsers +
  • +
  • + useSelectedItems +
  • +
  • + useViewport +
  • +
+
+ ); +}; diff --git a/src/app-example/pages/UseInfo.tsx b/src/app-example/pages/UseInfo.tsx new file mode 100644 index 0000000..56bec7c --- /dev/null +++ b/src/app-example/pages/UseInfo.tsx @@ -0,0 +1,25 @@ +"use client"; + +import * as React from "react"; +import { useInfo } from "../../../esm"; + +export const UseInfo: React.FC = () => { + const { status, error, result } = useInfo(); + + if (status === "loading") { + return

Fetching board info...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return ( +
+

Current board info

+
{JSON.stringify(result, null, 2)}
+
+ ); + } +}; diff --git a/src/app-example/pages/UseMiro.tsx b/src/app-example/pages/UseMiro.tsx new file mode 100644 index 0000000..9b4b01e --- /dev/null +++ b/src/app-example/pages/UseMiro.tsx @@ -0,0 +1,10 @@ +"use client"; + +import * as React from "react"; +import { useMiro } from "../../../esm"; + +export const Miro: React.FC = () => { + const miro = useMiro(); + + return
{JSON.stringify(miro, null, 2)}
; +}; diff --git a/src/app-example/pages/UseOnlineUsers.tsx b/src/app-example/pages/UseOnlineUsers.tsx new file mode 100644 index 0000000..f30baf4 --- /dev/null +++ b/src/app-example/pages/UseOnlineUsers.tsx @@ -0,0 +1,31 @@ +"use client"; + +import * as React from "react"; +import { useOnlineUsers } from "../../../esm"; + +export const UseOnlineUsers: React.FC = () => { + const { status, result, error } = useOnlineUsers(); + + if (status === "loading") { + return

Fetching online users...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return ( +
+

Online users

+
    + {result.map((user) => ( +
  • + #{user.id} - {user.name} +
  • + ))} +
+
+ ); + } +}; diff --git a/src/app-example/pages/UseSelectedItems.tsx b/src/app-example/pages/UseSelectedItems.tsx new file mode 100644 index 0000000..cb5f335 --- /dev/null +++ b/src/app-example/pages/UseSelectedItems.tsx @@ -0,0 +1,31 @@ +"use client"; + +import * as React from "react"; +import { useSelectedItems } from "../../../esm"; + +export const UseSelectedItems: React.FC = () => { + const { status, result, error } = useSelectedItems(); + + if (status === "loading") { + return

Fetching selected items...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return ( +
+

Selected items:

+
    + {result.map((item) => ( +
  • + #{item.id} - {item.type} +
  • + ))} +
+
+ ); + } +}; diff --git a/src/app-example/pages/UseViewport.tsx b/src/app-example/pages/UseViewport.tsx new file mode 100644 index 0000000..1963a41 --- /dev/null +++ b/src/app-example/pages/UseViewport.tsx @@ -0,0 +1,64 @@ +"use client"; + +import * as React from "react"; +import { useSelectedItems, useViewport } from "../../../esm"; + +export const UseViewport: React.FC = () => { + const { status, result, error, set, zoomTo } = useViewport(); + const selected = useSelectedItems(); + + if (status === "loading") { + return

Fetching viewport...

; + } + + if (error) { + return

Something went wrong

; + } + + const handleSetViewport = async () => { + await set({ + viewport: { + x: 200, + y: 100, + width: 1280, + height: 720, + }, + padding: { + top: 100, + left: 200, + bottom: 50, + right: 20, + }, + animationDurationInMs: 1000, + }); + }; + + const handleZoomTo = async () => { + if (selected.result.length < 1) { + return; + } + + await zoomTo(selected.result); + }; + + if (status === "success") { + return ( +
+

Selected items:

+
    +
  • + X and Y: {result?.x} x {result?.y} +
  • +
  • + Size (WxH): {result?.width} x {result?.height} +
  • +
  • Zoom level {result?.zoomLevel}
  • +
+ + +
+ ); + } +}; diff --git a/src/app-example/pages/UserCurrentUser.tsx b/src/app-example/pages/UserCurrentUser.tsx new file mode 100644 index 0000000..8290fb3 --- /dev/null +++ b/src/app-example/pages/UserCurrentUser.tsx @@ -0,0 +1,20 @@ +"use client"; + +import * as React from "react"; +import { useCurrentUser } from "../../../esm"; + +export const UseCurrentUser: React.FC = () => { + const { status, result, error } = useCurrentUser(); + + if (status === "loading") { + return

Fetching user...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return

The current user is "{result?.name}"

; + } +}; diff --git a/src/useCurrentUser/useCurrentUser.md b/src/useCurrentUser/useCurrentUser.md index 6609035..5a39d1b 100644 --- a/src/useCurrentUser/useCurrentUser.md +++ b/src/useCurrentUser/useCurrentUser.md @@ -1,3 +1,43 @@ # useCurrentUser -Get current [Miro user](https://developers.miro.com/docs/websdk-reference-board#getuserinfo). \ No newline at end of file +Get current [Miro user](https://developers.miro.com/docs/websdk-reference-board#getuserinfo). + +**Note**: Make sure you are running this code in a configured [Miro WebSDK app](https://developers.miro.com/docs/build-your-first-hello-world-app). + +## Example + + +```tsx +import * as React from "react"; +import { createRoot } from "react-dom/client"; +import { useCurrentUser } from "@mirohq/websdk-react-hooks"; + +const CurrentUser: React.FC = () => { + const { status, result, error } = useCurrentUser(); + + if (status === "loading") { + return

Fetching user...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return

The current user is "{result?.name}"

; + } +} + +const App = () => { + return ( + + + + ) +}; + + +const container = document.getElementById("root")!; +const root = createRoot(container); +root.render(); +``` \ No newline at end of file diff --git a/src/useInfo/useInfo.md b/src/useInfo/useInfo.md index b758102..bdf841b 100644 --- a/src/useInfo/useInfo.md +++ b/src/useInfo/useInfo.md @@ -1,3 +1,52 @@ # useInfo -Get [Miro board info](https://developers.miro.com/docs/websdk-reference-board#getinfo). \ No newline at end of file +Get [Miro board info](https://developers.miro.com/docs/websdk-reference-board#getinfo). + +# useCurrentUser + +Get current [Miro user](https://developers.miro.com/docs/websdk-reference-board#getuserinfo). + +**Note**: Make sure you are running this code in a configured [Miro WebSDK app](https://developers.miro.com/docs/build-your-first-hello-world-app). + +## Example + + +```tsx +import * as React from "react"; +import { createRoot } from "react-dom/client"; +import { useInfo } from "@mirohq/websdk-react-hooks"; + +export const UseInfo: React.FC = () => { + const { status, error, result } = useInfo(); + + if (status === "loading") { + return

Fetching board info...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return ( +
+

Current board info

+
{JSON.stringify(result, null, 2)}
+
+ ); + } +}; + +const App = () => { + return ( + + + + ) +}; + + +const container = document.getElementById("root")!; +const root = createRoot(container); +root.render(); +``` \ No newline at end of file diff --git a/src/useMiro/useMiro.md b/src/useMiro/useMiro.md index 39e5871..e78b1f1 100644 --- a/src/useMiro/useMiro.md +++ b/src/useMiro/useMiro.md @@ -1,3 +1,32 @@ # useMiro -Access Miro SDK reference from React Context. \ No newline at end of file +Access Miro SDK reference from React Context. + +**Note**: Make sure you are running this code in a configured [Miro WebSDK app](https://developers.miro.com/docs/build-your-first-hello-world-app). + +## Example + + +```tsx +import * as React from "react"; +import { createRoot } from "react-dom/client"; +import { useMiro } from "@mirohq/websdk-react-hooks"; + +export const Miro: React.FC = () => { + const miro = useMiro(); + + return
{JSON.stringify(miro, null, 2)}
; +}; + +const App = () => { + return ( + + + + ) +}; + +const container = document.getElementById("root")!; +const root = createRoot(container); +root.render(); +``` \ No newline at end of file diff --git a/src/useOnlineUsers/useOnlineUsers.md b/src/useOnlineUsers/useOnlineUsers.md index bc25b21..543769e 100644 --- a/src/useOnlineUsers/useOnlineUsers.md +++ b/src/useOnlineUsers/useOnlineUsers.md @@ -1,3 +1,54 @@ # useOnlineUsers -Get [online users](https://developers.miro.com/docs/websdk-reference-board#getonlineusers) in a Miro board. \ No newline at end of file +Get [online users](https://developers.miro.com/docs/websdk-reference-board#getonlineusers) in a Miro board. + +**Note**: Make sure you are running this code in a configured [Miro WebSDK app](https://developers.miro.com/docs/build-your-first-hello-world-app). + +## Example + + +```tsx +import * as React from "react"; +import { createRoot } from "react-dom/client"; +import { useOnlineUsers } from "@mirohq/websdk-react-hooks"; + +export const UseOnlineUsers: React.FC = () => { + const { status, result, error } = useOnlineUsers(); + + if (status === "loading") { + return

Fetching online users...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return ( +
+

Online users

+
    + {result.map((user) => ( +
  • + #{user.id} - {user.name} +
  • + ))} +
+
+ ); + } +}; + + +const App = () => { + return ( + + + + ) +}; + +const container = document.getElementById("root")!; +const root = createRoot(container); +root.render(); +``` \ No newline at end of file diff --git a/src/useSelectedItems/useSelectedItems.md b/src/useSelectedItems/useSelectedItems.md index e3f3712..803d57c 100644 --- a/src/useSelectedItems/useSelectedItems.md +++ b/src/useSelectedItems/useSelectedItems.md @@ -1,3 +1,53 @@ # useSelectedItems -List [selected items](https://developers.miro.com/docs/websdk-reference-board#getselection) with possible predicate filter. \ No newline at end of file +List [selected items](https://developers.miro.com/docs/websdk-reference-board#getselection) with possible predicate filter. + +**Note**: Make sure you are running this code in a configured [Miro WebSDK app](https://developers.miro.com/docs/build-your-first-hello-world-app). + +## Example + + +```tsx +import * as React from "react"; +import { createRoot } from "react-dom/client"; +import { useSelectedItems } from "@mirohq/websdk-react-hooks"; + +export const UseSelectedItems: React.FC = () => { + const { status, result, error } = useSelectedItems(); + + if (status === "loading") { + return

Fetching selected items...

; + } + + if (error) { + return

Something went wrong

; + } + + if (status === "success") { + return ( +
+

Selected items:

+
    + {result.map((item) => ( +
  • + #{item.id} - {item.type} +
  • + ))} +
+
+ ); + } +}; + +const App = () => { + return ( + + + + ) +}; + +const container = document.getElementById("root")!; +const root = createRoot(container); +root.render(); +``` \ No newline at end of file diff --git a/src/useViewport/useViewport.md b/src/useViewport/useViewport.md index 01188e0..dd11975 100644 --- a/src/useViewport/useViewport.md +++ b/src/useViewport/useViewport.md @@ -1,3 +1,86 @@ # useViewport -Interact with [Miro viewport](https://developers.miro.com/docs/websdk-reference-viewport). \ No newline at end of file +Interact with [Miro viewport](https://developers.miro.com/docs/websdk-reference-viewport). + +**Note**: Make sure you are running this code in a configured [Miro WebSDK app](https://developers.miro.com/docs/build-your-first-hello-world-app). + +## Example + + +```tsx +import * as React from "react"; +import { createRoot } from "react-dom/client"; +import { useViewport, useSelectedItems } from "@mirohq/websdk-react-hooks"; + +export const UseViewport: React.FC = () => { + const { status, result, error, set, zoomTo } = useViewport(); + const selected = useSelectedItems(); + + if (status === "loading") { + return

Fetching viewport...

; + } + + if (error) { + return

Something went wrong

; + } + + const handleSetViewport = async () => { + await set({ + viewport: { + x: 200, + y: 100, + width: 1280, + height: 720, + }, + padding: { + top: 100, + left: 200, + bottom: 50, + right: 20, + }, + animationDurationInMs: 1000, + }); + }; + + const handleZoomTo = async () => { + if (selected.result.length < 1) { + return; + } + + await zoomTo(selected.result); + }; + + if (status === "success") { + return ( +
+

Selected items:

+
    +
  • + X and Y: {result?.x} x {result?.y} +
  • +
  • + Size (WxH): {result?.width} x {result?.height} +
  • +
  • Zoom level {result?.zoomLevel}
  • +
+ + +
+ ); + } +}; + +const App = () => { + return ( + + + + ) +}; + +const container = document.getElementById("root")!; +const root = createRoot(container); +root.render(); +``` \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..549a62c --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,32 @@ +import path from "path"; +import fs from "fs"; +import dns from "dns"; +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +// https://vitejs.dev/config/server-options.html#server-host +dns.setDefaultResultOrder("verbatim"); + +// make sure vite picks up all html files in root, needed for vite build +const allHtmlEntries = fs + .readdirSync("./src/app-example") + .filter((file) => path.extname(file) === ".html") + .reduce((acc, file) => { + acc[path.basename(file, ".html")] = path.resolve(__dirname, file); + + return acc; + }, {}); + +// https://vitejs.dev/config/ +export default defineConfig({ + root: "./src/app-example", + build: { + rollupOptions: { + input: allHtmlEntries, + }, + }, + plugins: [react()], + server: { + port: 3000, + }, +}); diff --git a/yarn.lock b/yarn.lock index 3219a88..c13e0ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,6 +23,14 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" +"@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" @@ -49,6 +57,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/eslint-parser@^7.16.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz#7bf0db1c53b54da0c8a12627373554a0828479ca" @@ -68,6 +97,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== + dependencies: + "@babel/types" "^7.23.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -257,6 +296,15 @@ "@babel/traverse" "^7.23.4" "@babel/types" "^7.23.4" +"@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" + "@babel/highlight@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" @@ -271,6 +319,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== +"@babel/parser@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" @@ -842,6 +895,20 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.22.5" +"@babel/plugin-transform-react-jsx-self@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz#ed3e7dadde046cce761a8e3cf003a13d1a7972d9" + integrity sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-source@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz#03527006bdc8775247a78643c51d4e715fe39a3e" + integrity sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" @@ -1127,6 +1194,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" @@ -1136,6 +1219,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1319,6 +1411,116 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@esbuild/android-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz#fb7130103835b6d43ea499c3f30cfb2b2ed58456" + integrity sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA== + +"@esbuild/android-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.8.tgz#b46e4d9e984e6d6db6c4224d72c86b7757e35bcb" + integrity sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA== + +"@esbuild/android-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.8.tgz#a13db9441b5a4f4e4fec4a6f8ffacfea07888db7" + integrity sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A== + +"@esbuild/darwin-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz#49f5718d36541f40dd62bfdf84da9c65168a0fc2" + integrity sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw== + +"@esbuild/darwin-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz#75c5c88371eea4bfc1f9ecfd0e75104c74a481ac" + integrity sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q== + +"@esbuild/freebsd-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz#9d7259fea4fd2b5f7437b52b542816e89d7c8575" + integrity sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw== + +"@esbuild/freebsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz#abac03e1c4c7c75ee8add6d76ec592f46dbb39e3" + integrity sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg== + +"@esbuild/linux-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz#c577932cf4feeaa43cb9cec27b89cbe0df7d9098" + integrity sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ== + +"@esbuild/linux-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz#d6014d8b98b5cbc96b95dad3d14d75bb364fdc0f" + integrity sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ== + +"@esbuild/linux-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz#2379a0554307d19ac4a6cdc15b08f0ea28e7a40d" + integrity sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ== + +"@esbuild/linux-loong64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz#e2a5bbffe15748b49356a6cd7b2d5bf60c5a7123" + integrity sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ== + +"@esbuild/linux-mips64el@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz#1359331e6f6214f26f4b08db9b9df661c57cfa24" + integrity sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q== + +"@esbuild/linux-ppc64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz#9ba436addc1646dc89dae48c62d3e951ffe70951" + integrity sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg== + +"@esbuild/linux-riscv64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz#fbcf0c3a0b20f40b5fc31c3b7695f0769f9de66b" + integrity sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg== + +"@esbuild/linux-s390x@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz#989e8a05f7792d139d5564ffa7ff898ac6f20a4a" + integrity sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg== + +"@esbuild/linux-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz#b187295393a59323397fe5ff51e769ec4e72212b" + integrity sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg== + +"@esbuild/netbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz#c1ec0e24ea82313cb1c7bae176bd5acd5bde7137" + integrity sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw== + +"@esbuild/openbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz#0c5b696ac66c6d70cf9ee17073a581a28af9e18d" + integrity sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ== + +"@esbuild/sunos-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz#2a697e1f77926ff09fcc457d8f29916d6cd48fb1" + integrity sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w== + +"@esbuild/win32-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz#ec029e62a2fca8c071842ecb1bc5c2dd20b066f1" + integrity sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg== + +"@esbuild/win32-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz#cbb9a3146bde64dc15543e48afe418c7a3214851" + integrity sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw== + +"@esbuild/win32-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz#c8285183dbdb17008578dbacb6e22748709b4822" + integrity sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA== + "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1704,6 +1906,76 @@ dependencies: "@react-hookz/deep-equal" "^1.0.4" +"@remix-run/router@1.13.1": + version "1.13.1" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.13.1.tgz#07e2a8006f23a3bc898b3f317e0a58cc8076b86e" + integrity sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q== + +"@rollup/rollup-android-arm-eabi@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.7.0.tgz#c144935afdf83e3da0ddea4d903360f99f69c79a" + integrity sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw== + +"@rollup/rollup-android-arm64@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.7.0.tgz#4e05031399a9c795612c9694827ec4ba55771bec" + integrity sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA== + +"@rollup/rollup-darwin-arm64@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.7.0.tgz#196018fa70b525a893a949fe8e1eeb797d9a7227" + integrity sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg== + +"@rollup/rollup-darwin-x64@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.7.0.tgz#484937c6b987bebaeccdae774977ad4bf7bcd940" + integrity sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw== + +"@rollup/rollup-linux-arm-gnueabihf@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.7.0.tgz#c495ba7aa13427aaeb4ea0864ab9c2a3d5aa9c09" + integrity sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg== + +"@rollup/rollup-linux-arm64-gnu@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.7.0.tgz#0ef4ef25e83f610b56d94a5a1fffa27220d5224d" + integrity sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg== + +"@rollup/rollup-linux-arm64-musl@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.7.0.tgz#d75add714d898cee4e4a5baeb2e30641e483b0e3" + integrity sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw== + +"@rollup/rollup-linux-riscv64-gnu@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.7.0.tgz#b7ed4894b44a47f4145cce77175fe578d1379863" + integrity sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA== + +"@rollup/rollup-linux-x64-gnu@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.7.0.tgz#bccd53f20de2c1b1e7024898dc5b69375a5abe4e" + integrity sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg== + +"@rollup/rollup-linux-x64-musl@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.7.0.tgz#554315d4f252f9f324da587fbf5048aaaf1da12e" + integrity sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg== + +"@rollup/rollup-win32-arm64-msvc@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.7.0.tgz#95902325d07919e25dff32be9428acbc1b889101" + integrity sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g== + +"@rollup/rollup-win32-ia32-msvc@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.7.0.tgz#f9ca12cc03ebca191ff6b832785c5a5e1974cf55" + integrity sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g== + +"@rollup/rollup-win32-x64-msvc@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.7.0.tgz#1ad18d12c21d09a12d88c904647f1ea64123c32e" + integrity sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q== + "@rushstack/eslint-patch@^1.1.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz#1898e7a7b943680d757417a47fb10f5fcc230b39" @@ -1761,7 +2033,7 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@types/babel__core@^7.1.14": +"@types/babel__core@^7.1.14", "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -2108,6 +2380,17 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@vitejs/plugin-react@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" + integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + dependencies: + "@babel/core" "^7.23.5" + "@babel/plugin-transform-react-jsx-self" "^7.23.3" + "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.0" + JSONStream@^1.0.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -3514,6 +3797,34 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esbuild@^0.19.3: + version "0.19.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.8.tgz#ad05b72281d84483fa6b5345bd246c27a207b8f1" + integrity sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w== + optionalDependencies: + "@esbuild/android-arm" "0.19.8" + "@esbuild/android-arm64" "0.19.8" + "@esbuild/android-x64" "0.19.8" + "@esbuild/darwin-arm64" "0.19.8" + "@esbuild/darwin-x64" "0.19.8" + "@esbuild/freebsd-arm64" "0.19.8" + "@esbuild/freebsd-x64" "0.19.8" + "@esbuild/linux-arm" "0.19.8" + "@esbuild/linux-arm64" "0.19.8" + "@esbuild/linux-ia32" "0.19.8" + "@esbuild/linux-loong64" "0.19.8" + "@esbuild/linux-mips64el" "0.19.8" + "@esbuild/linux-ppc64" "0.19.8" + "@esbuild/linux-riscv64" "0.19.8" + "@esbuild/linux-s390x" "0.19.8" + "@esbuild/linux-x64" "0.19.8" + "@esbuild/netbsd-x64" "0.19.8" + "@esbuild/openbsd-x64" "0.19.8" + "@esbuild/sunos-x64" "0.19.8" + "@esbuild/win32-arm64" "0.19.8" + "@esbuild/win32-ia32" "0.19.8" + "@esbuild/win32-x64" "0.19.8" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -4092,7 +4403,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -5791,6 +6102,11 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -6171,6 +6487,15 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +postcss@^8.4.32: + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -6279,6 +6604,26 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + +react-router-dom@^6.20.1: + version "6.20.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.20.1.tgz#e34f8075b9304221420de3609e072bb349824984" + integrity sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw== + dependencies: + "@remix-run/router" "1.13.1" + react-router "6.20.1" + +react-router@6.20.1: + version "6.20.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.20.1.tgz#e8cc326031d235aaeec405bb234af77cf0fe75ef" + integrity sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA== + dependencies: + "@remix-run/router" "1.13.1" + react@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -6518,6 +6863,26 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" +rollup@^4.2.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.7.0.tgz#04173cb398cd7643b9f71846dfbbda0e94fd0b1f" + integrity sha512-7Kw0dUP4BWH78zaZCqF1rPyQ8D5DSU6URG45v1dqS/faNsx9WXyess00uTOZxKr7oR/4TOjO1CPudT8L1UsEgw== + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.7.0" + "@rollup/rollup-android-arm64" "4.7.0" + "@rollup/rollup-darwin-arm64" "4.7.0" + "@rollup/rollup-darwin-x64" "4.7.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.7.0" + "@rollup/rollup-linux-arm64-gnu" "4.7.0" + "@rollup/rollup-linux-arm64-musl" "4.7.0" + "@rollup/rollup-linux-riscv64-gnu" "4.7.0" + "@rollup/rollup-linux-x64-gnu" "4.7.0" + "@rollup/rollup-linux-x64-musl" "4.7.0" + "@rollup/rollup-win32-arm64-msvc" "4.7.0" + "@rollup/rollup-win32-ia32-msvc" "4.7.0" + "@rollup/rollup-win32-x64-msvc" "4.7.0" + fsevents "~2.3.2" + run-applescript@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" @@ -6674,6 +7039,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -7280,6 +7650,17 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +vite@^5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.7.tgz#ad081d735f6769f76b556818500bdafb72c3fe93" + integrity sha512-B4T4rJCDPihrQo2B+h1MbeGL/k/GMAHzhQ8S0LjQ142s6/+l3hHTT095ORvsshj4QCkoWu3Xtmob5mazvakaOw== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + w3c-xmlserializer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"