From 03190d0e967a8235273e50fb88eeadef96ee59f8 Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Mon, 31 Mar 2025 09:53:59 -0500 Subject: [PATCH 01/18] =?UTF-8?q?docs:=20=F0=9F=93=9D=20Updated=20readme?= =?UTF-8?q?=20env=20vars=20naming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da4df42..3c1b150 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ Open your favourite text editor to edit the file. Here's an example for staging environent variable values: ```sh -PUBLIC_GRAPHQL_ENDPOINT="https://graphql.service.staging.fleeksandbox.xyz/graphql" +PUBLIC_GRAPHQL_API_URL="https://graphql.service.staging.fleeksandbox.xyz/graphql" PUBLIC_DYNAMIC_ENVIRONMENT_ID="c4d4ccad-9460-419c-9ca3-494488f8c892" ``` From 7dac5a4d7a941e457798524491739fdc89a0228d Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Mon, 31 Mar 2025 09:54:21 -0500 Subject: [PATCH 02/18] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20Move=20Dynamic?= =?UTF-8?q?=20css=20override=20to=20use=20simple=20multiline=20string?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/css/index.css | 112 ----------------------------- src/providers/DynamicProvider.tsx | 116 +++++++++++++++++++++++++++++- 2 files changed, 115 insertions(+), 113 deletions(-) delete mode 100644 src/css/index.css diff --git a/src/css/index.css b/src/css/index.css deleted file mode 100644 index cedb0b6..0000000 --- a/src/css/index.css +++ /dev/null @@ -1,112 +0,0 @@ -.dynamic-shadow-dom { - font-size: 16px; - - --dynamic-search-border-radius: 1em; - --dynamic-border-radius: 1.5em; - --dynamic-text-size-body-mini: 0.6875em; - --dynamic-text-size-body-normal: 0.9375em; - --dynamic-text-size-body-small: 0.75em; - --dynamic-text-size-button-primary: 0.875em; - --dynamic-text-size-button-secondary: 0.75em; - --dynamic-text-size-numbers-big: 0.875em; - --dynamic-text-size-numbers-medium: 0.75em; - --dynamic-text-size-title: 1.125em; - --dynamic-modal-width: 22.5em; - --dynamic-modal-padding: 1.5em; - --dynamic-wallet-list-tile-padding: 0.75em; - --dynamic-wallet-list-tile-gap: 0.375em; - --dynamic-wallet-list-max-height: 16.25em; - --dynamic-wallet-list-tile-border-radius: 0.75em; - --dynamic-initial-view-content-padding: 0em 1.5em 1.5em; - --dynamic-button-primary-font-size: 0.875em; - --dynamic-button-secondary-font-size: 0.75em; - --dynamic-search-padding: 0 1.5em 0.5em; - --dynamic-layout-content-padding: 0 1.5em 1.5em; - --dynamic-layout-content-error-padding: 1.5em 1.5em 1.5em; - --dynamic-footer-padding: 0.75em 1.5em 0.75em; - --dynamic-header-padding: 1.5em 1.5em 1.25em; -} - -.dynamic-shadow-dom .button--padding-login-screen-height { - height: 2.5em; -} - -.dynamic-shadow-dom .social-sign-in--tile { - height: 2.5em; -} - -.dynamic-shadow-dom .connect-with-wallet-button { - height: 2.5em; -} - -.dynamic-shadow-dom .input__container .input { - font-size: 0.9375em; -} - -.dynamic-shadow-dom .input__container .input__label { - font-size: 0.625em; -} - -.dynamic-shadow-dom .input__container--dense .input:placeholder-shown ~ .input__label { - font-size: 0.9375em; - top: 0.75em; -} - -.dynamic-shadow-dom .input__container--dense .input:focus ~ .input__label { - font-size: 0.625em; - top: 0.4375em; -} - -.dynamic-shadow-dom .input__container--dense .input { - padding: 1.125em 0.5em 0.375em; -} - -.dynamic-shadow-dom .powered-by-dynamic__logo { - margin-top: 0.0625em; - max-width: 3.6875em; - width: 3.6875em; -} - -.dynamic-shadow-dom .header__icon svg { - height: 1.5em; - width: 1.5em; -} - -.dynamic-shadow-dom .text-button { - font-size: 0.75em; -} - -.dynamic-shadow-dom .pin-input__input { - font-size: 1em; - height: 2.75em; - max-width: 2.75em; -} - -.dynamic-shadow-dom .search-instead__container { - font-size: .75em; - line-height: 1em; - margin-top: 2.5em; - padding-bottom: 1em; -} - -.dynamic-shadow-dom .search-icon__container { - height: 1em; - width: 1em; -} - -.dynamic-shadow-dom .search__container { - gap: .625em; - height: 2.625em; - min-height: 2.25em; - padding-left: .75em; - padding-right: .75em; -} - -.dynamic-shadow-dom .icon--size-mini { - height: 1.25em; - width: 1.25em; -} - -.dynamic-shadow-dom .qr-code-wrapper__scan-issue-button { - font-size: .75em; -} diff --git a/src/providers/DynamicProvider.tsx b/src/providers/DynamicProvider.tsx index 782922e..ee0e38f 100644 --- a/src/providers/DynamicProvider.tsx +++ b/src/providers/DynamicProvider.tsx @@ -15,7 +15,6 @@ import { cookies } from '../utils/cookies'; import type { LoginProviderChildrenProps } from './LoginProvider'; import { clearUserSessionKeys } from '../utils/browser'; import { decodeAccessToken, truncateMiddle } from '../utils/token'; -import cssOverrides from '../css/index.css'; import { hasLocalStorageItems } from '../utils/store'; import { debounce } from 'lodash-es'; @@ -356,3 +355,118 @@ export const DynamicProvider: FC = ({ children, graphqlApi ); }; + +const cssOverrides = ` +.dynamic-shadow-dom { + font-size: 16px; + + --dynamic-search-border-radius: 1em; + --dynamic-border-radius: 1.5em; + --dynamic-text-size-body-mini: 0.6875em; + --dynamic-text-size-body-normal: 0.9375em; + --dynamic-text-size-body-small: 0.75em; + --dynamic-text-size-button-primary: 0.875em; + --dynamic-text-size-button-secondary: 0.75em; + --dynamic-text-size-numbers-big: 0.875em; + --dynamic-text-size-numbers-medium: 0.75em; + --dynamic-text-size-title: 1.125em; + --dynamic-modal-width: 22.5em; + --dynamic-modal-padding: 1.5em; + --dynamic-wallet-list-tile-padding: 0.75em; + --dynamic-wallet-list-tile-gap: 0.375em; + --dynamic-wallet-list-max-height: 16.25em; + --dynamic-wallet-list-tile-border-radius: 0.75em; + --dynamic-initial-view-content-padding: 0em 1.5em 1.5em; + --dynamic-button-primary-font-size: 0.875em; + --dynamic-button-secondary-font-size: 0.75em; + --dynamic-search-padding: 0 1.5em 0.5em; + --dynamic-layout-content-padding: 0 1.5em 1.5em; + --dynamic-layout-content-error-padding: 1.5em 1.5em 1.5em; + --dynamic-footer-padding: 0.75em 1.5em 0.75em; + --dynamic-header-padding: 1.5em 1.5em 1.25em; +} + +.dynamic-shadow-dom .button--padding-login-screen-height { + height: 2.5em; +} + +.dynamic-shadow-dom .social-sign-in--tile { + height: 2.5em; +} + +.dynamic-shadow-dom .connect-with-wallet-button { + height: 2.5em; +} + +.dynamic-shadow-dom .input__container .input { + font-size: 0.9375em; +} + +.dynamic-shadow-dom .input__container .input__label { + font-size: 0.625em; +} + +.dynamic-shadow-dom .input__container--dense .input:placeholder-shown ~ .input__label { + font-size: 0.9375em; + top: 0.75em; +} + +.dynamic-shadow-dom .input__container--dense .input:focus ~ .input__label { + font-size: 0.625em; + top: 0.4375em; +} + +.dynamic-shadow-dom .input__container--dense .input { + padding: 1.125em 0.5em 0.375em; +} + +.dynamic-shadow-dom .powered-by-dynamic__logo { + margin-top: 0.0625em; + max-width: 3.6875em; + width: 3.6875em; +} + +.dynamic-shadow-dom .header__icon svg { + height: 1.5em; + width: 1.5em; +} + +.dynamic-shadow-dom .text-button { + font-size: 0.75em; +} + +.dynamic-shadow-dom .pin-input__input { + font-size: 1em; + height: 2.75em; + max-width: 2.75em; +} + +.dynamic-shadow-dom .search-instead__container { + font-size: .75em; + line-height: 1em; + margin-top: 2.5em; + padding-bottom: 1em; +} + +.dynamic-shadow-dom .search-icon__container { + height: 1em; + width: 1em; +} + +.dynamic-shadow-dom .search__container { + gap: .625em; + height: 2.625em; + min-height: 2.25em; + padding-left: .75em; + padding-right: .75em; +} + +.dynamic-shadow-dom .icon--size-mini { + height: 1.25em; + width: 1.25em; +} + +.dynamic-shadow-dom .qr-code-wrapper__scan-issue-button { + font-size: .75em; +} +`; From 91a37a97e195199dfe2a87f7efe93fe188567b65 Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Mon, 31 Mar 2025 09:56:45 -0500 Subject: [PATCH 03/18] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20Replace=20buil?= =?UTF-8?q?d.ts=20with=20vite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.ts | 41 ----------------------------------------- package.json | 11 ++++++++--- vite.config.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 44 deletions(-) delete mode 100644 build.ts create mode 100644 vite.config.ts diff --git a/build.ts b/build.ts deleted file mode 100644 index 29c39b2..0000000 --- a/build.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { build, BuildOptions } from 'esbuild'; - -import { parseEnvVarsAsKeyVal } from './src/utils/env'; -import { defined } from './src/defined'; -import pkgJson from './package.json'; - -import type { Defined } from './src/defined'; - -const external = [...Object.keys(pkgJson.dependencies)]; - -const define = parseEnvVarsAsKeyVal({ - defined, -}); - -const main = async () => { - const buildOptions: BuildOptions = { - entryPoints: ['./src/index.ts'], - define, - bundle: true, - platform: 'browser', - target: 'esnext', - outfile: 'dist/bundle.js', - format: 'esm', - sourcemap: true, - external, - minify: true, - loader: { - '.css': 'text', - }, - }; - - try { - await build(buildOptions); - } catch (error) { - console.error('👹 Oops! Failed to bundle for some reason...'); - console.error(error); - process.exit(1); - } -}; - -main(); diff --git a/package.json b/package.json index c7f5c05..f7c812f 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ } }, "scripts": { - "build": "pnpm clean:dist && pnpm exec bun build.ts && pnpm run transpile", + "build": "pnpm clean:dist && vite build && pnpm run transpile", "changeset:add": "pnpm exec changeset", "changeset:status": "pnpm exec changeset status", "changeset:version": "pnpm exec changeset version", @@ -57,11 +57,16 @@ "@types/node": "^20", "@types/react": "^18.0.9", "@types/react-dom": "^18.0.9", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.21", "bun": "^1.1.45", - "esbuild": "^0.24.2", + "dotenv": "^16.4.7", "husky": "^9.1.7", "pino-pretty": "^13.0.0", - "typescript": "5.6.2" + "postcss": "^8.5.3", + "tailwindcss": "^4.0.17", + "typescript": "5.6.2", + "vite": "^6.2.3" }, "engines": { "node": ">=18", diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..e5c8b3b --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,41 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +import { defined as definedUtils } from './src/defined'; +import dotenv from 'dotenv'; + +dotenv.config(); + +const define = Object.keys(definedUtils).reduce((acc, key) => { + acc[`process.env.${key}`] = JSON.stringify(process.env[key]); + return acc; +}, {}); + +export default defineConfig({ + plugins: [react()], + build: { + outDir: 'dist', + sourcemap: true, + minify: 'esbuild', + lib: { + entry: './src/index.ts', + formats: ['es'], + fileName: 'bundle', + }, + // We're using using host version of react, prevents error on missmatched version + rollupOptions: { + external: ['react', 'react-dom'], + output: { + globals: { + react: 'React', + 'react-dom': 'ReactDOM', + }, + }, + }, + }, + define, + resolve: { + alias: { + '@': '/src', + }, + }, +}); From d844742cbc3e0e2e320aa5cb7bce2165a7dd51e9 Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Mon, 31 Mar 2025 09:59:52 -0500 Subject: [PATCH 04/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Added=20utils=20f?= =?UTF-8?q?or=20UI=20rendering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 5 +- pnpm-lock.yaml | 1213 ++++++++++++++++++++++++++++++++++---- src/utils/avatarColor.ts | 52 ++ src/utils/cn.ts | 4 + src/utils/uuid.ts | 1 + 5 files changed, 1161 insertions(+), 114 deletions(-) create mode 100644 src/utils/avatarColor.ts create mode 100644 src/utils/cn.ts create mode 100644 src/utils/uuid.ts diff --git a/package.json b/package.json index f7c812f..0f6f9dd 100644 --- a/package.json +++ b/package.json @@ -42,11 +42,14 @@ "@dynamic-labs/ethereum": "3.9.2", "@dynamic-labs/sdk-react-core": "3.9.2", "@fleek-platform/utils-token": "^0.2.2", + "@radix-ui/react-dropdown-menu": "^2.1.6", "@types/lodash-es": "^4.17.12", - "dotenv": "^16.4.7", + "clsx": "^2.1.1", "lodash-es": "^4.17.21", "react": "^18.3.1", "react-dom": "^18.3.1", + "react-icons": "^5.5.0", + "tailwind-merge": "^3.0.2", "viem": "^2.21.55", "zustand": "^5.0.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e847912..c500e88 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,12 +17,15 @@ importers: '@fleek-platform/utils-token': specifier: ^0.2.2 version: 0.2.3 + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.6 + version: 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 - dotenv: - specifier: ^16.4.7 - version: 16.4.7 + clsx: + specifier: ^2.1.1 + version: 2.1.1 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -32,6 +35,12 @@ importers: react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) + react-icons: + specifier: ^5.5.0 + version: 5.5.0(react@18.3.1) + tailwind-merge: + specifier: ^3.0.2 + version: 3.0.2 viem: specifier: ^2.21.55 version: 2.23.1(typescript@5.6.2)(zod@3.22.4) @@ -57,21 +66,36 @@ importers: '@types/react-dom': specifier: ^18.0.9 version: 18.3.5(@types/react@18.3.18) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0)) + autoprefixer: + specifier: ^10.4.21 + version: 10.4.21(postcss@8.5.3) bun: specifier: ^1.1.45 version: 1.2.2 - esbuild: - specifier: ^0.24.2 - version: 0.24.2 + dotenv: + specifier: ^16.4.7 + version: 16.4.7 husky: specifier: ^9.1.7 version: 9.1.7 pino-pretty: specifier: ^13.0.0 version: 13.0.0 + postcss: + specifier: ^8.5.3 + version: 8.5.3 + tailwindcss: + specifier: ^4.0.17 + version: 4.0.17 typescript: specifier: 5.6.2 version: 5.6.2 + vite: + specifier: ^6.2.3 + version: 6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0) packages: @@ -954,152 +978,152 @@ packages: '@emnapi/runtime@0.45.0': resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.1': + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.1': + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.1': + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.1': + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.1': + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.1': + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.1': + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.1': + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.1': + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.1': + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.1': + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.1': + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.1': + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.1': + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.1': + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.1': + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.25.1': + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.25.1': + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.25.1': + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.1': + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.1': + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.1': + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.1': + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.1': + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.25.1': + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1111,6 +1135,21 @@ packages: resolution: {integrity: sha512-GJNva0JzFnE4kZBm8/37ZhdlNUMGaoiyzdo45WoxhLhGK0DYoGxdwDGPmMcs7fALoE3EhvB/ZsbUuFiX/owBeg==} engines: {node: '>=18.18.2'} + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -1439,6 +1478,263 @@ packages: cpu: [x64] os: [win32] + '@radix-ui/primitive@1.1.1': + resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + + '@radix-ui/react-arrow@1.1.2': + resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.2': + resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-direction@1.1.0': + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.5': + resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.6': + resolution: {integrity: sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.2': + resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-menu@2.1.6': + resolution: {integrity: sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.2': + resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.4': + resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.2': + resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.0.2': + resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.2': + resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.1.2': + resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.0': + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.0': + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.0': + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/rect@1.1.0': + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + '@react-native-community/cli-clean@13.6.4': resolution: {integrity: sha512-nS1BJ+2Z+aLmqePxB4AYgJ+C/bgQt02xAgSYtCUv+lneRBGhL2tHRrK8/Iolp0y+yQoUtHHf4txYi90zGXLVfw==} @@ -1541,6 +1837,106 @@ packages: resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==} engines: {node: '>=14.15'} + '@rollup/rollup-android-arm-eabi@4.37.0': + resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.37.0': + resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.37.0': + resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.37.0': + resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.37.0': + resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.37.0': + resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.37.0': + resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.37.0': + resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.37.0': + resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.37.0': + resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.37.0': + resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': + resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.37.0': + resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.37.0': + resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.37.0': + resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.37.0': + resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.37.0': + resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.37.0': + resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.37.0': + resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.37.0': + resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} + cpu: [x64] + os: [win32] + '@scure/base@1.2.4': resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==} @@ -1660,6 +2056,21 @@ packages: resolution: {integrity: sha512-iUbTUwD4f4ibdLy5PWWb7ITEz4S4VAP9/mNjFhoRY3cKVVTDfmykrVTKjPOIHWzDgAmLtgrLvySIIC9ZBVENBw==} engines: {node: '>=18.0.0'} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.7': + resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/gensync@1.0.4': resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==} @@ -1719,6 +2130,12 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@vitejs/plugin-react@4.3.4': + resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + '@walletconnect/core@2.11.2': resolution: {integrity: sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g==} @@ -1872,6 +2289,10 @@ packages: argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -1894,6 +2315,13 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -2023,8 +2451,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001699: - resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} + caniuse-lite@1.0.30001707: + resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2076,6 +2504,10 @@ packages: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2317,8 +2749,8 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.1: + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} engines: {node: '>=18'} hasBin: true @@ -2450,6 +2882,9 @@ packages: peerDependencies: react: '>=16.8.0' + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -2485,6 +2920,10 @@ packages: resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -3129,6 +3568,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -3313,6 +3756,13 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + preact@10.25.4: resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==} @@ -3427,6 +3877,11 @@ packages: react-native: optional: true + react-icons@5.5.0: + resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==} + peerDependencies: + react: '*' + react-international-phone@4.2.5: resolution: {integrity: sha512-jXxeEG5jvwivwSb/ImIIwIH1lSGD6VSy4W2CaInBiXo2PWnDj2BTzC0sAyZzNJarT7NX9kPdUHyGyyfziS5Rpw==} peerDependencies: @@ -3467,11 +3922,41 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.6.3: + resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-shallow-renderer@16.15.0: resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -3567,6 +4052,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rollup@4.37.0: + resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -3689,6 +4179,10 @@ packages: sonic-boom@4.2.0: resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -3793,6 +4287,12 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + tailwind-merge@3.0.2: + resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==} + + tailwindcss@4.0.17: + resolution: {integrity: sha512-OErSiGzRa6rLiOvaipsDZvLMSpsBZ4ysB4f0VKGXUrjw2jfkJRd6kjRKV2+ZmTCNvwtvgdDam5D7w6WXsdLJZw==} + temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -4043,6 +4543,46 @@ packages: typescript: optional: true + vite@6.2.3: + resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} @@ -5483,79 +6023,79 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.1': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm64@0.25.1': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm@0.25.1': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-x64@0.25.1': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/darwin-arm64@0.25.1': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-x64@0.25.1': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/freebsd-arm64@0.25.1': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-x64@0.25.1': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.1': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm@0.25.1': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-ia32@0.25.1': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-loong64@0.25.1': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-mips64el@0.25.1': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-ppc64@0.25.1': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-riscv64@0.25.1': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-s390x@0.25.1': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-x64@0.25.1': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@esbuild/netbsd-arm64@0.25.1': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@esbuild/netbsd-x64@0.25.1': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@esbuild/openbsd-arm64@0.25.1': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.1': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/sunos-x64@0.25.1': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/win32-arm64@0.25.1': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-ia32@0.25.1': optional: true - '@esbuild/win32-x64@0.24.2': + '@esbuild/win32-x64@0.25.1': optional: true '@fleek-platform/errors@2.8.0': @@ -5569,6 +6109,23 @@ snapshots: jscrypto: 1.0.3 nanoid: 3.3.8 + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.6.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/utils@0.2.9': {} + '@hapi/hoek@9.3.0': {} '@hapi/topo@5.1.0': @@ -5878,6 +6435,238 @@ snapshots: '@oven/bun-windows-x64@1.2.2': optional: true + '@radix-ui/primitive@1.1.1': {} + + '@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/rect': 1.1.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/rect@1.1.0': {} + '@react-native-community/cli-clean@13.6.4': dependencies: '@react-native-community/cli-tools': 13.6.4 @@ -6177,6 +6966,66 @@ snapshots: transitivePeerDependencies: - supports-color + '@rollup/rollup-android-arm-eabi@4.37.0': + optional: true + + '@rollup/rollup-android-arm64@4.37.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.37.0': + optional: true + + '@rollup/rollup-darwin-x64@4.37.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.37.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.37.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.37.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.37.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.37.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.37.0': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.37.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.37.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.37.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.37.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.37.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.37.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.37.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.37.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.37.0': + optional: true + '@scure/base@1.2.4': {} '@scure/bip32@1.6.2': @@ -6378,6 +7227,29 @@ snapshots: dependencies: sha256-uint8array: 0.10.7 + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.7 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.8 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + + '@types/babel__traverse@7.20.7': + dependencies: + '@babel/types': 7.26.8 + + '@types/estree@1.0.6': {} + '@types/gensync@1.0.4': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -6437,6 +7309,17 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@vitejs/plugin-react@4.3.4(vite@6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0))': + dependencies: + '@babel/core': 7.26.8 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.8) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.8) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + '@walletconnect/core@2.11.2': dependencies: '@walletconnect/heartbeat': 1.2.1 @@ -6872,6 +7755,10 @@ snapshots: dependencies: sprintf-js: 1.0.3 + aria-hidden@1.2.4: + dependencies: + tslib: 2.8.1 + array-union@2.1.0: {} asap@2.0.6: {} @@ -6886,6 +7773,16 @@ snapshots: atomic-sleep@1.0.0: {} + autoprefixer@10.4.21(postcss@8.5.3): + dependencies: + browserslist: 4.24.4 + caniuse-lite: 1.0.30001707 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.3 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 @@ -6965,7 +7862,7 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001699 + caniuse-lite: 1.0.30001707 electron-to-chromium: 1.5.97 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -7042,7 +7939,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001699: {} + caniuse-lite@1.0.30001707: {} chalk@4.1.2: dependencies: @@ -7104,6 +8001,8 @@ snapshots: clsx@1.2.1: {} + clsx@2.1.1: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -7331,33 +8230,33 @@ snapshots: dependencies: es-errors: 1.3.0 - esbuild@0.24.2: + esbuild@0.25.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.25.1 + '@esbuild/android-arm': 0.25.1 + '@esbuild/android-arm64': 0.25.1 + '@esbuild/android-x64': 0.25.1 + '@esbuild/darwin-arm64': 0.25.1 + '@esbuild/darwin-x64': 0.25.1 + '@esbuild/freebsd-arm64': 0.25.1 + '@esbuild/freebsd-x64': 0.25.1 + '@esbuild/linux-arm': 0.25.1 + '@esbuild/linux-arm64': 0.25.1 + '@esbuild/linux-ia32': 0.25.1 + '@esbuild/linux-loong64': 0.25.1 + '@esbuild/linux-mips64el': 0.25.1 + '@esbuild/linux-ppc64': 0.25.1 + '@esbuild/linux-riscv64': 0.25.1 + '@esbuild/linux-s390x': 0.25.1 + '@esbuild/linux-x64': 0.25.1 + '@esbuild/netbsd-arm64': 0.25.1 + '@esbuild/netbsd-x64': 0.25.1 + '@esbuild/openbsd-arm64': 0.25.1 + '@esbuild/openbsd-x64': 0.25.1 + '@esbuild/sunos-x64': 0.25.1 + '@esbuild/win32-arm64': 0.25.1 + '@esbuild/win32-ia32': 0.25.1 + '@esbuild/win32-x64': 0.25.1 escalade@3.2.0: {} @@ -7490,6 +8389,8 @@ snapshots: tiny-warning: 1.0.3 tslib: 1.14.1 + fraction.js@4.3.7: {} + fresh@0.5.2: {} fs-extra@7.0.1: @@ -7528,6 +8429,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -8272,6 +9175,8 @@ snapshots: normalize-path@3.0.0: {} + normalize-range@0.1.2: {} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -8459,6 +9364,14 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-value-parser@4.2.0: {} + + postcss@8.5.3: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + preact@10.25.4: {} prettier@2.8.8: {} @@ -8582,6 +9495,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-native: 0.74.0(@babel/core@7.26.8)(@babel/preset-env@7.26.8(@babel/core@7.26.8))(@types/react@18.3.18)(react@18.3.1) + react-icons@5.5.0(react@18.3.1): + dependencies: + react: 18.3.1 + react-international-phone@4.2.5(react@18.3.1): dependencies: react: 18.3.1 @@ -8655,12 +9572,39 @@ snapshots: react-refresh@0.14.2: {} + react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + react-shallow-renderer@16.15.0(react@18.3.1): dependencies: object-assign: 4.1.1 react: 18.3.1 react-is: 18.3.1 + react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -8761,6 +9705,32 @@ snapshots: dependencies: glob: 7.2.3 + rollup@4.37.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.37.0 + '@rollup/rollup-android-arm64': 4.37.0 + '@rollup/rollup-darwin-arm64': 4.37.0 + '@rollup/rollup-darwin-x64': 4.37.0 + '@rollup/rollup-freebsd-arm64': 4.37.0 + '@rollup/rollup-freebsd-x64': 4.37.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.37.0 + '@rollup/rollup-linux-arm-musleabihf': 4.37.0 + '@rollup/rollup-linux-arm64-gnu': 4.37.0 + '@rollup/rollup-linux-arm64-musl': 4.37.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.37.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-musl': 4.37.0 + '@rollup/rollup-linux-s390x-gnu': 4.37.0 + '@rollup/rollup-linux-x64-gnu': 4.37.0 + '@rollup/rollup-linux-x64-musl': 4.37.0 + '@rollup/rollup-win32-arm64-msvc': 4.37.0 + '@rollup/rollup-win32-ia32-msvc': 4.37.0 + '@rollup/rollup-win32-x64-msvc': 4.37.0 + fsevents: 2.3.3 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -8913,6 +9883,8 @@ snapshots: dependencies: atomic-sleep: 1.0.0 + source-map-js@1.2.1: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -8995,6 +9967,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + tailwind-merge@3.0.2: {} + + tailwindcss@4.0.17: {} + temp-dir@2.0.0: {} temp@0.8.4: @@ -9165,6 +10141,17 @@ snapshots: - utf-8-validate - zod + vite@6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0): + dependencies: + esbuild: 0.25.1 + postcss: 8.5.3 + rollup: 4.37.0 + optionalDependencies: + '@types/node': 20.17.17 + fsevents: 2.3.3 + terser: 5.38.1 + yaml: 2.7.0 + vlq@1.0.1: {} void-elements@3.1.0: {} diff --git a/src/utils/avatarColor.ts b/src/utils/avatarColor.ts new file mode 100644 index 0000000..d4e19ea --- /dev/null +++ b/src/utils/avatarColor.ts @@ -0,0 +1,52 @@ +const AVATAR_SIZE = 24; + +const hashCode = (name: string) => { + let hash = 0; + + for (let i = 0; i < name.length; i++) { + const character = name.charCodeAt(i); + hash = (hash << 5) - hash + character; + hash = hash & hash; // Convert to 32bit integer + } + + return Math.abs(hash); +}; + +const getRandomColor = (number: number, colors: string[], range: number) => { + return colors[number % range]; +}; + +const getDigit = (number: number, ntn: number) => { + return Math.floor((number / 10 ** ntn) % 10); +}; + +const getUnit = (number: number, range: number, index?: number) => { + const value = number % range; + + if (index && getDigit(number, index) % 2 === 0) { + return -value; + } + return value; +}; + +const ELEMENTS = 4; + +type GenerateColorsArgs = { + name: string; + colors: string[]; +}; + +export const generateColors = ({ name, colors }: GenerateColorsArgs) => { + const numFromName = hashCode(name); + const range = colors?.length; + + const elementsProperties = Array.from({ length: ELEMENTS }, (_, i) => ({ + color: getRandomColor(numFromName + i, colors, range), + translateX: getUnit(numFromName * (i + 1), AVATAR_SIZE / 10, 1), + translateY: getUnit(numFromName * (i + 1), AVATAR_SIZE / 10, 2), + scale: 1.2 + getUnit(numFromName * (i + 1), AVATAR_SIZE / 20) / 10, + rotate: getUnit(numFromName * (i + 1), 360, 1), + })); + + return elementsProperties; +}; diff --git a/src/utils/cn.ts b/src/utils/cn.ts new file mode 100644 index 0000000..91bbff2 --- /dev/null +++ b/src/utils/cn.ts @@ -0,0 +1,4 @@ +import { type ClassValue, clsx } from 'clsx'; +import { twMerge } from 'tailwind-merge'; + +export const cn = (...inputs: ClassValue[]) => twMerge(clsx(inputs)); diff --git a/src/utils/uuid.ts b/src/utils/uuid.ts new file mode 100644 index 0000000..d6e1bbe --- /dev/null +++ b/src/utils/uuid.ts @@ -0,0 +1 @@ +export const uuid = () => crypto.randomUUID(); From 711731a885637c59e67b506e3752037df464f3ca Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:00:09 -0500 Subject: [PATCH 05/18] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Add=20ui=20base=20?= =?UTF-8?q?elements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ui/AvatarMarble.tsx | 55 +++++++++++++++++++++++++++++++++++++++++ src/ui/Dropdown.tsx | 40 ++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 src/ui/AvatarMarble.tsx create mode 100644 src/ui/Dropdown.tsx diff --git a/src/ui/AvatarMarble.tsx b/src/ui/AvatarMarble.tsx new file mode 100644 index 0000000..b85e754 --- /dev/null +++ b/src/ui/AvatarMarble.tsx @@ -0,0 +1,55 @@ +import { generateColors } from '../utils/avatarColor'; +import { uuid } from '../utils/uuid'; +import type { ComponentProps } from 'react'; + +const AVATAR_SIZE = 80; + +type AvatarMarbleProps = ComponentProps<'svg'> & { + name?: string; +}; + +const colors = ['#FFFF57', '#7B7B7B', '#5ADBFF', '#FE9000', '#FFCAE9']; + +export const AvatarMarble: React.FC = ({ name = '', ...props }) => { + const properties = generateColors({ name, colors }); + const maskID = uuid(); + const filterID = `filter-${uuid()}`; + + return ( + + {name}'s avatar + + + + + + {Array.from({ length: 3 }).map((_, idx) => { + const id = idx + 1; + const isOverlay = id !== 1; + const basePath = 'M32.414 59.35L50.376 70.5H72.5v-71H33.728L26.5 13.381l19.057 27.08L32.414 59.35z'; + const overlayPath = 'M22.216 24L0 46.75l14.108 38.129L78 86l-3.081-59.276-22.378 4.005 12.972 20.186-23.35 27.395L22.215 24z'; + + return ( + + ); + })} + + + + + + + + + + ); +}; diff --git a/src/ui/Dropdown.tsx b/src/ui/Dropdown.tsx new file mode 100644 index 0000000..1119aa9 --- /dev/null +++ b/src/ui/Dropdown.tsx @@ -0,0 +1,40 @@ +import { + Item as BaseItem, + Portal, + Content as BaseContent, + type DropdownMenuContentProps, + type DropdownMenuItemProps, +} from '@radix-ui/react-dropdown-menu'; +import { cn } from '../utils/cn'; + +export const Content: React.FC = ({ children, className, ...props }) => { + return ( + + + {children} + + + ); +}; + +export const Item: React.FC = ({ children, className, ...props }) => { + return ( + + {children} + + ); +}; From c078f64ddaef8ab9b01a1cc7f0d824b7c2834862 Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:37:42 -0500 Subject: [PATCH 06/18] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Add=20AuthButton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AuthButton/AuthDropdown.tsx | 34 +++++++++++++ src/components/AuthButton/index.tsx | 55 ++++++++++++++++++++++ src/index.ts | 1 + 3 files changed, 90 insertions(+) create mode 100644 src/components/AuthButton/AuthDropdown.tsx create mode 100644 src/components/AuthButton/index.tsx diff --git a/src/components/AuthButton/AuthDropdown.tsx b/src/components/AuthButton/AuthDropdown.tsx new file mode 100644 index 0000000..eb401d1 --- /dev/null +++ b/src/components/AuthButton/AuthDropdown.tsx @@ -0,0 +1,34 @@ +import { DropdownMenuTrigger } from '@radix-ui/react-dropdown-menu'; + +import { Root } from '@radix-ui/react-dropdown-menu'; +import { FiLogOut } from 'react-icons/fi'; +import { AvatarMarble } from '../../ui/AvatarMarble'; +import { Content, Item } from '../../ui/Dropdown'; +import { useAuthStore } from '../../store/authStore'; +import type { LoginProviderChildrenProps } from '../../providers/LoginProvider'; + +type AuthDropdownProps = React.PropsWithChildren>; + +export const AuthDropdown = ({ children, ...props }: AuthDropdownProps) => { + const { logout } = props; + const { userProfile } = useAuthStore(); + + return ( + + + {userProfile?.avatar ? ( + Your avatar + ) : ( + + )} + + + {children} + +
Disconnect
+ +
+
+
+ ); +}; diff --git a/src/components/AuthButton/index.tsx b/src/components/AuthButton/index.tsx new file mode 100644 index 0000000..3599cc3 --- /dev/null +++ b/src/components/AuthButton/index.tsx @@ -0,0 +1,55 @@ +import type { ElementType, ComponentPropsWithoutRef, ReactNode } from 'react'; +import type { LoginProviderChildrenProps } from '../../providers/LoginProvider'; +import { AuthDropdown } from './AuthDropdown'; + +export interface AuthButtonProps extends LoginProviderChildrenProps { + text?: { + default?: string; + loading?: string; + error?: string; + loggedIn?: string; + }; + ButtonComponent?: T; + dropdown?: boolean; + children?: ReactNode; +} + +export const AuthButton = ({ + accessToken, + isLoading, + error, + login, + logout, + text, + ButtonComponent, + dropdown, + children, + ...props +}: AuthButtonProps & ComponentPropsWithoutRef) => { + const Button = ButtonComponent || 'button'; + + const handleClick = () => (accessToken ? logout() : login()); + + if (dropdown && accessToken) { + return {children}; + } + + // Default button texts + const defaultText = text?.default || 'Login'; + const loadingText = text?.loading || 'Loading...'; + const errorText = text?.error || 'Login failed'; + const loggedInText = text?.loggedIn || 'Log out'; + + // Determine the displayed text + let buttonText = defaultText; + if (isLoading) buttonText = loadingText; + if (error) buttonText = errorText; + if (accessToken) buttonText = loggedInText; + + // If not authenticated, render the simple button + return ( + + ); +}; diff --git a/src/index.ts b/src/index.ts index a22fb12..1d7d88e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,3 +10,4 @@ export { cookies } from './utils/cookies'; export type { AuthStore } from './store/authStore'; export type { ConfigStore } from './store/configStore'; +export { AuthButton } from './components/AuthButton'; From e6800b7c96f3e75d89c07cb854935af0284e1ae3 Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Mon, 31 Mar 2025 11:59:06 -0500 Subject: [PATCH 07/18] =?UTF-8?q?Revert=20"refactor:=20=F0=9F=92=A1=20Repl?= =?UTF-8?q?ace=20build.ts=20with=20vite"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 91a37a97e195199dfe2a87f7efe93fe188567b65. --- build.ts | 41 ++++ package.json | 12 +- pnpm-lock.yaml | 581 ++++++++++--------------------------------------- vite.config.ts | 41 ---- 4 files changed, 154 insertions(+), 521 deletions(-) create mode 100644 build.ts delete mode 100644 vite.config.ts diff --git a/build.ts b/build.ts new file mode 100644 index 0000000..29c39b2 --- /dev/null +++ b/build.ts @@ -0,0 +1,41 @@ +import { build, BuildOptions } from 'esbuild'; + +import { parseEnvVarsAsKeyVal } from './src/utils/env'; +import { defined } from './src/defined'; +import pkgJson from './package.json'; + +import type { Defined } from './src/defined'; + +const external = [...Object.keys(pkgJson.dependencies)]; + +const define = parseEnvVarsAsKeyVal({ + defined, +}); + +const main = async () => { + const buildOptions: BuildOptions = { + entryPoints: ['./src/index.ts'], + define, + bundle: true, + platform: 'browser', + target: 'esnext', + outfile: 'dist/bundle.js', + format: 'esm', + sourcemap: true, + external, + minify: true, + loader: { + '.css': 'text', + }, + }; + + try { + await build(buildOptions); + } catch (error) { + console.error('👹 Oops! Failed to bundle for some reason...'); + console.error(error); + process.exit(1); + } +}; + +main(); diff --git a/package.json b/package.json index 0f6f9dd..d57cd98 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ } }, "scripts": { - "build": "pnpm clean:dist && vite build && pnpm run transpile", + "build": "pnpm clean:dist && pnpm exec bun build.ts && pnpm run transpile", "changeset:add": "pnpm exec changeset", "changeset:status": "pnpm exec changeset status", "changeset:version": "pnpm exec changeset version", @@ -45,6 +45,7 @@ "@radix-ui/react-dropdown-menu": "^2.1.6", "@types/lodash-es": "^4.17.12", "clsx": "^2.1.1", + "dotenv": "^16.4.7", "lodash-es": "^4.17.21", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -60,16 +61,11 @@ "@types/node": "^20", "@types/react": "^18.0.9", "@types/react-dom": "^18.0.9", - "@vitejs/plugin-react": "^4.3.4", - "autoprefixer": "^10.4.21", "bun": "^1.1.45", - "dotenv": "^16.4.7", + "esbuild": "^0.24.2", "husky": "^9.1.7", "pino-pretty": "^13.0.0", - "postcss": "^8.5.3", - "tailwindcss": "^4.0.17", - "typescript": "5.6.2", - "vite": "^6.2.3" + "typescript": "5.6.2" }, "engines": { "node": ">=18", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c500e88..fa7ccba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + dotenv: + specifier: ^16.4.7 + version: 16.4.7 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -66,36 +69,21 @@ importers: '@types/react-dom': specifier: ^18.0.9 version: 18.3.5(@types/react@18.3.18) - '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.3.4(vite@6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0)) - autoprefixer: - specifier: ^10.4.21 - version: 10.4.21(postcss@8.5.3) bun: specifier: ^1.1.45 version: 1.2.2 - dotenv: - specifier: ^16.4.7 - version: 16.4.7 + esbuild: + specifier: ^0.24.2 + version: 0.24.2 husky: specifier: ^9.1.7 version: 9.1.7 pino-pretty: specifier: ^13.0.0 version: 13.0.0 - postcss: - specifier: ^8.5.3 - version: 8.5.3 - tailwindcss: - specifier: ^4.0.17 - version: 4.0.17 typescript: specifier: 5.6.2 version: 5.6.2 - vite: - specifier: ^6.2.3 - version: 6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0) packages: @@ -978,152 +966,152 @@ packages: '@emnapi/runtime@0.45.0': resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} - '@esbuild/aix-ppc64@0.25.1': - resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.1': - resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.1': - resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.1': - resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.1': - resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.1': - resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.1': - resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.1': - resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.1': - resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.1': - resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.1': - resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.1': - resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.1': - resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.1': - resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.1': - resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.1': - resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.1': - resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.1': - resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.1': - resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.1': - resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.1': - resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.1': - resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.1': - resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.1': - resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.1': - resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1837,106 +1825,6 @@ packages: resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==} engines: {node: '>=14.15'} - '@rollup/rollup-android-arm-eabi@4.37.0': - resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.37.0': - resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.37.0': - resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.37.0': - resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.37.0': - resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.37.0': - resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.37.0': - resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.37.0': - resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.37.0': - resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.37.0': - resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.37.0': - resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': - resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.37.0': - resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.37.0': - resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.37.0': - resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.37.0': - resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.37.0': - resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.37.0': - resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.37.0': - resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.37.0': - resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} - cpu: [x64] - os: [win32] - '@scure/base@1.2.4': resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==} @@ -2056,21 +1944,6 @@ packages: resolution: {integrity: sha512-iUbTUwD4f4ibdLy5PWWb7ITEz4S4VAP9/mNjFhoRY3cKVVTDfmykrVTKjPOIHWzDgAmLtgrLvySIIC9ZBVENBw==} engines: {node: '>=18.0.0'} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/gensync@1.0.4': resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==} @@ -2130,12 +2003,6 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@vitejs/plugin-react@4.3.4': - resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - '@walletconnect/core@2.11.2': resolution: {integrity: sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g==} @@ -2315,13 +2182,6 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -2749,8 +2609,8 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - esbuild@0.25.1: - resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} hasBin: true @@ -2882,9 +2742,6 @@ packages: peerDependencies: react: '>=16.8.0' - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -3568,10 +3425,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -3756,13 +3609,6 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - preact@10.25.4: resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==} @@ -4052,11 +3898,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.37.0: - resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -4179,10 +4020,6 @@ packages: sonic-boom@4.2.0: resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -4290,9 +4127,6 @@ packages: tailwind-merge@3.0.2: resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==} - tailwindcss@4.0.17: - resolution: {integrity: sha512-OErSiGzRa6rLiOvaipsDZvLMSpsBZ4ysB4f0VKGXUrjw2jfkJRd6kjRKV2+ZmTCNvwtvgdDam5D7w6WXsdLJZw==} - temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -4543,46 +4377,6 @@ packages: typescript: optional: true - vite@6.2.3: - resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} @@ -6023,79 +5817,79 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.1': + '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.25.1': + '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.25.1': + '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.25.1': + '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.25.1': + '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.25.1': + '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.25.1': + '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.25.1': + '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.25.1': + '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.25.1': + '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.25.1': + '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.25.1': + '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.25.1': + '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.25.1': + '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.25.1': + '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.25.1': + '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.25.1': + '@esbuild/linux-x64@0.24.2': optional: true - '@esbuild/netbsd-arm64@0.25.1': + '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.25.1': + '@esbuild/netbsd-x64@0.24.2': optional: true - '@esbuild/openbsd-arm64@0.25.1': + '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.25.1': + '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.25.1': + '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.25.1': + '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.25.1': + '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.25.1': + '@esbuild/win32-x64@0.24.2': optional: true '@fleek-platform/errors@2.8.0': @@ -6966,66 +6760,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/rollup-android-arm-eabi@4.37.0': - optional: true - - '@rollup/rollup-android-arm64@4.37.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.37.0': - optional: true - - '@rollup/rollup-darwin-x64@4.37.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.37.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.37.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.37.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.37.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.37.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.37.0': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.37.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.37.0': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.37.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.37.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.37.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.37.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.37.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.37.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.37.0': - optional: true - '@scure/base@1.2.4': {} '@scure/bip32@1.6.2': @@ -7227,29 +6961,6 @@ snapshots: dependencies: sha256-uint8array: 0.10.7 - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.26.8 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - - '@types/babel__traverse@7.20.7': - dependencies: - '@babel/types': 7.26.8 - - '@types/estree@1.0.6': {} - '@types/gensync@1.0.4': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -7309,17 +7020,6 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitejs/plugin-react@4.3.4(vite@6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0))': - dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.8) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - '@walletconnect/core@2.11.2': dependencies: '@walletconnect/heartbeat': 1.2.1 @@ -7773,16 +7473,6 @@ snapshots: atomic-sleep@1.0.0: {} - autoprefixer@10.4.21(postcss@8.5.3): - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001707 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.3 - postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 @@ -8230,33 +7920,33 @@ snapshots: dependencies: es-errors: 1.3.0 - esbuild@0.25.1: + esbuild@0.24.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.1 - '@esbuild/android-arm': 0.25.1 - '@esbuild/android-arm64': 0.25.1 - '@esbuild/android-x64': 0.25.1 - '@esbuild/darwin-arm64': 0.25.1 - '@esbuild/darwin-x64': 0.25.1 - '@esbuild/freebsd-arm64': 0.25.1 - '@esbuild/freebsd-x64': 0.25.1 - '@esbuild/linux-arm': 0.25.1 - '@esbuild/linux-arm64': 0.25.1 - '@esbuild/linux-ia32': 0.25.1 - '@esbuild/linux-loong64': 0.25.1 - '@esbuild/linux-mips64el': 0.25.1 - '@esbuild/linux-ppc64': 0.25.1 - '@esbuild/linux-riscv64': 0.25.1 - '@esbuild/linux-s390x': 0.25.1 - '@esbuild/linux-x64': 0.25.1 - '@esbuild/netbsd-arm64': 0.25.1 - '@esbuild/netbsd-x64': 0.25.1 - '@esbuild/openbsd-arm64': 0.25.1 - '@esbuild/openbsd-x64': 0.25.1 - '@esbuild/sunos-x64': 0.25.1 - '@esbuild/win32-arm64': 0.25.1 - '@esbuild/win32-ia32': 0.25.1 - '@esbuild/win32-x64': 0.25.1 + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 escalade@3.2.0: {} @@ -8389,8 +8079,6 @@ snapshots: tiny-warning: 1.0.3 tslib: 1.14.1 - fraction.js@4.3.7: {} - fresh@0.5.2: {} fs-extra@7.0.1: @@ -9175,8 +8863,6 @@ snapshots: normalize-path@3.0.0: {} - normalize-range@0.1.2: {} - npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -9364,14 +9050,6 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-value-parser@4.2.0: {} - - postcss@8.5.3: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - preact@10.25.4: {} prettier@2.8.8: {} @@ -9705,32 +9383,6 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.37.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.37.0 - '@rollup/rollup-android-arm64': 4.37.0 - '@rollup/rollup-darwin-arm64': 4.37.0 - '@rollup/rollup-darwin-x64': 4.37.0 - '@rollup/rollup-freebsd-arm64': 4.37.0 - '@rollup/rollup-freebsd-x64': 4.37.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.37.0 - '@rollup/rollup-linux-arm-musleabihf': 4.37.0 - '@rollup/rollup-linux-arm64-gnu': 4.37.0 - '@rollup/rollup-linux-arm64-musl': 4.37.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.37.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0 - '@rollup/rollup-linux-riscv64-gnu': 4.37.0 - '@rollup/rollup-linux-riscv64-musl': 4.37.0 - '@rollup/rollup-linux-s390x-gnu': 4.37.0 - '@rollup/rollup-linux-x64-gnu': 4.37.0 - '@rollup/rollup-linux-x64-musl': 4.37.0 - '@rollup/rollup-win32-arm64-msvc': 4.37.0 - '@rollup/rollup-win32-ia32-msvc': 4.37.0 - '@rollup/rollup-win32-x64-msvc': 4.37.0 - fsevents: 2.3.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -9883,8 +9535,6 @@ snapshots: dependencies: atomic-sleep: 1.0.0 - source-map-js@1.2.1: {} - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -9969,8 +9619,6 @@ snapshots: tailwind-merge@3.0.2: {} - tailwindcss@4.0.17: {} - temp-dir@2.0.0: {} temp@0.8.4: @@ -10141,17 +9789,6 @@ snapshots: - utf-8-validate - zod - vite@6.2.3(@types/node@20.17.17)(terser@5.38.1)(yaml@2.7.0): - dependencies: - esbuild: 0.25.1 - postcss: 8.5.3 - rollup: 4.37.0 - optionalDependencies: - '@types/node': 20.17.17 - fsevents: 2.3.3 - terser: 5.38.1 - yaml: 2.7.0 - vlq@1.0.1: {} void-elements@3.1.0: {} diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index e5c8b3b..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import { defined as definedUtils } from './src/defined'; -import dotenv from 'dotenv'; - -dotenv.config(); - -const define = Object.keys(definedUtils).reduce((acc, key) => { - acc[`process.env.${key}`] = JSON.stringify(process.env[key]); - return acc; -}, {}); - -export default defineConfig({ - plugins: [react()], - build: { - outDir: 'dist', - sourcemap: true, - minify: 'esbuild', - lib: { - entry: './src/index.ts', - formats: ['es'], - fileName: 'bundle', - }, - // We're using using host version of react, prevents error on missmatched version - rollupOptions: { - external: ['react', 'react-dom'], - output: { - globals: { - react: 'React', - 'react-dom': 'ReactDOM', - }, - }, - }, - }, - define, - resolve: { - alias: { - '@': '/src', - }, - }, -}); From b741ee3f4b4cf664d713fb3bc50ac7b8609d62b3 Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Tue, 1 Apr 2025 00:38:32 -0500 Subject: [PATCH 08/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Bring=20base=20ta?= =?UTF-8?q?ilwind=20configuration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tailwind/fonts.ts | 5 ++ .tailwind/gridLayout.ts | 3 + .tailwind/tailwind.config.utils.mjs | 12 +++ .tailwind/tailwind.custom.config.mjs | 104 +++++++++++++++++++++++ .tailwind/tailwind.plugin.grid.mjs | 74 ++++++++++++++++ .tailwind/tailwind.plugin.spacing.mjs | 58 +++++++++++++ .tailwind/tailwind.plugin.typography.mjs | 101 ++++++++++++++++++++++ .tailwind/tailwind.safelist.mjs | 10 +++ .tailwind/tokens.ts | 75 ++++++++++++++++ tailwind.config.mjs | 20 +++++ 10 files changed, 462 insertions(+) create mode 100644 .tailwind/fonts.ts create mode 100644 .tailwind/gridLayout.ts create mode 100644 .tailwind/tailwind.config.utils.mjs create mode 100644 .tailwind/tailwind.custom.config.mjs create mode 100644 .tailwind/tailwind.plugin.grid.mjs create mode 100644 .tailwind/tailwind.plugin.spacing.mjs create mode 100644 .tailwind/tailwind.plugin.typography.mjs create mode 100644 .tailwind/tailwind.safelist.mjs create mode 100644 .tailwind/tokens.ts create mode 100644 tailwind.config.mjs diff --git a/.tailwind/fonts.ts b/.tailwind/fonts.ts new file mode 100644 index 0000000..6653859 --- /dev/null +++ b/.tailwind/fonts.ts @@ -0,0 +1,5 @@ +export const fontFamily = { + 'sans': ['AtypDisplay'], + 'plex-sans': ['IBM Plex Sans'], + 'plex-mono': ['IBM Plex Mono'], +}; diff --git a/.tailwind/gridLayout.ts b/.tailwind/gridLayout.ts new file mode 100644 index 0000000..3d307f8 --- /dev/null +++ b/.tailwind/gridLayout.ts @@ -0,0 +1,3 @@ +export const gridTemplateColumns = { + 32: 'repeat(32, minmax(0, 1fr))', +}; diff --git a/.tailwind/tailwind.config.utils.mjs b/.tailwind/tailwind.config.utils.mjs new file mode 100644 index 0000000..9a0d93e --- /dev/null +++ b/.tailwind/tailwind.config.utils.mjs @@ -0,0 +1,12 @@ +const baseFontSizePx = 10; +const unitToRem = (val) => `${val}rem`; +const pxToRem = (val) => val / baseFontSizePx; +const pxToRemUnit = (val) => unitToRem(pxToRem(val)); +const appendPx = (val) => `${val}px`; + +export { + unitToRem, + pxToRem, + pxToRemUnit, + appendPx, +}; diff --git a/.tailwind/tailwind.custom.config.mjs b/.tailwind/tailwind.custom.config.mjs new file mode 100644 index 0000000..a0db5d6 --- /dev/null +++ b/.tailwind/tailwind.custom.config.mjs @@ -0,0 +1,104 @@ +import createSpacingPlugin from "./tailwind.plugin.spacing"; +import gridPlugin from "./tailwind.plugin.grid"; +import safelist from "./tailwind.safelist"; +import aspectRatioPlugin from "@tailwindcss/aspect-ratio"; + +export default function (usePx) { + const { plugin: spacingPlugin } = createSpacingPlugin(usePx); + + const generateSizes = (noUnits) => { + const max = 128; + const sizes = {}; + for (let i = 1; i <= max; i++) { + if (noUnits) { + sizes[i] = i.toString(); + } else { + sizes[i] = usePx ? `${i}px` : `${i / 10}rem`; + } + } + return sizes; + }; + + const aspectRatioSizes = () => { + const max = 32; + const sizes = {}; + for (let i = 1; i <= max; i++) { + sizes[i] = i.toString(); + } + return sizes; + }; + + return { + safelist, + theme: { + container: { + center: true, + }, + fontFamily: { + sans: ["sans-serif"], + serif: ["serif"], + }, + aspectRatio: aspectRatioSizes(), + borderRadius: { + none: "0", + full: "9999px", + ...generateSizes(), + }, + borderWidth: { + DEFAULT: usePx ? "1px" : "0.1rem", + 0: "0", + ...generateSizes(), + }, + fontSize: { + ...generateSizes(), + }, + letterSpacing: { + ...generateSizes(), + }, + zIndex: { + ...generateSizes(true), + }, + extend: { + boxShadow: { + sm: "0px 1px 1px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.12)", + soft: "0px 1px 1px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.12)", + dark: "0px 2px 8px 0px rgba(26, 26, 26, 0.25)", + 'glow': '0 0 15px 5px rgba(255, 255, 255, 0.6)', + }, + lineHeight: generateSizes(), + keyframes: { + blur: { + "0%": { filter: "blur(20px)" }, + "100%": { filter: "blur(0)" }, + }, + rock: { + "0%": { + transform: "rotate(-9deg)", + }, + "50%": { + transform: "rotate(-8deg)", + }, + "100%": { + transform: "rotate(-9deg)", + }, + }, + 'fade-in': { + '0%': { opacity: 0 }, + '100%': { opacity: 1 }, + }, + 'fade-in-down': { + '0%': { transform: 'translateY(2%)', opacity: 0 }, + '100%': { transform: 'translateY(0)', opacity: 1 }, + }, + }, + animation: { + "blur-out": "blur 0.6s ease-out", + "rock": "rock 1.2s infinite", + 'fade-in': 'fade-in 100ms ease-out', + 'fade-in-down': 'fade-in-down 120ms ease-out', + }, + }, + }, + plugins: [gridPlugin, spacingPlugin, aspectRatioPlugin], + }; +} diff --git a/.tailwind/tailwind.plugin.grid.mjs b/.tailwind/tailwind.plugin.grid.mjs new file mode 100644 index 0000000..5874949 --- /dev/null +++ b/.tailwind/tailwind.plugin.grid.mjs @@ -0,0 +1,74 @@ +import plugin from "tailwindcss/plugin"; +/** + * Creates a custom css grid with 24 columns instead of 12 columns, which are Tailwind default + */ + +const columns = 24; +const generateGridTemplateColumns = () => { + const ret = {}; + for (let i = 1; i <= columns; i++) { + ret[i] = `repeat(${i}, minmax(0, 1fr))`; + } + return ret; +}; + +const generateGridColumn = () => { + const ret = {}; + for (let i = 1; i <= columns; i++) { + ret["span-" + i] = `span ${i} / span ${i}`; + } + return ret; +}; + +const generateGridColumnStart = () => { + const ret = {}; + for (let i = 1; i <= columns; i++) { + ret[`${i}`] = `${i}`; + } + return ret; +}; + +const generateGridColumnEnd = () => { + const ret = {}; + for (let i = 1; i <= columns; i++) { + ret[`${i}`] = `${i}`; + } + return ret; +}; + +const generateGapSizes = () => { + const ret = {}; + for (let i = 1; i <= 78; i++) { + ret[i] = `${i / 10}rem`; + } + return ret; +}; + +const grid = plugin(function () {}, { + theme: { + gridTemplateColumns: { + ...generateGridTemplateColumns(), + }, + gridColumn: { + ...generateGridColumn(), + }, + gridColumnStart: { + ...generateGridColumnStart(), + }, + gridColumnEnd: { + ...generateGridColumnEnd(), + }, + gap: { + ...generateGapSizes(), + }, + }, + // variants: { + // gridTemplateColumns: ["responsive"], + // gridColumn: ["responsive"], + // gridColumnStart: ["responsive"], + // gridColumnEnd: ["responsive"], + // gap: ["responsive"], + // }, +}); + +export default grid; diff --git a/.tailwind/tailwind.plugin.spacing.mjs b/.tailwind/tailwind.plugin.spacing.mjs new file mode 100644 index 0000000..608b664 --- /dev/null +++ b/.tailwind/tailwind.plugin.spacing.mjs @@ -0,0 +1,58 @@ +import plugin from "tailwindcss/plugin"; +import { pxToRemUnit } from "./tailwind.config.utils"; + +export default function(usePx) { + /** + * Creates a custom spacing scale, where the classname maps + * 1:1 to its pixel value. Uses px to rem conversion under the hood. + * + * iE `w-16 => width: 16px | 1.6rem;` + * + * ``` + * 1-32 = 1px steps. + * 32-64 = 2px steps. + * 64-128 = 4px steps. + * 128-256 = 8px steps. + * 256-512 = 16px steps. + * 512-1024 = 32px steps. + * ``` + */ + const createScale = ({ min = 0, max = 100, steps = 1, valFM, keyFM }) => { + const limit = Math.round((max - min) / steps); + const scale = [...new Array(limit + 1)].map((_, i) => min + i * steps); + + return scale.reduce((prev, curr) => { + const key = keyFM ? keyFM(curr) : curr; + const val = valFM && curr !== 0 ? valFM(curr) : curr; + + return { ...prev, [String(key)]: val }; + }, {}); + }; + + const valFM = usePx ? (val) => val : pxToRemUnit; + + const spacing = { + ...createScale({ max: 32, steps: 1, valFM }), + ...createScale({ min: 32, max: 64, steps: 2, valFM }), + ...createScale({ min: 64, max: 128, steps: 4, valFM }), + ...createScale({ min: 128, max: 256, steps: 8, valFM }), + ...createScale({ min: 256, max: 512, steps: 16, valFM }), + ...createScale({ min: 512, max: 1024, steps: 32, valFM }), + }; + + const spacings = plugin(function () {}, { + theme: { + spacing, + extend: { + minWidth: spacing, + minHeight: spacing, + gap: spacing, + }, + }, + }); + + return { + pxToRemUnit, + plugin: spacings, + }; +}; diff --git a/.tailwind/tailwind.plugin.typography.mjs b/.tailwind/tailwind.plugin.typography.mjs new file mode 100644 index 0000000..3d12950 --- /dev/null +++ b/.tailwind/tailwind.plugin.typography.mjs @@ -0,0 +1,101 @@ +import plugin from "tailwindcss/plugin"; + +// define typography here so intellisense completion works +export default plugin(({ addComponents }) => { + addComponents({ + ".typo-h1": { + "@apply font-sans text-[12rem] font-medium leading-[100%]": + {}, + }, + ".typo-h2": { + "@apply font-sans text-[9rem] font-medium leading-[100%]": + {}, + }, + ".typo-h4": { + "@apply font-sans text-[6.1rem] font-medium leading-[100%]": {}, + }, + ".typo-h5": { + "@apply font-sans text-39 font-medium leading-[100%]": {}, + }, + ".typo-l": { + "@apply font-plex-sans text-20 leading-[150%]": {}, + }, + ".typo-xl": { + "@apply font-plex-sans text-25 font-normal leading-[150%]": {}, + }, + ".typo-xl-bold": { + "@apply font-plex-sans text-25 font-bold leading-[150%]": {}, + }, + ".typo-m": { + "@apply font-plex-sans text-16 leading-[150%]": {}, + }, + ".typo-m-normal": { + "@apply font-plex-sans text-16 font-normal leading-[150%] text-gray-dark-12": {}, + }, + ".typo-m-strong": { + "@apply font-plex-sans text-16 font-medium leading-[150%]": {}, + }, + ".typo-s": { + "@apply font-plex-sans text-13 font-normal leading-[150%]": {}, + }, + ".typo-caption-l": { + "@apply font-plex-sans text-20 font-medium uppercase leading-[150%] tracking-[0.4rem]": + {}, + }, + ".typo-caption-m": { + "@apply font-plex-sans text-16 font-medium uppercase leading-[150%] tracking-[0.32rem]": + {}, + }, + ".typo-caption-s": { + "@apply font-plex-sans text-13 font-medium uppercase leading-[150%] tracking-[0.256rem]": + {}, + }, + ".typo-caption-s-normal": { + "@apply font-plex-sans text-15 leading-[150%] tracking-[0.256rem]": + {}, + }, + ".typo-caption-xs": { + "@apply font-plex-sans text-10 font-normal uppercase leading-[150%] tracking-[0.02725rem]": + {}, + }, + ".typo-caption-text": { + "@apply font-plex-sans text-13 font-medium leading-[150%]": {}, + }, + ".typo-nav-m": { + "@apply font-plex-sans text-16 uppercase leading-[150%] tracking-[0.064rem]": + {}, + }, + ".typo-btn-action": { + "@apply font-plex-sans text-16 font-medium uppercase leading-[150%] tracking-[0.09rem]": + {}, + }, + ".typo-btn-cap": { + "@apply font-plex-sans text-16 font-normal leading-[150%] tracking-[0.0rem]": + {}, + }, + ".typo-btn-xs": { + "@apply font-plex-sans text-13 font-normal uppercase leading-[150%] tracking-[0.032rem]": + {}, + }, + ".typo-btn-xxs": { + "@apply font-plex-sans text-13 font-thin leading-[150%] tracking-[0.032rem]": + {}, + }, + ".typo-btn-s": { + "@apply font-plex-sans text-13 font-normal uppercase leading-[150%] tracking-[0.096rem]": + {}, + }, + ".typo-btn-s-normal": { + "@apply font-plex-sans text-13 font-normal leading-[150%] tracking-[0.096rem]": + {}, + }, + ".typo-btn-l": { + "@apply font-plex-sans text-16 font-medium uppercase leading-[150%] tracking-[0.192rem]": + {}, + }, + ".typo-btn-l-mid": { + "@apply font-plex-sans text-16 font-medium leading-[150%] tracking-[0.192rem]": + {}, + }, + }); +}); diff --git a/.tailwind/tailwind.safelist.mjs b/.tailwind/tailwind.safelist.mjs new file mode 100644 index 0000000..a29c8a2 --- /dev/null +++ b/.tailwind/tailwind.safelist.mjs @@ -0,0 +1,10 @@ +export default [ + "bg-white", + "hover:bg-white-hover", + "text-white", + "lazyload", + "lazyloading", + "lazyloaded", + "swiper-pagination", + "swiper-pagination-bullet-active", +]; diff --git a/.tailwind/tokens.ts b/.tailwind/tokens.ts new file mode 100644 index 0000000..c98f64e --- /dev/null +++ b/.tailwind/tokens.ts @@ -0,0 +1,75 @@ +export const colors = { + 'white': '#FFF', + 'black': '#000', + + /* Neutral */ + 'neutral-0': '#000000', + 'neutral-1': '#111111', + 'neutral-2': '#191919', + 'neutral-3': '#222222', + 'neutral-4': '#2A2A2A', + 'neutral-5': '#313131', + 'neutral-6': '#3A3A3A', + 'neutral-7': '#484848', + 'neutral-8': '#606060', + 'neutral-9': '#6E6E6E', + 'neutral-10': '#7B7B7B', + 'neutral-11': '#B4B4B4', + 'neutral-12': '#EEEEEE', + + /* Accent */ + 'accent-1': '#14120B', + 'accent-2': '#1B180F', + 'accent-3': '#2D2305', + 'accent-4': '#362B00', + 'accent-5': '#433500', + 'accent-6': '#524202', + 'accent-7': '#665417', + 'accent-8': '#836A21', + 'accent-9': '#FFE629', + 'accent-10': '#FFFF57', + 'accent-11': '#F5E147', + 'accent-12': '#F6EEB4', + + /* Success */ + 'success-1': '#0E1512', + 'success-2': '#121B17', + 'success-3': '#132D21', + 'success-4': '#113B29', + 'success-5': '#174933', + 'success-6': '#20573E', + 'success-7': '#28684A', + 'success-8': '#2F7C57', + 'success-9': '#30A46C', + 'success-10': '#33B074', + 'success-11': '#3DD68C', + 'success-12': '#B1F1CB', + + /* Warning */ + 'warning-1': '#16120C', + 'warning-2': '#1D180F', + 'warning-3': '#302008', + 'warning-4': '#3F2700', + 'warning-5': '#4D3000', + 'warning-6': '#5C3D05', + 'warning-7': '#714F19', + 'warning-8': '#8F6424', + 'warning-9': '#FFC53D', + 'warning-10': '#FFD60A', + 'warning-11': '#FFCA16', + 'warning-12': '#FFE7B3', + + /* Danger */ + 'danger-1': '#191111', + 'danger-2': '#201314', + 'danger-3': '#3B1219', + 'danger-4': '#500F1C', + 'danger-5': '#611623', + 'danger-6': '#72232D', + 'danger-7': '#8C333A', + 'danger-8': '#B54548', + 'danger-9': '#E5484D', + 'danger-10': '#EC5D5E', + 'danger-11': '#FF9592', + 'danger-12': '#FFD1D9', +}; diff --git a/tailwind.config.mjs b/tailwind.config.mjs new file mode 100644 index 0000000..b42093f --- /dev/null +++ b/tailwind.config.mjs @@ -0,0 +1,20 @@ +import tailwindCustomConfig from "./.tailwind/tailwind.custom.config"; +import tailwindAnimate from "tailwindcss-animate"; + +import { colors } from "./.tailwind/tokens"; +import { fontFamily } from "./.tailwind/fonts"; +import { gridTemplateColumns } from "./.tailwind/gridLayout"; + +export default { + mode: "jit", + presets: [tailwindCustomConfig], + content: ["./src/**/*.{ts,tsx}"], + theme: { + extend: { + fontFamily, + colors, + gridTemplateColumns, + }, + }, + plugins: [tailwindAnimate], +}; From 23b3e780bf012070187d8fbc38a344947079acf5 Mon Sep 17 00:00:00 2001 From: angarita-dev <44899916+angarita-dev@users.noreply.github.com> Date: Tue, 1 Apr 2025 00:39:03 -0500 Subject: [PATCH 09/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Replaced=20tailwi?= =?UTF-8?q?nd=20namings=20for=20generic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AuthButton/index.tsx | 2 +- src/ui/Dropdown.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/AuthButton/index.tsx b/src/components/AuthButton/index.tsx index 3599cc3..b0784a8 100644 --- a/src/components/AuthButton/index.tsx +++ b/src/components/AuthButton/index.tsx @@ -2,7 +2,7 @@ import type { ElementType, ComponentPropsWithoutRef, ReactNode } from 'react'; import type { LoginProviderChildrenProps } from '../../providers/LoginProvider'; import { AuthDropdown } from './AuthDropdown'; -export interface AuthButtonProps extends LoginProviderChildrenProps { +export interface AuthButtonProps extends LoginProviderChildrenProps { text?: { default?: string; loading?: string; diff --git a/src/ui/Dropdown.tsx b/src/ui/Dropdown.tsx index 1119aa9..acfb6a9 100644 --- a/src/ui/Dropdown.tsx +++ b/src/ui/Dropdown.tsx @@ -14,7 +14,7 @@ export const Content: React.FC = ({ children, classNam sideOffset={props.sideOffset || 6} align={props.align || 'start'} className={cn( - 'max-h-352 z-20 w-[var(--radix-dropdown-menu-trigger-width)] overflow-auto rounded-8 border border-elz-neutral-6 bg-elz-neutral-1 p-4 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-[.98]', + 'max-h-352 z-20 w-[var(--radix-dropdown-menu-trigger-width)] overflow-auto rounded-8 border border-neutral-6 bg-neutral-1 p-4 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-[.98]', className, )} {...props} @@ -29,7 +29,7 @@ export const Item: React.FC = ({ children, className, ... return ( Date: Tue, 1 Apr 2025 00:49:04 -0500 Subject: [PATCH 10/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Add=20changeset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/cool-coins-sin.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/cool-coins-sin.md diff --git a/.changeset/cool-coins-sin.md b/.changeset/cool-coins-sin.md new file mode 100644 index 0000000..f25dc82 --- /dev/null +++ b/.changeset/cool-coins-sin.md @@ -0,0 +1,5 @@ +--- +"@fleek-platform/login-button": patch +--- + +Adds reusable component AuthButton off-loading most of the logic, also includes an option for dropdown version From 82185ea17927cc132b8bf87bb8041b10b6eaf530 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Tue, 29 Apr 2025 16:17:48 +0100 Subject: [PATCH 11/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20add=20missing=20c?= =?UTF-8?q?omponents,=20expose=20product=20drop=20down?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 7 +- pnpm-lock.yaml | 423 +++++++++++++++++- src/index.ts | 2 + src/providers/DynamicProvider.tsx | 123 +---- .../index.css => styles/dynamicOverrides.css} | 2 +- src/styles/globals.css | 20 + src/styles/typography.css | 124 +++++ src/ui/Box.tsx | 30 ++ src/ui/Button.tsx | 100 +++++ src/ui/Dropdown.tsx | 9 + src/ui/Link.tsx | 25 ++ src/ui/ProductDropdown.tsx | 108 +++++ src/ui/Text.tsx | 69 +++ 13 files changed, 917 insertions(+), 125 deletions(-) rename src/{css/index.css => styles/dynamicOverrides.css} (98%) create mode 100644 src/styles/globals.css create mode 100644 src/styles/typography.css create mode 100644 src/ui/Box.tsx create mode 100644 src/ui/Button.tsx create mode 100644 src/ui/Link.tsx create mode 100644 src/ui/ProductDropdown.tsx create mode 100644 src/ui/Text.tsx diff --git a/package.json b/package.json index 8b1e65e..5192f6f 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ } }, "scripts": { - "build": "pnpm clean:dist && pnpm exec bun build.ts && pnpm run transpile", + "build": "pnpm clean:dist && pnpm exec bun build.ts && pnpm run transpile && pnpm tailwind:build", "changeset:add": "pnpm exec changeset", "changeset:status": "pnpm exec changeset status", "changeset:version": "pnpm exec changeset version", @@ -35,6 +35,7 @@ "generate:local_package": "pnpm build && .scripts/generate_npm_package", "lint": "pnpm exec biome lint --write --no-errors-on-unmatched ./src", "lint:check": "pnpm exec biome lint ./src", + "tailwind:build": "pnpm exec tailwindcss -i ./src/styles/globals.css -c tailwind.config.mjs -o dist/styles/main.css", "transpile": "pnpm exec tsc -p tsconfig.json", "prepare": "husky" }, @@ -43,7 +44,9 @@ "@dynamic-labs/sdk-react-core": "4.14.0", "@fleek-platform/utils-token": "^0.2.2", "@radix-ui/react-dropdown-menu": "^2.1.6", + "@tailwindcss/aspect-ratio": "^0.4.2", "@types/lodash-es": "^4.17.12", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "dotenv": "^16.4.7", "lodash-es": "^4.17.21", @@ -51,6 +54,8 @@ "react-dom": "^18.3.1", "react-icons": "^5.5.0", "tailwind-merge": "^3.0.2", + "tailwindcss": "^3.4.17", + "tailwindcss-animate": "^1.0.7", "use-debounce": "^10.0.4", "viem": "^2.21.55", "zustand": "^5.0.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e5af57..4cf712a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,9 +20,15 @@ importers: '@radix-ui/react-dropdown-menu': specifier: ^2.1.6 version: 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tailwindcss/aspect-ratio': + specifier: ^0.4.2 + version: 0.4.2(tailwindcss@3.4.17) '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -44,6 +50,12 @@ importers: tailwind-merge: specifier: ^3.0.2 version: 3.0.2 + tailwindcss: + specifier: ^3.4.17 + version: 3.4.17 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.17) use-debounce: specifier: ^10.0.4 version: 10.0.4(react@18.3.1) @@ -93,6 +105,10 @@ packages: '@adraffy/ens-normalize@1.11.0': resolution: {integrity: sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1283,6 +1299,10 @@ packages: cpu: [x64] os: [win32] + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@isaacs/ttlcache@1.4.1': resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} engines: {node: '>=12'} @@ -1527,6 +1547,10 @@ packages: resolution: {integrity: sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==} deprecated: 'The package is now available as "qr": npm install qr' + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@radix-ui/primitive@1.1.1': resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} @@ -1931,6 +1955,11 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@tailwindcss/aspect-ratio@0.4.2': + resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} + peerDependencies: + tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' + '@thumbmarkjs/thumbmarkjs@0.16.0': resolution: {integrity: sha512-NKyqCvP6DZKlRf6aGfnKS6Kntn2gnuBxa/ztstjy+oo1t23EHzQ54shtli0yV5WAtygmK1tti/uL2C2p/kW3HQ==} @@ -2160,6 +2189,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -2172,6 +2205,13 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -2179,6 +2219,9 @@ packages: appdirsjs@1.2.7: resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -2272,6 +2315,9 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -2311,7 +2357,6 @@ packages: bun@1.2.2: resolution: {integrity: sha512-RUc8uVVTw8WoASUzXaEQJR1s7mnwoHm3P871qBUIqSaoOpuwcU+bSVX151/xoqDwnyv38SjOX7yQ3oO0IeT73g==} - cpu: [arm64, x64, aarch64] os: [darwin, linux, win32] hasBin: true @@ -2343,6 +2388,10 @@ packages: resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} engines: {node: '>=4'} + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -2377,6 +2426,9 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -2440,6 +2492,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} @@ -2499,6 +2555,11 @@ packages: crossws@0.3.4: resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -2592,6 +2653,9 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} @@ -2599,6 +2663,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dotenv@16.4.7: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} @@ -2610,6 +2677,9 @@ packages: duplexify@4.1.3: resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + eciesjs@0.4.14: resolution: {integrity: sha512-eJAgf9pdv214Hn98FlUzclRMYWF7WfoLlkS9nWMTm1qcCwn6Ad4EGD9lr9HXMBfSrZhYQujRE+p0adPRkctC6A==} engines: {bun: '>=1', deno: '>=2', node: '>=16'} @@ -2626,6 +2696,9 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encode-utf8@1.0.3: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} @@ -2825,6 +2898,10 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + formik@2.2.9: resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==} peerDependencies: @@ -2881,6 +2958,14 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -3129,6 +3214,9 @@ packages: peerDependencies: ws: '*' + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3157,6 +3245,10 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} @@ -3229,6 +3321,13 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lit-element@3.3.3: resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} @@ -3407,9 +3506,17 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -3435,6 +3542,9 @@ packages: multiformats@9.9.0: resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoclone@0.2.1: resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} @@ -3520,6 +3630,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + ofetch@1.4.1: resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} @@ -3611,6 +3725,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@0.2.9: resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} @@ -3641,6 +3758,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -3652,6 +3773,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -3693,6 +3818,47 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + preact@10.25.4: resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==} @@ -3891,6 +4057,9 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -4108,6 +4277,10 @@ packages: sonic-boom@4.2.0: resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -4167,6 +4340,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -4181,6 +4358,10 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -4196,6 +4377,11 @@ packages: strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + sudo-prompt@9.2.1: resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -4215,6 +4401,16 @@ packages: tailwind-merge@3.0.2: resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==} + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -4232,6 +4428,13 @@ packages: engines: {node: '>=10'} hasBin: true + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} @@ -4272,6 +4475,9 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -4536,6 +4742,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -4661,6 +4871,8 @@ snapshots: '@adraffy/ens-normalize@1.11.0': {} + '@alloc/quick-lru@5.2.0': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -6172,6 +6384,15 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/ttlcache@1.4.1': {} '@jest/create-cache-key-function@29.7.0': @@ -6505,6 +6726,9 @@ snapshots: '@paulmillr/qr@0.2.1': {} + '@pkgjs/parseargs@0.11.0': + optional: true + '@radix-ui/primitive@1.1.1': {} '@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -7088,6 +7312,10 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} + '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.17)': + dependencies: + tailwindcss: 3.4.17 + '@thumbmarkjs/thumbmarkjs@0.16.0': {} '@turnkey/api-key-stamper@0.4.3': @@ -7645,6 +7873,8 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -7655,6 +7885,10 @@ snapshots: ansi-styles@5.2.0: {} + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -7662,6 +7896,8 @@ snapshots: appdirsjs@1.2.7: {} + arg@5.0.2: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -7759,6 +7995,10 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -7848,6 +8088,8 @@ snapshots: callsites@2.0.0: {} + camelcase-css@2.0.1: {} + camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -7886,6 +8128,10 @@ snapshots: ci-info@3.9.0: {} + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -7946,6 +8192,8 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@9.5.0: {} commondir@1.0.1: {} @@ -8020,6 +8268,8 @@ snapshots: dependencies: uncrypto: 0.1.3 + cssesc@3.0.0: {} + csstype@3.1.3: {} date-fns@2.30.0: @@ -8078,12 +8328,16 @@ snapshots: detect-node-es@1.1.0: {} + didyoumean@1.2.2: {} + dijkstrajs@1.0.3: {} dir-glob@3.0.1: dependencies: path-type: 4.0.0 + dlv@1.1.3: {} + dotenv@16.4.7: {} dunder-proto@1.0.1: @@ -8099,6 +8353,8 @@ snapshots: readable-stream: 3.6.2 stream-shift: 1.0.3 + eastasianwidth@0.2.0: {} + eciesjs@0.4.14: dependencies: '@ecies/ciphers': 0.2.3(@noble/ciphers@1.2.1) @@ -8122,6 +8378,8 @@ snapshots: emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + encode-utf8@1.0.3: {} encodeurl@1.0.2: {} @@ -8344,6 +8602,11 @@ snapshots: dependencies: is-callable: 1.2.7 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + formik@2.2.9(react@18.3.1): dependencies: deepmerge: 2.2.1 @@ -8406,6 +8669,19 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -8644,6 +8920,12 @@ snapshots: dependencies: ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -8698,6 +8980,8 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + jiti@1.21.7: {} + joi@17.13.3: dependencies: '@hapi/hoek': 9.3.0 @@ -8775,6 +9059,10 @@ snapshots: transitivePeerDependencies: - supports-color + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + lit-element@3.3.3: dependencies: '@lit-labs/ssr-dom-shim': 1.3.0 @@ -9061,8 +9349,14 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} + minipass@7.1.2: {} + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -9086,6 +9380,12 @@ snapshots: multiformats@9.9.0: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoclone@0.2.1: {} nanoid@3.3.8: {} @@ -9142,6 +9442,8 @@ snapshots: object-assign@4.1.1: {} + object-hash@3.0.0: {} + ofetch@1.4.1: dependencies: destr: 2.0.3 @@ -9239,6 +9541,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + package-manager-detector@0.2.9: {} parse-json@4.0.0: @@ -9258,12 +9562,19 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-type@4.0.0: {} picocolors@1.1.1: {} picomatch@2.3.1: {} + pify@2.3.0: {} + pify@4.0.1: {} pino-abstract-transport@0.5.0: @@ -9319,6 +9630,43 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-import@15.1.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.0.1(postcss@8.5.3): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.3 + + postcss-load-config@4.0.2(postcss@8.5.3): + dependencies: + lilconfig: 3.1.3 + yaml: 2.7.0 + optionalDependencies: + postcss: 8.5.3 + + postcss-nested@6.2.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.3: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + preact@10.25.4: {} prettier@2.8.8: {} @@ -9556,6 +9904,10 @@ snapshots: dependencies: loose-envify: 1.4.0 + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -9817,6 +10169,8 @@ snapshots: dependencies: atomic-sleep: 1.0.0 + source-map-js@1.2.1: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -9863,6 +10217,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -9879,6 +10239,10 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + strip-bom@3.0.0: {} strip-final-newline@2.0.0: {} @@ -9887,6 +10251,16 @@ snapshots: strnum@1.0.5: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + sudo-prompt@9.2.1: {} supports-color@7.2.0: @@ -9901,6 +10275,37 @@ snapshots: tailwind-merge@3.0.2: {} + tailwindcss-animate@1.0.7(tailwindcss@3.4.17): + dependencies: + tailwindcss: 3.4.17 + + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.3 + postcss-import: 15.1.0(postcss@8.5.3) + postcss-js: 4.0.1(postcss@8.5.3) + postcss-load-config: 4.0.2(postcss@8.5.3) + postcss-nested: 6.2.0(postcss@8.5.3) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + temp-dir@2.0.0: {} temp@0.8.4: @@ -9916,6 +10321,14 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thread-stream@0.15.2: dependencies: real-require: 0.1.0 @@ -9951,6 +10364,8 @@ snapshots: tr46@0.0.3: {} + ts-interface-checker@0.1.13: {} + tslib@1.14.1: {} tslib@2.4.1: {} @@ -10152,6 +10567,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} write-file-atomic@2.4.3: diff --git a/src/index.ts b/src/index.ts index 1d7d88e..52c0330 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,3 +11,5 @@ export { cookies } from './utils/cookies'; export type { AuthStore } from './store/authStore'; export type { ConfigStore } from './store/configStore'; export { AuthButton } from './components/AuthButton'; + +export { ProductDropdown } from './ui/ProductDropdown'; diff --git a/src/providers/DynamicProvider.tsx b/src/providers/DynamicProvider.tsx index 474e167..2003d96 100644 --- a/src/providers/DynamicProvider.tsx +++ b/src/providers/DynamicProvider.tsx @@ -18,6 +18,7 @@ import { decodeAccessToken, truncateMiddle, isTokenExpired } from '../utils/toke import { clearUserSessionKeys, isTouchDevice } from '../utils/browser'; import { hasLocalStorageItems } from '../utils/store'; import { useDebouncedCallback } from 'use-debounce'; +import cssOverrides from '../styles/dynamicOverrides.css'; type HasDataCommonError = { error: { @@ -415,125 +416,3 @@ export const DynamicProvider: FC = ({ children, graphqlApi ); }; - -const cssOverrides = ` -.dynamic-shadow-dom { - font-size: 16px; - - --dynamic-search-border-radius: 1em; - --dynamic-border-radius: 1.5em; - --dynamic-text-size-body-mini: 0.6875em; - --dynamic-text-size-body-normal: 0.9375em; - --dynamic-text-size-body-small: 0.75em; - --dynamic-text-size-button-primary: 0.875em; - --dynamic-text-size-button-secondary: 0.75em; - --dynamic-text-size-numbers-big: 0.875em; - --dynamic-text-size-numbers-medium: 0.75em; - --dynamic-text-size-title: 1.125em; - --dynamic-modal-width: 22.5em; - --dynamic-modal-padding: 1.5em; - --dynamic-wallet-list-tile-padding: 0.75em; - --dynamic-wallet-list-tile-gap: 0.375em; - --dynamic-wallet-list-max-height: 16.25em; - --dynamic-wallet-list-tile-border-radius: 0.75em; - --dynamic-initial-view-content-padding: 0em 1.5em 1.5em; - --dynamic-button-primary-font-size: 0.875em; - --dynamic-button-secondary-font-size: 0.75em; - --dynamic-search-padding: 0 1.5em 0.5em; - --dynamic-layout-content-padding: 0 1.5em 1.5em; - --dynamic-layout-content-error-padding: 1.5em 1.5em 1.5em; - --dynamic-footer-padding: 0.75em 1.5em 0.75em; - --dynamic-header-padding: 1.5em 1.5em 1.25em; -} - -.dynamic-shadow-dom .social-sign-in--tile { - height: 2.5em; -} - -.dynamic-shadow-dom .connect-with-wallet-button { - height: 2.5em; -} - -.dynamic-shadow-dom .input__container .input { - font-size: 0.9375em; -} - -.dynamic-shadow-dom .input__container .input__label { - font-size: 0.625em; -} - -.dynamic-shadow-dom .input__container--dense .input:placeholder-shown ~ .input__label { - font-size: 0.9375em; - top: 0.75em; -} - -.dynamic-shadow-dom .input__container--dense .input:focus ~ .input__label { - font-size: 0.625em; - top: 0.4375em; -} - -.dynamic-shadow-dom .input__container--dense .input { - padding: 1.125em 0.5em 0.375em; -} - -.dynamic-shadow-dom .powered-by-dynamic__logo { - margin-top: 0.0625em; - max-width: 3.6875em; - width: 3.6875em; -} - -.dynamic-shadow-dom .header__icon svg { - height: 1.5em; - width: 1.5em; -} - -.dynamic-shadow-dom .text-button { - font-size: 0.75em; -} - -.dynamic-shadow-dom .pin-input__input { - font-size: 1em; - height: 2.75em; - max-width: 2.75em; -} - -.dynamic-shadow-dom .search-instead__container { - font-size: .75em; - line-height: 1em; - margin-top: 2.5em; - padding-bottom: 1em; -} - -.dynamic-shadow-dom .search-icon__container { - height: 1em; - width: 1em; -} - -.dynamic-shadow-dom .search__container { - gap: .625em; - height: 2.625em; - min-height: 2.25em; - padding-left: .75em; - padding-right: .75em; -} - -.dynamic-shadow-dom .icon--size-mini { - height: 1.25em; - width: 1.25em; -} - -.dynamic-shadow-dom .qr-code-wrapper__scan-issue-button { - font-size: .75em; -} - -.modal form .typography-button__content { - height: 2.5em; - justify-content: center; -} - -@media (max-width: 640px) { - .modal { - bottom: auto; - top: 0; - } -}`; diff --git a/src/css/index.css b/src/styles/dynamicOverrides.css similarity index 98% rename from src/css/index.css rename to src/styles/dynamicOverrides.css index a0ab7e3..4989d1f 100644 --- a/src/css/index.css +++ b/src/styles/dynamicOverrides.css @@ -109,7 +109,7 @@ .modal form .typography-button__content { height: 2.5em; - justify-content: center; + justify-content: center; } @media (max-width: 640px) { diff --git a/src/styles/globals.css b/src/styles/globals.css new file mode 100644 index 0000000..a62e6ef --- /dev/null +++ b/src/styles/globals.css @@ -0,0 +1,20 @@ +@import "./typography.css"; + +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + /* Font antialising */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + font-size: 62.5%; + color-scheme: dark; + } + + body { + font-feature-settings: "ss01" 1; + } +} diff --git a/src/styles/typography.css b/src/styles/typography.css new file mode 100644 index 0000000..53f546d --- /dev/null +++ b/src/styles/typography.css @@ -0,0 +1,124 @@ +@layer base { + @font-face { + font-family: AtypDisplay; + src: url("@fonts/atyp/AtypDisplay-LightItalic.woff2") format("woff"); + font-weight: 300; + font-style: italic; + font-display: block; + } + + @font-face { + font-family: AtypDisplay; + src: url("@fonts/atyp/AtypDisplay-Regular.woff2") format("woff"); + font-weight: 400; + font-style: normal; + font-display: block; + } + + @font-face { + font-family: AtypDisplay; + src: url("@fonts/atyp/AtypDisplay-Medium.woff2") format("woff"); + font-weight: 500; + font-style: normal; + font-display: block; + } + + @font-face { + font-family: AtypDisplay; + src: url("@fonts/atyp/AtypDisplay-Semibold.woff2") format("woff"); + font-weight: 600; + font-style: normal; + font-display: block; + } + + @font-face { + font-family: AtypDisplay; + src: url("@fonts/atyp/AtypDisplay-SemiboldItalic.woff2") format("woff"); + font-weight: 600; + font-style: italic; + font-display: block; + } + + @font-face { + font-family: AtypDisplay; + src: url("@fonts/atyp/AtypDisplay-Bold.woff2") format("woff"); + font-weight: 800; + font-style: normal; + font-display: block; + } + + @font-face { + font-family: AtypDisplay; + src: url("@fonts/atyp/AtypDisplay-BoldItalic.woff2") format("woff"); + font-weight: 700; + font-style: italic; + font-display: block; + } + + @font-face { + font-family: "IBM Plex Mono"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("@fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + @font-face { + font-family: "IBM Plex Mono"; + font-style: normal; + font-weight: 500; + font-display: block; + src: url("@fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + @font-face { + font-family: "IBM Plex Mono"; + font-style: normal; + font-weight: 700; + font-display: block; + src: url("@fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + @font-face { + font-family: "IBM Plex Sans"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("@fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + @font-face { + font-family: "IBM Plex Sans"; + font-style: normal; + font-weight: 500; + font-display: block; + src: url("@fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + @font-face { + font-family: "IBM Plex Sans"; + font-style: normal; + font-weight: 700; + font-display: block; + src: url("@fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } +} diff --git a/src/ui/Box.tsx b/src/ui/Box.tsx new file mode 100644 index 0000000..6cf37fe --- /dev/null +++ b/src/ui/Box.tsx @@ -0,0 +1,30 @@ +import { cn } from '../utils/cn'; +import { cva, type VariantProps } from 'class-variance-authority'; +import React, { type PropsWithChildren } from 'react'; + +export const boxVariants = cva('flex flex-col', { + variants: { + variant: { + container: + 'bg-elz-neutral-1 p-16 gap-16 rounded-12 border border-elz-neutral-6 overflow-hidden', + }, + }, +}); + +export type BoxProps = PropsWithChildren & + React.HTMLAttributes & + VariantProps; + +export const Box = React.forwardRef( + ({ children, variant, className, ...props }, ref) => { + return ( +
+ {children} +
+ ); + }, +); diff --git a/src/ui/Button.tsx b/src/ui/Button.tsx new file mode 100644 index 0000000..a4b79ab --- /dev/null +++ b/src/ui/Button.tsx @@ -0,0 +1,100 @@ +import { forwardRef, type Ref, type PropsWithChildren } from 'react'; +import { type VariantProps, cva } from 'class-variance-authority'; +import { cn } from '../utils/cn'; +import type { Target } from './Link'; +import Link from './Link'; + +export const buttonVariants = cva( + 'flex min-w-fit font-medium no-underline gap-4 select-none font-elz-plex-sans cursor-pointer items-center justify-center transition-all ring-0 outline-none focus-visible:ring-2 disabled:cursor-not-allowed disabled:bg-elz-neutral-3 disabled:text-elz-neutral-8', + { + variants: { + variant: { + neutral: + 'text-elz-neutral-11 bg-elz-neutral-3 hover:bg-elz-neutral-4 active:bg-elz-neutral-5 focus-visible:ring-elz-neutral-8', + accent: + 'text-elz-accent-11 bg-elz-accent-3 hover:bg-elz-accent-4 active:bg-elz-accent-5 focus-visible:ring-elz-accent-8', + success: + 'text-elz-success-11 bg-elz-success-3 hover:bg-elz-success-4 active:bg-elz-success-5 focus-visible:ring-elz-success-8', + warning: + 'text-elz-warning-11 bg-elz-warning-3 hover:bg-elz-warning-4 active:bg-elz-warning-5 focus-visible:ring-elz-warning-8', + danger: + 'text-elz-danger-11 bg-elz-danger-3 hover:bg-elz-danger-4 active:bg-elz-danger-5 focus-visible:ring-elz-danger-8', + ghost: + 'text-elz-neutral-11 bg-transparent hover:bg-elz-neutral-4 active:bg-elz-neutral-5 disabled:bg-transparent focus-visible:ring-elz-neutral-8', + 'ghost-bordered': + 'text-elz-neutral-11 bg-transparent hover:bg-elz-neutral-4 active:bg-elz-neutral-5 disabled:bg-transparent focus-visible:ring-elz-neutral-8 border border-elz-neutral-6', + primary: + 'bg-elz-accent-9 hover:bg-elz-accent-10 active:bg-elz-accent-9 text-elz-accent-1 ring-elz-accent-8 disabled:bg-elz-neutral-3 disabled:text-elz-neutral-8 disabled:ring-elz-neutral-3 disabled:cursor-not-allowed', + outline: + 'text-elz-neutral-11 bg-transparent hover:bg-elz-neutral-4 active:bg-elz-neutral-5 disabled:bg-transparent focus-visible:ring-elz-neutral-8 border border-elz-neutral-8', + }, + size: { + xs: 'h-24 gap-4 px-8 rounded-8 text-[1.4rem]', + sm: 'h-32 gap-4 px-8 rounded-8 text-[1.4rem]', + md: 'h-40 gap-8 px-16 rounded-12 text-[1.6rem]', + lg: 'h-44 gap-8 px-16 rounded-12 text-[1.6rem]', + }, + }, + defaultVariants: { + variant: 'accent', + size: 'sm', + }, + }, +); + +export type ButtonProps = PropsWithChildren & + VariantProps & { + id?: string; + href?: string; + className?: string; + target?: Target; + rel?: string; + onClick?: (e?: React.MouseEvent) => void; + } & React.ButtonHTMLAttributes; + +export const Button = forwardRef< + HTMLButtonElement | HTMLAnchorElement, + ButtonProps +>( + ( + { + id, + children, + href, + target, + rel, + onClick, + variant, + size, + className, + ...props + }, + ref, + ) => { + if (href) + return ( + } + id={id} + href={href} + target={target} + rel={rel} + className={cn(buttonVariants({ variant, size }), className)} + > + {children} + + ); + + return ( + + ); + }, +); diff --git a/src/ui/Dropdown.tsx b/src/ui/Dropdown.tsx index acfb6a9..df60ea6 100644 --- a/src/ui/Dropdown.tsx +++ b/src/ui/Dropdown.tsx @@ -4,9 +4,12 @@ import { Content as BaseContent, type DropdownMenuContentProps, type DropdownMenuItemProps, + Root as DropDownRoot, } from '@radix-ui/react-dropdown-menu'; import { cn } from '../utils/cn'; +const Root = DropDownRoot; + export const Content: React.FC = ({ children, className, ...props }) => { return ( @@ -38,3 +41,9 @@ export const Item: React.FC = ({ children, className, ...
); }; + +export const Dropdown = { + Root, + Content, + Item, +}; diff --git a/src/ui/Link.tsx b/src/ui/Link.tsx new file mode 100644 index 0000000..3a05331 --- /dev/null +++ b/src/ui/Link.tsx @@ -0,0 +1,25 @@ +import type React from 'react'; +import { forwardRef } from 'react'; +import type { PropsWithChildren } from 'react'; + +export enum Target { + Blank = '_blank', + Self = '_self', + Parent = '_parent', + Top = '_top', +} + +const Link = forwardRef< + HTMLAnchorElement, + PropsWithChildren> +>(({ children, ...props }, ref) => ( + + {children} + +)); + +export default Link; diff --git a/src/ui/ProductDropdown.tsx b/src/ui/ProductDropdown.tsx new file mode 100644 index 0000000..247a6f5 --- /dev/null +++ b/src/ui/ProductDropdown.tsx @@ -0,0 +1,108 @@ +import { Dropdown } from './Dropdown'; +import { DropdownMenuTrigger } from '@radix-ui/react-dropdown-menu'; +import { Text } from './Text'; +import { Box } from './Box'; +import { IoApps, IoBrowsers } from 'react-icons/io5'; +import { Button } from './Button'; +import { RiRobot2Line } from 'react-icons/ri'; +import { cn } from '../utils/cn'; +import { type ReactElement, cloneElement } from 'react'; + +export type Product = { + name: string; + description: string; + icon: ReactElement; + disabled?: boolean; +}; + +const products: Product[] = [ + { + name: 'Agents', + description: 'Create and manage AI agents', + icon: , + }, + { + name: 'Apps', + description: 'Hosting and storage solutions', + icon: , + }, +]; + +export type ProductDropdownProps = { + onClick: (product: Product) => void; +}; + +export const ProductDropdown = ({ onClick }: ProductDropdownProps) => { + return ( + + + + + + {products.map((product) => { + return ( + onClick(product)} + /> + ); + })} + + + ); +}; + +type ProductDropdownItemProps = { + product: Product; + isActive?: boolean; + onClick: () => void; +}; + +const ProductDropdownItem = ({ + product, + isActive = false, + onClick, +}: ProductDropdownItemProps) => { + const Icon = () => { + const { className, ...props } = product.icon.props; + return cloneElement(product.icon, { + className: cn('size-16 flex-shrink-0', className), + ...props, + }); + }; + return ( + + + + + + + {product.name} + + + {product.description} + + + + ); +}; diff --git a/src/ui/Text.tsx b/src/ui/Text.tsx new file mode 100644 index 0000000..f8d6c44 --- /dev/null +++ b/src/ui/Text.tsx @@ -0,0 +1,69 @@ +import { cn } from '../utils/cn'; +import { cva, type VariantProps } from 'class-variance-authority'; +import { createElement, forwardRef, type PropsWithChildren } from 'react'; + +const textVariants = cva('font-elz-plex-sans', { + variants: { + variant: { + title: 'text-balance text-[3.6rem] font-semibold text-elz-neutral-12', + description: 'text-[1.6rem] font-medium text-elz-neutral-11', + subtitle: 'text-[1.6rem] text-elz-neutral-12 font-semibold', + feature: + 'text-[1.2rem] font-medium uppercase tracking-[0.256rem] text-elz-neutral-11', + primary: 'text-elz-neutral-12', + secondary: 'text-elz-neutral-11', + }, + size: { + '2xs': 'text-[1rem]', + xs: 'text-[1.2rem]', + sm: 'text-[1.4rem]', + md: 'text-[1.6rem]', + lg: 'text-[1.8rem]', + xl: 'text-[2.0rem]', + '2xl': 'text-[2.6rem]', + '3xl': 'text-[3.4rem]', + '4xl': 'text-[5.8rem]', + }, + weight: { + 400: 'font-normal', + 500: 'font-medium', + 700: 'font-bold', + }, + }, + defaultVariants: { + variant: 'title', + }, +}); + +export const validTextElement = [ + 'p', + 'span', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', +] as const; + +type ValidTextElement = (typeof validTextElement)[number]; + +export type TextProps = PropsWithChildren & + React.HTMLAttributes & + VariantProps & { + as?: ValidTextElement; + }; + +export const Text = forwardRef( + ({ children, as = 'p', variant, size, weight, className, ...props }, ref) => { + return createElement( + as, + { + ref, + className: cn(textVariants({ variant, size, weight }), className), + ...props, + }, + children, + ); + }, +); From 74547f579641733db84fd7bb8310974b9c3ee0bb Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Tue, 29 Apr 2025 16:59:50 +0100 Subject: [PATCH 12/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20minification?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5192f6f..bd54301 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "generate:local_package": "pnpm build && .scripts/generate_npm_package", "lint": "pnpm exec biome lint --write --no-errors-on-unmatched ./src", "lint:check": "pnpm exec biome lint ./src", - "tailwind:build": "pnpm exec tailwindcss -i ./src/styles/globals.css -c tailwind.config.mjs -o dist/styles/main.css", + "tailwind:build": "pnpm exec tailwindcss -i ./src/styles/globals.css -c tailwind.config.mjs -o dist/styles/main.min.css --minify", "transpile": "pnpm exec tsc -p tsconfig.json", "prepare": "husky" }, From c357c1d8710eff4c7c15ba93682d8e58065c85f1 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Tue, 29 Apr 2025 19:57:09 +0100 Subject: [PATCH 13/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tailwind/tokens.ts | 126 ++++++++++++++++++------------------- README.md | 6 +- package.json | 5 +- src/defined.ts | 18 +++++- src/index.ts | 4 +- src/ui/ProductDropdown.tsx | 19 +++++- tailwind.config.mjs | 1 + 7 files changed, 108 insertions(+), 71 deletions(-) diff --git a/.tailwind/tokens.ts b/.tailwind/tokens.ts index c98f64e..78b4317 100644 --- a/.tailwind/tokens.ts +++ b/.tailwind/tokens.ts @@ -1,75 +1,75 @@ export const colors = { - 'white': '#FFF', - 'black': '#000', + 'elz-white': '#FFF', + 'elz-black': '#000', /* Neutral */ - 'neutral-0': '#000000', - 'neutral-1': '#111111', - 'neutral-2': '#191919', - 'neutral-3': '#222222', - 'neutral-4': '#2A2A2A', - 'neutral-5': '#313131', - 'neutral-6': '#3A3A3A', - 'neutral-7': '#484848', - 'neutral-8': '#606060', - 'neutral-9': '#6E6E6E', - 'neutral-10': '#7B7B7B', - 'neutral-11': '#B4B4B4', - 'neutral-12': '#EEEEEE', + 'elz-neutral-0': '#000000', + 'elz-neutral-1': '#111111', + 'elz-neutral-2': '#191919', + 'elz-neutral-3': '#222222', + 'elz-neutral-4': '#2A2A2A', + 'elz-neutral-5': '#313131', + 'elz-neutral-6': '#3A3A3A', + 'elz-neutral-7': '#484848', + 'elz-neutral-8': '#606060', + 'elz-neutral-9': '#6E6E6E', + 'elz-neutral-10': '#7B7B7B', + 'elz-neutral-11': '#B4B4B4', + 'elz-neutral-12': '#EEEEEE', /* Accent */ - 'accent-1': '#14120B', - 'accent-2': '#1B180F', - 'accent-3': '#2D2305', - 'accent-4': '#362B00', - 'accent-5': '#433500', - 'accent-6': '#524202', - 'accent-7': '#665417', - 'accent-8': '#836A21', - 'accent-9': '#FFE629', - 'accent-10': '#FFFF57', - 'accent-11': '#F5E147', - 'accent-12': '#F6EEB4', + 'elz-accent-1': '#14120B', + 'elz-accent-2': '#1B180F', + 'elz-accent-3': '#2D2305', + 'elz-accent-4': '#362B00', + 'elz-accent-5': '#433500', + 'elz-accent-6': '#524202', + 'elz-accent-7': '#665417', + 'elz-accent-8': '#836A21', + 'elz-accent-9': '#FFE629', + 'elz-accent-10': '#FFFF57', + 'elz-accent-11': '#F5E147', + 'elz-accent-12': '#F6EEB4', /* Success */ - 'success-1': '#0E1512', - 'success-2': '#121B17', - 'success-3': '#132D21', - 'success-4': '#113B29', - 'success-5': '#174933', - 'success-6': '#20573E', - 'success-7': '#28684A', - 'success-8': '#2F7C57', - 'success-9': '#30A46C', - 'success-10': '#33B074', - 'success-11': '#3DD68C', - 'success-12': '#B1F1CB', + 'elz-success-1': '#0E1512', + 'elz-success-2': '#121B17', + 'elz-success-3': '#132D21', + 'elz-success-4': '#113B29', + 'elz-success-5': '#174933', + 'elz-success-6': '#20573E', + 'elz-success-7': '#28684A', + 'elz-success-8': '#2F7C57', + 'elz-success-9': '#30A46C', + 'elz-success-10': '#33B074', + 'elz-success-11': '#3DD68C', + 'elz-success-12': '#B1F1CB', /* Warning */ - 'warning-1': '#16120C', - 'warning-2': '#1D180F', - 'warning-3': '#302008', - 'warning-4': '#3F2700', - 'warning-5': '#4D3000', - 'warning-6': '#5C3D05', - 'warning-7': '#714F19', - 'warning-8': '#8F6424', - 'warning-9': '#FFC53D', - 'warning-10': '#FFD60A', - 'warning-11': '#FFCA16', - 'warning-12': '#FFE7B3', + 'elz-warning-1': '#16120C', + 'elz-warning-2': '#1D180F', + 'elz-warning-3': '#302008', + 'elz-warning-4': '#3F2700', + 'elz-warning-5': '#4D3000', + 'elz-warning-6': '#5C3D05', + 'elz-warning-7': '#714F19', + 'elz-warning-8': '#8F6424', + 'elz-warning-9': '#FFC53D', + 'elz-warning-10': '#FFD60A', + 'elz-warning-11': '#FFCA16', + 'elz-warning-12': '#FFE7B3', /* Danger */ - 'danger-1': '#191111', - 'danger-2': '#201314', - 'danger-3': '#3B1219', - 'danger-4': '#500F1C', - 'danger-5': '#611623', - 'danger-6': '#72232D', - 'danger-7': '#8C333A', - 'danger-8': '#B54548', - 'danger-9': '#E5484D', - 'danger-10': '#EC5D5E', - 'danger-11': '#FF9592', - 'danger-12': '#FFD1D9', + 'elz-danger-1': '#191111', + 'elz-danger-2': '#201314', + 'elz-danger-3': '#3B1219', + 'elz-danger-4': '#500F1C', + 'elz-danger-5': '#611623', + 'elz-danger-6': '#72232D', + 'elz-danger-7': '#8C333A', + 'elz-danger-8': '#B54548', + 'elz-danger-9': '#E5484D', + 'elz-danger-10': '#EC5D5E', + 'elz-danger-11': '#FF9592', + 'elz-danger-12': '#FFD1D9', }; diff --git a/README.md b/README.md index 3c1b150..aa9667c 100644 --- a/README.md +++ b/README.md @@ -73,8 +73,10 @@ Open your favourite text editor to edit the file. Here's an example for staging environent variable values: ```sh -PUBLIC_GRAPHQL_API_URL="https://graphql.service.staging.fleeksandbox.xyz/graphql" -PUBLIC_DYNAMIC_ENVIRONMENT_ID="c4d4ccad-9460-419c-9ca3-494488f8c892" +PUBLIC_GRAPHQL_API_URL="https://graphql.service.fleek.xyz/graphql" +PUBLIC_DYNAMIC_ENVIRONMENT_ID="de23a5f0-aaa5-412e-8212-4fb056a3b30d" +PUBLIC_DASHBOARD_APP_URL="https://fleek.xyz/dashboard" +PUBLIC_UI_AGENTS_APP_URL="https://fleek.xyz/agents" ``` ### Local Package Test diff --git a/package.json b/package.json index bd54301..6470ac1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fleek-platform/login-button", - "version": "2.10.1", + "version": "2.10.1-dev.7", "description": "A standalone login component with an embedded Dynamic modal that functions independently of host application.", "repository": "https://github.com/fleek-platform/login-button", "homepage": "https://github.com/fleek-platform/login-button", @@ -19,6 +19,9 @@ ".": { "import": "./dist/bundle.js", "types": "./dist/index.d.ts" + }, + "./styles": { + "import": "./dist/styles/main.min.css" } }, "scripts": { diff --git a/src/defined.ts b/src/defined.ts index c0147dd..12adfe2 100644 --- a/src/defined.ts +++ b/src/defined.ts @@ -1,23 +1,37 @@ export type Defined = { PUBLIC_GRAPHQL_API_URL?: string; PUBLIC_DYNAMIC_ENVIRONMENT_ID?: string; + PUBLIC_APP_HOSTING_URL?: string; + PUBLIC_APP_AGENTS_URL?: string; }; export const defined: Defined = { PUBLIC_GRAPHQL_API_URL: process.env.PUBLIC_GRAPHQL_API_URL, PUBLIC_DYNAMIC_ENVIRONMENT_ID: process.env.PUBLIC_DYNAMIC_ENVIRONMENT_ID, + PUBLIC_APP_HOSTING_URL: process.env.PUBLIC_APP_HOSTING_URL, + PUBLIC_APP_AGENTS_URL: process.env.PUBLIC_APP_AGENTS_URL, }; export const getDefined = (key: keyof typeof defined): string => { const value = defined[key]; if (value === undefined || value === null) { - throw new Error(`Expected key "${key}" to be defined but got ${typeof value}`); + throw new Error( + `Expected key "${key}" to be defined but got ${typeof value}`, + ); } if (typeof value !== 'string') { - throw new Error(`Expected key "${key}" to be string but got ${typeof value}`); + throw new Error( + `Expected key "${key}" to be string but got ${typeof value}`, + ); } return value; }; + +// Use to override `defined` +export const setDefined = (settings: Partial) => { + const override = { ...defined, ...settings }; + Object.assign(defined, override); +}; diff --git a/src/index.ts b/src/index.ts index 52c0330..418ef87 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,4 +12,6 @@ export type { AuthStore } from './store/authStore'; export type { ConfigStore } from './store/configStore'; export { AuthButton } from './components/AuthButton'; -export { ProductDropdown } from './ui/ProductDropdown'; +export { ProductDropdown, type Product } from './ui/ProductDropdown'; + +export { setDefined } from './defined'; diff --git a/src/ui/ProductDropdown.tsx b/src/ui/ProductDropdown.tsx index 247a6f5..48dfa9f 100644 --- a/src/ui/ProductDropdown.tsx +++ b/src/ui/ProductDropdown.tsx @@ -7,6 +7,7 @@ import { Button } from './Button'; import { RiRobot2Line } from 'react-icons/ri'; import { cn } from '../utils/cn'; import { type ReactElement, cloneElement } from 'react'; +import { getDefined } from '../defined'; export type Product = { name: string; @@ -22,7 +23,7 @@ const products: Product[] = [ icon: , }, { - name: 'Apps', + name: 'Dashboard', description: 'Hosting and storage solutions', icon: , }, @@ -32,7 +33,21 @@ export type ProductDropdownProps = { onClick: (product: Product) => void; }; -export const ProductDropdown = ({ onClick }: ProductDropdownProps) => { +export const ProductDropdown = () => { + const onClick = (product: Product) => { + let url = '#'; + + if (product.name === 'Agents') { + url = getDefined('PUBLIC_APP_AGENTS_URL'); + } else if (product.name === 'Dashboard') { + url = getDefined('PUBLIC_APP_HOSTING_URL'); + } else { + console.error('Unknown product!'); + } + + window.location.href = url; + }; + return ( diff --git a/tailwind.config.mjs b/tailwind.config.mjs index b42093f..9aadc38 100644 --- a/tailwind.config.mjs +++ b/tailwind.config.mjs @@ -7,6 +7,7 @@ import { gridTemplateColumns } from "./.tailwind/gridLayout"; export default { mode: "jit", + important: ".login-button", presets: [tailwindCustomConfig], content: ["./src/**/*.{ts,tsx}"], theme: { From 5b1bd870ec9dbe4d6e703b6ab7bb86831f945be4 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Wed, 30 Apr 2025 12:37:32 +0100 Subject: [PATCH 14/18] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20add=20active?= =?UTF-8?q?=20and=20related=20styles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/ui/Dropdown.tsx | 25 +++++++++++-------------- src/ui/ProductDropdown.tsx | 16 ++++++++++++---- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 6470ac1..0d7d5dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fleek-platform/login-button", - "version": "2.10.1-dev.7", + "version": "2.10.1", "description": "A standalone login component with an embedded Dynamic modal that functions independently of host application.", "repository": "https://github.com/fleek-platform/login-button", "homepage": "https://github.com/fleek-platform/login-button", diff --git a/src/ui/Dropdown.tsx b/src/ui/Dropdown.tsx index df60ea6..927ec8e 100644 --- a/src/ui/Dropdown.tsx +++ b/src/ui/Dropdown.tsx @@ -1,6 +1,5 @@ import { Item as BaseItem, - Portal, Content as BaseContent, type DropdownMenuContentProps, type DropdownMenuItemProps, @@ -12,19 +11,17 @@ const Root = DropDownRoot; export const Content: React.FC = ({ children, className, ...props }) => { return ( - - - {children} - - + + {children} + ); }; diff --git a/src/ui/ProductDropdown.tsx b/src/ui/ProductDropdown.tsx index 48dfa9f..de60dcb 100644 --- a/src/ui/ProductDropdown.tsx +++ b/src/ui/ProductDropdown.tsx @@ -6,7 +6,7 @@ import { IoApps, IoBrowsers } from 'react-icons/io5'; import { Button } from './Button'; import { RiRobot2Line } from 'react-icons/ri'; import { cn } from '../utils/cn'; -import { type ReactElement, cloneElement } from 'react'; +import { type ReactElement, cloneElement, useState } from 'react'; import { getDefined } from '../defined'; export type Product = { @@ -33,7 +33,13 @@ export type ProductDropdownProps = { onClick: (product: Product) => void; }; -export const ProductDropdown = () => { +export const ProductDropdown = ({ + defaultSelectedProductName +}: { + defaultSelectedProductName?: string +}) => { + const [selectedProduct, setSelecterdProduct] = useState(defaultSelectedProductName); + const onClick = (product: Product) => { let url = '#'; @@ -45,6 +51,8 @@ export const ProductDropdown = () => { console.error('Unknown product!'); } + setSelecterdProduct(product.name); + window.location.href = url; }; @@ -64,7 +72,7 @@ export const ProductDropdown = () => { onClick(product)} /> ); @@ -96,7 +104,7 @@ const ProductDropdownItem = ({ Date: Wed, 30 Apr 2025 12:39:19 +0100 Subject: [PATCH 15/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20add=20app=20env?= =?UTF-8?q?=20var?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-dry-run.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-dry-run.yml b/.github/workflows/build-dry-run.yml index 89a69d0..2fa08be 100644 --- a/.github/workflows/build-dry-run.yml +++ b/.github/workflows/build-dry-run.yml @@ -18,6 +18,8 @@ jobs: env: PUBLIC_GRAPHQL_API_URL: 'dry.run' PUBLIC_DYNAMIC_ENVIRONMENT_ID: 'dry.run' + PUBLIC_APP_HOSTING_URL: 'dry.run' + PUBLIC_APP_AGENTS_URL: 'dry.run' steps: - name: Checkout uses: actions/checkout@v4 From b6877abd375dcde7df85f33119f9bdc3e685b727 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Wed, 30 Apr 2025 12:48:37 +0100 Subject: [PATCH 16/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/defined.ts | 8 ++------ src/styles/dynamicOverrides.css | 2 +- src/styles/typography.css | 36 +++++++++++---------------------- src/ui/Box.tsx | 27 +++++++++---------------- src/ui/Button.tsx | 36 +++++++-------------------------- src/ui/Link.tsx | 19 +++++++---------- src/ui/ProductDropdown.tsx | 26 +++++++----------------- src/ui/Text.tsx | 14 ++----------- 8 files changed, 47 insertions(+), 121 deletions(-) diff --git a/src/defined.ts b/src/defined.ts index 12adfe2..61853bc 100644 --- a/src/defined.ts +++ b/src/defined.ts @@ -16,15 +16,11 @@ export const getDefined = (key: keyof typeof defined): string => { const value = defined[key]; if (value === undefined || value === null) { - throw new Error( - `Expected key "${key}" to be defined but got ${typeof value}`, - ); + throw new Error(`Expected key "${key}" to be defined but got ${typeof value}`); } if (typeof value !== 'string') { - throw new Error( - `Expected key "${key}" to be string but got ${typeof value}`, - ); + throw new Error(`Expected key "${key}" to be string but got ${typeof value}`); } return value; diff --git a/src/styles/dynamicOverrides.css b/src/styles/dynamicOverrides.css index 4989d1f..a0ab7e3 100644 --- a/src/styles/dynamicOverrides.css +++ b/src/styles/dynamicOverrides.css @@ -109,7 +109,7 @@ .modal form .typography-button__content { height: 2.5em; - justify-content: center; + justify-content: center; } @media (max-width: 640px) { diff --git a/src/styles/typography.css b/src/styles/typography.css index 53f546d..ffa9502 100644 --- a/src/styles/typography.css +++ b/src/styles/typography.css @@ -61,10 +61,8 @@ font-weight: 400; font-display: block; src: url("@fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Mono"; @@ -72,10 +70,8 @@ font-weight: 500; font-display: block; src: url("@fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Mono"; @@ -83,10 +79,8 @@ font-weight: 700; font-display: block; src: url("@fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; @@ -94,10 +88,8 @@ font-weight: 400; font-display: block; src: url("@fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; @@ -105,10 +97,8 @@ font-weight: 500; font-display: block; src: url("@fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; @@ -116,9 +106,7 @@ font-weight: 700; font-display: block; src: url("@fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } } diff --git a/src/ui/Box.tsx b/src/ui/Box.tsx index 6cf37fe..8173ce4 100644 --- a/src/ui/Box.tsx +++ b/src/ui/Box.tsx @@ -5,26 +5,17 @@ import React, { type PropsWithChildren } from 'react'; export const boxVariants = cva('flex flex-col', { variants: { variant: { - container: - 'bg-elz-neutral-1 p-16 gap-16 rounded-12 border border-elz-neutral-6 overflow-hidden', + container: 'bg-elz-neutral-1 p-16 gap-16 rounded-12 border border-elz-neutral-6 overflow-hidden', }, }, }); -export type BoxProps = PropsWithChildren & - React.HTMLAttributes & - VariantProps; +export type BoxProps = PropsWithChildren & React.HTMLAttributes & VariantProps; -export const Box = React.forwardRef( - ({ children, variant, className, ...props }, ref) => { - return ( -
- {children} -
- ); - }, -); +export const Box = React.forwardRef(({ children, variant, className, ...props }, ref) => { + return ( +
+ {children} +
+ ); +}); diff --git a/src/ui/Button.tsx b/src/ui/Button.tsx index a4b79ab..6af8e87 100644 --- a/src/ui/Button.tsx +++ b/src/ui/Button.tsx @@ -9,16 +9,11 @@ export const buttonVariants = cva( { variants: { variant: { - neutral: - 'text-elz-neutral-11 bg-elz-neutral-3 hover:bg-elz-neutral-4 active:bg-elz-neutral-5 focus-visible:ring-elz-neutral-8', - accent: - 'text-elz-accent-11 bg-elz-accent-3 hover:bg-elz-accent-4 active:bg-elz-accent-5 focus-visible:ring-elz-accent-8', - success: - 'text-elz-success-11 bg-elz-success-3 hover:bg-elz-success-4 active:bg-elz-success-5 focus-visible:ring-elz-success-8', - warning: - 'text-elz-warning-11 bg-elz-warning-3 hover:bg-elz-warning-4 active:bg-elz-warning-5 focus-visible:ring-elz-warning-8', - danger: - 'text-elz-danger-11 bg-elz-danger-3 hover:bg-elz-danger-4 active:bg-elz-danger-5 focus-visible:ring-elz-danger-8', + neutral: 'text-elz-neutral-11 bg-elz-neutral-3 hover:bg-elz-neutral-4 active:bg-elz-neutral-5 focus-visible:ring-elz-neutral-8', + accent: 'text-elz-accent-11 bg-elz-accent-3 hover:bg-elz-accent-4 active:bg-elz-accent-5 focus-visible:ring-elz-accent-8', + success: 'text-elz-success-11 bg-elz-success-3 hover:bg-elz-success-4 active:bg-elz-success-5 focus-visible:ring-elz-success-8', + warning: 'text-elz-warning-11 bg-elz-warning-3 hover:bg-elz-warning-4 active:bg-elz-warning-5 focus-visible:ring-elz-warning-8', + danger: 'text-elz-danger-11 bg-elz-danger-3 hover:bg-elz-danger-4 active:bg-elz-danger-5 focus-visible:ring-elz-danger-8', ghost: 'text-elz-neutral-11 bg-transparent hover:bg-elz-neutral-4 active:bg-elz-neutral-5 disabled:bg-transparent focus-visible:ring-elz-neutral-8', 'ghost-bordered': @@ -52,25 +47,8 @@ export type ButtonProps = PropsWithChildren & onClick?: (e?: React.MouseEvent) => void; } & React.ButtonHTMLAttributes; -export const Button = forwardRef< - HTMLButtonElement | HTMLAnchorElement, - ButtonProps ->( - ( - { - id, - children, - href, - target, - rel, - onClick, - variant, - size, - className, - ...props - }, - ref, - ) => { +export const Button = forwardRef( + ({ id, children, href, target, rel, onClick, variant, size, className, ...props }, ref) => { if (href) return ( > ->(({ children, ...props }, ref) => ( - - {children} - -)); +const Link = forwardRef>>( + ({ children, ...props }, ref) => ( + + {children} + + ), +); export default Link; diff --git a/src/ui/ProductDropdown.tsx b/src/ui/ProductDropdown.tsx index de60dcb..efed50a 100644 --- a/src/ui/ProductDropdown.tsx +++ b/src/ui/ProductDropdown.tsx @@ -34,15 +34,15 @@ export type ProductDropdownProps = { }; export const ProductDropdown = ({ - defaultSelectedProductName + defaultSelectedProductName, }: { - defaultSelectedProductName?: string + defaultSelectedProductName?: string; }) => { const [selectedProduct, setSelecterdProduct] = useState(defaultSelectedProductName); - + const onClick = (product: Product) => { let url = '#'; - + if (product.name === 'Agents') { url = getDefined('PUBLIC_APP_AGENTS_URL'); } else if (product.name === 'Dashboard') { @@ -63,10 +63,7 @@ export const ProductDropdown = ({
- + {products.map((product) => { return ( void; }; -const ProductDropdownItem = ({ - product, - isActive = false, - onClick, -}: ProductDropdownItemProps) => { +const ProductDropdownItem = ({ product, isActive = false, onClick }: ProductDropdownItemProps) => { const Icon = () => { const { className, ...props } = product.icon.props; return cloneElement(product.icon, { @@ -110,12 +103,7 @@ const ProductDropdownItem = ({ disabled={isActive} onClick={onClick} > - + diff --git a/src/ui/Text.tsx b/src/ui/Text.tsx index f8d6c44..c6d8e29 100644 --- a/src/ui/Text.tsx +++ b/src/ui/Text.tsx @@ -8,8 +8,7 @@ const textVariants = cva('font-elz-plex-sans', { title: 'text-balance text-[3.6rem] font-semibold text-elz-neutral-12', description: 'text-[1.6rem] font-medium text-elz-neutral-11', subtitle: 'text-[1.6rem] text-elz-neutral-12 font-semibold', - feature: - 'text-[1.2rem] font-medium uppercase tracking-[0.256rem] text-elz-neutral-11', + feature: 'text-[1.2rem] font-medium uppercase tracking-[0.256rem] text-elz-neutral-11', primary: 'text-elz-neutral-12', secondary: 'text-elz-neutral-11', }, @@ -35,16 +34,7 @@ const textVariants = cva('font-elz-plex-sans', { }, }); -export const validTextElement = [ - 'p', - 'span', - 'h1', - 'h2', - 'h3', - 'h4', - 'h5', - 'h6', -] as const; +export const validTextElement = ['p', 'span', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const; type ValidTextElement = (typeof validTextElement)[number]; From 705227b8dc4bfb20b5ae6a559319deaf82a38f42 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Wed, 30 Apr 2025 13:01:09 +0100 Subject: [PATCH 17/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20fonts=20location?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/typography.css | 63 +++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/src/styles/typography.css b/src/styles/typography.css index ffa9502..d462a56 100644 --- a/src/styles/typography.css +++ b/src/styles/typography.css @@ -1,7 +1,8 @@ +/* TODO: Fallback to host fonts instead of exporting, e.g. fleek.xyz/fonts/atyp; Once the design system is put in place this can be dismissed */ @layer base { @font-face { font-family: AtypDisplay; - src: url("@fonts/atyp/AtypDisplay-LightItalic.woff2") format("woff"); + src: url("/fonts/atyp/AtypDisplay-LightItalic.woff2") format("woff"); font-weight: 300; font-style: italic; font-display: block; @@ -9,7 +10,7 @@ @font-face { font-family: AtypDisplay; - src: url("@fonts/atyp/AtypDisplay-Regular.woff2") format("woff"); + src: url("/fonts/atyp/AtypDisplay-Regular.woff2") format("woff"); font-weight: 400; font-style: normal; font-display: block; @@ -17,7 +18,7 @@ @font-face { font-family: AtypDisplay; - src: url("@fonts/atyp/AtypDisplay-Medium.woff2") format("woff"); + src: url("/fonts/atyp/AtypDisplay-Medium.woff2") format("woff"); font-weight: 500; font-style: normal; font-display: block; @@ -25,7 +26,7 @@ @font-face { font-family: AtypDisplay; - src: url("@fonts/atyp/AtypDisplay-Semibold.woff2") format("woff"); + src: url("/fonts/atyp/AtypDisplay-Semibold.woff2") format("woff"); font-weight: 600; font-style: normal; font-display: block; @@ -33,7 +34,7 @@ @font-face { font-family: AtypDisplay; - src: url("@fonts/atyp/AtypDisplay-SemiboldItalic.woff2") format("woff"); + src: url("/fonts/atyp/AtypDisplay-SemiboldItalic.woff2") format("woff"); font-weight: 600; font-style: italic; font-display: block; @@ -41,7 +42,7 @@ @font-face { font-family: AtypDisplay; - src: url("@fonts/atyp/AtypDisplay-Bold.woff2") format("woff"); + src: url("/fonts/atyp/AtypDisplay-Bold.woff2") format("woff"); font-weight: 800; font-style: normal; font-display: block; @@ -49,7 +50,7 @@ @font-face { font-family: AtypDisplay; - src: url("@fonts/atyp/AtypDisplay-BoldItalic.woff2") format("woff"); + src: url("/fonts/atyp/AtypDisplay-BoldItalic.woff2") format("woff"); font-weight: 700; font-style: italic; font-display: block; @@ -60,53 +61,65 @@ font-style: normal; font-weight: 400; font-display: block; - src: url("@fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2") format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, - U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url("/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: block; - src: url("@fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2") format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, - U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url("/fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 700; font-display: block; - src: url("@fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2") format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, - U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url("/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: block; - src: url("@fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, - U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url("/fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: block; - src: url("@fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, - U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url("/fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 700; font-display: block; - src: url("@fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, - U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url("/fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, + U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, + U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } } From 4c298afece8722bb053fcf0db1339beb8ad5136e Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Wed, 30 Apr 2025 13:05:37 +0100 Subject: [PATCH 18/18] =?UTF-8?q?chore:=20=F0=9F=A4=96=20lint=20amends?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/providers/DynamicProvider.tsx | 2 +- src/styles/typography.css | 36 +++++++++++-------------------- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/src/providers/DynamicProvider.tsx b/src/providers/DynamicProvider.tsx index 2003d96..dee2b0b 100644 --- a/src/providers/DynamicProvider.tsx +++ b/src/providers/DynamicProvider.tsx @@ -131,7 +131,7 @@ const DynamicUtils = ({ }; check(); - }, [accessToken]); + }, [accessToken, graphqlApiUrl, onLogout, updateAccessTokenByProjectId]); return null; }; diff --git a/src/styles/typography.css b/src/styles/typography.css index d462a56..4a7dc1d 100644 --- a/src/styles/typography.css +++ b/src/styles/typography.css @@ -62,10 +62,8 @@ font-weight: 400; font-display: block; src: url("/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Mono"; @@ -73,10 +71,8 @@ font-weight: 500; font-display: block; src: url("/fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Mono"; @@ -84,10 +80,8 @@ font-weight: 700; font-display: block; src: url("/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; @@ -95,10 +89,8 @@ font-weight: 400; font-display: block; src: url("/fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; @@ -106,10 +98,8 @@ font-weight: 500; font-display: block; src: url("/fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "IBM Plex Sans"; @@ -117,9 +107,7 @@ font-weight: 700; font-display: block; src: url("/fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2"); - unicode-range: - U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, - U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, - U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, + U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } }