dsh-client-ui-seaglass 1.6.0
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.
- package/LICENSE +661 -0
- package/README.en.md +38 -0
- package/README.md +39 -0
- package/cordis.patch.yml +9 -0
- package/lib/client.js +5014 -0
- package/lib/index.js +27 -0
- package/lib/invariant.js +21 -0
- package/lib/types/aqua-settings-constants.d.ts +5 -0
- package/lib/types/aqua-settings.d.ts +12 -0
- package/lib/types/client/AquaPluginCard.d.ts +16 -0
- package/lib/types/client/AquaRow.d.ts +16 -0
- package/lib/types/client/critters.d.ts +18 -0
- package/lib/types/client/fluid-interactions.d.ts +20 -0
- package/lib/types/client/fluid-shader.d.ts +53 -0
- package/lib/types/client/greetings.d.ts +25 -0
- package/lib/types/client/index.d.ts +22 -0
- package/lib/types/client/locales.d.ts +25 -0
- package/lib/types/client/settings-store.d.ts +24 -0
- package/lib/types/client/theme-layer.d.ts +68 -0
- package/lib/types/index.d.ts +11 -0
- package/lib/types/invariant.d.ts +16 -0
- package/package.json +96 -0
package/lib/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import z from "@deepseek-ai/schemastery";
|
|
2
|
+
|
|
3
|
+
//#region src/aqua-settings-constants.ts
|
|
4
|
+
/** Settings namespace shared by the Host registration and browser card. */
|
|
5
|
+
const AQUA_SETTINGS_NAMESPACE = "ui-aqua";
|
|
6
|
+
/** Field carrying the durable layer enable flag. */
|
|
7
|
+
const AQUA_ENABLED_FIELD = "enabled";
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/aqua-settings.ts
|
|
11
|
+
/** Aqua theme-layer preference stored in the Host user-settings document. */
|
|
12
|
+
/** Default state when the user-settings document has no override: on. */
|
|
13
|
+
const DEFAULT_ENABLED = true;
|
|
14
|
+
/** Durable schema shared by the Host registration and browser settings scope. */
|
|
15
|
+
const AquaSettingsSchema = z.object({ [AQUA_ENABLED_FIELD]: z.boolean().default(true) });
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/index.ts
|
|
19
|
+
/** Register the Aqua settings namespace when the Host settings service exists. */
|
|
20
|
+
function apply(ctx) {
|
|
21
|
+
ctx.inject(["settings"], (settingsCtx) => {
|
|
22
|
+
settingsCtx.settings.register(AQUA_SETTINGS_NAMESPACE, AquaSettingsSchema);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { AQUA_ENABLED_FIELD, AQUA_SETTINGS_NAMESPACE, AquaSettingsSchema, DEFAULT_ENABLED, apply };
|
package/lib/invariant.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/invariant.ts
|
|
2
|
+
const PACKAGE_NAME = "dsh-client-ui-seaglass";
|
|
3
|
+
/** Cordis companion plugin name. */
|
|
4
|
+
const name = "client-ui-seaglass-invariant";
|
|
5
|
+
/** Service required before the companion can reserve package ownership. */
|
|
6
|
+
const inject = ["invariants"];
|
|
7
|
+
/**
|
|
8
|
+
* No runtime invariant: the theme layer holds no cross-plugin mutable state —
|
|
9
|
+
* token overrides, the DOM attribute, the ambient layer, and the greeting
|
|
10
|
+
* observer are all owned effects disposed with the plugin fiber.
|
|
11
|
+
*/
|
|
12
|
+
const install = () => {};
|
|
13
|
+
/**
|
|
14
|
+
* Register this package's invariant companion.
|
|
15
|
+
* @param ctx - Cordis context carrying the invariant service.
|
|
16
|
+
* @returns the installed registration's disposer after setup succeeds.
|
|
17
|
+
*/
|
|
18
|
+
const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { apply, inject, name };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Settings namespace shared by the Host registration and browser card. */
|
|
2
|
+
export declare const AQUA_SETTINGS_NAMESPACE = "ui-aqua";
|
|
3
|
+
/** Field carrying the durable layer enable flag. */
|
|
4
|
+
export declare const AQUA_ENABLED_FIELD = "enabled";
|
|
5
|
+
//# sourceMappingURL=aqua-settings-constants.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Aqua theme-layer preference stored in the Host user-settings document. */
|
|
2
|
+
import z from '@deepseek-ai/schemastery';
|
|
3
|
+
export { AQUA_ENABLED_FIELD, AQUA_SETTINGS_NAMESPACE } from './aqua-settings-constants.ts';
|
|
4
|
+
/** Durable Aqua section shared by the Host schema and the browser scope. */
|
|
5
|
+
export interface AquaSettings {
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
}
|
|
8
|
+
/** Default state when the user-settings document has no override: on. */
|
|
9
|
+
export declare const DEFAULT_ENABLED = true;
|
|
10
|
+
/** Durable schema shared by the Host registration and browser settings scope. */
|
|
11
|
+
export declare const AquaSettingsSchema: z<AquaSettings>;
|
|
12
|
+
//# sourceMappingURL=aqua-settings.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { InjectFace, PropsLocale, PropsRuntime, PropsStore } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
+
import type { createAquaRowStore } from './settings-store.ts';
|
|
3
|
+
/** Injected business face: the enable write (t rides the standard locale seat). */
|
|
4
|
+
export interface AquaPluginCardInjected {
|
|
5
|
+
/** Switch the deep-sea layer on or off. */
|
|
6
|
+
setEnabled: (enabled: boolean) => void;
|
|
7
|
+
}
|
|
8
|
+
/** Full component props: runtime share + store share + locale seat + injected face. */
|
|
9
|
+
export type AquaPluginCardComponentProps = PropsRuntime<'settings.plugin.item'> & PropsStore<ReturnType<typeof createAquaRowStore>> & PropsLocale<'settings.aqua'> & InjectFace<AquaPluginCardInjected>;
|
|
10
|
+
/**
|
|
11
|
+
* Render the Aqua plugin card.
|
|
12
|
+
* @param props - composed slot props.
|
|
13
|
+
* @returns the card list item.
|
|
14
|
+
*/
|
|
15
|
+
export declare function AquaPluginCard({ t, setEnabled, useStore }: AquaPluginCardComponentProps): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=AquaPluginCard.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PropsLocale, PropsRuntime, PropsStore } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
+
import type { createAquaRowStore } from './settings-store.ts';
|
|
3
|
+
/** Injected business face: the enable write (t rides the standard locale seat). */
|
|
4
|
+
export interface AquaRowInjected {
|
|
5
|
+
/** Switch the deep-sea layer on or off. */
|
|
6
|
+
setEnabled: (enabled: boolean) => void;
|
|
7
|
+
}
|
|
8
|
+
/** Full component props: runtime share + store share + locale seat + injected face. */
|
|
9
|
+
export type AquaRowComponentProps = PropsRuntime<'settings.general.item'> & PropsStore<ReturnType<typeof createAquaRowStore>> & PropsLocale<'settings.aqua'> & AquaRowInjected;
|
|
10
|
+
/**
|
|
11
|
+
* Render the Aqua row.
|
|
12
|
+
* @param props - composed slot props.
|
|
13
|
+
* @returns the row element tree.
|
|
14
|
+
*/
|
|
15
|
+
export declare function AquaRow({ t, setEnabled, useStore }: AquaRowComponentProps): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=AquaRow.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ambient marine-life scene: the markup the layer injects behind the app
|
|
3
|
+
* frame — brand-fish silhouettes drifting, a shrimp or two crawling the
|
|
4
|
+
* bottom, rising bubbles, twinkling plankton. Positions, sizes, and
|
|
5
|
+
* per-critter timing ride inline styles; the motion itself lives in
|
|
6
|
+
* aqua.module.css (and silences under prefers-reduced-motion).
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The complete ambient scene markup: one fixed, click-transparent container
|
|
10
|
+
* the layer prepends to <body> while enabled and removes on disable. The
|
|
11
|
+
* deepseek.com fluid shader canvas forms the board; marine life rides over it.
|
|
12
|
+
*/
|
|
13
|
+
export declare const AMBIENT_SCENE: string;
|
|
14
|
+
/** Build the ambient container element (or reuse an existing one). */
|
|
15
|
+
export declare function ensureAmbientScene(): HTMLElement;
|
|
16
|
+
/** Remove the ambient container wherever it lives. */
|
|
17
|
+
export declare function removeAmbientScene(): void;
|
|
18
|
+
//# sourceMappingURL=critters.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluid interaction feeds: buttons ripple on hover/click with a damped
|
|
3
|
+
* stir (the shader settles the wake softly). Scroll wakes were removed by
|
|
4
|
+
* request — feedback stays action-driven and gentle. Coordinates are
|
|
5
|
+
* normalized per the single full-screen canvas so the ripple lands where
|
|
6
|
+
* the action happened. Site policy (no passive mouse trail) is preserved.
|
|
7
|
+
*/
|
|
8
|
+
import type { FluidShaderHandle } from './fluid-shader.ts';
|
|
9
|
+
/** The one live fluid surface. */
|
|
10
|
+
export interface FluidTargets {
|
|
11
|
+
main: FluidShaderHandle;
|
|
12
|
+
mainCanvas: HTMLCanvasElement;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Attach the button ripple listeners.
|
|
16
|
+
* @param targets - the fluid handle and its canvas.
|
|
17
|
+
* @returns disposer removing every listener.
|
|
18
|
+
*/
|
|
19
|
+
export declare function attachFluidInteractions(targets: FluidTargets): () => void;
|
|
20
|
+
//# sourceMappingURL=fluid-interactions.d.ts.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Faithful port of the deepseek.com join-section fluid shader
|
|
3
|
+
* (`ds-join-shader-bg`): a WebGL2 two-pass fluid simulation — a quarter-res
|
|
4
|
+
* flow field (decay + pointer brush with velocity, ping-ponged between two
|
|
5
|
+
* framebuffers) sampled by a full-res domain-warped noise renderer with
|
|
6
|
+
* swirl iterations and a three-color soft blend. Shader sources are verbatim
|
|
7
|
+
* from the site bundle; uniform wiring, the 30fps throttle, the 1.5x pixel
|
|
8
|
+
* ratio cap, and the pointer-listener policy (touch and Windows skip the
|
|
9
|
+
* mouse feed) are replicated exactly. Reduced-motion renders one static
|
|
10
|
+
* frame instead of the loop.
|
|
11
|
+
*/
|
|
12
|
+
/** Site-default parameters (the join-section look). */
|
|
13
|
+
export interface FluidParams {
|
|
14
|
+
mouseRadius: number;
|
|
15
|
+
mouseStrength: number;
|
|
16
|
+
decay: number;
|
|
17
|
+
distortBoost: number;
|
|
18
|
+
noiseBoost: number;
|
|
19
|
+
swirlBoost: number;
|
|
20
|
+
speed: number;
|
|
21
|
+
distortion: number;
|
|
22
|
+
swirl: number;
|
|
23
|
+
swirlIterations: number;
|
|
24
|
+
scale: number;
|
|
25
|
+
rotation: number;
|
|
26
|
+
proportion: number;
|
|
27
|
+
softness: number;
|
|
28
|
+
shapeScale: number;
|
|
29
|
+
offsetX: number;
|
|
30
|
+
offsetY: number;
|
|
31
|
+
color1: string;
|
|
32
|
+
color2: string;
|
|
33
|
+
color3: string;
|
|
34
|
+
}
|
|
35
|
+
/** The exact default parameter set shipped by the site. */
|
|
36
|
+
export declare const SITE_FLUID_PARAMS: FluidParams;
|
|
37
|
+
/** Handle returned by {@link attachFluidShader}. */
|
|
38
|
+
export interface FluidShaderHandle {
|
|
39
|
+
/** Update simulation parameters (e.g. a palette switch) without re-mounting. */
|
|
40
|
+
setParams: (params: FluidParams) => void;
|
|
41
|
+
/** Stir the fluid at normalized coordinates with a velocity burst (wakes). */
|
|
42
|
+
stir: (x: number, y: number, vx: number, vy: number) => void;
|
|
43
|
+
/** Stop the loop and release listeners. */
|
|
44
|
+
dispose: () => void;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Mount the fluid simulation on a canvas and run it until disposed.
|
|
48
|
+
* @param canvas - full-size canvas element (CSS-sized by the ambient layer).
|
|
49
|
+
* @param params - simulation parameters (site defaults are the natural input).
|
|
50
|
+
* @returns the live handle.
|
|
51
|
+
*/
|
|
52
|
+
export declare function attachFluidShader(canvas: HTMLCanvasElement, params: FluidParams): FluidShaderHandle;
|
|
53
|
+
//# sourceMappingURL=fluid-shader.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hero greeting pool: time-of-day buckets, random pick per new-session
|
|
3
|
+
* mount, no immediate repeat. Disabling the Aqua layer resets the hero back
|
|
4
|
+
* to the stock greeting for the active locale.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Pick the greeting for the next hero mount.
|
|
8
|
+
* @param locale - active locale id (`zh` pools by time of day; anything else
|
|
9
|
+
* uses the English pool).
|
|
10
|
+
* @returns the greeting string.
|
|
11
|
+
*/
|
|
12
|
+
export declare function pickGreeting(locale: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Restore the stock hero copy for the active locale (called when the Aqua
|
|
15
|
+
* layer is switched off, so the UI returns to its original wording).
|
|
16
|
+
* @param locale - active locale id.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resetHeroCopy(locale: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Aqua placeholder for the hero composer, matched to the active locale.
|
|
21
|
+
* @param locale - active locale id.
|
|
22
|
+
* @returns the placeholder string.
|
|
23
|
+
*/
|
|
24
|
+
export declare function aquaPlaceholder(locale: string): string;
|
|
25
|
+
//# sourceMappingURL=greetings.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aqua client plugin body: the toggleable glassmorphism skin. Owns the durable
|
|
3
|
+
* enable flag through the Host settings namespace, applies/retracts the theme layer through
|
|
4
|
+
* {@link AquaLayer}, and registers two settings surfaces:
|
|
5
|
+
* - the master on/off card into the Plugins section (`settings.plugin.item`,
|
|
6
|
+
* same shape as the other plugin cards);
|
|
7
|
+
* - every glass knob into the General section's Appearance row area
|
|
8
|
+
* (`settings.general.item`, right under 外观).
|
|
9
|
+
* One click on the master switch returns the stock UI (every layer is an
|
|
10
|
+
* effect, disposed on flip).
|
|
11
|
+
*/
|
|
12
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
13
|
+
import './aqua.module.css';
|
|
14
|
+
import './fonts.module.css';
|
|
15
|
+
/** Required services: theme override stack plus the settings-card surfaces. */
|
|
16
|
+
export declare const inject: string[];
|
|
17
|
+
/**
|
|
18
|
+
* Client plugin body.
|
|
19
|
+
* @param ctx - client cordis context.
|
|
20
|
+
*/
|
|
21
|
+
export declare function apply(ctx: Context): void;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** `settings.aqua` namespace dictionaries (the settings-row copy). */
|
|
2
|
+
/** Dictionary namespace owned by this plugin. */
|
|
3
|
+
export declare const NS = "settings.aqua";
|
|
4
|
+
/** Simplified Chinese dictionary (the key-set source of truth). */
|
|
5
|
+
export declare const zh: {
|
|
6
|
+
'aqua.title': string;
|
|
7
|
+
'aqua.description': string;
|
|
8
|
+
'aqua.enable': string;
|
|
9
|
+
'aqua.disable': string;
|
|
10
|
+
};
|
|
11
|
+
export type AquaLocaleKey = keyof typeof zh;
|
|
12
|
+
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
13
|
+
interface LocaleNamespaceMap {
|
|
14
|
+
/** The Aqua settings row's copy. */
|
|
15
|
+
'settings.aqua': AquaLocaleKey;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** English dictionary. */
|
|
19
|
+
export declare const en: {
|
|
20
|
+
'aqua.title': string;
|
|
21
|
+
'aqua.description': string;
|
|
22
|
+
'aqua.enable': string;
|
|
23
|
+
'aqua.disable': string;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aqua row slot store: a mirror of the layer enable flag. The plugin's
|
|
3
|
+
* apply-world change listener is the only writer; the row component reads
|
|
4
|
+
* via props.useStore.
|
|
5
|
+
*/
|
|
6
|
+
import { type EngineStoreHandle } from '@deepseek-ai/dsh-client-store';
|
|
7
|
+
/** Store state mirrored from the Aqua settings scope. */
|
|
8
|
+
export interface AquaRowState {
|
|
9
|
+
/** Persisted layer enable flag. */
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
/** Monotonic revision; -1 until first sync so revision 0 lands as a change. */
|
|
12
|
+
revision: number;
|
|
13
|
+
}
|
|
14
|
+
/** Declared action shape giving the exported factory a stable return type. */
|
|
15
|
+
type AquaRowActions = {
|
|
16
|
+
sync: (draft: AquaRowState, enabled: boolean, revision: number) => void;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Declares the Aqua row state and write surface.
|
|
20
|
+
* @returns the store handle.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createAquaRowStore(): EngineStoreHandle<AquaRowState, AquaRowActions>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=settings-store.d.ts.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aqua theme layer: one toggleable visual skin over the whole Web surface.
|
|
3
|
+
* Everything this layer owns is an effect — token overrides ride the theme
|
|
4
|
+
* service's override stack, the CSS hooks ride a `data-dsh-aqua` attribute on
|
|
5
|
+
* <html> (the stylesheet only applies under it), the hero copy rides a
|
|
6
|
+
* MutationObserver that decorates new [data-hero-headline] mounts — so
|
|
7
|
+
* switching the flag off (or unloading the plugin) restores the stock UI
|
|
8
|
+
* exactly: no residue, no reload.
|
|
9
|
+
*
|
|
10
|
+
* The enable flag persists in localStorage: a client-only visual preference
|
|
11
|
+
* (like the selected-session key), written and read by this plugin alone.
|
|
12
|
+
*/
|
|
13
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
14
|
+
import type { ThemeTokenOverrides } from '@deepseek-ai/dsh-client-ui-theme/client';
|
|
15
|
+
/** html attribute selecting the Aqua layer: CSS hooks and ambient effects. */
|
|
16
|
+
export declare const AQUA_ATTRIBUTE = "data-dsh-aqua";
|
|
17
|
+
/** localStorage key carrying the layer enable flag. */
|
|
18
|
+
export declare const AQUA_ENABLED_KEY = "dsh.ui-aqua.enabled";
|
|
19
|
+
/** Default state when nothing is stored yet: on. */
|
|
20
|
+
export declare const DEFAULT_ENABLED = true;
|
|
21
|
+
/**
|
|
22
|
+
* Alias-token override layer: the deep-sea palette. Every value is a
|
|
23
|
+
* `{ light, dark }` pair so the layer stays legible when the user switches
|
|
24
|
+
* the Appearance preference — dark is deep-sea navy, light is cool white-blue.
|
|
25
|
+
*/
|
|
26
|
+
export declare const AQUA_TOKEN_OVERRIDES: ThemeTokenOverrides;
|
|
27
|
+
/**
|
|
28
|
+
* Owns the Aqua layer lifecycle: reads the durable enable flag, and applies /
|
|
29
|
+
* retracts every layer on change. Cross-tab flips arrive through the storage
|
|
30
|
+
* event; the greeting observer and every subscription are released when the
|
|
31
|
+
* plugin fiber is disposed.
|
|
32
|
+
*/
|
|
33
|
+
export declare class AquaLayer {
|
|
34
|
+
private enabled;
|
|
35
|
+
private tokenDisposer;
|
|
36
|
+
private mainFluid;
|
|
37
|
+
private interactionDisposer;
|
|
38
|
+
private themeListener;
|
|
39
|
+
private observer;
|
|
40
|
+
private readonly ctx;
|
|
41
|
+
/**
|
|
42
|
+
* @param ctx - owning client context.
|
|
43
|
+
*/
|
|
44
|
+
constructor(ctx: Context);
|
|
45
|
+
/** Current enable state (the settings row mirrors this). */
|
|
46
|
+
getEnabled(): boolean;
|
|
47
|
+
/** Flip the layer: persist, then apply or retract every owned effect. */
|
|
48
|
+
setEnabled(value: boolean): void;
|
|
49
|
+
/** Active locale id for greeting / placeholder copy. */
|
|
50
|
+
private locale;
|
|
51
|
+
private sync;
|
|
52
|
+
private mount;
|
|
53
|
+
private unmount;
|
|
54
|
+
/** Attach the fluid shader and the interaction feeds. */
|
|
55
|
+
private mountFluid;
|
|
56
|
+
private teardownFluid;
|
|
57
|
+
private fluidParams;
|
|
58
|
+
private applyFluidPalettes;
|
|
59
|
+
/**
|
|
60
|
+
* Decorate hero mounts as they appear: random greeting per new blank
|
|
61
|
+
* session, Aqua placeholder on the hero composer.
|
|
62
|
+
* @param root - added element to scan.
|
|
63
|
+
*/
|
|
64
|
+
private decorate;
|
|
65
|
+
private startObserver;
|
|
66
|
+
private stopObserver;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=theme-layer.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aqua theme-layer plugin, node half. The browser half ships via
|
|
3
|
+
* exports["./client"], discovered through the package.json dsh.client
|
|
4
|
+
* declaration. The Host registers the namespace used to expose the browser
|
|
5
|
+
* card in the current DSH Plugins settings page.
|
|
6
|
+
*/
|
|
7
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
8
|
+
/** Register the Aqua settings namespace when the Host settings service exists. */
|
|
9
|
+
export declare function apply(ctx: Context): void;
|
|
10
|
+
export { AQUA_ENABLED_FIELD, AQUA_SETTINGS_NAMESPACE, AquaSettingsSchema, DEFAULT_ENABLED, type AquaSettings, } from './aqua-settings.ts';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-owned invariant companion for `@deepseek-ai/dsh-client-ui-aqua`.
|
|
3
|
+
* @module @deepseek-ai/dsh-client-ui-aqua/invariant
|
|
4
|
+
*/
|
|
5
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
6
|
+
/** Cordis companion plugin name. */
|
|
7
|
+
export declare const name = "client-ui-aqua-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>;
|
|
16
|
+
//# sourceMappingURL=invariant.d.ts.map
|
package/package.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-client-ui-seaglass",
|
|
3
|
+
"description": "Seaglass: a highly customizable glassmorphism theme for the Web surface — adjustable blur, frost, fluid or wallpaper backdrop, unified corners, and motion",
|
|
4
|
+
"version": "1.6.0",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/xiyunyunyun/dsh-client-ui-seaglass.git"
|
|
11
|
+
},
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "lib/index.js",
|
|
14
|
+
"types": "lib/types/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./lib/types/index.d.ts",
|
|
18
|
+
"default": "./lib/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./invariant": {
|
|
21
|
+
"types": "./lib/types/invariant.d.ts",
|
|
22
|
+
"default": "./lib/invariant.js"
|
|
23
|
+
},
|
|
24
|
+
"./client": {
|
|
25
|
+
"types": "./lib/types/client/index.d.ts",
|
|
26
|
+
"default": "./lib/client.js"
|
|
27
|
+
},
|
|
28
|
+
"./package.json": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
"dsh": {
|
|
31
|
+
"bundle": {
|
|
32
|
+
"patch": "./cordis.patch.yml"
|
|
33
|
+
},
|
|
34
|
+
"client": {
|
|
35
|
+
"inject": [
|
|
36
|
+
"@deepseek-ai/dsh-client-locale",
|
|
37
|
+
"@deepseek-ai/dsh-client-ui-theme",
|
|
38
|
+
"@deepseek-ai/dsh-client-ui-settings"
|
|
39
|
+
],
|
|
40
|
+
"platform": "web"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"bundle": "tsdown",
|
|
45
|
+
"watch": "tsdown --watch",
|
|
46
|
+
"prepublishOnly": "tsdown"
|
|
47
|
+
},
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"@deepseek-ai/cordis": "^4.0.1",
|
|
51
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.2-rc.1",
|
|
52
|
+
"@deepseek-ai/dsh-client-store": "^0.1.2-rc.1",
|
|
53
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-rc.1",
|
|
54
|
+
"@deepseek-ai/dsh-client-ui-theme": "^0.1.2-rc.1",
|
|
55
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-rc.1",
|
|
56
|
+
"@deepseek-ai/dsh-settings": "^0.1.2-rc.1",
|
|
57
|
+
"react": "^18.2.0"
|
|
58
|
+
},
|
|
59
|
+
"peerDependenciesMeta": {
|
|
60
|
+
"@deepseek-ai/dsh-client-store": {
|
|
61
|
+
"optional": true
|
|
62
|
+
},
|
|
63
|
+
"@deepseek-ai/dsh-client-locale": {
|
|
64
|
+
"optional": true
|
|
65
|
+
},
|
|
66
|
+
"@deepseek-ai/dsh-client-ui-settings": {
|
|
67
|
+
"optional": true
|
|
68
|
+
},
|
|
69
|
+
"@deepseek-ai/dsh-client-ui-theme": {
|
|
70
|
+
"optional": true
|
|
71
|
+
},
|
|
72
|
+
"@deepseek-ai/dsh-invariants": {
|
|
73
|
+
"optional": true
|
|
74
|
+
},
|
|
75
|
+
"@deepseek-ai/dsh-settings": {
|
|
76
|
+
"optional": true
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"devDependencies": {
|
|
80
|
+
"@deepseek-ai/cordis": "^4.0.1",
|
|
81
|
+
"@types/react": "~18.3.1",
|
|
82
|
+
"react": "^18.2.0",
|
|
83
|
+
"react-dom": "^18.2.0",
|
|
84
|
+
"tsdown": "^0.22.2"
|
|
85
|
+
},
|
|
86
|
+
"files": [
|
|
87
|
+
"lib/index.js",
|
|
88
|
+
"lib/invariant.js",
|
|
89
|
+
"lib/client.js",
|
|
90
|
+
"lib/types/**/*.d.ts",
|
|
91
|
+
"cordis.patch.yml"
|
|
92
|
+
],
|
|
93
|
+
"dependencies": {
|
|
94
|
+
"@deepseek-ai/schemastery": "3.18.2"
|
|
95
|
+
}
|
|
96
|
+
}
|