@lemoncat7/dsh-theme-xiaohei 0.4.6 → 0.5.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/README.md +15 -9
- package/THIRD_PARTY_NOTICES.md +13 -1
- package/docs/dsh-021-compatibility.md +23 -0
- package/docs/releases/0.5.0.md +24 -0
- package/docs/rift-interaction.md +35 -0
- package/docs/rift-preview.md +39 -0
- package/lib/client.companion.js +3 -4
- package/lib/client.decorations.js +224 -51
- package/lib/client.js +532 -2405
- package/lib/index.d.ts +1 -2
- package/lib/index.js +393 -11
- package/lib/rift/boot.d.ts +6 -0
- package/package.json +29 -19
- package/lib/appearance.d.ts +0 -12
- package/lib/appearance.js +0 -42
- package/lib/blink.d.ts +0 -4
- package/lib/blink.js +0 -110
- package/lib/bloub-heixiu/ambient.d.ts +0 -3
- package/lib/bloub-heixiu/ambient.js +0 -12
- package/lib/bloub-heixiu/character.d.ts +0 -33
- package/lib/bloub-heixiu/character.js +0 -124
- package/lib/bloub-heixiu/effects.d.ts +0 -4
- package/lib/bloub-heixiu/effects.js +0 -91
- package/lib/bloub-heixiu/flight.d.ts +0 -15
- package/lib/bloub-heixiu/flight.js +0 -66
- package/lib/bloub-heixiu/follow.d.ts +0 -13
- package/lib/bloub-heixiu/follow.js +0 -23
- package/lib/bloub-heixiu/layout.d.ts +0 -34
- package/lib/bloub-heixiu/layout.js +0 -26
- package/lib/bloub-heixiu/renderer.d.ts +0 -16
- package/lib/bloub-heixiu/renderer.js +0 -94
- package/lib/bloub-heixiu/runtime.d.ts +0 -6
- package/lib/bloub-heixiu/runtime.js +0 -440
- package/lib/bloub-heixiu/signals.d.ts +0 -17
- package/lib/bloub-heixiu/signals.js +0 -55
- package/lib/bloub-heixiu/styles.d.ts +0 -2
- package/lib/bloub-heixiu/styles.js +0 -98
- package/lib/boot-appearance.d.ts +0 -10
- package/lib/boot-appearance.js +0 -47
- package/lib/boot-loader.d.ts +0 -5
- package/lib/boot-loader.js +0 -158
- package/lib/chrome/accessibility.d.ts +0 -3
- package/lib/chrome/accessibility.js +0 -69
- package/lib/chrome/blink.d.ts +0 -3
- package/lib/chrome/blink.js +0 -15
- package/lib/chrome/composer-avatar.d.ts +0 -10
- package/lib/chrome/composer-avatar.js +0 -599
- package/lib/chrome/composer-send-heixiu.d.ts +0 -3
- package/lib/chrome/composer-send-heixiu.js +0 -143
- package/lib/chrome/composer.d.ts +0 -3
- package/lib/chrome/composer.js +0 -135
- package/lib/chrome/controls.d.ts +0 -8
- package/lib/chrome/controls.js +0 -348
- package/lib/chrome/conversation-messages.d.ts +0 -3
- package/lib/chrome/conversation-messages.js +0 -329
- package/lib/chrome/conversation-submissions.d.ts +0 -3
- package/lib/chrome/conversation-submissions.js +0 -68
- package/lib/chrome/conversation.d.ts +0 -3
- package/lib/chrome/conversation.js +0 -67
- package/lib/chrome/frames.d.ts +0 -6
- package/lib/chrome/frames.js +0 -134
- package/lib/chrome/gaze.d.ts +0 -3
- package/lib/chrome/gaze.js +0 -103
- package/lib/chrome/identity.d.ts +0 -6
- package/lib/chrome/identity.js +0 -47
- package/lib/chrome/overlays.d.ts +0 -3
- package/lib/chrome/overlays.js +0 -104
- package/lib/chrome/portal.d.ts +0 -6
- package/lib/chrome/portal.js +0 -169
- package/lib/chrome/reactions.d.ts +0 -3
- package/lib/chrome/reactions.js +0 -85
- package/lib/chrome/sidebar.d.ts +0 -3
- package/lib/chrome/sidebar.js +0 -313
- package/lib/chrome/tokens.d.ts +0 -3
- package/lib/chrome/tokens.js +0 -224
- package/lib/chrome/workspace.d.ts +0 -3
- package/lib/chrome/workspace.js +0 -94
- package/lib/chrome.d.ts +0 -10
- package/lib/chrome.js +0 -46
- package/lib/client-entry.d.ts +0 -3
- package/lib/client-entry.js +0 -3
- package/lib/client.d.ts +0 -10
- package/lib/client.pose-chin-dark.js +0 -4
- package/lib/client.pose-chin-light.js +0 -4
- package/lib/client.pose-doze-dark.js +0 -4
- package/lib/client.pose-doze-light.js +0 -4
- package/lib/client.pose-halfpeek-dark.js +0 -4
- package/lib/client.pose-halfpeek-light.js +0 -4
- package/lib/client.pose-peek-dark.js +0 -4
- package/lib/client.pose-peek-light.js +0 -4
- package/lib/client.pose-seated-dark.js +0 -4
- package/lib/client.pose-seated-light.js +0 -4
- package/lib/client.rig-chin-dark.js +0 -4
- package/lib/client.rig-chin-light.js +0 -4
- package/lib/client.rig-halfpeek-dark.js +0 -4
- package/lib/client.rig-halfpeek-light.js +0 -4
- package/lib/client.rig-peek-dark.js +0 -4
- package/lib/client.rig-peek-light.js +0 -4
- package/lib/client.rig-seated-dark.js +0 -4
- package/lib/client.rig-seated-light.js +0 -4
- package/lib/companion-entry.d.ts +0 -3
- package/lib/companion-entry.js +0 -3
- package/lib/composer-avatar.d.ts +0 -18
- package/lib/composer-avatar.js +0 -441
- package/lib/composer-draft-preview.d.ts +0 -4
- package/lib/composer-draft-preview.js +0 -8
- package/lib/composer-send-heixiu.d.ts +0 -8
- package/lib/composer-send-heixiu.js +0 -133
- package/lib/current-session.d.ts +0 -6
- package/lib/current-session.js +0 -5
- package/lib/decorations-entry.d.ts +0 -3
- package/lib/decorations-entry.js +0 -18
- package/lib/deferred-companion.d.ts +0 -5
- package/lib/deferred-companion.js +0 -9
- package/lib/deferred-decorations.d.ts +0 -3
- package/lib/deferred-decorations.js +0 -51
- package/lib/gaze.d.ts +0 -4
- package/lib/gaze.js +0 -230
- package/lib/generated-backgrounds.d.ts +0 -14
- package/lib/generated-backgrounds.js +0 -14
- package/lib/generated-character-motion.d.ts +0 -4
- package/lib/generated-character-motion.js +0 -2
- package/lib/generated-identity.d.ts +0 -6
- package/lib/generated-identity.js +0 -6
- package/lib/generated-keyart.d.ts +0 -34
- package/lib/generated-keyart.js +0 -34
- package/lib/generated-loading-assets.d.ts +0 -4
- package/lib/generated-loading-assets.js +0 -4
- package/lib/heixiu-interactions.d.ts +0 -10
- package/lib/heixiu-interactions.js +0 -161
- package/lib/host-contract.d.ts +0 -9
- package/lib/host-contract.js +0 -13
- package/lib/host-dom.d.ts +0 -11
- package/lib/host-dom.js +0 -72
- package/lib/loading-heixiu.d.ts +0 -8
- package/lib/loading-heixiu.js +0 -287
- package/lib/metallic-brand-mark.d.ts +0 -10
- package/lib/metallic-brand-mark.js +0 -296
- package/lib/plugin.d.ts +0 -6
- package/lib/plugin.js +0 -60
- package/lib/portal.d.ts +0 -40
- package/lib/portal.js +0 -225
- package/lib/reactions.d.ts +0 -20
- package/lib/reactions.js +0 -380
- package/lib/scene/avatar-model.d.ts +0 -6
- package/lib/scene/avatar-model.js +0 -646
- package/lib/scene/avatar-motion.d.ts +0 -3
- package/lib/scene/avatar-motion.js +0 -799
- package/lib/scene/character-assets.d.ts +0 -13
- package/lib/scene/character-assets.js +0 -26
- package/lib/scene/character-expression.d.ts +0 -4
- package/lib/scene/character-expression.js +0 -15
- package/lib/scene/character-eye-material.d.ts +0 -13
- package/lib/scene/character-eye-material.js +0 -88
- package/lib/scene/character-eye-renderer.d.ts +0 -5
- package/lib/scene/character-eye-renderer.js +0 -80
- package/lib/scene/character-eye-rig.d.ts +0 -20
- package/lib/scene/character-eye-rig.js +0 -35
- package/lib/scene/character-gaze.d.ts +0 -16
- package/lib/scene/character-gaze.js +0 -36
- package/lib/scene/character-idle.d.ts +0 -17
- package/lib/scene/character-idle.js +0 -65
- package/lib/scene/character-layout.d.ts +0 -24
- package/lib/scene/character-layout.js +0 -51
- package/lib/scene/character-motion-clock.d.ts +0 -18
- package/lib/scene/character-motion-clock.js +0 -70
- package/lib/scene/character-motion-types.d.ts +0 -12
- package/lib/scene/character-motion-types.js +0 -2
- package/lib/scene/character-motion.d.ts +0 -6
- package/lib/scene/character-motion.js +0 -187
- package/lib/scene/character-poses.d.ts +0 -26
- package/lib/scene/character-poses.js +0 -11
- package/lib/scene/character-rig-renderer.d.ts +0 -5
- package/lib/scene/character-rig-renderer.js +0 -95
- package/lib/scene/character-rig.d.ts +0 -22
- package/lib/scene/character-rig.js +0 -61
- package/lib/scene/heixiu-feedback.d.ts +0 -3
- package/lib/scene/heixiu-feedback.js +0 -64
- package/lib/scene/heixiu-interactions.d.ts +0 -3
- package/lib/scene/heixiu-interactions.js +0 -92
- package/lib/scene/ids.d.ts +0 -5
- package/lib/scene/ids.js +0 -5
- package/lib/scene/pointer-bridge.d.ts +0 -21
- package/lib/scene/pointer-bridge.js +0 -155
- package/lib/scene/runtime.d.ts +0 -12
- package/lib/scene/runtime.js +0 -74
- package/lib/scene/state-transitions.d.ts +0 -3
- package/lib/scene/state-transitions.js +0 -37
- package/lib/scene/styles.d.ts +0 -5
- package/lib/scene/styles.js +0 -69
- package/lib/scene/sylva-performance.d.ts +0 -11
- package/lib/scene/sylva-performance.js +0 -58
- package/lib/scene/wallpaper-character-styles.d.ts +0 -3
- package/lib/scene/wallpaper-character-styles.js +0 -49
- package/lib/scene/wallpaper-character.d.ts +0 -5
- package/lib/scene/wallpaper-character.js +0 -222
- package/lib/scene.d.ts +0 -8
- package/lib/scene.js +0 -8
- package/lib/sidebar-glass.d.ts +0 -16
- package/lib/sidebar-glass.js +0 -168
- package/lib/sidebar-heixiu-escape.d.ts +0 -44
- package/lib/sidebar-heixiu-escape.js +0 -340
- package/lib/sidebar-heixiu-roaming.d.ts +0 -27
- package/lib/sidebar-heixiu-roaming.js +0 -310
- package/lib/sidebar-reveal.d.ts +0 -8
- package/lib/sidebar-reveal.js +0 -59
- package/lib/state.d.ts +0 -21
- package/lib/state.js +0 -123
- package/lib/theme.d.ts +0 -19
- package/lib/theme.js +0 -188
- package/lib/vendor/bloub/decor.d.ts +0 -114
- package/lib/vendor/bloub/decor.js +0 -198
- package/lib/vendor/bloub/engine.d.ts +0 -213
- package/lib/vendor/bloub/engine.js +0 -452
- package/lib/vendor/bloub/expressions.d.ts +0 -35
- package/lib/vendor/bloub/expressions.js +0 -143
- package/lib/vendor/bloub/eyefit.d.ts +0 -75
- package/lib/vendor/bloub/eyefit.js +0 -393
- package/lib/vendor/bloub/face.d.ts +0 -63
- package/lib/vendor/bloub/face.js +0 -106
- package/lib/vendor/bloub/math.d.ts +0 -22
- package/lib/vendor/bloub/math.js +0 -36
- package/lib/vendor/bloub/profiles.d.ts +0 -8
- package/lib/vendor/bloub/profiles.js +0 -20
- package/lib/vendor/bloub/repere.d.ts +0 -30
- package/lib/vendor/bloub/repere.js +0 -32
- package/lib/vendor/bloub/shape.d.ts +0 -80
- package/lib/vendor/bloub/shape.js +0 -268
- package/lib/vendor/bloub/skins.d.ts +0 -36
- package/lib/vendor/bloub/skins.js +0 -74
- package/lib/vendor/bloub/states.d.ts +0 -87
- package/lib/vendor/bloub/states.js +0 -468
package/lib/sidebar-reveal.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/** Synchronize native wide content with the visible column, without changing
|
|
2
|
-
* Host layout/state or adding a competing animation timer. */
|
|
3
|
-
export function createSidebarReveal(doc) {
|
|
4
|
-
let shell;
|
|
5
|
-
let observer;
|
|
6
|
-
let phase = '', width = 0, waiting = false;
|
|
7
|
-
const attribute = 'data-xiaohei-sidebar-reveal';
|
|
8
|
-
const readPhase = () => {
|
|
9
|
-
const state = shell?.closest('[data-sidebar-collapsed]')?.getAttribute('data-sidebar-collapsed');
|
|
10
|
-
if (state === 'true')
|
|
11
|
-
return 'rail';
|
|
12
|
-
if (state === 'false')
|
|
13
|
-
return 'wide';
|
|
14
|
-
if (shell?.querySelector("button[aria-label='Collapse sidebar'], button[aria-label='收起侧边栏']"))
|
|
15
|
-
return 'wide';
|
|
16
|
-
return 'rail';
|
|
17
|
-
};
|
|
18
|
-
const apply = () => {
|
|
19
|
-
if (!shell)
|
|
20
|
-
return;
|
|
21
|
-
// The Host freezes its shell at the requested width during grid motion.
|
|
22
|
-
// Reading the inline target does not force a layout.
|
|
23
|
-
const target = Number.parseFloat(shell.style.width);
|
|
24
|
-
if (waiting && phase === 'wide' && (!Number.isFinite(target) || width >= target - 2))
|
|
25
|
-
waiting = false;
|
|
26
|
-
const value = waiting ? 'waiting' : 'ready';
|
|
27
|
-
if (shell.getAttribute(attribute) !== value)
|
|
28
|
-
shell.setAttribute(attribute, value);
|
|
29
|
-
};
|
|
30
|
-
const changed = () => {
|
|
31
|
-
const next = readPhase();
|
|
32
|
-
if (next === 'wide' && phase !== 'wide')
|
|
33
|
-
waiting = true;
|
|
34
|
-
if (next === 'rail')
|
|
35
|
-
waiting = false;
|
|
36
|
-
phase = next;
|
|
37
|
-
apply();
|
|
38
|
-
};
|
|
39
|
-
return {
|
|
40
|
-
setColumn(column) {
|
|
41
|
-
const next = column?.querySelector?.("[data-slot='sidebar'] > div") ?? undefined;
|
|
42
|
-
if (next === shell)
|
|
43
|
-
return;
|
|
44
|
-
observer?.disconnect();
|
|
45
|
-
shell?.removeAttribute(attribute);
|
|
46
|
-
shell = next;
|
|
47
|
-
waiting = false;
|
|
48
|
-
phase = readPhase();
|
|
49
|
-
if (!shell)
|
|
50
|
-
return;
|
|
51
|
-
observer = new doc.defaultView.MutationObserver(changed);
|
|
52
|
-
observer.observe(column, { subtree: true, childList: true, attributes: true, attributeFilter: ['data-sidebar-collapsed', 'aria-label', 'style'] });
|
|
53
|
-
apply();
|
|
54
|
-
},
|
|
55
|
-
resize(nextWidth) { width = nextWidth; apply(); },
|
|
56
|
-
dispose() { observer?.disconnect(); shell?.removeAttribute(attribute); shell = undefined; },
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=sidebar-reveal.js.map
|
package/lib/state.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ISessions, SessionSnapshot, SessionSummary } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
2
|
-
export declare const XIAOHEI_STATE_ATTRIBUTE = "data-xiaohei-state";
|
|
3
|
-
export declare const XIAOHEI_COMPLETE_DURATION_MS = 1600;
|
|
4
|
-
export type XiaoheiState = 'idle' | 'thinking' | 'streaming' | 'tool' | 'waiting' | 'complete' | 'error';
|
|
5
|
-
/** Resolve one official DSH snapshot using the theme's visible-state priority. */
|
|
6
|
-
export declare function resolveXiaoheiState(snapshot: SessionSnapshot | LegacySessionActivity | undefined, summary: SessionSummary | undefined): Exclude<XiaoheiState, 'complete'>;
|
|
7
|
-
interface LegacySessionActivity {
|
|
8
|
-
removed: boolean;
|
|
9
|
-
openState: 'cold' | 'loading' | 'open' | 'error';
|
|
10
|
-
openError: unknown | null;
|
|
11
|
-
promptError: unknown | null;
|
|
12
|
-
lastAgentError: unknown | null;
|
|
13
|
-
pending: readonly unknown[];
|
|
14
|
-
runningCalls: readonly unknown[];
|
|
15
|
-
partial: unknown | null;
|
|
16
|
-
running: boolean;
|
|
17
|
-
}
|
|
18
|
-
/** Mirror the selected Session's official detailed state onto the theme root. */
|
|
19
|
-
export declare function bindXiaoheiSessionState(sessions: Pick<ISessions, 'list' | 'binding'>, doc?: Document | undefined, completeDurationMs?: number): () => void;
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=state.d.ts.map
|
package/lib/state.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { currentSession as selectedSession } from './current-session.js';
|
|
2
|
-
export const XIAOHEI_STATE_ATTRIBUTE = 'data-xiaohei-state';
|
|
3
|
-
export const XIAOHEI_COMPLETE_DURATION_MS = 1600;
|
|
4
|
-
/** Resolve one official DSH snapshot using the theme's visible-state priority. */
|
|
5
|
-
export function resolveXiaoheiState(snapshot, summary) {
|
|
6
|
-
if (snapshot !== undefined) {
|
|
7
|
-
if (snapshot.removed
|
|
8
|
-
|| snapshot.openState === 'error'
|
|
9
|
-
|| snapshot.openError !== null
|
|
10
|
-
|| snapshot.promptError !== null
|
|
11
|
-
|| snapshot.lastAgentError !== null)
|
|
12
|
-
return 'error';
|
|
13
|
-
const pending = 'pending' in snapshot
|
|
14
|
-
? snapshot.pending
|
|
15
|
-
: snapshot.pendingSubmissions;
|
|
16
|
-
const runningCalls = 'runningCalls' in snapshot ? snapshot.runningCalls : [];
|
|
17
|
-
const partial = 'partial' in snapshot ? snapshot.partial : null;
|
|
18
|
-
if (pending.length > 0 || legacyPendingInteraction(summary) !== undefined)
|
|
19
|
-
return 'waiting';
|
|
20
|
-
if (runningCalls.length > 0)
|
|
21
|
-
return 'tool';
|
|
22
|
-
if (snapshot.running && partial !== null)
|
|
23
|
-
return 'streaming';
|
|
24
|
-
if (snapshot.running)
|
|
25
|
-
return 'thinking';
|
|
26
|
-
return 'idle';
|
|
27
|
-
}
|
|
28
|
-
if (legacyPendingInteraction(summary) !== undefined)
|
|
29
|
-
return 'waiting';
|
|
30
|
-
return summary?.running === true ? 'thinking' : 'idle';
|
|
31
|
-
}
|
|
32
|
-
function legacyPendingInteraction(summary) {
|
|
33
|
-
return summary?.pendingInteraction;
|
|
34
|
-
}
|
|
35
|
-
/** Mirror the selected Session's official detailed state onto the theme root. */
|
|
36
|
-
export function bindXiaoheiSessionState(sessions, doc = typeof document === 'undefined' ? undefined : document, completeDurationMs = XIAOHEI_COMPLETE_DURATION_MS) {
|
|
37
|
-
if (doc === undefined)
|
|
38
|
-
return () => { };
|
|
39
|
-
const root = doc.documentElement;
|
|
40
|
-
const timerWindow = doc.defaultView ?? undefined;
|
|
41
|
-
let currentId;
|
|
42
|
-
let currentSession;
|
|
43
|
-
let unsubscribeSession = () => { };
|
|
44
|
-
let previousRunning;
|
|
45
|
-
let completeTimer;
|
|
46
|
-
let disposed = false;
|
|
47
|
-
const clearComplete = () => {
|
|
48
|
-
if (completeTimer === undefined)
|
|
49
|
-
return;
|
|
50
|
-
if (timerWindow !== undefined)
|
|
51
|
-
timerWindow.clearTimeout(completeTimer);
|
|
52
|
-
else
|
|
53
|
-
clearTimeout(completeTimer);
|
|
54
|
-
completeTimer = undefined;
|
|
55
|
-
};
|
|
56
|
-
const setState = (state) => {
|
|
57
|
-
root.setAttribute(XIAOHEI_STATE_ATTRIBUTE, state);
|
|
58
|
-
};
|
|
59
|
-
const updateCurrent = () => {
|
|
60
|
-
if (disposed || currentId === undefined)
|
|
61
|
-
return;
|
|
62
|
-
const listSnapshot = sessions.list.getSnapshot();
|
|
63
|
-
const summary = listSnapshot.byId[currentId];
|
|
64
|
-
const snapshot = currentSession?.getSnapshot();
|
|
65
|
-
const resolved = resolveXiaoheiState(snapshot, summary);
|
|
66
|
-
const running = snapshot?.running ?? summary?.running ?? false;
|
|
67
|
-
const completed = previousRunning === true && running === false;
|
|
68
|
-
previousRunning = running;
|
|
69
|
-
if (resolved !== 'idle') {
|
|
70
|
-
clearComplete();
|
|
71
|
-
setState(resolved);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (completed) {
|
|
75
|
-
clearComplete();
|
|
76
|
-
setState('complete');
|
|
77
|
-
const finish = () => {
|
|
78
|
-
completeTimer = undefined;
|
|
79
|
-
if (!disposed)
|
|
80
|
-
setState('idle');
|
|
81
|
-
};
|
|
82
|
-
completeTimer = timerWindow !== undefined
|
|
83
|
-
? timerWindow.setTimeout(finish, completeDurationMs)
|
|
84
|
-
: setTimeout(finish, completeDurationMs);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if (completeTimer === undefined)
|
|
88
|
-
setState('idle');
|
|
89
|
-
};
|
|
90
|
-
const updateList = () => {
|
|
91
|
-
if (disposed)
|
|
92
|
-
return;
|
|
93
|
-
const listSnapshot = sessions.list.getSnapshot();
|
|
94
|
-
const nextId = selectedSession(listSnapshot);
|
|
95
|
-
const nextSession = nextId === undefined ? undefined : sessions.binding(nextId)?.session;
|
|
96
|
-
const changed = nextId !== currentId || nextSession !== currentSession;
|
|
97
|
-
if (changed) {
|
|
98
|
-
unsubscribeSession();
|
|
99
|
-
unsubscribeSession = () => { };
|
|
100
|
-
clearComplete();
|
|
101
|
-
currentId = nextId;
|
|
102
|
-
currentSession = nextSession;
|
|
103
|
-
previousRunning = undefined;
|
|
104
|
-
if (currentSession !== undefined)
|
|
105
|
-
unsubscribeSession = currentSession.subscribe(updateCurrent);
|
|
106
|
-
}
|
|
107
|
-
if (currentId === undefined) {
|
|
108
|
-
setState('idle');
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
updateCurrent();
|
|
112
|
-
};
|
|
113
|
-
const unsubscribeList = sessions.list.subscribe(updateList);
|
|
114
|
-
updateList();
|
|
115
|
-
return () => {
|
|
116
|
-
disposed = true;
|
|
117
|
-
clearComplete();
|
|
118
|
-
unsubscribeSession();
|
|
119
|
-
unsubscribeList();
|
|
120
|
-
root.removeAttribute(XIAOHEI_STATE_ATTRIBUTE);
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=state.js.map
|
package/lib/theme.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { ThemeTokenOverrides, ThemeTokens } from '@deepseek-ai/dsh-client-ui-theme/client';
|
|
2
|
-
/** Stable ids retained for consumers that inspect the two Xiaohei palettes. */
|
|
3
|
-
export declare const XIAOHEI_DAWN_THEME_ID = "xiaohei-dawn";
|
|
4
|
-
export declare const XIAOHEI_NIGHT_THEME_ID = "xiaohei-night";
|
|
5
|
-
/** Inspectable light theme definition for Xiaohei Dawn. */
|
|
6
|
-
export declare const XIAOHEI_DAWN_THEME: {
|
|
7
|
-
id: string;
|
|
8
|
-
colorScheme: "light";
|
|
9
|
-
tokens: ThemeTokens;
|
|
10
|
-
};
|
|
11
|
-
/** Inspectable dark theme definition for Xiaohei Night. */
|
|
12
|
-
export declare const XIAOHEI_NIGHT_THEME: {
|
|
13
|
-
id: string;
|
|
14
|
-
colorScheme: "dark";
|
|
15
|
-
tokens: ThemeTokens;
|
|
16
|
-
};
|
|
17
|
-
/** DSH's native Light / Dark / System preference stays authoritative. */
|
|
18
|
-
export declare const XIAOHEI_THEME_TOKEN_OVERRIDES: ThemeTokenOverrides;
|
|
19
|
-
//# sourceMappingURL=theme.d.ts.map
|
package/lib/theme.js
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
/** Stable ids retained for consumers that inspect the two Xiaohei palettes. */
|
|
2
|
-
export const XIAOHEI_DAWN_THEME_ID = 'xiaohei-dawn';
|
|
3
|
-
export const XIAOHEI_NIGHT_THEME_ID = 'xiaohei-night';
|
|
4
|
-
const DAWN_TOKENS = {
|
|
5
|
-
'--dsw-alias-bg-base': 'transparent',
|
|
6
|
-
'--dsw-alias-bg-layer-1': 'rgb(232 237 243 / 82%)',
|
|
7
|
-
'--dsw-alias-bg-layer-2': 'rgb(238 242 247 / 90%)',
|
|
8
|
-
'--dsw-alias-bg-layer-3': 'rgb(244 247 250 / 96%)',
|
|
9
|
-
'--dsw-alias-bg-overlay': '#E9EEF3',
|
|
10
|
-
'--dsw-alias-bg-module-platform': 'rgb(232 238 244 / 88%)',
|
|
11
|
-
'--dsw-alias-bg-multi-select': '#DDE5EC',
|
|
12
|
-
'--dsw-alias-bg-skeleton': 'rgb(45 116 136 / 10%)',
|
|
13
|
-
'--dsw-alias-border-inverted2': 'rgb(35 50 52 / 6%)',
|
|
14
|
-
'--dsw-alias-border-inverted': 'rgb(35 50 52 / 9%)',
|
|
15
|
-
'--dsw-alias-border-l1': 'rgb(35 50 52 / 9%)',
|
|
16
|
-
'--dsw-alias-border-l2-darkmode-thin': 'rgb(35 50 52 / 12%)',
|
|
17
|
-
'--dsw-alias-border-l2': 'rgb(35 50 52 / 15%)',
|
|
18
|
-
'--dsw-alias-border-l3': 'rgb(35 50 52 / 22%)',
|
|
19
|
-
'--dsw-alias-border-l4': 'rgb(35 50 52 / 31%)',
|
|
20
|
-
'--dsw-alias-brand-primary': '#547D78',
|
|
21
|
-
'--dsw-alias-brand-primary-invert': '#F6FAFA',
|
|
22
|
-
'--dsw-alias-brand-primary-new-colorprimary-new-color': '#547D78',
|
|
23
|
-
'--dsw-alias-brand-text': '#426A65',
|
|
24
|
-
'--dsw-alias-button-contrast-fill': '#17272B',
|
|
25
|
-
'--dsw-alias-button-primary-fill': '#547D78',
|
|
26
|
-
'--dsw-alias-button-primary-hover': '#426A65',
|
|
27
|
-
'--dsw-alias-button-primary-dimmed': '#A3BBB7',
|
|
28
|
-
'--dsw-alias-button-elevated-fill': '#EDF2F6',
|
|
29
|
-
'--dsw-alias-button-floating-fill': '#E1E8EF',
|
|
30
|
-
'--dsw-alias-button-floating-hover': '#D7E0E8',
|
|
31
|
-
'--dsw-alias-button-ghost-active-border': '#78A7B3',
|
|
32
|
-
'--dsw-alias-button-ghost-active-fill': 'rgb(84 125 120 / 11%)',
|
|
33
|
-
'--dsw-alias-button-ghost-active-hover': 'rgb(84 125 120 / 17%)',
|
|
34
|
-
'--dsw-alias-button-info-fill': '#547D78',
|
|
35
|
-
'--dsw-alias-button-info-hover': '#426A65',
|
|
36
|
-
'--dsw-alias-interactive-bg-active': 'rgb(84 125 120 / 14%)',
|
|
37
|
-
'--dsw-alias-interactive-bg-hover-accent': 'rgb(84 125 120 / 17%)',
|
|
38
|
-
'--dsw-alias-interactive-bg-hover-solid': '#E1EAE8',
|
|
39
|
-
'--dsw-alias-interactive-bg-hover': 'rgb(84 125 120 / 8%)',
|
|
40
|
-
'--dsw-alias-label-primary': '#252C35',
|
|
41
|
-
'--dsw-alias-label-primary-bluish': '#252C35',
|
|
42
|
-
'--dsw-alias-label-primary-dimmed': '#3E4854',
|
|
43
|
-
'--dsw-alias-label-primary-foreground': '#FFFFFF',
|
|
44
|
-
'--dsw-alias-label-primary-inverted': '#F1F5F5',
|
|
45
|
-
'--dsw-alias-label-secondary': '#535F6C',
|
|
46
|
-
'--dsw-alias-label-tertiary': '#5F6B78',
|
|
47
|
-
'--dsw-alias-label-caption': '#5F6B78',
|
|
48
|
-
'--dsw-alias-label-dimmed': '#8994A0',
|
|
49
|
-
'--dsw-alias-markdown-citation': '#E2EAE9',
|
|
50
|
-
'--dsw-alias-markdown-code-block-banner': '#E5ECEB',
|
|
51
|
-
'--dsw-alias-markdown-code-block': '#EEF4F3',
|
|
52
|
-
'--dsw-alias-markdown-code-segment-selected': '#D9E3E1',
|
|
53
|
-
'--dsw-alias-markdown-code-segment-unselected': '#E8EFEE',
|
|
54
|
-
'--dsw-alias-markdown-inline-code': '#E3EBEA',
|
|
55
|
-
'--dsw-alias-markdown-placeholder': '#E8EFEE',
|
|
56
|
-
'--dsw-alias-markdown-tag': '#E2EAE9',
|
|
57
|
-
'--dsw-alias-scrollbar-bg-l1': '#CBCDC9',
|
|
58
|
-
'--dsw-alias-scrollbar-bg-l2': '#BABDBA',
|
|
59
|
-
'--dsw-alias-scrollbar-hover-l1': '#A8ADAA',
|
|
60
|
-
'--dsw-alias-scrollbar-hover-l2': '#959C98',
|
|
61
|
-
'--dsw-alias-state-error-primary': '#B44952',
|
|
62
|
-
'--dsw-alias-state-error-secondary': '#C65D65',
|
|
63
|
-
'--dsw-alias-state-business-primary': '#2E747A',
|
|
64
|
-
'--dsw-alias-state-business-tertiary': '#DCE9EC',
|
|
65
|
-
'--dsw-alias-state-success-primary': '#2F7B52',
|
|
66
|
-
'--dsw-alias-state-success-secondary': '#438D65',
|
|
67
|
-
'--dsw-alias-state-success-tertiary': '#DCEBDF',
|
|
68
|
-
'--dsw-alias-state-warn-label': '#8A5B1C',
|
|
69
|
-
'--dsw-alias-state-warn-primary': '#9A6720',
|
|
70
|
-
'--dsw-alias-state-warn-secondary': '#AD7A34',
|
|
71
|
-
'--dsw-alias-state-warn-tertiary': '#F3E8D2',
|
|
72
|
-
'--dsw-alias-toast-bg': '#E9EEF3',
|
|
73
|
-
'--dsw-alias-tooltip-bg': '#25332F',
|
|
74
|
-
'--dsw-specific-bubble': 'rgb(84 125 120 / 10%)',
|
|
75
|
-
'--dsw-specific-bubble-highlight': '#DDE7E5',
|
|
76
|
-
'--dsw-specific-input-major': 'rgb(240 244 248 / 94%)',
|
|
77
|
-
'--dsw-specific-login-input': 'rgb(235 240 245 / 95%)',
|
|
78
|
-
'--dsw-specific-menu': 'rgb(233 238 243 / 96%)',
|
|
79
|
-
'--dsw-specific-selector': '#DDE5EC',
|
|
80
|
-
'--dsw-specific-sidebar-fill': 'transparent',
|
|
81
|
-
'--dsw-specific-sidebar-nav-item-active-accent': '#CCD9D6',
|
|
82
|
-
'--dsw-specific-sidebar-nav-item-active': '#DFE6E3',
|
|
83
|
-
'--dsw-specific-sidebar-nav-item-hover': '#E8ECE9',
|
|
84
|
-
'--dsw-specific-tip': '#E3EBEA',
|
|
85
|
-
};
|
|
86
|
-
const NIGHT_TOKENS = {
|
|
87
|
-
'--dsw-alias-bg-base': 'transparent',
|
|
88
|
-
'--dsw-alias-bg-layer-1': 'rgb(20 27 29 / 74%)',
|
|
89
|
-
'--dsw-alias-bg-layer-2': 'rgb(25 33 35 / 86%)',
|
|
90
|
-
'--dsw-alias-bg-layer-3': 'rgb(31 40 42 / 94%)',
|
|
91
|
-
'--dsw-alias-bg-overlay': '#232D2F',
|
|
92
|
-
'--dsw-alias-bg-module-platform': 'rgb(23 30 32 / 82%)',
|
|
93
|
-
'--dsw-alias-bg-multi-select': '#253033',
|
|
94
|
-
'--dsw-alias-bg-skeleton': 'rgb(105 182 186 / 9%)',
|
|
95
|
-
'--dsw-alias-border-inverted2': 'rgb(184 204 205 / 7%)',
|
|
96
|
-
'--dsw-alias-border-inverted': 'rgb(184 204 205 / 10%)',
|
|
97
|
-
'--dsw-alias-border-l1': 'rgb(184 204 205 / 8%)',
|
|
98
|
-
'--dsw-alias-border-l2-darkmode-thin': 'rgb(184 204 205 / 11%)',
|
|
99
|
-
'--dsw-alias-border-l2': 'rgb(184 204 205 / 15%)',
|
|
100
|
-
'--dsw-alias-border-l3': 'rgb(184 204 205 / 23%)',
|
|
101
|
-
'--dsw-alias-border-l4': 'rgb(184 204 205 / 32%)',
|
|
102
|
-
'--dsw-alias-brand-primary': '#69B6BA',
|
|
103
|
-
'--dsw-alias-brand-primary-invert': '#101719',
|
|
104
|
-
'--dsw-alias-brand-primary-new-colorprimary-new-color': '#69B6BA',
|
|
105
|
-
'--dsw-alias-brand-text': '#8ACED0',
|
|
106
|
-
'--dsw-alias-button-contrast-fill': '#E7F3F0',
|
|
107
|
-
'--dsw-alias-button-primary-fill': '#69B6BA',
|
|
108
|
-
'--dsw-alias-button-primary-hover': '#8ACED0',
|
|
109
|
-
'--dsw-alias-button-primary-dimmed': '#47797D',
|
|
110
|
-
'--dsw-alias-button-elevated-fill': '#253033',
|
|
111
|
-
'--dsw-alias-button-floating-fill': '#20292B',
|
|
112
|
-
'--dsw-alias-button-floating-hover': '#2B3739',
|
|
113
|
-
'--dsw-alias-button-ghost-active-border': '#47797D',
|
|
114
|
-
'--dsw-alias-button-ghost-active-fill': 'rgb(105 182 186 / 14%)',
|
|
115
|
-
'--dsw-alias-button-ghost-active-hover': 'rgb(105 182 186 / 20%)',
|
|
116
|
-
'--dsw-alias-button-info-fill': '#69B6BA',
|
|
117
|
-
'--dsw-alias-button-info-hover': '#8ACED0',
|
|
118
|
-
'--dsw-alias-interactive-bg-active': 'rgb(105 182 186 / 16%)',
|
|
119
|
-
'--dsw-alias-interactive-bg-hover-accent': 'rgb(105 182 186 / 21%)',
|
|
120
|
-
'--dsw-alias-interactive-bg-hover-solid': '#283335',
|
|
121
|
-
'--dsw-alias-interactive-bg-hover': 'rgb(105 182 186 / 9%)',
|
|
122
|
-
'--dsw-alias-label-primary': '#E3EAEB',
|
|
123
|
-
'--dsw-alias-label-primary-bluish': '#E3EAEB',
|
|
124
|
-
'--dsw-alias-label-primary-dimmed': '#CAD5D7',
|
|
125
|
-
'--dsw-alias-label-primary-foreground': '#101719',
|
|
126
|
-
'--dsw-alias-label-primary-inverted': '#232D2F',
|
|
127
|
-
'--dsw-alias-label-secondary': '#BBC9CC',
|
|
128
|
-
'--dsw-alias-label-tertiary': '#95A7AB',
|
|
129
|
-
'--dsw-alias-label-caption': '#899CA0',
|
|
130
|
-
'--dsw-alias-label-dimmed': '#687A7E',
|
|
131
|
-
'--dsw-alias-markdown-citation': '#263133',
|
|
132
|
-
'--dsw-alias-markdown-code-block-banner': '#1A2224',
|
|
133
|
-
'--dsw-alias-markdown-code-block': '#121819',
|
|
134
|
-
'--dsw-alias-markdown-code-segment-selected': '#263133',
|
|
135
|
-
'--dsw-alias-markdown-code-segment-unselected': '#182022',
|
|
136
|
-
'--dsw-alias-markdown-inline-code': '#20292B',
|
|
137
|
-
'--dsw-alias-markdown-placeholder': '#1A2224',
|
|
138
|
-
'--dsw-alias-markdown-tag': '#20292B',
|
|
139
|
-
'--dsw-alias-scrollbar-bg-l1': '#303A3A',
|
|
140
|
-
'--dsw-alias-scrollbar-bg-l2': '#3C4747',
|
|
141
|
-
'--dsw-alias-scrollbar-hover-l1': '#4B5857',
|
|
142
|
-
'--dsw-alias-scrollbar-hover-l2': '#5A6867',
|
|
143
|
-
'--dsw-alias-state-error-primary': '#FF7D86',
|
|
144
|
-
'--dsw-alias-state-error-secondary': '#FF9AA1',
|
|
145
|
-
'--dsw-alias-state-business-primary': '#69B6BA',
|
|
146
|
-
'--dsw-alias-state-business-tertiary': '#283335',
|
|
147
|
-
'--dsw-alias-state-success-primary': '#82D29A',
|
|
148
|
-
'--dsw-alias-state-success-secondary': '#9BDEAC',
|
|
149
|
-
'--dsw-alias-state-success-tertiary': '#173722',
|
|
150
|
-
'--dsw-alias-state-warn-label': '#E9BD68',
|
|
151
|
-
'--dsw-alias-state-warn-primary': '#E9BD68',
|
|
152
|
-
'--dsw-alias-state-warn-secondary': '#F2CC82',
|
|
153
|
-
'--dsw-alias-state-warn-tertiary': '#3A2D14',
|
|
154
|
-
'--dsw-alias-toast-bg': '#232D2F',
|
|
155
|
-
'--dsw-alias-tooltip-bg': '#232D2F',
|
|
156
|
-
'--dsw-specific-bubble': 'rgb(29 38 40 / 90%)',
|
|
157
|
-
'--dsw-specific-bubble-highlight': '#283335',
|
|
158
|
-
'--dsw-specific-input-major': 'rgb(27 35 37 / 92%)',
|
|
159
|
-
'--dsw-specific-login-input': 'rgb(22 29 31 / 92%)',
|
|
160
|
-
'--dsw-specific-menu': '#20292B',
|
|
161
|
-
'--dsw-specific-selector': '#273235',
|
|
162
|
-
'--dsw-specific-sidebar-fill': 'transparent',
|
|
163
|
-
'--dsw-specific-sidebar-nav-item-active-accent': '#315357',
|
|
164
|
-
'--dsw-specific-sidebar-nav-item-active': '#273235',
|
|
165
|
-
'--dsw-specific-sidebar-nav-item-hover': '#222C2E',
|
|
166
|
-
'--dsw-specific-tip': '#20292B',
|
|
167
|
-
};
|
|
168
|
-
/** Inspectable light theme definition for Xiaohei Dawn. */
|
|
169
|
-
export const XIAOHEI_DAWN_THEME = {
|
|
170
|
-
id: XIAOHEI_DAWN_THEME_ID,
|
|
171
|
-
colorScheme: 'light',
|
|
172
|
-
tokens: DAWN_TOKENS,
|
|
173
|
-
};
|
|
174
|
-
/** Inspectable dark theme definition for Xiaohei Night. */
|
|
175
|
-
export const XIAOHEI_NIGHT_THEME = {
|
|
176
|
-
id: XIAOHEI_NIGHT_THEME_ID,
|
|
177
|
-
colorScheme: 'dark',
|
|
178
|
-
tokens: NIGHT_TOKENS,
|
|
179
|
-
};
|
|
180
|
-
/** DSH's native Light / Dark / System preference stays authoritative. */
|
|
181
|
-
export const XIAOHEI_THEME_TOKEN_OVERRIDES = Object.fromEntries([...new Set([...Object.keys(DAWN_TOKENS), ...Object.keys(NIGHT_TOKENS)])].map(name => [
|
|
182
|
-
name,
|
|
183
|
-
{
|
|
184
|
-
light: DAWN_TOKENS[name] ?? NIGHT_TOKENS[name],
|
|
185
|
-
dark: NIGHT_TOKENS[name] ?? DAWN_TOKENS[name],
|
|
186
|
-
},
|
|
187
|
-
]));
|
|
188
|
-
//# sourceMappingURL=theme.js.map
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
export interface DotRender {
|
|
2
|
-
x: number;
|
|
3
|
-
y: number;
|
|
4
|
-
r: number;
|
|
5
|
-
opacity: number;
|
|
6
|
-
/** couleur explicite ; par defaut le rendu prend celle du corps */
|
|
7
|
-
color?: string;
|
|
8
|
-
/**
|
|
9
|
-
* Brume de profondeur : 0 = fondu dans le fond, 1 = couleur du corps pleine.
|
|
10
|
-
* Le melange se fait au rendu, qui seul connait la couleur choisie.
|
|
11
|
-
*/
|
|
12
|
-
depth?: number;
|
|
13
|
-
/**
|
|
14
|
-
* Forme non circulaire, en unites de rayon de boule et centree sur l'origine
|
|
15
|
-
* (le point du "!" penche est une goutte, pas un disque). Quand elle est
|
|
16
|
-
* fournie, `r` n'est plus utilise pour le trace.
|
|
17
|
-
*/
|
|
18
|
-
d?: string;
|
|
19
|
-
/** rotation appliquee a `d`, en degres */
|
|
20
|
-
rot?: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Ce qu'un etat declare : la geometrie de l'arc reste en unites de rayon de
|
|
24
|
-
* boule, c'est le moteur (seul a connaitre l'echelle du viewBox) qui la
|
|
25
|
-
* rasterise. Sans ca les etats devraient connaitre le viewBox.
|
|
26
|
-
*/
|
|
27
|
-
export interface ArcSpec {
|
|
28
|
-
id: string;
|
|
29
|
-
seed: ArcSeed;
|
|
30
|
-
t: number;
|
|
31
|
-
opacity: number;
|
|
32
|
-
}
|
|
33
|
-
export interface ArcRender {
|
|
34
|
-
id: string;
|
|
35
|
-
/** portion devant le corps */
|
|
36
|
-
front: string;
|
|
37
|
-
/** portion derriere le corps (dessinee avant, donc masquee par la silhouette) */
|
|
38
|
-
back: string;
|
|
39
|
-
width: number;
|
|
40
|
-
opacity: number;
|
|
41
|
-
/** degrade de teinte le long du trace */
|
|
42
|
-
grad: {
|
|
43
|
-
x1: number;
|
|
44
|
-
y1: number;
|
|
45
|
-
x2: number;
|
|
46
|
-
y2: number;
|
|
47
|
-
stops: string[];
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
export interface ArcSeed {
|
|
51
|
-
/** demi-grand axe, en unites de rayon de boule */
|
|
52
|
-
a: number;
|
|
53
|
-
/** aplatissement b/a : mesure <= 0.45, les plans d'orbite sont vus par la tranche */
|
|
54
|
-
k: number;
|
|
55
|
-
/** inclinaison du grand axe a l'ecran, radians */
|
|
56
|
-
tilt: number;
|
|
57
|
-
/** tours par seconde */
|
|
58
|
-
speed: number;
|
|
59
|
-
phase: number;
|
|
60
|
-
/** fraction du tour reellement tracee */
|
|
61
|
-
sweep: number;
|
|
62
|
-
hue: number;
|
|
63
|
-
hueSpan: number;
|
|
64
|
-
width: number;
|
|
65
|
-
cx: number;
|
|
66
|
-
cy: number;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Projette un cercle 3D incline en orthographique.
|
|
70
|
-
*
|
|
71
|
-
* Le cercle vit dans le plan engendre par u (dans l'ecran) et v (qui plonge
|
|
72
|
-
* dans la profondeur). La composante z sert a couper l'arc en deux : la moitie
|
|
73
|
-
* arriere est dessinee avant le corps, donc occultee par lui. C'est ce vrai tri
|
|
74
|
-
* en profondeur qui fait lire les anneaux comme des orbites et pas comme un
|
|
75
|
-
* dessin plat.
|
|
76
|
-
*/
|
|
77
|
-
export declare function arcRender(seed: ArcSeed, t: number, scale: number, id: string, opacity?: number): ArcRender;
|
|
78
|
-
/**
|
|
79
|
-
* 6 anneaux, demi-grand axe 1.30-1.40 (donc nettement plus grands que la
|
|
80
|
-
* boule), aplatissement toujours <= 0.45, epaisseur 0.055, ~3.3 tours/s.
|
|
81
|
-
*/
|
|
82
|
-
export declare const RINGS: ArcSeed[];
|
|
83
|
-
/**
|
|
84
|
-
* Bouquet d'arcs emboites qui balaie le triangle juste avant les orbites.
|
|
85
|
-
* Vus quasiment par la tranche (d'ou la forme en epingle a cheveux), rmax 1.37.
|
|
86
|
-
*/
|
|
87
|
-
export declare const SWOOSH: ArcSeed[];
|
|
88
|
-
/** x mesures : -0.557 / -0.013 / +0.532, y = 0. */
|
|
89
|
-
export declare const DOT_X: readonly [-0.557, -0.013, 0.532];
|
|
90
|
-
export declare const DOT_R = 0.165;
|
|
91
|
-
export declare const DOT_PEAK = 1.25;
|
|
92
|
-
/**
|
|
93
|
-
* Les particules ne partent pas en ligne droite : elles spiralent vers le
|
|
94
|
-
* centre (rayon x0.75 par frame, angle +100 deg/s) en grossissant, et passent
|
|
95
|
-
* derriere le noyau ou elles sont avalees.
|
|
96
|
-
*/
|
|
97
|
-
export declare function particles(t: number, scale: number): DotRender[];
|
|
98
|
-
export declare const COMET_RIBBONS: ArcSeed[];
|
|
99
|
-
/** Rayon du point de la comete, mesure a 0.129. */
|
|
100
|
-
export declare const COMET_DOT = 0.129;
|
|
101
|
-
/** Bleu releve au pixel. */
|
|
102
|
-
export declare const NOTIF_BLUE = "#2496e8";
|
|
103
|
-
/** La pastille est posee exactement sur la circonference, a -42deg. */
|
|
104
|
-
export declare const NOTIF_ANGLE = -42;
|
|
105
|
-
export declare const NOTIF_DIST = 1.003;
|
|
106
|
-
/** Rayon au repos ; le pop culmine 14 % au-dessus. */
|
|
107
|
-
export declare const NOTIF_R = 0.15;
|
|
108
|
-
export declare const NOTIF_POP = 1.14;
|
|
109
|
-
/**
|
|
110
|
-
* L'encoche est un disque concentrique a la pastille, soustrait du corps.
|
|
111
|
-
* La marge est constante (0.054 R) et suit l'echelle du corps.
|
|
112
|
-
*/
|
|
113
|
-
export declare const NOTIF_MARGIN = 0.054;
|
|
114
|
-
//# sourceMappingURL=decor.d.ts.map
|