dsh-theme-mineradio 2.3.4 → 2.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +91 -89
  2. package/README.zh.md +91 -89
  3. package/lib/client.js +56 -8
  4. package/lib/types/client/MineradioAppearanceRow.d.ts +72 -72
  5. package/lib/types/client/MineradioControls.d.ts +38 -38
  6. package/lib/types/client/MineradioPluginCard.d.ts +15 -15
  7. package/lib/types/client/audio-reactivity.d.ts +33 -33
  8. package/lib/types/client/cinema-drift.d.ts +20 -20
  9. package/lib/types/client/color-extract.d.ts +14 -14
  10. package/lib/types/client/critters.d.ts +21 -21
  11. package/lib/types/client/fluid-interactions.d.ts +19 -19
  12. package/lib/types/client/fluid-shader.d.ts +57 -57
  13. package/lib/types/client/fluid-tones.d.ts +30 -30
  14. package/lib/types/client/glass-dispersion.d.ts +29 -29
  15. package/lib/types/client/greetings.d.ts +24 -24
  16. package/lib/types/client/host-store.d.ts +24 -0
  17. package/lib/types/client/index.d.ts +21 -21
  18. package/lib/types/client/locales.d.ts +140 -140
  19. package/lib/types/client/mesh.d.ts +18 -18
  20. package/lib/types/client/seam-stamper.d.ts +21 -21
  21. package/lib/types/client/settings-store.d.ts +2 -2
  22. package/lib/types/client/specular-parallax.d.ts +5 -5
  23. package/lib/types/client/spot-core.d.ts +52 -52
  24. package/lib/types/client/spotlight.d.ts +11 -11
  25. package/lib/types/client/star-river.d.ts +43 -43
  26. package/lib/types/client/station-dial.d.ts +24 -24
  27. package/lib/types/client/theme-layer.d.ts +287 -287
  28. package/lib/types/client/wallpaper-store.d.ts +30 -30
  29. package/lib/types/client/whale.d.ts +25 -25
  30. package/lib/types/client/wordmark-badge.d.ts +25 -25
  31. package/lib/types/index.d.ts +9 -9
  32. package/lib/types/invariant.d.ts +15 -15
  33. package/package.json +13 -3
