From de14eb400e37be79d9e28025e4983f6aaae21d56 Mon Sep 17 00:00:00 2001
From: Croos3r
Date: Thu, 18 Jul 2024 11:13:31 +0200
Subject: [PATCH 1/6] fix(buttons): now centering text for bigger buttons,
removed div and applied style to button directly
Took 3 hours 30 minutes
---
src/components/LButton.vue | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/components/LButton.vue b/src/components/LButton.vue
index c5ee128..c476a86 100644
--- a/src/components/LButton.vue
+++ b/src/components/LButton.vue
@@ -12,7 +12,10 @@ const { text, variant, light, small } = withDefaults(defineProps()
light: false,
small: false,
});
-let style = twMerge("rounded-full font-bold w-fit", small ? "body-tiny px-6 py-3" : "body-default px-8 py-4");
+let style = twMerge(
+ "rounded-full font-bold w-fit flex justify-center space-x-1",
+ small ? "body-tiny px-6 py-3" : "body-default px-8 py-4",
+);
if (variant === "primary")
style = twMerge(
@@ -31,9 +34,7 @@ else
-
- {{ text }}
-
-
+ {{ text }}
+
From 9a35416e97a0a6d43babe2534c6897e4c608723c Mon Sep 17 00:00:00 2001
From: Croos3r
Date: Thu, 18 Jul 2024 11:15:40 +0200
Subject: [PATCH 2/6] deps: added shadcn-vue for complex components
Took 2 minutes
---
components.json | 17 +++
package-lock.json | 334 +++++++++++++++++++++++++++++++++++++++++----
package.json | 5 +-
tailwind.config.js | 30 +++-
tsconfig.json | 8 +-
vite.config.ts | 6 +
6 files changed, 370 insertions(+), 30 deletions(-)
create mode 100644 components.json
diff --git a/components.json b/components.json
new file mode 100644
index 0000000..8661cfb
--- /dev/null
+++ b/components.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://shadcn-vue.com/schema.json",
+ "style": "default",
+ "typescript": true,
+ "tsConfigPath": "./tsconfig.json",
+ "tailwind": {
+ "config": "tailwind.config.js",
+ "css": "src/style.css",
+ "baseColor": "neutral",
+ "cssVariables": true
+ },
+ "framework": "vite",
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils"
+ }
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 332f973..d0cf3ec 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,13 +11,16 @@
"@aleph-sdk/client": "^1.0.6",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
+ "lucide-vue-next": "^0.407.0",
"pinia": "^2.1.7",
- "tailwind-merge": "^2.3.0",
+ "radix-vue": "^1.9.0",
+ "tailwind-merge": "^2.4.0",
"tailwindcss-animate": "^1.0.7",
"vue": "^3.4.27",
"vue-router": "^4.3.2"
},
"devDependencies": {
+ "@types/node": "^20.14.10",
"@typescript-eslint/eslint-plugin": "^7.9.0",
"@typescript-eslint/parser": "^7.9.0",
"@vitejs/plugin-vue": "^5.0.4",
@@ -103,18 +106,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/@babel/runtime": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz",
- "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==",
- "license": "MIT",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@esbuild/aix-ppc64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
@@ -561,6 +552,68 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz",
+ "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.4"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz",
+ "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.4"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz",
+ "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==",
+ "license": "MIT"
+ },
+ "node_modules/@floating-ui/vue": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.1.tgz",
+ "integrity": "sha512-cyawjk9etPZPl/RVtMRnWrwtAhWbPVSrRVYARgOzhLIqxr0k2up1APrrFjqP9QwRQ0AwjKSvbWg4YC6jESutow==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.0.0",
+ "@floating-ui/utils": "^0.2.4",
+ "vue-demi": ">=0.13.0"
+ }
+ },
+ "node_modules/@floating-ui/vue/node_modules/vue-demi": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@@ -616,6 +669,24 @@
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
+ "node_modules/@internationalized/date": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.4.tgz",
+ "integrity": "sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ }
+ },
+ "node_modules/@internationalized/number": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.3.tgz",
+ "integrity": "sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ }
+ },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -970,12 +1041,63 @@
"win32"
]
},
+ "node_modules/@swc/helpers": {
+ "version": "0.5.11",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz",
+ "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@tanstack/virtual-core": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.8.2.tgz",
+ "integrity": "sha512-ffpN6kTaPGwQPoWMcBAHbdv2ZCpj1SugldoYAcY0C4xH+Pej1KCOEUisNeEgbUnXOp8Y/4q6wGPu2tFHthOIQw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/vue-virtual": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.8.2.tgz",
+ "integrity": "sha512-mVix+nFKajrA+48ky5s7/IYP5/uHHLTz1ZRJfwg2bOLcHUcKyvsLE2UGG4+8hd62ueprWg5MgTudGyR2TYfwpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/virtual-core": "3.8.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "vue": "^2.7.0 || ^3.0.0"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
"dev": true
},
+ "node_modules/@types/node": {
+ "version": "20.14.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz",
+ "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/web-bluetooth": {
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
+ "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==",
+ "license": "MIT"
+ },
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz",
@@ -1326,6 +1448,94 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz",
"integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA=="
},
+ "node_modules/@vueuse/core": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz",
+ "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/web-bluetooth": "^0.0.20",
+ "@vueuse/metadata": "10.11.0",
+ "@vueuse/shared": "10.11.0",
+ "vue-demi": ">=0.14.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/core/node_modules/vue-demi": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vueuse/metadata": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz",
+ "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/shared": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz",
+ "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==",
+ "license": "MIT",
+ "dependencies": {
+ "vue-demi": ">=0.14.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/shared/node_modules/vue-demi": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/acorn": {
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
@@ -1413,6 +1623,18 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
+ "node_modules/aria-hidden": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz",
+ "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -2211,6 +2433,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/defu": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
+ "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
+ "license": "MIT"
+ },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -2678,8 +2906,7 @@
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-glob": {
"version": "3.3.2",
@@ -3492,6 +3719,15 @@
"node": "14 || >=16.14"
}
},
+ "node_modules/lucide-vue-next": {
+ "version": "0.407.0",
+ "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.407.0.tgz",
+ "integrity": "sha512-BvwHA9u/t80S8VEO3I/OqY8xdW0tprGtEnMtz29MbnsQvjUXzzuw9Hgi7vyFt1b5PlQo4Ub1F3UbGkAB7bKrew==",
+ "license": "ISC",
+ "peerDependencies": {
+ "vue": ">=3.0.1"
+ }
+ },
"node_modules/magic-string": {
"version": "0.30.10",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
@@ -4437,6 +4673,46 @@
}
]
},
+ "node_modules/radix-vue": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/radix-vue/-/radix-vue-1.9.0.tgz",
+ "integrity": "sha512-Ds1GpB6IBhSyFePWyxDhnqA7Ymgmcxah3t5qWxamftqX/zFRkkf5RaRxzuGB8QgdbP6Q/t7scIdMEcndhFc+Tg==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.7",
+ "@floating-ui/vue": "^1.1.0",
+ "@internationalized/date": "^3.5.4",
+ "@internationalized/number": "^3.5.3",
+ "@tanstack/vue-virtual": "^3.8.1",
+ "@vueuse/core": "^10.11.0",
+ "@vueuse/shared": "^10.11.0",
+ "aria-hidden": "^1.2.4",
+ "defu": "^6.1.4",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^5.0.7"
+ },
+ "peerDependencies": {
+ "vue": ">= 3.2.0"
+ }
+ },
+ "node_modules/radix-vue/node_modules/nanoid": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz",
+ "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.js"
+ },
+ "engines": {
+ "node": "^18 || >=20"
+ }
+ },
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -4492,12 +4768,6 @@
"node": ">=8.10.0"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "license": "MIT"
- },
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -4990,13 +5260,10 @@
}
},
"node_modules/tailwind-merge": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz",
- "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz",
+ "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==",
"license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.24.1"
- },
"funding": {
"type": "github",
"url": "https://github.com/sponsors/dcastil"
@@ -5114,6 +5381,12 @@
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
},
+ "node_modules/tslib": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+ "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "license": "0BSD"
+ },
"node_modules/tty-browserify": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
@@ -5158,6 +5431,13 @@
"node": ">=14.17"
}
},
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/update-browserslist-db": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
diff --git a/package.json b/package.json
index f4a0f0e..4a3034b 100644
--- a/package.json
+++ b/package.json
@@ -16,13 +16,16 @@
"@aleph-sdk/client": "^1.0.6",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
+ "lucide-vue-next": "^0.407.0",
"pinia": "^2.1.7",
- "tailwind-merge": "^2.3.0",
+ "radix-vue": "^1.9.0",
+ "tailwind-merge": "^2.4.0",
"tailwindcss-animate": "^1.0.7",
"vue": "^3.4.27",
"vue-router": "^4.3.2"
},
"devDependencies": {
+ "@types/node": "^20.14.10",
"@typescript-eslint/eslint-plugin": "^7.9.0",
"@typescript-eslint/parser": "^7.9.0",
"@vitejs/plugin-vue": "^5.0.4",
diff --git a/tailwind.config.js b/tailwind.config.js
index 8a092d2..c19abd3 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -8,7 +8,7 @@ export default {
content: [
"./pages/**/*.{ts,tsx,vue}",
- "./components/**/*.{ts,tsx,vue}",
+ "@/components**/*.{ts,tsx,vue}",
"./app/**/*.{ts,tsx,vue}",
"./src/**/*.{ts,tsx,vue}",
],
@@ -211,6 +211,34 @@ export default {
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
+ keyframes: {
+ "accordion-down": {
+ from: { height: 0 },
+ to: {
+ height: "var(--radix-accordion-content-height)",
+ },
+ "accordion-up": {
+ from: { height: "var(--radix-accordion-content-height)" },
+ to: { height: 0 },
+ },
+ "collapsible-down": {
+ from: { height: 0 },
+ to: {
+ height: "var(--radix-collapsible-content-height)",
+ },
+ "collapsible-up": {
+ from: { height: "var(--radix-collapsible-content-height)" },
+ to: { height: 0 },
+ },
+ },
+ animation: {
+ "accordion-down": "accordion-down 0.2s ease-out",
+ "accordion-up": "accordion-up 0.2s ease-out",
+ "collapsible-down": "collapsible-down 0.2s ease-in-out",
+ "collapsible-up": "collapsible-up 0.2s ease-in-out",
+ },
+ },
+ },
},
},
plugins: [animate],
diff --git a/tsconfig.json b/tsconfig.json
index a38d0d5..da4cfa6 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -22,7 +22,13 @@
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
- "allowSyntheticDefaultImports": true
+ "allowSyntheticDefaultImports": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": [
+ "./src/*"
+ ]
+ }
},
"include": [
"src/**/*.ts",
diff --git a/vite.config.ts b/vite.config.ts
index 5d5445e..68290b6 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,8 +1,14 @@
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { nodePolyfills } from "vite-plugin-node-polyfills";
+import path from "node:path";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue(), nodePolyfills()],
+ resolve: {
+ alias: {
+ "@": path.resolve(__dirname, "./src"),
+ },
+ },
});
From 2da7fe2e30cce966dc8491e9d79ab43b297a3aeb Mon Sep 17 00:00:00 2001
From: Croos3r
Date: Thu, 18 Jul 2024 11:16:36 +0200
Subject: [PATCH 3/6] style(imports): now importing via alias @
Took 54 seconds
---
src/App.vue | 4 ++--
src/pages/Company/JoinTeamSection.vue | 2 +-
src/pages/Company/ProductTextsSection.vue | 2 +-
src/pages/Company/TeamTextsSection.vue | 2 +-
src/pages/Developer/ArchitectureSection.vue | 8 ++++----
src/pages/Earn/CallToActionSection.vue | 2 +-
src/pages/Home/AICustomizationSection.vue | 4 ++--
src/pages/Home/ChatPreviewSection.vue | 2 +-
src/pages/Home/DataSecuritySection.vue | 2 +-
src/pages/Home/HeroSection.vue | 2 +-
src/pages/Home/NotYourAverageAIAssistant.vue | 4 ++--
src/pages/Home/OpenSourceModelsSection.vue | 8 ++++----
src/pages/Home/RedefiningAIBoundariesSection.vue | 2 +-
src/pages/Home/RoadmapSection.vue | 6 +++---
src/pages/Home/TheresMoreSection.vue | 2 +-
src/pages/Tokenomics/ContractAddressSection.vue | 4 ++--
src/pages/Tokenomics/ExplanationSection.vue | 2 +-
src/pages/Tokenomics/LiveSupplySection.vue | 2 +-
src/pages/Tokenomics/OverallTotalSupplySection.vue | 4 ++--
src/pages/Tokenomics/VestingScheduleSection.vue | 2 +-
20 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 361e001..5fc4cc9 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,6 +1,6 @@
diff --git a/src/pages/Company/JoinTeamSection.vue b/src/pages/Company/JoinTeamSection.vue
index 7c3ca87..4015ca6 100644
--- a/src/pages/Company/JoinTeamSection.vue
+++ b/src/pages/Company/JoinTeamSection.vue
@@ -19,5 +19,5 @@
diff --git a/src/pages/Company/ProductTextsSection.vue b/src/pages/Company/ProductTextsSection.vue
index ad0620e..702d258 100644
--- a/src/pages/Company/ProductTextsSection.vue
+++ b/src/pages/Company/ProductTextsSection.vue
@@ -1,6 +1,6 @@
diff --git a/src/pages/Home/DataSecuritySection.vue b/src/pages/Home/DataSecuritySection.vue
index 512b354..1f6010d 100644
--- a/src/pages/Home/DataSecuritySection.vue
+++ b/src/pages/Home/DataSecuritySection.vue
@@ -34,5 +34,5 @@
diff --git a/src/pages/Home/HeroSection.vue b/src/pages/Home/HeroSection.vue
index 3eebc86..0d7c00c 100644
--- a/src/pages/Home/HeroSection.vue
+++ b/src/pages/Home/HeroSection.vue
@@ -1,5 +1,5 @@
diff --git a/src/pages/Home/NotYourAverageAIAssistant.vue b/src/pages/Home/NotYourAverageAIAssistant.vue
index 0372cc3..af9311f 100644
--- a/src/pages/Home/NotYourAverageAIAssistant.vue
+++ b/src/pages/Home/NotYourAverageAIAssistant.vue
@@ -1,7 +1,7 @@
diff --git a/src/pages/Home/OpenSourceModelsSection.vue b/src/pages/Home/OpenSourceModelsSection.vue
index 8a64924..768da87 100644
--- a/src/pages/Home/OpenSourceModelsSection.vue
+++ b/src/pages/Home/OpenSourceModelsSection.vue
@@ -1,8 +1,8 @@
diff --git a/src/pages/Home/RedefiningAIBoundariesSection.vue b/src/pages/Home/RedefiningAIBoundariesSection.vue
index 015149b..7990f4f 100644
--- a/src/pages/Home/RedefiningAIBoundariesSection.vue
+++ b/src/pages/Home/RedefiningAIBoundariesSection.vue
@@ -3,7 +3,7 @@ import lockClosedIcon from "../../assets/icons/lock-closed.svg";
import botIcon from "../../assets/icons/bot.svg";
import globeIcon from "../../assets/icons/globe.svg";
import confidentialIcon from "../../assets/icons/confidential.svg";
-import LTinyHeading from "../../components/LTinyHeading.vue";
+import LTinyHeading from "@/components/LTinyHeading.vue";
const cards = [
{
diff --git a/src/pages/Home/RoadmapSection.vue b/src/pages/Home/RoadmapSection.vue
index a615b37..d2ae0d0 100644
--- a/src/pages/Home/RoadmapSection.vue
+++ b/src/pages/Home/RoadmapSection.vue
@@ -35,9 +35,9 @@
diff --git a/src/pages/Tokenomics/ExplanationSection.vue b/src/pages/Tokenomics/ExplanationSection.vue
index 2696caa..faf3e0e 100644
--- a/src/pages/Tokenomics/ExplanationSection.vue
+++ b/src/pages/Tokenomics/ExplanationSection.vue
@@ -1,6 +1,6 @@
diff --git a/src/pages/Tokenomics/VestingScheduleSection.vue b/src/pages/Tokenomics/VestingScheduleSection.vue
index 7d0d241..c09b23d 100644
--- a/src/pages/Tokenomics/VestingScheduleSection.vue
+++ b/src/pages/Tokenomics/VestingScheduleSection.vue
@@ -1,5 +1,5 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Leaving our website
+
+ You will be redirected to an external website ({{ $attrs.href }}) that is
+ not under our control. We cannot guarantee the accuracy, security, or reliability of the information provided
+ on these external sites.
+
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialog.vue b/src/components/ui/alert-dialog/AlertDialog.vue
new file mode 100644
index 0000000..8fb30de
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialog.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogAction.vue b/src/components/ui/alert-dialog/AlertDialogAction.vue
new file mode 100644
index 0000000..092d6cd
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogAction.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogCancel.vue b/src/components/ui/alert-dialog/AlertDialogCancel.vue
new file mode 100644
index 0000000..907f24c
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogCancel.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogContent.vue b/src/components/ui/alert-dialog/AlertDialogContent.vue
new file mode 100644
index 0000000..93ef36f
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogContent.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogDescription.vue b/src/components/ui/alert-dialog/AlertDialogDescription.vue
new file mode 100644
index 0000000..9682cbb
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogDescription.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogFooter.vue b/src/components/ui/alert-dialog/AlertDialogFooter.vue
new file mode 100644
index 0000000..55d0a0e
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogFooter.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogHeader.vue b/src/components/ui/alert-dialog/AlertDialogHeader.vue
new file mode 100644
index 0000000..c61c449
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogHeader.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogTitle.vue b/src/components/ui/alert-dialog/AlertDialogTitle.vue
new file mode 100644
index 0000000..50c583d
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogTitle.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/AlertDialogTrigger.vue b/src/components/ui/alert-dialog/AlertDialogTrigger.vue
new file mode 100644
index 0000000..4f5e2fd
--- /dev/null
+++ b/src/components/ui/alert-dialog/AlertDialogTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/alert-dialog/index.ts b/src/components/ui/alert-dialog/index.ts
new file mode 100644
index 0000000..91d138a
--- /dev/null
+++ b/src/components/ui/alert-dialog/index.ts
@@ -0,0 +1,9 @@
+export { default as AlertDialog } from './AlertDialog.vue'
+export { default as AlertDialogTrigger } from './AlertDialogTrigger.vue'
+export { default as AlertDialogContent } from './AlertDialogContent.vue'
+export { default as AlertDialogHeader } from './AlertDialogHeader.vue'
+export { default as AlertDialogTitle } from './AlertDialogTitle.vue'
+export { default as AlertDialogDescription } from './AlertDialogDescription.vue'
+export { default as AlertDialogFooter } from './AlertDialogFooter.vue'
+export { default as AlertDialogAction } from './AlertDialogAction.vue'
+export { default as AlertDialogCancel } from './AlertDialogCancel.vue'
diff --git a/src/components/ui/button/Button.vue b/src/components/ui/button/Button.vue
new file mode 100644
index 0000000..5cfd668
--- /dev/null
+++ b/src/components/ui/button/Button.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/button/index.ts b/src/components/ui/button/index.ts
new file mode 100644
index 0000000..1b00c32
--- /dev/null
+++ b/src/components/ui/button/index.ts
@@ -0,0 +1,35 @@
+import { type VariantProps, cva } from 'class-variance-authority'
+
+export { default as Button } from './Button.vue'
+
+export const buttonVariants = cva(
+ 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
+ {
+ variants: {
+ variant: {
+ default: 'bg-primary text-primary-foreground hover:bg-primary/90',
+ destructive:
+ 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
+ outline:
+ 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
+ secondary:
+ 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
+ link: 'text-primary underline-offset-4 hover:underline',
+ },
+ size: {
+ default: 'h-10 px-4 py-2',
+ xs: 'h-7 rounded px-2',
+ sm: 'h-9 rounded-md px-3',
+ lg: 'h-11 rounded-md px-8',
+ icon: 'h-10 w-10',
+ },
+ },
+ defaultVariants: {
+ variant: 'default',
+ size: 'default',
+ },
+ },
+)
+
+export type ButtonVariants = VariantProps
From e0267fae7804e964963b68aafbb506cb5c8e1c47 Mon Sep 17 00:00:00 2001
From: Croos3r
Date: Thu, 18 Jul 2024 11:36:57 +0200
Subject: [PATCH 5/6] fix(link): invalid href prop, forgotten v-else
Took 14 minutes
---
src/components/LLink.vue | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/components/LLink.vue b/src/components/LLink.vue
index 460a41b..b1b2332 100644
--- a/src/components/LLink.vue
+++ b/src/components/LLink.vue
@@ -12,12 +12,12 @@ const open = ref(false);
-
+
-
+
-
+
From 5381987c9945e8a933f3530a38517a952aa6cc94 Mon Sep 17 00:00:00 2001
From: Croos3r
Date: Thu, 18 Jul 2024 17:47:30 +0200
Subject: [PATCH 6/6] feat(link): replaced every internal and external links by
libertai link component
Took 26 minutes
---
src/components/Footer.vue | 10 +++--
src/components/LAnnouncementBanner.vue | 6 ++-
src/components/LLink.vue | 12 ++++--
src/components/Navbar.vue | 43 ++++++++++---------
src/pages/Company/JoinTeamSection.vue | 5 ++-
src/pages/Developer/ArchitectureSection.vue | 5 ++-
src/pages/Earn/CallToActionSection.vue | 5 ++-
src/pages/Home/AICustomizationSection.vue | 9 ++--
src/pages/Home/FooterSection.vue | 16 ++++---
src/pages/Home/HeroSection.vue | 7 +--
src/pages/Home/NotYourAverageAIAssistant.vue | 5 ++-
src/pages/Home/OpenSourceModelsSection.vue | 5 ++-
src/pages/Home/PartnersSection.vue | 12 +++---
.../Tokenomics/ContractAddressSection.vue | 13 +++---
14 files changed, 88 insertions(+), 65 deletions(-)
diff --git a/src/components/Footer.vue b/src/components/Footer.vue
index d4e0fa6..f2313a4 100644
--- a/src/components/Footer.vue
+++ b/src/components/Footer.vue
@@ -6,9 +6,9 @@
@@ -18,14 +18,16 @@
Copyright © LibertAI.io | Powered by
-
+
aleph.im
-
+
-
+
-
+
diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue
index ad32f3f..a696256 100644
--- a/src/components/Navbar.vue
+++ b/src/components/Navbar.vue
@@ -15,18 +15,18 @@
-
+
-
+
- Company
- Earn
- Developer
- Tokenomics
- Litepaper
+ Company
+ Earn
+ Developer
+ Tokenomics
+ Litepaper
Apps
@@ -40,18 +40,18 @@
role="menu"
>
@@ -60,7 +60,7 @@
-
+
@@ -69,32 +69,32 @@
-
+
-
Company
-
Earn
-
Developer
-
Tokenomics
+
Company
+
Earn
+
Developer
+
Tokenomics
Apps
@@ -105,6 +105,7 @@
diff --git a/src/pages/Developer/ArchitectureSection.vue b/src/pages/Developer/ArchitectureSection.vue
index 15cf296..0802d2c 100644
--- a/src/pages/Developer/ArchitectureSection.vue
+++ b/src/pages/Developer/ArchitectureSection.vue
@@ -3,6 +3,7 @@ import LModelCard from "@/components/LModelCard.vue";
import { models } from "@/texts.ts";
import LTinyHeading from "@/components/LTinyHeading.vue";
import LButton from "@/components/LButton.vue";
+import LLink from "@/components/LLink.vue";
const paragraphs = [
"LibertAI works on top of the aleph.im network. It uses its on-demand virtual machines (serverless). When you do a call to the API, it's going to one of the load balancers of the network that distributes your request to one of the available CRN (computing resource nodes, you can also call the API directly on one). This CRN then looks at the path (or domain) and redirects it to a specific virtual machine.",
@@ -29,9 +30,9 @@ const paragraphs = [
:type="model.type"
/>
-
+
-
+
How it works
How it works
diff --git a/src/pages/Earn/CallToActionSection.vue b/src/pages/Earn/CallToActionSection.vue
index 1a47e9d..58ca977 100644
--- a/src/pages/Earn/CallToActionSection.vue
+++ b/src/pages/Earn/CallToActionSection.vue
@@ -4,6 +4,7 @@ import CoreNodeImage from "../../assets/earn/core-channel-node-operator.svg";
import ResourceNodeImage from "../../assets/earn/resource-node-operator.svg";
import ConnectAccountsImage from "../../assets/earn/connect-accounts.svg";
import LButton from "@/components/LButton.vue";
+import LLink from "@/components/LLink.vue";
type Action = {
cardTitle: string;
@@ -62,9 +63,9 @@ const actions: Action[] = [
{{ action.cardTitle }}
{{ action.cardDescription }}
-
+
-
+
diff --git a/src/pages/Home/AICustomizationSection.vue b/src/pages/Home/AICustomizationSection.vue
index e1091f8..2fb85a1 100644
--- a/src/pages/Home/AICustomizationSection.vue
+++ b/src/pages/Home/AICustomizationSection.vue
@@ -7,6 +7,7 @@ import VirtualGirlfriend from "../../assets/home/personas/VirtualGirlfriend.png"
import Tromp from "../../assets/home/personas/Tromp.png";
import { onMounted, ref, watch } from "vue";
import LTinyHeading from "@/components/LTinyHeading.vue";
+import LLink from "@/components/LLink.vue";
const AIs = [
{ text: "Donald Tromp", image: Tromp },
@@ -67,9 +68,9 @@ onMounted(() => {
keeping your data encrypted and under your control.
{
keeping your data encrypted and under your control.
diff --git a/src/pages/Home/FooterSection.vue b/src/pages/Home/FooterSection.vue
index 136f2fb..74d61de 100644
--- a/src/pages/Home/FooterSection.vue
+++ b/src/pages/Home/FooterSection.vue
@@ -18,18 +18,20 @@
the future of decentralized intelligence.
-
+
diff --git a/src/pages/Home/HeroSection.vue b/src/pages/Home/HeroSection.vue
index 0d7c00c..95e705a 100644
--- a/src/pages/Home/HeroSection.vue
+++ b/src/pages/Home/HeroSection.vue
@@ -1,5 +1,6 @@
@@ -15,15 +16,15 @@ import LButton from "@/components/LButton.vue";
Discover the Freedom of Decentralized AI
Discover the Freedom of Decentralized AI
Discover the Freedom of Decentralized AI
Use decentralized AI and keep your data private and secure with blockchain.
-
+
-
+
diff --git a/src/pages/Home/NotYourAverageAIAssistant.vue b/src/pages/Home/NotYourAverageAIAssistant.vue
index af9311f..385e901 100644
--- a/src/pages/Home/NotYourAverageAIAssistant.vue
+++ b/src/pages/Home/NotYourAverageAIAssistant.vue
@@ -2,6 +2,7 @@
import iphone from "../../assets/home/notYourAverageAIAssistantIphone.png";
import LTinyHeading from "@/components/LTinyHeading.vue";
import LButton from "@/components/LButton.vue";
+import LLink from "@/components/LLink.vue";
@@ -19,9 +20,9 @@ import LButton from "@/components/LButton.vue";
-
+
-
+
diff --git a/src/pages/Home/OpenSourceModelsSection.vue b/src/pages/Home/OpenSourceModelsSection.vue
index 768da87..99fcc1f 100644
--- a/src/pages/Home/OpenSourceModelsSection.vue
+++ b/src/pages/Home/OpenSourceModelsSection.vue
@@ -3,6 +3,7 @@ import LModelCard from "@/components/LModelCard.vue";
import LButton from "@/components/LButton.vue";
import { models } from "@/texts.ts";
import LTinyHeading from "@/components/LTinyHeading.vue";
+import LLink from "@/components/LLink.vue";
@@ -26,9 +27,9 @@ import LTinyHeading from "@/components/LTinyHeading.vue";
:type="model.type"
/>
-
+
-
+
diff --git a/src/pages/Home/PartnersSection.vue b/src/pages/Home/PartnersSection.vue
index d955be1..67455c1 100644
--- a/src/pages/Home/PartnersSection.vue
+++ b/src/pages/Home/PartnersSection.vue
@@ -4,15 +4,17 @@
-
+
diff --git a/src/pages/Tokenomics/ContractAddressSection.vue b/src/pages/Tokenomics/ContractAddressSection.vue
index 8611536..f4c2199 100644
--- a/src/pages/Tokenomics/ContractAddressSection.vue
+++ b/src/pages/Tokenomics/ContractAddressSection.vue
@@ -2,24 +2,24 @@