diff --git a/config/scouting/2026/index.ts b/config/scouting/2026/index.ts index e21ee52..4405dc7 100644 --- a/config/scouting/2026/index.ts +++ b/config/scouting/2026/index.ts @@ -743,7 +743,9 @@ export function formatParsedData(data, categories, teams) { find(entry, "ratings", categories, "26-17", "") + 1 ) ), - parseInt(find(entry, "ratings", categories, "26-22", 0)), + parseInt(find(entry, "ratings", categories, "26-22", 0)) >= 11 + ? "10+" + : parseInt(find(entry, "ratings", categories, "26-22", 0)), JSON.stringify( `${entry.contributor.username || "username"} (${ teams[entry.contributor.team] || 0 diff --git a/package-lock.json b/package-lock.json index eb882dc..7749ad8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -175,6 +175,97 @@ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + } } }, "@jridgewell/resolve-uri": { @@ -4702,36 +4793,6 @@ "strip-ansi": "^7.0.1" } }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4755,21 +4816,6 @@ "ansi-regex": "^6.0.1" } }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - } - } - }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -5157,67 +5203,6 @@ } } }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/static/css/scouting.css b/static/css/scouting.css index b08dd80..e252f44 100644 --- a/static/css/scouting.css +++ b/static/css/scouting.css @@ -2689,22 +2689,18 @@ div.component-score-counter div.tally { .component-counter { display: flex; - flex-direction: row; + flex-direction: column; align-items: center; - justify-content: space-between; margin: 0px 2% 0px 2%; - gap: 5px; - padding: 0.6rem; + gap: 0; + padding: 0.8rem; background: #ffffff; border-radius: var(--standard-border-radius); box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px; } .component-counter .counter-image { - display: flex; - justify-content: center; - align-items: center; - padding: 0 0.4rem; + display: none; } .component-counter .counter-image img { @@ -2714,7 +2710,7 @@ div.component-score-counter div.tally { } .component-counter .counter-counters { - flex: 1; + width: 100%; display: flex; flex-direction: column; justify-content: center; @@ -2722,278 +2718,164 @@ div.component-score-counter div.tally { .component-counter .counter-total { display: flex; - justify-content: flex-start; + justify-content: center; align-items: center; gap: 8px; - padding: 0 0 4px 0; - margin: 0; -} - -.component-counter .counter-total-label { - font-size: 0.9rem; - color: var(--contentColor); - user-select: none; + padding: 0 0 6px 0; margin: 0; } +.component-counter .counter-total-label, .component-counter .counter-tally { - font-size: 0.9rem; + font-size: 1rem; font-weight: 700; color: var(--contentColor); user-select: none; + margin: 0; } .component-counter .counter-row { display: flex; + flex-direction: column; align-items: center; - gap: 10px; - padding: 2px 0; + gap: 0; + padding: 8px 0; + width: 100%; +} + +.component-counter .counter-row + .counter-row { + border-top: 1px solid rgba(0, 0, 0, 0.08); } .component-counter .counter-label { font-size: 0.9rem; + font-weight: 600; user-select: none; color: var(--contentColor); margin: 0; + padding-bottom: 8px; } .component-counter .counter-controls { - display: flex; - align-items: center; - justify-content: center; - gap: 5px; + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 6px; + width: 100%; + align-items: stretch; } .component-counter .counter-controls > div { - padding: 0.6rem; + padding: 0; display: grid; place-items: center; cursor: pointer; touch-action: manipulation; + -webkit-tap-highlight-color: transparent; + border-radius: 5px; + transition: background-color 0.15s ease, color 0.15s ease; + user-select: none; } -.component-counter .counter-controls > .counter-bulk[data-amount="-10"] { - order: 1; +.component-counter .counter-controls > .counter-plus { + grid-row: 2; + grid-column: 1 / 4; + min-height: 56px; + background-color: var(--primaryBackgroundColor); + border: 2px solid var(--primaryBackgroundColor); } -.component-counter .counter-controls > .counter-bulk[data-amount="-5"] { - order: 2; + +.component-counter .counter-controls > .counter-plus:active { + background-color: var(--primaryDarkerBackgroundColor); + border-color: var(--primaryDarkerBackgroundColor); } -.component-counter .counter-controls > .counter-minus { - order: 3; + +.component-counter .counter-controls > .counter-plus svg { + width: 26px; + height: 26px; + fill: var(--primaryContentColor); } -.component-counter .counter-count { - order: 4; + +.component-counter .counter-controls > .counter-bulk[data-amount="10"] { + grid-row: 2; + grid-column: 4; + min-height: 56px; + background-color: var(--primaryBackgroundColor); + border: 2px solid var(--primaryBackgroundColor); + font-size: 1.1rem; + font-weight: 700; + color: var(--primaryContentColor); } -.component-counter .counter-controls > .counter-plus { - order: 5; + +.component-counter .counter-controls > .counter-bulk[data-amount="10"]:active { + background-color: var(--primaryDarkerBackgroundColor); + border-color: var(--primaryDarkerBackgroundColor); +} + +.component-counter .counter-controls > .counter-bulk[data-amount="5"], +.component-counter .counter-controls > .counter-minus, +.component-counter .counter-controls > .counter-bulk[data-amount="-5"], +.component-counter .counter-controls > .counter-bulk[data-amount="-10"] { + grid-row: 3; + min-height: 42px; + background-color: transparent; + border: 2px solid var(--primaryBackgroundColor); + color: var(--primaryBackgroundColor); + font-weight: 700; + font-size: 0.9rem; } + +.component-counter .counter-controls > .counter-bulk[data-amount="5"]:active, +.component-counter .counter-controls > .counter-minus:active, +.component-counter .counter-controls > .counter-bulk[data-amount="-5"]:active, +.component-counter .counter-controls > .counter-bulk[data-amount="-10"]:active { + background-color: var(--primaryBackgroundColor); + color: var(--primaryContentColor); +} + .component-counter .counter-controls > .counter-bulk[data-amount="5"] { - order: 6; + grid-column: 1; } -.component-counter .counter-controls > .counter-bulk[data-amount="10"] { - order: 7; +.component-counter .counter-controls > .counter-minus { + grid-column: 2; +} +.component-counter .counter-controls > .counter-bulk[data-amount="-5"] { + grid-column: 3; +} +.component-counter .counter-controls > .counter-bulk[data-amount="-10"] { + grid-column: 4; } -.component-counter .counter-controls > div svg { - width: 15px; - height: 15px; +.component-counter .counter-controls > .counter-minus svg { + width: 16px; + height: 16px; + fill: var(--primaryBackgroundColor); } -.component-counter .counter-controls > div.counter-bulk { - font-size: 0.85rem; - font-weight: 700; - color: var(--contentColor); - user-select: none; +.component-counter .counter-controls > .counter-minus:active svg { + fill: var(--primaryContentColor); } .component-counter .counter-count { - font-size: 0.9rem; - font-weight: 700; - min-width: 20px; + grid-row: 1; + grid-column: 1 / -1; + font-size: 1.6rem; + font-weight: 800; + min-width: auto; text-align: center; + padding: 0 0 2px 0; user-select: none; color: var(--primaryBackgroundColor); } .component-counter .counter-mobile-label { - display: none; - font-size: 0.9rem; + display: block; + font-size: 1rem; font-weight: 700; color: var(--contentColor); user-select: none; margin: 0; padding: 0 0 4px 0; -} - -@media (max-width: 500px) { - .component-counter { - flex-direction: column; - padding: 0.8rem; - gap: 0; - } - - .component-counter .counter-image { - display: none; - } - - .component-counter .counter-mobile-label { - display: block; - font-size: 1rem; - text-align: center; - } - - .component-counter .counter-total { - justify-content: center; - padding-bottom: 6px; - } - - .component-counter .counter-total-label, - .component-counter .counter-tally { - font-size: 1rem; - } - - .component-counter .counter-counters { - width: 100%; - } - - .component-counter .counter-row { - flex-direction: column; - align-items: center; - gap: 0; - padding: 8px 0; - width: 100%; - } - - .component-counter .counter-row + .counter-row { - border-top: 1px solid rgba(0, 0, 0, 0.08); - } - - .component-counter .counter-label { - font-size: 0.9rem; - font-weight: 600; - padding-bottom: 8px; - } - - .component-counter .counter-controls { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 6px; - width: 100%; - align-items: stretch; - } - - .component-counter .counter-controls > div { - order: unset; - padding: 0; - display: grid; - place-items: center; - cursor: pointer; - touch-action: manipulation; - -webkit-tap-highlight-color: transparent; - border-radius: 5px; - transition: background-color 0.15s ease, color 0.15s ease; - user-select: none; - } - - .component-counter .counter-controls > .counter-plus { - grid-row: 2; - grid-column: 1 / 4; - min-height: 56px; - background-color: var(--primaryBackgroundColor); - border: 2px solid var(--primaryBackgroundColor); - } - - .component-counter .counter-controls > .counter-plus:active { - background-color: var(--primaryDarkerBackgroundColor); - border-color: var(--primaryDarkerBackgroundColor); - } - - .component-counter .counter-controls > .counter-plus svg { - width: 26px; - height: 26px; - fill: var(--primaryContentColor); - } - - .component-counter .counter-controls > .counter-bulk[data-amount="10"] { - grid-row: 2; - grid-column: 4; - min-height: 56px; - background-color: var(--primaryBackgroundColor); - border: 2px solid var(--primaryBackgroundColor); - font-size: 1.1rem; - font-weight: 700; - color: var(--primaryContentColor); - } - - .component-counter - .counter-controls - > .counter-bulk[data-amount="10"]:active { - background-color: var(--primaryDarkerBackgroundColor); - border-color: var(--primaryDarkerBackgroundColor); - } - - .component-counter .counter-controls > .counter-bulk[data-amount="5"], - .component-counter .counter-controls > .counter-minus, - .component-counter .counter-controls > .counter-bulk[data-amount="-5"], - .component-counter .counter-controls > .counter-bulk[data-amount="-10"] { - grid-row: 3; - min-height: 42px; - background-color: transparent; - border: 2px solid var(--primaryBackgroundColor); - color: var(--primaryBackgroundColor); - font-weight: 700; - font-size: 0.9rem; - } - - .component-counter - .counter-controls - > .counter-bulk[data-amount="5"]:active, - .component-counter .counter-controls > .counter-minus:active, - .component-counter - .counter-controls - > .counter-bulk[data-amount="-5"]:active, - .component-counter - .counter-controls - > .counter-bulk[data-amount="-10"]:active { - background-color: var(--primaryBackgroundColor); - color: var(--primaryContentColor); - } - - .component-counter .counter-controls > .counter-bulk[data-amount="5"] { - grid-column: 1; - } - .component-counter .counter-controls > .counter-minus { - grid-column: 2; - } - .component-counter .counter-controls > .counter-bulk[data-amount="-5"] { - grid-column: 3; - } - .component-counter .counter-controls > .counter-bulk[data-amount="-10"] { - grid-column: 4; - } - - .component-counter .counter-controls > .counter-minus svg { - width: 16px; - height: 16px; - fill: var(--primaryBackgroundColor); - } - - .component-counter .counter-controls > .counter-minus:active svg { - fill: var(--primaryContentColor); - } - - .component-counter .counter-count { - grid-row: 1; - grid-column: 1 / -1; - font-size: 1.6rem; - font-weight: 800; - min-width: auto; - padding: 0 0 2px 0; - color: var(--primaryBackgroundColor); - background: none !important; - border: none !important; - order: unset; - } + text-align: center; } /* MAIN APP */