├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── public └── favicon.ico ├── src ├── App.vue ├── main.css └── main.js └── vite.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Vite 2 | 3 | This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` 12 | 13 | 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "todo-app", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "todo-app", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "vue": "^3.2.25" 12 | }, 13 | "devDependencies": { 14 | "@vitejs/plugin-vue": "^2.3.3", 15 | "vite": "^2.9.9" 16 | } 17 | }, 18 | "node_modules/@babel/parser": { 19 | "version": "7.18.4", 20 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", 21 | "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", 22 | "bin": { 23 | "parser": "bin/babel-parser.js" 24 | }, 25 | "engines": { 26 | "node": ">=6.0.0" 27 | } 28 | }, 29 | "node_modules/@vitejs/plugin-vue": { 30 | "version": "2.3.3", 31 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz", 32 | "integrity": "sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==", 33 | "dev": true, 34 | "engines": { 35 | "node": ">=12.0.0" 36 | }, 37 | "peerDependencies": { 38 | "vite": "^2.5.10", 39 | "vue": "^3.2.25" 40 | } 41 | }, 42 | "node_modules/@vue/compiler-core": { 43 | "version": "3.2.36", 44 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.36.tgz", 45 | "integrity": "sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==", 46 | "dependencies": { 47 | "@babel/parser": "^7.16.4", 48 | "@vue/shared": "3.2.36", 49 | "estree-walker": "^2.0.2", 50 | "source-map": "^0.6.1" 51 | } 52 | }, 53 | "node_modules/@vue/compiler-dom": { 54 | "version": "3.2.36", 55 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz", 56 | "integrity": "sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==", 57 | "dependencies": { 58 | "@vue/compiler-core": "3.2.36", 59 | "@vue/shared": "3.2.36" 60 | } 61 | }, 62 | "node_modules/@vue/compiler-sfc": { 63 | "version": "3.2.36", 64 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz", 65 | "integrity": "sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==", 66 | "dependencies": { 67 | "@babel/parser": "^7.16.4", 68 | "@vue/compiler-core": "3.2.36", 69 | "@vue/compiler-dom": "3.2.36", 70 | "@vue/compiler-ssr": "3.2.36", 71 | "@vue/reactivity-transform": "3.2.36", 72 | "@vue/shared": "3.2.36", 73 | "estree-walker": "^2.0.2", 74 | "magic-string": "^0.25.7", 75 | "postcss": "^8.1.10", 76 | "source-map": "^0.6.1" 77 | } 78 | }, 79 | "node_modules/@vue/compiler-ssr": { 80 | "version": "3.2.36", 81 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz", 82 | "integrity": "sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==", 83 | "dependencies": { 84 | "@vue/compiler-dom": "3.2.36", 85 | "@vue/shared": "3.2.36" 86 | } 87 | }, 88 | "node_modules/@vue/reactivity": { 89 | "version": "3.2.36", 90 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.36.tgz", 91 | "integrity": "sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==", 92 | "dependencies": { 93 | "@vue/shared": "3.2.36" 94 | } 95 | }, 96 | "node_modules/@vue/reactivity-transform": { 97 | "version": "3.2.36", 98 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz", 99 | "integrity": "sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==", 100 | "dependencies": { 101 | "@babel/parser": "^7.16.4", 102 | "@vue/compiler-core": "3.2.36", 103 | "@vue/shared": "3.2.36", 104 | "estree-walker": "^2.0.2", 105 | "magic-string": "^0.25.7" 106 | } 107 | }, 108 | "node_modules/@vue/runtime-core": { 109 | "version": "3.2.36", 110 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.36.tgz", 111 | "integrity": "sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==", 112 | "dependencies": { 113 | "@vue/reactivity": "3.2.36", 114 | "@vue/shared": "3.2.36" 115 | } 116 | }, 117 | "node_modules/@vue/runtime-dom": { 118 | "version": "3.2.36", 119 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz", 120 | "integrity": "sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==", 121 | "dependencies": { 122 | "@vue/runtime-core": "3.2.36", 123 | "@vue/shared": "3.2.36", 124 | "csstype": "^2.6.8" 125 | } 126 | }, 127 | "node_modules/@vue/server-renderer": { 128 | "version": "3.2.36", 129 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.36.tgz", 130 | "integrity": "sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==", 131 | "dependencies": { 132 | "@vue/compiler-ssr": "3.2.36", 133 | "@vue/shared": "3.2.36" 134 | }, 135 | "peerDependencies": { 136 | "vue": "3.2.36" 137 | } 138 | }, 139 | "node_modules/@vue/shared": { 140 | "version": "3.2.36", 141 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.36.tgz", 142 | "integrity": "sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==" 143 | }, 144 | "node_modules/csstype": { 145 | "version": "2.6.20", 146 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", 147 | "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" 148 | }, 149 | "node_modules/esbuild": { 150 | "version": "0.14.42", 151 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.42.tgz", 152 | "integrity": "sha512-V0uPZotCEHokJdNqyozH6qsaQXqmZEOiZWrXnds/zaH/0SyrIayRXWRB98CENO73MIZ9T3HBIOsmds5twWtmgw==", 153 | "dev": true, 154 | "hasInstallScript": true, 155 | "bin": { 156 | "esbuild": "bin/esbuild" 157 | }, 158 | "engines": { 159 | "node": ">=12" 160 | }, 161 | "optionalDependencies": { 162 | "esbuild-android-64": "0.14.42", 163 | "esbuild-android-arm64": "0.14.42", 164 | "esbuild-darwin-64": "0.14.42", 165 | "esbuild-darwin-arm64": "0.14.42", 166 | "esbuild-freebsd-64": "0.14.42", 167 | "esbuild-freebsd-arm64": "0.14.42", 168 | "esbuild-linux-32": "0.14.42", 169 | "esbuild-linux-64": "0.14.42", 170 | "esbuild-linux-arm": "0.14.42", 171 | "esbuild-linux-arm64": "0.14.42", 172 | "esbuild-linux-mips64le": "0.14.42", 173 | "esbuild-linux-ppc64le": "0.14.42", 174 | "esbuild-linux-riscv64": "0.14.42", 175 | "esbuild-linux-s390x": "0.14.42", 176 | "esbuild-netbsd-64": "0.14.42", 177 | "esbuild-openbsd-64": "0.14.42", 178 | "esbuild-sunos-64": "0.14.42", 179 | "esbuild-windows-32": "0.14.42", 180 | "esbuild-windows-64": "0.14.42", 181 | "esbuild-windows-arm64": "0.14.42" 182 | } 183 | }, 184 | "node_modules/esbuild-android-64": { 185 | "version": "0.14.42", 186 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.42.tgz", 187 | "integrity": "sha512-P4Y36VUtRhK/zivqGVMqhptSrFILAGlYp0Z8r9UQqHJ3iWztRCNWnlBzD9HRx0DbueXikzOiwyOri+ojAFfW6A==", 188 | "cpu": [ 189 | "x64" 190 | ], 191 | "dev": true, 192 | "optional": true, 193 | "os": [ 194 | "android" 195 | ], 196 | "engines": { 197 | "node": ">=12" 198 | } 199 | }, 200 | "node_modules/esbuild-android-arm64": { 201 | "version": "0.14.42", 202 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.42.tgz", 203 | "integrity": "sha512-0cOqCubq+RWScPqvtQdjXG3Czb3AWI2CaKw3HeXry2eoA2rrPr85HF7IpdU26UWdBXgPYtlTN1LUiuXbboROhg==", 204 | "cpu": [ 205 | "arm64" 206 | ], 207 | "dev": true, 208 | "optional": true, 209 | "os": [ 210 | "android" 211 | ], 212 | "engines": { 213 | "node": ">=12" 214 | } 215 | }, 216 | "node_modules/esbuild-darwin-64": { 217 | "version": "0.14.42", 218 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.42.tgz", 219 | "integrity": "sha512-ipiBdCA3ZjYgRfRLdQwP82rTiv/YVMtW36hTvAN5ZKAIfxBOyPXY7Cejp3bMXWgzKD8B6O+zoMzh01GZsCuEIA==", 220 | "cpu": [ 221 | "x64" 222 | ], 223 | "dev": true, 224 | "optional": true, 225 | "os": [ 226 | "darwin" 227 | ], 228 | "engines": { 229 | "node": ">=12" 230 | } 231 | }, 232 | "node_modules/esbuild-darwin-arm64": { 233 | "version": "0.14.42", 234 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.42.tgz", 235 | "integrity": "sha512-bU2tHRqTPOaoH/4m0zYHbFWpiYDmaA0gt90/3BMEFaM0PqVK/a6MA2V/ypV5PO0v8QxN6gH5hBPY4YJ2lopXgA==", 236 | "cpu": [ 237 | "arm64" 238 | ], 239 | "dev": true, 240 | "optional": true, 241 | "os": [ 242 | "darwin" 243 | ], 244 | "engines": { 245 | "node": ">=12" 246 | } 247 | }, 248 | "node_modules/esbuild-freebsd-64": { 249 | "version": "0.14.42", 250 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.42.tgz", 251 | "integrity": "sha512-75h1+22Ivy07+QvxHyhVqOdekupiTZVLN1PMwCDonAqyXd8TVNJfIRFrdL8QmSJrOJJ5h8H1I9ETyl2L8LQDaw==", 252 | "cpu": [ 253 | "x64" 254 | ], 255 | "dev": true, 256 | "optional": true, 257 | "os": [ 258 | "freebsd" 259 | ], 260 | "engines": { 261 | "node": ">=12" 262 | } 263 | }, 264 | "node_modules/esbuild-freebsd-arm64": { 265 | "version": "0.14.42", 266 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.42.tgz", 267 | "integrity": "sha512-W6Jebeu5TTDQMJUJVarEzRU9LlKpNkPBbjqSu+GUPTHDCly5zZEQq9uHkmHHl7OKm+mQ2zFySN83nmfCeZCyNA==", 268 | "cpu": [ 269 | "arm64" 270 | ], 271 | "dev": true, 272 | "optional": true, 273 | "os": [ 274 | "freebsd" 275 | ], 276 | "engines": { 277 | "node": ">=12" 278 | } 279 | }, 280 | "node_modules/esbuild-linux-32": { 281 | "version": "0.14.42", 282 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.42.tgz", 283 | "integrity": "sha512-Ooy/Bj+mJ1z4jlWcK5Dl6SlPlCgQB9zg1UrTCeY8XagvuWZ4qGPyYEWGkT94HUsRi2hKsXvcs6ThTOjBaJSMfg==", 284 | "cpu": [ 285 | "ia32" 286 | ], 287 | "dev": true, 288 | "optional": true, 289 | "os": [ 290 | "linux" 291 | ], 292 | "engines": { 293 | "node": ">=12" 294 | } 295 | }, 296 | "node_modules/esbuild-linux-64": { 297 | "version": "0.14.42", 298 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.42.tgz", 299 | "integrity": "sha512-2L0HbzQfbTuemUWfVqNIjOfaTRt9zsvjnme6lnr7/MO9toz/MJ5tZhjqrG6uDWDxhsaHI2/nsDgrv8uEEN2eoA==", 300 | "cpu": [ 301 | "x64" 302 | ], 303 | "dev": true, 304 | "optional": true, 305 | "os": [ 306 | "linux" 307 | ], 308 | "engines": { 309 | "node": ">=12" 310 | } 311 | }, 312 | "node_modules/esbuild-linux-arm": { 313 | "version": "0.14.42", 314 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.42.tgz", 315 | "integrity": "sha512-STq69yzCMhdRaWnh29UYrLSr/qaWMm/KqwaRF1pMEK7kDiagaXhSL1zQGXbYv94GuGY/zAwzK98+6idCMUOOCg==", 316 | "cpu": [ 317 | "arm" 318 | ], 319 | "dev": true, 320 | "optional": true, 321 | "os": [ 322 | "linux" 323 | ], 324 | "engines": { 325 | "node": ">=12" 326 | } 327 | }, 328 | "node_modules/esbuild-linux-arm64": { 329 | "version": "0.14.42", 330 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.42.tgz", 331 | "integrity": "sha512-c3Ug3e9JpVr8jAcfbhirtpBauLxzYPpycjWulD71CF6ZSY26tvzmXMJYooQ2YKqDY4e/fPu5K8bm7MiXMnyxuA==", 332 | "cpu": [ 333 | "arm64" 334 | ], 335 | "dev": true, 336 | "optional": true, 337 | "os": [ 338 | "linux" 339 | ], 340 | "engines": { 341 | "node": ">=12" 342 | } 343 | }, 344 | "node_modules/esbuild-linux-mips64le": { 345 | "version": "0.14.42", 346 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.42.tgz", 347 | "integrity": "sha512-QuvpHGbYlkyXWf2cGm51LBCHx6eUakjaSrRpUqhPwjh/uvNUYvLmz2LgPTTPwCqaKt0iwL+OGVL0tXA5aDbAbg==", 348 | "cpu": [ 349 | "mips64el" 350 | ], 351 | "dev": true, 352 | "optional": true, 353 | "os": [ 354 | "linux" 355 | ], 356 | "engines": { 357 | "node": ">=12" 358 | } 359 | }, 360 | "node_modules/esbuild-linux-ppc64le": { 361 | "version": "0.14.42", 362 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.42.tgz", 363 | "integrity": "sha512-8ohIVIWDbDT+i7lCx44YCyIRrOW1MYlks9fxTo0ME2LS/fxxdoJBwHWzaDYhjvf8kNpA+MInZvyOEAGoVDrMHg==", 364 | "cpu": [ 365 | "ppc64" 366 | ], 367 | "dev": true, 368 | "optional": true, 369 | "os": [ 370 | "linux" 371 | ], 372 | "engines": { 373 | "node": ">=12" 374 | } 375 | }, 376 | "node_modules/esbuild-linux-riscv64": { 377 | "version": "0.14.42", 378 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.42.tgz", 379 | "integrity": "sha512-DzDqK3TuoXktPyG1Lwx7vhaF49Onv3eR61KwQyxYo4y5UKTpL3NmuarHSIaSVlTFDDpcIajCDwz5/uwKLLgKiQ==", 380 | "cpu": [ 381 | "riscv64" 382 | ], 383 | "dev": true, 384 | "optional": true, 385 | "os": [ 386 | "linux" 387 | ], 388 | "engines": { 389 | "node": ">=12" 390 | } 391 | }, 392 | "node_modules/esbuild-linux-s390x": { 393 | "version": "0.14.42", 394 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.42.tgz", 395 | "integrity": "sha512-YFRhPCxl8nb//Wn6SiS5pmtplBi4z9yC2gLrYoYI/tvwuB1jldir9r7JwAGy1Ck4D7sE7wBN9GFtUUX/DLdcEQ==", 396 | "cpu": [ 397 | "s390x" 398 | ], 399 | "dev": true, 400 | "optional": true, 401 | "os": [ 402 | "linux" 403 | ], 404 | "engines": { 405 | "node": ">=12" 406 | } 407 | }, 408 | "node_modules/esbuild-netbsd-64": { 409 | "version": "0.14.42", 410 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.42.tgz", 411 | "integrity": "sha512-QYSD2k+oT9dqB/4eEM9c+7KyNYsIPgzYOSrmfNGDIyJrbT1d+CFVKvnKahDKNJLfOYj8N4MgyFaU9/Ytc6w5Vw==", 412 | "cpu": [ 413 | "x64" 414 | ], 415 | "dev": true, 416 | "optional": true, 417 | "os": [ 418 | "netbsd" 419 | ], 420 | "engines": { 421 | "node": ">=12" 422 | } 423 | }, 424 | "node_modules/esbuild-openbsd-64": { 425 | "version": "0.14.42", 426 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.42.tgz", 427 | "integrity": "sha512-M2meNVIKWsm2HMY7+TU9AxM7ZVwI9havdsw6m/6EzdXysyCFFSoaTQ/Jg03izjCsK17FsVRHqRe26Llj6x0MNA==", 428 | "cpu": [ 429 | "x64" 430 | ], 431 | "dev": true, 432 | "optional": true, 433 | "os": [ 434 | "openbsd" 435 | ], 436 | "engines": { 437 | "node": ">=12" 438 | } 439 | }, 440 | "node_modules/esbuild-sunos-64": { 441 | "version": "0.14.42", 442 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.42.tgz", 443 | "integrity": "sha512-uXV8TAZEw36DkgW8Ak3MpSJs1ofBb3Smkc/6pZ29sCAN1KzCAQzsje4sUwugf+FVicrHvlamCOlFZIXgct+iqQ==", 444 | "cpu": [ 445 | "x64" 446 | ], 447 | "dev": true, 448 | "optional": true, 449 | "os": [ 450 | "sunos" 451 | ], 452 | "engines": { 453 | "node": ">=12" 454 | } 455 | }, 456 | "node_modules/esbuild-windows-32": { 457 | "version": "0.14.42", 458 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.42.tgz", 459 | "integrity": "sha512-4iw/8qWmRICWi9ZOnJJf9sYt6wmtp3hsN4TdI5NqgjfOkBVMxNdM9Vt3626G1Rda9ya2Q0hjQRD9W1o+m6Lz6g==", 460 | "cpu": [ 461 | "ia32" 462 | ], 463 | "dev": true, 464 | "optional": true, 465 | "os": [ 466 | "win32" 467 | ], 468 | "engines": { 469 | "node": ">=12" 470 | } 471 | }, 472 | "node_modules/esbuild-windows-64": { 473 | "version": "0.14.42", 474 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.42.tgz", 475 | "integrity": "sha512-j3cdK+Y3+a5H0wHKmLGTJcq0+/2mMBHPWkItR3vytp/aUGD/ua/t2BLdfBIzbNN9nLCRL9sywCRpOpFMx3CxzA==", 476 | "cpu": [ 477 | "x64" 478 | ], 479 | "dev": true, 480 | "optional": true, 481 | "os": [ 482 | "win32" 483 | ], 484 | "engines": { 485 | "node": ">=12" 486 | } 487 | }, 488 | "node_modules/esbuild-windows-arm64": { 489 | "version": "0.14.42", 490 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.42.tgz", 491 | "integrity": "sha512-+lRAARnF+hf8J0mN27ujO+VbhPbDqJ8rCcJKye4y7YZLV6C4n3pTRThAb388k/zqF5uM0lS5O201u0OqoWSicw==", 492 | "cpu": [ 493 | "arm64" 494 | ], 495 | "dev": true, 496 | "optional": true, 497 | "os": [ 498 | "win32" 499 | ], 500 | "engines": { 501 | "node": ">=12" 502 | } 503 | }, 504 | "node_modules/estree-walker": { 505 | "version": "2.0.2", 506 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 507 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 508 | }, 509 | "node_modules/fsevents": { 510 | "version": "2.3.2", 511 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 512 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 513 | "dev": true, 514 | "hasInstallScript": true, 515 | "optional": true, 516 | "os": [ 517 | "darwin" 518 | ], 519 | "engines": { 520 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 521 | } 522 | }, 523 | "node_modules/function-bind": { 524 | "version": "1.1.1", 525 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 526 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 527 | "dev": true 528 | }, 529 | "node_modules/has": { 530 | "version": "1.0.3", 531 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 532 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 533 | "dev": true, 534 | "dependencies": { 535 | "function-bind": "^1.1.1" 536 | }, 537 | "engines": { 538 | "node": ">= 0.4.0" 539 | } 540 | }, 541 | "node_modules/is-core-module": { 542 | "version": "2.9.0", 543 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 544 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 545 | "dev": true, 546 | "dependencies": { 547 | "has": "^1.0.3" 548 | }, 549 | "funding": { 550 | "url": "https://github.com/sponsors/ljharb" 551 | } 552 | }, 553 | "node_modules/magic-string": { 554 | "version": "0.25.9", 555 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 556 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 557 | "dependencies": { 558 | "sourcemap-codec": "^1.4.8" 559 | } 560 | }, 561 | "node_modules/nanoid": { 562 | "version": "3.3.4", 563 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 564 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 565 | "bin": { 566 | "nanoid": "bin/nanoid.cjs" 567 | }, 568 | "engines": { 569 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 570 | } 571 | }, 572 | "node_modules/path-parse": { 573 | "version": "1.0.7", 574 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 575 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 576 | "dev": true 577 | }, 578 | "node_modules/picocolors": { 579 | "version": "1.0.0", 580 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 581 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 582 | }, 583 | "node_modules/postcss": { 584 | "version": "8.4.14", 585 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", 586 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", 587 | "funding": [ 588 | { 589 | "type": "opencollective", 590 | "url": "https://opencollective.com/postcss/" 591 | }, 592 | { 593 | "type": "tidelift", 594 | "url": "https://tidelift.com/funding/github/npm/postcss" 595 | } 596 | ], 597 | "dependencies": { 598 | "nanoid": "^3.3.4", 599 | "picocolors": "^1.0.0", 600 | "source-map-js": "^1.0.2" 601 | }, 602 | "engines": { 603 | "node": "^10 || ^12 || >=14" 604 | } 605 | }, 606 | "node_modules/resolve": { 607 | "version": "1.22.0", 608 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 609 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 610 | "dev": true, 611 | "dependencies": { 612 | "is-core-module": "^2.8.1", 613 | "path-parse": "^1.0.7", 614 | "supports-preserve-symlinks-flag": "^1.0.0" 615 | }, 616 | "bin": { 617 | "resolve": "bin/resolve" 618 | }, 619 | "funding": { 620 | "url": "https://github.com/sponsors/ljharb" 621 | } 622 | }, 623 | "node_modules/rollup": { 624 | "version": "2.75.3", 625 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.3.tgz", 626 | "integrity": "sha512-YA29fLU6MAYSaDxIQYrGGOcbXlDmG96h0krGGYObroezcQ0KgEPM3+7MtKD/qeuUbFuAJXvKZee5dA1dpwq1PQ==", 627 | "dev": true, 628 | "bin": { 629 | "rollup": "dist/bin/rollup" 630 | }, 631 | "engines": { 632 | "node": ">=10.0.0" 633 | }, 634 | "optionalDependencies": { 635 | "fsevents": "~2.3.2" 636 | } 637 | }, 638 | "node_modules/source-map": { 639 | "version": "0.6.1", 640 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 641 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 642 | "engines": { 643 | "node": ">=0.10.0" 644 | } 645 | }, 646 | "node_modules/source-map-js": { 647 | "version": "1.0.2", 648 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 649 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 650 | "engines": { 651 | "node": ">=0.10.0" 652 | } 653 | }, 654 | "node_modules/sourcemap-codec": { 655 | "version": "1.4.8", 656 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 657 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 658 | }, 659 | "node_modules/supports-preserve-symlinks-flag": { 660 | "version": "1.0.0", 661 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 662 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 663 | "dev": true, 664 | "engines": { 665 | "node": ">= 0.4" 666 | }, 667 | "funding": { 668 | "url": "https://github.com/sponsors/ljharb" 669 | } 670 | }, 671 | "node_modules/vite": { 672 | "version": "2.9.9", 673 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.9.tgz", 674 | "integrity": "sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==", 675 | "dev": true, 676 | "dependencies": { 677 | "esbuild": "^0.14.27", 678 | "postcss": "^8.4.13", 679 | "resolve": "^1.22.0", 680 | "rollup": "^2.59.0" 681 | }, 682 | "bin": { 683 | "vite": "bin/vite.js" 684 | }, 685 | "engines": { 686 | "node": ">=12.2.0" 687 | }, 688 | "optionalDependencies": { 689 | "fsevents": "~2.3.2" 690 | }, 691 | "peerDependencies": { 692 | "less": "*", 693 | "sass": "*", 694 | "stylus": "*" 695 | }, 696 | "peerDependenciesMeta": { 697 | "less": { 698 | "optional": true 699 | }, 700 | "sass": { 701 | "optional": true 702 | }, 703 | "stylus": { 704 | "optional": true 705 | } 706 | } 707 | }, 708 | "node_modules/vue": { 709 | "version": "3.2.36", 710 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.36.tgz", 711 | "integrity": "sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==", 712 | "dependencies": { 713 | "@vue/compiler-dom": "3.2.36", 714 | "@vue/compiler-sfc": "3.2.36", 715 | "@vue/runtime-dom": "3.2.36", 716 | "@vue/server-renderer": "3.2.36", 717 | "@vue/shared": "3.2.36" 718 | } 719 | } 720 | }, 721 | "dependencies": { 722 | "@babel/parser": { 723 | "version": "7.18.4", 724 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", 725 | "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==" 726 | }, 727 | "@vitejs/plugin-vue": { 728 | "version": "2.3.3", 729 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz", 730 | "integrity": "sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==", 731 | "dev": true, 732 | "requires": {} 733 | }, 734 | "@vue/compiler-core": { 735 | "version": "3.2.36", 736 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.36.tgz", 737 | "integrity": "sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==", 738 | "requires": { 739 | "@babel/parser": "^7.16.4", 740 | "@vue/shared": "3.2.36", 741 | "estree-walker": "^2.0.2", 742 | "source-map": "^0.6.1" 743 | } 744 | }, 745 | "@vue/compiler-dom": { 746 | "version": "3.2.36", 747 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz", 748 | "integrity": "sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==", 749 | "requires": { 750 | "@vue/compiler-core": "3.2.36", 751 | "@vue/shared": "3.2.36" 752 | } 753 | }, 754 | "@vue/compiler-sfc": { 755 | "version": "3.2.36", 756 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz", 757 | "integrity": "sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==", 758 | "requires": { 759 | "@babel/parser": "^7.16.4", 760 | "@vue/compiler-core": "3.2.36", 761 | "@vue/compiler-dom": "3.2.36", 762 | "@vue/compiler-ssr": "3.2.36", 763 | "@vue/reactivity-transform": "3.2.36", 764 | "@vue/shared": "3.2.36", 765 | "estree-walker": "^2.0.2", 766 | "magic-string": "^0.25.7", 767 | "postcss": "^8.1.10", 768 | "source-map": "^0.6.1" 769 | } 770 | }, 771 | "@vue/compiler-ssr": { 772 | "version": "3.2.36", 773 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz", 774 | "integrity": "sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==", 775 | "requires": { 776 | "@vue/compiler-dom": "3.2.36", 777 | "@vue/shared": "3.2.36" 778 | } 779 | }, 780 | "@vue/reactivity": { 781 | "version": "3.2.36", 782 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.36.tgz", 783 | "integrity": "sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==", 784 | "requires": { 785 | "@vue/shared": "3.2.36" 786 | } 787 | }, 788 | "@vue/reactivity-transform": { 789 | "version": "3.2.36", 790 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz", 791 | "integrity": "sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==", 792 | "requires": { 793 | "@babel/parser": "^7.16.4", 794 | "@vue/compiler-core": "3.2.36", 795 | "@vue/shared": "3.2.36", 796 | "estree-walker": "^2.0.2", 797 | "magic-string": "^0.25.7" 798 | } 799 | }, 800 | "@vue/runtime-core": { 801 | "version": "3.2.36", 802 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.36.tgz", 803 | "integrity": "sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==", 804 | "requires": { 805 | "@vue/reactivity": "3.2.36", 806 | "@vue/shared": "3.2.36" 807 | } 808 | }, 809 | "@vue/runtime-dom": { 810 | "version": "3.2.36", 811 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz", 812 | "integrity": "sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==", 813 | "requires": { 814 | "@vue/runtime-core": "3.2.36", 815 | "@vue/shared": "3.2.36", 816 | "csstype": "^2.6.8" 817 | } 818 | }, 819 | "@vue/server-renderer": { 820 | "version": "3.2.36", 821 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.36.tgz", 822 | "integrity": "sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==", 823 | "requires": { 824 | "@vue/compiler-ssr": "3.2.36", 825 | "@vue/shared": "3.2.36" 826 | } 827 | }, 828 | "@vue/shared": { 829 | "version": "3.2.36", 830 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.36.tgz", 831 | "integrity": "sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==" 832 | }, 833 | "csstype": { 834 | "version": "2.6.20", 835 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", 836 | "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" 837 | }, 838 | "esbuild": { 839 | "version": "0.14.42", 840 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.42.tgz", 841 | "integrity": "sha512-V0uPZotCEHokJdNqyozH6qsaQXqmZEOiZWrXnds/zaH/0SyrIayRXWRB98CENO73MIZ9T3HBIOsmds5twWtmgw==", 842 | "dev": true, 843 | "requires": { 844 | "esbuild-android-64": "0.14.42", 845 | "esbuild-android-arm64": "0.14.42", 846 | "esbuild-darwin-64": "0.14.42", 847 | "esbuild-darwin-arm64": "0.14.42", 848 | "esbuild-freebsd-64": "0.14.42", 849 | "esbuild-freebsd-arm64": "0.14.42", 850 | "esbuild-linux-32": "0.14.42", 851 | "esbuild-linux-64": "0.14.42", 852 | "esbuild-linux-arm": "0.14.42", 853 | "esbuild-linux-arm64": "0.14.42", 854 | "esbuild-linux-mips64le": "0.14.42", 855 | "esbuild-linux-ppc64le": "0.14.42", 856 | "esbuild-linux-riscv64": "0.14.42", 857 | "esbuild-linux-s390x": "0.14.42", 858 | "esbuild-netbsd-64": "0.14.42", 859 | "esbuild-openbsd-64": "0.14.42", 860 | "esbuild-sunos-64": "0.14.42", 861 | "esbuild-windows-32": "0.14.42", 862 | "esbuild-windows-64": "0.14.42", 863 | "esbuild-windows-arm64": "0.14.42" 864 | } 865 | }, 866 | "esbuild-android-64": { 867 | "version": "0.14.42", 868 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.42.tgz", 869 | "integrity": "sha512-P4Y36VUtRhK/zivqGVMqhptSrFILAGlYp0Z8r9UQqHJ3iWztRCNWnlBzD9HRx0DbueXikzOiwyOri+ojAFfW6A==", 870 | "dev": true, 871 | "optional": true 872 | }, 873 | "esbuild-android-arm64": { 874 | "version": "0.14.42", 875 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.42.tgz", 876 | "integrity": "sha512-0cOqCubq+RWScPqvtQdjXG3Czb3AWI2CaKw3HeXry2eoA2rrPr85HF7IpdU26UWdBXgPYtlTN1LUiuXbboROhg==", 877 | "dev": true, 878 | "optional": true 879 | }, 880 | "esbuild-darwin-64": { 881 | "version": "0.14.42", 882 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.42.tgz", 883 | "integrity": "sha512-ipiBdCA3ZjYgRfRLdQwP82rTiv/YVMtW36hTvAN5ZKAIfxBOyPXY7Cejp3bMXWgzKD8B6O+zoMzh01GZsCuEIA==", 884 | "dev": true, 885 | "optional": true 886 | }, 887 | "esbuild-darwin-arm64": { 888 | "version": "0.14.42", 889 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.42.tgz", 890 | "integrity": "sha512-bU2tHRqTPOaoH/4m0zYHbFWpiYDmaA0gt90/3BMEFaM0PqVK/a6MA2V/ypV5PO0v8QxN6gH5hBPY4YJ2lopXgA==", 891 | "dev": true, 892 | "optional": true 893 | }, 894 | "esbuild-freebsd-64": { 895 | "version": "0.14.42", 896 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.42.tgz", 897 | "integrity": "sha512-75h1+22Ivy07+QvxHyhVqOdekupiTZVLN1PMwCDonAqyXd8TVNJfIRFrdL8QmSJrOJJ5h8H1I9ETyl2L8LQDaw==", 898 | "dev": true, 899 | "optional": true 900 | }, 901 | "esbuild-freebsd-arm64": { 902 | "version": "0.14.42", 903 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.42.tgz", 904 | "integrity": "sha512-W6Jebeu5TTDQMJUJVarEzRU9LlKpNkPBbjqSu+GUPTHDCly5zZEQq9uHkmHHl7OKm+mQ2zFySN83nmfCeZCyNA==", 905 | "dev": true, 906 | "optional": true 907 | }, 908 | "esbuild-linux-32": { 909 | "version": "0.14.42", 910 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.42.tgz", 911 | "integrity": "sha512-Ooy/Bj+mJ1z4jlWcK5Dl6SlPlCgQB9zg1UrTCeY8XagvuWZ4qGPyYEWGkT94HUsRi2hKsXvcs6ThTOjBaJSMfg==", 912 | "dev": true, 913 | "optional": true 914 | }, 915 | "esbuild-linux-64": { 916 | "version": "0.14.42", 917 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.42.tgz", 918 | "integrity": "sha512-2L0HbzQfbTuemUWfVqNIjOfaTRt9zsvjnme6lnr7/MO9toz/MJ5tZhjqrG6uDWDxhsaHI2/nsDgrv8uEEN2eoA==", 919 | "dev": true, 920 | "optional": true 921 | }, 922 | "esbuild-linux-arm": { 923 | "version": "0.14.42", 924 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.42.tgz", 925 | "integrity": "sha512-STq69yzCMhdRaWnh29UYrLSr/qaWMm/KqwaRF1pMEK7kDiagaXhSL1zQGXbYv94GuGY/zAwzK98+6idCMUOOCg==", 926 | "dev": true, 927 | "optional": true 928 | }, 929 | "esbuild-linux-arm64": { 930 | "version": "0.14.42", 931 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.42.tgz", 932 | "integrity": "sha512-c3Ug3e9JpVr8jAcfbhirtpBauLxzYPpycjWulD71CF6ZSY26tvzmXMJYooQ2YKqDY4e/fPu5K8bm7MiXMnyxuA==", 933 | "dev": true, 934 | "optional": true 935 | }, 936 | "esbuild-linux-mips64le": { 937 | "version": "0.14.42", 938 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.42.tgz", 939 | "integrity": "sha512-QuvpHGbYlkyXWf2cGm51LBCHx6eUakjaSrRpUqhPwjh/uvNUYvLmz2LgPTTPwCqaKt0iwL+OGVL0tXA5aDbAbg==", 940 | "dev": true, 941 | "optional": true 942 | }, 943 | "esbuild-linux-ppc64le": { 944 | "version": "0.14.42", 945 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.42.tgz", 946 | "integrity": "sha512-8ohIVIWDbDT+i7lCx44YCyIRrOW1MYlks9fxTo0ME2LS/fxxdoJBwHWzaDYhjvf8kNpA+MInZvyOEAGoVDrMHg==", 947 | "dev": true, 948 | "optional": true 949 | }, 950 | "esbuild-linux-riscv64": { 951 | "version": "0.14.42", 952 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.42.tgz", 953 | "integrity": "sha512-DzDqK3TuoXktPyG1Lwx7vhaF49Onv3eR61KwQyxYo4y5UKTpL3NmuarHSIaSVlTFDDpcIajCDwz5/uwKLLgKiQ==", 954 | "dev": true, 955 | "optional": true 956 | }, 957 | "esbuild-linux-s390x": { 958 | "version": "0.14.42", 959 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.42.tgz", 960 | "integrity": "sha512-YFRhPCxl8nb//Wn6SiS5pmtplBi4z9yC2gLrYoYI/tvwuB1jldir9r7JwAGy1Ck4D7sE7wBN9GFtUUX/DLdcEQ==", 961 | "dev": true, 962 | "optional": true 963 | }, 964 | "esbuild-netbsd-64": { 965 | "version": "0.14.42", 966 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.42.tgz", 967 | "integrity": "sha512-QYSD2k+oT9dqB/4eEM9c+7KyNYsIPgzYOSrmfNGDIyJrbT1d+CFVKvnKahDKNJLfOYj8N4MgyFaU9/Ytc6w5Vw==", 968 | "dev": true, 969 | "optional": true 970 | }, 971 | "esbuild-openbsd-64": { 972 | "version": "0.14.42", 973 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.42.tgz", 974 | "integrity": "sha512-M2meNVIKWsm2HMY7+TU9AxM7ZVwI9havdsw6m/6EzdXysyCFFSoaTQ/Jg03izjCsK17FsVRHqRe26Llj6x0MNA==", 975 | "dev": true, 976 | "optional": true 977 | }, 978 | "esbuild-sunos-64": { 979 | "version": "0.14.42", 980 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.42.tgz", 981 | "integrity": "sha512-uXV8TAZEw36DkgW8Ak3MpSJs1ofBb3Smkc/6pZ29sCAN1KzCAQzsje4sUwugf+FVicrHvlamCOlFZIXgct+iqQ==", 982 | "dev": true, 983 | "optional": true 984 | }, 985 | "esbuild-windows-32": { 986 | "version": "0.14.42", 987 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.42.tgz", 988 | "integrity": "sha512-4iw/8qWmRICWi9ZOnJJf9sYt6wmtp3hsN4TdI5NqgjfOkBVMxNdM9Vt3626G1Rda9ya2Q0hjQRD9W1o+m6Lz6g==", 989 | "dev": true, 990 | "optional": true 991 | }, 992 | "esbuild-windows-64": { 993 | "version": "0.14.42", 994 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.42.tgz", 995 | "integrity": "sha512-j3cdK+Y3+a5H0wHKmLGTJcq0+/2mMBHPWkItR3vytp/aUGD/ua/t2BLdfBIzbNN9nLCRL9sywCRpOpFMx3CxzA==", 996 | "dev": true, 997 | "optional": true 998 | }, 999 | "esbuild-windows-arm64": { 1000 | "version": "0.14.42", 1001 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.42.tgz", 1002 | "integrity": "sha512-+lRAARnF+hf8J0mN27ujO+VbhPbDqJ8rCcJKye4y7YZLV6C4n3pTRThAb388k/zqF5uM0lS5O201u0OqoWSicw==", 1003 | "dev": true, 1004 | "optional": true 1005 | }, 1006 | "estree-walker": { 1007 | "version": "2.0.2", 1008 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1009 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 1010 | }, 1011 | "fsevents": { 1012 | "version": "2.3.2", 1013 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1014 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1015 | "dev": true, 1016 | "optional": true 1017 | }, 1018 | "function-bind": { 1019 | "version": "1.1.1", 1020 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1021 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1022 | "dev": true 1023 | }, 1024 | "has": { 1025 | "version": "1.0.3", 1026 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1027 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1028 | "dev": true, 1029 | "requires": { 1030 | "function-bind": "^1.1.1" 1031 | } 1032 | }, 1033 | "is-core-module": { 1034 | "version": "2.9.0", 1035 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 1036 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 1037 | "dev": true, 1038 | "requires": { 1039 | "has": "^1.0.3" 1040 | } 1041 | }, 1042 | "magic-string": { 1043 | "version": "0.25.9", 1044 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 1045 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 1046 | "requires": { 1047 | "sourcemap-codec": "^1.4.8" 1048 | } 1049 | }, 1050 | "nanoid": { 1051 | "version": "3.3.4", 1052 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1053 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" 1054 | }, 1055 | "path-parse": { 1056 | "version": "1.0.7", 1057 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1058 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1059 | "dev": true 1060 | }, 1061 | "picocolors": { 1062 | "version": "1.0.0", 1063 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1064 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1065 | }, 1066 | "postcss": { 1067 | "version": "8.4.14", 1068 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", 1069 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", 1070 | "requires": { 1071 | "nanoid": "^3.3.4", 1072 | "picocolors": "^1.0.0", 1073 | "source-map-js": "^1.0.2" 1074 | } 1075 | }, 1076 | "resolve": { 1077 | "version": "1.22.0", 1078 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 1079 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 1080 | "dev": true, 1081 | "requires": { 1082 | "is-core-module": "^2.8.1", 1083 | "path-parse": "^1.0.7", 1084 | "supports-preserve-symlinks-flag": "^1.0.0" 1085 | } 1086 | }, 1087 | "rollup": { 1088 | "version": "2.75.3", 1089 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.3.tgz", 1090 | "integrity": "sha512-YA29fLU6MAYSaDxIQYrGGOcbXlDmG96h0krGGYObroezcQ0KgEPM3+7MtKD/qeuUbFuAJXvKZee5dA1dpwq1PQ==", 1091 | "dev": true, 1092 | "requires": { 1093 | "fsevents": "~2.3.2" 1094 | } 1095 | }, 1096 | "source-map": { 1097 | "version": "0.6.1", 1098 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1099 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 1100 | }, 1101 | "source-map-js": { 1102 | "version": "1.0.2", 1103 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1104 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 1105 | }, 1106 | "sourcemap-codec": { 1107 | "version": "1.4.8", 1108 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1109 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 1110 | }, 1111 | "supports-preserve-symlinks-flag": { 1112 | "version": "1.0.0", 1113 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1114 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1115 | "dev": true 1116 | }, 1117 | "vite": { 1118 | "version": "2.9.9", 1119 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.9.tgz", 1120 | "integrity": "sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==", 1121 | "dev": true, 1122 | "requires": { 1123 | "esbuild": "^0.14.27", 1124 | "fsevents": "~2.3.2", 1125 | "postcss": "^8.4.13", 1126 | "resolve": "^1.22.0", 1127 | "rollup": "^2.59.0" 1128 | } 1129 | }, 1130 | "vue": { 1131 | "version": "3.2.36", 1132 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.36.tgz", 1133 | "integrity": "sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==", 1134 | "requires": { 1135 | "@vue/compiler-dom": "3.2.36", 1136 | "@vue/compiler-sfc": "3.2.36", 1137 | "@vue/runtime-dom": "3.2.36", 1138 | "@vue/server-renderer": "3.2.36", 1139 | "@vue/shared": "3.2.36" 1140 | } 1141 | } 1142 | } 1143 | } 1144 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "todo-app", 3 | "private": true, 4 | "version": "0.0.0", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "vue": "^3.2.25" 12 | }, 13 | "devDependencies": { 14 | "@vitejs/plugin-vue": "^2.3.3", 15 | "vite": "^2.9.9" 16 | } 17 | } -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TylerPottsDev/yt-vue-todo-2022/71da3af996abe40a3bf0e11881afeef1dbac7f90/public/favicon.ico -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 47 | 48 | 128 | -------------------------------------------------------------------------------- /src/main.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --primary: #EA40A4; 3 | --business: #3A82EE; 4 | --personal: var(--primary); 5 | --light: #EEE; 6 | --grey: #888; 7 | --dark: #313154; 8 | --danger: #ff5b57; 9 | 10 | --shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 11 | 12 | --business-glow: 0px 0px 4px rgba(58, 130, 238, 0.75); 13 | --personal-glow: 0px 0px 4px rgba(234, 64, 164, 0.75); 14 | } 15 | 16 | * { 17 | margin: 0; 18 | padding: 0; 19 | box-sizing: border-box; 20 | font-family: 'montserrat', sans-serif; 21 | } 22 | 23 | input:not([type="radio"]):not([type="checkbox"]), button { 24 | appearance: none; 25 | border: none; 26 | outline: none; 27 | background: none; 28 | cursor: initial; 29 | } 30 | 31 | body { 32 | background: var(--light); 33 | color: var(--dark); 34 | } 35 | 36 | section { 37 | margin-top: 2rem; 38 | margin-bottom: 2rem; 39 | padding-left: 1.5rem; 40 | padding-right: 1.5em; 41 | } 42 | 43 | h3 { 44 | color: var(--dark); 45 | font-size: 1rem; 46 | font-weight: 400; 47 | margin-bottom: 0.5rem; 48 | } 49 | 50 | h4 { 51 | color: var(--grey); 52 | font-size: 0.875rem; 53 | font-weight: 700; 54 | margin-bottom: 0.5rem; 55 | } 56 | 57 | .greeting .title { 58 | display: flex; 59 | } 60 | 61 | .greeting .title input { 62 | margin-left: 0.5rem; 63 | flex: 1 1 0%; 64 | min-width: 0; 65 | } 66 | 67 | .greeting .title, 68 | .greeting .title input { 69 | color: var(--dark); 70 | font-size: 1.5rem; 71 | font-weight: 700; 72 | } 73 | 74 | .create-todo input[type="text"] { 75 | display: block; 76 | width: 100%; 77 | font-size: 1.125rem; 78 | padding: 1rem 1.5rem; 79 | color: var(--dark); 80 | background-color: #FFF; 81 | border-radius: 0.5rem; 82 | box-shadow: var(--shadow); 83 | margin-bottom: 1.5rem; 84 | } 85 | 86 | .create-todo .options { 87 | display: grid; 88 | grid-template-columns: repeat(2, 1fr); 89 | grid-gap: 1rem; 90 | margin-bottom: 1.5rem; 91 | } 92 | 93 | .create-todo .options label { 94 | display: flex; 95 | flex-direction: column; 96 | align-items: center; 97 | justify-content: center; 98 | padding: 1.5rem; 99 | background-color: #FFF; 100 | border-radius: 0.5rem; 101 | box-shadow: var(--shadow); 102 | cursor: pointer; 103 | } 104 | 105 | input[type="radio"], 106 | input[type="checkbox"] { 107 | display: none; 108 | } 109 | 110 | .bubble { 111 | display: flex; 112 | align-items: center; 113 | justify-content: center; 114 | width: 20px; 115 | height: 20px; 116 | border-radius: 50%; 117 | border: 2px solid var(--business); 118 | box-shadow: var(--business-glow); 119 | } 120 | 121 | .bubble.personal { 122 | border-color: var(--personal); 123 | box-shadow: var(--personal-glow); 124 | } 125 | 126 | .bubble::after { 127 | content: ""; 128 | display: block; 129 | opacity: 0; 130 | width: 0px; 131 | height: 0px; 132 | background-color: var(--business); 133 | box-shadow: var(--business-glow); 134 | border-radius: 50%; 135 | transition: 0.2s ease-in-out; 136 | } 137 | 138 | .bubble.personal::after { 139 | background-color: var(--personal); 140 | box-shadow: var(--personal-glow); 141 | } 142 | 143 | input:checked ~ .bubble::after { 144 | width: 10px; 145 | height: 10px; 146 | opacity: 1; 147 | } 148 | 149 | .create-todo .options label div { 150 | color: var(--dark); 151 | font-size: 1.125rem; 152 | margin-top: 1rem; 153 | } 154 | 155 | .create-todo input[type="submit"] { 156 | display: block; 157 | width: 100%; 158 | font-size: 1.125rem; 159 | padding: 1rem 1.5rem; 160 | color: #FFF; 161 | background-color: var(--primary); 162 | border-radius: 0.5rem; 163 | box-shadow: var(--personal-glow); 164 | cursor: pointer; 165 | transition: 0.2s ease-in-out; 166 | } 167 | 168 | .create-todo input[type="submit"]:hover { 169 | opacity: 0.75; 170 | } 171 | 172 | .todo-list .list { 173 | margin: 1rem 0; 174 | } 175 | 176 | .todo-list .todo-item { 177 | display: flex; 178 | align-items: center; 179 | background-color: #FFF; 180 | padding: 1rem; 181 | border-radius: 0.5rem; 182 | box-shadow: var(--shadow); 183 | margin-bottom: 1rem; 184 | } 185 | 186 | .todo-item label { 187 | display: block; 188 | margin-right: 1rem; 189 | cursor: pointer; 190 | } 191 | 192 | .todo-item .todo-content { 193 | flex: 1 1 0%; 194 | } 195 | 196 | .todo-item .todo-content input { 197 | color: var(--dark); 198 | font-size: 1.125rem; 199 | } 200 | 201 | .todo-item .actions { 202 | display: flex; 203 | align-items: center; 204 | } 205 | 206 | .todo-item .actions button { 207 | display: block; 208 | padding: 0.5rem; 209 | border-radius: 0.25rem; 210 | color: #FFF; 211 | cursor: pointer; 212 | transition: 0.2s ease-in-out; 213 | } 214 | 215 | .todo-item .actions button:hover { 216 | opacity: 0.75; 217 | } 218 | 219 | .todo-item .actions .edit { 220 | margin-right: 0.5rem; 221 | background-color: var(--primary); 222 | } 223 | 224 | .todo-item .actions .delete { 225 | background-color: var(--danger); 226 | } 227 | 228 | .todo-item.done .todo-content input { 229 | text-decoration: line-through; 230 | color: var(--grey); 231 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import './main.css' 4 | 5 | createApp(App).mount('#app') -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()] 7 | }) 8 | --------------------------------------------------------------------------------