(starport) move feature from one step to another

This commit is contained in:
Julien Calixte
2023-07-22 14:25:31 +02:00
parent ca3cbe3470
commit 1579e2598e
7 changed files with 183 additions and 55 deletions

View File

@@ -2,3 +2,33 @@ ul {
list-style: none; list-style: none;
padding: 0; padding: 0;
} }
.bin {
margin-top: 1rem;
border: 3px solid var(--background-color);
color: var(--background-color);
background-color: white;
height: 62px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 12pt;
padding: 0 0.5rem;
text-align: center;
transition-property: border, color, background-color, font-size;
transition-duration: 1s;
}
.blue-bin {
background-color: var(--background-color);
color: white;
font-size: 18pt;
}
.green-bin {
background-color: var(--success-color);
border: 3px solid var(--success-color);
color: white;
transition-delay: 3s;
}

View File

@@ -13,7 +13,8 @@
"author": "Julien Calixte <julienc@bam.tech>", "author": "Julien Calixte <julienc@bam.tech>",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"vue": "^3.3.4" "vue": "^3.3.4",
"vue-starport": "^0.3.0"
}, },
"devDependencies": { "devDependencies": {
"@faker-js/faker": "^8.0.2", "@faker-js/faker": "^8.0.2",
@@ -21,7 +22,7 @@
"@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue": "^4.2.3",
"sass": "^1.64.0", "sass": "^1.64.0",
"typescript": "^5.1.6", "typescript": "^5.1.6",
"vitest": "^0.33.0", "vite": "^4.4.1",
"vite": "^4.4.1" "vitest": "^0.33.0"
} }
} }

117
pnpm-lock.yaml generated
View File

