diff --git a/app/components/sections/HeroSection.vue b/app/components/sections/HeroSection.vue index d3ace34..0935500 100644 --- a/app/components/sections/HeroSection.vue +++ b/app/components/sections/HeroSection.vue @@ -8,6 +8,7 @@ let typingInterval: ReturnType | null = null const typeRole = () => { const currentRole = roles[currentRoleIndex.value] + if (!currentRole) return let charIndex = 0 isTyping.value = true displayedRole.value = '' diff --git a/package-lock.json b/package-lock.json index 4445cff..7902453 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,10 +17,14 @@ "@nuxtjs/google-fonts": "^3.2.0", "@unhead/vue": "^2.1.2", "better-sqlite3": "^12.6.2", + "crossws": "^0.4.4", "eslint": "^9.39.2", "nuxt": "^4.3.0", "tailwindcss": "^4.1.18", "typescript": "^5.9.3" + }, + "devDependencies": { + "@iconify-json/lucide": "^1.2.87" } }, "node_modules/@alloc/quick-lru": { @@ -1422,6 +1426,16 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@iconify-json/lucide": { + "version": "1.2.87", + "resolved": "https://registry.npmjs.org/@iconify-json/lucide/-/lucide-1.2.87.tgz", + "integrity": "sha512-wxYIAp0f8Uw0rJa6BMWMaRbiHk3yV4XczA38GKXFlqyZtTdmHM1QOF4NZw5xpMlRDzbh2MnB7wjteLeFnn/ciQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@iconify/types": "*" + } + }, "node_modules/@iconify/collections": { "version": "1.0.643", "resolved": "https://registry.npmjs.org/@iconify/collections/-/collections-1.0.643.tgz", @@ -9546,12 +9560,18 @@ } }, "node_modules/crossws": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", - "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.4.4.tgz", + "integrity": "sha512-w6c4OdpRNnudVmcgr7brb/+/HmYjMQvYToO/oTrprTwxRUiom3LYWU1PMWuD006okbUWpII1Ea9/+kwpUfmyRg==", "license": "MIT", - "dependencies": { - "uncrypto": "^0.1.3" + "peer": true, + "peerDependencies": { + "srvx": ">=0.7.1" + }, + "peerDependenciesMeta": { + "srvx": { + "optional": true + } } }, "node_modules/css-declaration-sorter": { @@ -12227,6 +12247,15 @@ "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", "license": "MIT" }, + "node_modules/h3/node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -13840,6 +13869,15 @@ "listhen": "bin/listhen.mjs" } }, + "node_modules/listhen/node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, "node_modules/listhen/node_modules/pathe": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", @@ -15240,6 +15278,15 @@ } } }, + "node_modules/nitropack/node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, "node_modules/nitropack/node_modules/picomatch": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", @@ -18180,7 +18227,6 @@ "resolved": "https://registry.npmjs.org/srvx/-/srvx-0.10.1.tgz", "integrity": "sha512-A//xtfak4eESMWWydSRFUVvCTQbSwivnGCEf8YGPe2eHU0+Z6znfUTCPF0a7oV3sObSOcrXHlL6Bs9vVctfXdg==", "license": "MIT", - "peer": true, "bin": { "srvx": "bin/srvx.mjs" }, diff --git a/package.json b/package.json index f24a0fc..3ff3c9f 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,13 @@ "@nuxtjs/google-fonts": "^3.2.0", "@unhead/vue": "^2.1.2", "better-sqlite3": "^12.6.2", + "crossws": "^0.4.4", "eslint": "^9.39.2", "nuxt": "^4.3.0", "tailwindcss": "^4.1.18", "typescript": "^5.9.3" + }, + "devDependencies": { + "@iconify-json/lucide": "^1.2.87" } }