@@ -1,30 +1,30 @@
1
- /**
2
- * Large wallpaper storage: videos too big for localStorage (its ~5MB quota)
3
- * go into IndexedDB as raw blobs, while the setting keeps a tiny `idb:<id>`
4
- * marker. On boot the layer loads the blob, wraps it in an object URL and
5
- * hands it to the <video> element — no quota trouble, survives restarts.
6
- */
7
- declare global {
8
- interface Window {
9
- /** Chromium-only File System Access picker (absent elsewhere). */
10
- showOpenFilePicker?: (options?: {
11
- multiple?: boolean;
12
- types?: Array<{
13
- description?: string;
14
- accept: Record<string, string[]>;
15
- }>;
16
- }) => Promise<FileSystemFileHandle[]>;
17
- }
18
- }
19
- /** Store a blob and return its `idb:<id>` marker ('' on failure → caller
20
- * falls back to the data-URL path). */
21
- export declare function saveVideoBlob(blob: Blob): Promise<string>;
22
- /** Load a stored blob by id (null when absent). */
23
- export declare function loadVideoBlob(id: string): Promise<Blob | null>;
24
- /** Drop a stored blob (ignores failures). */
25
- export declare function deleteVideoBlob(id: string): Promise<void>;
26
- /** Persist a File System Access handle so the next visit can re-read the
27
- * ORIGINAL file without the user picking it again. */
28
- export declare function saveVideoHandle(handle: FileSystemFileHandle): Promise<boolean>;
29
- /** Load the remembered file handle (null when absent or storage fails). */
30
- export declare function loadVideoHandle(): Promise<FileSystemFileHandle | null>;
1
+ /**
2
+ * Large wallpaper storage: videos too big for localStorage (its ~5MB quota)
3
+ * go into IndexedDB as raw blobs, while the setting keeps a tiny `idb:<id>`
4
+ * marker. On boot the layer loads the blob, wraps it in an object URL and
5
+ * hands it to the <video> element — no quota trouble, survives restarts.
6
+ */
7
+ declare global {
8
+ interface Window {
9
+ /** Chromium-only File System Access picker (absent elsewhere). */
10
+ showOpenFilePicker?: (options?: {
11
+ multiple?: boolean;
12
+ types?: Array<{
13
+ description?: string;
14
+ accept: Record<string, string[]>;
15
+ }>;
16
+ }) => Promise<FileSystemFileHandle[]>;
17
+ }
18
+ }
19
+ /** Store a blob and return its `idb:<id>` marker ('' on failure → caller
20
+ * falls back to the data-URL path). */
21
+ export declare function saveVideoBlob(blob: Blob): Promise<string>;
22
+ /** Load a stored blob by id (null when absent). */
23
+ export declare function loadVideoBlob(id: string): Promise<Blob | null>;
24
+ /** Drop a stored blob (ignores failures). */
25
+ export declare function deleteVideoBlob(id: string): Promise<void>;
26
+ /** Persist a File System Access handle so the next visit can re-read the
27
+ * ORIGINAL file without the user picking it again. */
28
+ export declare function saveVideoHandle(handle: FileSystemFileHandle): Promise<boolean>;
29
+ /** Load the remembered file handle (null when absent or storage fails). */
30
+ export declare function loadVideoHandle(): Promise<FileSystemFileHandle | null>;
@@ -1,25 +1,25 @@
1
- /**
2
- * Particle whale: the deepseek.com/harness hero's centerpiece fish rendered
3
- * as particles — a faithful 2D port of the site's `HeroDigitileR3F` (chunk
4
- * 776) minus three.js. The 24×18 brand-fish SVG is sampled onto a 60×60
5
- * luminance grid, the particles scatter, then assemble into the silhouette
6
- * with the site's drift / tail-sway / light-shading / pointer-push math.
7
- * Additive canvas blending + `mix-blend-mode: screen` (as on the site).
8
- */
9
- /** Whale handle: scheme updates plus disposal. */
10
- export interface WhaleHandle {
11
- /** Flip the particle color between the dark (white) and light (gray) sets. */
12
- setDark: (dark: boolean) => void;
13
- /** Stop the engine and remove the DOM. */
14
- dispose: () => void;
15
- }
16
- /**
17
- * Mount the particle whale into `host` (the ambient scene) and start the
18
- * engine. The wrapper is centered on the MAIN column — the `[data-phase]`
19
- * conversation area, i.e. everything right of the sidebar — not the whole
20
- * viewport.
21
- * @param host - the container the whale wrapper is appended to.
22
- * @param dark - resolved scheme at mount (white particles on dark, gray on light).
23
- * @returns the handle.
24
- */
25
- export declare function mountWhale(host: HTMLElement, dark: boolean): WhaleHandle;
1
+ /**
2
+ * Particle whale: the deepseek.com/harness hero's centerpiece fish rendered
3
+ * as particles — a faithful 2D port of the site's `HeroDigitileR3F` (chunk
4
+ * 776) minus three.js. The 24×18 brand-fish SVG is sampled onto a 60×60
5
+ * luminance grid, the particles scatter, then assemble into the silhouette
6
+ * with the site's drift / tail-sway / light-shading / pointer-push math.
7
+ * Additive canvas blending + `mix-blend-mode: screen` (as on the site).
8
+ */
9
+ /** Whale handle: scheme updates plus disposal. */
10
+ export interface WhaleHandle {
11
+ /** Flip the particle color between the dark (white) and light (gray) sets. */
12
+ setDark: (dark: boolean) => void;
13
+ /** Stop the engine and remove the DOM. */
14
+ dispose: () => void;
15
+ }
16
+ /**
17
+ * Mount the particle whale into `host` (the ambient scene) and start the
18
+ * engine. The wrapper is centered on the MAIN column — the `[data-phase]`
19
+ * conversation area, i.e. everything right of the sidebar — not the whole
20
+ * viewport.
21
+ * @param host - the container the whale wrapper is appended to.
22
+ * @param dark - resolved scheme at mount (white particles on dark, gray on light).
23
+ * @returns the handle.
24
+ */
25
+ export declare function mountWhale(host: HTMLElement, dark: boolean): WhaleHandle;
@@ -1,25 +1,25 @@
1
- /**
2
- * Wordmark badge swap: in DARK mode the DSH wordmark's solid "HARNESS"
3
- * plate (`<rect x="129.348" .../>` + knocked-out letterforms) is replaced
4
- * at runtime with the official deepseek.com/harness nameplate — the glossy
5
- * "Harness" pill (gradient ring + soft glow + black/25 pill with white/95
6
- * mono text). In LIGHT mode the stock plate stays exactly as shipped. The
7
- * plate box inside the svg is measured and the pill is positioned over the
8
- * letterform slot, so it tracks the wordmark through sidebar expand /
9
- * collapse, width resizes, and late layout. Everything is removed on
10
- * dispose: off == the stock wordmark exactly.
11
- */
12
- /** Badge handle: scheme updates plus disposal. */
13
- export interface BadgeHandle {
14
- /** Dark mode wears the official pill; light mode keeps the stock plate. */
15
- setDark: (dark: boolean) => void;
16
- /** Stop observing and restore the stock wordmark. */
17
- dispose: () => void;
18
- }
19
- /**
20
- * Decorate every stamped wordmark button and keep it decorated as React
21
- * remounts nodes or the layout settles.
22
- * @param dark - resolved scheme at mount.
23
- * @returns the handle.
24
- */
25
- export declare function startWordmarkBadge(dark: boolean): BadgeHandle;
1
+ /**
2
+ * Wordmark badge swap: in DARK mode the DSH wordmark's solid "HARNESS"
3
+ * plate (`<rect x="129.348" .../>` + knocked-out letterforms) is replaced
4
+ * at runtime with the official deepseek.com/harness nameplate — the glossy
5
+ * "Harness" pill (gradient ring + soft glow + black/25 pill with white/95
6
+ * mono text). In LIGHT mode the stock plate stays exactly as shipped. The
7
+ * plate box inside the svg is measured and the pill is positioned over the
8
+ * letterform slot, so it tracks the wordmark through sidebar expand /
9
+ * collapse, width resizes, and late layout. Everything is removed on
10
+ * dispose: off == the stock wordmark exactly.
11
+ */
12
+ /** Badge handle: scheme updates plus disposal. */
13
+ export interface BadgeHandle {
14
+ /** Dark mode wears the official pill; light mode keeps the stock plate. */
15
+ setDark: (dark: boolean) => void;
16
+ /** Stop observing and restore the stock wordmark. */
17
+ dispose: () => void;
18
+ }
19
+ /**
20
+ * Decorate every stamped wordmark button and keep it decorated as React
21
+ * remounts nodes or the layout settles.
22
+ * @param dark - resolved scheme at mount.
23
+ * @returns the handle.
24
+ */
25
+ export declare function startWordmarkBadge(dark: boolean): BadgeHandle;
@@ -1,9 +1,9 @@
1
- /**
2
- * Mineradio theme-layer plugin, node half. Pure UI plugin: the empty apply
3
- * exists so the plugin appears in the host cordis.yml / Loader; the browser
4
- * half ships via exports["./client"], discovered through the package.json
5
- * dsh.client declaration. The enable flag is a browser-local preference
6
- * (localStorage) — a client-only visual layer owns no host configuration.
7
- */
8
- /** Host plugin body — no host-side behavior for this surface plugin. */
9
- export declare function apply(): void;
1
+ /**
2
+ * Mineradio theme-layer plugin, node half. Pure UI plugin: the empty apply
3
+ * exists so the plugin appears in the host cordis.yml / Loader; the browser
4
+ * half ships via exports["./client"], discovered through the package.json
5
+ * dsh.client declaration. The enable flag is a browser-local preference
6
+ * (localStorage) — a client-only visual layer owns no host configuration.
7
+ */
8
+ /** Host plugin body — no host-side behavior for this surface plugin. */
9
+ export declare function apply(): void;
@@ -1,15 +1,15 @@
1
- /**
2
- * Package-owned invariant companion for `dsh-theme-mineradio`.
3
- * @module dsh-theme-mineradio/invariant
4
- */
5
- import type { Context } from '@deepseek-ai/cordis';
6
- /** Cordis companion plugin name. */
7
- export declare const name = "client-ui-mineradio-invariant";
8
- /** Service required before the companion can reserve package ownership. */
9
- export declare const inject: string[];
10
- /**
11
- * Register this package's invariant companion.
12
- * @param ctx - Cordis context carrying the invariant service.
13
- * @returns the installed registration's disposer after setup succeeds.
14
- */
15
- export declare const apply: (ctx: Context) => Promise<() => void>;
1
+ /**
2
+ * Package-owned invariant companion for `dsh-theme-mineradio`.
3
+ * @module dsh-theme-mineradio/invariant
4
+ */
5
+ import type { Context } from '@deepseek-ai/cordis';
6
+ /** Cordis companion plugin name. */
7
+ export declare const name = "client-ui-mineradio-invariant";
8
+ /** Service required before the companion can reserve package ownership. */
9
+ export declare const inject: string[];
10
+ /**
11
+ * Register this package's invariant companion.
12
+ * @param ctx - Cordis context carrying the invariant service.
13
+ * @returns the installed registration's disposer after setup succeeds.
14
+ */
15
+ export declare const apply: (ctx: Context) => Promise<() => void>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-theme-mineradio",
3
3
  "description": "Mineradio: a cinematic private-visual-radio glass theme for the Web surface — champagne glow, fluid or wallpaper backdrop, unified corners, and motion",