@@ -5,12 +5,12 @@ settings:
excludeLinksFromLockfile: false excludeLinksFromLockfile: false
dependencies: dependencies:
vite:
specifier: ^4.4.1
version: 4.4.1(@types/node@20.4.2)(sass@1.64.0)
vue: vue:
specifier: ^3.3.4 specifier: ^3.3.4
version: 3.3.4 version: 3.3.4
vue-starport:
specifier: ^0.3.0
version: 0.3.0
devDependencies: devDependencies:
'@faker-js/faker': '@faker-js/faker':
@@ -28,6 +28,9 @@ devDependencies:
typescript: typescript:
specifier: ^5.1.6 specifier: ^5.1.6
version: 5.1.6 version: 5.1.6
vite:
specifier: ^4.4.1
version: 4.4.1(@types/node@20.4.2)(sass@1.64.0)
vitest: vitest:
specifier: ^0.33.0 specifier: ^0.33.0
version: 0.33.0(sass@1.64.0) version: 0.33.0(sass@1.64.0)
@@ -63,6 +66,7 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/android-arm@0.18.11: /@esbuild/android-arm@0.18.11:
@@ -71,6 +75,7 @@ packages:
cpu: [arm] cpu: [arm]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/android-x64@0.18.11: /@esbuild/android-x64@0.18.11:
@@ -79,6 +84,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/darwin-arm64@0.18.11: /@esbuild/darwin-arm64@0.18.11:
@@ -87,6 +93,7 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/darwin-x64@0.18.11: /@esbuild/darwin-x64@0.18.11:
@@ -95,6 +102,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/freebsd-arm64@0.18.11: /@esbuild/freebsd-arm64@0.18.11:
@@ -103,6 +111,7 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/freebsd-x64@0.18.11: /@esbuild/freebsd-x64@0.18.11:
@@ -111,6 +120,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-arm64@0.18.11: /@esbuild/linux-arm64@0.18.11:
@@ -119,6 +129,7 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-arm@0.18.11: /@esbuild/linux-arm@0.18.11:
@@ -127,6 +138,7 @@ packages:
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-ia32@0.18.11: /@esbuild/linux-ia32@0.18.11:
@@ -135,6 +147,7 @@ packages:
cpu: [ia32] cpu: [ia32]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-loong64@0.18.11: /@esbuild/linux-loong64@0.18.11:
@@ -143,6 +156,7 @@ packages:
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-mips64el@0.18.11: /@esbuild/linux-mips64el@0.18.11:
@@ -151,6 +165,7 @@ packages:
cpu: [mips64el] cpu: [mips64el]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-ppc64@0.18.11: /@esbuild/linux-ppc64@0.18.11:
@@ -159,6 +174,7 @@ packages:
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-riscv64@0.18.11: /@esbuild/linux-riscv64@0.18.11:
@@ -167,6 +183,7 @@ packages:
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-s390x@0.18.11: /@esbuild/linux-s390x@0.18.11:
@@ -175,6 +192,7 @@ packages:
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-x64@0.18.11: /@esbuild/linux-x64@0.18.11:
@@ -183,6 +201,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/netbsd-x64@0.18.11: /@esbuild/netbsd-x64@0.18.11:
@@ -191,6 +210,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [netbsd] os: [netbsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/openbsd-x64@0.18.11: /@esbuild/openbsd-x64@0.18.11:
@@ -199,6 +219,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/sunos-x64@0.18.11: /@esbuild/sunos-x64@0.18.11:
@@ -207,6 +228,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [sunos] os: [sunos]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-arm64@0.18.11: /@esbuild/win32-arm64@0.18.11:
@@ -215,6 +237,7 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-ia32@0.18.11: /@esbuild/win32-ia32@0.18.11:
@@ -223,6 +246,7 @@ packages:
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-x64@0.18.11: /@esbuild/win32-x64@0.18.11:
@@ -231,6 +255,7 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@faker-js/faker@8.0.2: /@faker-js/faker@8.0.2:
@@ -264,6 +289,11 @@ packages:
/@types/node@20.4.2: /@types/node@20.4.2:
resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==} resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==}
dev: true
/@types/web-bluetooth@0.0.14:
resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==}
dev: false
/@vitejs/plugin-vue@4.2.3(vite@4.4.1)(vue@3.3.4): /@vitejs/plugin-vue@4.2.3(vite@4.4.1)(vue@3.3.4):
resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
@@ -387,6 +417,43 @@ packages:
/@vue/shared@3.3.4: /@vue/shared@3.3.4:
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
/@vueuse/core@8.9.4(vue@3.3.4):
resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==}
peerDependencies:
'@vue/composition-api': ^1.1.0
vue: ^2.6.0 || ^3.2.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
vue:
optional: true
dependencies:
'@types/web-bluetooth': 0.0.14
'@vueuse/metadata': 8.9.4
'@vueuse/shared': 8.9.4(vue@3.3.4)
vue: 3.3.4
vue-demi: 0.14.5(vue@3.3.4)
dev: false
/@vueuse/metadata@8.9.4:
resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==}
dev: false
/@vueuse/shared@8.9.4(vue@3.3.4):
resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==}
peerDependencies:
'@vue/composition-api': ^1.1.0
vue: ^2.6.0 || ^3.2.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
vue:
optional: true
dependencies:
vue: 3.3.4
vue-demi: 0.14.5(vue@3.3.4)
dev: false
/acorn-walk@8.2.0: /acorn-walk@8.2.0:
resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
@@ -409,6 +476,7 @@ packages:
dependencies: dependencies:
normalize-path: 3.0.0 normalize-path: 3.0.0
picomatch: 2.3.1 picomatch: 2.3.1
dev: true
/assertion-error@1.1.0: /assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
@@ -417,12 +485,14 @@ packages:
/binary-extensions@2.2.0: /binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'} engines: {node: '>=8'}
dev: true
/braces@3.0.2: /braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
fill-range: 7.0.1 fill-range: 7.0.1
dev: true
/cac@6.7.14: /cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
@@ -459,6 +529,7 @@ packages:
readdirp: 3.6.0 readdirp: 3.6.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true
/csstype@3.1.2: /csstype@3.1.2:
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
@@ -515,6 +586,7 @@ packages:
'@esbuild/win32-arm64': 0.18.11 '@esbuild/win32-arm64': 0.18.11
'@esbuild/win32-ia32': 0.18.11 '@esbuild/win32-ia32': 0.18.11
'@esbuild/win32-x64': 0.18.11 '@esbuild/win32-x64': 0.18.11
dev: true
/estree-walker@2.0.2: /estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -524,12 +596,14 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
to-regex-range: 5.0.1 to-regex-range: 5.0.1
dev: true
/fsevents@2.3.2: /fsevents@2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/get-func-name@2.0.0: /get-func-name@2.0.0:
@@ -541,29 +615,35 @@ packages:
engines: {node: '>= 6'} engines: {node: '>= 6'}
dependencies: dependencies:
is-glob: 4.0.3 is-glob: 4.0.3
dev: true
/immutable@4.3.1: /immutable@4.3.1:
resolution: {integrity: sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==} resolution: {integrity: sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==}
dev: true
/is-binary-path@2.1.0: /is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
binary-extensions: 2.2.0 binary-extensions: 2.2.0
dev: true
/is-extglob@2.1.1: /is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true
/is-glob@4.0.3: /is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dependencies: dependencies:
is-extglob: 2.1.1 is-extglob: 2.1.1
dev: true
/is-number@7.0.0: /is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'} engines: {node: '>=0.12.0'}
dev: true
/jsonc-parser@3.2.0: /jsonc-parser@3.2.0:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
@@ -607,6 +687,7 @@ packages:
/normalize-path@3.0.0: /normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true
/p-limit@4.0.0: /p-limit@4.0.0:
resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
@@ -629,6 +710,7 @@ packages:
/picomatch@2.3.1: /picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
dev: true
/pkg-types@1.0.3: /pkg-types@1.0.3:
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
@@ -664,6 +746,7 @@ packages:
engines: {node: '>=8.10.0'} engines: {node: '>=8.10.0'}
dependencies: dependencies:
picomatch: 2.3.1 picomatch: 2.3.1
dev: true
/rollup@3.26.2: /rollup@3.26.2:
resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==}
@@ -671,6 +754,7 @@ packages:
hasBin: true hasBin: true
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true
/sass@1.64.0: /sass@1.64.0:
resolution: {integrity: sha512-m7YtAGmQta9uANIUJwXesAJMSncqH+3INc8kdVXs6eV6GUC8Qu2IYKQSN8PRLgiQfpca697G94klm2leYMxSHw==} resolution: {integrity: sha512-m7YtAGmQta9uANIUJwXesAJMSncqH+3INc8kdVXs6eV6GUC8Qu2IYKQSN8PRLgiQfpca697G94klm2leYMxSHw==}
@@ -680,6 +764,7 @@ packages:
chokidar: 3.5.3 chokidar: 3.5.3
immutable: 4.3.1 immutable: 4.3.1
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true
/siginfo@2.0.0: /siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
@@ -726,6 +811,7 @@ packages:
engines: {node: '>=8.0'} engines: {node: '>=8.0'}
dependencies: dependencies:
is-number: 7.0.0 is-number: 7.0.0
dev: true
/type-detect@4.0.8: /type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
@@ -799,6 +885,7 @@ packages:
sass: 1.64.0 sass: 1.64.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true
/vitest@0.33.0(sass@1.64.0): /vitest@0.33.0(sass@1.64.0):
resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==}
@@ -865,6 +952,30 @@ packages:
- terser - terser
dev: true dev: true
/vue-demi@0.14.5(vue@3.3.4):
resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
peerDependencies:
'@vue/composition-api': ^1.0.0-rc.1
vue: ^3.0.0-0 || ^2.6.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
dependencies:
vue: 3.3.4
dev: false
/vue-starport@0.3.0:
resolution: {integrity: sha512-CfwYVxJDFqj7zoDw0TAMdNdpefuTdUH3rtupsadSa1je5Z7S/XwUCdxN0vVjBEEvWh33HmqjdK0IRQMWDlV7VQ==}
dependencies:
'@vueuse/core': 8.9.4(vue@3.3.4)
vue: 3.3.4
transitivePeerDependencies:
- '@vue/composition-api'
dev: false
/vue@3.3.4: /vue@3.3.4:
resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
dependencies: dependencies:

