Download packages/client/ui-theme/src/boot-theme.ts from SaylorTwift/deepseek-harness: direct link, hf CLI and curl.
- Browser
- Download file 2.38 kB
-
https://huggingface.co/SaylorTwift/deepseek-harness/resolve/main/packages/client/ui-theme/src/boot-theme.ts
- Command line
-
hf download hf://SaylorTwift/deepseek-harness/packages/client/ui-theme/src/boot-theme.ts
-
curl -L -o boot-theme.ts https://huggingface.co/SaylorTwift/deepseek-harness/resolve/main/packages/client/ui-theme/src/boot-theme.ts
2.38 kB
| /** | |
| * Theme bootstrap row for the browser's pre-plugin interval. Each index | |
| * render embeds the current durable built-in preference and content font size. | |
| * Head CSS colors the document canvas before script execution; the body script | |
| * installs the palette selector and font size that the client presenters adopt. | |
| */ | |
| import type { IndexInjection } from '@deepseek-ai/dsh-host-webserver' | |
| import { DEFAULT_FONT_SIZE, DEFAULT_PREFERENCE, type ThemePreference } from './theme-settings.ts' | |
| const LIGHT_BACKGROUND = '#fff' | |
| const DARK_BACKGROUND = '#151517' | |
| /** CSS that colors the document canvas before any script executes. */ | |
| function bootThemeStyle(preference: ThemePreference): string { | |
| const light = `:root{color-scheme:light}body{background-color:${LIGHT_BACKGROUND};--dsh-boot-bg:${LIGHT_BACKGROUND}}` | |
| const dark = `:root{color-scheme:dark}body{background-color:${DARK_BACKGROUND};--dsh-boot-bg:${DARK_BACKGROUND}}` | |
| if (preference === 'light') return light | |
| if (preference === 'dark') return dark | |
| return `${light}@media(prefers-color-scheme:dark){${dark}}` | |
| } | |
| /** Build the body script that installs the palette selector and content size. */ | |
| function bootThemeBodyScript(preference: ThemePreference, fontSize: number): string { | |
| return `(() => { | |
| const preference = ${JSON.stringify(preference)} | |
| const systemDark = preference === 'system' | |
| && typeof matchMedia !== 'undefined' | |
| && matchMedia('(prefers-color-scheme: dark)').matches | |
| const dark = preference === 'dark' || systemDark | |
| document.body.toggleAttribute('data-ds-dark-theme', dark) | |
| document.body.style.setProperty('--dsh-content-font-size', ${JSON.stringify(`${fontSize}px`)}) | |
| })()` | |
| } | |
| /** | |
| * Theme bootstrap rows: head CSS colors the document canvas before | |
| * first paint, then the body script installs the palette selector and font | |
| * size before the shell mount and module script. | |
| * @param preference - Current Host-backed built-in preference. | |
| * @param fontSize - Current Host-backed content font size in px. | |
| * @returns head and body script rows in execution order. | |
| */ | |
| export function bootThemeInjections( | |
| preference: ThemePreference = DEFAULT_PREFERENCE, | |
| fontSize: number = DEFAULT_FONT_SIZE, | |
| ): IndexInjection[] { | |
| return [ | |
| { kind: 'style', text: bootThemeStyle(preference) }, | |
| { kind: 'script', placement: 'body', text: bootThemeBodyScript(preference, fontSize) }, | |
| ] | |
| } | |