4
- "version": "2.3.4",
4
+ "version": "2.3.6",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -35,6 +35,7 @@
35
35
  "client": {
36
36
  "inject": [
37
37
  "@deepseek-ai/dsh-client-runtime",
38
+ "@deepseek-ai/dsh-client-store",
38
39
  "@deepseek-ai/dsh-client-locale",
39
40
  "@deepseek-ai/dsh-client-ui-theme",
40
41
  "@deepseek-ai/dsh-client-ui-settings",
@@ -53,8 +54,9 @@
53
54
  "license": "MIT",
54
55
  "peerDependencies": {
55
56
  "@deepseek-ai/cordis": "^4.0.1",
56
- "@deepseek-ai/dsh-client-locale": "^0.1.1-rc.2",
57
+ "@deepseek-ai/dsh-client-locale": "^0.1.1-rc.2 || ^0.1.2-alpha.1",
57
58
  "@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
59
+ "@deepseek-ai/dsh-client-store": "^0.1.2-alpha.1",
58
60
  "@deepseek-ai/dsh-client-ui-primitives": "^0.1.1-rc.2",
59
61
  "@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.2",
60
62
  "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.1-rc.2",
@@ -63,6 +65,14 @@
63
65
  "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
64
66
  "react": "^18.2.0"
65
67
  },
68
+ "peerDependenciesMeta": {
69
+ "@deepseek-ai/dsh-client-runtime": {
70
+ "optional": true
71
+ },
72
+ "@deepseek-ai/dsh-client-store": {
73
+ "optional": true
74
+ }
75
+ },
66
76
  "devDependencies": {
67
77
  "@deepseek-ai/cordis": "4.0.2",
68
78
  "@deepseek-ai/dsh-client-locale": "0.1.1-rc.2",
@@ -75,7 +85,7 @@
75
85
  "@deepseek-ai/dsh-invariants": "0.1.1-rc.2",
76
86
  "@types/react": "~18.3.1",
77
87
  "@types/react-dom": "~18.3.1",
78
- "esbuild": "^0.25.0",
88
+ "esbuild": "^0.25.12",
79
89
  "react": "^18.2.0",
80
90
  "react-dom": "^18.2.0",
81
91
  "typescript": "^5.6.0"