View File

@@ -1,10 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
import FeatureSteps from '@/modules/feature/FeatureSteps.vue' import FeatureSteps from '@/modules/feature/FeatureSteps.vue'
import { StarportCarrier } from 'vue-starport'
</script> </script>
<template> <template>
<main id="main-app"> <main id="main-app">
<FeatureSteps /> <StarportCarrier>
<FeatureSteps />
</StarportCarrier>
</main> </main>
</template> </template>

View File

@@ -2,6 +2,7 @@
import { Feature } from '@/modules/feature/feature' import { Feature } from '@/modules/feature/feature'
import { FeatureStep } from '@/modules/feature/feature-steps' import { FeatureStep } from '@/modules/feature/feature-steps'
import { computed } from 'vue' import { computed } from 'vue'
import { Starport } from 'vue-starport'
const props = defineProps<{ const props = defineProps<{
step: FeatureStep step: FeatureStep
@@ -32,33 +33,20 @@ const isLive = computed(
<section class="doing"> <section class="doing">
<h5>📝</h5> <h5>📝</h5>
<ul v-if="hasFeaturesInProgress"> <ul v-if="hasFeaturesInProgress">
<li <li v-for="feature in featuresInProgress" :key="feature.name">
v-for="feature in featuresInProgress" <Starport :port="feature.name" style="height: 62px">
:key="feature.name" <div class="bin">
class="bin" <div>
> {{ feature.name }}
<div> </div>
{{ feature.name }} <div class="lead-time">{{ feature.leadTime }} days</div>
</div> </div>
<div class="lead-time">{{ feature.leadTime }} days</div> </Starport>
</li> </li>
</ul> </ul>
</section> </section>
<section class="done"> <section class="done">
<h5>📝</h5> <h5>📝</h5>
<ul v-if="hasFeaturesDone">
<li
v-for="feature in featuresDone"
:key="feature.name"
class="bin"
:class="{ 'green-bin': isLive }"
>
<div>
{{ feature.name }}
</div>
<div class="lead-time">{{ feature.leadTime }} days</div>
</li>
</ul>
<div <div
v-for="blueBucket in remainingBlueBuckets" v-for="blueBucket in remainingBlueBuckets"
:key="blueBucket" :key="blueBucket"
@@ -66,6 +54,18 @@ const isLive = computed(
> >
Blue bucket Blue bucket
</div> </div>
<ul class="done-list" v-if="hasFeaturesDone">
<li v-for="feature in featuresDone" :key="feature.name">
<Starport :port="feature.name" style="height: 62px">
<div class="bin">
<div>
{{ feature.name }}
</div>
<div class="lead-time">{{ feature.leadTime }} days</div>
</div>
</Starport>
</li>
</ul>
</section> </section>
</li> </li>
</template> </template>
@@ -85,6 +85,8 @@ const isLive = computed(
section { section {
margin: 1rem 0; margin: 1rem 0;
flex: 1; flex: 1;
display: flex;
flex-direction: column;
} }
h5 { h5 {
@@ -94,30 +96,6 @@ const isLive = computed(
text-align: center; text-align: center;
} }
.bin {
margin-top: 1rem;
border: 3px solid var(--background-color);
height: 62px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12pt;
padding: 0 0.5rem;
text-align: center;
}
.blue-bin {
background-color: var(--background-color);
color: white;
font-size: 18pt;
}
.green-bin {
background-color: var(--success-color);
border: 3px solid var(--success-color);
color: white;
}
li { li {
flex-direction: column; flex-direction: column;
} }
@@ -126,5 +104,10 @@ const isLive = computed(
font-family: 'Cutive Mono', monospace; font-family: 'Cutive Mono', monospace;
font-weight: bold; font-weight: bold;
} }
.done-list {
flex: 1;
overflow-y: auto;
}
} }
</style> </style>

View File

@@ -93,7 +93,7 @@ pre {
li { li {
flex: 1; flex: 1;
height: 100%; min-height: 100%;
margin: 0; margin: 0;
color: var(--background-color); color: var(--background-color);
display: flex; display: flex;

View File

@@ -21,7 +21,7 @@ export const featureSteps: FeatureStep[] = [
blueBuckets: 1 blueBuckets: 1
}, },
{ {
title: 'Product design', title: 'Product',
stepIndex: 3, stepIndex: 3,
blueBuckets: 2 blueBuckets: 2
}, },