diff --git a/package.json b/package.json index 23970ff1ff..2c036aeafb 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,8 @@ "prod:reload": "pm2 reload ecosystem.config.js" }, "dependencies": { - "@aws-sdk/client-s3": "3.523.0", - "@clerk/nextjs": "4.29.8", + "@aws-sdk/client-s3": "3.525.0", + "@clerk/nextjs": "4.29.9", "@excalidraw/excalidraw": "0.17.3", "@floating-ui/react-dom": "2.0.8", "@milkdown/core": "7.3.5", @@ -62,24 +62,25 @@ "@radix-ui/react-select": "2.0.0", "@radix-ui/react-switch": "1.0.3", "@radix-ui/react-tabs": "1.0.4", - "@tanstack/query-async-storage-persister": "5.24.1", - "@tanstack/react-query": "5.24.1", - "@tanstack/react-query-devtools": "5.24.1", - "@tanstack/react-query-persist-client": "5.24.1", + "@shikijs/transformers": "1.1.7", + "@tanstack/query-async-storage-persister": "5.24.2", + "@tanstack/react-query": "5.24.2", + "@tanstack/react-query-devtools": "5.24.2", + "@tanstack/react-query-persist-client": "5.24.2", "@upstash/redis": "1.28.4", "@vercel/analytics": "1.2.2", "@vercel/postgres": "0.7.2", "axios": "1.6.7", "bypass-vue-devtools": "0.0.6", "clsx": "2.1.0", - "colorjs.io": "^0.4.5", - "crossbell": "1.11.3", + "colorjs.io": "^0.5.0", + "crossbell": "1.11.7", "daisyui": "4.7.2", "dayjs": "1.11.10", "emoji-mart": "5.5.2", "emoji-picker-react": "4.8.0", "foxact": "0.2.31", - "framer-motion": "^11.0.6", + "framer-motion": "^11.0.8", "fuse.js": "7.0.0", "idb-keyval": "6.2.1", "immer": "^10.0.3", @@ -94,15 +95,15 @@ "marked": "12.0.0", "medium-zoom": "1.1.0", "mermaid": "10.8.0", - "nanoid": "*", - "next": "14.1.0", + "nanoid": "^5.0.6", + "next": "14.1.1", "next-themes": "0.2.1", - "openai": "4.28.0", + "openai": "4.28.4", "pngjs": "7.0.0", "qrcode.react": "3.1.0", "react": "18.2.0", "react-dom": "18.2.0", - "react-error-boundary": "4.0.12", + "react-error-boundary": "4.0.13", "react-intersection-observer": "9.8.1", "react-responsive-masonry": "2.2.0", "react-toastify": "10.0.4", @@ -117,7 +118,7 @@ "unified": "^11.0.4", "uniqolor": "1.1.1", "unist-util-visit": "5.0.0", - "use-context-selector": "1.4.1", + "use-context-selector": "1.4.2", "vaul": "0.9.0", "xss": "1.0.14" }, @@ -128,19 +129,19 @@ "@innei/eslint-config-react-ts": "0.12.2", "@innei/prettier": "0.12.2", "@mx-space/webhook": "0.2.4", - "@next/bundle-analyzer": "14.1.0", + "@next/bundle-analyzer": "14.1.1", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/typography": "0.5.10", "@types/js-cookie": "3.0.6", "@types/js-yaml": "4.0.9", "@types/markdown-escape": "1.1.3", - "@types/node": "20.11.21", + "@types/node": "20.11.24", "@types/pngjs": "6.0.4", - "@types/react": "18.2.60", + "@types/react": "18.2.61", "@types/react-dom": "18.2.19", "@types/react-responsive-masonry": "2.1.3", "@types/remove-markdown": "0.3.4", - "autoprefixer": "10.4.17", + "autoprefixer": "10.4.18", "cross-env": "7.0.3", "dotenv": "16.4.5", "eslint": "8.57.0", @@ -152,6 +153,7 @@ "postcss-prune-var": "1.1.1", "prettier": "3.2.5", "rimraf": "5.0.5", + "shiki": "1.1.7", "simple-git-hooks": "2.9.0", "tailwind-scrollbar": "3.1.0", "tailwind-variants": "0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db4a7ccf60..508ba41460 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,11 +21,11 @@ overrides: dependencies: '@aws-sdk/client-s3': - specifier: 3.523.0 - version: 3.523.0 + specifier: 3.525.0 + version: 3.525.0 '@clerk/nextjs': - specifier: 4.29.8 - version: 4.29.8(next@14.1.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 4.29.9 + version: 4.29.9(next@14.1.1)(react-dom@18.2.0)(react@18.2.0) '@excalidraw/excalidraw': specifier: 0.17.3 version: 0.17.3(react-dom@18.2.0)(react@18.2.0) @@ -79,40 +79,43 @@ dependencies: version: 0.2.6(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: 1.0.5 - version: 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-label': specifier: 2.0.2 - version: 2.0.2(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.2(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-scroll-area': specifier: 1.0.5 - version: 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-select': specifier: 2.0.0 - version: 2.0.0(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.0(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-switch': specifier: 1.0.3 - version: 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tabs': specifier: 1.0.4 - version: 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@shikijs/transformers': + specifier: 1.1.7 + version: 1.1.7 '@tanstack/query-async-storage-persister': - specifier: 5.24.1 - version: 5.24.1 + specifier: 5.24.2 + version: 5.24.2 '@tanstack/react-query': - specifier: 5.24.1 - version: 5.24.1(react@18.2.0) + specifier: 5.24.2 + version: 5.24.2(react@18.2.0) '@tanstack/react-query-devtools': - specifier: 5.24.1 - version: 5.24.1(@tanstack/react-query@5.24.1)(react@18.2.0) + specifier: 5.24.2 + version: 5.24.2(@tanstack/react-query@5.24.2)(react@18.2.0) '@tanstack/react-query-persist-client': - specifier: 5.24.1 - version: 5.24.1(@tanstack/react-query@5.24.1)(react@18.2.0) + specifier: 5.24.2 + version: 5.24.2(@tanstack/react-query@5.24.2)(react@18.2.0) '@upstash/redis': specifier: 1.28.4 version: 1.28.4 '@vercel/analytics': specifier: 1.2.2 - version: 1.2.2(next@14.1.0)(react@18.2.0) + version: 1.2.2(next@14.1.1)(react@18.2.0) '@vercel/postgres': specifier: 0.7.2 version: 0.7.2 @@ -126,11 +129,11 @@ dependencies: specifier: 2.1.0 version: 2.1.0 colorjs.io: - specifier: ^0.4.5 - version: 0.4.5 + specifier: ^0.5.0 + version: 0.5.0 crossbell: - specifier: 1.11.3 - version: 1.11.3(typescript@5.3.3) + specifier: 1.11.7 + version: 1.11.7(typescript@5.3.3) daisyui: specifier: 4.7.2 version: 4.7.2(postcss@8.4.35) @@ -147,8 +150,8 @@ dependencies: specifier: 0.2.31 version: 0.2.31(react@18.2.0) framer-motion: - specifier: ^11.0.6 - version: 11.0.6(react-dom@18.2.0)(react@18.2.0) + specifier: ^11.0.8 + version: 11.0.8(react-dom@18.2.0)(react@18.2.0) fuse.js: specifier: 7.0.0 version: 7.0.0 @@ -163,7 +166,7 @@ dependencies: version: 0.1.4(immer@10.0.3)(jotai@2.7.0)(react@18.2.0) jotai: specifier: 2.7.0 - version: 2.7.0(@types/react@18.2.60)(react@18.2.0) + version: 2.7.0(@types/react@18.2.61)(react@18.2.0) js-cookie: specifier: 3.0.5 version: 3.0.5 @@ -175,7 +178,7 @@ dependencies: version: 0.6.0 kbar: specifier: 0.1.0-beta.45 - version: 0.1.0-beta.45(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 0.1.0-beta.45(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) markdown-escape: specifier: 2.0.0 version: 2.0.0 @@ -192,17 +195,17 @@ dependencies: specifier: 10.8.0 version: 10.8.0 nanoid: - specifier: '*' - version: 5.0.4 + specifier: ^5.0.6 + version: 5.0.6 next: - specifier: 14.1.0 - version: 14.1.0(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + specifier: 14.1.1 + version: 14.1.1(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) next-themes: specifier: 0.2.1 - version: 0.2.1(next@14.1.0)(react-dom@18.2.0)(react@18.2.0) + version: 0.2.1(next@14.1.1)(react-dom@18.2.0)(react@18.2.0) openai: - specifier: 4.28.0 - version: 4.28.0 + specifier: 4.28.4 + version: 4.28.4 pngjs: specifier: 7.0.0 version: 7.0.0 @@ -216,8 +219,8 @@ dependencies: specifier: 18.2.0 version: 18.2.0(react@18.2.0) react-error-boundary: - specifier: 4.0.12 - version: 4.0.12(react@18.2.0) + specifier: 4.0.13 + version: 4.0.13(react@18.2.0) react-intersection-observer: specifier: 9.8.1 version: 9.8.1(react-dom@18.2.0)(react@18.2.0) @@ -261,11 +264,11 @@ dependencies: specifier: 5.0.0 version: 5.0.0 use-context-selector: - specifier: 1.4.1 - version: 1.4.1(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0) + specifier: 1.4.2 + version: 1.4.2(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0) vaul: specifier: 0.9.0 - version: 0.9.0(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + version: 0.9.0(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) xss: specifier: 1.0.14 version: 1.0.14 @@ -290,8 +293,8 @@ devDependencies: specifier: 0.2.4 version: 0.2.4 '@next/bundle-analyzer': - specifier: 14.1.0 - version: 14.1.0 + specifier: 14.1.1 + version: 14.1.1 '@tailwindcss/container-queries': specifier: 0.1.1 version: 0.1.1(tailwindcss@3.4.1) @@ -308,14 +311,14 @@ devDependencies: specifier: 1.1.3 version: 1.1.3 '@types/node': - specifier: 20.11.21 - version: 20.11.21 + specifier: 20.11.24 + version: 20.11.24 '@types/pngjs': specifier: 6.0.4 version: 6.0.4 '@types/react': - specifier: 18.2.60 - version: 18.2.60 + specifier: 18.2.61 + version: 18.2.61 '@types/react-dom': specifier: 18.2.19 version: 18.2.19 @@ -326,8 +329,8 @@ devDependencies: specifier: 0.3.4 version: 0.3.4 autoprefixer: - specifier: 10.4.17 - version: 10.4.17(postcss@8.4.35) + specifier: 10.4.18 + version: 10.4.18(postcss@8.4.35) cross-env: specifier: 7.0.3 version: 7.0.3 @@ -361,6 +364,9 @@ devDependencies: rimraf: specifier: 5.0.5 version: 5.0.5 + shiki: + specifier: 1.1.7 + version: 1.1.7 simple-git-hooks: specifier: 2.9.0 version: 2.9.0 @@ -490,33 +496,33 @@ packages: tslib: 1.14.1 dev: false - /@aws-sdk/client-s3@3.523.0: - resolution: {integrity: sha512-d8kFgZpdHOCLtv38nNkItTs3Ew+Ui/YadkCprvbY0boCrFZFTynficFM4orVk+fV3beJ2qVeJm6t8t14V5TaVA==} + /@aws-sdk/client-s3@3.525.0: + resolution: {integrity: sha512-hoMGH8G9rezZDiJPsMjsyRVNfVHHa4u6lcZ09SQMmtFHWK0FUcC0DIKR5ripV5qGDbnV54i2JotXlLzAv0aNCQ==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha1-browser': 3.0.0 '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) - '@aws-sdk/core': 3.523.0 - '@aws-sdk/credential-provider-node': 3.523.0 - '@aws-sdk/middleware-bucket-endpoint': 3.523.0 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-bucket-endpoint': 3.525.0 '@aws-sdk/middleware-expect-continue': 3.523.0 '@aws-sdk/middleware-flexible-checksums': 3.523.0 '@aws-sdk/middleware-host-header': 3.523.0 '@aws-sdk/middleware-location-constraint': 3.523.0 '@aws-sdk/middleware-logger': 3.523.0 '@aws-sdk/middleware-recursion-detection': 3.523.0 - '@aws-sdk/middleware-sdk-s3': 3.523.0 + '@aws-sdk/middleware-sdk-s3': 3.525.0 '@aws-sdk/middleware-signing': 3.523.0 '@aws-sdk/middleware-ssec': 3.523.0 - '@aws-sdk/middleware-user-agent': 3.523.0 - '@aws-sdk/region-config-resolver': 3.523.0 - '@aws-sdk/signature-v4-multi-region': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/signature-v4-multi-region': 3.525.0 '@aws-sdk/types': 3.523.0 - '@aws-sdk/util-endpoints': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 '@aws-sdk/util-user-agent-browser': 3.523.0 - '@aws-sdk/util-user-agent-node': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 '@aws-sdk/xml-builder': 3.523.0 '@smithy/config-resolver': 2.1.4 '@smithy/core': 1.3.5 @@ -556,26 +562,26 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sso-oidc@3.523.0(@aws-sdk/credential-provider-node@3.523.0): - resolution: {integrity: sha512-OktkdiuJ5DtYgNrJlo53Tf7pJ+UWfOt7V7or0ije6MysLP18GwlTkbg2UE4EUtfOxt/baXxHMlExB1vmRtlATw==} + /@aws-sdk/client-sso-oidc@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-zz13k/6RkjPSLmReSeGxd8wzGiiZa4Odr2Tv3wTcxClM4wOjD+zOgGv4Fe32b9AMqaueiCdjbvdu7AKcYxFA4A==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.523.0 + '@aws-sdk/credential-provider-node': ^3.525.0 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) - '@aws-sdk/core': 3.523.0 - '@aws-sdk/credential-provider-node': 3.523.0 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 '@aws-sdk/middleware-host-header': 3.523.0 '@aws-sdk/middleware-logger': 3.523.0 '@aws-sdk/middleware-recursion-detection': 3.523.0 - '@aws-sdk/middleware-user-agent': 3.523.0 - '@aws-sdk/region-config-resolver': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 '@aws-sdk/types': 3.523.0 - '@aws-sdk/util-endpoints': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 '@aws-sdk/util-user-agent-browser': 3.523.0 - '@aws-sdk/util-user-agent-node': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 '@smithy/config-resolver': 2.1.4 '@smithy/core': 1.3.5 '@smithy/fetch-http-handler': 2.4.3 @@ -606,22 +612,22 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sso@3.523.0: - resolution: {integrity: sha512-vob/Tk9bIr6VIyzScBWsKpP92ACI6/aOXBL2BITgvRWl5Umqi1jXFtfssj/N2UJHM4CBMRwxIJ33InfN0gPxZw==} + /@aws-sdk/client-sso@3.525.0: + resolution: {integrity: sha512-6KwGQWFoNLH1UupdWPFdKPfTgjSz1kN8/r8aCzuvvXBe4Pz+iDUZ6FEJzGWNc9AapjvZDNO1hs23slomM9rTaA==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.523.0 + '@aws-sdk/core': 3.525.0 '@aws-sdk/middleware-host-header': 3.523.0 '@aws-sdk/middleware-logger': 3.523.0 '@aws-sdk/middleware-recursion-detection': 3.523.0 - '@aws-sdk/middleware-user-agent': 3.523.0 - '@aws-sdk/region-config-resolver': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 '@aws-sdk/types': 3.523.0 - '@aws-sdk/util-endpoints': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 '@aws-sdk/util-user-agent-browser': 3.523.0 - '@aws-sdk/util-user-agent-node': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 '@smithy/config-resolver': 2.1.4 '@smithy/core': 1.3.5 '@smithy/fetch-http-handler': 2.4.3 @@ -652,25 +658,25 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sts@3.523.0(@aws-sdk/credential-provider-node@3.523.0): - resolution: {integrity: sha512-ggAkL8szaJkqD8oOsS68URJ9XMDbLA/INO/NPZJqv9BhmftecJvfy43uUVWGNs6n4YXNzfF0Y+zQ3DT0fZkv9g==} + /@aws-sdk/client-sts@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-a8NUGRvO6rkfTZCbMaCsjDjLbERCwIUU9dIywFYcRgbFhkupJ7fSaZz3Het98U51M9ZbTEpaTa3fz0HaJv8VJw==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.523.0 + '@aws-sdk/credential-provider-node': ^3.525.0 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.523.0 - '@aws-sdk/credential-provider-node': 3.523.0 + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 '@aws-sdk/middleware-host-header': 3.523.0 '@aws-sdk/middleware-logger': 3.523.0 '@aws-sdk/middleware-recursion-detection': 3.523.0 - '@aws-sdk/middleware-user-agent': 3.523.0 - '@aws-sdk/region-config-resolver': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 '@aws-sdk/types': 3.523.0 - '@aws-sdk/util-endpoints': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 '@aws-sdk/util-user-agent-browser': 3.523.0 - '@aws-sdk/util-user-agent-node': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 '@smithy/config-resolver': 2.1.4 '@smithy/core': 1.3.5 '@smithy/fetch-http-handler': 2.4.3 @@ -702,8 +708,8 @@ packages: - aws-crt dev: false - /@aws-sdk/core@3.523.0: - resolution: {integrity: sha512-JHa3ngEWkTzZ2YTn6EavcADC8gv6zZU4U9WBAleClh6ioXH0kGMBawZje3y0F0mKyLTfLhFqFUlCV5sngI/Qcw==} + /@aws-sdk/core@3.525.0: + resolution: {integrity: sha512-E3LtEtMWCriQOFZpVKpLYzbdw/v2PAOEAMhn2VRRZ1g0/g1TXzQrfhEU2yd8l/vQEJaCJ82ooGGg7YECviBUxA==} engines: {node: '>=14.0.0'} dependencies: '@smithy/core': 1.3.5 @@ -724,8 +730,8 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-http@3.523.0: - resolution: {integrity: sha512-6YUtePbn3UFpY9qfVwHFWIVnFvVS5vsbGxxkTO02swvZBvVG4sdG0Xj0AbotUNQNY9QTCN7WkhwIrd50rfDQ9Q==} + /@aws-sdk/credential-provider-http@3.525.0: + resolution: {integrity: sha512-RNWQGuSBQZhl3iqklOslUEfQ4br1V3DCPboMpeqFtddUWJV3m2u2extFur9/4Uy+1EHVF120IwZUKtd8dF+ibw==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.523.0 @@ -739,15 +745,15 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-ini@3.523.0(@aws-sdk/credential-provider-node@3.523.0): - resolution: {integrity: sha512-dRch5Ts67FFRZY5r9DpiC3PM6BVHv1tRcy1b26hoqfFkxP9xYH3dsTSPBog1azIqaJa2GcXqEvKCqhghFTt4Xg==} + /@aws-sdk/credential-provider-ini@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-JDnccfK5JRb9jcgpc9lirL9PyCwGIqY0nKdw3LlX5WL5vTpTG4E1q7rLAlpNh7/tFD1n66Itarfv2tsyHMIqCw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) '@aws-sdk/credential-provider-env': 3.523.0 '@aws-sdk/credential-provider-process': 3.523.0 - '@aws-sdk/credential-provider-sso': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) - '@aws-sdk/credential-provider-web-identity': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) + '@aws-sdk/credential-provider-sso': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-web-identity': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) '@aws-sdk/types': 3.523.0 '@smithy/credential-provider-imds': 2.2.4 '@smithy/property-provider': 2.1.3 @@ -759,16 +765,16 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-node@3.523.0: - resolution: {integrity: sha512-0aW5ylA8pZmvv/8qA/+iel4acEyzSlHRiaHYL3L0qu9SSoe2a92+RHjrxKl6+Sb55eA2mRfQjaN8oOa5xiYyKA==} + /@aws-sdk/credential-provider-node@3.525.0: + resolution: {integrity: sha512-RJXlO8goGXpnoHQAyrCcJ0QtWEOFa34LSbfdqBIjQX/fwnjUuEmiGdXTV3AZmwYQ7juk49tfBneHbtOP3AGqsQ==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/credential-provider-env': 3.523.0 - '@aws-sdk/credential-provider-http': 3.523.0 - '@aws-sdk/credential-provider-ini': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) + '@aws-sdk/credential-provider-http': 3.525.0 + '@aws-sdk/credential-provider-ini': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) '@aws-sdk/credential-provider-process': 3.523.0 - '@aws-sdk/credential-provider-sso': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) - '@aws-sdk/credential-provider-web-identity': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) + '@aws-sdk/credential-provider-sso': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-web-identity': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) '@aws-sdk/types': 3.523.0 '@smithy/credential-provider-imds': 2.2.4 '@smithy/property-provider': 2.1.3 @@ -790,12 +796,12 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-sso@3.523.0(@aws-sdk/credential-provider-node@3.523.0): - resolution: {integrity: sha512-/VfOJuI8ImV//W4gr+yieF/4shzWAzWYeaaNu7hv161C5YW7/OoCygwRVHSnF4KKeUGQZomZWwml5zHZ57f8xQ==} + /@aws-sdk/credential-provider-sso@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-7V7ybtufxdD3plxeIeB6aqHZeFIUlAyPphXIUgXrGY10iNcosL970rQPBeggsohe4gCM6UvY2TfMeEcr+ZE8FA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso': 3.523.0 - '@aws-sdk/token-providers': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) + '@aws-sdk/client-sso': 3.525.0 + '@aws-sdk/token-providers': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) '@aws-sdk/types': 3.523.0 '@smithy/property-provider': 2.1.3 '@smithy/shared-ini-file-loader': 2.3.4 @@ -806,11 +812,11 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity@3.523.0(@aws-sdk/credential-provider-node@3.523.0): - resolution: {integrity: sha512-EyBwVoTNZrhLRIHly3JnLzy86deT2hHGoxSCrT3+cVcF1Pq3FPp6n9fUkHd6Yel+wFrjpXCRggLddPvajUoXtQ==} + /@aws-sdk/credential-provider-web-identity@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-sAukOjR1oKb2JXG4nPpuBFpSwGUhrrY17PG/xbTy8NAoLLhrqRwnErcLfdTfmj6tH+3094k6ws/Sh8a35ae7fA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) '@aws-sdk/types': 3.523.0 '@smithy/property-provider': 2.1.3 '@smithy/types': 2.10.1 @@ -820,8 +826,8 @@ packages: - aws-crt dev: false - /@aws-sdk/middleware-bucket-endpoint@3.523.0: - resolution: {integrity: sha512-mrZbixWjk0d9NqxC4xBnKtfwErum0we4Uk2O4fgvDVI+XxAimUlZ9c4o/QJ2+TzeQ/8QclT2k4WidsQdWtPNvg==} + /@aws-sdk/middleware-bucket-endpoint@3.525.0: + resolution: {integrity: sha512-nYfQ2Xspfef7j8mZO7varUWLPH6HQlXateH7tBVtBNUAazyQE4UJEvC0fbQ+Y01e+FKlirim/m2umkdMXqAlTg==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.523.0 @@ -895,8 +901,8 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/middleware-sdk-s3@3.523.0: - resolution: {integrity: sha512-cCZ3+XcAJMSC2rsw5F2h+ILVgjijRTxgzD6l7vExhc7UUOOPxXa6R9oGV3+6ANQ/P0w8rvE78j8UAMzlpq+cZA==} + /@aws-sdk/middleware-sdk-s3@3.525.0: + resolution: {integrity: sha512-ewFyyFM6wdFTOqCiId5GQNi7owDdLEonQhB4h8tF6r3HV52bRlDvZA4aDos+ft6N/XY2J6L0qlFTFq+/oiurXw==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.523.0 @@ -932,19 +938,19 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/middleware-user-agent@3.523.0: - resolution: {integrity: sha512-5OoKkmAPNaxLgJuS65gByW1QknGvvXdqzrIMXLsm9LjbsphTOscyvT439qk3Jf08TL4Zlw2x+pZMG7dZYuMAhQ==} + /@aws-sdk/middleware-user-agent@3.525.0: + resolution: {integrity: sha512-4al/6uO+t/QIYXK2OgqzDKQzzLAYJza1vWFS+S0lJ3jLNGyLB5BMU5KqWjDzevYZ4eCnz2Nn7z0FveUTNz8YdQ==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.523.0 - '@aws-sdk/util-endpoints': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 '@smithy/protocol-http': 3.2.1 '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/region-config-resolver@3.523.0: - resolution: {integrity: sha512-IypIAecBc8b4jM0uVBEj90NYaIsc0vuLdSFyH4LPO7is4rQUet4CkkD+S036NvDdcdxBsQ4hJZBmWrqiizMHhQ==} + /@aws-sdk/region-config-resolver@3.525.0: + resolution: {integrity: sha512-8kFqXk6UyKgTMi7N7QlhA6qM4pGPWbiUXqEY2RgUWngtxqNFGeM9JTexZeuavQI+qLLe09VPShPNX71fEDcM6w==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.523.0 @@ -955,11 +961,11 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/signature-v4-multi-region@3.523.0: - resolution: {integrity: sha512-TU1AfF6YlihdMy4H5YtkmFYmA/Zrh7sqk2V6tPiR2Vu6idc+9xm1R0UE/2V/DKgMIkxfr4+cAojtp2kqYuuF/A==} + /@aws-sdk/signature-v4-multi-region@3.525.0: + resolution: {integrity: sha512-j8gkdfiokaherRgokfZBl2azYBMHlegT7pOnR/3Y79TSz6G+bJeIkuNk8aUbJArr6R8nvAM1j4dt1rBM+efolQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/middleware-sdk-s3': 3.523.0 + '@aws-sdk/middleware-sdk-s3': 3.525.0 '@aws-sdk/types': 3.523.0 '@smithy/protocol-http': 3.2.1 '@smithy/signature-v4': 2.1.3 @@ -967,11 +973,11 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/token-providers@3.523.0(@aws-sdk/credential-provider-node@3.523.0): - resolution: {integrity: sha512-m3sPEnLuGV3JY9A8ytcz90SogVtjxEyIxUDFeswxY4C5wP/36yOq3ivenRu07dH+QIJnBhsQdjnHwJfrIetG6g==} + /@aws-sdk/token-providers@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-puVjbxuK0Dq7PTQ2HdddHy2eQjOH8GZbump74yWJa6JVpRW84LlOcNmP+79x4Kscvz2ldWB8XDFw/pcCiSDe5A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso-oidc': 3.523.0(@aws-sdk/credential-provider-node@3.523.0) + '@aws-sdk/client-sso-oidc': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) '@aws-sdk/types': 3.523.0 '@smithy/property-provider': 2.1.3 '@smithy/shared-ini-file-loader': 2.3.4 @@ -997,8 +1003,8 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-endpoints@3.523.0: - resolution: {integrity: sha512-f4qe4AdafjAZoVGoVt69Jb2rXCgo306OOobSJ/f4bhQ0zgAjGELKJATNRRe0J7P28+ffmSxeuYwM3r4gDkD/QA==} + /@aws-sdk/util-endpoints@3.525.0: + resolution: {integrity: sha512-DIW7WWU5tIGkeeKX6NJUyrEIdWMiqjLQG3XBzaUj+ufIENwNjdAHhlD8l2vX7Yr3JZRT6yN/84wBCj7Tw1xd1g==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.523.0 @@ -1023,8 +1029,8 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-node@3.523.0: - resolution: {integrity: sha512-tW7vliJ77EsE8J1bzFpDYCiUyrw2NTcem+J5ddiWD4HA/xNQUyX0CMOXMBZCBA31xLTIchyz0LkZHlDsmB9LUw==} + /@aws-sdk/util-user-agent-node@3.525.0: + resolution: {integrity: sha512-88Wjt4efyUSBGcyIuh1dvoMqY1k15jpJc5A/3yi67clBQEFsu9QCodQCQPqmRjV3VRcMtBOk+jeCTiUzTY5dRQ==} engines: {node: '>=14.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1324,6 +1330,13 @@ packages: dependencies: regenerator-runtime: 0.14.0 + /@babel/runtime@7.24.0: + resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} @@ -1361,11 +1374,11 @@ packages: resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} dev: false - /@clerk/backend@0.38.2(react@18.2.0): - resolution: {integrity: sha512-5Wpi4ZwjmspvpRvXqErAG/5hypcHo5nnzhuKx5pPoqylh4aU71CYX4VoCz/2cHk8oC0V1Ddg0XEPF3/GsKgalA==} + /@clerk/backend@0.38.3(react@18.2.0): + resolution: {integrity: sha512-k14WRljVNETpIYrt99MBP/Zd7KEwkudQKSCEMatQbiRkWgrpwDWE8Czv+JzF1J7sdMiicBI+p2ph9biX1EOFzw==} engines: {node: '>=14'} dependencies: - '@clerk/shared': 1.3.2(react@18.2.0) + '@clerk/shared': 1.3.3(react@18.2.0) '@clerk/types': 3.62.1 '@peculiar/webcrypto': 1.4.1 '@types/node': 16.18.6 @@ -1378,24 +1391,24 @@ packages: - react dev: false - /@clerk/clerk-react@4.30.6(react@18.2.0): - resolution: {integrity: sha512-huBZK2tIfvj8CAJ88M4ZjvtqxoB22VEhT/RjPHMb/+YCfp0/WKG+vAnC1yG0HnM/SYvl+0cPKLDpp9kKTVZFzw==} + /@clerk/clerk-react@4.30.7(react@18.2.0): + resolution: {integrity: sha512-+6Q1hVteqn66gFLiCKSqqSdz2MBjsEjs1fkGLAEKZC1GdfOKrH6oWcLuSwUdyqRvJWuyjeIgwq15zoHtXKyztA==} engines: {node: '>=14'} peerDependencies: react: '>=16' dependencies: - '@clerk/shared': 1.3.2(react@18.2.0) + '@clerk/shared': 1.3.3(react@18.2.0) '@clerk/types': 3.62.1 react: 18.2.0 tslib: 2.4.1 dev: false - /@clerk/clerk-sdk-node@4.13.10(react@18.2.0): - resolution: {integrity: sha512-UaIpxYkRtKtrNiau3s6IsyrT8EILQRyNqwkldO72usPORr1uBoI+UcgI8Q8eiXbYMVH+8dF+n8+WC8a7lN2+pQ==} + /@clerk/clerk-sdk-node@4.13.11(react@18.2.0): + resolution: {integrity: sha512-6CiRx61SW0B7i+4STlID537LvwFJvNGWxxQZY96OPHQnvYGYsp+9PdEyY4zaQiyLQBLYJt1+uc7VsdSYY5Omww==} engines: {node: '>=14'} dependencies: - '@clerk/backend': 0.38.2(react@18.2.0) - '@clerk/shared': 1.3.2(react@18.2.0) + '@clerk/backend': 0.38.3(react@18.2.0) + '@clerk/shared': 1.3.3(react@18.2.0) '@clerk/types': 3.62.1 '@types/cookies': 0.7.7 '@types/express': 4.17.14 @@ -1407,28 +1420,28 @@ packages: - react dev: false - /@clerk/nextjs@4.29.8(next@14.1.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-t5EcrDYRRnCHCZ6IyOmPjxxp5NsJqKH5ukBTDO7bXNW90E2KsROnG4fdKthwkOmnr9q85OK6EIxrEn7IYOlwvA==} + /@clerk/nextjs@4.29.9(next@14.1.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-RsOz+lxlPYJi9cBvhBRqAUVUOMBT20R3ppt3eof97DkqCT6YaHJx/S13XcYUuo6ojYRDDJ/nI6XiLcfpqIJO6g==} engines: {node: '>=14'} peerDependencies: next: '>=10' react: ^17.0.2 || ^18.0.0-0 react-dom: ^17.0.2 || ^18.0.0-0 dependencies: - '@clerk/backend': 0.38.2(react@18.2.0) - '@clerk/clerk-react': 4.30.6(react@18.2.0) - '@clerk/clerk-sdk-node': 4.13.10(react@18.2.0) - '@clerk/shared': 1.3.2(react@18.2.0) + '@clerk/backend': 0.38.3(react@18.2.0) + '@clerk/clerk-react': 4.30.7(react@18.2.0) + '@clerk/clerk-sdk-node': 4.13.11(react@18.2.0) + '@clerk/shared': 1.3.3(react@18.2.0) '@clerk/types': 3.62.1 - next: 14.1.0(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + next: 14.1.1(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) path-to-regexp: 6.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.4.1 dev: false - /@clerk/shared@1.3.2(react@18.2.0): - resolution: {integrity: sha512-nyxJNyrSkJxCD0da3Rx0SqPQqS8qDFUYVAdmero5DV/+TL9OTvycM19d9S0TrwensdpN0s48xRgx08qI7Q6l4Q==} + /@clerk/shared@1.3.3(react@18.2.0): + resolution: {integrity: sha512-Eein8cK72dlvY6Q1uFuw9K9MJH1OPjU8FzWloMTKklBo+iPiM6+uENGeGwlY5KId3q/kgPwRc2hBQnUoaijxCQ==} peerDependencies: react: '>=16' peerDependenciesMeta: @@ -2243,11 +2256,11 @@ packages: peerDependencies: typescript: '>=4' dependencies: - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.57.0) typescript: 5.3.3 transitivePeerDependencies: @@ -2392,7 +2405,7 @@ packages: '@milkdown/utils': 7.3.5(@milkdown/core@7.3.5)(@milkdown/ctx@7.3.5)(@milkdown/prose@7.3.5)(@milkdown/transformer@7.3.5) '@types/dompurify': 3.0.5 mermaid: 10.8.0 - nanoid: 5.0.4 + nanoid: 5.0.6 tslib: 2.6.2 unist-util-visit: 5.0.0 transitivePeerDependencies: @@ -2559,7 +2572,7 @@ packages: '@milkdown/exception': 7.3.5 '@milkdown/prose': 7.3.5 '@milkdown/transformer': 7.3.5(@milkdown/prose@7.3.5) - nanoid: 5.0.4 + nanoid: 5.0.6 tslib: 2.6.2 dev: false @@ -2577,8 +2590,8 @@ packages: '@types/pg': 8.6.6 dev: false - /@next/bundle-analyzer@14.1.0: - resolution: {integrity: sha512-RJWjnlMp/1WSW0ahAdawV22WgJiC6BVaFS5Xfhw6gP7NJEX3cAJjh4JqSHKGr8GnLNRaFCVTQdDPoX84E421BA==} + /@next/bundle-analyzer@14.1.1: + resolution: {integrity: sha512-vM8PLggRNodmJo8FJy6+Bnv4jWsVtOuH87naJA7/sdmBUZrBk2fj3xkI1zwarWzDAYzNYTxiMRGVioyNPxBvXg==} dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: @@ -2586,12 +2599,12 @@ packages: - utf-8-validate dev: true - /@next/env@14.1.0: - resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} + /@next/env@14.1.1: + resolution: {integrity: sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==} dev: false - /@next/swc-darwin-arm64@14.1.0: - resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} + /@next/swc-darwin-arm64@14.1.1: + resolution: {integrity: sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -2599,8 +2612,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.1.0: - resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} + /@next/swc-darwin-x64@14.1.1: + resolution: {integrity: sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -2608,8 +2621,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.1.0: - resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} + /@next/swc-linux-arm64-gnu@14.1.1: + resolution: {integrity: sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2617,8 +2630,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.1.0: - resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} + /@next/swc-linux-arm64-musl@14.1.1: + resolution: {integrity: sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2626,8 +2639,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.1.0: - resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} + /@next/swc-linux-x64-gnu@14.1.1: + resolution: {integrity: sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2635,8 +2648,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.1.0: - resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} + /@next/swc-linux-x64-musl@14.1.1: + resolution: {integrity: sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2644,8 +2657,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.1.0: - resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} + /@next/swc-win32-arm64-msvc@14.1.1: + resolution: {integrity: sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -2653,8 +2666,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.1.0: - resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} + /@next/swc-win32-ia32-msvc@14.1.1: + resolution: {integrity: sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -2662,8 +2675,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.1.0: - resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} + /@next/swc-win32-x64-msvc@14.1.1: + resolution: {integrity: sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2822,7 +2835,7 @@ packages: resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} engines: {node: '>=8.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.4.1 dev: false /@peculiar/webcrypto@1.4.1: @@ -2832,8 +2845,8 @@ packages: '@peculiar/asn1-schema': 2.3.8 '@peculiar/json-schema': 1.1.12 pvtsutils: 1.3.5 - tslib: 2.6.2 - webcrypto-core: 1.7.7 + tslib: 2.4.1 + webcrypto-core: 1.7.8 dev: false /@pkgjs/parseargs@0.11.0: @@ -2878,7 +2891,7 @@ packages: '@babel/runtime': 7.23.5 dev: false - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -2892,14 +2905,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -2913,17 +2926,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -2933,11 +2946,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -2947,11 +2960,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: '@types/react': '*' @@ -2966,26 +2979,26 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.60)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.61)(react@18.2.0) dev: false - /@radix-ui/react-direction@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -2995,11 +3008,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -3014,17 +3027,17 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -3034,11 +3047,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -3052,16 +3065,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -3071,12 +3084,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: '@types/react': '*' @@ -3090,14 +3103,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -3112,22 +3125,22 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.60)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.61)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.60 + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -3141,14 +3154,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -3162,15 +3175,15 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -3184,14 +3197,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -3206,21 +3219,21 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==} peerDependencies: '@types/react': '*' @@ -3236,20 +3249,20 @@ packages: '@babel/runtime': 7.23.5 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-select@2.0.0(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@2.0.0(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} peerDependencies: '@types/react': '*' @@ -3265,32 +3278,32 @@ packages: '@babel/runtime': 7.23.5 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.60)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.61)(react@18.2.0) dev: false - /@radix-ui/react-slot@1.0.2(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -3300,12 +3313,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -3320,19 +3333,19 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -3347,20 +3360,20 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -3370,11 +3383,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -3384,12 +3397,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -3399,12 +3412,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -3414,11 +3427,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -3428,11 +3441,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -3443,11 +3456,11 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.60)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -3457,12 +3470,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.60)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.61)(react@18.2.0) + '@types/react': 18.2.61 react: 18.2.0 dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -3476,8 +3489,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.60 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.61 '@types/react-dom': 18.2.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3527,6 +3540,15 @@ packages: '@scure/base': 1.1.5 dev: false + /@shikijs/core@1.1.7: + resolution: {integrity: sha512-gTYLUIuD1UbZp/11qozD3fWpUTuMqPSf3svDMMrL0UmlGU7D9dPw/V1FonwAorCUJBltaaESxq90jrSjQyGixg==} + + /@shikijs/transformers@1.1.7: + resolution: {integrity: sha512-lXz011ao4+rvweps/9h3CchBfzb1U5OtP5D51Tqc9lQYdLblWMIxQxH6Ybe1GeGINcEVM4goMyPrI0JvlIp4UQ==} + dependencies: + shiki: 1.1.7 + dev: false + /@sindresorhus/slugify@2.2.1: resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} engines: {node: '>=12'} @@ -4033,54 +4055,54 @@ packages: tailwindcss: 3.4.1 dev: true - /@tanstack/query-async-storage-persister@5.24.1: - resolution: {integrity: sha512-JRAu+53mNKmmnU/O9MxckFhFC5mokvbLW7HKsvdxUD27QMD+9wIs7WFCLtuTTCH2myBHhh/aEvhu8kpMHWwfAA==} + /@tanstack/query-async-storage-persister@5.24.2: + resolution: {integrity: sha512-0TEd5oF+9uYpqZBQiv5rz7YjDXtOgT+43+XauXQ5rBRvcj3klVxU5DG89fOjBX/j79rMEBVOvfHedvvO8zPA5g==} dependencies: - '@tanstack/query-persist-client-core': 5.24.1 + '@tanstack/query-persist-client-core': 5.24.2 dev: false - /@tanstack/query-core@5.24.1: - resolution: {integrity: sha512-DZ6Nx9p7BhjkG50ayJ+MKPgff+lMeol7QYXkvuU5jr2ryW/4ok5eanaS9W5eooA4xN0A/GPHdLGOZGzArgf5Cg==} + /@tanstack/query-core@5.24.2: + resolution: {integrity: sha512-GD1z7Ehl5bBLBZkt+imENuGvfk/hf+I2FihsQvtC4rOTF1rW+FDYCO8Ds5vwnO5Bcshr73/mS3BhWPSwc1bogA==} dev: false /@tanstack/query-devtools@5.24.0: resolution: {integrity: sha512-pThim455t69zrZaQKa7IRkEIK8UBTS+gHVAdNfhO72Xh4rWpMc63ovRje5/n6iw63+d6QiJzVadsJVdPoodSeQ==} dev: false - /@tanstack/query-persist-client-core@5.24.1: - resolution: {integrity: sha512-ayUDCSCXAq3ZYXMrVQ3c4g2Mvj+d/Q7rGkNJTvdw09DZQUUMTfZsvSayitJjOxqJl1Pex4HmZNk8PiDvrqvlRQ==} + /@tanstack/query-persist-client-core@5.24.2: + resolution: {integrity: sha512-7BzPQNjhBrDgiyITnUCc69IF6CUkt2zHiikMCzaUoXNT2z+jY9dSfKz4QUsGh4JtJ1X7kPuPOu6tA/xKps1C5A==} dependencies: - '@tanstack/query-core': 5.24.1 + '@tanstack/query-core': 5.24.2 dev: false - /@tanstack/react-query-devtools@5.24.1(@tanstack/react-query@5.24.1)(react@18.2.0): - resolution: {integrity: sha512-qa4SEugN+EF8JJXcpsM9Lu05HfUv5cvHvLuB0uw/81eJZyNHFdtHFBi5RLCgpBrOyVMDfH8UQ3VBMqXzFKV68A==} + /@tanstack/react-query-devtools@5.24.2(@tanstack/react-query@5.24.2)(react@18.2.0): + resolution: {integrity: sha512-vpErA2xlNv/+eglTqk/pEh7RhgkflgL3jSMIXeBive1IwHLKkXVYxRu46rZ3ZN0ss/qkcfAmeFidypMWdZcrdQ==} peerDependencies: - '@tanstack/react-query': ^5.24.1 + '@tanstack/react-query': ^5.24.2 react: ^18.0.0 dependencies: '@tanstack/query-devtools': 5.24.0 - '@tanstack/react-query': 5.24.1(react@18.2.0) + '@tanstack/react-query': 5.24.2(react@18.2.0) react: 18.2.0 dev: false - /@tanstack/react-query-persist-client@5.24.1(@tanstack/react-query@5.24.1)(react@18.2.0): - resolution: {integrity: sha512-USD4afkZbSsAWwor5xbXTkzca0ud4SLd2Q++he8Y1iEyOCh7QJhn+zwsKOaqH2X3ecQMvH/jIzO2r+fieKyMvg==} + /@tanstack/react-query-persist-client@5.24.2(@tanstack/react-query@5.24.2)(react@18.2.0): + resolution: {integrity: sha512-YXv/jRGQUxTqX9iZp6o5KSkG7R6QPudErgMQ4EPpoNwmIU+LBFIjrRmSD+9WGVKof6Duorcg7GSz/7/5C6tLJw==} peerDependencies: - '@tanstack/react-query': ^5.24.1 + '@tanstack/react-query': ^5.24.2 react: ^18.0.0 dependencies: - '@tanstack/query-persist-client-core': 5.24.1 - '@tanstack/react-query': 5.24.1(react@18.2.0) + '@tanstack/query-persist-client-core': 5.24.2 + '@tanstack/react-query': 5.24.2(react@18.2.0) react: 18.2.0 dev: false - /@tanstack/react-query@5.24.1(react@18.2.0): - resolution: {integrity: sha512-4+09JEdO4d6+Gc8Y/g2M/MuxDK5IY0QV8+2wL2304wPKJgJ54cBbULd3nciJ5uvh/as8rrxx6s0mtIwpRuGd1g==} + /@tanstack/react-query@5.24.2(react@18.2.0): + resolution: {integrity: sha512-3DgDWb36gQdcPjmDbSfk7HcWhMRhaPezE8cmLlCudFYBkWRNjb3oFivL4S7YhDkncoGJuBC3oIVEbOrAkLXWLA==} peerDependencies: react: ^18.0.0 dependencies: - '@tanstack/query-core': 5.24.1 + '@tanstack/query-core': 5.24.2 react: 18.2.0 dev: false @@ -4088,13 +4110,13 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: false /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: false /@types/cookies@0.7.7: @@ -4103,7 +4125,7 @@ packages: '@types/connect': 3.4.38 '@types/express': 4.17.14 '@types/keygrip': 1.0.6 - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: false /@types/d3-scale-chromatic@3.0.3: @@ -4136,11 +4158,11 @@ packages: '@types/trusted-types': 2.0.7 dev: false - /@types/express-serve-static-core@4.17.41: - resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} + /@types/express-serve-static-core@4.17.43: + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/node': 20.11.21 - '@types/qs': 6.9.11 + '@types/node': 20.11.24 + '@types/qs': 6.9.12 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 dev: false @@ -4149,8 +4171,8 @@ packages: resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.41 - '@types/qs': 6.9.11 + '@types/express-serve-static-core': 4.17.43 + '@types/qs': 6.9.12 '@types/serve-static': 1.15.5 dev: false @@ -4158,7 +4180,7 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: true /@types/http-errors@2.0.4: @@ -4184,7 +4206,7 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: true /@types/keygrip@1.0.6: @@ -4233,31 +4255,31 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: false - /@types/node-fetch@2.6.2: - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} + /@types/node-fetch@2.6.11: + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} dependencies: - '@types/node': 20.11.21 - form-data: 3.0.1 + '@types/node': 20.11.24 + form-data: 4.0.0 dev: false - /@types/node-fetch@2.6.9: - resolution: {integrity: sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==} + /@types/node-fetch@2.6.2: + resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} dependencies: - '@types/node': 20.11.21 - form-data: 4.0.0 + '@types/node': 20.11.24 + form-data: 3.0.1 dev: false /@types/node@16.18.6: resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==} dev: false - /@types/node@18.19.8: - resolution: {integrity: sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==} + /@types/node@18.19.21: + resolution: {integrity: sha512-2Q2NeB6BmiTFQi4DHBzncSoq/cJMLDdhPaAoJFnFCyD9a8VPZRf7a1GAwp1Edb7ROaZc5Jz/tnZyL6EsWMRaqw==} dependencies: undici-types: 5.26.5 - /@types/node@20.11.21: - resolution: {integrity: sha512-/ySDLGscFPNasfqStUuWWPfL78jompfIoVzLJPVVAHBh6rpG68+pI2Gk+fNLeI8/f1yPYL4s46EleVIc20F1Ow==} + /@types/node@20.11.24: + resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} dependencies: undici-types: 5.26.5 @@ -4272,7 +4294,7 @@ packages: /@types/pg@8.6.6: resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==} dependencies: - '@types/node': 20.11.21 + '@types/node': 20.11.24 pg-protocol: 1.6.0 pg-types: 2.2.0 dev: false @@ -4280,7 +4302,7 @@ packages: /@types/pngjs@6.0.4: resolution: {integrity: sha512-atAK9xLKOnxiuArxcHovmnOUUGBZOQ3f0vCf43FnoKs6XnqiambT1kkJWmdo71IR+BoXSh+CueeFR0GfH3dTlQ==} dependencies: - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: true /@types/prop-types@15.7.11: @@ -4290,8 +4312,8 @@ packages: resolution: {integrity: sha512-PtrlVaOaI44/3pl3cvnlK+GxOM3re2526TJvPvh7W+keHIXdV4TE0ylpPBAcvFQCbGitaTXwL9u+RF7qtVeazQ==} dev: true - /@types/qs@6.9.11: - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + /@types/qs@6.9.12: + resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} dev: false /@types/range-parser@1.2.7: @@ -4301,16 +4323,16 @@ packages: /@types/react-dom@18.2.19: resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 /@types/react-responsive-masonry@2.1.3: resolution: {integrity: sha512-aOFUtv3QwNMmy0BgpQpvivQ/+vivMTB6ARrzf9eTSXsLzXpVnfEtjpHpSknYDnr8KaQmlgeauAj8E7wo/qMOTg==} dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 dev: true - /@types/react@18.2.60: - resolution: {integrity: sha512-dfiPj9+k20jJrLGOu9Nf6eqxm2EyJRrq2NvwOFsfbb7sFExZ9WELPs67UImHj3Ayxg8ruTtKtNnbjaF8olPq0A==} + /@types/react@18.2.61: + resolution: {integrity: sha512-NURTN0qNnJa7O/k4XUkEW2yfygA+NxS0V5h1+kp9jPwhzZy95q3ADoGMP0+JypMhrZBTTgjKAUlTctde1zzeQA==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -4323,15 +4345,15 @@ packages: /@types/scheduler@0.16.8: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: false /@types/serve-static@1.15.5: @@ -4339,7 +4361,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.21 + '@types/node': 20.11.24 dev: false /@types/trusted-types@2.0.7: @@ -4358,7 +4380,7 @@ packages: resolution: {integrity: sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g==} dev: true - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4370,7 +4392,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.20.0 '@typescript-eslint/type-utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) @@ -4378,17 +4400,17 @@ packages: debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4397,10 +4419,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.3.3 @@ -4416,6 +4438,14 @@ packages: '@typescript-eslint/visitor-keys': 6.20.0 dev: true + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + dev: true + /@typescript-eslint/type-utils@6.20.0(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4430,7 +4460,7 @@ packages: '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.57.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -4441,6 +4471,11 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4456,8 +4491,30 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@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.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -4471,12 +4528,12 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.20.0 '@typescript-eslint/types': 6.20.0 '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) eslint: 8.57.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -4490,6 +4547,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -4509,7 +4574,7 @@ packages: - graphql dev: false - /@vercel/analytics@1.2.2(next@14.1.0)(react@18.2.0): + /@vercel/analytics@1.2.2(next@14.1.1)(react@18.2.0): resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==} peerDependencies: next: '>= 13' @@ -4520,7 +4585,7 @@ packages: react: optional: true dependencies: - next: 14.1.0(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + next: 14.1.1(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 server-only: 0.0.1 dev: false @@ -4546,26 +4611,26 @@ packages: typescript: 5.3.3 dev: false - /abitype@0.10.0(typescript@5.3.3): - resolution: {integrity: sha512-QvMHEUzgI9nPj9TWtUGnS2scas80/qaL5PBxGdwWhhvzqXfOph+IEiiiWrzuisu3U3JgDQVruW9oLbJoQ3oZ3A==} + /abitype@0.8.7(typescript@5.3.3): + resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} peerDependencies: typescript: '>=5.0.4' - zod: ^3 >=3.22.0 + zod: ^3 >=3.19.1 peerDependenciesMeta: - typescript: - optional: true zod: optional: true dependencies: typescript: 5.3.3 dev: false - /abitype@0.8.7(typescript@5.3.3): - resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} + /abitype@1.0.0(typescript@5.3.3): + resolution: {integrity: sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==} peerDependencies: typescript: '>=5.0.4' - zod: ^3 >=3.19.1 + zod: ^3 >=3.22.0 peerDependenciesMeta: + typescript: + optional: true zod: optional: true dependencies: @@ -4709,10 +4774,10 @@ packages: tslib: 2.6.2 dev: false - /async-cache-dedupe@2.0.0: - resolution: {integrity: sha512-SrW6PbmCHRQBSpPG8mkPIZZC5AgC08sbzl56GyGemBLVdVUl8mQW4+WCYHp5XZfixIdkL40jKf3UlT/P6Q3p5w==} + /async-cache-dedupe@2.1.0: + resolution: {integrity: sha512-hBoXEwpJOUIjce7HrwbGN9RlYZM6+XblU+ClZ0AzrV4y5UGDqMR/EUAg2S2p0GF0b0IYOreFEt5RD0eiUwa2Qg==} dependencies: - mnemonist: 0.39.7 + mnemonist: 0.39.8 safe-stable-stringify: 2.4.3 dev: false @@ -4794,15 +4859,15 @@ packages: autocorrect-node-win32-x64-msvc: 2.9.0 dev: true - /autoprefixer@10.4.17(postcss@8.4.35): - resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + /autoprefixer@10.4.18(postcss@8.4.35): + resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.22.2 - caniuse-lite: 1.0.30001579 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001591 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -4964,7 +5029,6 @@ packages: /caniuse-lite@1.0.30001591: resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} - dev: true /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -5072,8 +5136,8 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true - /colorjs.io@0.4.5: - resolution: {integrity: sha512-yCtUNCmge7llyfd/Wou19PMAcf5yC3XXhgFoAh6zsO2pGswhUPBaaUh8jzgHnXtXuZyFKzXZNAnyF5i+apICow==} + /colorjs.io@0.5.0: + resolution: {integrity: sha512-qekjTiBLM3F/sXKks/ih5aWaHIGu+Ftel0yKEvmpbKvmxpNOhojKgha5uiWEUOqEpRjC1Tq3nJRT7WgdBOxIGg==} dev: false /combined-stream@1.0.8: @@ -5147,17 +5211,17 @@ packages: which: 2.0.2 dev: true - /crossbell@1.11.3(typescript@5.3.3): - resolution: {integrity: sha512-furQxkEvV0AjmaMmVHulzm3crKFb4asv/X0tBYay+4Tu2jYRsm9vLAsqUhw8xQ2zwzMxRsHMcDvWOVwQ5vdE/w==} + /crossbell@1.11.7(typescript@5.3.3): + resolution: {integrity: sha512-GgznXkpF8mwisKDRR7Gb7gkDY1SqobGkkhUcFcz6fcaRyZ6d1Z5CFXeDkfkNSJs/MppV05PcdTyHAXtewKMDsA==} engines: {node: '>=16.14.0'} dependencies: '@crossbell/ipfs-fetch': 0.0.21 - async-cache-dedupe: 2.0.0 + async-cache-dedupe: 2.1.0 async-retry: 1.3.3 eip1193-types: 0.2.1 exponential-backoff: 3.1.1 p-limit: 3.1.0 - viem: 2.0.3(typescript@5.3.3) + viem: 2.7.16(typescript@5.3.3) transitivePeerDependencies: - bufferutil - typescript @@ -5703,7 +5767,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.4.1 dev: false /dotenv@16.4.5: @@ -5935,8 +5999,8 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -5956,7 +6020,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -5964,7 +6028,7 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -5974,7 +6038,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) array-includes: /@nolyfill/array-includes@1.0.28 array.prototype.findlastindex: /@nolyfill/array.prototype.findlastindex@1.0.24 array.prototype.flat: /@nolyfill/array.prototype.flat@1.0.28 @@ -5983,8 +6047,8 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - hasown: 2.0.0 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 @@ -6043,7 +6107,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 dev: true @@ -6150,7 +6214,7 @@ packages: resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} engines: {node: '>= 0.8'} dependencies: - '@types/node': 20.11.21 + '@types/node': 20.11.24 require-like: 0.1.2 dev: true @@ -6382,8 +6446,8 @@ packages: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true - /framer-motion@11.0.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-BpO3mWF8UwxzO3Ca5AmSkrg14QYTeJa9vKgoLOoBdBdTPj0e81i1dMwnX6EQJXRieUx20uiDBXq8bA6y7N6b8Q==} + /framer-motion@11.0.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1KSGNuqe1qZkS/SWQlDnqK2VCVzRVEoval379j0FiUBJAZoqgwyvqFkfvJbgW2IPFo4wX16K+M0k5jO23lCIjA==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -6669,6 +6733,13 @@ packages: function-bind: 1.1.2 dev: true + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /heap@0.2.7: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: false @@ -6709,6 +6780,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + /immer@10.0.3: resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} dev: false @@ -7047,11 +7123,11 @@ packages: react: ^18.0.0 dependencies: immer: 10.0.3 - jotai: 2.7.0(@types/react@18.2.60)(react@18.2.0) + jotai: 2.7.0(@types/react@18.2.61)(react@18.2.0) react: 18.2.0 dev: false - /jotai@2.7.0(@types/react@18.2.60)(react@18.2.0): + /jotai@2.7.0(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-4qsyFKu4MprI39rj2uoItyhu24NoCHzkOV7z70PQr65SpzV6CSyhQvVIfbNlNqOIOspNMdf5OK+kTXLvqe63Jw==} engines: {node: '>=12.20.0'} peerDependencies: @@ -7063,7 +7139,7 @@ packages: react: optional: true dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 dev: false @@ -7152,13 +7228,13 @@ packages: object.values: /@nolyfill/object.values@1.0.28 dev: true - /kbar@0.1.0-beta.45(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /kbar@0.1.0-beta.45(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-kXvjthqPLoWZXlxLJPrFKioskNdQv1O3Ukg5mqq2ExK3Ix1qvYT3W/ACDRIv/e/CHxPWZoTriB4oFbQ6UCSX5g==} peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) fast-equals: 2.0.4 fuse.js: 6.6.2 react: 18.2.0 @@ -7404,7 +7480,7 @@ packages: /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.6.2 + tslib: 2.4.1 dev: false /lru-cache@10.1.0: @@ -8157,8 +8233,8 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dev: true - /mnemonist@0.39.7: - resolution: {integrity: sha512-ix3FwHWZgdXUt0dHM8bCrI4r1KMeYx8bCunPCYmvKXq4tn6gbNsqrsb4q0kDbDqbpIOvEaW5Sn+dmDwGydfrwA==} + /mnemonist@0.39.8: + resolution: {integrity: sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==} dependencies: obliterator: 2.0.4 dev: false @@ -8202,8 +8278,8 @@ packages: hasBin: true dev: false - /nanoid@5.0.4: - resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} + /nanoid@5.0.6: + resolution: {integrity: sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA==} engines: {node: ^18 || >=20} hasBin: true dev: false @@ -8212,20 +8288,20 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /next-themes@0.2.1(next@14.1.0)(react-dom@18.2.0)(react@18.2.0): + /next-themes@0.2.1(next@14.1.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} peerDependencies: next: '*' react: '*' react-dom: '*' dependencies: - next: 14.1.0(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) + next: 14.1.1(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /next@14.1.0(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} + /next@14.1.1(@babel/core@7.23.5)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -8239,25 +8315,25 @@ packages: sass: optional: true dependencies: - '@next/env': 14.1.0 + '@next/env': 14.1.1 '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001579 + caniuse-lite: 1.0.30001591 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(@babel/core@7.23.5)(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.0 - '@next/swc-darwin-x64': 14.1.0 - '@next/swc-linux-arm64-gnu': 14.1.0 - '@next/swc-linux-arm64-musl': 14.1.0 - '@next/swc-linux-x64-gnu': 14.1.0 - '@next/swc-linux-x64-musl': 14.1.0 - '@next/swc-win32-arm64-msvc': 14.1.0 - '@next/swc-win32-ia32-msvc': 14.1.0 - '@next/swc-win32-x64-msvc': 14.1.0 + '@next/swc-darwin-arm64': 14.1.1 + '@next/swc-darwin-x64': 14.1.1 + '@next/swc-linux-arm64-gnu': 14.1.1 + '@next/swc-linux-arm64-musl': 14.1.1 + '@next/swc-linux-x64-gnu': 14.1.1 + '@next/swc-linux-x64-musl': 14.1.1 + '@next/swc-win32-arm64-msvc': 14.1.1 + '@next/swc-win32-ia32-msvc': 14.1.1 + '@next/swc-win32-x64-msvc': 14.1.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -8267,7 +8343,7 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.4.1 dev: false /node-domexception@1.0.0: @@ -8378,19 +8454,19 @@ packages: mimic-fn: 4.0.0 dev: true - /openai@4.28.0: - resolution: {integrity: sha512-JM8fhcpmpGN0vrUwGquYIzdcEQHtFuom6sRCbbCM6CfzZXNuRk33G7KfeRAIfnaCxSpzrP5iHtwJzIm6biUZ2Q==} + /openai@4.28.4: + resolution: {integrity: sha512-RNIwx4MT/F0zyizGcwS+bXKLzJ8QE9IOyigDG/ttnwB220d58bYjYFp0qjvGwEFBO6+pvFVIDABZPGDl46RFsg==} hasBin: true dependencies: - '@types/node': 18.19.8 - '@types/node-fetch': 2.6.9 + '@types/node': 18.19.21 + '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 digest-fetch: 1.3.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0 - web-streams-polyfill: 3.2.1 + web-streams-polyfill: 3.3.3 transitivePeerDependencies: - encoding dev: false @@ -8912,7 +8988,7 @@ packages: '@csstools/postcss-text-decoration-shorthand': 3.0.4(postcss@8.4.35) '@csstools/postcss-trigonometric-functions': 3.0.5(postcss@8.4.35) '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.35) - autoprefixer: 10.4.17(postcss@8.4.35) + autoprefixer: 10.4.18(postcss@8.4.35) browserslist: 4.23.0 css-blank-pseudo: 6.0.1(postcss@8.4.35) css-has-pseudo: 6.0.2(postcss@8.4.35) @@ -9302,12 +9378,12 @@ packages: scheduler: 0.23.0 dev: false - /react-error-boundary@4.0.12(react@18.2.0): - resolution: {integrity: sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA==} + /react-error-boundary@4.0.13(react@18.2.0): + resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.24.0 react: 18.2.0 dev: false @@ -9328,7 +9404,7 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.2.60)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -9338,13 +9414,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.60)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.61)(react@18.2.0) tslib: 2.6.2 dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.60)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -9354,20 +9430,20 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.60)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.60)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.61)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.61)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.0(@types/react@18.2.60)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.60)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.61)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.61)(react@18.2.0) dev: false /react-responsive-masonry@2.2.0: resolution: {integrity: sha512-IYbnfe2tWCZ3pvyTLyBWPj7uv5ZmNOULYMcAZi5a47ZLhSotOck1vkkISq6gP2qiyWdMvPfeMhjvYzUYGw9BOQ==} dev: false - /react-style-singleton@2.2.1(@types/react@18.2.60)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -9377,7 +9453,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -9461,6 +9537,10 @@ packages: /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} @@ -9683,6 +9763,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} dev: false @@ -9725,6 +9813,11 @@ packages: engines: {node: '>=8'} dev: true + /shiki@1.1.7: + resolution: {integrity: sha512-9kUTMjZtcPH3i7vHunA6EraTPpPOITYTdA5uMrvsJRexktqP0s7P3s9HVK80b4pP42FRVe03D7fT3NmJv2yYhw==} + dependencies: + '@shikijs/core': 1.1.7 + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -9787,7 +9880,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.4.1 dev: false /snakecase-keys@3.2.1: @@ -10173,9 +10266,9 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false - /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.2.1(typescript@5.3.3): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: @@ -10351,7 +10444,7 @@ packages: '@urql/core': 4.2.2(graphql@16.8.1) axios: 1.6.7 axios-retry: 3.9.1 - crossbell: 1.11.3(typescript@5.3.3) + crossbell: 1.11.7(typescript@5.3.3) graphql: 16.8.1 lodash: 4.17.21 lodash-es: 4.17.21 @@ -10446,7 +10539,7 @@ packages: punycode: 2.3.1 dev: true - /use-callback-ref@1.3.0(@types/react@18.2.60)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -10456,13 +10549,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 react: 18.2.0 tslib: 2.6.2 dev: false - /use-context-selector@1.4.1(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0): - resolution: {integrity: sha512-Io2ArvcRO+6MWIhkdfMFt+WKQX+Vb++W8DS2l03z/Vw/rz3BclKpM0ynr4LYGyU85Eke+Yx5oIhTY++QR0ZDoA==} + /use-context-selector@1.4.2(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0): + resolution: {integrity: sha512-OZvd4TWirCMOwIwFlQFnECIyEGb3fvSrd71A8sGWiAPl6SIJTS60Ho+WnAr67T6/JedvlperiReCM5n9mnM3fQ==} peerDependencies: react: '>=16.8.0' react-dom: '*' @@ -10479,7 +10572,7 @@ packages: scheduler: 0.23.0 dev: false - /use-sidecar@1.1.2(@types/react@18.2.60)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.61)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -10489,7 +10582,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.60 + '@types/react': 18.2.61 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 @@ -10536,13 +10629,13 @@ packages: sade: 1.8.1 dev: false - /vaul@0.9.0(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + /vaul@0.9.0(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-bZSySGbAHiTXmZychprnX/dE0EsSige88xtyyL3/MCRbrFotRPQZo7UdydGXZWw+CKbNOw5Ow8gwAo93/nB/Cg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -10584,8 +10677,8 @@ packages: - zod dev: false - /viem@2.0.3(typescript@5.3.3): - resolution: {integrity: sha512-9r+CMEA0zf8QCvCobTUX4vhP9x0t7wRjHbadfHDHw8ULjnzwoQc1Yc1pK99GtqK4hv5hKacDe78dibg80p/a+A==} + /viem@2.7.16(typescript@5.3.3): + resolution: {integrity: sha512-yOPa9yaoJUm44m0Qe3ugHnkHol3QQlFxN3jT+bq+lQip7X7cWdPfmguyfLWX2viCXcmYZUDiQdeFbkPW9lw11Q==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -10597,7 +10690,7 @@ packages: '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 '@scure/bip39': 1.2.1 - abitype: 0.10.0(typescript@5.3.3) + abitype: 1.0.0(typescript@5.3.3) isows: 1.0.3(ws@8.13.0) typescript: 5.3.3 ws: 8.13.0 @@ -10614,6 +10707,12 @@ packages: /web-streams-polyfill@3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} + dev: true + + /web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + dev: false /web-streams-polyfill@4.0.0-beta.3: resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} @@ -10624,8 +10723,8 @@ packages: resolution: {integrity: sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==} dev: false - /webcrypto-core@1.7.7: - resolution: {integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==} + /webcrypto-core@1.7.8: + resolution: {integrity: sha512-eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg==} dependencies: '@peculiar/asn1-schema': 2.3.8 '@peculiar/json-schema': 1.1.12 @@ -10903,7 +11002,7 @@ packages: dependencies: '@types/fs-extra': 11.0.4 '@types/minimist': 1.2.5 - '@types/node': 18.19.8 + '@types/node': 18.19.21 '@types/ps-tree': 1.1.6 '@types/which': 3.0.3 chalk: 5.3.0 diff --git a/src/components/modules/comment/CommentMarkdown.tsx b/src/components/modules/comment/CommentMarkdown.tsx index 88b6a225b7..5644c094d2 100644 --- a/src/components/modules/comment/CommentMarkdown.tsx +++ b/src/components/modules/comment/CommentMarkdown.tsx @@ -1,7 +1,6 @@ import type { MarkdownToJSX } from '~/components/ui/markdown' import type { FC } from 'react' -import { HighLighter } from '~/components/ui/code-highlighter' import { Markdown } from '~/components/ui/markdown' const disabledTypes = [ @@ -24,19 +23,6 @@ export const CommentMarkdown: FC<{ disableParsingRawHTML forceBlock value={children} - extendsRules={{ - codeBlock: { - react(node, output, state) { - return ( - - ) - }, - }, - }} /> ) } diff --git a/src/components/modules/dashboard/writing/MetaKeyValueEditSection.tsx b/src/components/modules/dashboard/writing/MetaKeyValueEditSection.tsx index 0c68f3d68d..10087321cd 100644 --- a/src/components/modules/dashboard/writing/MetaKeyValueEditSection.tsx +++ b/src/components/modules/dashboard/writing/MetaKeyValueEditSection.tsx @@ -4,7 +4,7 @@ import type { FC } from 'react' import { StyledButton } from '~/components/ui/button' import { CodeEditor } from '~/components/ui/code-editor' -import { HighLighter } from '~/components/ui/code-highlighter' +import { HighLighterPrismCdn } from '~/components/ui/code-highlighter' import { useModalStack } from '~/components/ui/modal' import { useEventCallback } from '~/hooks/common/use-event-callback' import { toast } from '~/lib/toast' @@ -58,7 +58,7 @@ export const MetaKeyValueEditSection: FC = ( 编辑 - + ) } diff --git a/src/components/modules/shared/AutoResizeHeight.tsx b/src/components/modules/shared/AutoResizeHeight.tsx index 3491923f80..fac7cb8b9f 100644 --- a/src/components/modules/shared/AutoResizeHeight.tsx +++ b/src/components/modules/shared/AutoResizeHeight.tsx @@ -3,18 +3,22 @@ import React, { useEffect, useRef, useState } from 'react' import { m } from 'framer-motion' +import { microDampingPreset } from '~/constants/spring' import { clsxm } from '~/lib/helper' interface AnimateChangeInHeightProps { children: React.ReactNode className?: string duration?: number + + spring?: boolean } export const AutoResizeHeight: React.FC = ({ children, className, duration = 0.6, + spring = false, }) => { const containerRef = useRef(null) const [height, setHeight] = useState('auto') @@ -42,7 +46,7 @@ export const AutoResizeHeight: React.FC = ({ style={{ height }} initial={false} animate={{ height }} - transition={{ duration }} + transition={spring ? microDampingPreset : { duration }} >
{children}
diff --git a/src/components/modules/shared/CodeBlock.tsx b/src/components/modules/shared/CodeBlock.tsx index e7f8d3ba16..4a117a0378 100644 --- a/src/components/modules/shared/CodeBlock.tsx +++ b/src/components/modules/shared/CodeBlock.tsx @@ -4,6 +4,8 @@ import { useIsomorphicLayoutEffect } from 'foxact/use-isomorphic-layout-effect' import dynamic from 'next/dynamic' import type { ReactNode } from 'react' +import { HighLighterPrismCdn } from '~/components/ui/code-highlighter' +import { isSupportedShikiLang } from '~/components/ui/code-highlighter/shiki/utils' import { ExcalidrawLoading } from '~/components/ui/excalidraw/ExcalidrawLoading' import { BlockLoading } from './BlockLoading' @@ -30,6 +32,8 @@ const ExcalidrawLazy = ({ data }: any) => { export const CodeBlockRender = (props: { lang: string | undefined content: string + + attrs?: string }) => { const Content = useMemo(() => { switch (props.lang) { @@ -50,12 +54,17 @@ export const CodeBlockRender = (props: { ) } default: { - const HighLighter = dynamic(() => - import('~/components/ui/code-highlighter/CodeHighlighter').then( - (mod) => mod.HighLighter, - ), - ) - return + const lang = props.lang + if (lang && isSupportedShikiLang(lang)) { + const ShikiHighLighter = dynamic(() => + import('~/components/ui/code-highlighter/shiki/Shiki').then( + (mod) => mod.ShikiHighLighter, + ), + ) + return + } + + return } } }, [props]) diff --git a/src/components/modules/shared/EmbedGithubFile.tsx b/src/components/modules/shared/EmbedGithubFile.tsx index 280610b7ba..8e05d15d40 100644 --- a/src/components/modules/shared/EmbedGithubFile.tsx +++ b/src/components/modules/shared/EmbedGithubFile.tsx @@ -1,7 +1,7 @@ import { useQuery } from '@tanstack/react-query' import React, { memo } from 'react' -import { HighLighter } from '../../ui/code-highlighter' +import { HighLighterPrismCdn } from '../../ui/code-highlighter' import { Loading } from '../../ui/loading' const ext2FileType = { @@ -108,7 +108,7 @@ export const EmbedGithubFile = memo( return (
- +
) }, diff --git a/src/components/ui/code-highlighter/CodeHighlighter.tsx b/src/components/ui/code-highlighter/CodeHighlighter.tsx index 1f3e3e9cae..80f1bf1b0b 100644 --- a/src/components/ui/code-highlighter/CodeHighlighter.tsx +++ b/src/components/ui/code-highlighter/CodeHighlighter.tsx @@ -3,14 +3,10 @@ import React, { useEffect, useInsertionEffect, useRef, - useState, } from 'react' -import clsx from 'clsx' import type { FC } from 'react' import { useIsPrintMode } from '~/atoms/css-media' -import { getViewport } from '~/atoms/hooks' -import { AutoResizeHeight } from '~/components/modules/shared/AutoResizeHeight' import { useIsDark } from '~/hooks/common/use-is-dark' import { clsxm } from '~/lib/helper' import { loadScript, loadStyleSheet } from '~/lib/load-script' @@ -29,7 +25,7 @@ interface Props { content: string } -export const HighLighter: FC = (props) => { +export const HighLighterPrismCdn: FC = (props) => { const { lang: language, content: value } = props const handleCopy = useCallback(() => { @@ -39,60 +35,20 @@ export const HighLighter: FC = (props) => { const ref = useRef(null) useLoadHighlighter(ref) - - const codeBlockRef = useRef(null) - - const [isCollapsed, setIsCollapsed] = useState(true) - const [isOverflow, setIsOverflow] = useState(false) - useEffect(() => { - const $el = codeBlockRef.current - if (!$el) return - - const windowHeight = getViewport().h - const halfWindowHeight = windowHeight / 2 - const $elScrollHeight = $el.scrollHeight - if ($elScrollHeight >= halfWindowHeight) { - setIsOverflow(true) - } else { - setIsOverflow(false) - } - }, [value]) return (
{language?.toUpperCase()} - -
+        
-          
-            {value}
-          
-        
- - {isOverflow && isCollapsed && ( -
- -
- )} -
+ {value} + +
Copy diff --git a/src/components/ui/code-highlighter/index.demo.tsx b/src/components/ui/code-highlighter/index.demo.tsx new file mode 100644 index 0000000000..8d7d011beb --- /dev/null +++ b/src/components/ui/code-highlighter/index.demo.tsx @@ -0,0 +1,201 @@ +import type { DocumentComponent } from 'storybook/typings' + +import { ShikiHighLighter as Shiki } from './shiki/Shiki' + +export const ShikiHighLighter: DocumentComponent = () => { + return ( + = (props) => { + const { lang: language, content: value, attrs } = props + + const handleCopy = useCallback(() => { + navigator.clipboard.writeText(value) + }, [value]) + + const [highlighter, setHighlighter] = useState(highlighterCore) + + useLayoutEffect(() => { + if (highlighterCore) { + return + } + ;(async () => { + const loaded = await getHighlighterCore({ + themes: [ + import('shiki/themes/github-light.mjs'), + import('shiki/themes/github-dark.mjs'), + ], + langs: [ + () => import('shiki/langs/javascript.mjs'), + () => import('shiki/langs/typescript.mjs'), + () => import('shiki/langs/css.mjs'), + () => import('shiki/langs/tsx.mjs'), + () => import('shiki/langs/jsx.mjs'), + () => import('shiki/langs/json.mjs'), + () => import('shiki/langs/sql.mjs'), + () => import('shiki/langs/rust.mjs'), + () => import('shiki/langs/go.mjs'), + () => import('shiki/langs/cpp.mjs'), + () => import('shiki/langs/c.mjs'), + () => import('shiki/langs/markdown.mjs'), + () => import('shiki/langs/vue.mjs'), + () => import('shiki/langs/html.mjs'), + ], + loadWasm: getWasm, + }) + setHighlighter(loaded) + highlighterCore = loaded + })() + }, []) + + const [codeBlockRef, setCodeBlockRef] = useState(null) + + const [isCollapsed, setIsCollapsed] = useState(true) + const [isOverflow, setIsOverflow] = useState(false) + useEffect(() => { + const $el = codeBlockRef + + if (!$el) return + + const windowHeight = getViewport().h + const halfWindowHeight = windowHeight / 2 + const $elScrollHeight = $el.scrollHeight + if ($elScrollHeight >= halfWindowHeight) { + setIsOverflow(true) + + $el.querySelector('.highlighted')?.scrollIntoView({ + block: 'center', + }) + } else { + setIsOverflow(false) + } + }, [value, codeBlockRef]) + + const renderedHtml = useMemo(() => { + if (!highlighter) return '' + return codeHighlighter(highlighter, { + attrs: attrs || '', + code: value, + lang: language || '', + }) + }, [attrs, language, value, highlighter]) + + const filename = useMemo(() => { + return parseFilenameFromAttrs(attrs || '') + }, [attrs]) + const [, maskClassName] = useMaskScrollArea({ + element: codeBlockRef!, + size: 'lg', + }) + + return ( +
+ {!!filename && ( +
+ {filename} + + {language?.toUpperCase()} + +
+ )} + + {!filename && !!language && ( +
+ {language.toUpperCase()} +
+ )} +
+ + + + +
+ {renderedHtml ? undefined : ( +
+                  {value}
+                
+ )} +
+ + {isOverflow && isCollapsed && ( +
+ +
+ )} +
+
+
+ ) + } + `} + lang="tsx" + attrs='filename="ShikiHighLighter.tsx" {3,4}' + /> + ) +} diff --git a/src/components/ui/code-highlighter/index.ts b/src/components/ui/code-highlighter/index.ts index 49dad4d83f..414ff583be 100644 --- a/src/components/ui/code-highlighter/index.ts +++ b/src/components/ui/code-highlighter/index.ts @@ -1 +1,3 @@ export * from './CodeHighlighter' + +// export * from './Shiki' diff --git a/src/components/ui/code-highlighter/shiki/Shiki.module.css b/src/components/ui/code-highlighter/shiki/Shiki.module.css new file mode 100644 index 0000000000..0ef2abbde6 --- /dev/null +++ b/src/components/ui/code-highlighter/shiki/Shiki.module.css @@ -0,0 +1,35 @@ +.code-card { + @apply relative my-6 overflow-hidden rounded-md; + :global { + pre { + @apply !m-0 !p-0; + + font-size: min(1em, 16px); + } + + pre code { + @apply flex flex-col; + } + + .shiki, + code { + @apply !bg-transparent; + } + + .line { + @apply block px-4; + } + + .highlighted { + @apply relative break-all bg-accent/20; + white-space: pre-wrap; + word-wrap: break-word; + overflow: auto; + + &::before { + @apply absolute left-0 top-0 h-full w-[2px] bg-accent; + content: ''; + } + } + } +} diff --git a/src/components/ui/code-highlighter/shiki/Shiki.tsx b/src/components/ui/code-highlighter/shiki/Shiki.tsx new file mode 100644 index 0000000000..71bb87bd17 --- /dev/null +++ b/src/components/ui/code-highlighter/shiki/Shiki.tsx @@ -0,0 +1,188 @@ +import { + useCallback, + useEffect, + useLayoutEffect, + useMemo, + useState, +} from 'react' +import clsx from 'clsx' +import { getHighlighterCore } from 'shiki' +import getWasm from 'shiki/wasm' +import type { FC } from 'react' +import type { HighlighterCore } from 'shiki' + +import { getViewport } from '~/atoms/hooks' +import { AutoResizeHeight } from '~/components/modules/shared/AutoResizeHeight' +import { useMaskScrollArea } from '~/hooks/shared/use-mask-scrollarea' +import { clsxm } from '~/lib/helper' + +import { MotionButtonBase } from '../../button' +import styles from './Shiki.module.css' +import { codeHighlighter, parseFilenameFromAttrs } from './utils' + +interface Props { + lang: string | undefined + content: string + + attrs?: string +} + +let highlighterCore: HighlighterCore | null = null + +export const ShikiHighLighter: FC = (props) => { + const { lang: language, content: value, attrs } = props + + const handleCopy = useCallback(() => { + navigator.clipboard.writeText(value) + }, [value]) + + const [highlighter, setHighlighter] = useState(highlighterCore) + + useLayoutEffect(() => { + if (highlighterCore) { + return + } + ;(async () => { + const loaded = await getHighlighterCore({ + themes: [ + import('shiki/themes/github-light.mjs'), + import('shiki/themes/github-dark.mjs'), + ], + langs: [ + () => import('shiki/langs/javascript.mjs'), + () => import('shiki/langs/typescript.mjs'), + () => import('shiki/langs/css.mjs'), + () => import('shiki/langs/tsx.mjs'), + () => import('shiki/langs/jsx.mjs'), + () => import('shiki/langs/json.mjs'), + () => import('shiki/langs/sql.mjs'), + () => import('shiki/langs/rust.mjs'), + () => import('shiki/langs/go.mjs'), + () => import('shiki/langs/cpp.mjs'), + () => import('shiki/langs/c.mjs'), + () => import('shiki/langs/markdown.mjs'), + () => import('shiki/langs/vue.mjs'), + () => import('shiki/langs/html.mjs'), + ], + loadWasm: getWasm, + }) + setHighlighter(loaded) + highlighterCore = loaded + })() + }, []) + + const [codeBlockRef, setCodeBlockRef] = useState(null) + + const [isCollapsed, setIsCollapsed] = useState(true) + const [isOverflow, setIsOverflow] = useState(false) + useEffect(() => { + const $el = codeBlockRef + + if (!$el) return + + const windowHeight = getViewport().h + const halfWindowHeight = windowHeight / 2 + const $elScrollHeight = $el.scrollHeight + if ($elScrollHeight >= halfWindowHeight) { + setIsOverflow(true) + + $el.querySelector('.highlighted')?.scrollIntoView({ + block: 'center', + }) + } else { + setIsOverflow(false) + } + }, [value, codeBlockRef]) + + const renderedHtml = useMemo(() => { + if (!highlighter) return '' + return codeHighlighter(highlighter, { + attrs: attrs || '', + code: value, + lang: language || '', + }) + }, [attrs, language, value, highlighter]) + + const filename = useMemo(() => { + return parseFilenameFromAttrs(attrs || '') + }, [attrs]) + const [, maskClassName] = useMaskScrollArea({ + element: codeBlockRef!, + size: 'lg', + }) + + return ( +
+ {!!filename && ( +
+ {filename} + + {language?.toUpperCase()} + +
+ )} + + {!filename && !!language && ( +
+ {language.toUpperCase()} +
+ )} +
+ + + + +
+ {renderedHtml ? undefined : ( +
+                {value}
+              
+ )} +
+ + {isOverflow && isCollapsed && ( +
+ +
+ )} +
+
+
+ ) +} diff --git a/src/components/ui/code-highlighter/shiki/utils.tsx b/src/components/ui/code-highlighter/shiki/utils.tsx new file mode 100644 index 0000000000..ba42fa3bc3 --- /dev/null +++ b/src/components/ui/code-highlighter/shiki/utils.tsx @@ -0,0 +1,79 @@ +import type { + BundledLanguage, + BundledTheme, + CodeToHastOptions, + HighlighterCore, +} from 'shiki' + +import { + transformerMetaHighlight, + transformerNotationDiff, + transformerNotationHighlight, + transformerNotationWordHighlight, +} from '@shikijs/transformers' + +export function codeHighlighter( + highlighter: HighlighterCore, + { + lang, + attrs, + code, + }: { + lang: string + attrs: string + code: string + }, +) { + const codeOptions: CodeToHastOptions = { + lang, + meta: { + __raw: attrs, + }, + themes: { + light: 'github-light', + dark: 'github-dark', + }, + } + + return highlighter.codeToHtml(code, { + ...codeOptions, + transformers: [ + ...(codeOptions.transformers || []), + transformerNotationDiff(), + transformerNotationHighlight(), + transformerNotationWordHighlight(), + transformerMetaHighlight(), + ], + }) +} + +export const parseFilenameFromAttrs = (attrs: string) => { + // filename="" + + const match = attrs.match(/filename="([^"]+)"/) + if (match) { + return match[1] + } + return null +} + +export const isSupportedShikiLang = (lang: string) => { + return [ + 'javascript', + 'typescript', + 'ts', + 'js', + 'css', + 'tsx', + 'jsx', + 'json', + 'sql', + 'markdown', + 'vue', + 'rust', + 'go', + 'cpp', + 'c', + 'html', + ].includes(lang) +} diff --git a/src/components/ui/editor/Milkdown/plugins/test.tsx b/src/components/ui/editor/Milkdown/plugins/test.tsx deleted file mode 100644 index 8e99f2d49a..0000000000 --- a/src/components/ui/editor/Milkdown/plugins/test.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { useNodeViewContext } from '@prosemirror-adapter/react' -import { visit } from 'unist-util-visit' -import type { Root } from 'mdast' -import type { Plugin } from 'unified' - -import { $markSchema } from '@milkdown/utils' - -interface Options { - text?: boolean - inlineCode?: boolean - link?: boolean - image?: boolean - definition?: boolean - imageReference?: boolean -} - -const defaultOptions: Options = { - text: true, - inlineCode: false, - link: true, - image: true, - definition: true, - imageReference: true, -} - -function format(value: string) { - if (!value) return value - return `${value}formated` -} - -export const remarkPangu: Plugin<[], Root> = - (options = {}) => - (tree: Root) => { - visit(tree, 'text', (node, index, parent) => { - const value = node.value as string - console.log('texdt', node.value) - const matches = value.match(/\|\|(.*?)\|\|/) - if (matches) { - console.log('matches', matches) - const before = value.slice(0, matches.index) - - if (!matches.index) return - const after = value.slice(matches.index + matches[0].length) - const strikethrough = { - type: 'strikethrough', - children: [{ type: 'text', value: matches[1] }], - } - - // Replace current node with multiple nodes if necessary - const nodes = [] - if (before) { - nodes.push({ type: 'text', value: before }) - } - nodes.push(strikethrough) - if (after) { - nodes.push({ type: 'text', value: after }) - } - parent.children.splice(index, 1, ...nodes) - } - }) - } - -export const strikethroughNode = $markSchema('strikethrough', (ctx) => ({ - attrs: { - marker: { - default: '|', - }, - }, - - parseMarkdown: { - match: (node) => { - return node.type === 'strikethrough' - }, - runner: (state, node, type) => { - // console.log('node strikethrough', node) - // state.addNode(type, { children: node.children }) - state.openMark(type) - state.next(node.children) - state.closeMark(type) - }, - }, - toMarkdown: { - match: (node) => node.type.name === 'strikethrough', - runner: (state, node) => { - state.addNode('strikethrough', undefined, undefined, { - name: 'strikethrough', - attributes: {}, - }) - }, - }, -})) - -export const Strikethrough = (props) => { - const { contentRef, node, view, setAttrs } = useNodeViewContext() - console.log('node', node, props) - // console.log('aaaaa', useNodeViewContext()) - return DDDDDDDDDDDDDDDDDDDDDDDDD -} diff --git a/src/components/ui/excalidraw/Excalidraw.tsx b/src/components/ui/excalidraw/Excalidraw.tsx index 7b11181e8f..5e9058dc17 100644 --- a/src/components/ui/excalidraw/Excalidraw.tsx +++ b/src/components/ui/excalidraw/Excalidraw.tsx @@ -190,7 +190,7 @@ const ExcalidrawImpl = forwardRef( api.scrollToContent(undefined, { fitToContent: true, }) - }, 1000) + }, 300) onReady?.(api) }} diff --git a/src/components/ui/form/FormInput.tsx b/src/components/ui/form/FormInput.tsx index 4577771a26..90d4699c1c 100644 --- a/src/components/ui/form/FormInput.tsx +++ b/src/components/ui/form/FormInput.tsx @@ -70,7 +70,6 @@ export const FormInput: FC< return ( <> = ) }, }, + codeFenced: { + parse(capture /* , parse, state */) { + return { + content: capture[4], + lang: capture[2] || undefined, + type: 'codeBlock', + + attrs: capture[3], + } + }, + }, + codeBlock: { react(node, output, state) { return ( @@ -230,10 +242,23 @@ export const Markdown: FC = key={state?.key} content={node.content} lang={node.lang} + attrs={node?.attrs} /> ) }, }, + codeInline: { + react(node, output, state) { + return ( + + {node.content} + + ) + }, + }, list: { react(node, output, state) { diff --git a/src/components/ui/markdown/index.demo.tsx b/src/components/ui/markdown/index.demo.tsx index dd4c272bf6..44f92d9da3 100644 --- a/src/components/ui/markdown/index.demo.tsx +++ b/src/components/ui/markdown/index.demo.tsx @@ -12,7 +12,7 @@ import { BlockLoading } from '~/components/modules/shared/BlockLoading' import { Mermaid } from '~/components/modules/shared/Mermaid' import { ExcalidrawLoading } from '~/components/ui/excalidraw/ExcalidrawLoading' -import { HighLighter } from '../code-highlighter' +import { ShikiHighLighter } from '../code-highlighter/shiki/Shiki' // @ts-expect-error import customize from './customize.md?raw' import { Markdown } from './Markdown' @@ -41,6 +41,8 @@ const ExcalidrawLazy = ({ data }: any) => { const CodeBlockRender = (props: { lang: string | undefined content: string + + attrs?: string }) => { const Content = useMemo(() => { switch (props.lang) { @@ -54,7 +56,7 @@ const CodeBlockRender = (props: { return } default: { - return + return } } }, [props]) diff --git a/src/components/ui/markdown/markdown.module.css b/src/components/ui/markdown/markdown.module.css index e0a6f97a1d..20340c1385 100644 --- a/src/components/ui/markdown/markdown.module.css +++ b/src/components/ui/markdown/markdown.module.css @@ -97,13 +97,9 @@ @apply cursor-not-allowed; } - :not(pre) code { - @apply rounded-md bg-zinc-200 px-2 font-mono dark:bg-neutral-800; - } - - pre { + /* pre { @apply min-w-0 max-w-full flex-shrink flex-grow overflow-x-auto; - } + } */ p { @apply break-words; diff --git a/src/hooks/shared/use-mask-scrollarea.ts b/src/hooks/shared/use-mask-scrollarea.ts index dcf36ffee1..4dc731d428 100644 --- a/src/hooks/shared/use-mask-scrollarea.ts +++ b/src/hooks/shared/use-mask-scrollarea.ts @@ -1,4 +1,4 @@ -import { useEffect, useRef, useState } from 'react' +import { useCallback, useEffect, useRef, useState } from 'react' import clsx from 'clsx' import { useViewport } from '~/atoms/hooks' @@ -6,15 +6,36 @@ import { useViewport } from '~/atoms/hooks' import { useEventCallback } from '../common/use-event-callback' const THRESHOLD = 0 -export const useMaskScrollArea = () => { +export const useMaskScrollArea = ({ + ref, + size = 'base', + element, + selector, +}: { + ref?: React.RefObject + element?: HTMLElement + size?: 'base' | 'lg' + selector?: string +} = {}) => { + console.log('useMaskScrollArea', element) const containerRef = useRef(null) const [isScrollToBottom, setIsScrollToBottom] = useState(false) const [isScrollToTop, setIsScrollToTop] = useState(false) const [canScroll, setCanScroll] = useState(false) const h = useViewport((v) => v.h) + const getDomRef = useCallback(() => { + let $ = containerRef.current || ref?.current || element + + if (!$) return + + if (selector) { + $ = $.querySelector(selector) as HTMLElement + } + return $ + }, [ref, selector, element]) const eventHandler = useEventCallback(() => { - const $ = containerRef.current + const $ = getDomRef() if (!$) return @@ -36,18 +57,24 @@ export const useMaskScrollArea = () => { setIsScrollToTop(isScrollToTop) }) useEffect(() => { - const $ = containerRef.current + const $ = getDomRef() if (!$) return + $.addEventListener('scroll', eventHandler) return () => { $.removeEventListener('scroll', eventHandler) } - }, [eventHandler]) + }, [eventHandler, getDomRef, element]) useEffect(() => { eventHandler() - }, [eventHandler, h]) + }, [eventHandler, h, element]) + + const postfixSize = { + base: '', + lg: '-lg', + }[size] return [ containerRef, @@ -56,7 +83,7 @@ export const useMaskScrollArea = () => { isScrollToBottom && 'mask-t', isScrollToTop && 'mask-b', !isScrollToBottom && !isScrollToTop && 'mask-both', - ) + ) + postfixSize : '', ] as const } diff --git a/src/styles/tailwindcss.css b/src/styles/tailwindcss.css index c607a252fc..96e5f272b4 100644 --- a/src/styles/tailwindcss.css +++ b/src/styles/tailwindcss.css @@ -109,3 +109,20 @@ a { .prose p:last-child { margin-bottom: 0; } + +.prose + :where(blockquote):not(:where([class~='not-prose'], [class~='not-prose'] *)) { + @apply relative border-0; + + &::before { + content: ''; + display: block; + width: 3px; + height: 100%; + position: absolute; + left: 0; + top: 0; + border-radius: 1em; + background-color: theme(colors.accent); + } +} diff --git a/src/styles/theme.css b/src/styles/theme.css index cc3127dedd..f0e13894ba 100644 --- a/src/styles/theme.css +++ b/src/styles/theme.css @@ -150,6 +150,14 @@ rgba(255, 255, 255, 0) 100% ); } +.mask-both-lg { + mask-image: linear-gradient( + rgba(255, 255, 255, 0) 0%, + rgb(255, 255, 255) 50px, + rgb(255, 255, 255) calc(100% - 50px), + rgba(255, 255, 255, 0) 100% + ); +} .mask-b { mask-image: linear-gradient( @@ -158,6 +166,13 @@ ); } +.mask-b-lg { + mask-image: linear-gradient( + rgb(255, 255, 255) calc(100% - 50px), + rgba(255, 255, 255, 0) 100% + ); +} + .mask-t { mask-image: linear-gradient( rgba(255, 255, 255, 0) 0%, @@ -165,6 +180,13 @@ ); } +.mask-t-lg { + mask-image: linear-gradient( + rgba(255, 255, 255, 0) 0%, + rgb(255, 255, 255) 50px + ); +} + .cover-mask-b { mask-image: linear-gradient(180deg, #fff -17.19%, #00000000 92.43%); } @@ -185,3 +207,12 @@ .excalidraw .Modal__content { @apply pointer-events-auto; } + +html[data-theme='dark'] .shiki, +html[data-theme='dark'] .shiki span { + color: var(--shiki-dark) !important; + /* Optional, if you also want font styles */ + font-style: var(--shiki-dark-font-style) !important; + font-weight: var(--shiki-dark-font-weight) !important; + text-decoration: var(--shiki-dark-text-decoration) !important; +}