Compare commits
No commits in common. "831f7c4ad10e54758724358f2fa778eed070d1c2" and "8d088da286552088f54db4c7bd8df18334f96b12" have entirely different histories.
831f7c4ad1
...
8d088da286
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 273 KiB |
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="UTF-8"><link rel="icon" href="./logo.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Gym Tracker</title><script type="module" crossorigin src="./assets/index-3d69e972.js"></script></head><body><div id="app"></div></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="UTF-8"><link rel="icon" href="./favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Hello_World_Vue 01</title><script type="module" crossorigin src="./assets/index-6b91de8d.js"></script></head><body><div id="app"></div></body></html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB |
|
|
@ -2,9 +2,9 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/logo.ico">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Gym Tracker</title>
|
||||
<title>Hello_World_Vue 01</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
"name": "gym_tracker",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@vueuse/core": "^10.1.2",
|
||||
"pinia": "^2.0.32",
|
||||
"uuid": "^9.0.0",
|
||||
"vite-plugin-css-injected-by-js": "^3.1.0",
|
||||
|
|
@ -17,35 +16,19 @@
|
|||
"vue-router": "^4.1.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-json": "^6.0.0",
|
||||
"@rushstack/eslint-patch": "^1.2.0",
|
||||
"@vitejs/plugin-vue": "^4.0.0",
|
||||
"@vue/eslint-config-prettier": "^7.1.0",
|
||||
"@vue/test-utils": "^2.3.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint": "^8.34.0",
|
||||
"eslint-plugin-vue": "^9.9.0",
|
||||
"jsdom": "^21.1.0",
|
||||
"postcss": "^8.4.23",
|
||||
"prettier": "^2.8.4",
|
||||
"sass": "^1.62.1",
|
||||
"tailwindcss": "^3.3.2",
|
||||
"sass": "^1.62.0",
|
||||
"vite": "^4.1.4",
|
||||
"vitest": "^0.29.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@alloc/quick-lru": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
|
||||
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.21.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
|
||||
|
|
@ -565,48 +548,6 @@
|
|||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-json": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz",
|
||||
"integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": "^1.20.0||^2.0.0||^3.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"rollup": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-json/node_modules/@rollup/pluginutils": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
|
||||
"integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/estree": "^1.0.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": "^1.20.0||^2.0.0||^3.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"rollup": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/pluginutils": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
|
||||
|
|
@ -649,23 +590,12 @@
|
|||
"@types/chai": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
|
||||
"integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "18.15.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
|
||||
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/@types/web-bluetooth": {
|
||||
"version": "0.0.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz",
|
||||
"integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA=="
|
||||
},
|
||||
"node_modules/@vitejs/plugin-vue": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
|
||||
|
|
@ -888,89 +818,6 @@
|
|||
"vue": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/core": {
|
||||
"version": "10.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.1.2.tgz",
|
||||
"integrity": "sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==",
|
||||
"dependencies": {
|
||||
"@types/web-bluetooth": "^0.0.17",
|
||||
"@vueuse/metadata": "10.1.2",
|
||||
"@vueuse/shared": "10.1.2",
|
||||
"vue-demi": ">=0.14.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
||||
"version": "0.14.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz",
|
||||
"integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
|
||||
"hasInstallScript": true,
|
||||
"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.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.1.2.tgz",
|
||||
"integrity": "sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/shared": {
|
||||
"version": "10.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.1.2.tgz",
|
||||
"integrity": "sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==",
|
||||
"dependencies": {
|
||||
"vue-demi": ">=0.14.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
||||
"version": "0.14.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz",
|
||||
"integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
|
||||
"hasInstallScript": true,
|
||||
"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/abab": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||
|
|
@ -1073,12 +920,6 @@
|
|||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/any-promise": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
||||
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/anymatch": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
||||
|
|
@ -1092,12 +933,6 @@
|
|||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/arg": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
|
||||
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/argparse": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||
|
|
@ -1124,39 +959,6 @@
|
|||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/autoprefixer": {
|
||||
"version": "10.4.14",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
|
||||
"integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/autoprefixer"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"browserslist": "^4.21.5",
|
||||
"caniuse-lite": "^1.0.30001464",
|
||||
"fraction.js": "^4.2.0",
|
||||
"normalize-range": "^0.1.2",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss-value-parser": "^4.2.0"
|
||||
},
|
||||
"bin": {
|
||||
"autoprefixer": "bin/autoprefixer"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
|
|
@ -1196,34 +998,6 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.21.5",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
|
||||
"integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"caniuse-lite": "^1.0.30001449",
|
||||
"electron-to-chromium": "^1.4.284",
|
||||
"node-releases": "^2.0.8",
|
||||
"update-browserslist-db": "^1.0.10"
|
||||
},
|
||||
"bin": {
|
||||
"browserslist": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
|
|
@ -1256,35 +1030,6 @@
|
|||
"tslib": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/camelcase-css": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
||||
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001482",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz",
|
||||
"integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/chai": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
|
||||
|
|
@ -1592,12 +1337,6 @@
|
|||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/didyoumean": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
||||
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/diff": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
|
||||
|
|
@ -1607,12 +1346,6 @@
|
|||
"node": ">=0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/dlv": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
||||
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/doctrine": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
||||
|
|
@ -1765,12 +1498,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.385",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.385.tgz",
|
||||
"integrity": "sha512-L9zlje9bIw0h+CwPQumiuVlfMcV4boxRjFIWDcLfFqTZNbkwOExBzfmswytHawObQX4OUhtNv8gIiB21kOurIg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||
|
|
@ -1825,15 +1552,6 @@
|
|||
"@esbuild/win32-x64": "0.17.17"
|
||||
}
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
|
||||
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/escape-string-regexp": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
||||
|
|
@ -2292,19 +2010,6 @@
|
|||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/fraction.js": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
|
||||
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "*"
|
||||
},
|
||||
"funding": {
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/infusion"
|
||||
}
|
||||
},
|
||||
"node_modules/fs-extra": {
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
|
||||
|
|
@ -2705,15 +2410,6 @@
|
|||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/jiti": {
|
||||
"version": "1.18.2",
|
||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
|
||||
"integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"jiti": "bin/jiti.js"
|
||||
}
|
||||
},
|
||||
"node_modules/js-beautify": {
|
||||
"version": "1.14.6",
|
||||
"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.6.tgz",
|
||||
|
|
@ -2851,21 +2547,6 @@
|
|||
"node": ">= 0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/lilconfig": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
||||
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/lines-and-columns": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
||||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/local-pkg": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
|
||||
|
|
@ -3010,17 +2691,6 @@
|
|||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/mz": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
|
||||
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"any-promise": "^1.0.0",
|
||||
"object-assign": "^4.0.1",
|
||||
"thenify-all": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.6",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
||||
|
|
@ -3062,12 +2732,6 @@
|
|||
"he": "1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
|
||||
"integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/nopt": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
|
||||
|
|
@ -3092,15 +2756,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/normalize-range": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
|
||||
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/nth-check": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
||||
|
|
@ -3118,24 +2773,6 @@
|
|||
"integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/object-hash": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
|
||||
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
|
|
@ -3297,15 +2934,6 @@
|
|||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/pify": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
||||
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/pinia": {
|
||||
"version": "2.0.34",
|
||||
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.34.tgz",
|
||||
|
|
@ -3356,15 +2984,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/pirates": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
|
||||
"integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-types": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
|
||||
|
|
@ -3377,9 +2996,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.23",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
|
||||
"integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
|
||||
"version": "8.4.22",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz",
|
||||
"integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
|
|
@ -3403,90 +3022,6 @@
|
|||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-import": {
|
||||
"version": "15.1.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
|
||||
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"postcss-value-parser": "^4.0.0",
|
||||
"read-cache": "^1.0.0",
|
||||
"resolve": "^1.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-js": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
|
||||
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase-css": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12 || ^14 || >= 16"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.4.21"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-load-config": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
|
||||
"integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lilconfig": "^2.0.5",
|
||||
"yaml": "^2.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": ">=8.0.9",
|
||||
"ts-node": ">=9.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"postcss": {
|
||||
"optional": true
|
||||
},
|
||||
"ts-node": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-nested": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
|
||||
"integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"postcss-selector-parser": "^6.0.11"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.2.14"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-selector-parser": {
|
||||
"version": "6.0.11",
|
||||
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
|
||||
|
|
@ -3500,12 +3035,6 @@
|
|||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-value-parser": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
|
||||
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/prelude-ls": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
|
||||
|
|
@ -3626,15 +3155,6 @@
|
|||
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/read-cache": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
||||
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"pify": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/readdirp": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
||||
|
|
@ -3780,9 +3300,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.62.1",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz",
|
||||
"integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==",
|
||||
"version": "1.62.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.62.0.tgz",
|
||||
"integrity": "sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==",
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"chokidar": ">=3.0.0 <4.0.0",
|
||||
|
|
@ -4025,57 +3545,6 @@
|
|||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/sucrase": {
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz",
|
||||
"integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/gen-mapping": "^0.3.2",
|
||||
"commander": "^4.0.0",
|
||||
"glob": "7.1.6",
|
||||
"lines-and-columns": "^1.1.6",
|
||||
"mz": "^2.7.0",
|
||||
"pirates": "^4.0.1",
|
||||
"ts-interface-checker": "^0.1.9"
|
||||
},
|
||||
"bin": {
|
||||
"sucrase": "bin/sucrase",
|
||||
"sucrase-node": "bin/sucrase-node"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/sucrase/node_modules/commander": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
|
||||
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/sucrase/node_modules/glob": {
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
|
|
@ -4104,44 +3573,6 @@
|
|||
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tailwindcss": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz",
|
||||
"integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@alloc/quick-lru": "^5.2.0",
|
||||
"arg": "^5.0.2",
|
||||
"chokidar": "^3.5.3",
|
||||
"didyoumean": "^1.2.2",
|
||||
"dlv": "^1.1.3",
|
||||
"fast-glob": "^3.2.12",
|
||||
"glob-parent": "^6.0.2",
|
||||
"is-glob": "^4.0.3",
|
||||
"jiti": "^1.18.2",
|
||||
"lilconfig": "^2.1.0",
|
||||
"micromatch": "^4.0.5",
|
||||
"normalize-path": "^3.0.0",
|
||||
"object-hash": "^3.0.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss": "^8.4.23",
|
||||
"postcss-import": "^15.1.0",
|
||||
"postcss-js": "^4.0.1",
|
||||
"postcss-load-config": "^4.0.1",
|
||||
"postcss-nested": "^6.0.1",
|
||||
"postcss-selector-parser": "^6.0.11",
|
||||
"postcss-value-parser": "^4.2.0",
|
||||
"resolve": "^1.22.2",
|
||||
"sucrase": "^3.32.0"
|
||||
},
|
||||
"bin": {
|
||||
"tailwind": "lib/cli.js",
|
||||
"tailwindcss": "lib/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/terser": {
|
||||
"version": "5.17.1",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz",
|
||||
|
|
@ -4165,27 +3596,6 @@
|
|||
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/thenify": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
|
||||
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"any-promise": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/thenify-all": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
|
||||
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"thenify": ">= 3.1.0 < 4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/tinybench": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz",
|
||||
|
|
@ -4248,12 +3658,6 @@
|
|||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-interface-checker": {
|
||||
"version": "0.1.13",
|
||||
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
||||
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
||||
|
|
@ -4307,36 +3711,6 @@
|
|||
"node": ">= 4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
|
||||
"integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"escalade": "^3.1.1",
|
||||
"picocolors": "^1.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"update-browserslist-db": "cli.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"browserslist": ">= 4.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/uri-js": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
||||
|
|
@ -4746,15 +4120,6 @@
|
|||
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
|
||||
"integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/yocto-queue": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
"format": "prettier --write src/"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vueuse/core": "^10.1.2",
|
||||
"pinia": "^2.0.32",
|
||||
"uuid": "^9.0.0",
|
||||
"vite-plugin-css-injected-by-js": "^3.1.0",
|
||||
|
|
@ -22,19 +21,15 @@
|
|||
"vue-router": "^4.1.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-json": "^6.0.0",
|
||||
"@rushstack/eslint-patch": "^1.2.0",
|
||||
"@vitejs/plugin-vue": "^4.0.0",
|
||||
"@vue/eslint-config-prettier": "^7.1.0",
|
||||
"@vue/test-utils": "^2.3.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint": "^8.34.0",
|
||||
"eslint-plugin-vue": "^9.9.0",
|
||||
"jsdom": "^21.1.0",
|
||||
"postcss": "^8.4.23",
|
||||
"prettier": "^2.8.4",
|
||||
"sass": "^1.62.1",
|
||||
"tailwindcss": "^3.3.2",
|
||||
"sass": "^1.62.0",
|
||||
"vite": "^4.1.4",
|
||||
"vitest": "^0.29.1"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
export default {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
||||
BIN
public/logo.ico
BIN
public/logo.ico
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB |
60
src/App.vue
60
src/App.vue
|
|
@ -1,13 +1,14 @@
|
|||
<script setup>
|
||||
import { NavigationModel } from "./components/Index.js";
|
||||
import { NavigationModel, Nav } from '@/components';
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="app-containe">
|
||||
<div class="app-container">
|
||||
<NavigationModel />
|
||||
<div class="container px-3 mx-auto">
|
||||
<router-view class="mt-4" />
|
||||
<!-- <Nav /> -->
|
||||
<div class="container pt-4 pb-4">
|
||||
<router-view />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -15,9 +16,56 @@ import { NavigationModel } from "./components/Index.js";
|
|||
|
||||
<style scoped lang="scss">
|
||||
@import '/css/head.scss';
|
||||
.app-container
|
||||
{
|
||||
header {
|
||||
line-height: 1.5;
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
nav {
|
||||
width: 100%;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
nav a.router-link-exact-active {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
nav a.router-link-exact-active:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
nav a {
|
||||
display: inline-block;
|
||||
padding: 0 1rem;
|
||||
border-left: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
nav a:first-of-type {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
header {
|
||||
display: flex;
|
||||
place-items: top;
|
||||
padding-right: calc(var(--section-gap));
|
||||
}
|
||||
|
||||
header .wrapper {
|
||||
display: flex;
|
||||
place-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
nav {
|
||||
text-align: center;
|
||||
margin-left: 2rem;
|
||||
font-size: 1rem;
|
||||
|
||||
padding: 1rem 0;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -63,3 +63,4 @@
|
|||
}
|
||||
|
||||
/*# sourceMappingURL=head.css.map */
|
||||
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
/* color palette from <https://github.com/vuejs/theme> */
|
||||
:root {
|
||||
--vt-c-white: #ffffff;
|
||||
--vt-c-white-soft: #f8f8f8;
|
||||
--vt-c-white-mute: #f2f2f2;
|
||||
--vt-c-black: #181818;
|
||||
--vt-c-black-soft: #222222;
|
||||
--vt-c-black-mute: #282828;
|
||||
--vt-c-indigo: #2c3e50;
|
||||
--vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
|
||||
--vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
|
||||
--vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
|
||||
--vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
|
||||
--vt-c-text-light-1: var(--vt-c-indigo);
|
||||
--vt-c-text-light-2: rgba(60, 60, 60, 0.66);
|
||||
--vt-c-text-dark-1: var(--vt-c-white);
|
||||
--vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
|
||||
}
|
||||
|
||||
/* semantic color variables for this project */
|
||||
:root {
|
||||
--color-background: var(--vt-c-white);
|
||||
--color-background-soft: var(--vt-c-white-soft);
|
||||
--color-background-mute: var(--vt-c-white-mute);
|
||||
--color-border: var(--vt-c-divider-light-2);
|
||||
--color-border-hover: var(--vt-c-divider-light-1);
|
||||
--color-heading: var(--vt-c-text-light-1);
|
||||
--color-text: var(--vt-c-text-light-1);
|
||||
--section-gap: 160px;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--color-background: var(--vt-c-black);
|
||||
--color-background-soft: var(--vt-c-black-soft);
|
||||
--color-background-mute: var(--vt-c-black-mute);
|
||||
--color-border: var(--vt-c-divider-dark-2);
|
||||
--color-border-hover: var(--vt-c-divider-dark-1);
|
||||
--color-heading: var(--vt-c-text-dark-1);
|
||||
--color-text: var(--vt-c-text-dark-2);
|
||||
}
|
||||
}
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
color: var(--color-text);
|
||||
background: var(--color-background);
|
||||
transition: color 0.5s, background-color 0.5s;
|
||||
line-height: 1.6;
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||
font-size: 15px;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=head.css.map */
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["head.scss"],"names":[],"mappings":"AAAA;AACA;EACE;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EAEA;EACA;EAEA;EACA;EAEA;;;AAGF;EACE;IACE;IACA;IACA;IAEA;IACA;IAEA;IACA;;;AAIJ;AAAA;AAAA;EAGE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA","file":"head.css"}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
/* color palette from <https://github.com/vuejs/theme> */
|
||||
:root {
|
||||
--vt-c-white: #ffffff;
|
||||
--vt-c-white-soft: #f8f8f8;
|
||||
--vt-c-white-mute: #f2f2f2;
|
||||
|
||||
--vt-c-black: #181818;
|
||||
--vt-c-black-soft: #222222;
|
||||
--vt-c-black-mute: #282828;
|
||||
|
||||
--vt-c-indigo: #2c3e50;
|
||||
|
||||
--vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
|
||||
--vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
|
||||
--vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
|
||||
--vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
|
||||
|
||||
--vt-c-text-light-1: var(--vt-c-indigo);
|
||||
--vt-c-text-light-2: rgba(60, 60, 60, 0.66);
|
||||
--vt-c-text-dark-1: var(--vt-c-white);
|
||||
--vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
|
||||
}
|
||||
|
||||
/* semantic color variables for this project */
|
||||
:root {
|
||||
--color-background: var(--vt-c-white);
|
||||
--color-background-soft: var(--vt-c-white-soft);
|
||||
--color-background-mute: var(--vt-c-white-mute);
|
||||
|
||||
--color-border: var(--vt-c-divider-light-2);
|
||||
--color-border-hover: var(--vt-c-divider-light-1);
|
||||
|
||||
--color-heading: var(--vt-c-text-light-1);
|
||||
--color-text: var(--vt-c-text-light-1);
|
||||
|
||||
--section-gap: 160px;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--color-background: var(--vt-c-black);
|
||||
--color-background-soft: var(--vt-c-black-soft);
|
||||
--color-background-mute: var(--vt-c-black-mute);
|
||||
|
||||
--color-border: var(--vt-c-divider-dark-2);
|
||||
--color-border-hover: var(--vt-c-divider-dark-1);
|
||||
|
||||
--color-heading: var(--vt-c-text-dark-1);
|
||||
--color-text: var(--vt-c-text-dark-2);
|
||||
}
|
||||
}
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
color: var(--color-text);
|
||||
background: var(--color-background);
|
||||
transition: color 0.5s, background-color 0.5s;
|
||||
line-height: 1.6;
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
|
||||
Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
||||
font-size: 15px;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
export {default as gymTrackerLogo} from './gymTrackerLogo.png';
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 273 KiB |
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
|
||||
|
After Width: | Height: | Size: 276 B |
|
|
@ -0,0 +1,35 @@
|
|||
@import './base.css';
|
||||
|
||||
#app {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
a,
|
||||
.green {
|
||||
text-decoration: none;
|
||||
color: hsla(160, 100%, 37%, 1);
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
a:hover {
|
||||
background-color: hsla(160, 100%, 37%, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
body {
|
||||
display: flex;
|
||||
place-items: center;
|
||||
}
|
||||
|
||||
#app {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
padding: 0 2rem;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
@import './base.scss';
|
||||
|
||||
#app {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
a,
|
||||
.green {
|
||||
text-decoration: none;
|
||||
color: hsla(160, 100%, 37%, 1);
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
a:hover {
|
||||
background-color: hsla(160, 100%, 37%, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
body {
|
||||
display: flex;
|
||||
place-items: center;
|
||||
}
|
||||
|
||||
#app {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
padding: 0 2rem;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,763 +0,0 @@
|
|||
{ "muscle": [
|
||||
{
|
||||
"name": "Legs",
|
||||
"exercises":
|
||||
[
|
||||
{
|
||||
"name": "Barbell Back Squat"
|
||||
},
|
||||
{
|
||||
"name": "Barbell Front Squat"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Split squat"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Split Squat"
|
||||
},
|
||||
{
|
||||
"name": "Barbell Lunge"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Bulgarien split Squat"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Reverse Lunge"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Bulgarien split squat"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Lunges"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Walking Lunges"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Reverse Lunge"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Goblet Squat"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Step Ups"
|
||||
},
|
||||
{
|
||||
"name":"Hack Squat"
|
||||
},
|
||||
{
|
||||
"name": "Leg Press"
|
||||
},
|
||||
{
|
||||
"name": "Leg Extension"
|
||||
},
|
||||
{
|
||||
"name": "Leg Curl"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Romanin Deadlift"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Stiff leg Deadlift"
|
||||
},
|
||||
{
|
||||
"name":"Dumbell Romanin Deadlift"
|
||||
},
|
||||
{
|
||||
"name":"Dumbell Stiff leg Deadlift"
|
||||
},
|
||||
{
|
||||
"name":"Decline Dumbbell leg curl"
|
||||
},
|
||||
{
|
||||
"name":"Leg Ham Raises"
|
||||
},
|
||||
{
|
||||
"name":"Seated Leg Curl"
|
||||
},
|
||||
{
|
||||
"name":"Seated Single Leg Curl"
|
||||
},
|
||||
{
|
||||
"name":"Laying Leg Curl"
|
||||
},
|
||||
{
|
||||
"name":"Laying single leg leg Curl"
|
||||
},
|
||||
{
|
||||
"name":"Cable Laying Leg Curl"
|
||||
},
|
||||
{
|
||||
"name":"Cable Single Leg Romanian Deadlift"
|
||||
},
|
||||
{
|
||||
"name":"Back Extension (Ham Focused)"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Hip Thrusts"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Hip Thusts"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell leaning Forward Step up"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Single leg Hip thusts"
|
||||
},
|
||||
{
|
||||
"name":"Cable Standing Cuff Kickback"
|
||||
},
|
||||
{
|
||||
"name":"Cable Pullthroughs"
|
||||
},
|
||||
{
|
||||
"name":"Cable Standing Side raises"
|
||||
},
|
||||
{
|
||||
"name":"Hip Abduction"
|
||||
},
|
||||
{
|
||||
"name":"Kettkebelt Swings"
|
||||
},
|
||||
{
|
||||
"name":"Glue hamm Raise"
|
||||
},
|
||||
{
|
||||
"name":"Back Extension (Glute Focused)"
|
||||
},
|
||||
{
|
||||
"name":"Single leg Hip Thusts"
|
||||
},
|
||||
{
|
||||
"name":"Plate Hip Thrusts"
|
||||
},
|
||||
{
|
||||
"name":"Single leg Plate Hip thusts"
|
||||
},
|
||||
{
|
||||
"name": "Hip Adduction"
|
||||
},
|
||||
{
|
||||
"name": "Hip Dumbbell Gobleg Adductor Lunges"
|
||||
},
|
||||
{
|
||||
"name": "Calf Raise"
|
||||
},
|
||||
{
|
||||
"name":"Single Leg Standing Dumbbell Calf Raises"
|
||||
},
|
||||
{
|
||||
"name":"Standing Dumbbell Calf Raises"
|
||||
},
|
||||
{
|
||||
"name":"Seated Dunbbell calrf Extensions"
|
||||
},
|
||||
{
|
||||
"name":"Seated Calf Raises"
|
||||
},
|
||||
{
|
||||
"name":"Staning Calf Raises"
|
||||
},
|
||||
{
|
||||
"name":"Donkey Calf Raises"
|
||||
},
|
||||
{
|
||||
"name":"Leg Press Calf Raises"
|
||||
},
|
||||
{
|
||||
"name":"Smith Maschine Donkey Calf Raises"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"exercises":[
|
||||
{
|
||||
"name":"Bentover Barbell Row"
|
||||
},
|
||||
{
|
||||
"name":"Standing T Bar Row"
|
||||
},
|
||||
{
|
||||
"name":"Chest Supported Barbell Row"
|
||||
},
|
||||
{
|
||||
"name":"Landmine 1 Arm Row"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Tripod Row"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Pullover (Lats)"
|
||||
},
|
||||
{
|
||||
"name":"Chest Supported Dumbbell row"
|
||||
},
|
||||
{
|
||||
"name":"Lat Focused Dumbbell Row"
|
||||
},
|
||||
{
|
||||
"name":"Rocking Pulldown"
|
||||
},
|
||||
{
|
||||
"name":"Close Grip Undergand Pulldown"
|
||||
},
|
||||
{
|
||||
"name":"Lap Pulldown"
|
||||
},
|
||||
{
|
||||
"name":"One Arm High Calbe Row"
|
||||
},
|
||||
{
|
||||
"name":"Seated One Arm High Cable row"
|
||||
},
|
||||
{
|
||||
"name":"Incline Cable Single Arm Stretch"
|
||||
},
|
||||
{
|
||||
"name":"Cable Straight Arm Pushdown Bar"
|
||||
},
|
||||
{
|
||||
"name":"Cable Straight Arm Pusdown Rope"
|
||||
},
|
||||
{
|
||||
"name":"Single Arm Straight Arm Pushdown"
|
||||
},
|
||||
{
|
||||
"name":"Seated Lat Focused Row"
|
||||
},
|
||||
{
|
||||
"name":"Seated Lat Focused One Arm Row"
|
||||
},
|
||||
{
|
||||
"name":"Kneeling one Arm Lat Focused Row"
|
||||
},
|
||||
{
|
||||
"name":"Kneeling Lat Pullin"
|
||||
},
|
||||
{
|
||||
"name":"Seated Chest supported lat row"
|
||||
},
|
||||
{
|
||||
"name":"Pull ups"
|
||||
},
|
||||
{
|
||||
"name":"Asissted Pull ups"
|
||||
},
|
||||
{
|
||||
"name":"Lat Pulldown"
|
||||
},
|
||||
{
|
||||
"name":"Chin ups"
|
||||
},
|
||||
{
|
||||
"name":"Asissted Pull ups"
|
||||
},
|
||||
{
|
||||
"name":"Austrailan Pull ups"
|
||||
},
|
||||
{
|
||||
"name":"Bentover Barbell row"
|
||||
},
|
||||
{
|
||||
"name":"Chest Supported Barbell Row"
|
||||
},
|
||||
{
|
||||
"name":"Medow Row"
|
||||
},
|
||||
{
|
||||
"name":"Chest Supported Dumbbell Row"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell One Arm Row"
|
||||
},
|
||||
{
|
||||
"name":"Bentover Dumbbell Row"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Helms Row"
|
||||
},
|
||||
{
|
||||
"name":"Seated Row (Wide Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Seated Row"
|
||||
},
|
||||
{
|
||||
"name":"Seated chest supported Row"
|
||||
},
|
||||
{
|
||||
"name":"Deadlift"
|
||||
},
|
||||
{
|
||||
"name":"Sumo Deadlift"
|
||||
},
|
||||
{
|
||||
"name":"Dead Row"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Good Morning"
|
||||
},
|
||||
{
|
||||
"name":"Dumbell Good Morning"
|
||||
},
|
||||
{
|
||||
"name":"Dumbell Superman"
|
||||
},
|
||||
{
|
||||
"name":"Back Extensions"
|
||||
},
|
||||
{
|
||||
"name":"Superman"
|
||||
},
|
||||
{
|
||||
"name":"Good Morning"
|
||||
},
|
||||
{
|
||||
"name":"Rack Pull"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Shrugs"
|
||||
},
|
||||
{
|
||||
"name":"Trap bar Shrugs"
|
||||
},
|
||||
{
|
||||
"name":"Trap Bar Carry"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Shrugs"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Carry"
|
||||
},
|
||||
{
|
||||
"name":"Dumbell Seated Shrug"
|
||||
},
|
||||
{
|
||||
"name":"Cable Shrugs"
|
||||
},
|
||||
{
|
||||
"name":"Plate Shurugs"
|
||||
},
|
||||
{
|
||||
"name":"Plate Carry"
|
||||
},
|
||||
{
|
||||
"name":"Cable Wrap Around Row"
|
||||
},
|
||||
{
|
||||
"name":"Cable Rope Pull"
|
||||
},
|
||||
{
|
||||
"name":"Prone Reverse Fly"
|
||||
},
|
||||
{
|
||||
"name":"Cable FacePull Press"
|
||||
},
|
||||
{
|
||||
"name":"Prone Y Rise"
|
||||
},
|
||||
{
|
||||
"name":"Prone Press"
|
||||
},
|
||||
{
|
||||
"name":"Plate Raise"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Chest",
|
||||
"exercises":[
|
||||
{
|
||||
"name":"Incline Barbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Kneeling Landmine Press"
|
||||
},
|
||||
{
|
||||
"name":"Flat Underhand Barbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Landmine Rainbow"
|
||||
},
|
||||
{
|
||||
"name":"Paused Incline Barbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Incline Dumbbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Pullover (Chest)"
|
||||
},
|
||||
{
|
||||
"name":"DB UCV Raise"
|
||||
},
|
||||
{
|
||||
"name":"Incline Dumbbell Squeeze Press"
|
||||
},
|
||||
{
|
||||
"name":"Flat Underhand Dumbbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Paused Incline Dumbbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Sranding Low to High Cable Fly"
|
||||
},
|
||||
{
|
||||
"name":"Seated Low to High Cable Fly"
|
||||
},
|
||||
{
|
||||
"name":"Incline Cable Press"
|
||||
},
|
||||
{
|
||||
"name":"Standing Low to High Crossover"
|
||||
},
|
||||
{
|
||||
"name":"Seated Low to High Crossover"
|
||||
},
|
||||
{
|
||||
"name":"Dual Cable UCV Raise"
|
||||
},
|
||||
{
|
||||
"name":"Decline Pushup"
|
||||
},
|
||||
{
|
||||
"name":"Slight Decline Bench Pess"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Close Grip Barbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Slight Delcline Dumbbell Press"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Paused Dumbbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbel Floor Fly"
|
||||
},
|
||||
{
|
||||
"name":"Seated Cable Fly"
|
||||
},
|
||||
{
|
||||
"name":"Seated Cable Press"
|
||||
},
|
||||
{
|
||||
"name":"Seated Cable Crossover"
|
||||
},
|
||||
{
|
||||
"name":"Standing Calbe Press"
|
||||
},
|
||||
{
|
||||
"name":"Standing Cable Crossover"
|
||||
},
|
||||
{
|
||||
"name":"Staning Cable Fly"
|
||||
},
|
||||
{
|
||||
"name":"Standing Calbe Press"
|
||||
},
|
||||
{
|
||||
"name":"Standing Cable Crossover"
|
||||
},
|
||||
{
|
||||
"name":"Pushup"
|
||||
},
|
||||
{
|
||||
"name":"Push away Pushup"
|
||||
},
|
||||
{
|
||||
"name":"Plate loaded Chest press"
|
||||
},
|
||||
{
|
||||
"name":"Assisted Chest press"
|
||||
},
|
||||
{
|
||||
"name":"Pec Dec (Chest)"
|
||||
},
|
||||
{
|
||||
"name":"Assisted Dip"
|
||||
},
|
||||
{
|
||||
"name":"Dip"
|
||||
},
|
||||
{
|
||||
"name":"Decline Barbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Dips"
|
||||
},
|
||||
{
|
||||
"name":"Decline Dumbbell Bench Press"
|
||||
},
|
||||
{
|
||||
"name":"Decline Dumbbell Flys Supernated"
|
||||
},
|
||||
{
|
||||
"name":"Decline Dumbbell Pullover"
|
||||
},
|
||||
{
|
||||
"name":"High to low Cable flys"
|
||||
},
|
||||
{
|
||||
"name":"High to low Cable Press"
|
||||
},
|
||||
{
|
||||
"name":"High to low Crossover"
|
||||
},
|
||||
{
|
||||
"name":"Standing Cable LC Press"
|
||||
},
|
||||
{
|
||||
"name":"Kneeling X Press"
|
||||
},
|
||||
{
|
||||
"name":"Decline Cable Dip"
|
||||
},
|
||||
{
|
||||
"name":"Jack Hammer Pushdown"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Shoulders",
|
||||
"exercises":[
|
||||
{
|
||||
"name":"Barbell Overhead Press"
|
||||
},
|
||||
{
|
||||
"name":"Seated Barbell Overhead Press"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Front raises"
|
||||
},
|
||||
{
|
||||
"name":"Kneeling Landmine Press"
|
||||
},
|
||||
{
|
||||
"name":"Smithmashine Shoulder Press"
|
||||
},
|
||||
{
|
||||
"name":"Dumbell Overhead Press"
|
||||
},
|
||||
{
|
||||
"name":"Seated Dumbell Overhead Press"
|
||||
},
|
||||
{
|
||||
"name":"Dumbell Arnold Press"
|
||||
},
|
||||
{
|
||||
"name":"Seated Arnold Press"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Front Raises (pronated Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Front Raises (Hammer Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Front Raises (Supernated Grip BEST)"
|
||||
},
|
||||
{
|
||||
"name":"Seated Dumbell Press (Supernated Grip"
|
||||
},
|
||||
{
|
||||
"name":"Staning Dumbell Press (Supernated Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbel Scoop Press"
|
||||
},
|
||||
{
|
||||
"name":"Cable Front Riase (Pronated Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Cable Front Riase (Supernated Grip BEST)"
|
||||
},
|
||||
{
|
||||
"name":"Cable Strch Front Raises"
|
||||
},
|
||||
{
|
||||
"name":"Plate Bus Drivers"
|
||||
},
|
||||
{
|
||||
"name":"Handstand Pushup"
|
||||
},
|
||||
{
|
||||
"name":"Pike Pushup"
|
||||
},
|
||||
{
|
||||
"name":"Seated Dumbbell Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Standing Dumbbell Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Cheat Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Lying Incline Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Incline Dumbbell Parsel Side Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Cable Behind Body Lateral Raise "
|
||||
},
|
||||
{
|
||||
"name":"Cable Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Cable Lean-Away Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Egyptian Lateral Raise"
|
||||
},
|
||||
{
|
||||
"name":"Standing Cable Y Raise"
|
||||
},
|
||||
{
|
||||
"name":"Maschine Side Lateral Raises"
|
||||
},
|
||||
{
|
||||
"name":"Standing Barbell Rear Delt Row"
|
||||
},
|
||||
{
|
||||
"name":"Chest Supported Barbell Rear Delt Row"
|
||||
},
|
||||
{
|
||||
"name":"Behinde the Back Barbell Raise"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Rear Delt Row"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Chest Supported Rear Delt Swing"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Chest Supported Rear Delt Row"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Reverse Flys"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbll Hip Hugger"
|
||||
},
|
||||
{
|
||||
"name":"Abdduction Row"
|
||||
},
|
||||
{
|
||||
"name":"Incline Behind the Back Dumbbell Raise"
|
||||
},
|
||||
{
|
||||
"name":"Incline Dumbbell Rear Delt Fly"
|
||||
},
|
||||
{
|
||||
"name":"Seated Cable Rear Delt Row"
|
||||
},
|
||||
{
|
||||
"name":"Rear Delt Cable Pull"
|
||||
},
|
||||
{
|
||||
"name":"Double Arm Reverse Cabel Fly"
|
||||
},
|
||||
{
|
||||
"name":"Singke Arm Reverse Cable Fly"
|
||||
},
|
||||
{
|
||||
"name":"Standing Face Pull"
|
||||
},
|
||||
{
|
||||
"name":"Kneeling Face Pull"
|
||||
},
|
||||
{
|
||||
"name":"Laying Face Pull"
|
||||
},
|
||||
{
|
||||
"name":"Reverse Pec Deck"
|
||||
},
|
||||
{
|
||||
"name":"Maschine Side Lateral Rear Delt Fly"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Biceps",
|
||||
"exercises":[
|
||||
{
|
||||
"name":"Dumbbell Concentration Curl (Pronated Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Crossbody Cable Curl"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Concentration Curl (Hammer Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Reverse Grip Curl"
|
||||
},
|
||||
{
|
||||
"name":"Ez Bar Reverse Grip Curl"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Reverse Grip"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Curl"
|
||||
},
|
||||
{
|
||||
"name":"Ez bar Curl"
|
||||
},
|
||||
{
|
||||
"name":"Standing Dumbbell Curl"
|
||||
},
|
||||
{
|
||||
"name":"Seated Cable Curl"
|
||||
},
|
||||
{
|
||||
"name":"High Cable Curl"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Triceps",
|
||||
"exercises":[
|
||||
{
|
||||
"name":"Rope Cable Pushdown (infront Body)"
|
||||
},
|
||||
{
|
||||
"name":"Straight Bart Cable Pushdown (underhand Grip)"
|
||||
},
|
||||
{
|
||||
"name":"Dumbbell Overhead Extension"
|
||||
},
|
||||
{
|
||||
"name":"Dip"
|
||||
},
|
||||
{
|
||||
"name":"Rope Cable Pushdown (behind body)"
|
||||
},
|
||||
{
|
||||
"name":"Cable Straight Bar Pushdown"
|
||||
},
|
||||
{
|
||||
"name":"Barbell Dip"
|
||||
},
|
||||
{
|
||||
"name":"Close Grip Pushup"
|
||||
},
|
||||
{
|
||||
"name":"Close Grip Barbell Bench Press"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
<template>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
.btn {
|
||||
background-color: white;
|
||||
border: none;
|
||||
border-radius: 1rem;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
font-size: 18px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.btn--primary {
|
||||
background-color: #007bff;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -1,118 +0,0 @@
|
|||
<template>
|
||||
<input class="search " type="text" v-model="input" placeholder="Search..." />
|
||||
<div class="flex">
|
||||
<div class="exerciseList">
|
||||
<ul class="exerciseItem" v-for="exercise in filterExercises()" :key="exercise.name">
|
||||
<Button @click="exerciseClick(exercise)" class="btn bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4" >{{ exercise.name }}</Button>
|
||||
</ul>
|
||||
</div>
|
||||
<div v-show="isClicked" class="show">
|
||||
<label> {{ exerciseName }}</label>
|
||||
<WeightsInput/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
import { usePostStore } from '@/stores/store.js';
|
||||
import { onMounted, ref } from 'vue';
|
||||
import WeightsInput from "@/views/weight/WeightsInput.vue";
|
||||
|
||||
const muscle = defineProps({
|
||||
muscle: String,
|
||||
warmUpSets: Array,
|
||||
workingSets: Array,
|
||||
warmUpReps: Array,
|
||||
workingReps: Array,
|
||||
})
|
||||
|
||||
let isClicked = false
|
||||
const json = usePostStore()
|
||||
const exercises = ref([])
|
||||
let exerciseName = ""
|
||||
|
||||
onMounted(async () => {
|
||||
await json.fetchMuscleExercise()
|
||||
switch (muscle.muscle) {
|
||||
case "Legs":
|
||||
exercises.value = json.postList.muscle[0].exercises
|
||||
break;
|
||||
case "Back":
|
||||
exercises.value = json.postList.muscle[1].exercises
|
||||
break;
|
||||
case "Chest":
|
||||
exercises.value = json.postList.muscle[2].exercises
|
||||
break;
|
||||
case "Shoulder":
|
||||
exercises.value = json.postList.muscle[3].exercises
|
||||
break;
|
||||
case "Biceps":
|
||||
exercises.value = json.postList.muscle[4].exercises
|
||||
break;
|
||||
case "Triceps":
|
||||
exercises.value = json.postList.muscle[5].exercises
|
||||
break;
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// filter exercises with help from https://blog.logrocket.com/create-search-bar-vue/ last accessed 05.05.2023
|
||||
let input = ref('');
|
||||
function filterExercises(){
|
||||
return exercises.value.filter((exercise) => {
|
||||
return exercise.name.toLowerCase().includes(input.value.toLowerCase());
|
||||
});
|
||||
};
|
||||
|
||||
const showWeightInput = (isClicked) => {
|
||||
isClicked.value = true
|
||||
}
|
||||
|
||||
const exerciseClick = (exercise) => {
|
||||
isClicked = true
|
||||
exerciseName = exercise.name
|
||||
console.log(isClicked)
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
.exerciseList{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 0.25rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.search{
|
||||
width: auto;
|
||||
height: 2rem;
|
||||
border-radius: 1rem;
|
||||
border: 1px solid #ccc;
|
||||
padding: 1rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.weights{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 0.25rem;
|
||||
margin-top: 0.5rem;
|
||||
margin-left: 5rem;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.set{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
gap: 0.25rem;
|
||||
margin-top: 0.5rem;
|
||||
color: white;
|
||||
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,3 +1,2 @@
|
|||
export { default as NavigationModel } from './NavigationModel.vue';
|
||||
export { default as ExerciseList } from './ExerciseList.vue';
|
||||
export { default as Button } from './Button.vue';
|
||||
export { default as Nav } from './Nav.vue';
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<nav v-show="true" class="navbar navbar-expand navbar-dark bg-dark">
|
||||
<div class="navbar-nav">
|
||||
<router-link to="/" class="nav-item nav-link">Home</router-link>
|
||||
<router-link to="/users" class="nav-item nav-link">Users</router-link>
|
||||
<button @click="authStore.logout()" class="btn btn-link nav-item nav-link">Logout</button>
|
||||
</div>
|
||||
</nav>
|
||||
</template>
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<nav v-show="true" class="navbar navbar-expand navbar-dark bg-dark">
|
||||
<div class="logo">
|
||||
<img src="../assets/logo.png" alt="logo"/>
|
||||
</div>
|
||||
<div class="navbar-nav">
|
||||
<router-link to="/" class="nav-item nav-link">Home</router-link>
|
||||
<router-link to="/Muscles/Legs" class="nav-item nav-link">Legs</router-link>
|
||||
|
|
@ -10,44 +11,7 @@
|
|||
<router-link to="/Muscles/Chest" class="nav-item nav-link">Chest</router-link>
|
||||
<router-link to="/Muscles/Shoulder" class="nav-item nav-link">Shoulder</router-link>
|
||||
<router-link to="/Muscles/Triceps" class="nav-item nav-link">Triceps</router-link>
|
||||
<router-link to="/Muscles/Biceps" class="nav-item nav-link">Biceps</router-link>
|
||||
<router-link to="/Muscles/Bicepts" class="nav-item nav-link">Bicepts</router-link>
|
||||
</div>
|
||||
</nav>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// styling for the navbar (with reference to https://css-tricks.com/snippets/css/a-guide-to-flexbox/#aa-flexbox-properties last accessed 05.05.2023)
|
||||
.navbar{
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 4rem;
|
||||
justify-content: start;
|
||||
background: rgb(36, 165, 75);
|
||||
}
|
||||
.navbar-nav{
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: start;
|
||||
align-items: center;
|
||||
}
|
||||
.nav-item{
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
.nav-item:hover{
|
||||
color: orangered;
|
||||
}
|
||||
.logo{
|
||||
display: flex;
|
||||
}
|
||||
.logo img {
|
||||
width: 15%;
|
||||
height: 100%;
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { describe, it, expect } from 'vitest'
|
||||
|
||||
import { mount } from '@vue/test-utils'
|
||||
import HelloWorld from '../HelloWorld.vue'
|
||||
|
||||
describe('HelloWorld', () => {
|
||||
it('renders properly', () => {
|
||||
const wrapper = mount(HelloWorld, { props: { msg: 'Hello Vitest' } })
|
||||
expect(wrapper.text()).toContain('Hello Vitest')
|
||||
})
|
||||
})
|
||||
|
|
@ -49,4 +49,17 @@
|
|||
font-weight: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
color: var(--color-text);
|
||||
background: var(--color-background);
|
||||
transition: color 0.5s, background-color 0.5s;
|
||||
line-height: 1.6;
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||
font-size: 15px;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=head.css.map */
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["head.scss"],"names":[],"mappings":"AAAA;AACA;EACE;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EAEA;EACA;EAEA;EACA;EAEA;;;AAGF;EACE;IACE;IACA;IACA;IAEA;IACA;IAEA;IACA;;;AAIJ;AAAA;AAAA;EAGE;EACA;EACA;EACA","file":"head.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["head.scss"],"names":[],"mappings":"AAAA;AACA;EACE;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EAEA;EACA;EAEA;EACA;EAEA;;;AAGF;EACE;IACE;IACA;IACA;IAEA;IACA;IAEA;IACA;;;AAIJ;AAAA;AAAA;EAGE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA","file":"head.css"}
|
||||
|
|
@ -58,3 +58,17 @@
|
|||
position: relative;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
color: var(--color-text);
|
||||
background: var(--color-background);
|
||||
transition: color 0.5s, background-color 0.5s;
|
||||
line-height: 1.6;
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
|
||||
Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
||||
font-size: 15px;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
@import 'base.scss';
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
|
@ -4,7 +4,7 @@ import { createPinia } from 'pinia'
|
|||
import App from './App.vue'
|
||||
import router from './router'
|
||||
|
||||
import './css/main.scss'
|
||||
import './assets/main.css'
|
||||
|
||||
const app = createApp(App)
|
||||
app.use(createPinia())
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
import HomeView from '../views/Home.vue'
|
||||
import MusclesRouter from './muscle.js';
|
||||
import MusclesRouter from './muscle.router.js';
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
|
|
@ -11,11 +11,54 @@ const router = createRouter({
|
|||
component: HomeView
|
||||
},
|
||||
{... MusclesRouter},
|
||||
{
|
||||
path: '/weightsinput',
|
||||
name: 'weightsinput',
|
||||
component: () => import('../views/weight/WeightsInput.vue')
|
||||
}
|
||||
// {
|
||||
// path: '/chest',
|
||||
// name: 'chest',
|
||||
// // route level code-splitting
|
||||
// // this generates a separate chunk (About.[hash].js) for this route
|
||||
// // which is lazy-loaded when the route is visited.
|
||||
// component: () => import('../views/Muscles/ChestView.vue')
|
||||
// },
|
||||
// {
|
||||
// path: '/shoulder',
|
||||
// name: 'shoulder',
|
||||
// // route level code-splitting
|
||||
// // this generates a separate chunk (About.[hash].js) for this route
|
||||
// // which is lazy-loaded when the route is visited.
|
||||
// component: () => import('../views/Muscles/ShoulderView.vue')
|
||||
// },
|
||||
// {
|
||||
// path: '/legs',
|
||||
// name: 'legs',
|
||||
// // route level code-splitting
|
||||
// // this generates a separate chunk (About.[hash].js) for this route
|
||||
// // which is lazy-loaded when the route is visited.
|
||||
// component: () => import('../views/Muscles/LegsView.vue')
|
||||
// },
|
||||
// {
|
||||
// path: '/back',
|
||||
// name: 'back',
|
||||
// // route level code-splitting
|
||||
// // this generates a separate chunk (About.[hash].js) for this route
|
||||
// // which is lazy-loaded when the route is visited.
|
||||
// component: () => import('../views/Muscles/BackView.vue')
|
||||
// },
|
||||
// {
|
||||
// path: '/biceps',
|
||||
// name: 'biceps',
|
||||
// // route level code-splitting
|
||||
// // this generates a separate chunk (About.[hash].js) for this route
|
||||
// // which is lazy-loaded when the route is visited.
|
||||
// component: () => import('../views/Muscles/BicepsView.vue')
|
||||
// },
|
||||
// {
|
||||
// path: '/triceps',
|
||||
// name: 'triceps',
|
||||
// // route level code-splitting
|
||||
// // this generates a separate chunk (About.[hash].js) for this route
|
||||
// // which is lazy-loaded when the route is visited.
|
||||
// component: () => import('../views/Muscles/TricepsView.vue')
|
||||
// },
|
||||
]
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,15 @@
|
|||
import {Back, Biceps, Chest, Legs, Shoulder, Triceps } from "../views/muscles/Index.js";
|
||||
import { Legs, Back, Chest, Shoulder, Triceps, Biceps } from '@/views/muscles';
|
||||
// import Tilebar from '@/views/layouts';
|
||||
|
||||
export default {
|
||||
path: '/muscles',
|
||||
// component: Tilebar,
|
||||
children: [
|
||||
{ path: 'legs', component: Legs },
|
||||
{ path: 'back', component: Back },
|
||||
{ path: 'chest', component: Chest },
|
||||
{ path: 'shoulder', component: Shoulder },
|
||||
{ path: 'triceps', component: Triceps },
|
||||
{ path: 'biceps', component: Biceps },
|
||||
{ path: 'bicepts', component: Biceps },
|
||||
]
|
||||
};
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
import { ref, computed } from 'vue'
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
export const useCounterStore = defineStore('counter', () => {
|
||||
const count = ref(0)
|
||||
const doubleCount = computed(() => count.value * 2)
|
||||
function increment() {
|
||||
count.value++
|
||||
}
|
||||
|
||||
return { count, doubleCount, increment }
|
||||
})
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
import {defineStore} from 'pinia'
|
||||
import muscleExercise from '../assets/muscleExercise';
|
||||
import { ref } from 'vue'
|
||||
|
||||
export const usePostStore = defineStore('json', () => {
|
||||
const postList = ref([])
|
||||
const error = ref([])
|
||||
|
||||
async function fetchMuscleExercise() {
|
||||
postList.value = muscleExercise
|
||||
error.value = []
|
||||
}
|
||||
|
||||
return {
|
||||
postList,
|
||||
error,
|
||||
fetchMuscleExercise
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
export default usePostStore
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
import {defineStore} from 'pinia'
|
||||
import {useStorage} from '@vueuse/core'
|
||||
|
||||
//see https://stephanlangeveld.medium.com/simple-local-storage-implementation-using-vue-3-vueuse-and-pinia-with-zero-extra-lines-of-code-cb9ed2cce42a
|
||||
export const useWeightStore = defineStore({
|
||||
id: 'weight',
|
||||
state: () => ({
|
||||
weight: [],
|
||||
reps: []
|
||||
}),
|
||||
getters: {
|
||||
getAllWeights() {
|
||||
return this.weight.value
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
addWeight(weight, reps) {
|
||||
this.weight.push(weight);
|
||||
this.reps.push(reps);
|
||||
},
|
||||
}
|
||||
})
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<template>
|
||||
|
||||
<div class="wrapper">
|
||||
<nav>
|
||||
<RouterLink to="/home">Home</RouterLink>
|
||||
</nav>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -4,6 +4,6 @@
|
|||
|
||||
<template>
|
||||
<main>
|
||||
<h1>HomeView</h1>
|
||||
<h1 HomeView h1/>
|
||||
</main>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
export {default as Tilebar} from './Tilebar.vue';
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<template>
|
||||
<div class="p-4">
|
||||
<div class="container">
|
||||
<router-view />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
@ -1,15 +1,16 @@
|
|||
<template>
|
||||
<div class="text-3xl font-bold underline text-blue-500">
|
||||
<div class="back">
|
||||
<h1>Back</h1>
|
||||
<ExerciseList muscle="Back"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ExerciseList} from "@/components/Index.js";
|
||||
<style>
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,15 +1,16 @@
|
|||
<template>
|
||||
<div class="biceps">
|
||||
<h1>Biceps</h1>
|
||||
<ExerciseList muscle="Biceps"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ExerciseList} from "@/components/Index.js";
|
||||
<style>
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<div class="w-1/2">
|
||||
<div class="chest">
|
||||
<h1>Chest</h1>
|
||||
<ExerciseList muscle="Chest"/>
|
||||
</div>
|
||||
<div>
|
||||
<weightsInput/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ExerciseList} from "@/components/Index.js";
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,15 +1,16 @@
|
|||
<template>
|
||||
<div class="legs">
|
||||
<h1>Legs</h1>
|
||||
<ExerciseList muscle="Legs"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ExerciseList} from "@/components/Index.js";
|
||||
<style>
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<template>
|
||||
<div class="shoulder">
|
||||
<h1>Shoulder</h1>
|
||||
<ExerciseList muscle="Shoulder"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ExerciseList} from "@/components/Index.js";
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
@ -1,15 +1,16 @@
|
|||
<template>
|
||||
<div class="triceps">
|
||||
<h1>Triceps</h1>
|
||||
<ExerciseList muscle="Triceps"/>
|
||||
<h1><button>Triceps</button></h1>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ExerciseList} from "@/components/Index.js";
|
||||
<style>
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -1 +0,0 @@
|
|||
export {default as weightsInput} from './WeightsInput.vue';
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
<template>
|
||||
//TODO make view resposive on button click add
|
||||
<div class="w-2/3 mx-auto">
|
||||
<div class="warmup-sets mt-12 w-2/3">
|
||||
<label>Warm-Up Sets</label>
|
||||
<button @click="warmUpAddSet()" class="add-btn bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded ml-5">Add</button>
|
||||
<div v-for="warmupset in warmUpInput.warmUpSets" class="item" :key="warmupset">
|
||||
{{ warmupset }}
|
||||
<input name="warmupweight" class="mt-1 px-3 py-2 bg-black border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block rounded-md sm:text-sm focus:ring-1" placeholder="Weight in Kg" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="working-set mt-5">
|
||||
<label>Working Sets</label>
|
||||
<button @click="workingAddSet()" class="add-btn bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded ml-7">Add</button>
|
||||
|
||||
<div>
|
||||
<div v-for="(workingset, index) in workingInput.workingSets" class="item flex justify-smart mt-3" :key="index">
|
||||
{{ workingset }}
|
||||
<div class="ml-3">
|
||||
<input v-model="workingInput.workingSets" class="mt-1 px-3 py-2 bg-black border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block rounded-md sm:text-sm focus:ring-1" placeholder="Weight in Kg"/>
|
||||
</div>
|
||||
<label>Reps</label>
|
||||
<div class="ml-3">
|
||||
<input v-model="workingInput.workingReps" class="mt-1 px-3 py-2 bg-black border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block rounded-md sm:text-sm focus:ring-1" placeholder="Reps">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button @click="addWeight()" class="add-btn bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded mt-5">Save</button>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useWeightStore } from '@/stores/storeWeight';
|
||||
|
||||
let warmUpSetCount = 0;
|
||||
let workingSetCount = 0;
|
||||
|
||||
const weight = useWeightStore();
|
||||
|
||||
let warmUpInput = {
|
||||
warmUpSets: [],
|
||||
warmUpReps: []
|
||||
}
|
||||
|
||||
let workingInput = {
|
||||
workingSets: [],
|
||||
workingReps: []
|
||||
}
|
||||
|
||||
const warmUpAddSet = () => {
|
||||
const newWarmUpSet = {
|
||||
id: warmUpSetCount++,
|
||||
content: warmUpSetCount + ". Set"
|
||||
};
|
||||
warmUpInput.warmUpSets.push(newWarmUpSet.content);
|
||||
console.log(warmUpInput.warmUpSets);
|
||||
};
|
||||
|
||||
const workingAddSet = () => {
|
||||
const newWorkingSet = {
|
||||
id: workingSetCount++,
|
||||
content: workingSetCount + ". Set"
|
||||
};
|
||||
workingInput.workingSets.push(newWorkingSet.content);
|
||||
console.log(workingInput);
|
||||
};
|
||||
|
||||
const addWeight = () => {
|
||||
//TODO: Add warmup sets and reps to store
|
||||
weight.addWeight(workingSetInput.value, workingRepsSets.value);
|
||||
workingSetInput.value = "";
|
||||
workingRepsSets.value = "";
|
||||
}
|
||||
|
||||
console.log(addWeight);
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
||||
export default weightsInput;
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: [
|
||||
"./index.html",
|
||||
"./src/**/*.{vue,js,ts,jsx,tsx}",
|
||||
],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue