From c6b9a328eafbabcf23c97c3262132906e81c8364 Mon Sep 17 00:00:00 2001 From: heejin Date: Fri, 28 Feb 2025 20:48:55 +0900 Subject: [PATCH 01/49] Feat : initial setting --- app/boards/page.tsx | 3 + app/items/page.tsx | 3 + app/layout.tsx | 22 ++++ app/page.tsx | 3 + package-lock.json | 178 ++++++++++++++++++++++++++++---- package.json | 8 +- pages/_app.tsx | 6 -- pages/_document.tsx | 13 --- pages/api/hello.ts | 13 --- pages/index.tsx | 114 -------------------- public/favicon.ico | Bin 25931 -> 3323 bytes public/font/ROKAF.ttf | Bin 0 -> 751752 bytes public/next.svg | 1 - public/vercel.svg | 1 - styles/Home.module.css | 229 ----------------------------------------- styles/global.tsx | 51 +++++++++ styles/globals.css | 107 ------------------- styles/theme.tsx | 48 +++++++++ tsconfig.json | 28 ++++- 19 files changed, 318 insertions(+), 510 deletions(-) create mode 100644 app/boards/page.tsx create mode 100644 app/items/page.tsx create mode 100644 app/layout.tsx create mode 100644 app/page.tsx delete mode 100644 pages/_app.tsx delete mode 100644 pages/_document.tsx delete mode 100644 pages/api/hello.ts delete mode 100644 pages/index.tsx create mode 100644 public/font/ROKAF.ttf delete mode 100644 public/next.svg delete mode 100644 public/vercel.svg delete mode 100644 styles/Home.module.css create mode 100644 styles/global.tsx delete mode 100644 styles/globals.css create mode 100644 styles/theme.tsx diff --git a/app/boards/page.tsx b/app/boards/page.tsx new file mode 100644 index 00000000..6015f1c8 --- /dev/null +++ b/app/boards/page.tsx @@ -0,0 +1,3 @@ +export default function Boards() { + return <>boards page; +} diff --git a/app/items/page.tsx b/app/items/page.tsx new file mode 100644 index 00000000..47be295b --- /dev/null +++ b/app/items/page.tsx @@ -0,0 +1,3 @@ +export default function Home() { + return <>items page; +} diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 00000000..c749f69d --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,22 @@ +import Header from "@/components/Header/Header"; +import GlobalStyle from "@/styles/global"; + +export const metadata = { + title: "판다마켓", +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + +
+ {children} + + + ); +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 00000000..f38d8f04 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,3 @@ +export default function Home() { + return <>home page; +} diff --git a/package-lock.json b/package-lock.json index baa2b665..958b8ca7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,11 @@ "name": "fe-weekly-mission", "version": "0.1.0", "dependencies": { + "@types/styled-components": "^5.1.34", "next": "13.5.6", "react": "^18", - "react-dom": "^18" + "react-dom": "^18", + "styled-components": "^6.1.15" }, "devDependencies": { "@types/node": "^20", @@ -42,6 +44,24 @@ "node": ">=6.9.0" } }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -329,6 +349,15 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -347,14 +376,12 @@ "node_modules/@types/prop-types": { "version": "15.7.11", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", - "dev": true + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/react": { "version": "18.2.38", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz", "integrity": "sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==", - "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -373,8 +400,22 @@ "node_modules/@types/scheduler": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "dev": true + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/styled-components": { + "version": "5.1.34", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz", + "integrity": "sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==", + "dependencies": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==" }, "node_modules/@typescript-eslint/parser": { "version": "6.12.0", @@ -797,6 +838,14 @@ "node": ">=6" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001564", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", @@ -875,11 +924,28 @@ "node": ">= 8" } }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -1930,6 +1996,14 @@ "node": ">= 0.4" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, "node_modules/ignore": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", @@ -2825,9 +2899,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -2868,6 +2942,11 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -2943,8 +3022,7 @@ "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/reflect.getprototypeof": { "version": "1.0.4", @@ -3156,6 +3234,11 @@ "node": ">= 0.4" } }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3201,9 +3284,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "engines": { "node": ">=0.10.0" } @@ -3314,6 +3397,60 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/styled-components": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.15.tgz", + "integrity": "sha512-PpOTEztW87Ua2xbmLa7yssjNyUF9vE7wdldRfn1I2E6RTkqknkBYpj771OxM/xrvRGinLy2oysa7GOd7NcZZIA==", + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.49", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -3336,6 +3473,11 @@ } } }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", diff --git a/package.json b/package.json index 1ce24924..7e23900c 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,18 @@ "lint": "next lint" }, "dependencies": { + "@types/styled-components": "^5.1.34", + "next": "13.5.6", "react": "^18", "react-dom": "^18", - "next": "13.5.6" + "styled-components": "^6.1.15" }, "devDependencies": { - "typescript": "^5", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "13.5.6" + "eslint-config-next": "13.5.6", + "typescript": "^5" } } diff --git a/pages/_app.tsx b/pages/_app.tsx deleted file mode 100644 index 021681f4..00000000 --- a/pages/_app.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import '@/styles/globals.css' -import type { AppProps } from 'next/app' - -export default function App({ Component, pageProps }: AppProps) { - return -} diff --git a/pages/_document.tsx b/pages/_document.tsx deleted file mode 100644 index 54e8bf3e..00000000 --- a/pages/_document.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Html, Head, Main, NextScript } from 'next/document' - -export default function Document() { - return ( - - - -
- - - - ) -} diff --git a/pages/api/hello.ts b/pages/api/hello.ts deleted file mode 100644 index f8bcc7e5..00000000 --- a/pages/api/hello.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' - -type Data = { - name: string -} - -export default function handler( - req: NextApiRequest, - res: NextApiResponse -) { - res.status(200).json({ name: 'John Doe' }) -} diff --git a/pages/index.tsx b/pages/index.tsx deleted file mode 100644 index 02c4dee0..00000000 --- a/pages/index.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import Head from 'next/head' -import Image from 'next/image' -import { Inter } from 'next/font/google' -import styles from '@/styles/Home.module.css' - -const inter = Inter({ subsets: ['latin'] }) - -export default function Home() { - return ( - <> - - Create Next App - - - - -
-
-

- Get started by editing  - pages/index.tsx -

- -
- -
- Next.js Logo -
- - -
- - ) -} diff --git a/public/favicon.ico b/public/favicon.ico index 718d6fea4835ec2d246af9800eddb7ffb276240c..47f52f13808a9640a80eeda905eba08a91e3c6c8 100644 GIT binary patch literal 3323 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 FV1kB+CLsU- literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/public/font/ROKAF.ttf b/public/font/ROKAF.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8889aba408e99dbc101d73534cdd09fe9ba3f903 GIT binary patch literal 751752 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

Je*;2iYB%<7gK?d=NVL?+XKByQjg$W)m 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

