diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 059a5e92..77da7c54 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -7,11 +7,8 @@ on:
- reopened
- synchronize
- closed
- branches:
- - main
-
-# concurrency: preview-${{ github.ref }}
+concurrency: preview-${{ github.ref }}
jobs:
deploy-preview:
@@ -28,6 +25,7 @@ jobs:
cp -r blueprints preview/
cp index.html preview/
+
# Despliega el preview usando el action
- uses: rossjrw/pr-preview-action@v1
with:
diff --git a/.gitignore b/.gitignore
index 37cb7e2e..a547bf36 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,24 @@
-node_modules/
-.DS_Store
+# Logs
+logs
*.log
-dist/
-.env
\ No newline at end of file
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..40ede56e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,54 @@
+# React + TypeScript + Vite
+
+This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
+
+Currently, two official plugins are available:
+
+- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
+- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
+
+## Expanding the ESLint configuration
+
+If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
+
+```js
+export default tseslint.config({
+ extends: [
+ // Remove ...tseslint.configs.recommended and replace with this
+ ...tseslint.configs.recommendedTypeChecked,
+ // Alternatively, use this for stricter rules
+ ...tseslint.configs.strictTypeChecked,
+ // Optionally, add this for stylistic rules
+ ...tseslint.configs.stylisticTypeChecked,
+ ],
+ languageOptions: {
+ // other options...
+ parserOptions: {
+ project: ['./tsconfig.node.json', './tsconfig.app.json'],
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+})
+```
+
+You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
+
+```js
+// eslint.config.js
+import reactX from 'eslint-plugin-react-x'
+import reactDom from 'eslint-plugin-react-dom'
+
+export default tseslint.config({
+ plugins: {
+ // Add the react-x and react-dom plugins
+ 'react-x': reactX,
+ 'react-dom': reactDom,
+ },
+ rules: {
+ // other rules...
+ // Enable its recommended typescript rules
+ ...reactX.configs['recommended-typescript'].rules,
+ ...reactDom.configs.recommended.rules,
+ },
+})
+```
diff --git a/components.json b/components.json
new file mode 100644
index 00000000..73afbdbc
--- /dev/null
+++ b/components.json
@@ -0,0 +1,21 @@
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "new-york",
+ "rsc": false,
+ "tsx": true,
+ "tailwind": {
+ "config": "",
+ "css": "src/index.css",
+ "baseColor": "neutral",
+ "cssVariables": true,
+ "prefix": ""
+ },
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils",
+ "ui": "@/components/ui",
+ "lib": "@/lib",
+ "hooks": "@/hooks"
+ },
+ "iconLibrary": "lucide"
+}
\ No newline at end of file
diff --git a/index.html b/index.html
index a1f2f41c..4600ddfe 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,13 @@
-
Blueprints Preview
-
+
+
+
+
+
+
+ Dokploy Blueprints
+
+
+
+
+
+
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..6aaa8cdd
--- /dev/null
+++ b/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "my-app",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b && vite build",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@radix-ui/react-dialog": "^1.1.6",
+ "@radix-ui/react-slot": "^1.1.2",
+ "@tailwindcss/vite": "^4.0.12",
+ "class-variance-authority": "^0.7.1",
+ "clsx": "^2.1.1",
+ "copy-to-clipboard": "^3.3.3",
+ "lucide-react": "^0.479.0",
+ "next-themes": "^0.4.5",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
+ "sonner": "^2.0.1",
+ "tailwind-merge": "^3.0.2",
+ "tailwindcss": "^4.0.12",
+ "tailwindcss-animate": "^1.0.7"
+ },
+ "devDependencies": {
+ "@types/react": "^19.0.10",
+ "@types/react-dom": "^19.0.4",
+ "@vitejs/plugin-react": "^4.3.4",
+ "globals": "^15.15.0",
+ "typescript": "~5.7.2",
+ "vite": "^6.2.0"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 00000000..4d87ddff
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,1835 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@radix-ui/react-dialog':
+ specifier: ^1.1.6
+ version: 1.1.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-slot':
+ specifier: ^1.1.2
+ version: 1.1.2(@types/react@19.0.10)(react@19.0.0)
+ '@tailwindcss/vite':
+ specifier: ^4.0.12
+ version: 4.0.12(vite@6.2.1(jiti@2.4.2)(lightningcss@1.29.2))
+ class-variance-authority:
+ specifier: ^0.7.1
+ version: 0.7.1
+ clsx:
+ specifier: ^2.1.1
+ version: 2.1.1
+ copy-to-clipboard:
+ specifier: ^3.3.3
+ version: 3.3.3
+ lucide-react:
+ specifier: ^0.479.0
+ version: 0.479.0(react@19.0.0)
+ next-themes:
+ specifier: ^0.4.5
+ version: 0.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ react:
+ specifier: ^19.0.0
+ version: 19.0.0
+ react-dom:
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
+ sonner:
+ specifier: ^2.0.1
+ version: 2.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ tailwind-merge:
+ specifier: ^3.0.2
+ version: 3.0.2
+ tailwindcss:
+ specifier: ^4.0.12
+ version: 4.0.12
+ tailwindcss-animate:
+ specifier: ^1.0.7
+ version: 1.0.7(tailwindcss@4.0.12)
+ devDependencies:
+ '@types/react':
+ specifier: ^19.0.10
+ version: 19.0.10
+ '@types/react-dom':
+ specifier: ^19.0.4
+ version: 19.0.4(@types/react@19.0.10)
+ '@vitejs/plugin-react':
+ specifier: ^4.3.4
+ version: 4.3.4(vite@6.2.1(jiti@2.4.2)(lightningcss@1.29.2))
+ globals:
+ specifier: ^15.15.0
+ version: 15.15.0
+ typescript:
+ specifier: ~5.7.2
+ version: 5.7.3
+ vite:
+ specifier: ^6.2.0
+ version: 6.2.1(jiti@2.4.2)(lightningcss@1.29.2)
+
+packages:
+
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
+ '@babel/code-frame@7.26.2':
+ resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.26.8':
+ resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.26.9':
+ resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.26.9':
+ resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.26.5':
+ resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.25.9':
+ resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.26.0':
+ resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.26.5':
+ resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.25.9':
+ resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.25.9':
+ resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.26.9':
+ resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.26.9':
+ resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-transform-react-jsx-self@7.25.9':
+ resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-source@7.25.9':
+ resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/template@7.26.9':
+ resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.26.9':
+ resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.26.9':
+ resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
+ engines: {node: '>=6.9.0'}
+
+ '@esbuild/aix-ppc64@0.25.1':
+ resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.25.1':
+ resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@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.25.1':
+ resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@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.25.1':
+ resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.25.1':
+ resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.25.1':
+ resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.25.1':
+ resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.25.1':
+ resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@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.25.1':
+ resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.25.1':
+ resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@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.25.1':
+ resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.25.1':
+ resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.25.1':
+ resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@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.25.1':
+ resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@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.25.1':
+ resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.25.1':
+ resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@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.25.1':
+ resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.25.1':
+ resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@jridgewell/gen-mapping@0.3.8':
+ resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/set-array@1.2.1':
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+ '@radix-ui/primitive@1.1.1':
+ resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==}
+
+ '@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-dialog@1.1.6':
+ resolution: {integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==}
+ 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-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-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-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-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
+
+ '@rollup/rollup-android-arm-eabi@4.35.0':
+ resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.35.0':
+ resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.35.0':
+ resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.35.0':
+ resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.35.0':
+ resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.35.0':
+ resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.35.0':
+ resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.35.0':
+ resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-gnu@4.35.0':
+ resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-musl@4.35.0':
+ resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.35.0':
+ resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==}
+ cpu: [loong64]
+ os: [linux]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.35.0':
+ resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.35.0':
+ resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.35.0':
+ resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-gnu@4.35.0':
+ resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-musl@4.35.0':
+ resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-win32-arm64-msvc@4.35.0':
+ resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.35.0':
+ resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.35.0':
+ resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==}
+ cpu: [x64]
+ os: [win32]
+
+ '@tailwindcss/node@4.0.12':
+ resolution: {integrity: sha512-a6J11K1Ztdln9OrGfoM75/hChYPcHYGNYimqciMrvKXRmmPaS8XZTHhdvb5a3glz4Kd4ZxE1MnuFE2c0fGGmtg==}
+
+ '@tailwindcss/oxide-android-arm64@4.0.12':
+ resolution: {integrity: sha512-dAXCaemu3mHLXcA5GwGlQynX8n7tTdvn5i1zAxRvZ5iC9fWLl5bGnjZnzrQqT7ttxCvRwdVf3IHUnMVdDBO/kQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@tailwindcss/oxide-darwin-arm64@4.0.12':
+ resolution: {integrity: sha512-vPNI+TpJQ7sizselDXIJdYkx9Cu6JBdtmRWujw9pVIxW8uz3O2PjgGGzL/7A0sXI8XDjSyRChrUnEW9rQygmJQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-darwin-x64@4.0.12':
+ resolution: {integrity: sha512-RL/9jM41Fdq4Efr35C5wgLx98BirnrfwuD+zgMFK6Ir68HeOSqBhW9jsEeC7Y/JcGyPd3MEoJVIU4fAb7YLg7A==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-freebsd-x64@4.0.12':
+ resolution: {integrity: sha512-7WzWiax+LguJcMEimY0Q4sBLlFXu1tYxVka3+G2M9KmU/3m84J3jAIV4KZWnockbHsbb2XgrEjtlJKVwHQCoRA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.12':
+ resolution: {integrity: sha512-X9LRC7jjE1QlfIaBbXjY0PGeQP87lz5mEfLSVs2J1yRc9PSg1tEPS9NBqY4BU9v5toZgJgzKeaNltORyTs22TQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.0.12':
+ resolution: {integrity: sha512-i24IFNq2402zfDdoWKypXz0ZNS2G4NKaA82tgBlE2OhHIE+4mg2JDb5wVfyP6R+MCm5grgXvurcIcKWvo44QiQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.0.12':
+ resolution: {integrity: sha512-LmOdshJBfAGIBG0DdBWhI0n5LTMurnGGJCHcsm9F//ISfsHtCnnYIKgYQui5oOz1SUCkqsMGfkAzWyNKZqbGNw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.0.12':
+ resolution: {integrity: sha512-OSK667qZRH30ep8RiHbZDQfqkXjnzKxdn0oRwWzgCO8CoTxV+MvIkd0BWdQbYtYuM1wrakARV/Hwp0eA/qzdbw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-x64-musl@4.0.12':
+ resolution: {integrity: sha512-uylhWq6OWQ8krV8Jk+v0H/3AZKJW6xYMgNMyNnUbbYXWi7hIVdxRKNUB5UvrlC3RxtgsK5EAV2i1CWTRsNcAnA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.0.12':
+ resolution: {integrity: sha512-XDLnhMoXZEEOir1LK43/gHHwK84V1GlV8+pAncUAIN2wloeD+nNciI9WRIY/BeFTqES22DhTIGoilSO39xDb2g==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.0.12':
+ resolution: {integrity: sha512-I/BbjCLpKDQucvtn6rFuYLst1nfFwSMYyPzkx/095RE+tuzk5+fwXuzQh7T3fIBTcbn82qH/sFka7yPGA50tLw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@tailwindcss/oxide@4.0.12':
+ resolution: {integrity: sha512-DWb+myvJB9xJwelwT9GHaMc1qJj6MDXRDR0CS+T8IdkejAtu8ctJAgV4r1drQJLPeS7mNwq2UHW2GWrudTf63A==}
+ engines: {node: '>= 10'}
+
+ '@tailwindcss/vite@4.0.12':
+ resolution: {integrity: sha512-JM3gp601UJiryIZ9R2bSqalzcOy15RCybQ1Q+BJqDEwVyo4LkWKeqQAcrpHapWXY31OJFTuOUVBFDWMhzHm2Bg==}
+ peerDependencies:
+ vite: ^5.2.0 || ^6
+
+ '@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.6':
+ resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+
+ '@types/estree@1.0.6':
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+
+ '@types/react-dom@19.0.4':
+ resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==}
+ peerDependencies:
+ '@types/react': ^19.0.0
+
+ '@types/react@19.0.10':
+ resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==}
+
+ '@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
+
+ aria-hidden@1.2.4:
+ resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
+ engines: {node: '>=10'}
+
+ browserslist@4.24.4:
+ resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ caniuse-lite@1.0.30001703:
+ resolution: {integrity: sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==}
+
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ copy-to-clipboard@3.3.3:
+ resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ detect-libc@2.0.3:
+ resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
+ engines: {node: '>=8'}
+
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
+ electron-to-chromium@1.5.113:
+ resolution: {integrity: sha512-wjT2O4hX+wdWPJ76gWSkMhcHAV2PTMX+QetUCPYEdCIe+cxmgzzSSiGRCKW8nuh4mwKZlpv0xvoW7OF2X+wmHg==}
+
+ enhanced-resolve@5.18.1:
+ resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
+ engines: {node: '>=10.13.0'}
+
+ esbuild@0.25.1:
+ resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
+ globals@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
+ globals@15.15.0:
+ resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
+ engines: {node: '>=18'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ jiti@2.4.2:
+ resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
+ hasBin: true
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ lightningcss-darwin-arm64@1.29.2:
+ resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.29.2:
+ resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.29.2:
+ resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.29.2:
+ resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.29.2:
+ resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.29.2:
+ resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.29.2:
+ resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-musl@1.29.2:
+ resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-win32-arm64-msvc@1.29.2:
+ resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.29.2:
+ resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.29.2:
+ resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
+ engines: {node: '>= 12.0.0'}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ lucide-react@0.479.0:
+ resolution: {integrity: sha512-aBhNnveRhorBOK7uA4gDjgaf+YlHMdMhQ/3cupk6exM10hWlEU+2QtWYOfhXhjAsmdb6LeKR+NZnow4UxRRiTQ==}
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ nanoid@3.3.9:
+ resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ next-themes@0.4.5:
+ resolution: {integrity: sha512-E8/gYKBxZknOXBiDk/sRokAvkOw35PTUD4Gxtq1eBhd0r4Dx5S42zU65/q8ozR5rcSG2ZlE1E3+ShlUpC7an+A==}
+ peerDependencies:
+ react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
+
+ node-releases@2.0.19:
+ resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ postcss@8.5.3:
+ resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ react-dom@19.0.0:
+ resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
+ peerDependencies:
+ react: ^19.0.0
+
+ react-refresh@0.14.2:
+ 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-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@19.0.0:
+ resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
+ engines: {node: '>=0.10.0'}
+
+ rollup@4.35.0:
+ resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ scheduler@0.25.0:
+ resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ sonner@2.0.1:
+ resolution: {integrity: sha512-FRBphaehZ5tLdLcQ8g2WOIRE+Y7BCfWi5Zyd8bCvBjiW8TxxAyoWZIxS661Yz6TGPqFQ4VLzOF89WEYhfynSFQ==}
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ 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@4.0.12:
+ resolution: {integrity: sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==}
+
+ tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+
+ toggle-selection@1.0.6:
+ resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ typescript@5.7.3:
+ resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ update-browserslist-db@1.1.3:
+ resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ use-callback-ref@1.3.3:
+ resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
+ 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
+
+ use-sidecar@1.1.3:
+ resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
+ 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
+
+ vite@6.2.1:
+ resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==}
+ 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
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+snapshots:
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@babel/code-frame@7.26.2':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.25.9
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.26.8': {}
+
+ '@babel/core@7.26.9':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.9
+ '@babel/helper-compilation-targets': 7.26.5
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9)
+ '@babel/helpers': 7.26.9
+ '@babel/parser': 7.26.9
+ '@babel/template': 7.26.9
+ '@babel/traverse': 7.26.9
+ '@babel/types': 7.26.9
+ convert-source-map: 2.0.0
+ debug: 4.4.0
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.26.9':
+ dependencies:
+ '@babel/parser': 7.26.9
+ '@babel/types': 7.26.9
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.1.0
+
+ '@babel/helper-compilation-targets@7.26.5':
+ dependencies:
+ '@babel/compat-data': 7.26.8
+ '@babel/helper-validator-option': 7.25.9
+ browserslist: 4.24.4
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-module-imports@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.26.9
+ '@babel/types': 7.26.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)':
+ dependencies:
+ '@babel/core': 7.26.9
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.26.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.26.5': {}
+
+ '@babel/helper-string-parser@7.25.9': {}
+
+ '@babel/helper-validator-identifier@7.25.9': {}
+
+ '@babel/helper-validator-option@7.25.9': {}
+
+ '@babel/helpers@7.26.9':
+ dependencies:
+ '@babel/template': 7.26.9
+ '@babel/types': 7.26.9
+
+ '@babel/parser@7.26.9':
+ dependencies:
+ '@babel/types': 7.26.9
+
+ '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.9)':
+ dependencies:
+ '@babel/core': 7.26.9
+ '@babel/helper-plugin-utils': 7.26.5
+
+ '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.9)':
+ dependencies:
+ '@babel/core': 7.26.9
+ '@babel/helper-plugin-utils': 7.26.5
+
+ '@babel/template@7.26.9':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/parser': 7.26.9
+ '@babel/types': 7.26.9
+
+ '@babel/traverse@7.26.9':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.9
+ '@babel/parser': 7.26.9
+ '@babel/template': 7.26.9
+ '@babel/types': 7.26.9
+ debug: 4.4.0
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.26.9':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
+ '@esbuild/aix-ppc64@0.25.1':
+ optional: true
+
+ '@esbuild/android-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/android-arm@0.25.1':
+ optional: true
+
+ '@esbuild/android-x64@0.25.1':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/darwin-x64@0.25.1':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-arm@0.25.1':
+ optional: true
+
+ '@esbuild/linux-ia32@0.25.1':
+ optional: true
+
+ '@esbuild/linux-loong64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.25.1':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-s390x@0.25.1':
+ optional: true
+
+ '@esbuild/linux-x64@0.25.1':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.25.1':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.25.1':
+ optional: true
+
+ '@esbuild/sunos-x64@0.25.1':
+ optional: true
+
+ '@esbuild/win32-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/win32-ia32@0.25.1':
+ optional: true
+
+ '@esbuild/win32-x64@0.25.1':
+ optional: true
+
+ '@jridgewell/gen-mapping@0.3.8':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@radix-ui/primitive@1.1.1': {}
+
+ '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-context@1.1.1(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-dialog@1.1.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-context': 1.1.1(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-id': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-slot': 1.1.2(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ aria-hidden: 1.2.4
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ react-remove-scroll: 2.6.3(@types/react@19.0.10)(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.10
+ '@types/react-dom': 19.0.4(@types/react@19.0.10)
+
+ '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.10
+ '@types/react-dom': 19.0.4(@types/react@19.0.10)
+
+ '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.10
+ '@types/react-dom': 19.0.4(@types/react@19.0.10)
+
+ '@radix-ui/react-id@1.1.0(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-portal@1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.10
+ '@types/react-dom': 19.0.4(@types/react@19.0.10)
+
+ '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.10
+ '@types/react-dom': 19.0.4(@types/react@19.0.10)
+
+ '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.2(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.10
+ '@types/react-dom': 19.0.4(@types/react@19.0.10)
+
+ '@radix-ui/react-slot@1.1.2(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0)
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.10)(react@19.0.0)':
+ dependencies:
+ react: 19.0.0
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ '@rollup/rollup-android-arm-eabi@4.35.0':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.35.0':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.35.0':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.35.0':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.35.0':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.35.0':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.35.0':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.35.0':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.35.0':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.35.0':
+ optional: true
+
+ '@tailwindcss/node@4.0.12':
+ dependencies:
+ enhanced-resolve: 5.18.1
+ jiti: 2.4.2
+ tailwindcss: 4.0.12
+
+ '@tailwindcss/oxide-android-arm64@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-arm64@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-x64@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-freebsd-x64@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-musl@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.0.12':
+ optional: true
+
+ '@tailwindcss/oxide@4.0.12':
+ optionalDependencies:
+ '@tailwindcss/oxide-android-arm64': 4.0.12
+ '@tailwindcss/oxide-darwin-arm64': 4.0.12
+ '@tailwindcss/oxide-darwin-x64': 4.0.12
+ '@tailwindcss/oxide-freebsd-x64': 4.0.12
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.12
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.0.12
+ '@tailwindcss/oxide-linux-arm64-musl': 4.0.12
+ '@tailwindcss/oxide-linux-x64-gnu': 4.0.12
+ '@tailwindcss/oxide-linux-x64-musl': 4.0.12
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.0.12
+ '@tailwindcss/oxide-win32-x64-msvc': 4.0.12
+
+ '@tailwindcss/vite@4.0.12(vite@6.2.1(jiti@2.4.2)(lightningcss@1.29.2))':
+ dependencies:
+ '@tailwindcss/node': 4.0.12
+ '@tailwindcss/oxide': 4.0.12
+ lightningcss: 1.29.2
+ tailwindcss: 4.0.12
+ vite: 6.2.1(jiti@2.4.2)(lightningcss@1.29.2)
+
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.26.9
+ '@babel/types': 7.26.9
+ '@types/babel__generator': 7.6.8
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.20.6
+
+ '@types/babel__generator@7.6.8':
+ dependencies:
+ '@babel/types': 7.26.9
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.26.9
+ '@babel/types': 7.26.9
+
+ '@types/babel__traverse@7.20.6':
+ dependencies:
+ '@babel/types': 7.26.9
+
+ '@types/estree@1.0.6': {}
+
+ '@types/react-dom@19.0.4(@types/react@19.0.10)':
+ dependencies:
+ '@types/react': 19.0.10
+
+ '@types/react@19.0.10':
+ dependencies:
+ csstype: 3.1.3
+
+ '@vitejs/plugin-react@4.3.4(vite@6.2.1(jiti@2.4.2)(lightningcss@1.29.2))':
+ dependencies:
+ '@babel/core': 7.26.9
+ '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.9)
+ '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.9)
+ '@types/babel__core': 7.20.5
+ react-refresh: 0.14.2
+ vite: 6.2.1(jiti@2.4.2)(lightningcss@1.29.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ aria-hidden@1.2.4:
+ dependencies:
+ tslib: 2.8.1
+
+ browserslist@4.24.4:
+ dependencies:
+ caniuse-lite: 1.0.30001703
+ electron-to-chromium: 1.5.113
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.3(browserslist@4.24.4)
+
+ caniuse-lite@1.0.30001703: {}
+
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
+ clsx@2.1.1: {}
+
+ convert-source-map@2.0.0: {}
+
+ copy-to-clipboard@3.3.3:
+ dependencies:
+ toggle-selection: 1.0.6
+
+ csstype@3.1.3: {}
+
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
+ detect-libc@2.0.3: {}
+
+ detect-node-es@1.1.0: {}
+
+ electron-to-chromium@1.5.113: {}
+
+ enhanced-resolve@5.18.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+
+ esbuild@0.25.1:
+ 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
+
+ escalade@3.2.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ gensync@1.0.0-beta.2: {}
+
+ get-nonce@1.0.1: {}
+
+ globals@11.12.0: {}
+
+ globals@15.15.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ jiti@2.4.2: {}
+
+ js-tokens@4.0.0: {}
+
+ jsesc@3.1.0: {}
+
+ json5@2.2.3: {}
+
+ lightningcss-darwin-arm64@1.29.2:
+ optional: true
+
+ lightningcss-darwin-x64@1.29.2:
+ optional: true
+
+ lightningcss-freebsd-x64@1.29.2:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.29.2:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.29.2:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.29.2:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.29.2:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.29.2:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.29.2:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.29.2:
+ optional: true
+
+ lightningcss@1.29.2:
+ dependencies:
+ detect-libc: 2.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.29.2
+ lightningcss-darwin-x64: 1.29.2
+ lightningcss-freebsd-x64: 1.29.2
+ lightningcss-linux-arm-gnueabihf: 1.29.2
+ lightningcss-linux-arm64-gnu: 1.29.2
+ lightningcss-linux-arm64-musl: 1.29.2
+ lightningcss-linux-x64-gnu: 1.29.2
+ lightningcss-linux-x64-musl: 1.29.2
+ lightningcss-win32-arm64-msvc: 1.29.2
+ lightningcss-win32-x64-msvc: 1.29.2
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ lucide-react@0.479.0(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.9: {}
+
+ next-themes@0.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+
+ node-releases@2.0.19: {}
+
+ picocolors@1.1.1: {}
+
+ postcss@8.5.3:
+ dependencies:
+ nanoid: 3.3.9
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ react-dom@19.0.0(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ scheduler: 0.25.0
+
+ react-refresh@0.14.2: {}
+
+ react-remove-scroll-bar@2.3.8(@types/react@19.0.10)(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0)
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ react-remove-scroll@2.6.3(@types/react@19.0.10)(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ react-remove-scroll-bar: 2.3.8(@types/react@19.0.10)(react@19.0.0)
+ react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(@types/react@19.0.10)(react@19.0.0)
+ use-sidecar: 1.1.3(@types/react@19.0.10)(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ react-style-singleton@2.2.3(@types/react@19.0.10)(react@19.0.0):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 19.0.0
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ react@19.0.0: {}
+
+ rollup@4.35.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.35.0
+ '@rollup/rollup-android-arm64': 4.35.0
+ '@rollup/rollup-darwin-arm64': 4.35.0
+ '@rollup/rollup-darwin-x64': 4.35.0
+ '@rollup/rollup-freebsd-arm64': 4.35.0
+ '@rollup/rollup-freebsd-x64': 4.35.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.35.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.35.0
+ '@rollup/rollup-linux-arm64-gnu': 4.35.0
+ '@rollup/rollup-linux-arm64-musl': 4.35.0
+ '@rollup/rollup-linux-loongarch64-gnu': 4.35.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.35.0
+ '@rollup/rollup-linux-s390x-gnu': 4.35.0
+ '@rollup/rollup-linux-x64-gnu': 4.35.0
+ '@rollup/rollup-linux-x64-musl': 4.35.0
+ '@rollup/rollup-win32-arm64-msvc': 4.35.0
+ '@rollup/rollup-win32-ia32-msvc': 4.35.0
+ '@rollup/rollup-win32-x64-msvc': 4.35.0
+ fsevents: 2.3.3
+
+ scheduler@0.25.0: {}
+
+ semver@6.3.1: {}
+
+ sonner@2.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+
+ source-map-js@1.2.1: {}
+
+ tailwind-merge@3.0.2: {}
+
+ tailwindcss-animate@1.0.7(tailwindcss@4.0.12):
+ dependencies:
+ tailwindcss: 4.0.12
+
+ tailwindcss@4.0.12: {}
+
+ tapable@2.2.1: {}
+
+ toggle-selection@1.0.6: {}
+
+ tslib@2.8.1: {}
+
+ typescript@5.7.3: {}
+
+ update-browserslist-db@1.1.3(browserslist@4.24.4):
+ dependencies:
+ browserslist: 4.24.4
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ use-callback-ref@1.3.3(@types/react@19.0.10)(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ use-sidecar@1.1.3(@types/react@19.0.10)(react@19.0.0):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 19.0.0
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.0.10
+
+ vite@6.2.1(jiti@2.4.2)(lightningcss@1.29.2):
+ dependencies:
+ esbuild: 0.25.1
+ postcss: 8.5.3
+ rollup: 4.35.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ jiti: 2.4.2
+ lightningcss: 1.29.2
+
+ yallist@3.1.1: {}
diff --git a/blueprints/activepieces/activepieces.svg b/public/blueprints/activepieces/activepieces.svg
similarity index 100%
rename from blueprints/activepieces/activepieces.svg
rename to public/blueprints/activepieces/activepieces.svg
diff --git a/blueprints/activepieces/docker-compose.yml b/public/blueprints/activepieces/docker-compose.yml
similarity index 100%
rename from blueprints/activepieces/docker-compose.yml
rename to public/blueprints/activepieces/docker-compose.yml
diff --git a/blueprints/activepieces/template.yml b/public/blueprints/activepieces/template.yml
similarity index 100%
rename from blueprints/activepieces/template.yml
rename to public/blueprints/activepieces/template.yml
diff --git a/blueprints/actualbudget/actualbudget.png b/public/blueprints/actualbudget/actualbudget.png
similarity index 100%
rename from blueprints/actualbudget/actualbudget.png
rename to public/blueprints/actualbudget/actualbudget.png
diff --git a/blueprints/actualbudget/docker-compose.yml b/public/blueprints/actualbudget/docker-compose.yml
similarity index 100%
rename from blueprints/actualbudget/docker-compose.yml
rename to public/blueprints/actualbudget/docker-compose.yml
diff --git a/blueprints/actualbudget/template.yml b/public/blueprints/actualbudget/template.yml
similarity index 100%
rename from blueprints/actualbudget/template.yml
rename to public/blueprints/actualbudget/template.yml
diff --git a/blueprints/alist/alist.svg b/public/blueprints/alist/alist.svg
similarity index 100%
rename from blueprints/alist/alist.svg
rename to public/blueprints/alist/alist.svg
diff --git a/blueprints/alist/docker-compose.yml b/public/blueprints/alist/docker-compose.yml
similarity index 100%
rename from blueprints/alist/docker-compose.yml
rename to public/blueprints/alist/docker-compose.yml
diff --git a/blueprints/alist/template.yml b/public/blueprints/alist/template.yml
similarity index 100%
rename from blueprints/alist/template.yml
rename to public/blueprints/alist/template.yml
diff --git a/blueprints/answer/answer.png b/public/blueprints/answer/answer.png
similarity index 100%
rename from blueprints/answer/answer.png
rename to public/blueprints/answer/answer.png
diff --git a/blueprints/answer/docker-compose.yml b/public/blueprints/answer/docker-compose.yml
similarity index 100%
rename from blueprints/answer/docker-compose.yml
rename to public/blueprints/answer/docker-compose.yml
diff --git a/blueprints/answer/template.yml b/public/blueprints/answer/template.yml
similarity index 100%
rename from blueprints/answer/template.yml
rename to public/blueprints/answer/template.yml
diff --git a/blueprints/appsmith/appsmith.png b/public/blueprints/appsmith/appsmith.png
similarity index 100%
rename from blueprints/appsmith/appsmith.png
rename to public/blueprints/appsmith/appsmith.png
diff --git a/blueprints/appsmith/docker-compose.yml b/public/blueprints/appsmith/docker-compose.yml
similarity index 100%
rename from blueprints/appsmith/docker-compose.yml
rename to public/blueprints/appsmith/docker-compose.yml
diff --git a/blueprints/appsmith/template.yml b/public/blueprints/appsmith/template.yml
similarity index 100%
rename from blueprints/appsmith/template.yml
rename to public/blueprints/appsmith/template.yml
diff --git a/blueprints/appwrite/appwrite.svg b/public/blueprints/appwrite/appwrite.svg
similarity index 100%
rename from blueprints/appwrite/appwrite.svg
rename to public/blueprints/appwrite/appwrite.svg
diff --git a/blueprints/appwrite/docker-compose.yml b/public/blueprints/appwrite/docker-compose.yml
similarity index 100%
rename from blueprints/appwrite/docker-compose.yml
rename to public/blueprints/appwrite/docker-compose.yml
diff --git a/blueprints/appwrite/template.yml b/public/blueprints/appwrite/template.yml
similarity index 100%
rename from blueprints/appwrite/template.yml
rename to public/blueprints/appwrite/template.yml
diff --git a/blueprints/aptabase/aptabase.svg b/public/blueprints/aptabase/aptabase.svg
similarity index 100%
rename from blueprints/aptabase/aptabase.svg
rename to public/blueprints/aptabase/aptabase.svg
diff --git a/blueprints/aptabase/docker-compose.yml b/public/blueprints/aptabase/docker-compose.yml
similarity index 100%
rename from blueprints/aptabase/docker-compose.yml
rename to public/blueprints/aptabase/docker-compose.yml
diff --git a/blueprints/aptabase/template.yml b/public/blueprints/aptabase/template.yml
similarity index 100%
rename from blueprints/aptabase/template.yml
rename to public/blueprints/aptabase/template.yml
diff --git a/blueprints/baserow/baserow.webp b/public/blueprints/baserow/baserow.webp
similarity index 100%
rename from blueprints/baserow/baserow.webp
rename to public/blueprints/baserow/baserow.webp
diff --git a/blueprints/baserow/docker-compose.yml b/public/blueprints/baserow/docker-compose.yml
similarity index 100%
rename from blueprints/baserow/docker-compose.yml
rename to public/blueprints/baserow/docker-compose.yml
diff --git a/blueprints/baserow/template.yml b/public/blueprints/baserow/template.yml
similarity index 100%
rename from blueprints/baserow/template.yml
rename to public/blueprints/baserow/template.yml
diff --git a/blueprints/blender/blender.svg b/public/blueprints/blender/blender.svg
similarity index 100%
rename from blueprints/blender/blender.svg
rename to public/blueprints/blender/blender.svg
diff --git a/blueprints/blender/docker-compose.yml b/public/blueprints/blender/docker-compose.yml
similarity index 100%
rename from blueprints/blender/docker-compose.yml
rename to public/blueprints/blender/docker-compose.yml
diff --git a/blueprints/blender/template.yml b/public/blueprints/blender/template.yml
similarity index 100%
rename from blueprints/blender/template.yml
rename to public/blueprints/blender/template.yml
diff --git a/blueprints/browserless/browserless.svg b/public/blueprints/browserless/browserless.svg
similarity index 100%
rename from blueprints/browserless/browserless.svg
rename to public/blueprints/browserless/browserless.svg
diff --git a/blueprints/browserless/docker-compose.yml b/public/blueprints/browserless/docker-compose.yml
similarity index 100%
rename from blueprints/browserless/docker-compose.yml
rename to public/blueprints/browserless/docker-compose.yml
diff --git a/blueprints/browserless/template.yml b/public/blueprints/browserless/template.yml
similarity index 100%
rename from blueprints/browserless/template.yml
rename to public/blueprints/browserless/template.yml
diff --git a/blueprints/budibase/budibase.svg b/public/blueprints/budibase/budibase.svg
similarity index 100%
rename from blueprints/budibase/budibase.svg
rename to public/blueprints/budibase/budibase.svg
diff --git a/blueprints/budibase/docker-compose.yml b/public/blueprints/budibase/docker-compose.yml
similarity index 100%
rename from blueprints/budibase/docker-compose.yml
rename to public/blueprints/budibase/docker-compose.yml
diff --git a/blueprints/budibase/template.yml b/public/blueprints/budibase/template.yml
similarity index 100%
rename from blueprints/budibase/template.yml
rename to public/blueprints/budibase/template.yml
diff --git a/blueprints/calcom/calcom.jpg b/public/blueprints/calcom/calcom.jpg
similarity index 100%
rename from blueprints/calcom/calcom.jpg
rename to public/blueprints/calcom/calcom.jpg
diff --git a/blueprints/calcom/docker-compose.yml b/public/blueprints/calcom/docker-compose.yml
similarity index 100%
rename from blueprints/calcom/docker-compose.yml
rename to public/blueprints/calcom/docker-compose.yml
diff --git a/blueprints/calcom/template.yml b/public/blueprints/calcom/template.yml
similarity index 100%
rename from blueprints/calcom/template.yml
rename to public/blueprints/calcom/template.yml
diff --git a/blueprints/chatwoot/chatwoot.svg b/public/blueprints/chatwoot/chatwoot.svg
similarity index 100%
rename from blueprints/chatwoot/chatwoot.svg
rename to public/blueprints/chatwoot/chatwoot.svg
diff --git a/blueprints/chatwoot/docker-compose.yml b/public/blueprints/chatwoot/docker-compose.yml
similarity index 100%
rename from blueprints/chatwoot/docker-compose.yml
rename to public/blueprints/chatwoot/docker-compose.yml
diff --git a/blueprints/chatwoot/template.yml b/public/blueprints/chatwoot/template.yml
similarity index 100%
rename from blueprints/chatwoot/template.yml
rename to public/blueprints/chatwoot/template.yml
diff --git a/blueprints/checkmate/checkmate.png b/public/blueprints/checkmate/checkmate.png
similarity index 100%
rename from blueprints/checkmate/checkmate.png
rename to public/blueprints/checkmate/checkmate.png
diff --git a/blueprints/checkmate/docker-compose.yml b/public/blueprints/checkmate/docker-compose.yml
similarity index 100%
rename from blueprints/checkmate/docker-compose.yml
rename to public/blueprints/checkmate/docker-compose.yml
diff --git a/blueprints/checkmate/template.yml b/public/blueprints/checkmate/template.yml
similarity index 100%
rename from blueprints/checkmate/template.yml
rename to public/blueprints/checkmate/template.yml
diff --git a/blueprints/cloudflared/cloudflared.svg b/public/blueprints/cloudflared/cloudflared.svg
similarity index 100%
rename from blueprints/cloudflared/cloudflared.svg
rename to public/blueprints/cloudflared/cloudflared.svg
diff --git a/blueprints/cloudflared/docker-compose.yml b/public/blueprints/cloudflared/docker-compose.yml
similarity index 100%
rename from blueprints/cloudflared/docker-compose.yml
rename to public/blueprints/cloudflared/docker-compose.yml
diff --git a/blueprints/cloudflared/template.yml b/public/blueprints/cloudflared/template.yml
similarity index 100%
rename from blueprints/cloudflared/template.yml
rename to public/blueprints/cloudflared/template.yml
diff --git a/blueprints/coder/coder.svg b/public/blueprints/coder/coder.svg
similarity index 100%
rename from blueprints/coder/coder.svg
rename to public/blueprints/coder/coder.svg
diff --git a/blueprints/coder/docker-compose.yml b/public/blueprints/coder/docker-compose.yml
similarity index 100%
rename from blueprints/coder/docker-compose.yml
rename to public/blueprints/coder/docker-compose.yml
diff --git a/blueprints/coder/template.yml b/public/blueprints/coder/template.yml
similarity index 100%
rename from blueprints/coder/template.yml
rename to public/blueprints/coder/template.yml
diff --git a/blueprints/conduit/conduit.svg b/public/blueprints/conduit/conduit.svg
similarity index 100%
rename from blueprints/conduit/conduit.svg
rename to public/blueprints/conduit/conduit.svg
diff --git a/blueprints/conduit/docker-compose.yml b/public/blueprints/conduit/docker-compose.yml
similarity index 100%
rename from blueprints/conduit/docker-compose.yml
rename to public/blueprints/conduit/docker-compose.yml
diff --git a/blueprints/conduit/template.yml b/public/blueprints/conduit/template.yml
similarity index 100%
rename from blueprints/conduit/template.yml
rename to public/blueprints/conduit/template.yml
diff --git a/blueprints/conduwuit/conduwuit.svg b/public/blueprints/conduwuit/conduwuit.svg
similarity index 100%
rename from blueprints/conduwuit/conduwuit.svg
rename to public/blueprints/conduwuit/conduwuit.svg
diff --git a/blueprints/conduwuit/docker-compose.yml b/public/blueprints/conduwuit/docker-compose.yml
similarity index 100%
rename from blueprints/conduwuit/docker-compose.yml
rename to public/blueprints/conduwuit/docker-compose.yml
diff --git a/blueprints/conduwuit/template.yml b/public/blueprints/conduwuit/template.yml
similarity index 100%
rename from blueprints/conduwuit/template.yml
rename to public/blueprints/conduwuit/template.yml
diff --git a/blueprints/convex/convex.svg b/public/blueprints/convex/convex.svg
similarity index 100%
rename from blueprints/convex/convex.svg
rename to public/blueprints/convex/convex.svg
diff --git a/blueprints/convex/docker-compose.yml b/public/blueprints/convex/docker-compose.yml
similarity index 100%
rename from blueprints/convex/docker-compose.yml
rename to public/blueprints/convex/docker-compose.yml
diff --git a/blueprints/convex/template.yml b/public/blueprints/convex/template.yml
similarity index 100%
rename from blueprints/convex/template.yml
rename to public/blueprints/convex/template.yml
diff --git a/blueprints/couchdb/couchdb.png b/public/blueprints/couchdb/couchdb.png
similarity index 100%
rename from blueprints/couchdb/couchdb.png
rename to public/blueprints/couchdb/couchdb.png
diff --git a/blueprints/couchdb/docker-compose.yml b/public/blueprints/couchdb/docker-compose.yml
similarity index 100%
rename from blueprints/couchdb/docker-compose.yml
rename to public/blueprints/couchdb/docker-compose.yml
diff --git a/blueprints/couchdb/template.yml b/public/blueprints/couchdb/template.yml
similarity index 100%
rename from blueprints/couchdb/template.yml
rename to public/blueprints/couchdb/template.yml
diff --git a/blueprints/datalens/datalens.svg b/public/blueprints/datalens/datalens.svg
similarity index 100%
rename from blueprints/datalens/datalens.svg
rename to public/blueprints/datalens/datalens.svg
diff --git a/blueprints/datalens/docker-compose.yml b/public/blueprints/datalens/docker-compose.yml
similarity index 100%
rename from blueprints/datalens/docker-compose.yml
rename to public/blueprints/datalens/docker-compose.yml
diff --git a/blueprints/datalens/template.yml b/public/blueprints/datalens/template.yml
similarity index 100%
rename from blueprints/datalens/template.yml
rename to public/blueprints/datalens/template.yml
diff --git a/blueprints/directus/directus.jpg b/public/blueprints/directus/directus.jpg
similarity index 100%
rename from blueprints/directus/directus.jpg
rename to public/blueprints/directus/directus.jpg
diff --git a/blueprints/directus/docker-compose.yml b/public/blueprints/directus/docker-compose.yml
similarity index 100%
rename from blueprints/directus/docker-compose.yml
rename to public/blueprints/directus/docker-compose.yml
diff --git a/blueprints/directus/template.yml b/public/blueprints/directus/template.yml
similarity index 100%
rename from blueprints/directus/template.yml
rename to public/blueprints/directus/template.yml
diff --git a/blueprints/discord-tickets/discord-tickets.png b/public/blueprints/discord-tickets/discord-tickets.png
similarity index 100%
rename from blueprints/discord-tickets/discord-tickets.png
rename to public/blueprints/discord-tickets/discord-tickets.png
diff --git a/blueprints/discord-tickets/docker-compose.yml b/public/blueprints/discord-tickets/docker-compose.yml
similarity index 100%
rename from blueprints/discord-tickets/docker-compose.yml
rename to public/blueprints/discord-tickets/docker-compose.yml
diff --git a/blueprints/discord-tickets/template.yml b/public/blueprints/discord-tickets/template.yml
similarity index 100%
rename from blueprints/discord-tickets/template.yml
rename to public/blueprints/discord-tickets/template.yml
diff --git a/blueprints/discourse/discourse.svg b/public/blueprints/discourse/discourse.svg
similarity index 100%
rename from blueprints/discourse/discourse.svg
rename to public/blueprints/discourse/discourse.svg
diff --git a/blueprints/discourse/docker-compose.yml b/public/blueprints/discourse/docker-compose.yml
similarity index 100%
rename from blueprints/discourse/docker-compose.yml
rename to public/blueprints/discourse/docker-compose.yml
diff --git a/blueprints/discourse/template.yml b/public/blueprints/discourse/template.yml
similarity index 100%
rename from blueprints/discourse/template.yml
rename to public/blueprints/discourse/template.yml
diff --git a/blueprints/docmost/docker-compose.yml b/public/blueprints/docmost/docker-compose.yml
similarity index 100%
rename from blueprints/docmost/docker-compose.yml
rename to public/blueprints/docmost/docker-compose.yml
diff --git a/blueprints/docmost/docmost.png b/public/blueprints/docmost/docmost.png
similarity index 100%
rename from blueprints/docmost/docmost.png
rename to public/blueprints/docmost/docmost.png
diff --git a/blueprints/docmost/template.yml b/public/blueprints/docmost/template.yml
similarity index 100%
rename from blueprints/docmost/template.yml
rename to public/blueprints/docmost/template.yml
diff --git a/blueprints/documenso/docker-compose.yml b/public/blueprints/documenso/docker-compose.yml
similarity index 100%
rename from blueprints/documenso/docker-compose.yml
rename to public/blueprints/documenso/docker-compose.yml
diff --git a/blueprints/documenso/documenso.png b/public/blueprints/documenso/documenso.png
similarity index 100%
rename from blueprints/documenso/documenso.png
rename to public/blueprints/documenso/documenso.png
diff --git a/blueprints/documenso/template.yml b/public/blueprints/documenso/template.yml
similarity index 100%
rename from blueprints/documenso/template.yml
rename to public/blueprints/documenso/template.yml
diff --git a/blueprints/doublezero/docker-compose.yml b/public/blueprints/doublezero/docker-compose.yml
similarity index 100%
rename from blueprints/doublezero/docker-compose.yml
rename to public/blueprints/doublezero/docker-compose.yml
diff --git a/blueprints/doublezero/doublezero.svg b/public/blueprints/doublezero/doublezero.svg
similarity index 100%
rename from blueprints/doublezero/doublezero.svg
rename to public/blueprints/doublezero/doublezero.svg
diff --git a/blueprints/doublezero/template.yml b/public/blueprints/doublezero/template.yml
similarity index 100%
rename from blueprints/doublezero/template.yml
rename to public/blueprints/doublezero/template.yml
diff --git a/blueprints/drawio/docker-compose.yml b/public/blueprints/drawio/docker-compose.yml
similarity index 100%
rename from blueprints/drawio/docker-compose.yml
rename to public/blueprints/drawio/docker-compose.yml
diff --git a/blueprints/drawio/drawio.svg b/public/blueprints/drawio/drawio.svg
similarity index 100%
rename from blueprints/drawio/drawio.svg
rename to public/blueprints/drawio/drawio.svg
diff --git a/blueprints/drawio/template.yml b/public/blueprints/drawio/template.yml
similarity index 100%
rename from blueprints/drawio/template.yml
rename to public/blueprints/drawio/template.yml
diff --git a/blueprints/elastic-search/docker-compose.yml b/public/blueprints/elastic-search/docker-compose.yml
similarity index 100%
rename from blueprints/elastic-search/docker-compose.yml
rename to public/blueprints/elastic-search/docker-compose.yml
diff --git a/blueprints/elastic-search/elasticsearch.svg b/public/blueprints/elastic-search/elasticsearch.svg
similarity index 100%
rename from blueprints/elastic-search/elasticsearch.svg
rename to public/blueprints/elastic-search/elasticsearch.svg
diff --git a/blueprints/elastic-search/template.yml b/public/blueprints/elastic-search/template.yml
similarity index 100%
rename from blueprints/elastic-search/template.yml
rename to public/blueprints/elastic-search/template.yml
diff --git a/blueprints/erpnext/docker-compose.yml b/public/blueprints/erpnext/docker-compose.yml
similarity index 100%
rename from blueprints/erpnext/docker-compose.yml
rename to public/blueprints/erpnext/docker-compose.yml
diff --git a/blueprints/erpnext/erpnext.svg b/public/blueprints/erpnext/erpnext.svg
similarity index 100%
rename from blueprints/erpnext/erpnext.svg
rename to public/blueprints/erpnext/erpnext.svg
diff --git a/blueprints/erpnext/template.yml b/public/blueprints/erpnext/template.yml
similarity index 100%
rename from blueprints/erpnext/template.yml
rename to public/blueprints/erpnext/template.yml
diff --git a/blueprints/evolutionapi/docker-compose.yml b/public/blueprints/evolutionapi/docker-compose.yml
similarity index 100%
rename from blueprints/evolutionapi/docker-compose.yml
rename to public/blueprints/evolutionapi/docker-compose.yml
diff --git a/blueprints/evolutionapi/evolutionapi.png b/public/blueprints/evolutionapi/evolutionapi.png
similarity index 100%
rename from blueprints/evolutionapi/evolutionapi.png
rename to public/blueprints/evolutionapi/evolutionapi.png
diff --git a/blueprints/evolutionapi/template.yml b/public/blueprints/evolutionapi/template.yml
similarity index 100%
rename from blueprints/evolutionapi/template.yml
rename to public/blueprints/evolutionapi/template.yml
diff --git a/blueprints/excalidraw/docker-compose.yml b/public/blueprints/excalidraw/docker-compose.yml
similarity index 100%
rename from blueprints/excalidraw/docker-compose.yml
rename to public/blueprints/excalidraw/docker-compose.yml
diff --git a/blueprints/excalidraw/excalidraw.jpg b/public/blueprints/excalidraw/excalidraw.jpg
similarity index 100%
rename from blueprints/excalidraw/excalidraw.jpg
rename to public/blueprints/excalidraw/excalidraw.jpg
diff --git a/blueprints/excalidraw/template.yml b/public/blueprints/excalidraw/template.yml
similarity index 100%
rename from blueprints/excalidraw/template.yml
rename to public/blueprints/excalidraw/template.yml
diff --git a/blueprints/filebrowser/docker-compose.yml b/public/blueprints/filebrowser/docker-compose.yml
similarity index 100%
rename from blueprints/filebrowser/docker-compose.yml
rename to public/blueprints/filebrowser/docker-compose.yml
diff --git a/blueprints/filebrowser/filebrowser.svg b/public/blueprints/filebrowser/filebrowser.svg
similarity index 100%
rename from blueprints/filebrowser/filebrowser.svg
rename to public/blueprints/filebrowser/filebrowser.svg
diff --git a/blueprints/filebrowser/template.yml b/public/blueprints/filebrowser/template.yml
similarity index 100%
rename from blueprints/filebrowser/template.yml
rename to public/blueprints/filebrowser/template.yml
diff --git a/blueprints/formbricks/docker-compose.yml b/public/blueprints/formbricks/docker-compose.yml
similarity index 100%
rename from blueprints/formbricks/docker-compose.yml
rename to public/blueprints/formbricks/docker-compose.yml
diff --git a/blueprints/formbricks/formbricks.png b/public/blueprints/formbricks/formbricks.png
similarity index 100%
rename from blueprints/formbricks/formbricks.png
rename to public/blueprints/formbricks/formbricks.png
diff --git a/blueprints/formbricks/template.yml b/public/blueprints/formbricks/template.yml
similarity index 100%
rename from blueprints/formbricks/template.yml
rename to public/blueprints/formbricks/template.yml
diff --git a/blueprints/frappe-hr/docker-compose.yml b/public/blueprints/frappe-hr/docker-compose.yml
similarity index 100%
rename from blueprints/frappe-hr/docker-compose.yml
rename to public/blueprints/frappe-hr/docker-compose.yml
diff --git a/blueprints/frappe-hr/frappe-hr.svg b/public/blueprints/frappe-hr/frappe-hr.svg
similarity index 100%
rename from blueprints/frappe-hr/frappe-hr.svg
rename to public/blueprints/frappe-hr/frappe-hr.svg
diff --git a/blueprints/frappe-hr/template.yml b/public/blueprints/frappe-hr/template.yml
similarity index 100%
rename from blueprints/frappe-hr/template.yml
rename to public/blueprints/frappe-hr/template.yml
diff --git a/blueprints/ghost/docker-compose.yml b/public/blueprints/ghost/docker-compose.yml
similarity index 100%
rename from blueprints/ghost/docker-compose.yml
rename to public/blueprints/ghost/docker-compose.yml
diff --git a/blueprints/ghost/ghost.jpeg b/public/blueprints/ghost/ghost.jpeg
similarity index 100%
rename from blueprints/ghost/ghost.jpeg
rename to public/blueprints/ghost/ghost.jpeg
diff --git a/blueprints/ghost/template.yml b/public/blueprints/ghost/template.yml
similarity index 100%
rename from blueprints/ghost/template.yml
rename to public/blueprints/ghost/template.yml
diff --git a/blueprints/gitea/docker-compose.yml b/public/blueprints/gitea/docker-compose.yml
similarity index 100%
rename from blueprints/gitea/docker-compose.yml
rename to public/blueprints/gitea/docker-compose.yml
diff --git a/blueprints/gitea/gitea.png b/public/blueprints/gitea/gitea.png
similarity index 100%
rename from blueprints/gitea/gitea.png
rename to public/blueprints/gitea/gitea.png
diff --git a/blueprints/gitea/template.yml b/public/blueprints/gitea/template.yml
similarity index 100%
rename from blueprints/gitea/template.yml
rename to public/blueprints/gitea/template.yml
diff --git a/blueprints/glance/docker-compose.yml b/public/blueprints/glance/docker-compose.yml
similarity index 100%
rename from blueprints/glance/docker-compose.yml
rename to public/blueprints/glance/docker-compose.yml
diff --git a/blueprints/glance/glance.png b/public/blueprints/glance/glance.png
similarity index 100%
rename from blueprints/glance/glance.png
rename to public/blueprints/glance/glance.png
diff --git a/blueprints/glance/template.yml b/public/blueprints/glance/template.yml
similarity index 100%
rename from blueprints/glance/template.yml
rename to public/blueprints/glance/template.yml
diff --git a/blueprints/glitchtip/docker-compose.yml b/public/blueprints/glitchtip/docker-compose.yml
similarity index 100%
rename from blueprints/glitchtip/docker-compose.yml
rename to public/blueprints/glitchtip/docker-compose.yml
diff --git a/blueprints/glitchtip/glitchtip.png b/public/blueprints/glitchtip/glitchtip.png
similarity index 100%
rename from blueprints/glitchtip/glitchtip.png
rename to public/blueprints/glitchtip/glitchtip.png
diff --git a/blueprints/glitchtip/template.yml b/public/blueprints/glitchtip/template.yml
similarity index 100%
rename from blueprints/glitchtip/template.yml
rename to public/blueprints/glitchtip/template.yml
diff --git a/blueprints/glpi/docker-compose.yml b/public/blueprints/glpi/docker-compose.yml
similarity index 100%
rename from blueprints/glpi/docker-compose.yml
rename to public/blueprints/glpi/docker-compose.yml
diff --git a/blueprints/glpi/glpi.webp b/public/blueprints/glpi/glpi.webp
similarity index 100%
rename from blueprints/glpi/glpi.webp
rename to public/blueprints/glpi/glpi.webp
diff --git a/blueprints/glpi/template.yml b/public/blueprints/glpi/template.yml
similarity index 100%
rename from blueprints/glpi/template.yml
rename to public/blueprints/glpi/template.yml
diff --git a/blueprints/gotenberg/docker-compose.yml b/public/blueprints/gotenberg/docker-compose.yml
similarity index 100%
rename from blueprints/gotenberg/docker-compose.yml
rename to public/blueprints/gotenberg/docker-compose.yml
diff --git a/blueprints/gotenberg/gotenberg.png b/public/blueprints/gotenberg/gotenberg.png
similarity index 100%
rename from blueprints/gotenberg/gotenberg.png
rename to public/blueprints/gotenberg/gotenberg.png
diff --git a/blueprints/gotenberg/template.yml b/public/blueprints/gotenberg/template.yml
similarity index 100%
rename from blueprints/gotenberg/template.yml
rename to public/blueprints/gotenberg/template.yml
diff --git a/blueprints/grafana/docker-compose.yml b/public/blueprints/grafana/docker-compose.yml
similarity index 100%
rename from blueprints/grafana/docker-compose.yml
rename to public/blueprints/grafana/docker-compose.yml
diff --git a/blueprints/grafana/grafana.svg b/public/blueprints/grafana/grafana.svg
similarity index 100%
rename from blueprints/grafana/grafana.svg
rename to public/blueprints/grafana/grafana.svg
diff --git a/blueprints/grafana/template.yml b/public/blueprints/grafana/template.yml
similarity index 100%
rename from blueprints/grafana/template.yml
rename to public/blueprints/grafana/template.yml
diff --git a/blueprints/heyform/docker-compose.yml b/public/blueprints/heyform/docker-compose.yml
similarity index 100%
rename from blueprints/heyform/docker-compose.yml
rename to public/blueprints/heyform/docker-compose.yml
diff --git a/blueprints/heyform/heyform.svg b/public/blueprints/heyform/heyform.svg
similarity index 100%
rename from blueprints/heyform/heyform.svg
rename to public/blueprints/heyform/heyform.svg
diff --git a/blueprints/heyform/template.yml b/public/blueprints/heyform/template.yml
similarity index 100%
rename from blueprints/heyform/template.yml
rename to public/blueprints/heyform/template.yml
diff --git a/blueprints/hi-events/docker-compose.yml b/public/blueprints/hi-events/docker-compose.yml
similarity index 100%
rename from blueprints/hi-events/docker-compose.yml
rename to public/blueprints/hi-events/docker-compose.yml
diff --git a/blueprints/hi-events/hi-events.svg b/public/blueprints/hi-events/hi-events.svg
similarity index 100%
rename from blueprints/hi-events/hi-events.svg
rename to public/blueprints/hi-events/hi-events.svg
diff --git a/blueprints/hi-events/template.yml b/public/blueprints/hi-events/template.yml
similarity index 100%
rename from blueprints/hi-events/template.yml
rename to public/blueprints/hi-events/template.yml
diff --git a/blueprints/hoarder/docker-compose.yml b/public/blueprints/hoarder/docker-compose.yml
similarity index 100%
rename from blueprints/hoarder/docker-compose.yml
rename to public/blueprints/hoarder/docker-compose.yml
diff --git a/blueprints/hoarder/hoarder.svg b/public/blueprints/hoarder/hoarder.svg
similarity index 100%
rename from blueprints/hoarder/hoarder.svg
rename to public/blueprints/hoarder/hoarder.svg
diff --git a/blueprints/hoarder/template.yml b/public/blueprints/hoarder/template.yml
similarity index 100%
rename from blueprints/hoarder/template.yml
rename to public/blueprints/hoarder/template.yml
diff --git a/blueprints/homarr/docker-compose.yml b/public/blueprints/homarr/docker-compose.yml
similarity index 100%
rename from blueprints/homarr/docker-compose.yml
rename to public/blueprints/homarr/docker-compose.yml
diff --git a/blueprints/homarr/homarr.png b/public/blueprints/homarr/homarr.png
similarity index 100%
rename from blueprints/homarr/homarr.png
rename to public/blueprints/homarr/homarr.png
diff --git a/blueprints/homarr/template.yml b/public/blueprints/homarr/template.yml
similarity index 100%
rename from blueprints/homarr/template.yml
rename to public/blueprints/homarr/template.yml
diff --git a/blueprints/huly/docker-compose.yml b/public/blueprints/huly/docker-compose.yml
similarity index 100%
rename from blueprints/huly/docker-compose.yml
rename to public/blueprints/huly/docker-compose.yml
diff --git a/blueprints/huly/huly.svg b/public/blueprints/huly/huly.svg
similarity index 100%
rename from blueprints/huly/huly.svg
rename to public/blueprints/huly/huly.svg
diff --git a/blueprints/huly/template.yml b/public/blueprints/huly/template.yml
similarity index 100%
rename from blueprints/huly/template.yml
rename to public/blueprints/huly/template.yml
diff --git a/blueprints/immich/docker-compose.yml b/public/blueprints/immich/docker-compose.yml
similarity index 100%
rename from blueprints/immich/docker-compose.yml
rename to public/blueprints/immich/docker-compose.yml
diff --git a/blueprints/immich/immich.svg b/public/blueprints/immich/immich.svg
similarity index 100%
rename from blueprints/immich/immich.svg
rename to public/blueprints/immich/immich.svg
diff --git a/blueprints/immich/template.yml b/public/blueprints/immich/template.yml
similarity index 100%
rename from blueprints/immich/template.yml
rename to public/blueprints/immich/template.yml
diff --git a/blueprints/infisical/docker-compose.yml b/public/blueprints/infisical/docker-compose.yml
similarity index 100%
rename from blueprints/infisical/docker-compose.yml
rename to public/blueprints/infisical/docker-compose.yml
diff --git a/blueprints/infisical/infisical.jpg b/public/blueprints/infisical/infisical.jpg
similarity index 100%
rename from blueprints/infisical/infisical.jpg
rename to public/blueprints/infisical/infisical.jpg
diff --git a/blueprints/infisical/template.yml b/public/blueprints/infisical/template.yml
similarity index 100%
rename from blueprints/infisical/template.yml
rename to public/blueprints/infisical/template.yml
diff --git a/blueprints/influxdb/docker-compose.yml b/public/blueprints/influxdb/docker-compose.yml
similarity index 100%
rename from blueprints/influxdb/docker-compose.yml
rename to public/blueprints/influxdb/docker-compose.yml
diff --git a/blueprints/influxdb/influxdb.png b/public/blueprints/influxdb/influxdb.png
similarity index 100%
rename from blueprints/influxdb/influxdb.png
rename to public/blueprints/influxdb/influxdb.png
diff --git a/blueprints/influxdb/template.yml b/public/blueprints/influxdb/template.yml
similarity index 100%
rename from blueprints/influxdb/template.yml
rename to public/blueprints/influxdb/template.yml
diff --git a/blueprints/invoiceshelf/docker-compose.yml b/public/blueprints/invoiceshelf/docker-compose.yml
similarity index 100%
rename from blueprints/invoiceshelf/docker-compose.yml
rename to public/blueprints/invoiceshelf/docker-compose.yml
diff --git a/blueprints/invoiceshelf/invoiceshelf.png b/public/blueprints/invoiceshelf/invoiceshelf.png
similarity index 100%
rename from blueprints/invoiceshelf/invoiceshelf.png
rename to public/blueprints/invoiceshelf/invoiceshelf.png
diff --git a/blueprints/invoiceshelf/template.yml b/public/blueprints/invoiceshelf/template.yml
similarity index 100%
rename from blueprints/invoiceshelf/template.yml
rename to public/blueprints/invoiceshelf/template.yml
diff --git a/blueprints/it-tools/docker-compose.yml b/public/blueprints/it-tools/docker-compose.yml
similarity index 100%
rename from blueprints/it-tools/docker-compose.yml
rename to public/blueprints/it-tools/docker-compose.yml
diff --git a/blueprints/it-tools/it-tools.svg b/public/blueprints/it-tools/it-tools.svg
similarity index 100%
rename from blueprints/it-tools/it-tools.svg
rename to public/blueprints/it-tools/it-tools.svg
diff --git a/blueprints/it-tools/template.yml b/public/blueprints/it-tools/template.yml
similarity index 100%
rename from blueprints/it-tools/template.yml
rename to public/blueprints/it-tools/template.yml
diff --git a/blueprints/jellyfin/docker-compose.yml b/public/blueprints/jellyfin/docker-compose.yml
similarity index 100%
rename from blueprints/jellyfin/docker-compose.yml
rename to public/blueprints/jellyfin/docker-compose.yml
diff --git a/blueprints/jellyfin/jellyfin.svg b/public/blueprints/jellyfin/jellyfin.svg
similarity index 100%
rename from blueprints/jellyfin/jellyfin.svg
rename to public/blueprints/jellyfin/jellyfin.svg
diff --git a/blueprints/jellyfin/template.yml b/public/blueprints/jellyfin/template.yml
similarity index 100%
rename from blueprints/jellyfin/template.yml
rename to public/blueprints/jellyfin/template.yml
diff --git a/blueprints/kimai/docker-compose.yml b/public/blueprints/kimai/docker-compose.yml
similarity index 100%
rename from blueprints/kimai/docker-compose.yml
rename to public/blueprints/kimai/docker-compose.yml
diff --git a/blueprints/kimai/kimai.svg b/public/blueprints/kimai/kimai.svg
similarity index 100%
rename from blueprints/kimai/kimai.svg
rename to public/blueprints/kimai/kimai.svg
diff --git a/blueprints/kimai/template.yml b/public/blueprints/kimai/template.yml
similarity index 100%
rename from blueprints/kimai/template.yml
rename to public/blueprints/kimai/template.yml
diff --git a/blueprints/langflow/docker-compose.yml b/public/blueprints/langflow/docker-compose.yml
similarity index 100%
rename from blueprints/langflow/docker-compose.yml
rename to public/blueprints/langflow/docker-compose.yml
diff --git a/blueprints/langflow/langflow.svg b/public/blueprints/langflow/langflow.svg
similarity index 100%
rename from blueprints/langflow/langflow.svg
rename to public/blueprints/langflow/langflow.svg
diff --git a/blueprints/langflow/template.yml b/public/blueprints/langflow/template.yml
similarity index 100%
rename from blueprints/langflow/template.yml
rename to public/blueprints/langflow/template.yml
diff --git a/blueprints/linkwarden/docker-compose.yml b/public/blueprints/linkwarden/docker-compose.yml
similarity index 100%
rename from blueprints/linkwarden/docker-compose.yml
rename to public/blueprints/linkwarden/docker-compose.yml
diff --git a/blueprints/linkwarden/linkwarden.png b/public/blueprints/linkwarden/linkwarden.png
similarity index 100%
rename from blueprints/linkwarden/linkwarden.png
rename to public/blueprints/linkwarden/linkwarden.png
diff --git a/blueprints/linkwarden/template.yml b/public/blueprints/linkwarden/template.yml
similarity index 100%
rename from blueprints/linkwarden/template.yml
rename to public/blueprints/linkwarden/template.yml
diff --git a/blueprints/listmonk/docker-compose.yml b/public/blueprints/listmonk/docker-compose.yml
similarity index 100%
rename from blueprints/listmonk/docker-compose.yml
rename to public/blueprints/listmonk/docker-compose.yml
diff --git a/blueprints/listmonk/listmonk.png b/public/blueprints/listmonk/listmonk.png
similarity index 100%
rename from blueprints/listmonk/listmonk.png
rename to public/blueprints/listmonk/listmonk.png
diff --git a/blueprints/listmonk/template.yml b/public/blueprints/listmonk/template.yml
similarity index 100%
rename from blueprints/listmonk/template.yml
rename to public/blueprints/listmonk/template.yml
diff --git a/blueprints/lobe-chat/docker-compose.yml b/public/blueprints/lobe-chat/docker-compose.yml
similarity index 100%
rename from blueprints/lobe-chat/docker-compose.yml
rename to public/blueprints/lobe-chat/docker-compose.yml
diff --git a/blueprints/lobe-chat/lobe-chat.png b/public/blueprints/lobe-chat/lobe-chat.png
similarity index 100%
rename from blueprints/lobe-chat/lobe-chat.png
rename to public/blueprints/lobe-chat/lobe-chat.png
diff --git a/blueprints/lobe-chat/template.yml b/public/blueprints/lobe-chat/template.yml
similarity index 100%
rename from blueprints/lobe-chat/template.yml
rename to public/blueprints/lobe-chat/template.yml
diff --git a/blueprints/logto/docker-compose.yml b/public/blueprints/logto/docker-compose.yml
similarity index 100%
rename from blueprints/logto/docker-compose.yml
rename to public/blueprints/logto/docker-compose.yml
diff --git a/blueprints/logto/logto.png b/public/blueprints/logto/logto.png
similarity index 100%
rename from blueprints/logto/logto.png
rename to public/blueprints/logto/logto.png
diff --git a/blueprints/logto/template.yml b/public/blueprints/logto/template.yml
similarity index 100%
rename from blueprints/logto/template.yml
rename to public/blueprints/logto/template.yml
diff --git a/blueprints/macos/docker-compose.yml b/public/blueprints/macos/docker-compose.yml
similarity index 100%
rename from blueprints/macos/docker-compose.yml
rename to public/blueprints/macos/docker-compose.yml
diff --git a/blueprints/macos/macos.png b/public/blueprints/macos/macos.png
similarity index 100%
rename from blueprints/macos/macos.png
rename to public/blueprints/macos/macos.png
diff --git a/blueprints/macos/template.yml b/public/blueprints/macos/template.yml
similarity index 100%
rename from blueprints/macos/template.yml
rename to public/blueprints/macos/template.yml
diff --git a/blueprints/mailpit/docker-compose.yml b/public/blueprints/mailpit/docker-compose.yml
similarity index 100%
rename from blueprints/mailpit/docker-compose.yml
rename to public/blueprints/mailpit/docker-compose.yml
diff --git a/blueprints/mailpit/mailpit.svg b/public/blueprints/mailpit/mailpit.svg
similarity index 100%
rename from blueprints/mailpit/mailpit.svg
rename to public/blueprints/mailpit/mailpit.svg
diff --git a/blueprints/mailpit/template.yml b/public/blueprints/mailpit/template.yml
similarity index 100%
rename from blueprints/mailpit/template.yml
rename to public/blueprints/mailpit/template.yml
diff --git a/blueprints/maybe/docker-compose.yml b/public/blueprints/maybe/docker-compose.yml
similarity index 100%
rename from blueprints/maybe/docker-compose.yml
rename to public/blueprints/maybe/docker-compose.yml
diff --git a/blueprints/maybe/maybe.svg b/public/blueprints/maybe/maybe.svg
similarity index 100%
rename from blueprints/maybe/maybe.svg
rename to public/blueprints/maybe/maybe.svg
diff --git a/blueprints/maybe/template.yml b/public/blueprints/maybe/template.yml
similarity index 100%
rename from blueprints/maybe/template.yml
rename to public/blueprints/maybe/template.yml
diff --git a/blueprints/meilisearch/docker-compose.yml b/public/blueprints/meilisearch/docker-compose.yml
similarity index 100%
rename from blueprints/meilisearch/docker-compose.yml
rename to public/blueprints/meilisearch/docker-compose.yml
diff --git a/blueprints/meilisearch/meilisearch.png b/public/blueprints/meilisearch/meilisearch.png
similarity index 100%
rename from blueprints/meilisearch/meilisearch.png
rename to public/blueprints/meilisearch/meilisearch.png
diff --git a/blueprints/meilisearch/template.yml b/public/blueprints/meilisearch/template.yml
similarity index 100%
rename from blueprints/meilisearch/template.yml
rename to public/blueprints/meilisearch/template.yml
diff --git a/blueprints/metabase/docker-compose.yml b/public/blueprints/metabase/docker-compose.yml
similarity index 100%
rename from blueprints/metabase/docker-compose.yml
rename to public/blueprints/metabase/docker-compose.yml
diff --git a/blueprints/metabase/metabase.png b/public/blueprints/metabase/metabase.png
similarity index 100%
rename from blueprints/metabase/metabase.png
rename to public/blueprints/metabase/metabase.png
diff --git a/blueprints/metabase/template.yml b/public/blueprints/metabase/template.yml
similarity index 100%
rename from blueprints/metabase/template.yml
rename to public/blueprints/metabase/template.yml
diff --git a/blueprints/minio/docker-compose.yml b/public/blueprints/minio/docker-compose.yml
similarity index 100%
rename from blueprints/minio/docker-compose.yml
rename to public/blueprints/minio/docker-compose.yml
diff --git a/blueprints/minio/minio.png b/public/blueprints/minio/minio.png
similarity index 100%
rename from blueprints/minio/minio.png
rename to public/blueprints/minio/minio.png
diff --git a/blueprints/minio/template.yml b/public/blueprints/minio/template.yml
similarity index 100%
rename from blueprints/minio/template.yml
rename to public/blueprints/minio/template.yml
diff --git a/blueprints/n8n/docker-compose.yml b/public/blueprints/n8n/docker-compose.yml
similarity index 100%
rename from blueprints/n8n/docker-compose.yml
rename to public/blueprints/n8n/docker-compose.yml
diff --git a/blueprints/n8n/n8n.png b/public/blueprints/n8n/n8n.png
similarity index 100%
rename from blueprints/n8n/n8n.png
rename to public/blueprints/n8n/n8n.png
diff --git a/blueprints/n8n/template.yml b/public/blueprints/n8n/template.yml
similarity index 100%
rename from blueprints/n8n/template.yml
rename to public/blueprints/n8n/template.yml
diff --git a/blueprints/nextcloud-aio/docker-compose.yml b/public/blueprints/nextcloud-aio/docker-compose.yml
similarity index 100%
rename from blueprints/nextcloud-aio/docker-compose.yml
rename to public/blueprints/nextcloud-aio/docker-compose.yml
diff --git a/blueprints/nextcloud-aio/nextcloud-aio.svg b/public/blueprints/nextcloud-aio/nextcloud-aio.svg
similarity index 100%
rename from blueprints/nextcloud-aio/nextcloud-aio.svg
rename to public/blueprints/nextcloud-aio/nextcloud-aio.svg
diff --git a/blueprints/nextcloud-aio/template.yml b/public/blueprints/nextcloud-aio/template.yml
similarity index 100%
rename from blueprints/nextcloud-aio/template.yml
rename to public/blueprints/nextcloud-aio/template.yml
diff --git a/blueprints/nocodb/docker-compose.yml b/public/blueprints/nocodb/docker-compose.yml
similarity index 100%
rename from blueprints/nocodb/docker-compose.yml
rename to public/blueprints/nocodb/docker-compose.yml
diff --git a/blueprints/nocodb/nocodb.png b/public/blueprints/nocodb/nocodb.png
similarity index 100%
rename from blueprints/nocodb/nocodb.png
rename to public/blueprints/nocodb/nocodb.png
diff --git a/blueprints/nocodb/template.yml b/public/blueprints/nocodb/template.yml
similarity index 100%
rename from blueprints/nocodb/template.yml
rename to public/blueprints/nocodb/template.yml
diff --git a/blueprints/odoo/docker-compose.yml b/public/blueprints/odoo/docker-compose.yml
similarity index 100%
rename from blueprints/odoo/docker-compose.yml
rename to public/blueprints/odoo/docker-compose.yml
diff --git a/blueprints/odoo/odoo.png b/public/blueprints/odoo/odoo.png
similarity index 100%
rename from blueprints/odoo/odoo.png
rename to public/blueprints/odoo/odoo.png
diff --git a/blueprints/odoo/template.yml b/public/blueprints/odoo/template.yml
similarity index 100%
rename from blueprints/odoo/template.yml
rename to public/blueprints/odoo/template.yml
diff --git a/blueprints/onedev/docker-compose.yml b/public/blueprints/onedev/docker-compose.yml
similarity index 100%
rename from blueprints/onedev/docker-compose.yml
rename to public/blueprints/onedev/docker-compose.yml
diff --git a/blueprints/onedev/onedev.png b/public/blueprints/onedev/onedev.png
similarity index 100%
rename from blueprints/onedev/onedev.png
rename to public/blueprints/onedev/onedev.png
diff --git a/blueprints/onedev/template.yml b/public/blueprints/onedev/template.yml
similarity index 100%
rename from blueprints/onedev/template.yml
rename to public/blueprints/onedev/template.yml
diff --git a/blueprints/ontime/docker-compose.yml b/public/blueprints/ontime/docker-compose.yml
similarity index 100%
rename from blueprints/ontime/docker-compose.yml
rename to public/blueprints/ontime/docker-compose.yml
diff --git a/blueprints/ontime/ontime.png b/public/blueprints/ontime/ontime.png
similarity index 100%
rename from blueprints/ontime/ontime.png
rename to public/blueprints/ontime/ontime.png
diff --git a/blueprints/ontime/template.yml b/public/blueprints/ontime/template.yml
similarity index 100%
rename from blueprints/ontime/template.yml
rename to public/blueprints/ontime/template.yml
diff --git a/blueprints/open-webui/docker-compose.yml b/public/blueprints/open-webui/docker-compose.yml
similarity index 100%
rename from blueprints/open-webui/docker-compose.yml
rename to public/blueprints/open-webui/docker-compose.yml
diff --git a/blueprints/open-webui/open-webui.png b/public/blueprints/open-webui/open-webui.png
similarity index 100%
rename from blueprints/open-webui/open-webui.png
rename to public/blueprints/open-webui/open-webui.png
diff --git a/blueprints/open-webui/template.yml b/public/blueprints/open-webui/template.yml
similarity index 100%
rename from blueprints/open-webui/template.yml
rename to public/blueprints/open-webui/template.yml
diff --git a/blueprints/outline/docker-compose.yml b/public/blueprints/outline/docker-compose.yml
similarity index 100%
rename from blueprints/outline/docker-compose.yml
rename to public/blueprints/outline/docker-compose.yml
diff --git a/blueprints/outline/outline.png b/public/blueprints/outline/outline.png
similarity index 100%
rename from blueprints/outline/outline.png
rename to public/blueprints/outline/outline.png
diff --git a/blueprints/outline/template.yml b/public/blueprints/outline/template.yml
similarity index 100%
rename from blueprints/outline/template.yml
rename to public/blueprints/outline/template.yml
diff --git a/blueprints/penpot/docker-compose.yml b/public/blueprints/penpot/docker-compose.yml
similarity index 100%
rename from blueprints/penpot/docker-compose.yml
rename to public/blueprints/penpot/docker-compose.yml
diff --git a/blueprints/penpot/penpot.svg b/public/blueprints/penpot/penpot.svg
similarity index 100%
rename from blueprints/penpot/penpot.svg
rename to public/blueprints/penpot/penpot.svg
diff --git a/blueprints/penpot/template.yml b/public/blueprints/penpot/template.yml
similarity index 100%
rename from blueprints/penpot/template.yml
rename to public/blueprints/penpot/template.yml
diff --git a/blueprints/peppermint/docker-compose.yml b/public/blueprints/peppermint/docker-compose.yml
similarity index 100%
rename from blueprints/peppermint/docker-compose.yml
rename to public/blueprints/peppermint/docker-compose.yml
diff --git a/blueprints/peppermint/peppermint.svg b/public/blueprints/peppermint/peppermint.svg
similarity index 100%
rename from blueprints/peppermint/peppermint.svg
rename to public/blueprints/peppermint/peppermint.svg
diff --git a/blueprints/peppermint/template.yml b/public/blueprints/peppermint/template.yml
similarity index 100%
rename from blueprints/peppermint/template.yml
rename to public/blueprints/peppermint/template.yml
diff --git a/blueprints/photoprism/docker-compose.yml b/public/blueprints/photoprism/docker-compose.yml
similarity index 100%
rename from blueprints/photoprism/docker-compose.yml
rename to public/blueprints/photoprism/docker-compose.yml
diff --git a/blueprints/photoprism/photoprism.svg b/public/blueprints/photoprism/photoprism.svg
similarity index 100%
rename from blueprints/photoprism/photoprism.svg
rename to public/blueprints/photoprism/photoprism.svg
diff --git a/blueprints/photoprism/template.yml b/public/blueprints/photoprism/template.yml
similarity index 100%
rename from blueprints/photoprism/template.yml
rename to public/blueprints/photoprism/template.yml
diff --git a/blueprints/phpmyadmin/docker-compose.yml b/public/blueprints/phpmyadmin/docker-compose.yml
similarity index 100%
rename from blueprints/phpmyadmin/docker-compose.yml
rename to public/blueprints/phpmyadmin/docker-compose.yml
diff --git a/blueprints/phpmyadmin/phpmyadmin.png b/public/blueprints/phpmyadmin/phpmyadmin.png
similarity index 100%
rename from blueprints/phpmyadmin/phpmyadmin.png
rename to public/blueprints/phpmyadmin/phpmyadmin.png
diff --git a/blueprints/phpmyadmin/template.yml b/public/blueprints/phpmyadmin/template.yml
similarity index 100%
rename from blueprints/phpmyadmin/template.yml
rename to public/blueprints/phpmyadmin/template.yml
diff --git a/blueprints/plausible/docker-compose.yml b/public/blueprints/plausible/docker-compose.yml
similarity index 100%
rename from blueprints/plausible/docker-compose.yml
rename to public/blueprints/plausible/docker-compose.yml
diff --git a/blueprints/plausible/logo.svg b/public/blueprints/plausible/logo.svg
similarity index 100%
rename from blueprints/plausible/logo.svg
rename to public/blueprints/plausible/logo.svg
diff --git a/blueprints/plausible/template.yml b/public/blueprints/plausible/template.yml
similarity index 100%
rename from blueprints/plausible/template.yml
rename to public/blueprints/plausible/template.yml
diff --git a/blueprints/pocket-id/docker-compose.yml b/public/blueprints/pocket-id/docker-compose.yml
similarity index 100%
rename from blueprints/pocket-id/docker-compose.yml
rename to public/blueprints/pocket-id/docker-compose.yml
diff --git a/blueprints/pocket-id/pocket-id.svg b/public/blueprints/pocket-id/pocket-id.svg
similarity index 100%
rename from blueprints/pocket-id/pocket-id.svg
rename to public/blueprints/pocket-id/pocket-id.svg
diff --git a/blueprints/pocket-id/template.yml b/public/blueprints/pocket-id/template.yml
similarity index 100%
rename from blueprints/pocket-id/template.yml
rename to public/blueprints/pocket-id/template.yml
diff --git a/blueprints/pocketbase/docker-compose.yml b/public/blueprints/pocketbase/docker-compose.yml
similarity index 100%
rename from blueprints/pocketbase/docker-compose.yml
rename to public/blueprints/pocketbase/docker-compose.yml
diff --git a/blueprints/pocketbase/logo.svg b/public/blueprints/pocketbase/logo.svg
similarity index 100%
rename from blueprints/pocketbase/logo.svg
rename to public/blueprints/pocketbase/logo.svg
diff --git a/blueprints/pocketbase/template.yml b/public/blueprints/pocketbase/template.yml
similarity index 100%
rename from blueprints/pocketbase/template.yml
rename to public/blueprints/pocketbase/template.yml
diff --git a/blueprints/portainer/docker-compose.yml b/public/blueprints/portainer/docker-compose.yml
similarity index 100%
rename from blueprints/portainer/docker-compose.yml
rename to public/blueprints/portainer/docker-compose.yml
diff --git a/blueprints/portainer/portainer.svg b/public/blueprints/portainer/portainer.svg
similarity index 100%
rename from blueprints/portainer/portainer.svg
rename to public/blueprints/portainer/portainer.svg
diff --git a/blueprints/portainer/template.yml b/public/blueprints/portainer/template.yml
similarity index 100%
rename from blueprints/portainer/template.yml
rename to public/blueprints/portainer/template.yml
diff --git a/blueprints/postiz/docker-compose.yml b/public/blueprints/postiz/docker-compose.yml
similarity index 100%
rename from blueprints/postiz/docker-compose.yml
rename to public/blueprints/postiz/docker-compose.yml
diff --git a/blueprints/postiz/postiz.png b/public/blueprints/postiz/postiz.png
similarity index 100%
rename from blueprints/postiz/postiz.png
rename to public/blueprints/postiz/postiz.png
diff --git a/blueprints/postiz/template.yml b/public/blueprints/postiz/template.yml
similarity index 100%
rename from blueprints/postiz/template.yml
rename to public/blueprints/postiz/template.yml
diff --git a/blueprints/registry/docker-compose.yml b/public/blueprints/registry/docker-compose.yml
similarity index 100%
rename from blueprints/registry/docker-compose.yml
rename to public/blueprints/registry/docker-compose.yml
diff --git a/blueprints/registry/registry.png b/public/blueprints/registry/registry.png
similarity index 100%
rename from blueprints/registry/registry.png
rename to public/blueprints/registry/registry.png
diff --git a/blueprints/registry/template.yml b/public/blueprints/registry/template.yml
similarity index 100%
rename from blueprints/registry/template.yml
rename to public/blueprints/registry/template.yml
diff --git a/blueprints/rocketchat/docker-compose.yml b/public/blueprints/rocketchat/docker-compose.yml
similarity index 100%
rename from blueprints/rocketchat/docker-compose.yml
rename to public/blueprints/rocketchat/docker-compose.yml
diff --git a/blueprints/rocketchat/rocketchat.png b/public/blueprints/rocketchat/rocketchat.png
similarity index 100%
rename from blueprints/rocketchat/rocketchat.png
rename to public/blueprints/rocketchat/rocketchat.png
diff --git a/blueprints/rocketchat/template.yml b/public/blueprints/rocketchat/template.yml
similarity index 100%
rename from blueprints/rocketchat/template.yml
rename to public/blueprints/rocketchat/template.yml
diff --git a/blueprints/roundcube/docker-compose.yml b/public/blueprints/roundcube/docker-compose.yml
similarity index 100%
rename from blueprints/roundcube/docker-compose.yml
rename to public/blueprints/roundcube/docker-compose.yml
diff --git a/blueprints/roundcube/roundcube.svg b/public/blueprints/roundcube/roundcube.svg
similarity index 100%
rename from blueprints/roundcube/roundcube.svg
rename to public/blueprints/roundcube/roundcube.svg
diff --git a/blueprints/roundcube/template.yml b/public/blueprints/roundcube/template.yml
similarity index 100%
rename from blueprints/roundcube/template.yml
rename to public/blueprints/roundcube/template.yml
diff --git a/blueprints/ryot/docker-compose.yml b/public/blueprints/ryot/docker-compose.yml
similarity index 100%
rename from blueprints/ryot/docker-compose.yml
rename to public/blueprints/ryot/docker-compose.yml
diff --git a/blueprints/ryot/ryot.png b/public/blueprints/ryot/ryot.png
similarity index 100%
rename from blueprints/ryot/ryot.png
rename to public/blueprints/ryot/ryot.png
diff --git a/blueprints/ryot/template.yml b/public/blueprints/ryot/template.yml
similarity index 100%
rename from blueprints/ryot/template.yml
rename to public/blueprints/ryot/template.yml
diff --git a/blueprints/shlink/docker-compose.yml b/public/blueprints/shlink/docker-compose.yml
similarity index 100%
rename from blueprints/shlink/docker-compose.yml
rename to public/blueprints/shlink/docker-compose.yml
diff --git a/blueprints/shlink/shlink.svg b/public/blueprints/shlink/shlink.svg
similarity index 100%
rename from blueprints/shlink/shlink.svg
rename to public/blueprints/shlink/shlink.svg
diff --git a/blueprints/shlink/template.yml b/public/blueprints/shlink/template.yml
similarity index 100%
rename from blueprints/shlink/template.yml
rename to public/blueprints/shlink/template.yml
diff --git a/blueprints/slash/docker-compose.yml b/public/blueprints/slash/docker-compose.yml
similarity index 100%
rename from blueprints/slash/docker-compose.yml
rename to public/blueprints/slash/docker-compose.yml
diff --git a/blueprints/slash/slash.png b/public/blueprints/slash/slash.png
similarity index 100%
rename from blueprints/slash/slash.png
rename to public/blueprints/slash/slash.png
diff --git a/blueprints/slash/template.yml b/public/blueprints/slash/template.yml
similarity index 100%
rename from blueprints/slash/template.yml
rename to public/blueprints/slash/template.yml
diff --git a/blueprints/soketi/docker-compose.yml b/public/blueprints/soketi/docker-compose.yml
similarity index 100%
rename from blueprints/soketi/docker-compose.yml
rename to public/blueprints/soketi/docker-compose.yml
diff --git a/blueprints/soketi/soketi.png b/public/blueprints/soketi/soketi.png
similarity index 100%
rename from blueprints/soketi/soketi.png
rename to public/blueprints/soketi/soketi.png
diff --git a/blueprints/soketi/template.yml b/public/blueprints/soketi/template.yml
similarity index 100%
rename from blueprints/soketi/template.yml
rename to public/blueprints/soketi/template.yml
diff --git a/blueprints/spacedrive/docker-compose.yml b/public/blueprints/spacedrive/docker-compose.yml
similarity index 100%
rename from blueprints/spacedrive/docker-compose.yml
rename to public/blueprints/spacedrive/docker-compose.yml
diff --git a/blueprints/spacedrive/spacedrive.png b/public/blueprints/spacedrive/spacedrive.png
similarity index 100%
rename from blueprints/spacedrive/spacedrive.png
rename to public/blueprints/spacedrive/spacedrive.png
diff --git a/blueprints/spacedrive/template.yml b/public/blueprints/spacedrive/template.yml
similarity index 100%
rename from blueprints/spacedrive/template.yml
rename to public/blueprints/spacedrive/template.yml
diff --git a/blueprints/stirling/docker-compose.yml b/public/blueprints/stirling/docker-compose.yml
similarity index 100%
rename from blueprints/stirling/docker-compose.yml
rename to public/blueprints/stirling/docker-compose.yml
diff --git a/blueprints/stirling/stirling.svg b/public/blueprints/stirling/stirling.svg
similarity index 100%
rename from blueprints/stirling/stirling.svg
rename to public/blueprints/stirling/stirling.svg
diff --git a/blueprints/stirling/template.yml b/public/blueprints/stirling/template.yml
similarity index 100%
rename from blueprints/stirling/template.yml
rename to public/blueprints/stirling/template.yml
diff --git a/blueprints/supabase/docker-compose.yml b/public/blueprints/supabase/docker-compose.yml
similarity index 100%
rename from blueprints/supabase/docker-compose.yml
rename to public/blueprints/supabase/docker-compose.yml
diff --git a/blueprints/supabase/supabase.svg b/public/blueprints/supabase/supabase.svg
similarity index 100%
rename from blueprints/supabase/supabase.svg
rename to public/blueprints/supabase/supabase.svg
diff --git a/blueprints/supabase/template.yml b/public/blueprints/supabase/template.yml
similarity index 100%
rename from blueprints/supabase/template.yml
rename to public/blueprints/supabase/template.yml
diff --git a/blueprints/superset/docker-compose.yml b/public/blueprints/superset/docker-compose.yml
similarity index 100%
rename from blueprints/superset/docker-compose.yml
rename to public/blueprints/superset/docker-compose.yml
diff --git a/blueprints/superset/superset.svg b/public/blueprints/superset/superset.svg
similarity index 100%
rename from blueprints/superset/superset.svg
rename to public/blueprints/superset/superset.svg
diff --git a/blueprints/superset/template.yml b/public/blueprints/superset/template.yml
similarity index 100%
rename from blueprints/superset/template.yml
rename to public/blueprints/superset/template.yml
diff --git a/blueprints/teable/docker-compose.yml b/public/blueprints/teable/docker-compose.yml
similarity index 100%
rename from blueprints/teable/docker-compose.yml
rename to public/blueprints/teable/docker-compose.yml
diff --git a/blueprints/teable/teable.png b/public/blueprints/teable/teable.png
similarity index 100%
rename from blueprints/teable/teable.png
rename to public/blueprints/teable/teable.png
diff --git a/blueprints/teable/template.yml b/public/blueprints/teable/template.yml
similarity index 100%
rename from blueprints/teable/template.yml
rename to public/blueprints/teable/template.yml
diff --git a/blueprints/tolgee/docker-compose.yml b/public/blueprints/tolgee/docker-compose.yml
similarity index 100%
rename from blueprints/tolgee/docker-compose.yml
rename to public/blueprints/tolgee/docker-compose.yml
diff --git a/blueprints/tolgee/template.yml b/public/blueprints/tolgee/template.yml
similarity index 100%
rename from blueprints/tolgee/template.yml
rename to public/blueprints/tolgee/template.yml
diff --git a/blueprints/tolgee/tolgee.svg b/public/blueprints/tolgee/tolgee.svg
similarity index 100%
rename from blueprints/tolgee/tolgee.svg
rename to public/blueprints/tolgee/tolgee.svg
diff --git a/blueprints/triggerdotdev/docker-compose.yml b/public/blueprints/triggerdotdev/docker-compose.yml
similarity index 100%
rename from blueprints/triggerdotdev/docker-compose.yml
rename to public/blueprints/triggerdotdev/docker-compose.yml
diff --git a/blueprints/triggerdotdev/template.yml b/public/blueprints/triggerdotdev/template.yml
similarity index 100%
rename from blueprints/triggerdotdev/template.yml
rename to public/blueprints/triggerdotdev/template.yml
diff --git a/blueprints/triggerdotdev/triggerdotdev.svg b/public/blueprints/triggerdotdev/triggerdotdev.svg
similarity index 100%
rename from blueprints/triggerdotdev/triggerdotdev.svg
rename to public/blueprints/triggerdotdev/triggerdotdev.svg
diff --git a/blueprints/trilium/docker-compose.yml b/public/blueprints/trilium/docker-compose.yml
similarity index 100%
rename from blueprints/trilium/docker-compose.yml
rename to public/blueprints/trilium/docker-compose.yml
diff --git a/blueprints/trilium/template.yml b/public/blueprints/trilium/template.yml
similarity index 100%
rename from blueprints/trilium/template.yml
rename to public/blueprints/trilium/template.yml
diff --git a/blueprints/trilium/trilium.png b/public/blueprints/trilium/trilium.png
similarity index 100%
rename from blueprints/trilium/trilium.png
rename to public/blueprints/trilium/trilium.png
diff --git a/blueprints/twenty/docker-compose.yml b/public/blueprints/twenty/docker-compose.yml
similarity index 100%
rename from blueprints/twenty/docker-compose.yml
rename to public/blueprints/twenty/docker-compose.yml
diff --git a/blueprints/twenty/template.yml b/public/blueprints/twenty/template.yml
similarity index 100%
rename from blueprints/twenty/template.yml
rename to public/blueprints/twenty/template.yml
diff --git a/blueprints/twenty/twenty.svg b/public/blueprints/twenty/twenty.svg
similarity index 100%
rename from blueprints/twenty/twenty.svg
rename to public/blueprints/twenty/twenty.svg
diff --git a/blueprints/typebot/docker-compose.yml b/public/blueprints/typebot/docker-compose.yml
similarity index 100%
rename from blueprints/typebot/docker-compose.yml
rename to public/blueprints/typebot/docker-compose.yml
diff --git a/blueprints/typebot/template.yml b/public/blueprints/typebot/template.yml
similarity index 100%
rename from blueprints/typebot/template.yml
rename to public/blueprints/typebot/template.yml
diff --git a/blueprints/typebot/typebot.svg b/public/blueprints/typebot/typebot.svg
similarity index 100%
rename from blueprints/typebot/typebot.svg
rename to public/blueprints/typebot/typebot.svg
diff --git a/blueprints/umami/docker-compose.yml b/public/blueprints/umami/docker-compose.yml
similarity index 100%
rename from blueprints/umami/docker-compose.yml
rename to public/blueprints/umami/docker-compose.yml
diff --git a/blueprints/umami/template.yml b/public/blueprints/umami/template.yml
similarity index 100%
rename from blueprints/umami/template.yml
rename to public/blueprints/umami/template.yml
diff --git a/blueprints/umami/umami.png b/public/blueprints/umami/umami.png
similarity index 100%
rename from blueprints/umami/umami.png
rename to public/blueprints/umami/umami.png
diff --git a/blueprints/unifi/docker-compose.yml b/public/blueprints/unifi/docker-compose.yml
similarity index 100%
rename from blueprints/unifi/docker-compose.yml
rename to public/blueprints/unifi/docker-compose.yml
diff --git a/blueprints/unifi/template.yml b/public/blueprints/unifi/template.yml
similarity index 100%
rename from blueprints/unifi/template.yml
rename to public/blueprints/unifi/template.yml
diff --git a/blueprints/unifi/unifi.webp b/public/blueprints/unifi/unifi.webp
similarity index 100%
rename from blueprints/unifi/unifi.webp
rename to public/blueprints/unifi/unifi.webp
diff --git a/blueprints/unsend/docker-compose.yml b/public/blueprints/unsend/docker-compose.yml
similarity index 100%
rename from blueprints/unsend/docker-compose.yml
rename to public/blueprints/unsend/docker-compose.yml
diff --git a/blueprints/unsend/template.yml b/public/blueprints/unsend/template.yml
similarity index 100%
rename from blueprints/unsend/template.yml
rename to public/blueprints/unsend/template.yml
diff --git a/blueprints/unsend/unsend.png b/public/blueprints/unsend/unsend.png
similarity index 100%
rename from blueprints/unsend/unsend.png
rename to public/blueprints/unsend/unsend.png
diff --git a/blueprints/uptime-kuma/docker-compose.yml b/public/blueprints/uptime-kuma/docker-compose.yml
similarity index 100%
rename from blueprints/uptime-kuma/docker-compose.yml
rename to public/blueprints/uptime-kuma/docker-compose.yml
diff --git a/blueprints/uptime-kuma/template.yml b/public/blueprints/uptime-kuma/template.yml
similarity index 100%
rename from blueprints/uptime-kuma/template.yml
rename to public/blueprints/uptime-kuma/template.yml
diff --git a/blueprints/uptime-kuma/uptime-kuma.png b/public/blueprints/uptime-kuma/uptime-kuma.png
similarity index 100%
rename from blueprints/uptime-kuma/uptime-kuma.png
rename to public/blueprints/uptime-kuma/uptime-kuma.png
diff --git a/blueprints/vaultwarden/docker-compose.yml b/public/blueprints/vaultwarden/docker-compose.yml
similarity index 100%
rename from blueprints/vaultwarden/docker-compose.yml
rename to public/blueprints/vaultwarden/docker-compose.yml
diff --git a/blueprints/vaultwarden/template.yml b/public/blueprints/vaultwarden/template.yml
similarity index 100%
rename from blueprints/vaultwarden/template.yml
rename to public/blueprints/vaultwarden/template.yml
diff --git a/blueprints/vaultwarden/vaultwarden.svg b/public/blueprints/vaultwarden/vaultwarden.svg
similarity index 100%
rename from blueprints/vaultwarden/vaultwarden.svg
rename to public/blueprints/vaultwarden/vaultwarden.svg
diff --git a/blueprints/wikijs/docker-compose.yml b/public/blueprints/wikijs/docker-compose.yml
similarity index 100%
rename from blueprints/wikijs/docker-compose.yml
rename to public/blueprints/wikijs/docker-compose.yml
diff --git a/blueprints/wikijs/template.yml b/public/blueprints/wikijs/template.yml
similarity index 100%
rename from blueprints/wikijs/template.yml
rename to public/blueprints/wikijs/template.yml
diff --git a/blueprints/wikijs/wikijs.svg b/public/blueprints/wikijs/wikijs.svg
similarity index 100%
rename from blueprints/wikijs/wikijs.svg
rename to public/blueprints/wikijs/wikijs.svg
diff --git a/blueprints/windmill/docker-compose.yml b/public/blueprints/windmill/docker-compose.yml
similarity index 100%
rename from blueprints/windmill/docker-compose.yml
rename to public/blueprints/windmill/docker-compose.yml
diff --git a/blueprints/windmill/template.yml b/public/blueprints/windmill/template.yml
similarity index 100%
rename from blueprints/windmill/template.yml
rename to public/blueprints/windmill/template.yml
diff --git a/blueprints/windmill/windmill.svg b/public/blueprints/windmill/windmill.svg
similarity index 100%
rename from blueprints/windmill/windmill.svg
rename to public/blueprints/windmill/windmill.svg
diff --git a/blueprints/windows/docker-compose.yml b/public/blueprints/windows/docker-compose.yml
similarity index 100%
rename from blueprints/windows/docker-compose.yml
rename to public/blueprints/windows/docker-compose.yml
diff --git a/blueprints/windows/template.yml b/public/blueprints/windows/template.yml
similarity index 100%
rename from blueprints/windows/template.yml
rename to public/blueprints/windows/template.yml
diff --git a/blueprints/windows/windows.png b/public/blueprints/windows/windows.png
similarity index 100%
rename from blueprints/windows/windows.png
rename to public/blueprints/windows/windows.png
diff --git a/blueprints/wordpress/docker-compose.yml b/public/blueprints/wordpress/docker-compose.yml
similarity index 100%
rename from blueprints/wordpress/docker-compose.yml
rename to public/blueprints/wordpress/docker-compose.yml
diff --git a/blueprints/wordpress/template.yml b/public/blueprints/wordpress/template.yml
similarity index 100%
rename from blueprints/wordpress/template.yml
rename to public/blueprints/wordpress/template.yml
diff --git a/blueprints/wordpress/wordpress.png b/public/blueprints/wordpress/wordpress.png
similarity index 100%
rename from blueprints/wordpress/wordpress.png
rename to public/blueprints/wordpress/wordpress.png
diff --git a/blueprints/yourls/docker-compose.yml b/public/blueprints/yourls/docker-compose.yml
similarity index 100%
rename from blueprints/yourls/docker-compose.yml
rename to public/blueprints/yourls/docker-compose.yml
diff --git a/blueprints/yourls/template.yml b/public/blueprints/yourls/template.yml
similarity index 100%
rename from blueprints/yourls/template.yml
rename to public/blueprints/yourls/template.yml
diff --git a/blueprints/yourls/yourls.svg b/public/blueprints/yourls/yourls.svg
similarity index 100%
rename from blueprints/yourls/yourls.svg
rename to public/blueprints/yourls/yourls.svg
diff --git a/blueprints/zipline/docker-compose.yml b/public/blueprints/zipline/docker-compose.yml
similarity index 100%
rename from blueprints/zipline/docker-compose.yml
rename to public/blueprints/zipline/docker-compose.yml
diff --git a/blueprints/zipline/template.yml b/public/blueprints/zipline/template.yml
similarity index 100%
rename from blueprints/zipline/template.yml
rename to public/blueprints/zipline/template.yml
diff --git a/blueprints/zipline/zipline.png b/public/blueprints/zipline/zipline.png
similarity index 100%
rename from blueprints/zipline/zipline.png
rename to public/blueprints/zipline/zipline.png
diff --git a/meta.json b/public/meta.json
similarity index 99%
rename from meta.json
rename to public/meta.json
index 27fefa6f..0b01ced5 100644
--- a/meta.json
+++ b/public/meta.json
@@ -1321,7 +1321,7 @@
"id": "langflow",
"name": "Langflow",
"version": "1.1.1",
- "description": "Langflow is a low-code app builder for RAG and multi-agent AI applications. It’s Python-based and agnostic to any model, API, or database. ",
+ "description": "Langflow is a low-code app builder for RAG and multi-agent AI applications. It's Python-based and agnostic to any model, API, or database. ",
"logo": "langflow.svg",
"links": {
"github": "https://github.com/langflow-ai/langflow/tree/main",
diff --git a/public/vite.svg b/public/vite.svg
new file mode 100644
index 00000000..e7b8dfb1
--- /dev/null
+++ b/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/App.css b/src/App.css
new file mode 100644
index 00000000..fb6417ff
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,9 @@
+body {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
+ Arial, sans-serif;
+ background-color: #f5f5f5;
+}
+
diff --git a/src/App.tsx b/src/App.tsx
new file mode 100644
index 00000000..cdb7d10e
--- /dev/null
+++ b/src/App.tsx
@@ -0,0 +1,11 @@
+import React from 'react';
+import TemplateGrid from './components/TemplateGrid';
+import './App.css';
+
+function App() {
+ return (
+
+ );
+}
+
+export default App;
diff --git a/src/assets/react.svg b/src/assets/react.svg
new file mode 100644
index 00000000..6c87de9b
--- /dev/null
+++ b/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/TemplateGrid.tsx b/src/components/TemplateGrid.tsx
new file mode 100644
index 00000000..494168f0
--- /dev/null
+++ b/src/components/TemplateGrid.tsx
@@ -0,0 +1,331 @@
+import React, { useEffect, useState } from 'react';
+import { Input } from './ui/input';
+import { Card, CardHeader, CardTitle, CardContent, CardFooter } from './ui/card';
+import {
+ Dialog,
+ DialogContent,
+ DialogDescription,
+ DialogHeader,
+ DialogTitle,
+} from './ui/dialog';
+import { Button } from './ui/button';
+import { toast } from 'sonner';
+import copy from 'copy-to-clipboard';
+interface Template {
+ id: string;
+ name: string;
+ description: string;
+ version: string;
+ logo?: string;
+ links: {
+ github?: string;
+ website?: string;
+ docs?: string;
+ };
+ tags: string[];
+}
+
+interface TemplateFiles {
+ dockerCompose: string | null;
+ config: string | null;
+}
+
+const TemplateGrid: React.FC = () => {
+ const [templates, setTemplates] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
+ const [searchQuery, setSearchQuery] = useState('');
+ const [selectedTemplate, setSelectedTemplate] = useState(null);
+ const [templateFiles, setTemplateFiles] = useState(null);
+ const [modalLoading, setModalLoading] = useState(false);
+
+ useEffect(() => {
+ const fetchTemplates = async () => {
+ try {
+ const response = await fetch('/meta.json');
+ if (!response.ok) {
+ throw new Error('Failed to fetch templates');
+ }
+ const data = await response.json();
+ setTemplates(data);
+ setLoading(false);
+ } catch (err) {
+ setError(err instanceof Error ? err.message : 'An error occurred');
+ setLoading(false);
+ }
+ };
+
+ fetchTemplates();
+ }, []);
+
+ const fetchTemplateFiles = async (templateId: string) => {
+ setModalLoading(true);
+ try {
+ const [dockerComposeRes, configRes] = await Promise.all([
+ fetch(`/blueprints/${templateId}/docker-compose.yml`),
+ fetch(`/blueprints/${templateId}/template.yml`)
+ ]);
+
+ const dockerCompose = dockerComposeRes.ok ? await dockerComposeRes.text() : null;
+ const config = configRes.ok ? await configRes.text() : null;
+
+ setTemplateFiles({ dockerCompose, config });
+ } catch (err) {
+ console.error('Error fetching template files:', err);
+ setTemplateFiles({ dockerCompose: null, config: null });
+ } finally {
+ setModalLoading(false);
+ }
+ };
+
+ const handleTemplateClick = (template: Template) => {
+ setSelectedTemplate(template);
+ setTemplateFiles(null); // Reset previous files
+ fetchTemplateFiles(template.id);
+ };
+
+ const filteredTemplates = templates.filter((template) =>
+ template.name.toLowerCase().includes(searchQuery.toLowerCase())
+ );
+
+ const getBase64Config = () => {
+ if (!templateFiles?.dockerCompose && !templateFiles?.config) return '';
+
+ const configObj = {
+ compose: templateFiles.dockerCompose || '',
+ config: templateFiles.config || ''
+ };
+
+ return btoa(JSON.stringify(configObj, null, 2));
+ };
+
+ if (loading) {
+ return (
+
+
+ Loading templates...
+
+
+ );
+ }
+
+ if (error) {
+ return (
+
+ );
+ }
+
+ return (
+ <>
+
+
+ Available Templates ({templates.length})
+
+
+
+
setSearchQuery(e.target.value)}
+ className="w-full"
+ />
+
+
+
+
+
+ {filteredTemplates.length > 0 ? (
+ filteredTemplates.map((template) => (
+
handleTemplateClick(template)}
+ >
+
+
+
+ {template.name}
+
+
+ {template.description}
+
+ {template.tags.slice(0, 3).map((tag) => (
+
+ {tag}
+
+ ))}
+
+
+
+ v{template.version}
+
+
+
+ ))
+ ) : (
+
+
+ No templates found matching "{searchQuery}"
+
+
+ )}
+
+
+
+
+ >
+ );
+};
+
+export default TemplateGrid;
\ No newline at end of file
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
new file mode 100644
index 00000000..cd0857a0
--- /dev/null
+++ b/src/components/ui/button.tsx
@@ -0,0 +1,58 @@
+import * as React from "react"
+import { Slot } from "@radix-ui/react-slot"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const buttonVariants = cva(
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ {
+ variants: {
+ variant: {
+ default:
+ "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
+ destructive:
+ "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
+ outline:
+ "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
+ secondary:
+ "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
+ ghost: "hover:bg-accent hover:text-accent-foreground",
+ link: "text-primary underline-offset-4 hover:underline",
+ },
+ size: {
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
+ icon: "size-9",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ }
+)
+
+function Button({
+ className,
+ variant,
+ size,
+ asChild = false,
+ ...props
+}: React.ComponentProps<"button"> &
+ VariantProps & {
+ asChild?: boolean
+ }) {
+ const Comp = asChild ? Slot : "button"
+
+ return (
+
+ )
+}
+
+export { Button, buttonVariants }
diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx
new file mode 100644
index 00000000..5e960a68
--- /dev/null
+++ b/src/components/ui/card.tsx
@@ -0,0 +1,68 @@
+import * as React from "react"
+
+import { cn } from "@/lib/utils"
+
+function Card({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function CardContent({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx
new file mode 100644
index 00000000..1b608b21
--- /dev/null
+++ b/src/components/ui/dialog.tsx
@@ -0,0 +1,133 @@
+import * as React from "react"
+import * as DialogPrimitive from "@radix-ui/react-dialog"
+import { XIcon } from "lucide-react"
+
+import { cn } from "@/lib/utils"
+
+function Dialog({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+function DialogTrigger({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+function DialogPortal({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+function DialogClose({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+function DialogOverlay({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+function DialogContent({
+ className,
+ children,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+
+
+ {children}
+
+
+ Close
+
+
+
+ )
+}
+
+function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function DialogTitle({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+function DialogDescription({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+export {
+ Dialog,
+ DialogClose,
+ DialogContent,
+ DialogDescription,
+ DialogFooter,
+ DialogHeader,
+ DialogOverlay,
+ DialogPortal,
+ DialogTitle,
+ DialogTrigger,
+}
diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx
new file mode 100644
index 00000000..4bfe9cc5
--- /dev/null
+++ b/src/components/ui/input.tsx
@@ -0,0 +1,21 @@
+import * as React from "react"
+
+import { cn } from "@/lib/utils"
+
+function Input({ className, type, ...props }: React.ComponentProps<"input">) {
+ return (
+
+ )
+}
+
+export { Input }
diff --git a/src/components/ui/sonner.tsx b/src/components/ui/sonner.tsx
new file mode 100644
index 00000000..8bfe1d16
--- /dev/null
+++ b/src/components/ui/sonner.tsx
@@ -0,0 +1,27 @@
+import { useTheme } from "next-themes"
+import { Toaster as Sonner, ToasterProps } from "sonner"
+
+const Toaster = ({ ...props }: ToasterProps) => {
+ const { theme = "system" } = useTheme()
+
+ return (
+
+ )
+}
+
+export { Toaster }
diff --git a/src/index.css b/src/index.css
new file mode 100644
index 00000000..88df9da2
--- /dev/null
+++ b/src/index.css
@@ -0,0 +1,166 @@
+@import "tailwindcss";
+
+
+@plugin "tailwindcss-animate";
+
+@custom-variant dark (&:is(.dark *));
+
+#root {
+ width: 100%;
+}
+
+:root {
+ font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ font-weight: 400;
+
+ color-scheme: light dark;
+ color: rgba(255, 255, 255, 0.87);
+ background-color: #242424;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ --background: oklch(1 0 0);
+ --foreground: oklch(0.145 0 0);
+ --card: oklch(1 0 0);
+ --card-foreground: oklch(0.145 0 0);
+ --popover: oklch(1 0 0);
+ --popover-foreground: oklch(0.145 0 0);
+ --primary: oklch(0.205 0 0);
+ --primary-foreground: oklch(0.985 0 0);
+ --secondary: oklch(0.97 0 0);
+ --secondary-foreground: oklch(0.205 0 0);
+ --muted: oklch(0.97 0 0);
+ --muted-foreground: oklch(0.556 0 0);
+ --accent: oklch(0.97 0 0);
+ --accent-foreground: oklch(0.205 0 0);
+ --destructive: oklch(0.577 0.245 27.325);
+ --destructive-foreground: oklch(0.577 0.245 27.325);
+ --border: oklch(0.922 0 0);
+ --input: oklch(0.922 0 0);
+ --ring: oklch(0.708 0 0);
+ --chart-1: oklch(0.646 0.222 41.116);
+ --chart-2: oklch(0.6 0.118 184.704);
+ --chart-3: oklch(0.398 0.07 227.392);
+ --chart-4: oklch(0.828 0.189 84.429);
+ --chart-5: oklch(0.769 0.188 70.08);
+ --radius: 0.625rem;
+ --sidebar: oklch(0.985 0 0);
+ --sidebar-foreground: oklch(0.145 0 0);
+ --sidebar-primary: oklch(0.205 0 0);
+ --sidebar-primary-foreground: oklch(0.985 0 0);
+ --sidebar-accent: oklch(0.97 0 0);
+ --sidebar-accent-foreground: oklch(0.205 0 0);
+ --sidebar-border: oklch(0.922 0 0);
+ --sidebar-ring: oklch(0.708 0 0);
+}
+
+a {
+ font-weight: 500;
+ color: #646cff;
+ text-decoration: inherit;
+}
+a:hover {
+ color: #535bf2;
+}
+
+
+
+
+@media (prefers-color-scheme: light) {
+ :root {
+ color: #213547;
+ background-color: #ffffff;
+ }
+ a:hover {
+ color: #747bff;
+ }
+ button {
+ background-color: #f9f9f9;
+ }
+}
+
+.dark {
+ --background: oklch(0.145 0 0);
+ --foreground: oklch(0.985 0 0);
+ --card: oklch(0.145 0 0);
+ --card-foreground: oklch(0.985 0 0);
+ --popover: oklch(0.145 0 0);
+ --popover-foreground: oklch(0.985 0 0);
+ --primary: oklch(0.985 0 0);
+ --primary-foreground: oklch(0.205 0 0);
+ --secondary: oklch(0.269 0 0);
+ --secondary-foreground: oklch(0.985 0 0);
+ --muted: oklch(0.269 0 0);
+ --muted-foreground: oklch(0.708 0 0);
+ --accent: oklch(0.269 0 0);
+ --accent-foreground: oklch(0.985 0 0);
+ --destructive: oklch(0.396 0.141 25.723);
+ --destructive-foreground: oklch(0.637 0.237 25.331);
+ --border: oklch(0.269 0 0);
+ --input: oklch(0.269 0 0);
+ --ring: oklch(0.439 0 0);
+ --chart-1: oklch(0.488 0.243 264.376);
+ --chart-2: oklch(0.696 0.17 162.48);
+ --chart-3: oklch(0.769 0.188 70.08);
+ --chart-4: oklch(0.627 0.265 303.9);
+ --chart-5: oklch(0.645 0.246 16.439);
+ --sidebar: oklch(0.205 0 0);
+ --sidebar-foreground: oklch(0.985 0 0);
+ --sidebar-primary: oklch(0.488 0.243 264.376);
+ --sidebar-primary-foreground: oklch(0.985 0 0);
+ --sidebar-accent: oklch(0.269 0 0);
+ --sidebar-accent-foreground: oklch(0.985 0 0);
+ --sidebar-border: oklch(0.269 0 0);
+ --sidebar-ring: oklch(0.439 0 0);
+}
+
+@theme inline {
+ --color-background: var(--background);
+ --color-foreground: var(--foreground);
+ --color-card: var(--card);
+ --color-card-foreground: var(--card-foreground);
+ --color-popover: var(--popover);
+ --color-popover-foreground: var(--popover-foreground);
+ --color-primary: var(--primary);
+ --color-primary-foreground: var(--primary-foreground);
+ --color-secondary: var(--secondary);
+ --color-secondary-foreground: var(--secondary-foreground);
+ --color-muted: var(--muted);
+ --color-muted-foreground: var(--muted-foreground);
+ --color-accent: var(--accent);
+ --color-accent-foreground: var(--accent-foreground);
+ --color-destructive: var(--destructive);
+ --color-destructive-foreground: var(--destructive-foreground);
+ --color-border: var(--border);
+ --color-input: var(--input);
+ --color-ring: var(--ring);
+ --color-chart-1: var(--chart-1);
+ --color-chart-2: var(--chart-2);
+ --color-chart-3: var(--chart-3);
+ --color-chart-4: var(--chart-4);
+ --color-chart-5: var(--chart-5);
+ --radius-sm: calc(var(--radius) - 4px);
+ --radius-md: calc(var(--radius) - 2px);
+ --radius-lg: var(--radius);
+ --radius-xl: calc(var(--radius) + 4px);
+ --color-sidebar: var(--sidebar);
+ --color-sidebar-foreground: var(--sidebar-foreground);
+ --color-sidebar-primary: var(--sidebar-primary);
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
+ --color-sidebar-accent: var(--sidebar-accent);
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
+ --color-sidebar-border: var(--sidebar-border);
+ --color-sidebar-ring: var(--sidebar-ring);
+}
+
+@layer base {
+ * {
+ @apply border-border outline-ring/50;
+ }
+ body {
+ @apply bg-background text-foreground;
+ }
+}
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
new file mode 100644
index 00000000..d084ccad
--- /dev/null
+++ b/src/lib/utils.ts
@@ -0,0 +1,6 @@
+import { type ClassValue, clsx } from "clsx"
+import { twMerge } from "tailwind-merge"
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs))
+}
diff --git a/src/main.tsx b/src/main.tsx
new file mode 100644
index 00000000..aa948979
--- /dev/null
+++ b/src/main.tsx
@@ -0,0 +1,11 @@
+import { StrictMode } from 'react'
+import { createRoot } from 'react-dom/client'
+import './index.css'
+import App from './App.tsx'
+import { Toaster } from './components/ui/sonner.tsx'
+createRoot(document.getElementById('root')!).render(
+
+
+
+ ,
+)
diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts
new file mode 100644
index 00000000..11f02fe2
--- /dev/null
+++ b/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/tsconfig.app.json b/tsconfig.app.json
new file mode 100644
index 00000000..9f0a5124
--- /dev/null
+++ b/tsconfig.app.json
@@ -0,0 +1,30 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "react-jsx",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["src"]
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 00000000..fec8c8e5
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ],
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ }
+}
diff --git a/tsconfig.node.json b/tsconfig.node.json
new file mode 100644
index 00000000..db0becc8
--- /dev/null
+++ b/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "ES2022",
+ "lib": ["ES2023"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/vite.config.ts b/vite.config.ts
new file mode 100644
index 00000000..3bada2b2
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+import tailwindcss from '@tailwindcss/vite'
+import path from 'path'
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [react(), tailwindcss()],
+ resolve: {
+ alias: {
+ "@": path.resolve(__dirname, "./src"),
+ },
+ },
+})