From 37ae32be595965d577874fe91579cec2ba2c7afb Mon Sep 17 00:00:00 2001 From: StroepWafel Date: Mon, 22 Jun 2026 21:47:03 +0930 Subject: [PATCH] fix(assessments): show letter grades not undefined% cannot triple confirm that this works for all schools but it works for my assessments that are letter-based --- src/css/injected.scss | 17 +- src/interface/components/Select.svelte | 20 +-- src/interface/utils/syncPageTheme.ts | 2 + .../AssessmentsOverview.svelte | 60 +++---- .../built-in/assessmentsOverview/utils.ts | 75 ++++++++ .../built-in/gradeAnalytics/styles.css | 4 +- .../built-in/messageFolders/styles.css | 4 +- .../built-in/notificationCollector/archive.ts | 152 ++++++++++++++++ .../notificationCollector/archiveUI.ts | 165 ++++++++++++++++++ .../built-in/notificationCollector/index.ts | 132 +++++++++----- .../built-in/notificationCollector/styles.css | 87 +++++++++ src/plugins/syncablePluginDefaults.ts | 2 +- 12 files changed, 619 insertions(+), 101 deletions(-) create mode 100644 src/plugins/built-in/notificationCollector/archive.ts create mode 100644 src/plugins/built-in/notificationCollector/archiveUI.ts create mode 100644 src/plugins/built-in/notificationCollector/styles.css diff --git a/src/css/injected.scss b/src/css/injected.scss index b863e781..30204cc5 100644 --- a/src/css/injected.scss +++ b/src/css/injected.scss @@ -64,8 +64,8 @@ body { select { border-radius: 16px !important; - border: 1px solid color-mix(in srgb, var(--theme-offset-bg, var(--background-secondary)) 78%, transparent) !important; - background: color-mix(in srgb, var(--background-primary) 90%, transparent) !important; + border: 1px solid var(--theme-offset-bg, var(--theme-secondary, var(--background-secondary))) !important; + background: var(--theme-primary, var(--background-primary)) !important; color: var(--text-primary) !important; padding: 0.5rem 1rem !important; min-height: 2.5rem !important; @@ -78,14 +78,14 @@ select { } select:hover { - background: color-mix(in srgb, var(--background-primary) 94%, var(--background-secondary) 6%) !important; - border-color: color-mix(in srgb, var(--theme-offset-bg, var(--background-secondary)) 92%, transparent) !important; + background: var(--theme-secondary, var(--background-secondary)) !important; + border-color: var(--theme-offset-bg, var(--theme-secondary, var(--background-secondary))) !important; } select:focus { outline: none !important; - background: color-mix(in srgb, var(--background-primary) 96%, var(--background-secondary) 4%) !important; - border-color: color-mix(in srgb, var(--text-primary) 18%, var(--theme-offset-bg, var(--background-secondary)) 82%) !important; + background: var(--theme-secondary, var(--background-secondary)) !important; + border-color: color-mix(in srgb, var(--text-primary) 18%, var(--theme-offset-bg, var(--theme-secondary, var(--background-secondary))) 82%) !important; box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-primary) 12%, transparent) !important; } @@ -116,6 +116,11 @@ select option { color: #18181b !important; } +.dark select option { + background-color: #1a1a1a !important; + color: #ffffff !important; +} + .dark select:not([multiple]):not([size]), .dark select[size="1"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23c9c9c9'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 0 1 1.06.02L10 11.168l3.71-3.938a.75.75 0 1 1 1.08 1.04l-4.25 4.5a.75.75 0 0 1-1.08 0l-4.25-4.5a.75.75 0 0 1 .02-1.06Z' clip-rule='evenodd'/%3E%3C/svg%3E") !important; diff --git a/src/interface/components/Select.svelte b/src/interface/components/Select.svelte index b0ffe8c1..93b88fc6 100644 --- a/src/interface/components/Select.svelte +++ b/src/interface/components/Select.svelte @@ -85,9 +85,9 @@ justify-content: space-between; gap: 0.75rem; width: 100%; - border: 1px solid color-mix(in srgb, var(--theme-offset-bg, var(--background-secondary)) 72%, transparent); + border: 1px solid var(--theme-offset-bg, var(--theme-secondary, #e5e7eb)); border-radius: 18px; - background: color-mix(in srgb, var(--background-primary) 88%, transparent); + background: var(--theme-primary, #ffffff); color: var(--text-primary); padding: 0.625rem 1rem; font-size: 0.875rem; @@ -102,14 +102,14 @@ } .select-trigger:hover { - background: color-mix(in srgb, var(--background-primary) 94%, var(--background-secondary) 6%); - border-color: color-mix(in srgb, var(--theme-offset-bg, var(--background-secondary)) 88%, transparent); + background: var(--theme-secondary, #e5e7eb); + border-color: var(--theme-offset-bg, var(--theme-secondary, #d4d4d8)); } .select-trigger:focus-visible { outline: none; - background: color-mix(in srgb, var(--background-primary) 96%, var(--background-secondary) 4%); - border-color: color-mix(in srgb, var(--text-primary) 22%, var(--theme-offset-bg, var(--background-secondary)) 78%); + background: var(--theme-secondary, #e5e7eb); + border-color: color-mix(in srgb, var(--text-primary) 22%, var(--theme-secondary, #e5e7eb) 78%); box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-primary) 12%, transparent); } @@ -133,9 +133,9 @@ margin: 0; padding: 0.35rem; list-style: none; - border: 1px solid color-mix(in srgb, var(--theme-offset-bg, var(--background-secondary)) 72%, transparent); + border: 1px solid var(--theme-offset-bg, var(--theme-secondary, #e5e7eb)); border-radius: 14px; - background: var(--background-primary); + background: var(--theme-primary, #ffffff); box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.25), 0 8px 10px -6px rgb(0 0 0 / 0.2); @@ -161,10 +161,10 @@ .select-option:hover, .select-option:focus-visible { outline: none; - background: color-mix(in srgb, var(--background-secondary) 55%, transparent); + background: var(--theme-secondary, #e5e7eb); } .select-option.is-selected { - background: color-mix(in srgb, var(--background-secondary) 70%, transparent); + background: var(--theme-secondary, #e5e7eb); } diff --git a/src/interface/utils/syncPageTheme.ts b/src/interface/utils/syncPageTheme.ts index 7e45a197..77612741 100644 --- a/src/interface/utils/syncPageTheme.ts +++ b/src/interface/utils/syncPageTheme.ts @@ -7,6 +7,8 @@ const THEME_CSS_VARS = [ "--text-color", "--background-primary", "--background-secondary", + "--theme-primary", + "--theme-secondary", "--text-primary", "--theme-offset-bg", "--better-sub", diff --git a/src/plugins/built-in/assessmentsOverview/AssessmentsOverview.svelte b/src/plugins/built-in/assessmentsOverview/AssessmentsOverview.svelte index 354c1c20..a12c6043 100644 --- a/src/plugins/built-in/assessmentsOverview/AssessmentsOverview.svelte +++ b/src/plugins/built-in/assessmentsOverview/AssessmentsOverview.svelte @@ -1,5 +1,11 @@