refactor: trim PR debloat and fix transformers build

Extract shared helpers for home notices, timetable subtitles, and theme images; dedupe global search, Select, and build scripts while preserving behaviour.

Add @huggingface/transformers as a direct dependency and resolve ORT WASM paths via require.resolve so pnpm postinstall and Vite can bundle vector search.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-28 10:30:25 +09:30
parent dcb4dd2f5e
commit 4fda63dedd
76 changed files with 2003 additions and 4149 deletions
+24 -28
View File
@@ -315,40 +315,36 @@
<h2 class="text-sm font-bold">Maximum Subjects</h2>
<p class="text-xs">Number of subjects to include, ordered by soonest due date</p>
</div>
<div>
<Select
value={String($settingsState.homeUpcomingSubjectsMax ?? 5)}
onChange={(value: string) => (settingsState.homeUpcomingSubjectsMax = Number(value))}
options={[
{ value: "0", label: "All" },
{ value: "3", label: "3" },
{ value: "5", label: "5" },
{ value: "7", label: "7" },
{ value: "10", label: "10" },
{ value: "15", label: "15" },
]}
/>
</div>
<Select
value={String($settingsState.homeUpcomingSubjectsMax ?? 5)}
onChange={(value: string) => (settingsState.homeUpcomingSubjectsMax = Number(value))}
options={[
{ value: "0", label: "All" },
{ value: "3", label: "3" },
{ value: "5", label: "5" },
{ value: "7", label: "7" },
{ value: "10", label: "10" },
{ value: "15", label: "15" },
]}
/>
</div>
<div class="flex justify-between items-center px-4 py-3 pl-6 border-t border-zinc-100 dark:border-zinc-700/50">
<div class="pr-4">
<h2 class="text-sm font-bold">Maximum Assessments per Subject</h2>
<p class="text-xs">Assessments shown for each included subject</p>
</div>
<div>
<Select
value={String($settingsState.homeUpcomingAssessmentsPerSubjectMax ?? 0)}
onChange={(value: string) => (settingsState.homeUpcomingAssessmentsPerSubjectMax = Number(value))}
options={[
{ value: "0", label: "All" },
{ value: "1", label: "1" },
{ value: "2", label: "2" },
{ value: "3", label: "3" },
{ value: "5", label: "5" },
{ value: "10", label: "10" },
]}
/>
</div>
<Select
value={String($settingsState.homeUpcomingAssessmentsPerSubjectMax ?? 0)}
onChange={(value: string) => (settingsState.homeUpcomingAssessmentsPerSubjectMax = Number(value))}
options={[
{ value: "0", label: "All" },
{ value: "1", label: "1" },
{ value: "2", label: "2" },
{ value: "3", label: "3" },
{ value: "5", label: "5" },
{ value: "10", label: "10" },
]}
/>
</div>
</div>
</div>
+8 -17
View File
@@ -76,26 +76,17 @@
await themeManager.disableTheme();
if (themeID) {
const tempTheme = await themeManager.getTheme(themeID)
if (!tempTheme) return
// convert temptheme to LoadedCustomTheme
const loadedTheme = {
...tempTheme,
CustomImages: tempTheme.CustomImages.map(image => ({
...image
}))
}
const tempTheme = await themeManager.getTheme(themeID);
if (!tempTheme) return;
theme = {
...loadedTheme,
adaptiveCssVariables: loadedTheme.adaptiveCssVariables ?? [],
...tempTheme,
adaptiveCssVariables: tempTheme.adaptiveCssVariables ?? [],
forceTheme:
loadedTheme.forceTheme ??
(loadedTheme.forceDark !== undefined ? true : undefined),
}
themeLoaded = true
tempTheme.forceTheme ??
(tempTheme.forceDark !== undefined ? true : undefined),
};
themeLoaded = true;
} else {
themeLoaded = true
}