N84 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 z`mg^d>%ab=tpECdvi|G;$@;JVC+oldpRE7-f2IxTzy6=B|N4Kj{_FqA`mg^d>%ab= ztpECdvi|G;$@;JVXS$O9>;K96um30Ozy6=B|N4Kj{_FqA`mg^d>%ab=tpECdrb+3) z{-3P>`hT+i>;K96um30Ozy6=B|N4Kj{_FqA`mg_IdY1m{|H=BV|0nCe{-3P>`hT+i z>;K96um30Ozy6=B|N4KXh3UWkpRE7-f3p7T|H=BV|0nCe{-3P>`hT+i>;K96um5K{ zn*Qtm$@;JVC+oldpRE7-f3p7T|H=BV|0nCe{-3P>`hTXu>A(J;tpECdvi|G;$@;JV zC+oldpRE7-f3p7T|H=CKANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{mANU{m zANU{mANU{mANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2oANe2o zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5n zpZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZK5npZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBp zpZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBppZTBpU-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16U-)16 zU-)16U-)16U-)16U-)16U-)16U-)16U-)16U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78U-@78 zU-@78U-@78U-@78U-@78U-@78|M36e|HJ=>{}2Bk{y+SG`2X<#;s3+`hyM@%AO1i5 zfB66K|Kb0`|A+q%{~!K8{D1iW@c-fe!~ci>5C0$jKm33A|M36e|HJ=>{}2Bk{y+SG z`2X<#;s3+`hyM@%AO1i5fB66K|Kb0`|A+q%{~!K8{D1iW@c-fe!~ci>5C0$jKm33A z|M36e|HJ=>{}2Bk{y+SG`2X<#;s3+`hyM@%AO1i5fB66K|Kb0`|A+q%{~!K8{D1iW z@c-fe!~ci>5C0$jKm33A|M36e|HJ=>{}2Bk{y+SG`2X<#;s3+`hyM@%AO1i5fB66K z|Kb0`|A+q%{~!K8{D1iW@c-fe!~ci>5C0$jKm33A|M36e|HJ=>{}2Bk{y+SG`2X<# z;s3+`hyM@%AO1i5fB66K|Kb0`|A+q%{~!K8{D1iW@c-fe!~ci>5C0$jKm33A|M36e z|HJ=>{}2Bk{y+SG`2X<#;s3+`hyM@%AO1i5fB66K|Kb0`|A+q%{~!K8{D1iW@c-fe z!~ci>5C0$jKm33A|M36e|HJ=>{}2Bk{y+SG`2X<#;s3+`hyM@%AO1i5fB66K|Kb0` z|A+q%{~!K8{D1iW@c-fe!~ci>5C0$jKm33A|M36e|HJ=>{}2Bk{y+SG`2X<#;s3+` zhyM@%AO1i5fB66K|Kb0`|A+q%{~!K8{D1iW@c-fe!~ci>5C0$jKm33A|MLIk|I7cE z|1bYv{=fWx`Tz3&<^Rk7m;W#SU;e-RfBFCN|Ks$ z|KtD1|BwG4|3ChJ{Qvm>@&Duh$N!K2AOAo8fBgUW|MCCh|HuE2{~!N9{(t=c`2X?$ zs$|KtD1|BwG4|3ChJ{Qvm>@&Duh$N!K2AOAo8fBgUW|MCCh z|HuE2{~!N9{(t=c`2X?$s$|KtD1|BwG4|3ChJ{Qvm>@&Duh z$N!K2AOAo8fBgUW|MCCh|HuE2{~!N9{(t=c`2X?$s$|KtD1 z|BwG4|3ChJ{Qvm>@&Duh$N!K2AOAo8fBgUW|MCCh|HuE2{~!N9{(t=c`2X?$s$|KtD1|BwG4|3ChJ{Qvm>@&Duh$N!K2AOAo8fBgUW|MCCh|HuE2 z{~!N9{(t=c`2X?$s$|KtD1|BwG4|3ChJ{Qvm>@&Duh$N!K2 zAOAo8fBgUW|MCCh|HuE2{~!N9{(t=c`2X?$s$|KtD1|BwG4 z|3ChJ{Qvm>@&Duh$N!K2AOAo8fBgUW|MCCh|HuE2{~!N9{(t=c`2X?$s$|KtD1|BwG4|3ChJ{Qvm>@&Duh$N!K2AOAo8fBgUW-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7 z-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}vA7-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9 z-}&G9-}&G9-}&G9-}&G9-}&G9-}&G9e=fxTcYprJJu>;In%w#)bW z|K|ec^1c55xuCavum688a4p~K|DOv!%lG>K=K{#`z5f5;|KR`N|KR`N|KR`N|KR`N z|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N z|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N z|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N z|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N z|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N z|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N|KR`N z|KR`N|KR`N|KR`N|KR`N|KR`N|KR_5$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U z`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`M>$U`MeC?qB`hT+i>;K96um30Ozy6=B|N4Kj{_FqA`mg^d>%ab=uRHW#|4-I`{Xbd% z_5Wo3*Z-6CU;j_mfBipM|MmZ5{n!8VHH-f1|H=BV|0nCe{-3P>`hT+i>;K96um30O zzy6=B|N4Kv-qC;kKUx3v|788w|C9A!|4-I`{Xbd%_5Wo3*Z-6CU;oe7O8T$=C+old zpRE7-f3p7T|H=BV|0nCe{-3P>`hT+i>;L&WOaJx%Wc}Cwll5Q!Pu73^KUx3v|788w z|C9A!|4-I`{Xbu$>A(J;tpECdvi|G;$@;JVC+oldpRE7-f3p7T|H=BV|L5yF{n!7K z^%ab=tpECd zvi|G;$@;JVC+oldpRX(RU;j_mfBipM|MmZ5{n!7K^;K96um30Ozy6=B|N4Kj{_FqA`mg^d>%ab=tpECdzMj>8{Xbd%_5Wo3*Z-6CU;j_m zfBipM|MmZ5{n!7K^`hT+i>;K96um30Ozy6=B|N4Kj{_Fqw zI$Hnr|788w|C9A!|4-I`{Xbd%_5Wo3*Z-6CU;j_mfBipSgX_QkpRE7-f3p7T|H=BV z|0nCe{-3P>`hT+i>;K96`5*Wn_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm_#gNm z_#gNm_#gNm_#gQn`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo`5*Zo z`Jeco_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn z_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DTn_@DWo`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp z`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Jefp`Cs^7_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6 z_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R*6_+R;7`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8 z`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8 z`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8 z`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8`Cs{8 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 literal 0 HcmV?d00001 diff --git a/public/next.svg b/public/next.svg deleted file mode 100644 index 5174b28c..00000000 --- a/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index d2f84222..00000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/styles/Home.module.css b/styles/Home.module.css deleted file mode 100644 index 6676d2c6..00000000 --- a/styles/Home.module.css +++ /dev/null @@ -1,229 +0,0 @@ -.main { - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - padding: 6rem; - min-height: 100vh; -} - -.description { - display: inherit; - justify-content: inherit; - align-items: inherit; - font-size: 0.85rem; - max-width: var(--max-width); - width: 100%; - z-index: 2; - font-family: var(--font-mono); -} - -.description a { - display: flex; - justify-content: center; - align-items: center; - gap: 0.5rem; -} - -.description p { - position: relative; - margin: 0; - padding: 1rem; - background-color: rgba(var(--callout-rgb), 0.5); - border: 1px solid rgba(var(--callout-border-rgb), 0.3); - border-radius: var(--border-radius); -} - -.code { - font-weight: 700; - font-family: var(--font-mono); -} - -.grid { - display: grid; - grid-template-columns: repeat(4, minmax(25%, auto)); - max-width: 100%; - width: var(--max-width); -} - -.card { - padding: 1rem 1.2rem; - border-radius: var(--border-radius); - background: rgba(var(--card-rgb), 0); - border: 1px solid rgba(var(--card-border-rgb), 0); - transition: background 200ms, border 200ms; -} - -.card span { - display: inline-block; - transition: transform 200ms; -} - -.card h2 { - font-weight: 600; - margin-bottom: 0.7rem; -} - -.card p { - margin: 0; - opacity: 0.6; - font-size: 0.9rem; - line-height: 1.5; - max-width: 30ch; -} - -.center { - display: flex; - justify-content: center; - align-items: center; - position: relative; - padding: 4rem 0; -} - -.center::before { - background: var(--secondary-glow); - border-radius: 50%; - width: 480px; - height: 360px; - margin-left: -400px; -} - -.center::after { - background: var(--primary-glow); - width: 240px; - height: 180px; - z-index: -1; -} - -.center::before, -.center::after { - content: ''; - left: 50%; - position: absolute; - filter: blur(45px); - transform: translateZ(0); -} - -.logo { - position: relative; -} -/* Enable hover only on non-touch devices */ -@media (hover: hover) and (pointer: fine) { - .card:hover { - background: rgba(var(--card-rgb), 0.1); - border: 1px solid rgba(var(--card-border-rgb), 0.15); - } - - .card:hover span { - transform: translateX(4px); - } -} - -@media (prefers-reduced-motion) { - .card:hover span { - transform: none; - } -} - -/* Mobile */ -@media (max-width: 700px) { - .content { - padding: 4rem; - } - - .grid { - grid-template-columns: 1fr; - margin-bottom: 120px; - max-width: 320px; - text-align: center; - } - - .card { - padding: 1rem 2.5rem; - } - - .card h2 { - margin-bottom: 0.5rem; - } - - .center { - padding: 8rem 0 6rem; - } - - .center::before { - transform: none; - height: 300px; - } - - .description { - font-size: 0.8rem; - } - - .description a { - padding: 1rem; - } - - .description p, - .description div { - display: flex; - justify-content: center; - position: fixed; - width: 100%; - } - - .description p { - align-items: center; - inset: 0 0 auto; - padding: 2rem 1rem 1.4rem; - border-radius: 0; - border: none; - border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); - background: linear-gradient( - to bottom, - rgba(var(--background-start-rgb), 1), - rgba(var(--callout-rgb), 0.5) - ); - background-clip: padding-box; - backdrop-filter: blur(24px); - } - - .description div { - align-items: flex-end; - pointer-events: none; - inset: auto 0 0; - padding: 2rem; - height: 200px; - background: linear-gradient( - to bottom, - transparent 0%, - rgb(var(--background-end-rgb)) 40% - ); - z-index: 1; - } -} - -/* Tablet and Smaller Desktop */ -@media (min-width: 701px) and (max-width: 1120px) { - .grid { - grid-template-columns: repeat(2, 50%); - } -} - -@media (prefers-color-scheme: dark) { - .vercelLogo { - filter: invert(1); - } - - .logo { - filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70); - } -} - -@keyframes rotate { - from { - transform: rotate(360deg); - } - to { - transform: rotate(0deg); - } -} diff --git a/styles/global.tsx b/styles/global.tsx new file mode 100644 index 00000000..48fadc88 --- /dev/null +++ b/styles/global.tsx @@ -0,0 +1,51 @@ +"use client"; + +import { createGlobalStyle } from "styled-components"; + +const GlobalStyle = createGlobalStyle` + * { + box-sizing: border-box; + text-decoration: none; + list-style: none; +} + +body, ul, li { + margin: 0; +} + +ul, li{ + margin:0; + padding:0; +} + +button, input, textarea { + border:none; +} + +@font-face { + font-family: 'ROKAF Sans'; + src: url("/font/ROKAF.ttf"); + font-weight: 700; + font-style: normal; +} + +@font-face { + font-family: 'Pretendard'; + src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff2') format('woff2'); + src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff') format('woff'); + font-display: swap; + font-weight: 400; + font-style: normal; + } + + @font-face { + font-family: "Pretendard"; + src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff2') format('woff2'); + src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff') format('woff'); + font-display: swap; + font-weight: 700; + font-style: normal; +} +`; + +export default GlobalStyle; diff --git a/styles/globals.css b/styles/globals.css deleted file mode 100644 index d4f491e1..00000000 --- a/styles/globals.css +++ /dev/null @@ -1,107 +0,0 @@ -:root { - --max-width: 1100px; - --border-radius: 12px; - --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono', - 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro', - 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace; - - --foreground-rgb: 0, 0, 0; - --background-start-rgb: 214, 219, 220; - --background-end-rgb: 255, 255, 255; - - --primary-glow: conic-gradient( - from 180deg at 50% 50%, - #16abff33 0deg, - #0885ff33 55deg, - #54d6ff33 120deg, - #0071ff33 160deg, - transparent 360deg - ); - --secondary-glow: radial-gradient( - rgba(255, 255, 255, 1), - rgba(255, 255, 255, 0) - ); - - --tile-start-rgb: 239, 245, 249; - --tile-end-rgb: 228, 232, 233; - --tile-border: conic-gradient( - #00000080, - #00000040, - #00000030, - #00000020, - #00000010, - #00000010, - #00000080 - ); - - --callout-rgb: 238, 240, 241; - --callout-border-rgb: 172, 175, 176; - --card-rgb: 180, 185, 188; - --card-border-rgb: 131, 134, 135; -} - -@media (prefers-color-scheme: dark) { - :root { - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; - - --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); - --secondary-glow: linear-gradient( - to bottom right, - rgba(1, 65, 255, 0), - rgba(1, 65, 255, 0), - rgba(1, 65, 255, 0.3) - ); - - --tile-start-rgb: 2, 13, 46; - --tile-end-rgb: 2, 5, 19; - --tile-border: conic-gradient( - #ffffff80, - #ffffff40, - #ffffff30, - #ffffff20, - #ffffff10, - #ffffff10, - #ffffff80 - ); - - --callout-rgb: 20, 20, 20; - --callout-border-rgb: 108, 108, 108; - --card-rgb: 100, 100, 100; - --card-border-rgb: 200, 200, 200; - } -} - -* { - box-sizing: border-box; - padding: 0; - margin: 0; -} - -html, -body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient( - to bottom, - transparent, - rgb(var(--background-end-rgb)) - ) - rgb(var(--background-start-rgb)); -} - -a { - color: inherit; - text-decoration: none; -} - -@media (prefers-color-scheme: dark) { - html { - color-scheme: dark; - } -} diff --git a/styles/theme.tsx b/styles/theme.tsx new file mode 100644 index 00000000..30d16c1b --- /dev/null +++ b/styles/theme.tsx @@ -0,0 +1,48 @@ +const theme = { + font: { + H0: "600 40px/47px 'Pretendard', sans-serif", + H1: "700 28px/42px 'Pretendard', sans-serif", + H2Bold: "700 24px/36px 'Pretendard', sans-serif", + H2Regular: "400 24px/36px 'Pretendard', sans-serif", + H3Bold: "700 20px/30px 'Pretendard', sans-serif", + H3Regular: "400 20px/30px 'Pretendard', sans-serif", + H4Bold: "700 18px/28px 'Pretendard', sans-serif", + H4Regular: "400 18px/28px 'Pretendard', sans-serif", + H5Bold: "700 16px/26px 'Pretendard', sans-serif", + H5Regular: "400 16px/26px 'Pretendard', sans-serif", + H6Bold: "700 15px/22px 'Pretendard', sans-serif", + H6Regular: "400 15px/22px 'Pretendard', sans-serif", + H7Bold: "700 14px/20px 'Pretendard', sans-serif", + H7Regular: "400 14px/20px 'Pretendard', sans-serif", + H8: "400 12px/20px 'Pretendard', sans-serif", + }, + color: { + textDark: "#374151", + textBright: "#f3f4f6", + + backgroundMain: "#fcfcfc", + backgroundFooter: "#111827", + backgroundLanding: "#cfe5ff", + + easyLogin: "#e6f2ff", + + white: "#ffffff", + blue: "#3692FF", + blueHover: "#1967d6", + + gray50: "#f9fafb", + gray100: "#f3f4f6", + gray200: "#e5e7eb", + gray300: "#D1D5DB", + gray400: "#9ca3af", + gray500: "#6b7280", + gray600: "#4b5563", + gray700: "#374151", + gray800: "#1f2937", + gray900: "#111827", + + error: "#f74747", + }, +}; + +export default theme; diff --git a/tsconfig.json b/tsconfig.json index 670224f3..e784dc98 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -14,9 +18,23 @@ "jsx": "preserve", "incremental": true, "paths": { - "@/*": ["./*"] - } + "@/*": [ + "./*" + ] + }, + "plugins": [ + { + "name": "next" + } + ] }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], - "exclude": ["node_modules"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] } From 30627cfb08ca8e568fc1935e95929a8c1d879bc7 Mon Sep 17 00:00:00 2001 From: heejin Date: Fri, 28 Feb 2025 20:50:45 +0900 Subject: [PATCH 02/49] Feat : header component --- components/Header/Header.styles.tsx | 65 +++++++++++++++++++++++++++++ components/Header/Header.tsx | 53 +++++++++++++++++++++++ public/icons/panda.svg | 14 +++++++ public/icons/user.svg | 24 +++++++++++ 4 files changed, 156 insertions(+) create mode 100644 components/Header/Header.styles.tsx create mode 100644 components/Header/Header.tsx create mode 100644 public/icons/panda.svg create mode 100644 public/icons/user.svg diff --git a/components/Header/Header.styles.tsx b/components/Header/Header.styles.tsx new file mode 100644 index 00000000..fa608bcf --- /dev/null +++ b/components/Header/Header.styles.tsx @@ -0,0 +1,65 @@ +import theme from "@/styles/theme"; +import Link from "next/link"; +import styled from "styled-components"; + +export const HeaderContainer = styled.div` + width: 100%; + height: 70px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 9px 200px; + background: ${theme.color.white}; + border-bottom: 1px solid #dfdfdf; + position: sticky; + top: 0; + z-index: 1; + + @media (min-width: 769px) and (max-width: 1280px) { + padding: 9px 24px; + } + @media (max-width: 768px) { + padding: 9px 16px; + } +`; + +export const Links = styled.div` + display: flex; +`; + +export const LogoContainer = styled(Link)` + display: flex; + align-items: center; + gap: 8px; + margin-right: 16px; + cursor: pointer; +`; + +export const Name = styled.div` + font-family: "ROKAF Sans", sans-serif; + font-size: 25px; + font-weight: 700; + color: ${theme.color.blue}; + + @media (max-width: 386px) { + display: none; + } +`; + +export const LinkList = styled.div` + display: flex; + gap: 10px; +`; + +export const NavItems = styled.div` + font: ${theme.font.H4Bold}; + font-size: 18px; + font-weight: 700; + line-height: 26px; + padding: 15px 21px; + color: ${theme.color.gray100}; + cursor: pointer; + @media (max-width: 768px) { + padding: 15px 0; + } +`; diff --git a/components/Header/Header.tsx b/components/Header/Header.tsx new file mode 100644 index 00000000..47401d3f --- /dev/null +++ b/components/Header/Header.tsx @@ -0,0 +1,53 @@ +"use client"; + +import * as S from "./Header.styles"; +import logo from "@/public/icons/panda.svg"; +import user from "@/public/icons/user.svg"; +import theme from "@/styles/theme"; +import Image from "next/image"; +import Link from "next/link"; +import { usePathname } from "next/navigation"; + +export default function Header() { + const pathname = usePathname(); + const isBoards = pathname.startsWith("/boards"); + const isItems = pathname.startsWith("/items"); + + const Links = [ + { + link: "/boards", + style: { + color: isBoards ? `${theme.color.blue}` : `${theme.color.gray600}`, + }, + name: "자유게시판", + }, + { + link: "/items", + style: { + color: isItems ? `${theme.color.blue}` : `${theme.color.gray600}`, + }, + name: "중고마켓", + }, + ]; + + return ( + + + + logo + 판다마켓 + + + {Links.map((l) => ( + + + {l.name} + + + ))} + + + user + + ); +} diff --git a/public/icons/panda.svg b/public/icons/panda.svg new file mode 100644 index 00000000..bc7118d5 --- /dev/null +++ b/public/icons/panda.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/icons/user.svg b/public/icons/user.svg new file mode 100644 index 00000000..818ed8d8 --- /dev/null +++ b/public/icons/user.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + From 8f74df520c82ef5ca32a908789b08a51de7b57ac Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 1 Mar 2025 02:16:07 +0900 Subject: [PATCH 03/49] Feat : best item card --- components/Best/BestItem.styles.tsx | 100 ++++++++++++++++++++++++++++ components/Best/BestItem.tsx | 49 ++++++++++++++ public/icons/best.svg | 4 ++ public/icons/emptyHeart.svg | 3 + styles/global.tsx | 4 +- styles/theme.tsx | 14 ++-- 6 files changed, 165 insertions(+), 9 deletions(-) create mode 100644 components/Best/BestItem.styles.tsx create mode 100644 components/Best/BestItem.tsx create mode 100644 public/icons/best.svg create mode 100644 public/icons/emptyHeart.svg diff --git a/components/Best/BestItem.styles.tsx b/components/Best/BestItem.styles.tsx new file mode 100644 index 00000000..fda19588 --- /dev/null +++ b/components/Best/BestItem.styles.tsx @@ -0,0 +1,100 @@ +import theme from "@/styles/theme"; +import styled from "styled-components"; + +export const Container = styled.div` + width: 384px; + height: 169px; + padding: 0 24px; + background-color: ${theme.color.gray50}; + border-radius: 8px; +`; + +export const Item = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + gap: 12px; +`; + +export const BestTitle = styled.div` + width: 102px; + height: 30px; + display: flex; + justify-content: center; + align-items: center; + gap: 4px; + background-color: ${theme.color.blue}; + border-radius: 0 0 16px 16px; +`; + +export const Best = styled.span` + color: ${theme.color.white}; + font: ${theme.font.H5Bold}; +`; + +export const Content = styled.div` + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; +`; + +export const ContentText = styled.p` + flex: 1; + height: 60px; + word-wrap: break-word; + color: ${theme.color.gray800}; + font: ${theme.font.H3Bold}; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + text-align: left; + overflow: hidden; +`; + +export const Image = styled.div` + position: relative; + width: 72px; + height: 72px; + background-color: ${theme.color.white}; + border: 1px solid ${theme.color.gray200}; + border-radius: 6px; +`; + +export const Footer = styled.div` + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; +`; + +export const UserWrapper = styled.div` + display: flex; + justify-content: center; + align-items: flex-end; + gap: 8px; +`; + +export const User = styled.span` + color: ${theme.color.gray600}; + font: ${theme.font.H7Regular}; +`; + +export const Like = styled.div` + display: flex; + justify-content: center; + align-items: center; + gap: 4px; +`; + +export const LikeCount = styled.span` + color: ${theme.color.gray500}; + font: ${theme.font.H7Regular}; +`; + +export const Date = styled.span` + color: ${theme.color.gray400}; + font: ${theme.font.H7Regular}; +`; diff --git a/components/Best/BestItem.tsx b/components/Best/BestItem.tsx new file mode 100644 index 00000000..fac28e27 --- /dev/null +++ b/components/Best/BestItem.tsx @@ -0,0 +1,49 @@ +"use client"; + +import * as S from "./BestItem.styles"; +import Image from "next/image"; +import best from "@/public/icons/best.svg"; +import heart from "@/public/icons/emptyHeart.svg"; + +// interface BestItemProps { +// updatedAt: string; +// createdAt: string; +// likeCount: number; +// writer: string; +// image: string; +// content: string; +// } + +export default function BestItem() { + const date = new Date(best.createdAt); + const formattedDate = `${date.getFullYear()}.${String( + date.getMonth() + 1 + ).padStart(2, "0")}.${String(date.getDate()).padStart(2, "0")}`; + + return ( + + + + + Best + + + {best.content} + + + + + + + {best.writer} + + like + {best.likeCount} + + + {formattedDate} + + + + ); +} diff --git a/public/icons/best.svg b/public/icons/best.svg new file mode 100644 index 00000000..d650c401 --- /dev/null +++ b/public/icons/best.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/emptyHeart.svg b/public/icons/emptyHeart.svg new file mode 100644 index 00000000..39fbb3ef --- /dev/null +++ b/public/icons/emptyHeart.svg @@ -0,0 +1,3 @@ + + + diff --git a/styles/global.tsx b/styles/global.tsx index 48fadc88..b0331a8f 100644 --- a/styles/global.tsx +++ b/styles/global.tsx @@ -9,7 +9,7 @@ const GlobalStyle = createGlobalStyle` list-style: none; } -body, ul, li { +body, ul, li, p { margin: 0; } @@ -43,7 +43,7 @@ button, input, textarea { src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff2') format('woff2'); src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff') format('woff'); font-display: swap; - font-weight: 700; + font-weight: 600; font-style: normal; } `; diff --git a/styles/theme.tsx b/styles/theme.tsx index 30d16c1b..03fd24e0 100644 --- a/styles/theme.tsx +++ b/styles/theme.tsx @@ -1,18 +1,18 @@ const theme = { font: { H0: "600 40px/47px 'Pretendard', sans-serif", - H1: "700 28px/42px 'Pretendard', sans-serif", - H2Bold: "700 24px/36px 'Pretendard', sans-serif", + H1: "600 28px/42px 'Pretendard', sans-serif", + H2Bold: "600 24px/36px 'Pretendard', sans-serif", H2Regular: "400 24px/36px 'Pretendard', sans-serif", - H3Bold: "700 20px/30px 'Pretendard', sans-serif", + H3Bold: "600 20px/30px 'Pretendard', sans-serif", H3Regular: "400 20px/30px 'Pretendard', sans-serif", - H4Bold: "700 18px/28px 'Pretendard', sans-serif", + H4Bold: "600 18px/28px 'Pretendard', sans-serif", H4Regular: "400 18px/28px 'Pretendard', sans-serif", - H5Bold: "700 16px/26px 'Pretendard', sans-serif", + H5Bold: "600 16px/26px 'Pretendard', sans-serif", H5Regular: "400 16px/26px 'Pretendard', sans-serif", - H6Bold: "700 15px/22px 'Pretendard', sans-serif", + H6Bold: "600 15px/22px 'Pretendard', sans-serif", H6Regular: "400 15px/22px 'Pretendard', sans-serif", - H7Bold: "700 14px/20px 'Pretendard', sans-serif", + H7Bold: "600 14px/20px 'Pretendard', sans-serif", H7Regular: "400 14px/20px 'Pretendard', sans-serif", H8: "400 12px/20px 'Pretendard', sans-serif", }, From faa11f40f03cb4cfca8564c8a5008b9a3ea8bc9d Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 1 Mar 2025 03:37:12 +0900 Subject: [PATCH 04/49] Feat : get boards api --- .babelrc | 4 + .gitignore | 1 + apis/boards.tsx | 36 +++ apis/index.tsx | 12 + next.config.js | 7 +- package-lock.json | 726 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 + 7 files changed, 744 insertions(+), 44 deletions(-) create mode 100644 .babelrc create mode 100644 apis/boards.tsx create mode 100644 apis/index.tsx diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..a88b914b --- /dev/null +++ b/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["next/babel"], + "plugins": ["babel-plugin-styled-components"] +} diff --git a/.gitignore b/.gitignore index 8f322f0d..17615d3e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /node_modules /.pnp .pnp.js +.env # testing /coverage diff --git a/apis/boards.tsx b/apis/boards.tsx new file mode 100644 index 00000000..a669859b --- /dev/null +++ b/apis/boards.tsx @@ -0,0 +1,36 @@ +import api from "./index"; + +export interface BoardItem { + updatedAt: string; + createdAt: string; + likeCount: number; + writer: { + nickname: string; + id: number; + }; + image: string; + content: string; + title: string; + id: number; +} + +interface Boards { + totalCount?: 0; + list: BoardItem[]; +} + +interface Params { + page: number; + pageSize: number; + orderBy: string; + keyword: string; +} + +export async function getBoards(params: Params): Promise { + const { page, pageSize, orderBy, keyword } = params; + const response = await api.get("/articles", { + params: { page, pageSize, orderBy, keyword }, + }); + + return response.data; +} diff --git a/apis/index.tsx b/apis/index.tsx new file mode 100644 index 00000000..5dc79605 --- /dev/null +++ b/apis/index.tsx @@ -0,0 +1,12 @@ +import axios from "axios"; + +const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL; + +const api = axios.create({ + baseURL: BASE_URL, + headers: { + "Content-Type": "application/json", + }, +}); + +export default api; diff --git a/next.config.js b/next.config.js index a843cbee..b666e541 100644 --- a/next.config.js +++ b/next.config.js @@ -1,6 +1,9 @@ /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, -} + images: { + domains: ["sprint-fe-project.s3.ap-northeast-2.amazonaws.com"], + }, +}; -module.exports = nextConfig +module.exports = nextConfig; diff --git a/package-lock.json b/package-lock.json index 958b8ca7..c2fc14f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "0.1.0", "dependencies": { "@types/styled-components": "^5.1.34", + "axios": "^1.8.1", + "babel-plugin-styled-components": "^2.1.4", "next": "13.5.6", "react": "^18", "react-dom": "^18", @@ -32,6 +34,261 @@ "node": ">=0.10.0" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "dependencies": { + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "peer": true + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", + "peer": true, + "dependencies": { + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "dependencies": { + "@babel/types": "^7.26.9" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", @@ -44,6 +301,56 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", @@ -151,6 +458,49 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@next/env": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", @@ -746,6 +1096,11 @@ "has-symbols": "^1.0.3" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -767,6 +1122,16 @@ "node": ">=4" } }, + "node_modules/axios": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", + "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", @@ -776,6 +1141,21 @@ "dequal": "^2.0.3" } }, + "node_modules/babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -804,6 +1184,38 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -829,6 +1241,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -847,9 +1271,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001564", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", - "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", + "version": "1.0.30001701", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz", + "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==", "funding": [ { "type": "opencollective", @@ -904,12 +1328,29 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "peer": true + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -957,7 +1398,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1007,6 +1447,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1040,6 +1488,25 @@ "node": ">=6.0.0" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.109", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz", + "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==", + "peer": true + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -1112,6 +1579,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-iterator-helpers": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", @@ -1134,15 +1617,26 @@ "safe-array-concat": "^1.0.1" } }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -1174,6 +1668,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1711,6 +2214,25 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -1720,6 +2242,20 @@ "is-callable": "^1.1.3" } }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1730,7 +2266,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1762,21 +2297,50 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -1893,12 +2457,11 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1958,10 +2521,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -1970,12 +2532,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -1985,10 +2546,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -2424,6 +2984,17 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -2524,6 +3095,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -2553,6 +3129,14 @@ "node": ">=10" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -2575,6 +3159,25 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2599,8 +3202,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { "version": "3.3.7", @@ -2670,6 +3272,12 @@ } } }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "peer": true + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -2907,7 +3515,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -2967,6 +3574,11 @@ "react-is": "^16.13.1" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -3681,6 +4293,36 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 7e23900c..72a493d0 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ }, "dependencies": { "@types/styled-components": "^5.1.34", + "axios": "^1.8.1", + "babel-plugin-styled-components": "^2.1.4", "next": "13.5.6", "react": "^18", "react-dom": "^18", From b06fcc87fff21b9e5b8bf387fca3809e3235acbe Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 1 Mar 2025 04:19:09 +0900 Subject: [PATCH 05/49] Feat : best boards component --- components/BestBoards/Best.styles.tsx | 21 ++++++++++++++ components/BestBoards/Best.tsx | 28 +++++++++++++++++++ .../{Best => BestBoards}/BestItem.styles.tsx | 0 components/{Best => BestBoards}/BestItem.tsx | 22 ++++++--------- styles/global.tsx | 6 ++-- 5 files changed, 61 insertions(+), 16 deletions(-) create mode 100644 components/BestBoards/Best.styles.tsx create mode 100644 components/BestBoards/Best.tsx rename components/{Best => BestBoards}/BestItem.styles.tsx (100%) rename components/{Best => BestBoards}/BestItem.tsx (69%) diff --git a/components/BestBoards/Best.styles.tsx b/components/BestBoards/Best.styles.tsx new file mode 100644 index 00000000..c6deadaf --- /dev/null +++ b/components/BestBoards/Best.styles.tsx @@ -0,0 +1,21 @@ +import theme from "@/styles/theme"; +import styled from "styled-components"; + +export const BestContainer = styled.div` + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 24px; + + h2 { + color: ${theme.color.gray900}; + font: ${theme.font.H3Bold}; + } +`; + +export const Items = styled.div` + display: flex; + justify-content: flex-start; + align-items: center; + gap: 24px; +`; diff --git a/components/BestBoards/Best.tsx b/components/BestBoards/Best.tsx new file mode 100644 index 00000000..f9f469f5 --- /dev/null +++ b/components/BestBoards/Best.tsx @@ -0,0 +1,28 @@ +import { useEffect, useState } from "react"; +import * as S from "./Best.styles"; +import BestItem from "./BestItem"; +import { BoardItem, getBoards } from "@/apis/boards"; + +export default function Best() { + const [best, setBest] = useState([]); + + useEffect(() => { + getBoards({ page: 1, pageSize: 3, orderBy: "like", keyword: "" }) + .then((result) => { + if (!result) return; + setBest(result.list); + }) + .catch((error) => console.error(error)); + }, []); + + return ( + +

베스트 게시글

+ + {best.map((item) => ( + + ))} + + + ); +} diff --git a/components/Best/BestItem.styles.tsx b/components/BestBoards/BestItem.styles.tsx similarity index 100% rename from components/Best/BestItem.styles.tsx rename to components/BestBoards/BestItem.styles.tsx diff --git a/components/Best/BestItem.tsx b/components/BestBoards/BestItem.tsx similarity index 69% rename from components/Best/BestItem.tsx rename to components/BestBoards/BestItem.tsx index fac28e27..4345df87 100644 --- a/components/Best/BestItem.tsx +++ b/components/BestBoards/BestItem.tsx @@ -2,19 +2,15 @@ import * as S from "./BestItem.styles"; import Image from "next/image"; -import best from "@/public/icons/best.svg"; +import medal from "@/public/icons/best.svg"; import heart from "@/public/icons/emptyHeart.svg"; +import { BoardItem } from "@/apis/boards"; -// interface BestItemProps { -// updatedAt: string; -// createdAt: string; -// likeCount: number; -// writer: string; -// image: string; -// content: string; -// } +interface BoardProps { + best: BoardItem; +} -export default function BestItem() { +export default function BestItem({ best }: BoardProps) { const date = new Date(best.createdAt); const formattedDate = `${date.getFullYear()}.${String( date.getMonth() + 1 @@ -24,18 +20,18 @@ export default function BestItem() { - + medal Best {best.content} - + image - {best.writer} + {best.writer.nickname} like {best.likeCount} diff --git a/styles/global.tsx b/styles/global.tsx index b0331a8f..757e4155 100644 --- a/styles/global.tsx +++ b/styles/global.tsx @@ -9,7 +9,7 @@ const GlobalStyle = createGlobalStyle` list-style: none; } -body, ul, li, p { +body, ul, li, p, h2 { margin: 0; } @@ -40,8 +40,8 @@ button, input, textarea { @font-face { font-family: "Pretendard"; - src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff2') format('woff2'); - src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff') format('woff'); + src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-SemiBold.woff2') format('woff2'); + src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-SemiBold.woff') format('woff'); font-display: swap; font-weight: 600; font-style: normal; From 443ac337b02da1b7e67f2e3db415f22a17f8bc94 Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 1 Mar 2025 04:54:46 +0900 Subject: [PATCH 06/49] Feat : formatted date --- components/BestBoards/BestItem.tsx | 12 ++++-------- utils/formattedDate.ts | 8 ++++++++ 2 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 utils/formattedDate.ts diff --git a/components/BestBoards/BestItem.tsx b/components/BestBoards/BestItem.tsx index 4345df87..c92e987c 100644 --- a/components/BestBoards/BestItem.tsx +++ b/components/BestBoards/BestItem.tsx @@ -5,17 +5,13 @@ import Image from "next/image"; import medal from "@/public/icons/best.svg"; import heart from "@/public/icons/emptyHeart.svg"; import { BoardItem } from "@/apis/boards"; +import formattedDate from "@/utils/formattedDate"; -interface BoardProps { +interface BestItemProps { best: BoardItem; } -export default function BestItem({ best }: BoardProps) { - const date = new Date(best.createdAt); - const formattedDate = `${date.getFullYear()}.${String( - date.getMonth() + 1 - ).padStart(2, "0")}.${String(date.getDate()).padStart(2, "0")}`; - +export default function BestItem({ best }: BestItemProps) { return ( @@ -37,7 +33,7 @@ export default function BestItem({ best }: BoardProps) { {best.likeCount} - {formattedDate} + {formattedDate(best.createdAt)} diff --git a/utils/formattedDate.ts b/utils/formattedDate.ts new file mode 100644 index 00000000..26d90c33 --- /dev/null +++ b/utils/formattedDate.ts @@ -0,0 +1,8 @@ +export default function formattedDate(date: string) { + const newDate = new Date(date); + const formattedDate = `${newDate.getFullYear()}.${String( + newDate.getMonth() + 1 + ).padStart(2, "0")}.${String(newDate.getDate()).padStart(2, "0")}`; + + return formattedDate; +} From 97d05e96c828793ba64dde166d79fba17e925555 Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 1 Mar 2025 04:55:28 +0900 Subject: [PATCH 07/49] Feat : all board item card --- components/AllBoards/AllItem.styles.tsx | 73 +++++++++++++++++++++++++ components/AllBoards/AllItem.tsx | 34 ++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 components/AllBoards/AllItem.styles.tsx create mode 100644 components/AllBoards/AllItem.tsx diff --git a/components/AllBoards/AllItem.styles.tsx b/components/AllBoards/AllItem.styles.tsx new file mode 100644 index 00000000..26ca4e71 --- /dev/null +++ b/components/AllBoards/AllItem.styles.tsx @@ -0,0 +1,73 @@ +import theme from "@/styles/theme"; +import styled from "styled-components"; + +export const Container = styled.div` + width: 100%; + height: 138px; + display: flex; + flex-direction: column; + gap: 16px; + padding-bottom: 24px; + background-color: ${theme.color.bg}; + border-bottom: 1px solid ${theme.color.gray200}; +`; + +export const Content = styled.div` + width: 100%; + display: flex; + justify-content: space-between; + align-items: flex-start; +`; + +export const ContentText = styled.p` + flex: 1; + height: 60px; + word-wrap: break-word; + color: ${theme.color.gray800}; + font: ${theme.font.H3Bold}; +`; + +export const Image = styled.div` + position: relative; + width: 72px; + height: 72px; + background-color: ${theme.color.white}; + border: 1px solid ${theme.color.gray200}; + border-radius: 6px; +`; + +export const Footer = styled.div` + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; +`; + +export const UserWrapper = styled.div` + display: flex; + justify-content: center; + align-items: center; + gap: 8px; +`; + +export const User = styled.span` + color: ${theme.color.gray600}; + font: ${theme.font.H7Regular}; +`; + +export const Like = styled.div` + display: flex; + justify-content: center; + align-items: center; + gap: 4px; +`; + +export const LikeCount = styled.span` + color: ${theme.color.gray500}; + font: ${theme.font.H7Regular}; +`; + +export const Date = styled.span` + color: ${theme.color.gray400}; + font: ${theme.font.H7Regular}; +`; diff --git a/components/AllBoards/AllItem.tsx b/components/AllBoards/AllItem.tsx new file mode 100644 index 00000000..87be2f7b --- /dev/null +++ b/components/AllBoards/AllItem.tsx @@ -0,0 +1,34 @@ +import * as S from "./AllItem.styles"; +import Image from "next/image"; +import user from "@/public/icons/user.svg"; +import heart from "@/public/icons/emptyHeart.svg"; +import formattedDate from "@/utils/formattedDate"; +import { BoardItem } from "@/apis/boards"; + +interface AllItemProps { + all: BoardItem; +} + +export default function AllItem({ all }: AllItemProps) { + return ( + + + {all.content} + + + + + + + user + {all.writer.nickname} + {formattedDate(all.createdAt)} + + + like + {all.likeCount} + + + + ); +} From 17add08d8d101eb8c14339ac4c705b5855545f58 Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 1 Mar 2025 19:29:32 +0900 Subject: [PATCH 08/49] Chore : move header component to common --- app/layout.tsx | 2 +- components/{ => common}/Header/Header.styles.tsx | 0 components/{ => common}/Header/Header.tsx | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename components/{ => common}/Header/Header.styles.tsx (100%) rename components/{ => common}/Header/Header.tsx (100%) diff --git a/app/layout.tsx b/app/layout.tsx index c749f69d..038ba835 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,4 +1,4 @@ -import Header from "@/components/Header/Header"; +import Header from "@/components/common/Header/Header"; import GlobalStyle from "@/styles/global"; export const metadata = { diff --git a/components/Header/Header.styles.tsx b/components/common/Header/Header.styles.tsx similarity index 100% rename from components/Header/Header.styles.tsx rename to components/common/Header/Header.styles.tsx diff --git a/components/Header/Header.tsx b/components/common/Header/Header.tsx similarity index 100% rename from components/Header/Header.tsx rename to components/common/Header/Header.tsx From 40bdab89d0dfa244d50cc5b91f20d7828c582863 Mon Sep 17 00:00:00 2001 From: heejin Date: Sun, 2 Mar 2025 04:02:51 +0900 Subject: [PATCH 09/49] Feat : input common component --- components/common/Input/Input.styles.tsx | 66 ++++++++++++++++++++++++ components/common/Input/Input.tsx | 47 +++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 components/common/Input/Input.styles.tsx create mode 100644 components/common/Input/Input.tsx diff --git a/components/common/Input/Input.styles.tsx b/components/common/Input/Input.styles.tsx new file mode 100644 index 00000000..e863e80d --- /dev/null +++ b/components/common/Input/Input.styles.tsx @@ -0,0 +1,66 @@ +import styled from "styled-components"; +import theme from "../../../styles/theme"; + +interface InputProps { + $largeHeight?: string; + size?: number; +} + +export const InputContainer = styled.div` + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + gap: 16px; +`; + +export const Label = styled.label` + font-size: 18px; + font-weight: 700; + line-height: 26px; + color: ${theme.color.gray800}; +`; + +export const Input = styled.div` + width: 100%; + position: relative; +`; + +export const Icon = styled.div` + position: absolute; + top: 48%; + left: 12px; + transform: translateY(-50%); + width: 24px; + height: 24px; +`; + +export const StyledInput = styled.input` + width: 100%; + height: ${({ height }) => height || "42px"}; + background-color: ${theme.color.gray100}; + padding: 9px 20px; + ${({ size }) => size && `padding-left: calc(12px + ${size}px);`} + border-radius: 12px; + resize: none; + + &:focus { + outline: none; + } + + &::placeholder { + font: ${theme.font.H5Regular}; + color: ${theme.color.gray400}; + } + + @media (max-width: 375px) { + height: ${({ $largeHeight }) => $largeHeight}; + &::placeholder { + font: ${theme.font.H7Regular}; + } + } + + @media (min-width: 376px) and (max-width: 768px) { + height: ${({ $largeHeight }) => $largeHeight}; + } +`; diff --git a/components/common/Input/Input.tsx b/components/common/Input/Input.tsx new file mode 100644 index 00000000..00332861 --- /dev/null +++ b/components/common/Input/Input.tsx @@ -0,0 +1,47 @@ +import Image from "next/image"; +import * as S from "./Input.styles"; +import { CSSProperties, InputHTMLAttributes } from "react"; + +import search from "@/public/icons/search.svg"; + +interface InputProps extends InputHTMLAttributes { + label?: string; + style?: CSSProperties; + isTextarea?: boolean; + leftSlot?: string; + slotSize?: number; + height?: string; + largeHeight?: string; +} + +export default function Input({ + label, + style, + isTextarea, + leftSlot, + slotSize, + height, + largeHeight, + ...rest +}: InputProps) { + return ( + + {label} + + {leftSlot && ( + + + + )} + + + + ); +} From 2fffc177fe07264c3c8ef23f00b369e5d93b5228 Mon Sep 17 00:00:00 2001 From: heejin Date: Sun, 2 Mar 2025 20:38:09 +0900 Subject: [PATCH 10/49] Feat : search component --- components/Search/Search.tsx | 57 ++++++++++++++++++++++++++++++++++++ package-lock.json | 22 ++++++++++++++ package.json | 2 ++ public/icons/search.svg | 3 ++ 4 files changed, 84 insertions(+) create mode 100644 components/Search/Search.tsx create mode 100644 public/icons/search.svg diff --git a/components/Search/Search.tsx b/components/Search/Search.tsx new file mode 100644 index 00000000..2ac7fbb8 --- /dev/null +++ b/components/Search/Search.tsx @@ -0,0 +1,57 @@ +"use client"; + +import Input from "../common/Input/Input"; +import { useCallback, useMemo } from "react"; +import debounce from "lodash.debounce"; +import search from "@/public/icons/search.svg"; +import { usePathname, useSearchParams, useRouter } from "next/navigation"; + +interface SearchProps { + onChange: (keyword: string) => void; +} + +export default function Search({ onChange }: SearchProps) { + const searchParams = useSearchParams(); + const pathname = usePathname(); + const { replace } = useRouter(); + + const updateSearchParams = useCallback( + (search: string) => { + const params = new URLSearchParams(searchParams.toString()); + + if (search) { + params.set("keyword", search); + } else { + params.delete("keyword"); + } + + replace(`${pathname}?${params.toString()}`, { scroll: false }); + onChange(search); + }, + [searchParams, replace, pathname, onChange] + ); + + const debouncedKeyword = useMemo( + () => debounce(updateSearchParams, 300), + [updateSearchParams] + ); + + const handleSearchChange = useCallback( + (e: React.ChangeEvent) => { + const search = e.target.value; + debouncedKeyword(search); + }, + [debouncedKeyword] + ); + return ( + <> + + + ); +} diff --git a/package-lock.json b/package-lock.json index c2fc14f8..6218a40d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,12 +11,14 @@ "@types/styled-components": "^5.1.34", "axios": "^1.8.1", "babel-plugin-styled-components": "^2.1.4", + "lodash.debounce": "^4.0.8", "next": "13.5.6", "react": "^18", "react-dom": "^18", "styled-components": "^6.1.15" }, "devDependencies": { + "@types/lodash.debounce": "^4.0.9", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", @@ -714,6 +716,21 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/lodash": { + "version": "4.17.16", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", + "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", + "dev": true + }, + "node_modules/@types/lodash.debounce": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz", + "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==", + "dev": true, + "dependencies": { + "@types/lodash": "*" + } + }, "node_modules/@types/node": { "version": "20.9.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.4.tgz", @@ -3100,6 +3117,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", diff --git a/package.json b/package.json index 72a493d0..f402d676 100644 --- a/package.json +++ b/package.json @@ -12,12 +12,14 @@ "@types/styled-components": "^5.1.34", "axios": "^1.8.1", "babel-plugin-styled-components": "^2.1.4", + "lodash.debounce": "^4.0.8", "next": "13.5.6", "react": "^18", "react-dom": "^18", "styled-components": "^6.1.15" }, "devDependencies": { + "@types/lodash.debounce": "^4.0.9", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", diff --git a/public/icons/search.svg b/public/icons/search.svg new file mode 100644 index 00000000..52241e6d --- /dev/null +++ b/public/icons/search.svg @@ -0,0 +1,3 @@ + + + From 8cd34f966734a3a511fc8f6862c9a213b0c3c387 Mon Sep 17 00:00:00 2001 From: heejin Date: Sun, 2 Mar 2025 20:43:56 +0900 Subject: [PATCH 11/49] Fix :gap 0px when no label --- components/common/Input/Input.styles.tsx | 4 ++-- components/common/Input/Input.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/common/Input/Input.styles.tsx b/components/common/Input/Input.styles.tsx index e863e80d..7613c9b6 100644 --- a/components/common/Input/Input.styles.tsx +++ b/components/common/Input/Input.styles.tsx @@ -6,12 +6,12 @@ interface InputProps { size?: number; } -export const InputContainer = styled.div` +export const InputContainer = styled.div<{ label?: string }>` width: 100%; height: 100%; display: flex; flex-direction: column; - gap: 16px; + gap: ${({ label }) => (label ? "16px" : "0px")}; `; export const Label = styled.label` diff --git a/components/common/Input/Input.tsx b/components/common/Input/Input.tsx index 00332861..2d53ac42 100644 --- a/components/common/Input/Input.tsx +++ b/components/common/Input/Input.tsx @@ -25,7 +25,7 @@ export default function Input({ ...rest }: InputProps) { return ( - + {label} {leftSlot && ( From f4419c07e97ebaeb001f02506b18bb5ddc22abe2 Mon Sep 17 00:00:00 2001 From: heejin Date: Mon, 3 Mar 2025 04:06:46 +0900 Subject: [PATCH 12/49] Feat : dropdown common component --- .../common/Dropdown/Dropdown.styles.tsx | 86 +++++++++++++++++++ components/common/Dropdown/Dropdown.tsx | 51 +++++++++++ components/common/Header/Header.styles.tsx | 2 +- public/icons/arrowDown.svg | 3 + public/icons/arrowUp.svg | 3 + public/icons/dropdown.svg | 6 ++ 6 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 components/common/Dropdown/Dropdown.styles.tsx create mode 100644 components/common/Dropdown/Dropdown.tsx create mode 100644 public/icons/arrowDown.svg create mode 100644 public/icons/arrowUp.svg create mode 100644 public/icons/dropdown.svg diff --git a/components/common/Dropdown/Dropdown.styles.tsx b/components/common/Dropdown/Dropdown.styles.tsx new file mode 100644 index 00000000..9493e5b0 --- /dev/null +++ b/components/common/Dropdown/Dropdown.styles.tsx @@ -0,0 +1,86 @@ +import styled from "styled-components"; +import theme from "../../../styles/theme"; + +export const DropdownContainer = styled.div` + flex-shrink: 0; + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 20px; + width: 130px; + height: 42px; + position: relative; + + @media screen and (max-width: 767px) { + width: 42px; + } +`; + +export const Present = styled.div` + width: 100%; + height: 42px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 12px 20px; + border-radius: 12px; + border: 1px solid ${theme.color.gray200}; + background-color: ${theme.color.white}; + cursor: pointer; + + @media screen and (max-width: 767px) { + display: none; + justify-content: flex-end; + padding: 9px; + } +`; + +export const PresentValue = styled.div` + font: ${theme.font.H5Regular}; + color: ${theme.color.gray800}; +`; + +export const Small = styled.div` + width: 42px; + height: 42px; + flex-shrink: 0; + display: none; + justify-content: center; + align-items: center; + border-radius: 12px; + border: 1px solid ${theme.color.gray200}; + background-color: ${theme.color.white}; + cursor: pointer; + @media screen and (max-width: 767px) { + display: flex; + } +`; + +export const List = styled.div` + width: 130px; + background-color: ${theme.color.white}; + border: 1px solid ${theme.color.gray200}; + border-radius: 12px; + position: absolute; + top: 55px; + color: ${theme.color.gray800}; + z-index: 99; +`; + +export const ListItem = styled.div` + height: 42px; + display: flex; + justify-content: center; + align-items: center; + border-bottom: 1px solid ${theme.color.gray200}; + font: ${theme.font.H5Regular}; + cursor: pointer; + + &:hover { + color: ${theme.color.blue}; + } + + &:last-child { + border-bottom: none; + } +`; diff --git a/components/common/Dropdown/Dropdown.tsx b/components/common/Dropdown/Dropdown.tsx new file mode 100644 index 00000000..b829f8da --- /dev/null +++ b/components/common/Dropdown/Dropdown.tsx @@ -0,0 +1,51 @@ +import * as S from "./Dropdown.styles"; +import Image from "next/image"; +import { useState } from "react"; +import down from "@/public/icons/arrowDown.svg"; +import up from "@/public/icons/arrowUp.svg"; +import dropdown from "@/public/icons/dropdown.svg"; + +interface DropDownProps { + orderBy: string; + onChange: (filter: string) => void; + list: string[]; +} + +export default function Dropdown({ + orderBy, + onChange, + list = [], +}: DropDownProps) { + const [isOpen, setIsOpen] = useState(false); + + const handleOpenClick = () => { + setIsOpen((prev) => !prev); + }; + + return ( + + + {orderBy} + arrow + + + dropdown + + {isOpen && ( + + {list.map((item) => ( + { + onChange(item); + setIsOpen(false); + }} + > + {item} + + ))} + + )} + + ); +} diff --git a/components/common/Header/Header.styles.tsx b/components/common/Header/Header.styles.tsx index fa608bcf..409047d8 100644 --- a/components/common/Header/Header.styles.tsx +++ b/components/common/Header/Header.styles.tsx @@ -13,7 +13,7 @@ export const HeaderContainer = styled.div` border-bottom: 1px solid #dfdfdf; position: sticky; top: 0; - z-index: 1; + z-index: 100; @media (min-width: 769px) and (max-width: 1280px) { padding: 9px 24px; diff --git a/public/icons/arrowDown.svg b/public/icons/arrowDown.svg new file mode 100644 index 00000000..8308690f --- /dev/null +++ b/public/icons/arrowDown.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/arrowUp.svg b/public/icons/arrowUp.svg new file mode 100644 index 00000000..c48c9aad --- /dev/null +++ b/public/icons/arrowUp.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/dropdown.svg b/public/icons/dropdown.svg new file mode 100644 index 00000000..ab89188f --- /dev/null +++ b/public/icons/dropdown.svg @@ -0,0 +1,6 @@ + + + + + + From eb090ee0ea7917db4fad5d7c7d7007efef2bc5b4 Mon Sep 17 00:00:00 2001 From: heejin Date: Mon, 3 Mar 2025 04:43:17 +0900 Subject: [PATCH 13/49] Feat : pagination component --- components/Pagination/Pagination.styles.tsx | 32 +++++++++++ components/Pagination/Pagination.tsx | 61 +++++++++++++++++++++ public/icons/arrowLeft.svg | 3 + public/icons/arrowRight.svg | 3 + 4 files changed, 99 insertions(+) create mode 100644 components/Pagination/Pagination.styles.tsx create mode 100644 components/Pagination/Pagination.tsx create mode 100644 public/icons/arrowLeft.svg create mode 100644 public/icons/arrowRight.svg diff --git a/components/Pagination/Pagination.styles.tsx b/components/Pagination/Pagination.styles.tsx new file mode 100644 index 00000000..b1cfaf81 --- /dev/null +++ b/components/Pagination/Pagination.styles.tsx @@ -0,0 +1,32 @@ +import theme from "@/styles/theme"; +import Image from "next/image"; +import styled from "styled-components"; + +export const Pages = styled.div` + width: 100%; + display: flex; + justify-content: center; + align-items: center; + gap: 4px; +`; + +export const Button = styled.button` + width: 40px; + height: 40px; + border-radius: 40px; + border: 1px solid ${theme.color.gray200}; + background-color: ${theme.color.white}; + cursor: pointer; +`; + +export const Arrow = styled(Image)<{ disabled: boolean }>` + ${({ disabled }) => disabled && `opacity : 0.2`}; +`; + +export const Page = styled(Button)<{ isActive?: boolean }>` + font: ${theme.font.H5Bold}; + color: ${({ isActive }) => + isActive ? `${theme.color.gray50}` : `${theme.color.gray500}`}; + background-color: ${({ isActive }) => + isActive ? `${theme.color.blue}` : `${theme.color.white}`}; +`; diff --git a/components/Pagination/Pagination.tsx b/components/Pagination/Pagination.tsx new file mode 100644 index 00000000..badf2eb9 --- /dev/null +++ b/components/Pagination/Pagination.tsx @@ -0,0 +1,61 @@ +import * as S from "./Pagination.styles"; +import left from "@/public/icons/arrowLeft.svg"; +import right from "@/public/icons/arrowRight.svg"; + +interface PagingProps { + totalBoards: number; + currentPage: number; + onChange: (page: number) => void; +} + +export default function Pagination({ + totalBoards, + currentPage, + onChange, +}: PagingProps) { + const pageGroup = Math.ceil(currentPage / 5); + const startPage = (pageGroup - 1) * 5 + 1; + const endPage = Math.min(startPage + 4, totalBoards); + + return ( + + onChange(currentPage - 1)} + > + + + {Array.from( + { length: endPage - startPage + 1 }, + (_, i) => startPage + i + ).map((page) => ( + onChange(page)} + > + {page} + + ))} + onChange(currentPage + 1)} + > + + + + ); +} diff --git a/public/icons/arrowLeft.svg b/public/icons/arrowLeft.svg new file mode 100644 index 00000000..040e81c2 --- /dev/null +++ b/public/icons/arrowLeft.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/arrowRight.svg b/public/icons/arrowRight.svg new file mode 100644 index 00000000..368742c9 --- /dev/null +++ b/public/icons/arrowRight.svg @@ -0,0 +1,3 @@ + + + From 677f49dae20940f83b77aea207e7544f876a21b5 Mon Sep 17 00:00:00 2001 From: heejin Date: Mon, 3 Mar 2025 05:04:43 +0900 Subject: [PATCH 14/49] Feat : Link --- components/AllBoards/AllItem.styles.tsx | 4 +++- components/AllBoards/AllItem.tsx | 6 ++---- components/BestBoards/BestItem.styles.tsx | 6 ++++-- components/BestBoards/BestItem.tsx | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/components/AllBoards/AllItem.styles.tsx b/components/AllBoards/AllItem.styles.tsx index 26ca4e71..be3685bb 100644 --- a/components/AllBoards/AllItem.styles.tsx +++ b/components/AllBoards/AllItem.styles.tsx @@ -1,7 +1,8 @@ import theme from "@/styles/theme"; +import Link from "next/link"; import styled from "styled-components"; -export const Container = styled.div` +export const Container = styled(Link)` width: 100%; height: 138px; display: flex; @@ -10,6 +11,7 @@ export const Container = styled.div` padding-bottom: 24px; background-color: ${theme.color.bg}; border-bottom: 1px solid ${theme.color.gray200}; + cursor: pointer; `; export const Content = styled.div` diff --git a/components/AllBoards/AllItem.tsx b/components/AllBoards/AllItem.tsx index 87be2f7b..25c6904d 100644 --- a/components/AllBoards/AllItem.tsx +++ b/components/AllBoards/AllItem.tsx @@ -11,12 +11,10 @@ interface AllItemProps { export default function AllItem({ all }: AllItemProps) { return ( - + {all.content} - - - + {all.image && } diff --git a/components/BestBoards/BestItem.styles.tsx b/components/BestBoards/BestItem.styles.tsx index fda19588..60bc3ddd 100644 --- a/components/BestBoards/BestItem.styles.tsx +++ b/components/BestBoards/BestItem.styles.tsx @@ -1,12 +1,14 @@ -import theme from "@/styles/theme"; import styled from "styled-components"; +import theme from "@/styles/theme"; +import Link from "next/link"; -export const Container = styled.div` +export const Container = styled(Link)` width: 384px; height: 169px; padding: 0 24px; background-color: ${theme.color.gray50}; border-radius: 8px; + cursor: pointer; `; export const Item = styled.div` diff --git a/components/BestBoards/BestItem.tsx b/components/BestBoards/BestItem.tsx index c92e987c..028381eb 100644 --- a/components/BestBoards/BestItem.tsx +++ b/components/BestBoards/BestItem.tsx @@ -13,7 +13,7 @@ interface BestItemProps { export default function BestItem({ best }: BestItemProps) { return ( - + medal From 2304bfd43a6c8db6d0bc2d5581887f94af1852b3 Mon Sep 17 00:00:00 2001 From: heejin Date: Mon, 3 Mar 2025 05:05:08 +0900 Subject: [PATCH 15/49] Fix : edit change handler --- components/Search/Search.tsx | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/components/Search/Search.tsx b/components/Search/Search.tsx index 2ac7fbb8..de89db3e 100644 --- a/components/Search/Search.tsx +++ b/components/Search/Search.tsx @@ -1,10 +1,8 @@ -"use client"; - import Input from "../common/Input/Input"; import { useCallback, useMemo } from "react"; +import { useSearchParams } from "next/navigation"; import debounce from "lodash.debounce"; import search from "@/public/icons/search.svg"; -import { usePathname, useSearchParams, useRouter } from "next/navigation"; interface SearchProps { onChange: (keyword: string) => void; @@ -12,28 +10,10 @@ interface SearchProps { export default function Search({ onChange }: SearchProps) { const searchParams = useSearchParams(); - const pathname = usePathname(); - const { replace } = useRouter(); - - const updateSearchParams = useCallback( - (search: string) => { - const params = new URLSearchParams(searchParams.toString()); - - if (search) { - params.set("keyword", search); - } else { - params.delete("keyword"); - } - - replace(`${pathname}?${params.toString()}`, { scroll: false }); - onChange(search); - }, - [searchParams, replace, pathname, onChange] - ); const debouncedKeyword = useMemo( - () => debounce(updateSearchParams, 300), - [updateSearchParams] + () => debounce((search: string) => onChange(search), 300), + [] ); const handleSearchChange = useCallback( From 80e8a7d70c049d64b0fdb881a0cc45ef792156ae Mon Sep 17 00:00:00 2001 From: heejin Date: Mon, 3 Mar 2025 05:09:49 +0900 Subject: [PATCH 16/49] Fix : isActive props error --- components/Pagination/Pagination.styles.tsx | 10 +++++----- components/Pagination/Pagination.tsx | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/Pagination/Pagination.styles.tsx b/components/Pagination/Pagination.styles.tsx index b1cfaf81..69e9dd86 100644 --- a/components/Pagination/Pagination.styles.tsx +++ b/components/Pagination/Pagination.styles.tsx @@ -23,10 +23,10 @@ export const Arrow = styled(Image)<{ disabled: boolean }>` ${({ disabled }) => disabled && `opacity : 0.2`}; `; -export const Page = styled(Button)<{ isActive?: boolean }>` +export const Page = styled(Button)<{ $isActive?: boolean }>` font: ${theme.font.H5Bold}; - color: ${({ isActive }) => - isActive ? `${theme.color.gray50}` : `${theme.color.gray500}`}; - background-color: ${({ isActive }) => - isActive ? `${theme.color.blue}` : `${theme.color.white}`}; + color: ${({ $isActive }) => + $isActive ? `${theme.color.gray50}` : `${theme.color.gray500}`}; + background-color: ${({ $isActive }) => + $isActive ? `${theme.color.blue}` : `${theme.color.white}`}; `; diff --git a/components/Pagination/Pagination.tsx b/components/Pagination/Pagination.tsx index badf2eb9..9b6117fd 100644 --- a/components/Pagination/Pagination.tsx +++ b/components/Pagination/Pagination.tsx @@ -37,7 +37,7 @@ export default function Pagination({ ).map((page) => ( onChange(page)} > From 7c620e35ca70e1a5980245d33f21ede5df8e5462 Mon Sep 17 00:00:00 2001 From: heejin Date: Mon, 3 Mar 2025 05:10:48 +0900 Subject: [PATCH 17/49] Feat : all boards component --- app/boards/Boards.styles.tsx | 14 +++++ app/boards/page.tsx | 15 ++++- components/AllBoards/All.styles.tsx | 46 +++++++++++++++ components/AllBoards/All.tsx | 89 +++++++++++++++++++++++++++++ next.config.js | 6 +- styles/theme.tsx | 6 +- 6 files changed, 169 insertions(+), 7 deletions(-) create mode 100644 app/boards/Boards.styles.tsx create mode 100644 components/AllBoards/All.styles.tsx create mode 100644 components/AllBoards/All.tsx diff --git a/app/boards/Boards.styles.tsx b/app/boards/Boards.styles.tsx new file mode 100644 index 00000000..57dc8d64 --- /dev/null +++ b/app/boards/Boards.styles.tsx @@ -0,0 +1,14 @@ +import styled from "styled-components"; + +export const Container = styled.div` + display: flex; + justify-content: center; + align-items: center; + margin: 40px 0; +`; + +export const Board = styled.div` + display: flex; + flex-direction: column; + gap: 40px; +`; diff --git a/app/boards/page.tsx b/app/boards/page.tsx index 6015f1c8..3b05fa5d 100644 --- a/app/boards/page.tsx +++ b/app/boards/page.tsx @@ -1,3 +1,16 @@ +"use client"; + +import Best from "@/components/BestBoards/Best"; +import * as S from "./Boards.styles"; +import All from "@/components/AllBoards/All"; + export default function Boards() { - return <>boards page; + return ( + + + + + + + ); } diff --git a/components/AllBoards/All.styles.tsx b/components/AllBoards/All.styles.tsx new file mode 100644 index 00000000..e59ca042 --- /dev/null +++ b/components/AllBoards/All.styles.tsx @@ -0,0 +1,46 @@ +import theme from "@/styles/theme"; +import styled from "styled-components"; + +export const AllBoards = styled.div` + display: flex; + flex-direction: column; + gap: 24px; +`; + +export const Header = styled.div` + display: flex; + justify-content: space-between; + align-items: center; + h2 { + color: ${theme.color.gray900}; + font: ${theme.font.H3Bold}; + } +`; + +export const WriteBtn = styled.button` + padding: 8px 24px; + border-radius: 8px; + color: ${theme.color.white}; + background-color: ${theme.color.blue}; + font: ${theme.font.H5Bold}; + cursor: pointer; +`; + +export const Container = styled.div` + display: flex; + flex-direction: column; + gap: 24px; +`; + +export const Filter = styled.div` + display: flex; + justify-content: center; + align-items: center; + gap: 12px; +`; + +export const Items = styled.div` + display: flex; + flex-direction: column; + gap: 24px; +`; diff --git a/components/AllBoards/All.tsx b/components/AllBoards/All.tsx new file mode 100644 index 00000000..32e2c71f --- /dev/null +++ b/components/AllBoards/All.tsx @@ -0,0 +1,89 @@ +import * as S from "./All.styles"; +import { BoardItem, getBoards } from "@/apis/boards"; +import { useSearchParams, useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; +import AllItem from "./AllItem"; +import Dropdown from "../common/Dropdown/Dropdown"; +import Search from "../Search/Search"; +import Pagination from "../Pagination/Pagination"; + +const FilterList = ["recent", "like"]; +const PAGE_SIZE = 10; + +export default function All() { + const [all, setAll] = useState([]); + const [totalBoards, setTotalBoards] = useState(0); + + const searchParams = useSearchParams(); + const router = useRouter(); + + const page = Number(searchParams.get("page")) || 1; + const orderBy = searchParams.get("orderBy") || "recent"; + const keyword = searchParams.get("keyword") || ""; + + useEffect(() => { + getBoards({ + page, + pageSize: keyword ? 1000 : PAGE_SIZE, + orderBy, + keyword, + }) + .then((result) => { + if (!result) return; + setAll(result.list); + if (result.totalCount) { + setTotalBoards(result.totalCount); + } + }) + .catch((error) => console.error(error)); + }, [page, orderBy, keyword]); + + const handleParamsUpdate = ( + params: Partial<{ page: number; orderBy: string; keyword: string }> + ) => { + const newParams = new URLSearchParams(searchParams.toString()); + + Object.entries(params).forEach(([key, value]) => { + if (value) { + newParams.set(key, String(value)); + } else { + newParams.delete(key); + } + }); + + router.replace(`?${newParams.toString()}`, { scroll: false }); + }; + + return ( + + +

