@lemoncat7/dsh-theme-xiaohei 0.3.0-alpha.23 → 0.3.2
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 +39 -17
- package/THIRD_PARTY_NOTICES.md +41 -0
- package/lib/appearance.js +26 -10
- package/lib/blink.js +3 -3
- package/lib/bloub-heixiu/ambient.d.ts +3 -0
- package/lib/bloub-heixiu/ambient.js +12 -0
- package/lib/bloub-heixiu/character.d.ts +33 -0
- package/lib/bloub-heixiu/character.js +124 -0
- package/lib/bloub-heixiu/effects.d.ts +4 -0
- package/lib/bloub-heixiu/effects.js +91 -0
- package/lib/bloub-heixiu/flight.d.ts +15 -0
- package/lib/bloub-heixiu/flight.js +66 -0
- package/lib/bloub-heixiu/follow.d.ts +13 -0
- package/lib/bloub-heixiu/follow.js +23 -0
- package/lib/bloub-heixiu/layout.d.ts +18 -0
- package/lib/bloub-heixiu/layout.js +12 -0
- package/lib/bloub-heixiu/renderer.d.ts +16 -0
- package/lib/bloub-heixiu/renderer.js +94 -0
- package/lib/bloub-heixiu/runtime.d.ts +6 -0
- package/lib/bloub-heixiu/runtime.js +395 -0
- package/lib/bloub-heixiu/signals.d.ts +17 -0
- package/lib/bloub-heixiu/signals.js +53 -0
- package/lib/bloub-heixiu/styles.d.ts +2 -0
- package/lib/bloub-heixiu/styles.js +98 -0
- package/lib/chrome/accessibility.d.ts +1 -1
- package/lib/chrome/accessibility.js +5 -13
- package/lib/chrome/composer-avatar.d.ts +10 -0
- package/lib/chrome/composer-avatar.js +599 -0
- package/lib/chrome/composer-send-heixiu.d.ts +3 -0
- package/lib/chrome/composer-send-heixiu.js +143 -0
- package/lib/chrome/composer.d.ts +2 -2
- package/lib/chrome/composer.js +84 -95
- package/lib/chrome/controls.d.ts +8 -0
- package/lib/chrome/controls.js +348 -0
- package/lib/chrome/conversation-messages.d.ts +1 -1
- package/lib/chrome/conversation-messages.js +207 -9
- package/lib/chrome/conversation.d.ts +1 -1
- package/lib/chrome/conversation.js +6 -0
- package/lib/chrome/identity.js +4 -18
- package/lib/chrome/portal.d.ts +1 -1
- package/lib/chrome/portal.js +1 -1
- package/lib/chrome/sidebar.d.ts +1 -1
- package/lib/chrome/sidebar.js +134 -153
- package/lib/chrome/tokens.d.ts +1 -1
- package/lib/chrome/tokens.js +121 -68
- package/lib/chrome/workspace.d.ts +2 -2
- package/lib/chrome/workspace.js +35 -254
- package/lib/chrome.js +4 -0
- package/lib/client.d.ts +5 -12
- package/lib/client.js +6262 -4455
- package/lib/composer-avatar.d.ts +18 -0
- package/lib/composer-avatar.js +441 -0
- package/lib/composer-send-heixiu.d.ts +8 -0
- package/lib/composer-send-heixiu.js +133 -0
- package/lib/gaze.js +3 -3
- package/lib/generated-backgrounds.d.ts +14 -0
- package/lib/generated-backgrounds.js +14 -0
- package/lib/generated-character-motion.d.ts +4 -0
- package/lib/generated-character-motion.js +2 -0
- package/lib/generated-identity.d.ts +1 -0
- package/lib/generated-identity.js +1 -0
- package/lib/generated-keyart.d.ts +18 -3
- package/lib/generated-keyart.js +18 -3
- package/lib/host-contract.d.ts +9 -0
- package/lib/host-contract.js +13 -0
- package/lib/host-dom.d.ts +11 -0
- package/lib/host-dom.js +60 -0
- package/lib/loading-heixiu.js +3 -3
- package/lib/metallic-brand-mark.d.ts +10 -0
- package/lib/metallic-brand-mark.js +323 -0
- package/lib/plugin.d.ts +1 -1
- package/lib/plugin.js +31 -16
- package/lib/portal.js +11 -10
- package/lib/reactions.js +3 -3
- package/lib/scene/avatar-model.d.ts +6 -0
- package/lib/scene/avatar-model.js +646 -0
- package/lib/scene/avatar-motion.d.ts +3 -0
- package/lib/scene/avatar-motion.js +799 -0
- package/lib/scene/character-idle.d.ts +17 -0
- package/lib/scene/character-idle.js +65 -0
- package/lib/scene/character-layout.d.ts +24 -0
- package/lib/scene/character-layout.js +51 -0
- package/lib/scene/character-motion-clock.d.ts +18 -0
- package/lib/scene/character-motion-clock.js +57 -0
- package/lib/scene/character-motion-types.d.ts +12 -0
- package/lib/scene/character-motion-types.js +2 -0
- package/lib/scene/character-motion.d.ts +6 -0
- package/lib/scene/character-motion.js +126 -0
- package/lib/scene/character-poses.d.ts +26 -0
- package/lib/scene/character-poses.js +11 -0
- package/lib/scene/character-rig-renderer.d.ts +4 -0
- package/lib/scene/character-rig-renderer.js +85 -0
- package/lib/scene/character-rig.d.ts +20 -0
- package/lib/scene/character-rig.js +53 -0
- package/lib/scene/heixiu-feedback.d.ts +1 -1
- package/lib/scene/heixiu-feedback.js +0 -17
- package/lib/scene/pointer-bridge.d.ts +21 -0
- package/lib/scene/pointer-bridge.js +155 -0
- package/lib/scene/runtime.d.ts +12 -0
- package/lib/scene/runtime.js +87 -0
- package/lib/scene/styles.d.ts +7 -0
- package/lib/scene/styles.js +75 -0
- package/lib/scene/sylva-performance.d.ts +11 -0
- package/lib/scene/sylva-performance.js +58 -0
- package/lib/scene/wallpaper-character-styles.d.ts +3 -0
- package/lib/scene/wallpaper-character-styles.js +53 -0
- package/lib/scene/wallpaper-character.d.ts +4 -0
- package/lib/scene/wallpaper-character.js +213 -0
- package/lib/scene.d.ts +7 -13
- package/lib/scene.js +7 -1023
- package/lib/sidebar-glass.js +99 -36
- package/lib/sidebar-heixiu-roaming.js +5 -5
- package/lib/sidebar-reveal.d.ts +8 -0
- package/lib/sidebar-reveal.js +51 -0
- package/lib/state.d.ts +14 -2
- package/lib/state.js +12 -4
- package/lib/theme.js +2 -2
- package/lib/vendor/bloub/decor.d.ts +114 -0
- package/lib/vendor/bloub/decor.js +198 -0
- package/lib/vendor/bloub/engine.d.ts +213 -0
- package/lib/vendor/bloub/engine.js +452 -0
- package/lib/vendor/bloub/expressions.d.ts +35 -0
- package/lib/vendor/bloub/expressions.js +143 -0
- package/lib/vendor/bloub/eyefit.d.ts +75 -0
- package/lib/vendor/bloub/eyefit.js +393 -0
- package/lib/vendor/bloub/face.d.ts +63 -0
- package/lib/vendor/bloub/face.js +106 -0
- package/lib/vendor/bloub/math.d.ts +22 -0
- package/lib/vendor/bloub/math.js +36 -0
- package/lib/vendor/bloub/profiles.d.ts +8 -0
- package/lib/vendor/bloub/profiles.js +20 -0
- package/lib/vendor/bloub/repere.d.ts +30 -0
- package/lib/vendor/bloub/repere.js +32 -0
- package/lib/vendor/bloub/shape.d.ts +80 -0
- package/lib/vendor/bloub/shape.js +268 -0
- package/lib/vendor/bloub/skins.d.ts +36 -0
- package/lib/vendor/bloub/skins.js +74 -0
- package/lib/vendor/bloub/states.d.ts +87 -0
- package/lib/vendor/bloub/states.js +468 -0
- package/package.json +23 -6
- package/lib/appearance.d.ts.map +0 -1
- package/lib/appearance.js.map +0 -1
- package/lib/blink.d.ts.map +0 -1
- package/lib/blink.js.map +0 -1
- package/lib/boot-appearance.d.ts.map +0 -1
- package/lib/boot-appearance.js.map +0 -1
- package/lib/boot-loader.d.ts.map +0 -1
- package/lib/boot-loader.js.map +0 -1
- package/lib/chrome/accessibility.d.ts.map +0 -1
- package/lib/chrome/accessibility.js.map +0 -1
- package/lib/chrome/blink.d.ts.map +0 -1
- package/lib/chrome/blink.js.map +0 -1
- package/lib/chrome/composer.d.ts.map +0 -1
- package/lib/chrome/composer.js.map +0 -1
- package/lib/chrome/conversation-messages.d.ts.map +0 -1
- package/lib/chrome/conversation-messages.js.map +0 -1
- package/lib/chrome/conversation.d.ts.map +0 -1
- package/lib/chrome/conversation.js.map +0 -1
- package/lib/chrome/frames.d.ts.map +0 -1
- package/lib/chrome/frames.js.map +0 -1
- package/lib/chrome/gaze.d.ts.map +0 -1
- package/lib/chrome/gaze.js.map +0 -1
- package/lib/chrome/identity.d.ts.map +0 -1
- package/lib/chrome/identity.js.map +0 -1
- package/lib/chrome/overlays.d.ts.map +0 -1
- package/lib/chrome/overlays.js.map +0 -1
- package/lib/chrome/portal.d.ts.map +0 -1
- package/lib/chrome/portal.js.map +0 -1
- package/lib/chrome/reactions.d.ts.map +0 -1
- package/lib/chrome/reactions.js.map +0 -1
- package/lib/chrome/sidebar.d.ts.map +0 -1
- package/lib/chrome/sidebar.js.map +0 -1
- package/lib/chrome/tokens.d.ts.map +0 -1
- package/lib/chrome/tokens.js.map +0 -1
- package/lib/chrome/workspace.d.ts.map +0 -1
- package/lib/chrome/workspace.js.map +0 -1
- package/lib/chrome.d.ts.map +0 -1
- package/lib/chrome.js.map +0 -1
- package/lib/client.d.ts.map +0 -1
- package/lib/client.js.map +0 -7
- package/lib/gaze.d.ts.map +0 -1
- package/lib/gaze.js.map +0 -1
- package/lib/generated-identity.d.ts.map +0 -1
- package/lib/generated-identity.js.map +0 -1
- package/lib/generated-keyart.d.ts.map +0 -1
- package/lib/generated-keyart.js.map +0 -1
- package/lib/generated-loading-assets.d.ts.map +0 -1
- package/lib/generated-loading-assets.js.map +0 -1
- package/lib/generated-sidebar-assets.d.ts +0 -4
- package/lib/generated-sidebar-assets.d.ts.map +0 -1
- package/lib/generated-sidebar-assets.js +0 -4
- package/lib/generated-sidebar-assets.js.map +0 -1
- package/lib/heixiu-interactions.d.ts.map +0 -1
- package/lib/heixiu-interactions.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/loading-heixiu.d.ts.map +0 -1
- package/lib/loading-heixiu.js.map +0 -1
- package/lib/plugin.d.ts.map +0 -1
- package/lib/plugin.js.map +0 -1
- package/lib/portal.d.ts.map +0 -1
- package/lib/portal.js.map +0 -1
- package/lib/reactions.d.ts.map +0 -1
- package/lib/reactions.js.map +0 -1
- package/lib/scene/heixiu-feedback.d.ts.map +0 -1
- package/lib/scene/heixiu-feedback.js.map +0 -1
- package/lib/scene/heixiu-interactions.d.ts.map +0 -1
- package/lib/scene/heixiu-interactions.js.map +0 -1
- package/lib/scene/state-transitions.d.ts.map +0 -1
- package/lib/scene/state-transitions.js.map +0 -1
- package/lib/scene.d.ts.map +0 -1
- package/lib/scene.js.map +0 -1
- package/lib/sidebar-glass.d.ts.map +0 -1
- package/lib/sidebar-glass.js.map +0 -1
- package/lib/sidebar-heixiu-escape.d.ts.map +0 -1
- package/lib/sidebar-heixiu-escape.js.map +0 -1
- package/lib/sidebar-heixiu-roaming.d.ts.map +0 -1
- package/lib/sidebar-heixiu-roaming.js.map +0 -1
- package/lib/state.d.ts.map +0 -1
- package/lib/state.js.map +0 -1
- package/lib/theme.d.ts.map +0 -1
- package/lib/theme.js.map +0 -1
package/lib/chrome/tokens.js
CHANGED
|
@@ -15,41 +15,28 @@ html {
|
|
|
15
15
|
--xiaohei-sidebar-emphasis: #E1E6E7;
|
|
16
16
|
--xiaohei-sidebar-icon: rgb(220 227 229 / 70%);
|
|
17
17
|
--xiaohei-sidebar-hover: rgb(231 238 240 / 6.5%);
|
|
18
|
-
--xiaohei-sidebar-glass-fill: rgb(
|
|
19
|
-
--xiaohei-sidebar-glass-solid: #
|
|
20
|
-
--xiaohei-sidebar-glass-edge: rgb(
|
|
21
|
-
--xiaohei-sidebar-glass-
|
|
22
|
-
--xiaohei-sidebar-glass-
|
|
23
|
-
--xiaohei-sidebar-glass-
|
|
24
|
-
--xiaohei-sidebar-glass-
|
|
25
|
-
--xiaohei-sidebar-glass-
|
|
26
|
-
--xiaohei-sidebar-
|
|
27
|
-
--xiaohei-sidebar-glass-brightness: 92%;
|
|
28
|
-
--xiaohei-sidebar-atmosphere-opacity: 0.36;
|
|
29
|
-
--xiaohei-sidebar-atmosphere-solid-opacity: 0.22;
|
|
30
|
-
--xiaohei-sidebar-control: rgb(231 238 240 / 4.5%);
|
|
18
|
+
--xiaohei-sidebar-glass-fill: rgb(18 22 25 / 48%);
|
|
19
|
+
--xiaohei-sidebar-glass-solid: #1B2023;
|
|
20
|
+
--xiaohei-sidebar-glass-edge: rgb(255 255 255 / 8%);
|
|
21
|
+
--xiaohei-sidebar-glass-highlight: rgb(255 255 255 / 13%);
|
|
22
|
+
--xiaohei-sidebar-glass-refraction: rgb(255 255 255 / 18%);
|
|
23
|
+
--xiaohei-sidebar-glass-saturation: 102%;
|
|
24
|
+
--xiaohei-sidebar-glass-blur: 18px;
|
|
25
|
+
--xiaohei-sidebar-glass-radius: 18px;
|
|
26
|
+
--xiaohei-sidebar-control: rgb(231 238 240 / 7%);
|
|
31
27
|
--xiaohei-sidebar-control-edge: rgb(231 238 240 / 8%);
|
|
32
28
|
--xiaohei-sidebar-control-edge-hover: rgb(231 238 240 / 13%);
|
|
33
29
|
--xiaohei-sidebar-control-highlight: rgb(255 255 255 / 5%);
|
|
34
|
-
--xiaohei-sidebar-
|
|
35
|
-
--xiaohei-sidebar-
|
|
36
|
-
--xiaohei-sidebar-shadow: rgb(0 0 0 / 24%);
|
|
30
|
+
--xiaohei-sidebar-shadow: rgb(0 0 0 / 30%);
|
|
31
|
+
--xiaohei-sidebar-shadow-soft: rgb(0 0 0 / 16%);
|
|
37
32
|
--xiaohei-workspace-label: rgb(220 227 229 / 78%);
|
|
38
|
-
--xiaohei-space-frame-edge: rgb(231 238 240 / 8%);
|
|
39
|
-
--xiaohei-space-frame-highlight: rgb(255 255 255 / 4%);
|
|
40
33
|
--xiaohei-workspace-control-edge: rgb(231 238 240 / 8%);
|
|
41
|
-
--xiaohei-workspace-
|
|
42
|
-
--xiaohei-workspace-
|
|
43
|
-
--xiaohei-workspace-
|
|
44
|
-
--xiaohei-workspace-
|
|
45
|
-
--xiaohei-workspace-
|
|
46
|
-
--xiaohei-workspace-
|
|
47
|
-
--xiaohei-workspace-row-active: rgb(231 238 240 / 7.5%);
|
|
48
|
-
--xiaohei-workspace-row-active-edge: rgb(231 238 240 / 5%);
|
|
49
|
-
--xiaohei-workspace-action-hover: rgb(231 238 240 / 7%);
|
|
50
|
-
--xiaohei-workspace-active-line: #69B6BA;
|
|
51
|
-
--xiaohei-workspace-active-line-glow: rgb(105 182 186 / 20%);
|
|
52
|
-
--xiaohei-workspace-rift-glow: rgb(105 182 186 / 12%);
|
|
34
|
+
--xiaohei-workspace-folder-open: rgb(231 238 240 / 3%);
|
|
35
|
+
--xiaohei-workspace-row-hover: rgb(231 238 240 / 4%);
|
|
36
|
+
--xiaohei-workspace-row-active: rgb(231 238 240 / 12%);
|
|
37
|
+
--xiaohei-workspace-row-active-hover: rgb(231 238 240 / 16%);
|
|
38
|
+
--xiaohei-workspace-row-active-edge: rgb(231 238 240 / 10%);
|
|
39
|
+
--xiaohei-workspace-action-hover: rgb(231 238 240 / 6%);
|
|
53
40
|
--xiaohei-frame-line: rgb(138 206 208 / 21%);
|
|
54
41
|
--xiaohei-frame-line-strong: rgb(151 216 218 / 40%);
|
|
55
42
|
--xiaohei-frame-fill: rgb(15 21 23 / 54%);
|
|
@@ -61,13 +48,53 @@ html {
|
|
|
61
48
|
--xiaohei-layer-panel: rgb(20 27 29 / 76%);
|
|
62
49
|
--xiaohei-layer-panel-edge: rgb(124 189 192 / 12%);
|
|
63
50
|
--xiaohei-layer-panel-shadow: rgb(0 5 8 / 26%);
|
|
64
|
-
--xiaohei-conversation-text: #
|
|
65
|
-
--xiaohei-conversation-meta: rgb(
|
|
66
|
-
--xiaohei-conversation-
|
|
67
|
-
|
|
51
|
+
--xiaohei-conversation-text: #E5E7E8;
|
|
52
|
+
--xiaohei-conversation-meta: rgb(199 203 206 / 60%);
|
|
53
|
+
--xiaohei-conversation-assistant:
|
|
54
|
+
linear-gradient(
|
|
55
|
+
115deg,
|
|
56
|
+
rgb(86 91 95 / 30%) 0%,
|
|
57
|
+
rgb(50 54 57 / 22%) 46%,
|
|
58
|
+
rgb(27 30 32 / 30%) 100%
|
|
59
|
+
),
|
|
60
|
+
rgb(20 23 25 / 68%);
|
|
61
|
+
--xiaohei-conversation-user:
|
|
62
|
+
linear-gradient(
|
|
63
|
+
118deg,
|
|
64
|
+
rgb(105 110 114 / 27%) 0%,
|
|
65
|
+
rgb(61 65 68 / 23%) 52%,
|
|
66
|
+
rgb(34 37 40 / 31%) 100%
|
|
67
|
+
),
|
|
68
|
+
rgb(27 30 33 / 72%);
|
|
69
|
+
--xiaohei-conversation-meta-surface:
|
|
70
|
+
linear-gradient(112deg, rgb(91 96 100 / 17%), rgb(42 46 49 / 14%)),
|
|
71
|
+
rgb(20 23 25 / 58%);
|
|
72
|
+
--xiaohei-conversation-meta-edge: rgb(221 225 227 / 12%);
|
|
73
|
+
--xiaohei-conversation-edge: rgb(229 232 234 / 17%);
|
|
74
|
+
--xiaohei-conversation-highlight: rgb(255 255 255 / 12%);
|
|
75
|
+
--xiaohei-conversation-shadow: rgb(0 0 0 / 28%);
|
|
76
|
+
--xiaohei-conversation-blur: 18px;
|
|
68
77
|
--xiaohei-layer-content: rgb(27 35 37 / 92%);
|
|
69
78
|
--xiaohei-layer-content-edge: rgb(124 189 192 / 20%);
|
|
70
79
|
--xiaohei-layer-content-highlight: rgb(239 255 255 / 4%);
|
|
80
|
+
--xiaohei-composer-fill: rgb(17 23 25 / 78%);
|
|
81
|
+
--xiaohei-composer-solid: #1B2325;
|
|
82
|
+
--xiaohei-composer-edge: rgb(232 240 242 / 13%);
|
|
83
|
+
--xiaohei-composer-edge-focus: rgb(232 240 242 / 26%);
|
|
84
|
+
--xiaohei-composer-highlight: rgb(255 255 255 / 7%);
|
|
85
|
+
--xiaohei-composer-highlight-strong: rgb(255 255 255 / 10%);
|
|
86
|
+
--xiaohei-composer-lower-edge: rgb(0 0 0 / 20%);
|
|
87
|
+
--xiaohei-composer-shadow: rgb(0 5 7 / 24%);
|
|
88
|
+
--xiaohei-composer-focus: rgb(232 240 242 / 7%);
|
|
89
|
+
--xiaohei-composer-tail: rgb(181 211 212 / 32%);
|
|
90
|
+
--xiaohei-composer-control-edge: rgb(231 238 240 / 10%);
|
|
91
|
+
--xiaohei-composer-control-hover: rgb(231 238 240 / 6%);
|
|
92
|
+
--xiaohei-composer-disabled: rgb(34 42 44 / 66%);
|
|
93
|
+
--xiaohei-composer-primary-icon: #EDF4F4;
|
|
94
|
+
--xiaohei-composer-heixiu-edge: rgb(235 243 244 / 34%);
|
|
95
|
+
--xiaohei-composer-heixiu-shadow: rgb(0 3 4 / 52%);
|
|
96
|
+
--xiaohei-composer-blur: 22px;
|
|
97
|
+
--xiaohei-composer-saturation: 106%;
|
|
71
98
|
--xiaohei-shadow: rgb(0 5 7 / 30%);
|
|
72
99
|
--xiaohei-focus-shadow: rgb(105 182 186 / 14%);
|
|
73
100
|
--xiaohei-overlay-fill: rgb(22 29 31 / 88%);
|
|
@@ -102,41 +129,27 @@ html[data-xiaohei-appearance='light'] {
|
|
|
102
129
|
--xiaohei-sidebar-emphasis: #3F454C;
|
|
103
130
|
--xiaohei-sidebar-icon: rgb(48 54 61 / 68%);
|
|
104
131
|
--xiaohei-sidebar-hover: rgb(48 54 61 / 6%);
|
|
105
|
-
--xiaohei-sidebar-glass-fill: rgb(
|
|
106
|
-
--xiaohei-sidebar-glass-solid: #
|
|
107
|
-
--xiaohei-sidebar-glass-edge: rgb(
|
|
108
|
-
--xiaohei-sidebar-glass-
|
|
109
|
-
--xiaohei-sidebar-glass-
|
|
110
|
-
--xiaohei-sidebar-glass-
|
|
111
|
-
--xiaohei-sidebar-glass-
|
|
112
|
-
--xiaohei-sidebar-
|
|
113
|
-
--xiaohei-sidebar-glass-saturation: 76%;
|
|
114
|
-
--xiaohei-sidebar-glass-brightness: 104%;
|
|
115
|
-
--xiaohei-sidebar-atmosphere-opacity: 0.28;
|
|
116
|
-
--xiaohei-sidebar-atmosphere-solid-opacity: 0.16;
|
|
117
|
-
--xiaohei-sidebar-control: rgb(255 255 255 / 26%);
|
|
132
|
+
--xiaohei-sidebar-glass-fill: rgb(247 245 242 / 58%);
|
|
133
|
+
--xiaohei-sidebar-glass-solid: #EDF1F3;
|
|
134
|
+
--xiaohei-sidebar-glass-edge: rgb(37 45 51 / 9%);
|
|
135
|
+
--xiaohei-sidebar-glass-highlight: rgb(255 255 255 / 64%);
|
|
136
|
+
--xiaohei-sidebar-glass-refraction: rgb(255 255 255 / 18%);
|
|
137
|
+
--xiaohei-sidebar-glass-saturation: 102%;
|
|
138
|
+
--xiaohei-sidebar-glass-blur: 18px;
|
|
139
|
+
--xiaohei-sidebar-control: rgb(255 255 255 / 30%);
|
|
118
140
|
--xiaohei-sidebar-control-edge: rgb(46 51 58 / 8%);
|
|
119
141
|
--xiaohei-sidebar-control-edge-hover: rgb(46 51 58 / 13%);
|
|
120
142
|
--xiaohei-sidebar-control-highlight: rgb(255 255 255 / 48%);
|
|
121
|
-
--xiaohei-sidebar-
|
|
122
|
-
--xiaohei-sidebar-
|
|
123
|
-
--xiaohei-sidebar-shadow: rgb(23 30 34 / 14%);
|
|
143
|
+
--xiaohei-sidebar-shadow: rgb(28 37 43 / 12%);
|
|
144
|
+
--xiaohei-sidebar-shadow-soft: rgb(28 37 43 / 6%);
|
|
124
145
|
--xiaohei-workspace-label: rgb(48 54 61 / 76%);
|
|
125
|
-
--xiaohei-space-frame-edge: rgb(46 51 58 / 8%);
|
|
126
|
-
--xiaohei-space-frame-highlight: rgb(255 255 255 / 32%);
|
|
127
146
|
--xiaohei-workspace-control-edge: rgb(46 51 58 / 9%);
|
|
128
|
-
--xiaohei-workspace-
|
|
129
|
-
--xiaohei-workspace-
|
|
130
|
-
--xiaohei-workspace-
|
|
131
|
-
--xiaohei-workspace-
|
|
132
|
-
--xiaohei-workspace-
|
|
133
|
-
--xiaohei-workspace-
|
|
134
|
-
--xiaohei-workspace-row-active: rgb(48 54 61 / 7.5%);
|
|
135
|
-
--xiaohei-workspace-row-active-edge: rgb(46 51 58 / 5%);
|
|
136
|
-
--xiaohei-workspace-action-hover: rgb(48 54 61 / 7%);
|
|
137
|
-
--xiaohei-workspace-active-line: #547D78;
|
|
138
|
-
--xiaohei-workspace-active-line-glow: rgb(84 125 120 / 20%);
|
|
139
|
-
--xiaohei-workspace-rift-glow: rgb(84 125 120 / 8%);
|
|
147
|
+
--xiaohei-workspace-folder-open: rgb(48 54 61 / 3%);
|
|
148
|
+
--xiaohei-workspace-row-hover: rgb(48 54 61 / 5.5%);
|
|
149
|
+
--xiaohei-workspace-row-active: rgb(48 54 61 / 10%);
|
|
150
|
+
--xiaohei-workspace-row-active-hover: rgb(48 54 61 / 14%);
|
|
151
|
+
--xiaohei-workspace-row-active-edge: rgb(46 51 58 / 8%);
|
|
152
|
+
--xiaohei-workspace-action-hover: rgb(255 255 255 / 10%);
|
|
140
153
|
--xiaohei-frame-line: rgb(84 125 120 / 22%);
|
|
141
154
|
--xiaohei-frame-line-strong: rgb(84 125 120 / 43%);
|
|
142
155
|
--xiaohei-frame-fill: rgb(224 231 238 / 58%);
|
|
@@ -148,13 +161,53 @@ html[data-xiaohei-appearance='light'] {
|
|
|
148
161
|
--xiaohei-layer-panel: rgb(226 232 239 / 78%);
|
|
149
162
|
--xiaohei-layer-panel-edge: rgb(84 125 120 / 11%);
|
|
150
163
|
--xiaohei-layer-panel-shadow: rgb(43 55 51 / 8%);
|
|
151
|
-
--xiaohei-conversation-text: #
|
|
152
|
-
--xiaohei-conversation-meta: rgb(
|
|
153
|
-
--xiaohei-conversation-
|
|
154
|
-
|
|
164
|
+
--xiaohei-conversation-text: #30353A;
|
|
165
|
+
--xiaohei-conversation-meta: rgb(72 79 86 / 58%);
|
|
166
|
+
--xiaohei-conversation-assistant:
|
|
167
|
+
linear-gradient(
|
|
168
|
+
115deg,
|
|
169
|
+
rgb(255 255 255 / 55%) 0%,
|
|
170
|
+
rgb(230 233 235 / 24%) 48%,
|
|
171
|
+
rgb(202 207 210 / 16%) 100%
|
|
172
|
+
),
|
|
173
|
+
rgb(232 235 237 / 67%);
|
|
174
|
+
--xiaohei-conversation-user:
|
|
175
|
+
linear-gradient(
|
|
176
|
+
118deg,
|
|
177
|
+
rgb(255 255 255 / 42%) 0%,
|
|
178
|
+
rgb(213 217 220 / 23%) 52%,
|
|
179
|
+
rgb(190 196 200 / 17%) 100%
|
|
180
|
+
),
|
|
181
|
+
rgb(220 224 227 / 72%);
|
|
182
|
+
--xiaohei-conversation-meta-surface:
|
|
183
|
+
linear-gradient(112deg, rgb(255 255 255 / 34%), rgb(201 206 209 / 15%)),
|
|
184
|
+
rgb(224 227 229 / 58%);
|
|
185
|
+
--xiaohei-conversation-meta-edge: rgb(50 57 63 / 12%);
|
|
186
|
+
--xiaohei-conversation-edge: rgb(45 52 58 / 15%);
|
|
187
|
+
--xiaohei-conversation-highlight: rgb(255 255 255 / 58%);
|
|
188
|
+
--xiaohei-conversation-shadow: rgb(36 42 47 / 13%);
|
|
189
|
+
--xiaohei-conversation-blur: 18px;
|
|
155
190
|
--xiaohei-layer-content: rgb(238 242 247 / 94%);
|
|
156
191
|
--xiaohei-layer-content-edge: rgb(84 125 120 / 20%);
|
|
157
192
|
--xiaohei-layer-content-highlight: rgb(255 255 255 / 62%);
|
|
193
|
+
--xiaohei-composer-fill: rgb(241 244 246 / 76%);
|
|
194
|
+
--xiaohei-composer-solid: #F0F3F5;
|
|
195
|
+
--xiaohei-composer-edge: rgb(45 53 59 / 12%);
|
|
196
|
+
--xiaohei-composer-edge-focus: rgb(45 53 59 / 24%);
|
|
197
|
+
--xiaohei-composer-highlight: rgb(255 255 255 / 72%);
|
|
198
|
+
--xiaohei-composer-highlight-strong: rgb(255 255 255 / 88%);
|
|
199
|
+
--xiaohei-composer-lower-edge: rgb(45 53 59 / 8%);
|
|
200
|
+
--xiaohei-composer-shadow: rgb(36 45 50 / 11%);
|
|
201
|
+
--xiaohei-composer-focus: rgb(45 53 59 / 6%);
|
|
202
|
+
--xiaohei-composer-tail: rgb(47 57 62 / 26%);
|
|
203
|
+
--xiaohei-composer-control-edge: rgb(46 53 59 / 10%);
|
|
204
|
+
--xiaohei-composer-control-hover: rgb(255 255 255 / 46%);
|
|
205
|
+
--xiaohei-composer-disabled: rgb(222 227 230 / 72%);
|
|
206
|
+
--xiaohei-composer-primary-icon: #F5F8F8;
|
|
207
|
+
--xiaohei-composer-heixiu-edge: rgb(255 255 255 / 24%);
|
|
208
|
+
--xiaohei-composer-heixiu-shadow: rgb(35 43 47 / 30%);
|
|
209
|
+
--xiaohei-composer-blur: 22px;
|
|
210
|
+
--xiaohei-composer-saturation: 104%;
|
|
158
211
|
--xiaohei-shadow: rgb(43 55 51 / 11%);
|
|
159
212
|
--xiaohei-focus-shadow: rgb(84 125 120 / 13%);
|
|
160
213
|
--xiaohei-overlay-fill: rgb(232 237 243 / 90%);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export declare const XIAOHEI_WORKSPACE_CSS:
|
|
1
|
+
/** Native tree geometry and scroll ownership; one sidebar glass, flat rows. */
|
|
2
|
+
export declare const XIAOHEI_WORKSPACE_CSS = "\n#root [data-slot='sidebar.workspaces'] > div {\n min-width: 0;\n}\n\n/* The native header and independently scrolling tree own their geometry.\n * No stitched frame: scrollbar reservation must not split its right edge. */\n#root [data-slot='sidebar.workspaces'] > div > div:first-child {\n color: var(--xiaohei-workspace-label);\n background: transparent;\n box-shadow: none;\n}\n\n#root [data-slot='sidebar.workspaces'] > div > div:first-child > span:first-child {\n font-size: 0;\n font-weight: 600;\n}\n\n#root [data-slot='sidebar.workspaces'] > div > div:first-child > span:first-child::after {\n content: '\u7A7A\u95F4';\n font-size: 12px;\n letter-spacing: .01em;\n}\n\n#root [data-slot='sidebar.workspaces'] [role='treeitem'] {\n position: relative;\n box-sizing: border-box;\n border: 1px solid transparent;\n border-radius: var(--xiaohei-radius-control);\n background: transparent;\n box-shadow: none;\n font-weight: 400;\n transition:\n color var(--xiaohei-motion-fast) ease,\n border-color var(--xiaohei-motion-fast) ease,\n background-color var(--xiaohei-motion-fast) ease;\n}\n\n/* Expansion is a browsing state, not the current conversation selection. */\n#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded='true'] {\n color: var(--xiaohei-sidebar-emphasis);\n background: var(--xiaohei-workspace-folder-open);\n font-weight: 500;\n}\n\n#root [data-slot='sidebar.workspaces'] [role='treeitem']:hover {\n color: var(--xiaohei-sidebar-emphasis);\n background: var(--xiaohei-workspace-row-hover);\n}\n\n#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-selected='true'] {\n color: var(--xiaohei-sidebar-emphasis);\n border-color: var(--xiaohei-workspace-row-active-edge);\n background: var(--xiaohei-workspace-row-active);\n font-weight: 600;\n}\n\n#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-selected='true']:hover {\n background: var(--xiaohei-workspace-row-active-hover);\n}\n\n/* Preserve native tooltip wrappers and indentation. Group pseudo-elements\n * belong to the host's drag/drop insertion markers, not theme decoration. */\n#root [data-slot='sidebar.workspaces'] [role='treeitem'] button,\n#root [data-slot='sidebar.workspaces'] > div > div:first-child button {\n color: var(--xiaohei-sidebar-icon);\n border-radius: var(--xiaohei-radius-small);\n}\n\n#root [data-slot='sidebar.workspaces'] [role='treeitem'] button:hover,\n#root [data-slot='sidebar.workspaces'] [role='treeitem'] button[aria-expanded='true'],\n#root [data-slot='sidebar.workspaces'] > div > div:first-child button:hover,\n#root [data-slot='sidebar.workspaces'] > div > div:first-child button[aria-expanded='true'] {\n color: var(--xiaohei-sidebar-emphasis);\n background: var(--xiaohei-workspace-action-hover);\n border-color: transparent;\n}\n\n@media (prefers-reduced-motion: reduce) {\n #root [data-slot='sidebar.workspaces'] [role='treeitem'] {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n #root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-selected='true'] {\n color: HighlightText;\n background: Highlight;\n border-color: Highlight;\n }\n}\n";
|
|
3
3
|
//# sourceMappingURL=workspace.d.ts.map
|
package/lib/chrome/workspace.js
CHANGED
|
@@ -1,312 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
/** Visual hierarchy for DSH's native workspace tree. No behaviour is replaced. */
|
|
1
|
+
/** Native tree geometry and scroll ownership; one sidebar glass, flat rows. */
|
|
3
2
|
export const XIAOHEI_WORKSPACE_CSS = `
|
|
4
|
-
/* Keep the official workspace root in charge of scrolling and sizing. */
|
|
5
3
|
#root [data-slot='sidebar.workspaces'] > div {
|
|
6
4
|
min-width: 0;
|
|
7
5
|
}
|
|
8
6
|
|
|
9
|
-
/* The
|
|
10
|
-
*
|
|
11
|
-
* official flex seat to the bottom of the sidebar. */
|
|
7
|
+
/* The native header and independently scrolling tree own their geometry.
|
|
8
|
+
* No stitched frame: scrollbar reservation must not split its right edge. */
|
|
12
9
|
#root [data-slot='sidebar.workspaces'] > div > div:first-child {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
border-radius: calc(var(--xiaohei-radius-control) + 3px)
|
|
17
|
-
calc(var(--xiaohei-radius-control) + 3px) 0 0;
|
|
18
|
-
box-shadow:
|
|
19
|
-
inset 1px 0 var(--xiaohei-space-frame-edge),
|
|
20
|
-
inset -1px 0 var(--xiaohei-space-frame-edge),
|
|
21
|
-
inset 0 1px var(--xiaohei-space-frame-edge),
|
|
22
|
-
inset 0 2px var(--xiaohei-space-frame-highlight);
|
|
10
|
+
color: var(--xiaohei-workspace-label);
|
|
11
|
+
background: transparent;
|
|
12
|
+
box-shadow: none;
|
|
23
13
|
}
|
|
24
14
|
|
|
25
15
|
#root [data-slot='sidebar.workspaces'] > div > div:first-child > span:first-child {
|
|
26
|
-
color: var(--xiaohei-workspace-label);
|
|
27
16
|
font-size: 0;
|
|
28
17
|
font-weight: 600;
|
|
29
|
-
letter-spacing: 0.01em;
|
|
30
18
|
}
|
|
31
19
|
|
|
32
|
-
/* Xiaohei's visual vocabulary calls an official Workspace a “Space”. The
|
|
33
|
-
* original node remains in place, preserving layout and accessibility data. */
|
|
34
20
|
#root [data-slot='sidebar.workspaces'] > div > div:first-child > span:first-child::after {
|
|
35
21
|
content: '空间';
|
|
36
22
|
font-size: 12px;
|
|
37
|
-
letter-spacing:
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
#root [data-slot='sidebar.workspaces'] > div > div:first-child button {
|
|
41
|
-
color: var(--xiaohei-sidebar-icon);
|
|
42
|
-
border: 1px solid transparent;
|
|
43
|
-
border-radius: var(--xiaohei-radius-small);
|
|
44
|
-
transition:
|
|
45
|
-
color var(--xiaohei-motion-fast) ease,
|
|
46
|
-
border-color var(--xiaohei-motion-fast) ease,
|
|
47
|
-
background-color var(--xiaohei-motion-fast) ease;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
#root [data-slot='sidebar.workspaces'] > div > div:first-child button:hover,
|
|
51
|
-
#root [data-slot='sidebar.workspaces'] > div > div:first-child button[aria-expanded='true'] {
|
|
52
|
-
color: var(--xiaohei-sidebar-emphasis);
|
|
53
|
-
border-color: var(--xiaohei-workspace-control-edge);
|
|
54
|
-
background: var(--xiaohei-workspace-row-hover);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/* A workspace group stays flat. When open, a quiet ink path links the folder
|
|
58
|
-
* to its sessions without changing the official tree geometry. */
|
|
59
|
-
#root [data-slot='sidebar.workspaces'] [role='tree'] > :has([role='treeitem'][aria-expanded]) {
|
|
60
|
-
position: relative;
|
|
61
|
-
min-width: 0;
|
|
62
|
-
margin-block: 0;
|
|
63
|
-
margin-inline: 2px;
|
|
64
|
-
overflow: visible;
|
|
65
|
-
box-shadow:
|
|
66
|
-
inset 1px 0 var(--xiaohei-space-frame-edge),
|
|
67
|
-
inset -1px 0 var(--xiaohei-space-frame-edge);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
#root [data-slot='sidebar.workspaces'] [role='tree']
|
|
71
|
-
> :has(> [role='treeitem'][aria-expanded]):not(:first-child) {
|
|
72
|
-
padding-top: 2px;
|
|
23
|
+
letter-spacing: .01em;
|
|
73
24
|
}
|
|
74
25
|
|
|
75
|
-
#root [data-slot='sidebar.workspaces'] [role='tree']
|
|
76
|
-
> :has(> [role='treeitem'][aria-expanded]):last-child {
|
|
77
|
-
padding-bottom: 3px;
|
|
78
|
-
border-radius: 0 0 calc(var(--xiaohei-radius-control) + 3px)
|
|
79
|
-
calc(var(--xiaohei-radius-control) + 3px);
|
|
80
|
-
box-shadow:
|
|
81
|
-
inset 1px 0 var(--xiaohei-space-frame-edge),
|
|
82
|
-
inset -1px 0 var(--xiaohei-space-frame-edge),
|
|
83
|
-
inset 0 -1px var(--xiaohei-space-frame-edge);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
#root [data-slot='sidebar.workspaces'] [role='tree'] > :has([role='treeitem'][aria-expanded='true'])::before {
|
|
87
|
-
content: '';
|
|
88
|
-
position: absolute;
|
|
89
|
-
z-index: 0;
|
|
90
|
-
left: 19px;
|
|
91
|
-
top: 31px;
|
|
92
|
-
bottom: 10px;
|
|
93
|
-
width: 1px;
|
|
94
|
-
pointer-events: none;
|
|
95
|
-
background: linear-gradient(
|
|
96
|
-
to bottom,
|
|
97
|
-
transparent,
|
|
98
|
-
var(--xiaohei-workspace-path) 12%,
|
|
99
|
-
var(--xiaohei-workspace-path-active) 72%,
|
|
100
|
-
transparent
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/* Folder and session rows share one rhythm. Native text, drag targets, action
|
|
105
|
-
* buttons, selection and accessible state remain untouched. */
|
|
106
26
|
#root [data-slot='sidebar.workspaces'] [role='treeitem'] {
|
|
107
27
|
position: relative;
|
|
108
|
-
z-index: 1;
|
|
109
28
|
box-sizing: border-box;
|
|
110
29
|
border: 1px solid transparent;
|
|
111
30
|
border-radius: var(--xiaohei-radius-control);
|
|
31
|
+
background: transparent;
|
|
32
|
+
box-shadow: none;
|
|
112
33
|
font-weight: 400;
|
|
113
34
|
transition:
|
|
114
35
|
color var(--xiaohei-motion-fast) ease,
|
|
115
|
-
border-color var(--xiaohei-motion-
|
|
116
|
-
background-color var(--xiaohei-motion-
|
|
117
|
-
transform var(--xiaohei-motion-base) var(--xiaohei-motion-curve);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* The folder row owns both spatial overlays. They follow the host's native
|
|
121
|
-
* aria-expanded state and never participate in layout or hit testing. */
|
|
122
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded] {
|
|
123
|
-
overflow: visible;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded] > * {
|
|
127
|
-
position: relative;
|
|
128
|
-
z-index: 1;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/* A narrow spirit mark identifies only the open Space. */
|
|
132
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded]::before {
|
|
133
|
-
content: '';
|
|
134
|
-
position: absolute;
|
|
135
|
-
z-index: 2;
|
|
136
|
-
left: -1px;
|
|
137
|
-
top: 9px;
|
|
138
|
-
bottom: 9px;
|
|
139
|
-
width: 3px;
|
|
140
|
-
border-radius: 999px;
|
|
141
|
-
pointer-events: none;
|
|
142
|
-
background: var(--xiaohei-workspace-active-line);
|
|
143
|
-
box-shadow:
|
|
144
|
-
0 0 6px var(--xiaohei-workspace-active-line-glow),
|
|
145
|
-
0 0 14px color-mix(
|
|
146
|
-
in srgb,
|
|
147
|
-
var(--xiaohei-workspace-active-line-glow) 30%,
|
|
148
|
-
transparent
|
|
149
|
-
);
|
|
150
|
-
opacity: 0;
|
|
151
|
-
transform: scaleY(.72);
|
|
152
|
-
transition:
|
|
153
|
-
opacity var(--xiaohei-motion-fast) ease,
|
|
154
|
-
transform var(--xiaohei-motion-base) var(--xiaohei-motion-curve);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/* The supplied vertical artwork owns the rift's ink, jade depth and feathered
|
|
158
|
-
* edge. It keeps its original narrow ratio instead of widening across the row. */
|
|
159
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded]::after {
|
|
160
|
-
content: '';
|
|
161
|
-
position: absolute;
|
|
162
|
-
z-index: 2;
|
|
163
|
-
right: 0;
|
|
164
|
-
top: 50%;
|
|
165
|
-
width: 20px;
|
|
166
|
-
height: 52px;
|
|
167
|
-
pointer-events: none;
|
|
168
|
-
background: center / contain no-repeat url("${XIAOHEI_WORKSPACE_RIFT_COLOR}");
|
|
169
|
-
filter:
|
|
170
|
-
saturate(.72)
|
|
171
|
-
contrast(1.04)
|
|
172
|
-
drop-shadow(0 0 2px var(--xiaohei-workspace-rift-glow));
|
|
173
|
-
opacity: 0;
|
|
174
|
-
transform: translateY(-50%) scaleX(.58) scaleY(.9);
|
|
175
|
-
transform-origin: right center;
|
|
176
|
-
transition:
|
|
177
|
-
opacity var(--xiaohei-motion-fast) ease,
|
|
178
|
-
transform var(--xiaohei-motion-base) var(--xiaohei-motion-curve);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem']:hover {
|
|
182
|
-
color: var(--xiaohei-sidebar-emphasis);
|
|
183
|
-
background: var(--xiaohei-workspace-row-hover);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
#root [data-slot='sidebar.workspaces']
|
|
187
|
-
[role='treeitem'][aria-expanded]:not([aria-expanded='true']):hover {
|
|
188
|
-
background: radial-gradient(
|
|
189
|
-
circle at 20% 50%,
|
|
190
|
-
var(--xiaohei-workspace-folder-open),
|
|
191
|
-
var(--xiaohei-workspace-row-hover) 55%,
|
|
192
|
-
transparent 85%
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
#root [data-slot='sidebar.workspaces']
|
|
197
|
-
[role='treeitem'][aria-expanded]:not([aria-expanded='true']):hover::after {
|
|
198
|
-
opacity: .26;
|
|
199
|
-
transform: translateY(-50%) scaleX(.72) scaleY(.94);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/* The expanded folder is lifted only enough to read as the path owner. */
|
|
203
|
-
#root [data-slot='sidebar.workspaces'] [role='tree']
|
|
204
|
-
> :has([role='treeitem'][aria-expanded])
|
|
205
|
-
> span:first-child
|
|
206
|
-
> [role='treeitem'][aria-expanded] {
|
|
207
|
-
width: calc(100% - 4px);
|
|
36
|
+
border-color var(--xiaohei-motion-fast) ease,
|
|
37
|
+
background-color var(--xiaohei-motion-fast) ease;
|
|
208
38
|
}
|
|
209
39
|
|
|
40
|
+
/* Expansion is a browsing state, not the current conversation selection. */
|
|
210
41
|
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded='true'] {
|
|
211
42
|
color: var(--xiaohei-sidebar-emphasis);
|
|
212
|
-
|
|
213
|
-
background: linear-gradient(
|
|
214
|
-
90deg,
|
|
215
|
-
var(--xiaohei-workspace-folder-open),
|
|
216
|
-
var(--xiaohei-workspace-row-active) 72%,
|
|
217
|
-
transparent 100%
|
|
218
|
-
);
|
|
219
|
-
box-shadow:
|
|
220
|
-
0 2px 6px var(--xiaohei-workspace-folder-shadow),
|
|
221
|
-
0 7px 18px var(--xiaohei-workspace-folder-shadow);
|
|
43
|
+
background: var(--xiaohei-workspace-folder-open);
|
|
222
44
|
font-weight: 500;
|
|
223
|
-
transform: translateX(2px);
|
|
224
45
|
}
|
|
225
46
|
|
|
226
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem']
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded='true']::after {
|
|
232
|
-
filter:
|
|
233
|
-
saturate(1.18)
|
|
234
|
-
contrast(1.08)
|
|
235
|
-
drop-shadow(0 0 3px var(--xiaohei-workspace-rift-glow));
|
|
236
|
-
opacity: .98;
|
|
237
|
-
transform: translateY(-50%) scaleX(1) scaleY(1);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/* Session rows sit one step deeper on the ink path. This adjusts only their
|
|
241
|
-
* visual box and leaves the host tree and event handlers intact. */
|
|
242
|
-
#root [data-slot='sidebar.workspaces'] [role='tree']
|
|
243
|
-
> :has([role='treeitem'][aria-expanded])
|
|
244
|
-
> span:not(:first-child)
|
|
245
|
-
> [role='treeitem'] {
|
|
246
|
-
width: calc(100% - 16px);
|
|
247
|
-
margin-inline-start: 12px;
|
|
47
|
+
#root [data-slot='sidebar.workspaces'] [role='treeitem']:hover {
|
|
48
|
+
color: var(--xiaohei-sidebar-emphasis);
|
|
49
|
+
background: var(--xiaohei-workspace-row-hover);
|
|
248
50
|
}
|
|
249
51
|
|
|
250
|
-
/* The selected session is the strongest navigation state. Most of the fill
|
|
251
|
-
* remains neutral; the narrow spirit line carries the theme accent. */
|
|
252
52
|
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-selected='true'] {
|
|
253
53
|
color: var(--xiaohei-sidebar-emphasis);
|
|
254
54
|
border-color: var(--xiaohei-workspace-row-active-edge);
|
|
255
55
|
background: var(--xiaohei-workspace-row-active);
|
|
256
|
-
font-weight:
|
|
56
|
+
font-weight: 600;
|
|
257
57
|
}
|
|
258
58
|
|
|
259
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem']
|
|
260
|
-
|
|
59
|
+
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-selected='true']:hover {
|
|
60
|
+
background: var(--xiaohei-workspace-row-active-hover);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Preserve native tooltip wrappers and indentation. Group pseudo-elements
|
|
64
|
+
* belong to the host's drag/drop insertion markers, not theme decoration. */
|
|
65
|
+
#root [data-slot='sidebar.workspaces'] [role='treeitem'] button,
|
|
66
|
+
#root [data-slot='sidebar.workspaces'] > div > div:first-child button {
|
|
67
|
+
color: var(--xiaohei-sidebar-icon);
|
|
68
|
+
border-radius: var(--xiaohei-radius-small);
|
|
261
69
|
}
|
|
262
70
|
|
|
263
71
|
#root [data-slot='sidebar.workspaces'] [role='treeitem'] button:hover,
|
|
264
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'] button[aria-expanded='true']
|
|
72
|
+
#root [data-slot='sidebar.workspaces'] [role='treeitem'] button[aria-expanded='true'],
|
|
73
|
+
#root [data-slot='sidebar.workspaces'] > div > div:first-child button:hover,
|
|
74
|
+
#root [data-slot='sidebar.workspaces'] > div > div:first-child button[aria-expanded='true'] {
|
|
265
75
|
color: var(--xiaohei-sidebar-emphasis);
|
|
266
76
|
background: var(--xiaohei-workspace-action-hover);
|
|
77
|
+
border-color: transparent;
|
|
267
78
|
}
|
|
268
79
|
|
|
269
80
|
@media (prefers-reduced-motion: reduce) {
|
|
270
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem']
|
|
271
|
-
|
|
272
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded]::after,
|
|
273
|
-
#root [data-slot='sidebar.workspaces'] > div > div:first-child button {
|
|
274
|
-
transition-duration: 0ms !important;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded='true'] {
|
|
278
|
-
transform: none;
|
|
81
|
+
#root [data-slot='sidebar.workspaces'] [role='treeitem'] {
|
|
82
|
+
transition: none;
|
|
279
83
|
}
|
|
280
84
|
}
|
|
281
85
|
|
|
282
86
|
@media (forced-colors: active) {
|
|
283
|
-
#root [data-slot='sidebar.workspaces'] > div > div:first-child,
|
|
284
|
-
#root [data-slot='sidebar.workspaces'] [role='tree']
|
|
285
|
-
> :has(> [role='treeitem'][aria-expanded]) {
|
|
286
|
-
box-shadow: inset 0 0 0 1px CanvasText;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
#root [data-slot='sidebar.workspaces'] [role='tree'] > :has([role='treeitem'][aria-expanded='true'])::before {
|
|
290
|
-
background: CanvasText;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
87
|
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-selected='true'] {
|
|
294
|
-
|
|
295
|
-
background: Canvas;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded='true'] {
|
|
299
|
-
border-color: Highlight;
|
|
300
|
-
box-shadow: none;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded]::before {
|
|
88
|
+
color: HighlightText;
|
|
304
89
|
background: Highlight;
|
|
305
|
-
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
#root [data-slot='sidebar.workspaces'] [role='treeitem'][aria-expanded]::after {
|
|
309
|
-
display: none;
|
|
90
|
+
border-color: Highlight;
|
|
310
91
|
}
|
|
311
92
|
}
|
|
312
93
|
`;
|
package/lib/chrome.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { XIAOHEI_CHROME_ACCESSIBILITY_CSS } from './chrome/accessibility.js';
|
|
2
2
|
import { XIAOHEI_COMPOSER_CSS } from './chrome/composer.js';
|
|
3
|
+
import { XIAOHEI_COMPOSER_SEND_HEIXIU_CSS } from './chrome/composer-send-heixiu.js';
|
|
4
|
+
import { XIAOHEI_CONTROL_PRIMITIVES_CSS } from './chrome/controls.js';
|
|
3
5
|
import { XIAOHEI_CONVERSATION_CSS } from './chrome/conversation.js';
|
|
4
6
|
import { XIAOHEI_CONVERSATION_MESSAGES_CSS } from './chrome/conversation-messages.js';
|
|
5
7
|
import { XIAOHEI_FRAME_SYSTEM_CSS } from './chrome/frames.js';
|
|
@@ -16,6 +18,7 @@ export const XIAOHEI_CHROME_STYLE_ID = 'dsh-theme-xiaohei/chrome-style';
|
|
|
16
18
|
*/
|
|
17
19
|
export const XIAOHEI_CHROME_CSS = [
|
|
18
20
|
XIAOHEI_CHROME_TOKENS_CSS,
|
|
21
|
+
XIAOHEI_CONTROL_PRIMITIVES_CSS,
|
|
19
22
|
XIAOHEI_FRAME_SYSTEM_CSS,
|
|
20
23
|
XIAOHEI_IDENTITY_CSS,
|
|
21
24
|
XIAOHEI_SIDEBAR_CSS,
|
|
@@ -23,6 +26,7 @@ export const XIAOHEI_CHROME_CSS = [
|
|
|
23
26
|
XIAOHEI_CONVERSATION_CSS,
|
|
24
27
|
XIAOHEI_CONVERSATION_MESSAGES_CSS,
|
|
25
28
|
XIAOHEI_COMPOSER_CSS,
|
|
29
|
+
XIAOHEI_COMPOSER_SEND_HEIXIU_CSS,
|
|
26
30
|
XIAOHEI_OVERLAY_CSS,
|
|
27
31
|
XIAOHEI_CHROME_ACCESSIBILITY_CSS,
|
|
28
32
|
].join('\n');
|
package/lib/client.d.ts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
2
|
+
export { inject } from './plugin.js';
|
|
3
|
+
/** Renderer-free wallpaper and native DSH chrome, mounted through plugin lifecycle. */
|
|
4
|
+
export declare function apply(ctx: ClientContext): void;
|
|
2
5
|
export { bindXiaoheiAppearance, XIAOHEI_APPEARANCE_ATTRIBUTE } from './appearance.js';
|
|
3
|
-
export { installXiaoheiBlink, XIAOHEI_BLINK_STYLE_ID } from './blink.js';
|
|
4
6
|
export { installXiaoheiChrome, XIAOHEI_CHROME_CSS, XIAOHEI_CHROME_STYLE_ID, } from './chrome.js';
|
|
5
|
-
export { XIAOHEI_PORTAL_CSS } from './chrome/portal.js';
|
|
6
|
-
export { XIAOHEI_BLINK_CSS } from './chrome/blink.js';
|
|
7
|
-
export { XIAOHEI_GAZE_CSS } from './chrome/gaze.js';
|
|
8
|
-
export { XIAOHEI_REACTION_CSS } from './chrome/reactions.js';
|
|
9
7
|
export { XIAOHEI_WORKSPACE_CSS } from './chrome/workspace.js';
|
|
10
|
-
export {
|
|
11
|
-
export { installXiaoheiHeixiuInteractions, XIAOHEI_HEIXIU_GREETING_EVENT, } from './heixiu-interactions.js';
|
|
12
|
-
export { installXiaoheiIdleReactions, resolveXiaoheiIdleTailDelay, XIAOHEI_REACTION_STYLE_ID, } from './reactions.js';
|
|
13
|
-
export { installXiaoheiPortalTransit, XIAOHEI_PORTAL_ACTIVITY_EVENT, XIAOHEI_PORTAL_LAYER_ID, XIAOHEI_PORTAL_STYLE_ID, } from './portal.js';
|
|
14
|
-
export { XIAOHEI_SCENE_CSS, XIAOHEI_SCENE_LAYER_ID, XIAOHEI_SCENE_PART_COUNT, XIAOHEI_SCENE_STYLE_ID, installXiaoheiScene, } from './scene.js';
|
|
15
|
-
export { bindXiaoheiSessionState, XIAOHEI_STATE_ATTRIBUTE } from './state.js';
|
|
8
|
+
export { configureXiaoheiWorldRenderer, XIAOHEI_SCENE_CSS, XIAOHEI_SCENE_LAYER_ID, XIAOHEI_SCENE_PART_COUNT, XIAOHEI_SCENE_STYLE_ID, XIAOHEI_SCENE_WORLD_CLASS, installXiaoheiScene, } from './scene.js';
|
|
16
9
|
export { XIAOHEI_DAWN_THEME, XIAOHEI_DAWN_THEME_ID, XIAOHEI_NIGHT_THEME, XIAOHEI_NIGHT_THEME_ID, XIAOHEI_THEME_TOKEN_OVERRIDES, } from './theme.js';
|
|
17
10
|
//# sourceMappingURL=client.d.ts.map
|