게시글

+ 글쓰기 +
+ + + handleParamsUpdate({ keyword: keyword })} + /> + handleParamsUpdate({ orderBy: filter })} + /> + + + {all.map((item) => ( + + ))} + + {!keyword && ( + handleParamsUpdate({ page: page })} + /> + )} + +
+ ); +} diff --git a/next.config.js b/next.config.js index b666e541..94b1e068 100644 --- a/next.config.js +++ b/next.config.js @@ -2,7 +2,11 @@ const nextConfig = { reactStrictMode: true, images: { - domains: ["sprint-fe-project.s3.ap-northeast-2.amazonaws.com"], + domains: [ + "example.com", + "sprint-fe-project.s3.ap-northeast-2.amazonaws.com", + "mblogthumb-phinf.pstatic.net", + ], }, }; diff --git a/styles/theme.tsx b/styles/theme.tsx index 03fd24e0..ff6ecde2 100644 --- a/styles/theme.tsx +++ b/styles/theme.tsx @@ -20,11 +20,7 @@ const theme = { textDark: "#374151", textBright: "#f3f4f6", - backgroundMain: "#fcfcfc", - backgroundFooter: "#111827", - backgroundLanding: "#cfe5ff", - - easyLogin: "#e6f2ff", + bg: "#fcfcfc", white: "#ffffff", blue: "#3692FF", From 92b328aeb4b81aba358b18eb7bf8032bb1d441c9 Mon Sep 17 00:00:00 2001 From: heejin Date: Mon, 3 Mar 2025 05:13:46 +0900 Subject: [PATCH 18/49] Feat : scroll true when changing page --- components/AllBoards/All.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/AllBoards/All.tsx b/components/AllBoards/All.tsx index 32e2c71f..e2632825 100644 --- a/components/AllBoards/All.tsx +++ b/components/AllBoards/All.tsx @@ -51,7 +51,9 @@ export default function All() { } }); - router.replace(`?${newParams.toString()}`, { scroll: false }); + router.replace(`?${newParams.toString()}`, { + scroll: params.page ? true : false, + }); }; return ( From 98c37d2544de8236b1f33b37dde6700d08eeed36 Mon Sep 17 00:00:00 2001 From: heejin Date: Tue, 4 Mar 2025 03:42:14 +0900 Subject: [PATCH 19/49] Fix : apply pagination Link --- components/AllBoards/All.tsx | 2 +- components/Pagination/Pagination.styles.tsx | 8 +++-- components/Pagination/Pagination.tsx | 34 ++++++++++++--------- next.config.js | 2 ++ 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/components/AllBoards/All.tsx b/components/AllBoards/All.tsx index e2632825..b1ecac57 100644 --- a/components/AllBoards/All.tsx +++ b/components/AllBoards/All.tsx @@ -82,7 +82,7 @@ export default function All() { handleParamsUpdate({ page: page })} + pageSize={PAGE_SIZE} /> )}
diff --git a/components/Pagination/Pagination.styles.tsx b/components/Pagination/Pagination.styles.tsx index 69e9dd86..ba613b90 100644 --- a/components/Pagination/Pagination.styles.tsx +++ b/components/Pagination/Pagination.styles.tsx @@ -1,5 +1,6 @@ import theme from "@/styles/theme"; import Image from "next/image"; +import Link from "next/link"; import styled from "styled-components"; export const Pages = styled.div` @@ -10,9 +11,12 @@ export const Pages = styled.div` gap: 4px; `; -export const Button = styled.button` +export const LinkBtn = styled(Link)` width: 40px; height: 40px; + display: flex; + justify-content: center; + align-items: center; border-radius: 40px; border: 1px solid ${theme.color.gray200}; background-color: ${theme.color.white}; @@ -23,7 +27,7 @@ export const Arrow = styled(Image)<{ disabled: boolean }>` ${({ disabled }) => disabled && `opacity : 0.2`}; `; -export const Page = styled(Button)<{ $isActive?: boolean }>` +export const Page = styled(LinkBtn)<{ $isActive?: boolean }>` font: ${theme.font.H5Bold}; color: ${({ $isActive }) => $isActive ? `${theme.color.gray50}` : `${theme.color.gray500}`}; diff --git a/components/Pagination/Pagination.tsx b/components/Pagination/Pagination.tsx index 9b6117fd..04afbbfa 100644 --- a/components/Pagination/Pagination.tsx +++ b/components/Pagination/Pagination.tsx @@ -1,28 +1,36 @@ import * as S from "./Pagination.styles"; import left from "@/public/icons/arrowLeft.svg"; import right from "@/public/icons/arrowRight.svg"; +import { useSearchParams } from "next/navigation"; interface PagingProps { totalBoards: number; currentPage: number; - onChange: (page: number) => void; + pageSize: number; } export default function Pagination({ totalBoards, currentPage, - onChange, + pageSize, }: PagingProps) { + const searchParams = useSearchParams(); + const pageGroup = Math.ceil(currentPage / 5); + const totalPages = Math.ceil(totalBoards / pageSize); const startPage = (pageGroup - 1) * 5 + 1; - const endPage = Math.min(startPage + 4, totalBoards); + const endPage = Math.min(startPage + 4, totalPages); + + const createPageParams = (page: number) => { + const newParams = new URLSearchParams(searchParams.toString()); + newParams.set("page", String(page)); + + return `?${newParams.toString()}`; + }; return ( - onChange(currentPage - 1)} - > + - + {Array.from( { length: endPage - startPage + 1 }, (_, i) => startPage + i @@ -38,16 +46,12 @@ export default function Pagination({ onChange(page)} + href={createPageParams(page)} > {page} ))} - onChange(currentPage + 1)} - > + - + ); } diff --git a/next.config.js b/next.config.js index 94b1e068..336a89c0 100644 --- a/next.config.js +++ b/next.config.js @@ -6,6 +6,8 @@ const nextConfig = { "example.com", "sprint-fe-project.s3.ap-northeast-2.amazonaws.com", "mblogthumb-phinf.pstatic.net", + "ibb.co", + "via.placeholder.com", ], }, }; From 93d98580f4f147af0f4e82508e399e50fc9f6cfb Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 01:50:53 +0900 Subject: [PATCH 20/49] Feat - prevent unnecessary href - usePagination custiom hook --- components/Pagination/Pagination.tsx | 40 ++++++++++++++----------- components/Pagination/usePagination.tsx | 24 +++++++++++++++ 2 files changed, 46 insertions(+), 18 deletions(-) create mode 100644 components/Pagination/usePagination.tsx diff --git a/components/Pagination/Pagination.tsx b/components/Pagination/Pagination.tsx index 04afbbfa..59432af4 100644 --- a/components/Pagination/Pagination.tsx +++ b/components/Pagination/Pagination.tsx @@ -1,9 +1,9 @@ import * as S from "./Pagination.styles"; import left from "@/public/icons/arrowLeft.svg"; import right from "@/public/icons/arrowRight.svg"; -import { useSearchParams } from "next/navigation"; +import usePagination from "./usePagination"; -interface PagingProps { +export interface PagingProps { totalBoards: number; currentPage: number; pageSize: number; @@ -14,23 +14,19 @@ export default function Pagination({ currentPage, pageSize, }: PagingProps) { - const searchParams = useSearchParams(); - - const pageGroup = Math.ceil(currentPage / 5); - const totalPages = Math.ceil(totalBoards / pageSize); - const startPage = (pageGroup - 1) * 5 + 1; - const endPage = Math.min(startPage + 4, totalPages); - - const createPageParams = (page: number) => { - const newParams = new URLSearchParams(searchParams.toString()); - newParams.set("page", String(page)); - - return `?${newParams.toString()}`; - }; + const { startPage, endPage, totalPages, createPageParams } = usePagination({ + totalBoards, + currentPage, + pageSize, + }); return ( - + 1 ? createPageParams(currentPage - 1) : "#"} + shallow + scroll={false} + > {page} ))} - + { + const newParams = new URLSearchParams(searchParams.toString()); + newParams.set("page", String(page)); + + return `?${newParams.toString()}`; + }; + + return { startPage, endPage, totalPages, createPageParams }; +} From cdbd2daf30c630654c1745a30c9ed35553f36020 Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 01:52:44 +0900 Subject: [PATCH 21/49] Feat : useBestData custom hook --- components/BestBoards/Best.tsx | 14 ++------------ components/BestBoards/useBestData.tsx | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 components/BestBoards/useBestData.tsx diff --git a/components/BestBoards/Best.tsx b/components/BestBoards/Best.tsx index f9f469f5..36348aba 100644 --- a/components/BestBoards/Best.tsx +++ b/components/BestBoards/Best.tsx @@ -1,19 +1,9 @@ -import { useEffect, useState } from "react"; import * as S from "./Best.styles"; import BestItem from "./BestItem"; -import { BoardItem, getBoards } from "@/apis/boards"; +import useBestData from "./useBestData"; export default function Best() { - const [best, setBest] = useState([]); - - useEffect(() => { - getBoards({ page: 1, pageSize: 3, orderBy: "like", keyword: "" }) - .then((result) => { - if (!result) return; - setBest(result.list); - }) - .catch((error) => console.error(error)); - }, []); + const best = useBestData(); return ( diff --git a/components/BestBoards/useBestData.tsx b/components/BestBoards/useBestData.tsx new file mode 100644 index 00000000..d5e05183 --- /dev/null +++ b/components/BestBoards/useBestData.tsx @@ -0,0 +1,17 @@ +import { BoardItem, getBoards } from "@/apis/boards"; +import { useEffect, useState } from "react"; + +export default function useBestData() { + const [best, setBest] = useState([]); + + useEffect(() => { + getBoards({ page: 1, pageSize: 3, orderBy: "like", keyword: "" }) + .then((result) => { + if (!result) return; + setBest(result.list); + }) + .catch((error) => console.error(error)); + }, []); + + return best; +} From ad4a93a3cbff0b413b0d666d0416f1bc536f95b3 Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 02:13:23 +0900 Subject: [PATCH 22/49] Feat : useParams custom hook --- hooks/useParams.tsx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 hooks/useParams.tsx diff --git a/hooks/useParams.tsx b/hooks/useParams.tsx new file mode 100644 index 00000000..59e9dbca --- /dev/null +++ b/hooks/useParams.tsx @@ -0,0 +1,30 @@ +import { useRouter, useSearchParams } from "next/navigation"; + +export default function useParams() { + const searchParams = useSearchParams(); + const router = useRouter(); + + const page = Number(searchParams.get("page")) || 1; + const orderBy = searchParams.get("orderBy") || "recent"; + const keyword = searchParams.get("keyword") || ""; + + const handleParamsUpdate = ( + params: Partial<{ page: number; orderBy: string; keyword: string }> + ) => { + const newParams = new URLSearchParams(searchParams.toString()); + + Object.entries(params).forEach(([key, value]) => { + if (value) { + newParams.set(key, String(value)); + } else { + newParams.delete(key); + } + }); + + router.replace(`?${newParams.toString()}`, { + scroll: false, + }); + }; + + return { page, orderBy, keyword, handleParamsUpdate }; +} From 1a9c7a8feb766fe5f681a8263ee68e92b87d4494 Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 02:13:49 +0900 Subject: [PATCH 23/49] Feat : useAllData custom hook --- components/AllBoards/All.tsx | 55 +++-------------------------- components/AllBoards/useAllData.tsx | 28 +++++++++++++++ 2 files changed, 33 insertions(+), 50 deletions(-) create mode 100644 components/AllBoards/useAllData.tsx diff --git a/components/AllBoards/All.tsx b/components/AllBoards/All.tsx index b1ecac57..65def2dd 100644 --- a/components/AllBoards/All.tsx +++ b/components/AllBoards/All.tsx @@ -1,60 +1,17 @@ import * as S from "./All.styles"; -import { BoardItem, getBoards } from "@/apis/boards"; -import { useSearchParams, useRouter } from "next/navigation"; -import { useEffect, useState } from "react"; import AllItem from "./AllItem"; import Dropdown from "../common/Dropdown/Dropdown"; import Search from "../Search/Search"; import Pagination from "../Pagination/Pagination"; +import useAllData from "./useAllData"; +import useParams from "@/hooks/useParams"; const FilterList = ["recent", "like"]; const PAGE_SIZE = 10; export default function All() { - const [all, setAll] = useState([]); - const [totalBoards, setTotalBoards] = useState(0); - - const searchParams = useSearchParams(); - const router = useRouter(); - - const page = Number(searchParams.get("page")) || 1; - const orderBy = searchParams.get("orderBy") || "recent"; - const keyword = searchParams.get("keyword") || ""; - - useEffect(() => { - getBoards({ - page, - pageSize: keyword ? 1000 : PAGE_SIZE, - orderBy, - keyword, - }) - .then((result) => { - if (!result) return; - setAll(result.list); - if (result.totalCount) { - setTotalBoards(result.totalCount); - } - }) - .catch((error) => console.error(error)); - }, [page, orderBy, keyword]); - - const handleParamsUpdate = ( - params: Partial<{ page: number; orderBy: string; keyword: string }> - ) => { - const newParams = new URLSearchParams(searchParams.toString()); - - Object.entries(params).forEach(([key, value]) => { - if (value) { - newParams.set(key, String(value)); - } else { - newParams.delete(key); - } - }); - - router.replace(`?${newParams.toString()}`, { - scroll: params.page ? true : false, - }); - }; + const { all, totalBoards } = useAllData(PAGE_SIZE); + const { page, orderBy, keyword, handleParamsUpdate } = useParams(); return ( @@ -64,9 +21,7 @@ export default function All() { - handleParamsUpdate({ keyword: keyword })} - /> + ([]); + const [totalBoards, setTotalBoards] = useState(0); + const { page, orderBy, keyword } = useParams(); + + useEffect(() => { + getBoards({ + page, + pageSize: keyword ? 1000 : PAGE_SIZE, + orderBy, + keyword, + }) + .then((result) => { + if (!result) return; + setAll(result.list); + if (result.totalCount) { + setTotalBoards(result.totalCount); + } + }) + .catch((error) => console.error(error)); + }, [page, orderBy, keyword, PAGE_SIZE]); + + return { all, totalBoards }; +} From 7b96172d4766d5cbacaee7b206e67580fbc4d044 Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 02:16:58 +0900 Subject: [PATCH 24/49] Feat : useSearch custom hook --- components/Search/Search.tsx | 26 ++++---------------------- components/Search/useSearch.tsx | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 components/Search/useSearch.tsx diff --git a/components/Search/Search.tsx b/components/Search/Search.tsx index de89db3e..abf5b884 100644 --- a/components/Search/Search.tsx +++ b/components/Search/Search.tsx @@ -1,28 +1,10 @@ import Input from "../common/Input/Input"; -import { useCallback, useMemo } from "react"; -import { useSearchParams } from "next/navigation"; -import debounce from "lodash.debounce"; import search from "@/public/icons/search.svg"; +import useSearch from "./useSearch"; -interface SearchProps { - onChange: (keyword: string) => void; -} - -export default function Search({ onChange }: SearchProps) { - const searchParams = useSearchParams(); +export default function Search() { + const { defaultValue, handleSearchChange } = useSearch(); - const debouncedKeyword = useMemo( - () => debounce((search: string) => onChange(search), 300), - [] - ); - - const handleSearchChange = useCallback( - (e: React.ChangeEvent) => { - const search = e.target.value; - debouncedKeyword(search); - }, - [debouncedKeyword] - ); return ( <> ); diff --git a/components/Search/useSearch.tsx b/components/Search/useSearch.tsx new file mode 100644 index 00000000..1c8457ef --- /dev/null +++ b/components/Search/useSearch.tsx @@ -0,0 +1,30 @@ +import useParams from "@/hooks/useParams"; +import debounce from "lodash.debounce"; +import { useSearchParams } from "next/navigation"; +import { useCallback, useMemo } from "react"; + +export default function useSearch() { + const searchParams = useSearchParams(); + const { handleParamsUpdate } = useParams(); + + const debouncedKeyword = useMemo( + () => + debounce( + (search: string) => handleParamsUpdate({ keyword: search }), + 300 + ), + [] + ); + + const handleSearchChange = useCallback( + (e: React.ChangeEvent) => { + const search = e.target.value; + debouncedKeyword(search); + }, + [debouncedKeyword] + ); + + const defaultValue = searchParams.get("keyword")?.toString(); + + return { defaultValue, handleSearchChange }; +} From b17975ec512ef10195b73d84fc22776501bdf96d Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 03:36:55 +0900 Subject: [PATCH 25/49] Chore : next config edit --- .babelrc | 4 - next.config.js | 6 + package-lock.json | 483 +--------------------------------------------- package.json | 1 - 4 files changed, 10 insertions(+), 484 deletions(-) delete mode 100644 .babelrc diff --git a/.babelrc b/.babelrc deleted file mode 100644 index a88b914b..00000000 --- a/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["next/babel"], - "plugins": ["babel-plugin-styled-components"] -} diff --git a/next.config.js b/next.config.js index 336a89c0..937a5f27 100644 --- a/next.config.js +++ b/next.config.js @@ -1,6 +1,12 @@ /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, + compiler: { + styledComponents: { + ssr: true, + displayName: true, + }, + }, images: { domains: [ "example.com", diff --git a/package-lock.json b/package-lock.json index 6218a40d..69da8d57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "dependencies": { "@types/styled-components": "^5.1.34", "axios": "^1.8.1", - "babel-plugin-styled-components": "^2.1.4", "lodash.debounce": "^4.0.8", "next": "13.5.6", "react": "^18", @@ -36,261 +35,6 @@ "node": ">=0.10.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", - "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.9", - "@babel/types": "^7.26.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", - "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", - "dependencies": { - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "peer": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "peer": true - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", - "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", - "peer": true, - "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "dependencies": { - "@babel/types": "^7.26.9" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/runtime": { "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", @@ -303,56 +47,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", - "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", @@ -460,49 +154,6 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, "node_modules/@next/env": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", @@ -1158,21 +809,6 @@ "dequal": "^2.0.3" } }, - "node_modules/babel-plugin-styled-components": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", - "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "lodash": "^4.17.21", - "picomatch": "^2.3.1" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1201,38 +837,6 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -1362,12 +966,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "peer": true - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1415,6 +1013,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1518,12 +1117,6 @@ "node": ">= 0.4" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.109", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz", - "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==", - "peer": true - }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -1685,15 +1278,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2314,15 +1898,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -3001,17 +2576,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -3112,11 +2676,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -3224,7 +2783,8 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/nanoid": { "version": "3.3.7", @@ -3294,12 +2854,6 @@ } } }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "peer": true - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3537,6 +3091,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -4315,36 +3870,6 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index f402d676..c04fa593 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "dependencies": { "@types/styled-components": "^5.1.34", "axios": "^1.8.1", - "babel-plugin-styled-components": "^2.1.4", "lodash.debounce": "^4.0.8", "next": "13.5.6", "react": "^18", From 5b35cdc241e57c37372a85a5097ad421a53405fe Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 21:14:20 +0900 Subject: [PATCH 26/49] Feat : delete page params when page is 1 --- components/Pagination/Pagination.tsx | 2 ++ components/Pagination/usePagination.tsx | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/components/Pagination/Pagination.tsx b/components/Pagination/Pagination.tsx index 59432af4..349ad0a4 100644 --- a/components/Pagination/Pagination.tsx +++ b/components/Pagination/Pagination.tsx @@ -1,3 +1,5 @@ +"use client"; + import * as S from "./Pagination.styles"; import left from "@/public/icons/arrowLeft.svg"; import right from "@/public/icons/arrowRight.svg"; diff --git a/components/Pagination/usePagination.tsx b/components/Pagination/usePagination.tsx index c31d3f34..8aa20a87 100644 --- a/components/Pagination/usePagination.tsx +++ b/components/Pagination/usePagination.tsx @@ -15,7 +15,12 @@ export default function usePagination({ const createPageParams = (page: number) => { const newParams = new URLSearchParams(searchParams.toString()); - newParams.set("page", String(page)); + + if (page === 1) { + newParams.delete("page"); + } else { + newParams.set("page", String(page)); + } return `?${newParams.toString()}`; }; From d1f5b683ea39d6276d8a54190b91bfe620128418 Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 23:52:48 +0900 Subject: [PATCH 27/49] Feat : header component edit --- components/common/Header/Header.styles.tsx | 5 +++++ components/common/Header/Header.tsx | 19 +------------------ 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/components/common/Header/Header.styles.tsx b/components/common/Header/Header.styles.tsx index 409047d8..fa4b4867 100644 --- a/components/common/Header/Header.styles.tsx +++ b/components/common/Header/Header.styles.tsx @@ -63,3 +63,8 @@ export const NavItems = styled.div` padding: 15px 0; } `; + +export const Nav = styled(Link)` + font: ${theme.font.H4Bold}; + color: ${theme.color.gray600}; +`; diff --git a/components/common/Header/Header.tsx b/components/common/Header/Header.tsx index 47401d3f..4fcfedb2 100644 --- a/components/common/Header/Header.tsx +++ b/components/common/Header/Header.tsx @@ -1,31 +1,16 @@ -"use client"; - import * as S from "./Header.styles"; import logo from "@/public/icons/panda.svg"; import user from "@/public/icons/user.svg"; -import theme from "@/styles/theme"; import Image from "next/image"; -import Link from "next/link"; -import { usePathname } from "next/navigation"; export default function Header() { - const pathname = usePathname(); - const isBoards = pathname.startsWith("/boards"); - const isItems = pathname.startsWith("/items"); - const Links = [ { link: "/boards", - style: { - color: isBoards ? `${theme.color.blue}` : `${theme.color.gray600}`, - }, name: "자유게시판", }, { link: "/items", - style: { - color: isItems ? `${theme.color.blue}` : `${theme.color.gray600}`, - }, name: "중고마켓", }, ]; @@ -40,9 +25,7 @@ export default function Header() { {Links.map((l) => ( - - {l.name} - + {l.name} ))} From 1d749f9a5ae5a5ddb48d9ae925b832e7132d8c1b Mon Sep 17 00:00:00 2001 From: heejin Date: Wed, 5 Mar 2025 23:53:45 +0900 Subject: [PATCH 28/49] Feat : move getBoards data --- apis/boards.tsx | 2 +- app/boards/page.tsx | 28 +++++++++++++++++++------ components/AllBoards/All.tsx | 11 +++++----- components/AllBoards/useAllData.tsx | 28 ------------------------- components/BestBoards/Best.tsx | 6 ++---- components/BestBoards/BestItem.tsx | 2 -- components/BestBoards/useBestData.tsx | 17 --------------- components/common/Dropdown/Dropdown.tsx | 2 ++ components/common/Input/Input.tsx | 2 -- 9 files changed, 33 insertions(+), 65 deletions(-) delete mode 100644 components/AllBoards/useAllData.tsx delete mode 100644 components/BestBoards/useBestData.tsx diff --git a/apis/boards.tsx b/apis/boards.tsx index a669859b..5aae84a8 100644 --- a/apis/boards.tsx +++ b/apis/boards.tsx @@ -14,7 +14,7 @@ export interface BoardItem { id: number; } -interface Boards { +export interface Boards { totalCount?: 0; list: BoardItem[]; } diff --git a/app/boards/page.tsx b/app/boards/page.tsx index 3b05fa5d..21623ee3 100644 --- a/app/boards/page.tsx +++ b/app/boards/page.tsx @@ -1,15 +1,31 @@ -"use client"; - -import Best from "@/components/BestBoards/Best"; import * as S from "./Boards.styles"; +import Best from "@/components/BestBoards/Best"; import All from "@/components/AllBoards/All"; +import { getBoards } from "@/apis/boards"; + +export default async function Boards() { + const allData = await getBoards({ + page: 1, + pageSize: 10, + orderBy: "recent", + keyword: "", + }); + const list = allData.list; + const totalCount = allData.totalCount; + + const bestData = await getBoards({ + page: 1, + pageSize: 3, + orderBy: "like", + keyword: "", + }); + const best = bestData.list; -export default function Boards() { return ( - - + + ); diff --git a/components/AllBoards/All.tsx b/components/AllBoards/All.tsx index 65def2dd..a13f0c19 100644 --- a/components/AllBoards/All.tsx +++ b/components/AllBoards/All.tsx @@ -1,16 +1,17 @@ +"use client"; + import * as S from "./All.styles"; import AllItem from "./AllItem"; import Dropdown from "../common/Dropdown/Dropdown"; import Search from "../Search/Search"; import Pagination from "../Pagination/Pagination"; -import useAllData from "./useAllData"; import useParams from "@/hooks/useParams"; +import { Boards } from "@/apis/boards"; const FilterList = ["recent", "like"]; const PAGE_SIZE = 10; -export default function All() { - const { all, totalBoards } = useAllData(PAGE_SIZE); +export default function All({ list, totalCount }: Boards) { const { page, orderBy, keyword, handleParamsUpdate } = useParams(); return ( @@ -29,13 +30,13 @@ export default function All() { /> - {all.map((item) => ( + {list.map((item) => ( ))} {!keyword && ( diff --git a/components/AllBoards/useAllData.tsx b/components/AllBoards/useAllData.tsx deleted file mode 100644 index 6692d735..00000000 --- a/components/AllBoards/useAllData.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { BoardItem, getBoards } from "@/apis/boards"; -import useParams from "@/hooks/useParams"; -import { useEffect, useState } from "react"; - -export default function useAllData(PAGE_SIZE: number) { - const [all, setAll] = useState([]); - const [totalBoards, setTotalBoards] = useState(0); - const { page, orderBy, keyword } = useParams(); - - useEffect(() => { - getBoards({ - page, - pageSize: keyword ? 1000 : PAGE_SIZE, - orderBy, - keyword, - }) - .then((result) => { - if (!result) return; - setAll(result.list); - if (result.totalCount) { - setTotalBoards(result.totalCount); - } - }) - .catch((error) => console.error(error)); - }, [page, orderBy, keyword, PAGE_SIZE]); - - return { all, totalBoards }; -} diff --git a/components/BestBoards/Best.tsx b/components/BestBoards/Best.tsx index 36348aba..b33d1cad 100644 --- a/components/BestBoards/Best.tsx +++ b/components/BestBoards/Best.tsx @@ -1,10 +1,8 @@ +import { BoardItem } from "@/apis/boards"; import * as S from "./Best.styles"; import BestItem from "./BestItem"; -import useBestData from "./useBestData"; - -export default function Best() { - const best = useBestData(); +export default function Best({ best }: { best: BoardItem[] }) { return (

베스트 게시글

diff --git a/components/BestBoards/BestItem.tsx b/components/BestBoards/BestItem.tsx index 028381eb..f8c2c052 100644 --- a/components/BestBoards/BestItem.tsx +++ b/components/BestBoards/BestItem.tsx @@ -1,5 +1,3 @@ -"use client"; - import * as S from "./BestItem.styles"; import Image from "next/image"; import medal from "@/public/icons/best.svg"; diff --git a/components/BestBoards/useBestData.tsx b/components/BestBoards/useBestData.tsx deleted file mode 100644 index d5e05183..00000000 --- a/components/BestBoards/useBestData.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { BoardItem, getBoards } from "@/apis/boards"; -import { useEffect, useState } from "react"; - -export default function useBestData() { - const [best, setBest] = useState([]); - - useEffect(() => { - getBoards({ page: 1, pageSize: 3, orderBy: "like", keyword: "" }) - .then((result) => { - if (!result) return; - setBest(result.list); - }) - .catch((error) => console.error(error)); - }, []); - - return best; -} diff --git a/components/common/Dropdown/Dropdown.tsx b/components/common/Dropdown/Dropdown.tsx index b829f8da..eed7d1c0 100644 --- a/components/common/Dropdown/Dropdown.tsx +++ b/components/common/Dropdown/Dropdown.tsx @@ -1,3 +1,5 @@ +"use client"; + import * as S from "./Dropdown.styles"; import Image from "next/image"; import { useState } from "react"; diff --git a/components/common/Input/Input.tsx b/components/common/Input/Input.tsx index 2d53ac42..66d91764 100644 --- a/components/common/Input/Input.tsx +++ b/components/common/Input/Input.tsx @@ -2,8 +2,6 @@ import Image from "next/image"; import * as S from "./Input.styles"; import { CSSProperties, InputHTMLAttributes } from "react"; -import search from "@/public/icons/search.svg"; - interface InputProps extends InputHTMLAttributes { label?: string; style?: CSSProperties; From 3c00f6a1238d47c3aa0feeaeef46806b4ebf9885 Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 8 Mar 2025 02:26:29 +0900 Subject: [PATCH 29/49] Feat : tailwindcss setting --- app/globals.css | 80 + app/layout.tsx | 3 +- package-lock.json | 3569 ++++++++++++++++++++++++++++++++++---------- package.json | 4 + postcss.config.js | 6 + styles/global.tsx | 51 - styles/theme.tsx | 44 - tailwind.config.js | 59 + 8 files changed, 2896 insertions(+), 920 deletions(-) create mode 100644 app/globals.css create mode 100644 postcss.config.js delete mode 100644 styles/global.tsx delete mode 100644 styles/theme.tsx create mode 100644 tailwind.config.js diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 00000000..8023c34c --- /dev/null +++ b/app/globals.css @@ -0,0 +1,80 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + * { + box-sizing: border-box; + text-decoration: none; + list-style: none; + } + + body, + p, + h2 { + margin: 0; + } + + ul, + li { + margin: 0; + padding: 0; + } + + button, + input, + textarea { + border: none; + } +} + +@layer utilities { + .line-break { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + text-align: left; + overflow: hidden; + } +} + + +@font-face { + font-family: "ROKAF Sans"; + src: url("/font/ROKAF.ttf"); + font-weight: 700; + font-style: normal; +} + +@font-face { + font-family: "Pretendard"; + src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff2") + format("woff2"); + src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff") + format("woff"); + font-display: swap; + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: "Pretendard"; + src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-SemiBold.woff2") + format("woff2"); + src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-SemiBold.woff") + format("woff"); + font-display: swap; + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: "Pretendard"; + src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff2") + format("woff2"); + src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff") + format("woff"); + font-display: swap; + font-weight: 700; + font-style: normal; +} \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx index 038ba835..a9a62b08 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,5 +1,5 @@ import Header from "@/components/common/Header/Header"; -import GlobalStyle from "@/styles/global"; +import "./globals.css"; export const metadata = { title: "판다마켓", @@ -12,7 +12,6 @@ export default function RootLayout({ }) { return ( -
{children} diff --git a/package-lock.json b/package-lock.json index 69da8d57..cc3e41f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@types/styled-components": "^5.1.34", "axios": "^1.8.1", + "clsx": "^2.1.1", "lodash.debounce": "^4.0.8", "next": "13.5.6", "react": "^18", @@ -21,36 +22,32 @@ "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", + "autoprefixer": "^10.4.20", "eslint": "^8", "eslint-config-next": "13.5.6", + "postcss": "^8.5.3", + "tailwindcss": "^3.4.17", "typescript": "^5" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" + "node": ">=10" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", "dependencies": { "@emotion/memoize": "^0.8.1" } @@ -58,42 +55,50 @@ "node_modules/@emotion/memoize": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" }, "node_modules/@emotion/unitless": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -113,22 +118,25 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -140,6 +148,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -149,21 +158,125 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } }, "node_modules/@next/env": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", - "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==" + "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==", + "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.5.6.tgz", "integrity": "sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==", "dev": true, + "license": "MIT", "dependencies": { "glob": "7.1.7" } @@ -175,6 +288,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -190,6 +304,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -205,6 +320,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -220,6 +336,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -235,6 +352,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -250,6 +368,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -265,6 +384,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -280,6 +400,7 @@ "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -295,6 +416,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -308,6 +430,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -321,6 +444,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -330,6 +454,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -338,16 +463,46 @@ "node": ">= 8" } }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, "node_modules/@rushstack/eslint-patch": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz", - "integrity": "sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==", - "dev": true + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", + "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==", + "dev": true, + "license": "MIT" }, "node_modules/@swc/helpers": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.4.0" } @@ -356,6 +511,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", + "license": "MIT", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -365,65 +521,67 @@ "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/lodash": { "version": "4.17.16", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/lodash.debounce": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz", "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/node": { - "version": "20.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.4.tgz", - "integrity": "sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==", + "version": "20.17.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.23.tgz", + "integrity": "sha512-8PCGZ1ZJbEZuYNTMqywO+Sj4vSKjSjT6Ua+6RFOYlEvIvKQABPtrNkoVSLSKDb4obYcMhspVKmsw8Cm10NFRUg==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" }, "node_modules/@types/react": { - "version": "18.2.38", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz", - "integrity": "sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", - "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "dev": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, "node_modules/@types/styled-components": { "version": "5.1.34", "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz", "integrity": "sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==", + "license": "MIT", "dependencies": { "@types/hoist-non-react-statics": "*", "@types/react": "*", @@ -433,18 +591,20 @@ "node_modules/@types/stylis": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", - "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==" + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT" }, "node_modules/@typescript-eslint/parser": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", - "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/typescript-estree": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -464,13 +624,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", - "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -481,10 +642,11 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", - "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -494,16 +656,18 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", - "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -520,13 +684,40 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", - "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -538,16 +729,18 @@ } }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -560,6 +753,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -569,6 +763,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -585,6 +780,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -594,6 +790,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -604,44 +801,80 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -656,21 +889,45 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -680,15 +937,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -698,15 +956,16 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -716,31 +975,36 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -753,27 +1017,72 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/asynciterator.prototype": { + "node_modules/async-function": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -782,10 +1091,11 @@ } }, "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", "dev": true, + "license": "MPL-2.0", "engines": { "node": ">=4" } @@ -794,6 +1104,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -801,42 +1112,92 @@ } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -849,14 +1210,19 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -866,6 +1232,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -874,27 +1241,56 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/camelize": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001701", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz", - "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==", + "version": "1.0.30001702", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz", + "integrity": "sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA==", "funding": [ { "type": "opencollective", @@ -908,13 +1304,15 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -926,18 +1324,67 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" @@ -947,12 +1394,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -960,17 +1409,29 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -984,6 +1445,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", "engines": { "node": ">=4" } @@ -992,30 +1454,101 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", "postcss-value-parser": "^4.0.2" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1030,20 +1563,25 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -1051,6 +1589,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -1067,24 +1606,24 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "Apache-2.0" }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1092,11 +1631,19 @@ "node": ">=8" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -1108,6 +1655,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -1117,17 +1665,33 @@ "node": ">= 0.4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.112", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.112.tgz", + "integrity": "sha512-oen93kVyqSb3l+ziUgzIOlWt/oOuy4zRmpwestMn4rhFWAoFJeFuCVte9F2fASjeZZo7l/Cif9TiyrdW4CwEMA==", + "dev": true, + "license": "ISC" + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -1137,50 +1701,63 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -1193,6 +1770,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -1201,36 +1779,44 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, + "license": "MIT", "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -1242,6 +1828,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -1253,23 +1840,28 @@ } }, "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -1278,11 +1870,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1291,16 +1894,18 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -1350,6 +1955,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.5.6.tgz", "integrity": "sha512-o8pQsUHTo9aHqJ2YiZDym5gQAMRf7O2HndHo/JZeY7TDD+W4hk6Ma8Vw54RHiBeb7OWWO5dPirQB+Is/aVQ7Kg==", "dev": true, + "license": "MIT", "dependencies": { "@next/eslint-plugin-next": "13.5.6", "@rushstack/eslint-patch": "^1.3.3", @@ -1376,6 +1982,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -1387,23 +1994,25 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.8.3.tgz", + "integrity": "sha512-A0bu4Ks2QqDWNpeEgTQMPTngaMhuDu4yv6xpftBMAf+1ziXnpx+eSR1WRfoPTe2BAiAjHFZ7kSNx1fvr5g5pmQ==", "dev": true, + "license": "ISC", "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.7", + "enhanced-resolve": "^5.15.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^1.0.2", + "stable-hash": "^0.0.4", + "tinyglobby": "^0.2.12" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -1413,14 +2022,24 @@ }, "peerDependencies": { "eslint": "*", - "eslint-plugin-import": "*" + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -1438,39 +2057,43 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -1478,6 +2101,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -1487,6 +2111,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -1499,75 +2124,80 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, "engines": { "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1580,6 +2210,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -1592,6 +2223,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -1609,6 +2241,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1618,6 +2251,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -1634,6 +2268,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1646,6 +2281,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -1659,10 +2295,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1675,6 +2312,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1687,6 +2325,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1696,6 +2335,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -1704,19 +2344,21 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -1727,6 +2369,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1738,19 +2381,22 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -1760,6 +2406,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -1768,10 +2415,11 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1784,6 +2432,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -1800,6 +2449,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -1810,10 +2460,11 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { "version": "1.15.9", @@ -1825,6 +2476,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -1835,18 +2487,43 @@ } }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "is-callable": "^1.1.3" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/form-data": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -1857,30 +2534,64 @@ "node": ">= 6" } }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -1894,6 +2605,7 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1902,6 +2614,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", @@ -1925,6 +2638,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -1934,13 +2648,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -1950,10 +2666,11 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -1965,7 +2682,9 @@ "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1986,6 +2705,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -1996,13 +2716,15 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2014,12 +2736,14 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -2033,6 +2757,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2052,6 +2777,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2062,19 +2788,25 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2084,27 +2816,33 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -2116,6 +2854,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2127,6 +2866,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -2141,6 +2881,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -2152,24 +2893,27 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2186,6 +2930,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -2194,7 +2939,9 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2204,43 +2951,54 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2250,25 +3008,43 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2277,11 +3053,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.6.3" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2290,24 +3077,48 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2321,29 +3132,48 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2357,6 +3187,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2365,19 +3196,11 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2390,17 +3213,20 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2414,18 +3240,22 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -2435,33 +3265,43 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2471,12 +3311,15 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2486,12 +3329,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -2501,34 +3345,46 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2538,37 +3394,72 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" } }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2580,25 +3471,29 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -2611,6 +3506,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -2626,21 +3522,24 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, + "license": "MIT", "dependencies": { "language-subtag-registry": "^0.3.20" }, @@ -2653,6 +3552,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -2661,11 +3561,32 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -2679,18 +3600,21 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -2699,21 +3623,17 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "license": "ISC" }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -2723,17 +3643,19 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -2744,6 +3666,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -2752,6 +3675,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -2764,6 +3688,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2776,26 +3701,51 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -2807,12 +3757,14 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/next": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/next/-/next-13.5.6.tgz", "integrity": "sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==", + "license": "MIT", "dependencies": { "@next/env": "13.5.6", "@swc/helpers": "0.5.2", @@ -2854,20 +3806,90 @@ } } }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2877,19 +3899,23 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -2900,28 +3926,31 @@ } }, "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2931,39 +3960,31 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2977,32 +3998,53 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -3018,6 +4060,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -3028,11 +4071,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -3045,6 +4096,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3054,6 +4106,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3063,6 +4116,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3071,13 +4125,32 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3085,13 +4158,15 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -3099,10 +4174,41 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -3117,25 +4223,142 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/prelude-ls": { + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -3145,6 +4368,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -3154,13 +4378,15 @@ "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3183,12 +4409,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -3197,34 +4425,62 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -3233,21 +4489,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -3257,18 +4511,22 @@ } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3278,6 +4536,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -3287,15 +4546,17 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -3305,7 +4566,9 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -3335,19 +4598,22 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -3357,36 +4623,56 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-regex-test": { + "node_modules/safe-push-apply": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3395,29 +4681,49 @@ } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -3426,13 +4732,15 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3445,29 +4753,106 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3476,10 +4861,18 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/stable-hash": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", + "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", + "dev": true, + "license": "MIT" + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -3488,35 +4881,144 @@ "node": ">=10.0.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3526,28 +5028,37 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3558,6 +5069,21 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3570,6 +5096,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -3579,6 +5106,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -3590,6 +5118,7 @@ "version": "6.1.15", "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.15.tgz", "integrity": "sha512-PpOTEztW87Ua2xbmLa7yssjNyUF9vE7wdldRfn1I2E6RTkqknkBYpj771OxM/xrvRGinLy2oysa7GOd7NcZZIA==", + "license": "MIT", "dependencies": { "@emotion/is-prop-valid": "1.2.2", "@emotion/unitless": "0.8.1", @@ -3631,6 +5160,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", @@ -3640,10 +5170,17 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "license": "MIT", "dependencies": { "client-only": "0.0.1" }, @@ -3665,13 +5202,85 @@ "node_modules/stylis": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3684,6 +5293,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3691,11 +5301,50 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3704,13 +5353,83 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3719,22 +5438,31 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -3743,15 +5471,17 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -3764,6 +5494,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -3772,29 +5503,32 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -3804,16 +5538,19 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -3823,24 +5560,32 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3850,39 +5595,84 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -3896,6 +5686,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -3907,39 +5698,45 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, + "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, + "license": "MIT", "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -3949,31 +5746,37 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3982,23 +5785,143 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index c04fa593..14179920 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "@types/styled-components": "^5.1.34", "axios": "^1.8.1", + "clsx": "^2.1.1", "lodash.debounce": "^4.0.8", "next": "13.5.6", "react": "^18", @@ -22,8 +23,11 @@ "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", + "autoprefixer": "^10.4.20", "eslint": "^8", "eslint-config-next": "13.5.6", + "postcss": "^8.5.3", + "tailwindcss": "^3.4.17", "typescript": "^5" } } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..33ad091d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/styles/global.tsx b/styles/global.tsx deleted file mode 100644 index 757e4155..00000000 --- a/styles/global.tsx +++ /dev/null @@ -1,51 +0,0 @@ -"use client"; - -import { createGlobalStyle } from "styled-components"; - -const GlobalStyle = createGlobalStyle` - * { - box-sizing: border-box; - text-decoration: none; - list-style: none; -} - -body, ul, li, p, h2 { - margin: 0; -} - -ul, li{ - margin:0; - padding:0; -} - -button, input, textarea { - border:none; -} - -@font-face { - font-family: 'ROKAF Sans'; - src: url("/font/ROKAF.ttf"); - font-weight: 700; - font-style: normal; -} - -@font-face { - font-family: 'Pretendard'; - src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff2') format('woff2'); - src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff') format('woff'); - font-display: swap; - font-weight: 400; - font-style: normal; - } - - @font-face { - font-family: "Pretendard"; - src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-SemiBold.woff2') format('woff2'); - src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-SemiBold.woff') format('woff'); - font-display: swap; - font-weight: 600; - font-style: normal; -} -`; - -export default GlobalStyle; diff --git a/styles/theme.tsx b/styles/theme.tsx deleted file mode 100644 index ff6ecde2..00000000 --- a/styles/theme.tsx +++ /dev/null @@ -1,44 +0,0 @@ -const theme = { - font: { - H0: "600 40px/47px 'Pretendard', sans-serif", - H1: "600 28px/42px 'Pretendard', sans-serif", - H2Bold: "600 24px/36px 'Pretendard', sans-serif", - H2Regular: "400 24px/36px 'Pretendard', sans-serif", - H3Bold: "600 20px/30px 'Pretendard', sans-serif", - H3Regular: "400 20px/30px 'Pretendard', sans-serif", - H4Bold: "600 18px/28px 'Pretendard', sans-serif", - H4Regular: "400 18px/28px 'Pretendard', sans-serif", - H5Bold: "600 16px/26px 'Pretendard', sans-serif", - H5Regular: "400 16px/26px 'Pretendard', sans-serif", - H6Bold: "600 15px/22px 'Pretendard', sans-serif", - H6Regular: "400 15px/22px 'Pretendard', sans-serif", - H7Bold: "600 14px/20px 'Pretendard', sans-serif", - H7Regular: "400 14px/20px 'Pretendard', sans-serif", - H8: "400 12px/20px 'Pretendard', sans-serif", - }, - color: { - textDark: "#374151", - textBright: "#f3f4f6", - - bg: "#fcfcfc", - - white: "#ffffff", - blue: "#3692FF", - blueHover: "#1967d6", - - gray50: "#f9fafb", - gray100: "#f3f4f6", - gray200: "#e5e7eb", - gray300: "#D1D5DB", - gray400: "#9ca3af", - gray500: "#6b7280", - gray600: "#4b5563", - gray700: "#374151", - gray800: "#1f2937", - gray900: "#111827", - - error: "#f74747", - }, -}; - -export default theme; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 00000000..6e82ebe6 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,59 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./app/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./styles/**/*.{html,js,jsx,ts,tsx,css}", + ], + theme: { + extend: { + colors: { + bg: "#fcfcfc", + white: "#ffffff", + blue: "#3692FF", + blueHover: "#1967d6", + error: "#f74747", + gray50: "#f9fafb", + gray100: "#f3f4f6", + gray200: "#e5e7eb", + gray300: "#D1D5DB", + gray400: "#9ca3af", + gray500: "#6b7280", + gray600: "#4b5563", + gray700: "#374151", + gray800: "#1f2937", + gray900: "#111827", + }, + screens: { + sx: { max: "375px" }, + mx: { max: "767px" }, + sm: { min: "376px", max: "768px" }, + md: { min: "769px", max: "1024px" }, + lg: { min: "1024px" }, + }, + fontFamily: { + pretendard: ["Pretendard", "sans-serif"], + rokaf: ["ROKAF Sans", "sans-serif"] + }, + fontSize: { + Bold40: ["40px", { lineHeight: "47px", fontWeight: "600" }], + Bold28: ["28px", { lineHeight: "42px", fontWeight: "600" }], + Bold24: ["24px", { lineHeight: "36px", fontWeight: "600" }], + Regular24: ["24px", { lineHeight: "36px", fontWeight: "400" }], + Bold20: ["20px", { lineHeight: "30px", fontWeight: "600" }], + Regular20: ["20px", { lineHeight: "30px", fontWeight: "400" }], + Bold18: ["18px", { lineHeight: "28px", fontWeight: "600" }], + Regular18: ["18px", { lineHeight: "28px", fontWeight: "400" }], + Bold16: ["16px", { lineHeight: "26px", fontWeight: "600" }], + Regular16: ["16px", { lineHeight: "26px", fontWeight: "400" }], + Bold15: ["15px", { lineHeight: "22px", fontWeight: "600" }], + Regular15: ["15px", { lineHeight: "22px", fontWeight: "400" }], + Bold14: ["14px", { lineHeight: "20px", fontWeight: "600" }], + Regular14: ["14px", { lineHeight: "20px", fontWeight: "400" }], + Regular12: ["12px", { lineHeight: "20px", fontWeight: "400" }], + }, + }, + }, + plugins: [], +} + From 371173ed06e9f2f5b01138beed21f6703dd2ee9c Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 8 Mar 2025 02:27:20 +0900 Subject: [PATCH 30/49] Style : boards page tailwindcss --- app/boards/Boards.styles.tsx | 14 -------------- app/boards/page.tsx | 31 ++++++------------------------- 2 files changed, 6 insertions(+), 39 deletions(-) delete mode 100644 app/boards/Boards.styles.tsx diff --git a/app/boards/Boards.styles.tsx b/app/boards/Boards.styles.tsx deleted file mode 100644 index 57dc8d64..00000000 --- a/app/boards/Boards.styles.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import styled from "styled-components"; - -export const Container = styled.div` - display: flex; - justify-content: center; - align-items: center; - margin: 40px 0; -`; - -export const Board = styled.div` - display: flex; - flex-direction: column; - gap: 40px; -`; diff --git a/app/boards/page.tsx b/app/boards/page.tsx index 21623ee3..0e40546c 100644 --- a/app/boards/page.tsx +++ b/app/boards/page.tsx @@ -1,32 +1,13 @@ -import * as S from "./Boards.styles"; import Best from "@/components/BestBoards/Best"; import All from "@/components/AllBoards/All"; -import { getBoards } from "@/apis/boards"; export default async function Boards() { - const allData = await getBoards({ - page: 1, - pageSize: 10, - orderBy: "recent", - keyword: "", - }); - const list = allData.list; - const totalCount = allData.totalCount; - - const bestData = await getBoards({ - page: 1, - pageSize: 3, - orderBy: "like", - keyword: "", - }); - const best = bestData.list; - return ( - - - - - - +
+
+ + +
+
); } From fd9e4b94a1b51dd5139459cef7030092ec5a310d Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 8 Mar 2025 02:27:43 +0900 Subject: [PATCH 31/49] Feat : all component useAllData & tailwind css --- components/AllBoards/All.styles.tsx | 46 --------------- components/AllBoards/All.tsx | 36 ++++++------ components/AllBoards/AllItem.styles.tsx | 75 ------------------------- components/AllBoards/AllItem.tsx | 32 +++++------ components/AllBoards/useAllData.tsx | 28 +++++++++ 5 files changed, 63 insertions(+), 154 deletions(-) delete mode 100644 components/AllBoards/All.styles.tsx delete mode 100644 components/AllBoards/AllItem.styles.tsx create mode 100644 components/AllBoards/useAllData.tsx diff --git a/components/AllBoards/All.styles.tsx b/components/AllBoards/All.styles.tsx deleted file mode 100644 index e59ca042..00000000 --- a/components/AllBoards/All.styles.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import theme from "@/styles/theme"; -import styled from "styled-components"; - -export const AllBoards = styled.div` - display: flex; - flex-direction: column; - gap: 24px; -`; - -export const Header = styled.div` - display: flex; - justify-content: space-between; - align-items: center; - h2 { - color: ${theme.color.gray900}; - font: ${theme.font.H3Bold}; - } -`; - -export const WriteBtn = styled.button` - padding: 8px 24px; - border-radius: 8px; - color: ${theme.color.white}; - background-color: ${theme.color.blue}; - font: ${theme.font.H5Bold}; - cursor: pointer; -`; - -export const Container = styled.div` - display: flex; - flex-direction: column; - gap: 24px; -`; - -export const Filter = styled.div` - display: flex; - justify-content: center; - align-items: center; - gap: 12px; -`; - -export const Items = styled.div` - display: flex; - flex-direction: column; - gap: 24px; -`; diff --git a/components/AllBoards/All.tsx b/components/AllBoards/All.tsx index a13f0c19..aa881cfb 100644 --- a/components/AllBoards/All.tsx +++ b/components/AllBoards/All.tsx @@ -1,47 +1,49 @@ "use client"; -import * as S from "./All.styles"; import AllItem from "./AllItem"; import Dropdown from "../common/Dropdown/Dropdown"; import Search from "../Search/Search"; import Pagination from "../Pagination/Pagination"; import useParams from "@/hooks/useParams"; -import { Boards } from "@/apis/boards"; +import useAllData from "./useAllData"; const FilterList = ["recent", "like"]; const PAGE_SIZE = 10; -export default function All({ list, totalCount }: Boards) { +export default function All() { const { page, orderBy, keyword, handleParamsUpdate } = useParams(); + const { all, totalBoards } = useAllData(PAGE_SIZE); return ( - - -

게시글

- 글쓰기 -
- - +
+
+

게시글

+ +
+
+
handleParamsUpdate({ orderBy: filter })} /> - - - {list.map((item) => ( +
+
+ {all.map((item) => ( ))} - +
{!keyword && ( )} - - +
+
); } diff --git a/components/AllBoards/AllItem.styles.tsx b/components/AllBoards/AllItem.styles.tsx deleted file mode 100644 index be3685bb..00000000 --- a/components/AllBoards/AllItem.styles.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import theme from "@/styles/theme"; -import Link from "next/link"; -import styled from "styled-components"; - -export const Container = styled(Link)` - width: 100%; - height: 138px; - display: flex; - flex-direction: column; - gap: 16px; - padding-bottom: 24px; - background-color: ${theme.color.bg}; - border-bottom: 1px solid ${theme.color.gray200}; - cursor: pointer; -`; - -export const Content = styled.div` - width: 100%; - display: flex; - justify-content: space-between; - align-items: flex-start; -`; - -export const ContentText = styled.p` - flex: 1; - height: 60px; - word-wrap: break-word; - color: ${theme.color.gray800}; - font: ${theme.font.H3Bold}; -`; - -export const Image = styled.div` - position: relative; - width: 72px; - height: 72px; - background-color: ${theme.color.white}; - border: 1px solid ${theme.color.gray200}; - border-radius: 6px; -`; - -export const Footer = styled.div` - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; -`; - -export const UserWrapper = styled.div` - display: flex; - justify-content: center; - align-items: center; - gap: 8px; -`; - -export const User = styled.span` - color: ${theme.color.gray600}; - font: ${theme.font.H7Regular}; -`; - -export const Like = styled.div` - display: flex; - justify-content: center; - align-items: center; - gap: 4px; -`; - -export const LikeCount = styled.span` - color: ${theme.color.gray500}; - font: ${theme.font.H7Regular}; -`; - -export const Date = styled.span` - color: ${theme.color.gray400}; - font: ${theme.font.H7Regular}; -`; diff --git a/components/AllBoards/AllItem.tsx b/components/AllBoards/AllItem.tsx index 25c6904d..528e30d7 100644 --- a/components/AllBoards/AllItem.tsx +++ b/components/AllBoards/AllItem.tsx @@ -1,9 +1,9 @@ -import * as S from "./AllItem.styles"; import Image from "next/image"; import user from "@/public/icons/user.svg"; import heart from "@/public/icons/emptyHeart.svg"; import formattedDate from "@/utils/formattedDate"; import { BoardItem } from "@/apis/boards"; +import Link from "next/link"; interface AllItemProps { all: BoardItem; @@ -11,22 +11,22 @@ interface AllItemProps { export default function AllItem({ all }: AllItemProps) { return ( - - - {all.content} - {all.image && } - - - + +
+

{all.content}

+
{all.image && }
+
+
+
user - {all.writer.nickname} - {formattedDate(all.createdAt)} - - + {all.writer.nickname} + {formattedDate(all.createdAt)} +
+
like - {all.likeCount} - - - + {all.likeCount} +
+
+ ); } diff --git a/components/AllBoards/useAllData.tsx b/components/AllBoards/useAllData.tsx new file mode 100644 index 00000000..01711ae4 --- /dev/null +++ b/components/AllBoards/useAllData.tsx @@ -0,0 +1,28 @@ +import { BoardItem, getBoards } from "@/apis/boards"; +import { useEffect, useState } from "react"; +import useParams from "@/hooks/useParams"; + +export default function useAllData(PAGE_SIZE: number) { + const [all, setAll] = useState([]); + const [totalBoards, setTotalBoards] = useState(0); + const { page, orderBy, keyword, handleParamsUpdate } = useParams(); + + useEffect(() => { + getBoards({ + page, + pageSize: keyword ? 1000 : PAGE_SIZE, + orderBy, + keyword, + }) + .then((result) => { + if (!result) return; + setAll(result.list); + if (result.totalCount) { + setTotalBoards(result.totalCount); + } + }) + .catch((error) => console.error(error)); + }, [page, orderBy, keyword, PAGE_SIZE]); + + return { all, totalBoards }; +} From bc98c38270518ad89ed8ed8c75f1d7988529b049 Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 8 Mar 2025 02:28:25 +0900 Subject: [PATCH 32/49] Style : best tailwindcss --- components/BestBoards/Best.styles.tsx | 21 ----- components/BestBoards/Best.tsx | 24 +++-- components/BestBoards/BestItem.styles.tsx | 102 ---------------------- components/BestBoards/BestItem.tsx | 44 +++++----- 4 files changed, 38 insertions(+), 153 deletions(-) delete mode 100644 components/BestBoards/Best.styles.tsx delete mode 100644 components/BestBoards/BestItem.styles.tsx diff --git a/components/BestBoards/Best.styles.tsx b/components/BestBoards/Best.styles.tsx deleted file mode 100644 index c6deadaf..00000000 --- a/components/BestBoards/Best.styles.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import theme from "@/styles/theme"; -import styled from "styled-components"; - -export const BestContainer = styled.div` - display: flex; - flex-direction: column; - align-items: flex-start; - gap: 24px; - - h2 { - color: ${theme.color.gray900}; - font: ${theme.font.H3Bold}; - } -`; - -export const Items = styled.div` - display: flex; - justify-content: flex-start; - align-items: center; - gap: 24px; -`; diff --git a/components/BestBoards/Best.tsx b/components/BestBoards/Best.tsx index b33d1cad..4321ac3d 100644 --- a/components/BestBoards/Best.tsx +++ b/components/BestBoards/Best.tsx @@ -1,16 +1,24 @@ -import { BoardItem } from "@/apis/boards"; -import * as S from "./Best.styles"; +import { getBoards } from "@/apis/boards"; import BestItem from "./BestItem"; -export default function Best({ best }: { best: BoardItem[] }) { +export default async function Best() { + const bestData = await getBoards({ + page: 1, + pageSize: 3, + orderBy: "like", + keyword: "", + }); + + const best = bestData.list; + return ( - -

베스트 게시글

- +
+

베스트 게시글

+
{best.map((item) => ( ))} - - +
+
); } diff --git a/components/BestBoards/BestItem.styles.tsx b/components/BestBoards/BestItem.styles.tsx deleted file mode 100644 index 60bc3ddd..00000000 --- a/components/BestBoards/BestItem.styles.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import styled from "styled-components"; -import theme from "@/styles/theme"; -import Link from "next/link"; - -export const Container = styled(Link)` - width: 384px; - height: 169px; - padding: 0 24px; - background-color: ${theme.color.gray50}; - border-radius: 8px; - cursor: pointer; -`; - -export const Item = styled.div` - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-start; - gap: 12px; -`; - -export const BestTitle = styled.div` - width: 102px; - height: 30px; - display: flex; - justify-content: center; - align-items: center; - gap: 4px; - background-color: ${theme.color.blue}; - border-radius: 0 0 16px 16px; -`; - -export const Best = styled.span` - color: ${theme.color.white}; - font: ${theme.font.H5Bold}; -`; - -export const Content = styled.div` - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - gap: 8px; -`; - -export const ContentText = styled.p` - flex: 1; - height: 60px; - word-wrap: break-word; - color: ${theme.color.gray800}; - font: ${theme.font.H3Bold}; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - text-align: left; - overflow: hidden; -`; - -export const Image = styled.div` - position: relative; - width: 72px; - height: 72px; - background-color: ${theme.color.white}; - border: 1px solid ${theme.color.gray200}; - border-radius: 6px; -`; - -export const Footer = styled.div` - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; -`; - -export const UserWrapper = styled.div` - display: flex; - justify-content: center; - align-items: flex-end; - gap: 8px; -`; - -export const User = styled.span` - color: ${theme.color.gray600}; - font: ${theme.font.H7Regular}; -`; - -export const Like = styled.div` - display: flex; - justify-content: center; - align-items: center; - gap: 4px; -`; - -export const LikeCount = styled.span` - color: ${theme.color.gray500}; - font: ${theme.font.H7Regular}; -`; - -export const Date = styled.span` - color: ${theme.color.gray400}; - font: ${theme.font.H7Regular}; -`; diff --git a/components/BestBoards/BestItem.tsx b/components/BestBoards/BestItem.tsx index f8c2c052..1078e684 100644 --- a/components/BestBoards/BestItem.tsx +++ b/components/BestBoards/BestItem.tsx @@ -1,9 +1,9 @@ -import * as S from "./BestItem.styles"; import Image from "next/image"; import medal from "@/public/icons/best.svg"; import heart from "@/public/icons/emptyHeart.svg"; import { BoardItem } from "@/apis/boards"; import formattedDate from "@/utils/formattedDate"; +import Link from "next/link"; interface BestItemProps { best: BoardItem; @@ -11,29 +11,29 @@ interface BestItemProps { export default function BestItem({ best }: BestItemProps) { return ( - - - + +
+
medal - Best - - - {best.content} - + Best +
+
+

{best.content}

+
image - - - - - {best.writer.nickname} - +
+
+
+
+ {best.writer.nickname} +
like - {best.likeCount} - - - {formattedDate(best.createdAt)} - - - + {best.likeCount} +
+
+
{formattedDate(best.createdAt)}
+
+
+ ); } From 2475e6141aa304b6c012bc3ec7d78f5c20400a15 Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 8 Mar 2025 02:28:57 +0900 Subject: [PATCH 33/49] Style : dropdown component tailwind css --- .../common/Dropdown/Dropdown.styles.tsx | 86 ------------------- components/common/Dropdown/Dropdown.tsx | 25 +++--- 2 files changed, 12 insertions(+), 99 deletions(-) delete mode 100644 components/common/Dropdown/Dropdown.styles.tsx diff --git a/components/common/Dropdown/Dropdown.styles.tsx b/components/common/Dropdown/Dropdown.styles.tsx deleted file mode 100644 index 9493e5b0..00000000 --- a/components/common/Dropdown/Dropdown.styles.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import styled from "styled-components"; -import theme from "../../../styles/theme"; - -export const DropdownContainer = styled.div` - flex-shrink: 0; - display: flex; - flex-direction: column; - align-items: flex-end; - gap: 20px; - width: 130px; - height: 42px; - position: relative; - - @media screen and (max-width: 767px) { - width: 42px; - } -`; - -export const Present = styled.div` - width: 100%; - height: 42px; - display: flex; - justify-content: space-between; - align-items: center; - padding: 12px 20px; - border-radius: 12px; - border: 1px solid ${theme.color.gray200}; - background-color: ${theme.color.white}; - cursor: pointer; - - @media screen and (max-width: 767px) { - display: none; - justify-content: flex-end; - padding: 9px; - } -`; - -export const PresentValue = styled.div` - font: ${theme.font.H5Regular}; - color: ${theme.color.gray800}; -`; - -export const Small = styled.div` - width: 42px; - height: 42px; - flex-shrink: 0; - display: none; - justify-content: center; - align-items: center; - border-radius: 12px; - border: 1px solid ${theme.color.gray200}; - background-color: ${theme.color.white}; - cursor: pointer; - @media screen and (max-width: 767px) { - display: flex; - } -`; - -export const List = styled.div` - width: 130px; - background-color: ${theme.color.white}; - border: 1px solid ${theme.color.gray200}; - border-radius: 12px; - position: absolute; - top: 55px; - color: ${theme.color.gray800}; - z-index: 99; -`; - -export const ListItem = styled.div` - height: 42px; - display: flex; - justify-content: center; - align-items: center; - border-bottom: 1px solid ${theme.color.gray200}; - font: ${theme.font.H5Regular}; - cursor: pointer; - - &:hover { - color: ${theme.color.blue}; - } - - &:last-child { - border-bottom: none; - } -`; diff --git a/components/common/Dropdown/Dropdown.tsx b/components/common/Dropdown/Dropdown.tsx index eed7d1c0..27c52497 100644 --- a/components/common/Dropdown/Dropdown.tsx +++ b/components/common/Dropdown/Dropdown.tsx @@ -1,8 +1,7 @@ "use client"; -import * as S from "./Dropdown.styles"; -import Image from "next/image"; import { useState } from "react"; +import Image from "next/image"; import down from "@/public/icons/arrowDown.svg"; import up from "@/public/icons/arrowUp.svg"; import dropdown from "@/public/icons/dropdown.svg"; @@ -25,18 +24,18 @@ export default function Dropdown({ }; return ( - - - {orderBy} +
+
+ {orderBy} arrow - - +
+
dropdown - +
{isOpen && ( - +
{list.map((item) => ( - { onChange(item); @@ -44,10 +43,10 @@ export default function Dropdown({ }} > {item} - +
))} -
+
)} -
+ ); } From 346e271d38262294f890c7fb2bc9b12b0e0cf46b Mon Sep 17 00:00:00 2001 From: heejin Date: Sat, 8 Mar 2025 02:29:25 +0900 Subject: [PATCH 34/49] Style : input tailwind css --- components/common/Input/Input.styles.tsx | 66 ------------------------ components/common/Input/Input.tsx | 61 +++++++++++++++------- 2 files changed, 41 insertions(+), 86 deletions(-) delete mode 100644 components/common/Input/Input.styles.tsx diff --git a/components/common/Input/Input.styles.tsx b/components/common/Input/Input.styles.tsx deleted file mode 100644 index 7613c9b6..00000000 --- a/components/common/Input/Input.styles.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import styled from "styled-components"; -import theme from "../../../styles/theme"; - -interface InputProps { - $largeHeight?: string; - size?: number; -} - -export const InputContainer = styled.div<{ label?: string }>` - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - gap: ${({ label }) => (label ? "16px" : "0px")}; -`; - -export const Label = styled.label` - font-size: 18px; - font-weight: 700; - line-height: 26px; - color: ${theme.color.gray800}; -`; - -export const Input = styled.div` - width: 100%; - position: relative; -`; - -export const Icon = styled.div` - position: absolute; - top: 48%; - left: 12px; - transform: translateY(-50%); - width: 24px; - height: 24px; -`; - -export const StyledInput = styled.input` - width: 100%; - height: ${({ height }) => height || "42px"}; - background-color: ${theme.color.gray100}; - padding: 9px 20px; - ${({ size }) => size && `padding-left: calc(12px + ${size}px);`} - border-radius: 12px; - resize: none; - - &:focus { - outline: none; - } - - &::placeholder { - font: ${theme.font.H5Regular}; - color: ${theme.color.gray400}; - } - - @media (max-width: 375px) { - height: ${({ $largeHeight }) => $largeHeight}; - &::placeholder { - font: ${theme.font.H7Regular}; - } - } - - @media (min-width: 376px) and (max-width: 768px) { - height: ${({ $largeHeight }) => $largeHeight}; - } -`; diff --git a/components/common/Input/Input.tsx b/components/common/Input/Input.tsx index 66d91764..c8f9e053 100644 --- a/components/common/Input/Input.tsx +++ b/components/common/Input/Input.tsx @@ -1,17 +1,19 @@ import Image from "next/image"; -import * as S from "./Input.styles"; -import { CSSProperties, InputHTMLAttributes } from "react"; +import { CSSProperties, InputHTMLAttributes,TextareaHTMLAttributes } from "react"; -interface InputProps extends InputHTMLAttributes { +interface InputProps { label?: string; style?: CSSProperties; - isTextarea?: boolean; leftSlot?: string; slotSize?: number; height?: string; largeHeight?: string; } +type IOrTProps = + | (InputProps & InputHTMLAttributes & { isTextarea?: false }) + | (InputProps & TextareaHTMLAttributes & { isTextarea?: true }); + export default function Input({ label, style, @@ -21,25 +23,44 @@ export default function Input({ height, largeHeight, ...rest -}: InputProps) { +}: IOrTProps) { return ( - - {label} - +
+ +
{leftSlot && ( - +
- +
+ )} + {isTextarea ? ( +