@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.
Files changed (222) hide show
  1. package/README.md +39 -17
  2. package/THIRD_PARTY_NOTICES.md +41 -0
  3. package/lib/appearance.js +26 -10
  4. package/lib/blink.js +3 -3
  5. package/lib/bloub-heixiu/ambient.d.ts +3 -0
  6. package/lib/bloub-heixiu/ambient.js +12 -0
  7. package/lib/bloub-heixiu/character.d.ts +33 -0
  8. package/lib/bloub-heixiu/character.js +124 -0
  9. package/lib/bloub-heixiu/effects.d.ts +4 -0
  10. package/lib/bloub-heixiu/effects.js +91 -0
  11. package/lib/bloub-heixiu/flight.d.ts +15 -0
  12. package/lib/bloub-heixiu/flight.js +66 -0
  13. package/lib/bloub-heixiu/follow.d.ts +13 -0
  14. package/lib/bloub-heixiu/follow.js +23 -0
  15. package/lib/bloub-heixiu/layout.d.ts +18 -0
  16. package/lib/bloub-heixiu/layout.js +12 -0
  17. package/lib/bloub-heixiu/renderer.d.ts +16 -0
  18. package/lib/bloub-heixiu/renderer.js +94 -0
  19. package/lib/bloub-heixiu/runtime.d.ts +6 -0
  20. package/lib/bloub-heixiu/runtime.js +395 -0
  21. package/lib/bloub-heixiu/signals.d.ts +17 -0
  22. package/lib/bloub-heixiu/signals.js +53 -0
  23. package/lib/bloub-heixiu/styles.d.ts +2 -0
  24. package/lib/bloub-heixiu/styles.js +98 -0
  25. package/lib/chrome/accessibility.d.ts +1 -1
  26. package/lib/chrome/accessibility.js +5 -13
  27. package/lib/chrome/composer-avatar.d.ts +10 -0
  28. package/lib/chrome/composer-avatar.js +599 -0
  29. package/lib/chrome/composer-send-heixiu.d.ts +3 -0
  30. package/lib/chrome/composer-send-heixiu.js +143 -0
  31. package/lib/chrome/composer.d.ts +2 -2
  32. package/lib/chrome/composer.js +84 -95
  33. package/lib/chrome/controls.d.ts +8 -0
  34. package/lib/chrome/controls.js +348 -0
  35. package/lib/chrome/conversation-messages.d.ts +1 -1
  36. package/lib/chrome/conversation-messages.js +207 -9
  37. package/lib/chrome/conversation.d.ts +1 -1
  38. package/lib/chrome/conversation.js +6 -0
  39. package/lib/chrome/identity.js +4 -18
  40. package/lib/chrome/portal.d.ts +1 -1
  41. package/lib/chrome/portal.js +1 -1
  42. package/lib/chrome/sidebar.d.ts +1 -1
  43. package/lib/chrome/sidebar.js +134 -153
  44. package/lib/chrome/tokens.d.ts +1 -1
  45. package/lib/chrome/tokens.js +121 -68
  46. package/lib/chrome/workspace.d.ts +2 -2
  47. package/lib/chrome/workspace.js +35 -254
  48. package/lib/chrome.js +4 -0
  49. package/lib/client.d.ts +5 -12
  50. package/lib/client.js +6262 -4455
  51. package/lib/composer-avatar.d.ts +18 -0
  52. package/lib/composer-avatar.js +441 -0
  53. package/lib/composer-send-heixiu.d.ts +8 -0
  54. package/lib/composer-send-heixiu.js +133 -0
  55. package/lib/gaze.js +3 -3
  56. package/lib/generated-backgrounds.d.ts +14 -0
  57. package/lib/generated-backgrounds.js +14 -0
  58. package/lib/generated-character-motion.d.ts +4 -0
  59. package/lib/generated-character-motion.js +2 -0
  60. package/lib/generated-identity.d.ts +1 -0
  61. package/lib/generated-identity.js +1 -0
  62. package/lib/generated-keyart.d.ts +18 -3
  63. package/lib/generated-keyart.js +18 -3
  64. package/lib/host-contract.d.ts +9 -0
  65. package/lib/host-contract.js +13 -0
  66. package/lib/host-dom.d.ts +11 -0
  67. package/lib/host-dom.js +60 -0
  68. package/lib/loading-heixiu.js +3 -3
  69. package/lib/metallic-brand-mark.d.ts +10 -0
  70. package/lib/metallic-brand-mark.js +323 -0
  71. package/lib/plugin.d.ts +1 -1
  72. package/lib/plugin.js +31 -16
  73. package/lib/portal.js +11 -10
  74. package/lib/reactions.js +3 -3
  75. package/lib/scene/avatar-model.d.ts +6 -0
  76. package/lib/scene/avatar-model.js +646 -0
  77. package/lib/scene/avatar-motion.d.ts +3 -0
  78. package/lib/scene/avatar-motion.js +799 -0
  79. package/lib/scene/character-idle.d.ts +17 -0
  80. package/lib/scene/character-idle.js +65 -0
  81. package/lib/scene/character-layout.d.ts +24 -0
  82. package/lib/scene/character-layout.js +51 -0
  83. package/lib/scene/character-motion-clock.d.ts +18 -0
  84. package/lib/scene/character-motion-clock.js +57 -0
  85. package/lib/scene/character-motion-types.d.ts +12 -0
  86. package/lib/scene/character-motion-types.js +2 -0
  87. package/lib/scene/character-motion.d.ts +6 -0
  88. package/lib/scene/character-motion.js +126 -0
  89. package/lib/scene/character-poses.d.ts +26 -0
  90. package/lib/scene/character-poses.js +11 -0
  91. package/lib/scene/character-rig-renderer.d.ts +4 -0
  92. package/lib/scene/character-rig-renderer.js +85 -0
  93. package/lib/scene/character-rig.d.ts +20 -0
  94. package/lib/scene/character-rig.js +53 -0
  95. package/lib/scene/heixiu-feedback.d.ts +1 -1
  96. package/lib/scene/heixiu-feedback.js +0 -17
  97. package/lib/scene/pointer-bridge.d.ts +21 -0
  98. package/lib/scene/pointer-bridge.js +155 -0
  99. package/lib/scene/runtime.d.ts +12 -0
  100. package/lib/scene/runtime.js +87 -0
  101. package/lib/scene/styles.d.ts +7 -0
  102. package/lib/scene/styles.js +75 -0
  103. package/lib/scene/sylva-performance.d.ts +11 -0
  104. package/lib/scene/sylva-performance.js +58 -0
  105. package/lib/scene/wallpaper-character-styles.d.ts +3 -0
  106. package/lib/scene/wallpaper-character-styles.js +53 -0
  107. package/lib/scene/wallpaper-character.d.ts +4 -0
  108. package/lib/scene/wallpaper-character.js +213 -0
  109. package/lib/scene.d.ts +7 -13
  110. package/lib/scene.js +7 -1023
  111. package/lib/sidebar-glass.js +99 -36
  112. package/lib/sidebar-heixiu-roaming.js +5 -5
  113. package/lib/sidebar-reveal.d.ts +8 -0
  114. package/lib/sidebar-reveal.js +51 -0
  115. package/lib/state.d.ts +14 -2
  116. package/lib/state.js +12 -4
  117. package/lib/theme.js +2 -2
  118. package/lib/vendor/bloub/decor.d.ts +114 -0
  119. package/lib/vendor/bloub/decor.js +198 -0
  120. package/lib/vendor/bloub/engine.d.ts +213 -0
  121. package/lib/vendor/bloub/engine.js +452 -0
  122. package/lib/vendor/bloub/expressions.d.ts +35 -0
  123. package/lib/vendor/bloub/expressions.js +143 -0
  124. package/lib/vendor/bloub/eyefit.d.ts +75 -0
  125. package/lib/vendor/bloub/eyefit.js +393 -0
  126. package/lib/vendor/bloub/face.d.ts +63 -0
  127. package/lib/vendor/bloub/face.js +106 -0
  128. package/lib/vendor/bloub/math.d.ts +22 -0
  129. package/lib/vendor/bloub/math.js +36 -0
  130. package/lib/vendor/bloub/profiles.d.ts +8 -0
  131. package/lib/vendor/bloub/profiles.js +20 -0
  132. package/lib/vendor/bloub/repere.d.ts +30 -0
  133. package/lib/vendor/bloub/repere.js +32 -0
  134. package/lib/vendor/bloub/shape.d.ts +80 -0
  135. package/lib/vendor/bloub/shape.js +268 -0
  136. package/lib/vendor/bloub/skins.d.ts +36 -0
  137. package/lib/vendor/bloub/skins.js +74 -0
  138. package/lib/vendor/bloub/states.d.ts +87 -0
  139. package/lib/vendor/bloub/states.js +468 -0
  140. package/package.json +23 -6
  141. package/lib/appearance.d.ts.map +0 -1
  142. package/lib/appearance.js.map +0 -1
  143. package/lib/blink.d.ts.map +0 -1
  144. package/lib/blink.js.map +0 -1
  145. package/lib/boot-appearance.d.ts.map +0 -1
  146. package/lib/boot-appearance.js.map +0 -1
  147. package/lib/boot-loader.d.ts.map +0 -1
  148. package/lib/boot-loader.js.map +0 -1
  149. package/lib/chrome/accessibility.d.ts.map +0 -1
  150. package/lib/chrome/accessibility.js.map +0 -1
  151. package/lib/chrome/blink.d.ts.map +0 -1
  152. package/lib/chrome/blink.js.map +0 -1
  153. package/lib/chrome/composer.d.ts.map +0 -1
  154. package/lib/chrome/composer.js.map +0 -1
  155. package/lib/chrome/conversation-messages.d.ts.map +0 -1
  156. package/lib/chrome/conversation-messages.js.map +0 -1
  157. package/lib/chrome/conversation.d.ts.map +0 -1
  158. package/lib/chrome/conversation.js.map +0 -1
  159. package/lib/chrome/frames.d.ts.map +0 -1
  160. package/lib/chrome/frames.js.map +0 -1
  161. package/lib/chrome/gaze.d.ts.map +0 -1
  162. package/lib/chrome/gaze.js.map +0 -1
  163. package/lib/chrome/identity.d.ts.map +0 -1
  164. package/lib/chrome/identity.js.map +0 -1
  165. package/lib/chrome/overlays.d.ts.map +0 -1
  166. package/lib/chrome/overlays.js.map +0 -1
  167. package/lib/chrome/portal.d.ts.map +0 -1
  168. package/lib/chrome/portal.js.map +0 -1
  169. package/lib/chrome/reactions.d.ts.map +0 -1
  170. package/lib/chrome/reactions.js.map +0 -1
  171. package/lib/chrome/sidebar.d.ts.map +0 -1
  172. package/lib/chrome/sidebar.js.map +0 -1
  173. package/lib/chrome/tokens.d.ts.map +0 -1
  174. package/lib/chrome/tokens.js.map +0 -1
  175. package/lib/chrome/workspace.d.ts.map +0 -1
  176. package/lib/chrome/workspace.js.map +0 -1
  177. package/lib/chrome.d.ts.map +0 -1
  178. package/lib/chrome.js.map +0 -1
  179. package/lib/client.d.ts.map +0 -1
  180. package/lib/client.js.map +0 -7
  181. package/lib/gaze.d.ts.map +0 -1
  182. package/lib/gaze.js.map +0 -1
  183. package/lib/generated-identity.d.ts.map +0 -1
  184. package/lib/generated-identity.js.map +0 -1
  185. package/lib/generated-keyart.d.ts.map +0 -1
  186. package/lib/generated-keyart.js.map +0 -1
  187. package/lib/generated-loading-assets.d.ts.map +0 -1
  188. package/lib/generated-loading-assets.js.map +0 -1
  189. package/lib/generated-sidebar-assets.d.ts +0 -4
  190. package/lib/generated-sidebar-assets.d.ts.map +0 -1
  191. package/lib/generated-sidebar-assets.js +0 -4
  192. package/lib/generated-sidebar-assets.js.map +0 -1
  193. package/lib/heixiu-interactions.d.ts.map +0 -1
  194. package/lib/heixiu-interactions.js.map +0 -1
  195. package/lib/index.d.ts.map +0 -1
  196. package/lib/index.js.map +0 -1
  197. package/lib/loading-heixiu.d.ts.map +0 -1
  198. package/lib/loading-heixiu.js.map +0 -1
  199. package/lib/plugin.d.ts.map +0 -1
  200. package/lib/plugin.js.map +0 -1
  201. package/lib/portal.d.ts.map +0 -1
  202. package/lib/portal.js.map +0 -1
  203. package/lib/reactions.d.ts.map +0 -1
  204. package/lib/reactions.js.map +0 -1
  205. package/lib/scene/heixiu-feedback.d.ts.map +0 -1
  206. package/lib/scene/heixiu-feedback.js.map +0 -1
  207. package/lib/scene/heixiu-interactions.d.ts.map +0 -1
  208. package/lib/scene/heixiu-interactions.js.map +0 -1
  209. package/lib/scene/state-transitions.d.ts.map +0 -1
  210. package/lib/scene/state-transitions.js.map +0 -1
  211. package/lib/scene.d.ts.map +0 -1
  212. package/lib/scene.js.map +0 -1
  213. package/lib/sidebar-glass.d.ts.map +0 -1
  214. package/lib/sidebar-glass.js.map +0 -1
  215. package/lib/sidebar-heixiu-escape.d.ts.map +0 -1
  216. package/lib/sidebar-heixiu-escape.js.map +0 -1
  217. package/lib/sidebar-heixiu-roaming.d.ts.map +0 -1
  218. package/lib/sidebar-heixiu-roaming.js.map +0 -1
  219. package/lib/state.d.ts.map +0 -1
  220. package/lib/state.js.map +0 -1
  221. package/lib/theme.d.ts.map +0 -1
  222. package/lib/theme.js.map +0 -1
@@ -1,11 +1,10 @@
1
- import { XIAOHEI_IDENTITY_CAT_TAG, XIAOHEI_IDENTITY_CHARM, } from '../generated-identity.js';
1
+ import { XIAOHEI_IDENTITY_CHARM } from '../generated-identity.js';
2
2
  /**
3
3
  * Xiaohei ornaments shared by native DSH chrome and opt-in feature plugins.
4
4
  * Frames own geometry and headings; this layer owns generated hanging art only.
5
5
  */
6
6
  export const XIAOHEI_IDENTITY_CSS = `
7
- :where([data-xiaohei-frame-ornament='spirit-knot'])::after,
8
- #root [data-composer-card='true']::before {
7
+ :where([data-xiaohei-frame-ornament='spirit-knot'])::after {
9
8
  content: '';
10
9
  position: absolute;
11
10
  z-index: 3;
@@ -29,31 +28,18 @@ export const XIAOHEI_IDENTITY_CSS = `
29
28
  background-image: url("${XIAOHEI_IDENTITY_CHARM}");
30
29
  }
31
30
 
32
- #root [data-composer-card='true']::before {
33
- width: 34px;
34
- height: 50px;
35
- background-image: url("${XIAOHEI_IDENTITY_CAT_TAG}");
36
- }
37
-
38
31
  :where([data-xiaohei-frame-ornament='spirit-knot'])::after {
39
32
  top: -6px;
40
33
  right: 16px;
41
34
  }
42
35
 
43
- #root [data-composer-card='true']::before {
44
- top: -10px;
45
- right: 24px;
46
- }
47
-
48
- :where([data-xiaohei-frame-ornament='spirit-knot']):hover::after,
49
- #root [data-composer-card='true']:focus-within::before {
36
+ :where([data-xiaohei-frame-ornament='spirit-knot']):hover::after {
50
37
  filter: drop-shadow(0 4px 6px var(--xiaohei-focus-shadow));
51
38
  transform: rotate(-4deg) scale(1.03);
52
39
  }
53
40
 
54
41
  @media (forced-colors: active) {
55
- :where([data-xiaohei-frame-ornament])::after,
56
- #root [data-composer-card='true']::before {
42
+ :where([data-xiaohei-frame-ornament])::after {
57
43
  display: none;
58
44
  }
59
45
  }
@@ -2,5 +2,5 @@
2
2
  * Two compact voids and one travelling Heixiu. The portals are matte spatial
3
3
  * gaps rather than rings; all keyframes stay on compositor-safe properties.
4
4
  */
5
- export declare const XIAOHEI_PORTAL_CSS = "\n#dsh-theme-xiaohei\\/portal-layer {\n position: absolute;\n inset: 0;\n z-index: 0;\n overflow: hidden;\n contain: strict;\n pointer-events: none;\n user-select: none;\n}\n\n#dsh-theme-xiaohei\\/portal-layer > * {\n position: absolute;\n display: block;\n pointer-events: none;\n}\n\n.xiaohei-portal__void {\n width: clamp(2.8rem, 3.6vw, 4rem);\n aspect-ratio: 0.76;\n border-radius: 48% 52% 46% 54% / 52% 46% 54% 48%;\n opacity: 0;\n background:\n radial-gradient(ellipse at 46% 48%, #010304 0%, #020609 58%, #092027 72%, rgb(66 188 170 / 36%) 78%, transparent 82%);\n box-shadow:\n inset 0 0 0.7rem rgb(0 0 0 / 92%),\n 0 0 0.85rem rgb(78 214 191 / 18%);\n will-change: transform, opacity;\n}\n\n.xiaohei-portal__void::after {\n position: absolute;\n inset: 13% 18%;\n display: block;\n content: '';\n border-radius: inherit;\n background: #000102;\n box-shadow: inset 0.18rem 0 0.45rem rgb(16 56 64 / 42%);\n}\n\n.xiaohei-portal__void--entry {\n left: var(--portal-entry-x);\n top: var(--portal-entry-y);\n transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(0.04, 0.12, 1);\n}\n\n.xiaohei-portal__void--exit {\n left: var(--portal-exit-x);\n top: var(--portal-exit-y);\n transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(0.04, 0.12, 1);\n}\n\n.xiaohei-portal__traveler {\n left: var(--portal-entry-x);\n top: var(--portal-entry-y);\n z-index: 1;\n width: clamp(2.7rem, 3.4vw, 3.7rem);\n aspect-ratio: 1;\n opacity: 0;\n transform: translate3d(-5rem, -50%, 0) scale(0.9);\n filter:\n drop-shadow(0 0.25rem 0.45rem rgb(90 221 199 / 20%))\n drop-shadow(0 0.58rem 0.9rem rgb(1 9 10 / 22%));\n will-change: transform, opacity;\n}\n\n.xiaohei-portal__traveler > img {\n position: absolute;\n inset: 0;\n display: block;\n width: 100%;\n height: 100%;\n max-width: none;\n max-height: none;\n object-fit: contain;\n filter: brightness(1.1) contrast(1.05) saturate(0.82);\n}\n\n.xiaohei-portal__traveler-blink { opacity: 0; }\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__void--entry {\n animation: xiaohei-portal-entry 2.6s cubic-bezier(0.4, 0, 0.2, 1) both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__void--exit {\n animation: xiaohei-portal-exit 2.6s cubic-bezier(0.4, 0, 0.2, 1) both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__traveler {\n animation: xiaohei-portal-traveler 2.6s cubic-bezier(0.45, 0, 0.25, 1) both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__traveler-open {\n animation: xiaohei-portal-eyes-open 2.6s step-end both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__traveler-blink {\n animation: xiaohei-portal-eyes-blink 2.6s step-end both;\n}\n\n@keyframes xiaohei-portal-entry {\n 0% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n 10%, 55% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(1, 1, 1); opacity: 0.96; }\n 68%, 100% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n}\n\n@keyframes xiaohei-portal-exit {\n 0%, 40% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n 51%, 86% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(1, 1, 1); opacity: 0.96; }\n 100% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n}\n\n@keyframes xiaohei-portal-traveler {\n 0% { transform: translate3d(-5rem, -50%, 0) scale(0.88); opacity: 0; }\n 9% { transform: translate3d(-4rem, -50%, 0) scale(0.92); opacity: 0.82; }\n 29% { transform: translate3d(-1rem, -50%, 0) scale(0.92); opacity: 1; }\n 43% { transform: translate3d(0, -50%, 0) scale(0.12); opacity: 0; }\n 50% { transform: translate3d(var(--portal-travel-x), var(--portal-travel-y), 0) scale(0.12); opacity: 0; }\n 59% { transform: translate3d(var(--portal-travel-x), var(--portal-travel-y), 0) scale(0.16); opacity: 0; }\n 70% { transform: translate3d(calc(var(--portal-travel-x) + var(--portal-emerge-near)), var(--portal-travel-y), 0) scale(0.94); opacity: 1; }\n 90% { transform: translate3d(calc(var(--portal-travel-x) + var(--portal-emerge-far)), var(--portal-travel-y), 0) scale(0.92); opacity: 0.9; }\n 100% { transform: translate3d(calc(var(--portal-travel-x) + var(--portal-emerge-end)), var(--portal-travel-y), 0) scale(0.9); opacity: 0; }\n}\n\n@keyframes xiaohei-portal-eyes-open {\n 0%, 20.9% { opacity: 1; transform: translate3d(0, 0, 0); }\n 21%, 23.5% { opacity: 0; transform: translate3d(0, 0, 0); }\n 23.6%, 75.9% { opacity: 1; transform: translate3d(0, 0, 0); }\n 76%, 78.5% { opacity: 0; transform: translate3d(0, 0, 0); }\n 78.6%, 100% { opacity: 1; transform: translate3d(0, 0, 0); }\n}\n\n@keyframes xiaohei-portal-eyes-blink {\n 0%, 20.9% { opacity: 0; transform: translate3d(0, 0, 0); }\n 21%, 23.5% { opacity: 1; transform: translate3d(0, 0, 0); }\n 23.6%, 75.9% { opacity: 0; transform: translate3d(0, 0, 0); }\n 76%, 78.5% { opacity: 1; transform: translate3d(0, 0, 0); }\n 78.6%, 100% { opacity: 0; transform: translate3d(0, 0, 0); }\n}\n\nhtml[data-xiaohei-appearance='light'] .xiaohei-portal__void {\n box-shadow:\n inset 0 0 0.7rem rgb(0 0 0 / 94%),\n 0 0 0.75rem rgb(47 125 108 / 22%);\n}\n\nhtml[data-xiaohei-appearance='light'] .xiaohei-portal__traveler {\n filter:\n drop-shadow(0 0.25rem 0.4rem rgb(48 96 81 / 16%))\n drop-shadow(0 0.55rem 0.8rem rgb(43 61 54 / 12%));\n}\n\nhtml[data-xiaohei-appearance='light'] .xiaohei-portal__traveler > img {\n filter: brightness(1.01) contrast(1.06) saturate(0.76);\n}\n\n@media (max-width: 768px) {\n #dsh-theme-xiaohei\\/portal-layer { display: none; }\n}\n\n@media (prefers-reduced-motion: reduce), (forced-colors: active), print {\n #dsh-theme-xiaohei\\/portal-layer { display: none; }\n}\n";
5
+ export declare const XIAOHEI_PORTAL_CSS = "\n#dsh-theme-xiaohei\\/portal-layer {\n position: absolute;\n inset: 0;\n z-index: 2;\n overflow: hidden;\n contain: strict;\n pointer-events: none;\n user-select: none;\n}\n\n#dsh-theme-xiaohei\\/portal-layer > * {\n position: absolute;\n display: block;\n pointer-events: none;\n}\n\n.xiaohei-portal__void {\n width: clamp(2.8rem, 3.6vw, 4rem);\n aspect-ratio: 0.76;\n border-radius: 48% 52% 46% 54% / 52% 46% 54% 48%;\n opacity: 0;\n background:\n radial-gradient(ellipse at 46% 48%, #010304 0%, #020609 58%, #092027 72%, rgb(66 188 170 / 36%) 78%, transparent 82%);\n box-shadow:\n inset 0 0 0.7rem rgb(0 0 0 / 92%),\n 0 0 0.85rem rgb(78 214 191 / 18%);\n will-change: transform, opacity;\n}\n\n.xiaohei-portal__void::after {\n position: absolute;\n inset: 13% 18%;\n display: block;\n content: '';\n border-radius: inherit;\n background: #000102;\n box-shadow: inset 0.18rem 0 0.45rem rgb(16 56 64 / 42%);\n}\n\n.xiaohei-portal__void--entry {\n left: var(--portal-entry-x);\n top: var(--portal-entry-y);\n transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(0.04, 0.12, 1);\n}\n\n.xiaohei-portal__void--exit {\n left: var(--portal-exit-x);\n top: var(--portal-exit-y);\n transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(0.04, 0.12, 1);\n}\n\n.xiaohei-portal__traveler {\n left: var(--portal-entry-x);\n top: var(--portal-entry-y);\n z-index: 1;\n width: clamp(2.7rem, 3.4vw, 3.7rem);\n aspect-ratio: 1;\n opacity: 0;\n transform: translate3d(-5rem, -50%, 0) scale(0.9);\n filter:\n drop-shadow(0 0.25rem 0.45rem rgb(90 221 199 / 20%))\n drop-shadow(0 0.58rem 0.9rem rgb(1 9 10 / 22%));\n will-change: transform, opacity;\n}\n\n.xiaohei-portal__traveler > img {\n position: absolute;\n inset: 0;\n display: block;\n width: 100%;\n height: 100%;\n max-width: none;\n max-height: none;\n object-fit: contain;\n filter: brightness(1.1) contrast(1.05) saturate(0.82);\n}\n\n.xiaohei-portal__traveler-blink { opacity: 0; }\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__void--entry {\n animation: xiaohei-portal-entry 2.6s cubic-bezier(0.4, 0, 0.2, 1) both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__void--exit {\n animation: xiaohei-portal-exit 2.6s cubic-bezier(0.4, 0, 0.2, 1) both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__traveler {\n animation: xiaohei-portal-traveler 2.6s cubic-bezier(0.45, 0, 0.25, 1) both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__traveler-open {\n animation: xiaohei-portal-eyes-open 2.6s step-end both;\n}\n\n#dsh-theme-xiaohei\\/portal-layer[data-running='true'] .xiaohei-portal__traveler-blink {\n animation: xiaohei-portal-eyes-blink 2.6s step-end both;\n}\n\n@keyframes xiaohei-portal-entry {\n 0% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n 10%, 55% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(1, 1, 1); opacity: 0.96; }\n 68%, 100% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-entry-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n}\n\n@keyframes xiaohei-portal-exit {\n 0%, 40% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n 51%, 86% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(1, 1, 1); opacity: 0.96; }\n 100% { transform: translate3d(-50%, -50%, 0) rotate(var(--portal-exit-angle)) scale3d(0.04, 0.12, 1); opacity: 0; }\n}\n\n@keyframes xiaohei-portal-traveler {\n 0% { transform: translate3d(-5rem, -50%, 0) scale(0.88); opacity: 0; }\n 9% { transform: translate3d(-4rem, -50%, 0) scale(0.92); opacity: 0.82; }\n 29% { transform: translate3d(-1rem, -50%, 0) scale(0.92); opacity: 1; }\n 43% { transform: translate3d(0, -50%, 0) scale(0.12); opacity: 0; }\n 50% { transform: translate3d(var(--portal-travel-x), var(--portal-travel-y), 0) scale(0.12); opacity: 0; }\n 59% { transform: translate3d(var(--portal-travel-x), var(--portal-travel-y), 0) scale(0.16); opacity: 0; }\n 70% { transform: translate3d(calc(var(--portal-travel-x) + var(--portal-emerge-near)), var(--portal-travel-y), 0) scale(0.94); opacity: 1; }\n 90% { transform: translate3d(calc(var(--portal-travel-x) + var(--portal-emerge-far)), var(--portal-travel-y), 0) scale(0.92); opacity: 0.9; }\n 100% { transform: translate3d(calc(var(--portal-travel-x) + var(--portal-emerge-end)), var(--portal-travel-y), 0) scale(0.9); opacity: 0; }\n}\n\n@keyframes xiaohei-portal-eyes-open {\n 0%, 20.9% { opacity: 1; transform: translate3d(0, 0, 0); }\n 21%, 23.5% { opacity: 0; transform: translate3d(0, 0, 0); }\n 23.6%, 75.9% { opacity: 1; transform: translate3d(0, 0, 0); }\n 76%, 78.5% { opacity: 0; transform: translate3d(0, 0, 0); }\n 78.6%, 100% { opacity: 1; transform: translate3d(0, 0, 0); }\n}\n\n@keyframes xiaohei-portal-eyes-blink {\n 0%, 20.9% { opacity: 0; transform: translate3d(0, 0, 0); }\n 21%, 23.5% { opacity: 1; transform: translate3d(0, 0, 0); }\n 23.6%, 75.9% { opacity: 0; transform: translate3d(0, 0, 0); }\n 76%, 78.5% { opacity: 1; transform: translate3d(0, 0, 0); }\n 78.6%, 100% { opacity: 0; transform: translate3d(0, 0, 0); }\n}\n\nhtml[data-xiaohei-appearance='light'] .xiaohei-portal__void {\n box-shadow:\n inset 0 0 0.7rem rgb(0 0 0 / 94%),\n 0 0 0.75rem rgb(47 125 108 / 22%);\n}\n\nhtml[data-xiaohei-appearance='light'] .xiaohei-portal__traveler {\n filter:\n drop-shadow(0 0.25rem 0.4rem rgb(48 96 81 / 16%))\n drop-shadow(0 0.55rem 0.8rem rgb(43 61 54 / 12%));\n}\n\nhtml[data-xiaohei-appearance='light'] .xiaohei-portal__traveler > img {\n filter: brightness(1.01) contrast(1.06) saturate(0.76);\n}\n\n@media (max-width: 768px) {\n #dsh-theme-xiaohei\\/portal-layer { display: none; }\n}\n\n@media (prefers-reduced-motion: reduce), (forced-colors: active), print {\n #dsh-theme-xiaohei\\/portal-layer { display: none; }\n}\n";
6
6
  //# sourceMappingURL=portal.d.ts.map
@@ -6,7 +6,7 @@ export const XIAOHEI_PORTAL_CSS = `
6
6
  #dsh-theme-xiaohei\\/portal-layer {
7
7
  position: absolute;
8
8
  inset: 0;
9
- z-index: 0;
9
+ z-index: 2;
10
10
  overflow: hidden;
11
11
  contain: strict;
12
12
  pointer-events: none;
@@ -1,3 +1,3 @@
1
1
  /** One glass surface over DSH's native sidebar geometry and controls. */
2
- export declare const XIAOHEI_SIDEBAR_CSS = "\n/* The layout column and SidebarRoot both consume the native sidebar fill.\n * The theme token makes those surfaces transparent; this stable slot\n * relationship removes the layout column's remaining straight divider. */\n#root :has(> [data-slot='sidebar']) {\n background: transparent !important;\n border-right-color: transparent !important;\n}\n\n#root [data-slot='sidebar'] {\n position: relative;\n}\n\n/* The host shell remains paint- and filter-free because Settings is a fixed\n * descendant. The glass itself lives outside #root in the scene layer. */\n#root [data-slot='sidebar'] > div {\n position: relative;\n background: transparent !important;\n border-right: 0;\n box-shadow: none;\n}\n\n#dsh-theme-xiaohei\\/sidebar-glass {\n position: absolute;\n box-sizing: border-box;\n left: var(--xiaohei-sidebar-glass-left, 7px);\n top: var(--xiaohei-sidebar-glass-top, 8px);\n width: var(--xiaohei-sidebar-glass-width, 0px);\n height: var(--xiaohei-sidebar-glass-height, 0px);\n pointer-events: none;\n overflow: hidden;\n border: 1px solid var(--xiaohei-sidebar-glass-edge);\n border-radius: var(--xiaohei-radius-panel);\n background:\n radial-gradient(96% 16% at 14% 0%, var(--xiaohei-sidebar-glass-highlight), transparent 64%),\n linear-gradient(\n 90deg,\n var(--xiaohei-sidebar-glass-refraction),\n transparent 6%,\n transparent 95%,\n var(--xiaohei-sidebar-glass-inner-edge)\n ),\n linear-gradient(\n 180deg,\n var(--xiaohei-sidebar-glass-refraction),\n transparent 9%,\n transparent 88%,\n var(--xiaohei-sidebar-glass-inner-edge)\n ),\n var(--xiaohei-sidebar-glass-fill);\n box-shadow:\n 0 0 0 1px var(--xiaohei-sidebar-glass-outline),\n inset 0 1px 0 var(--xiaohei-sidebar-glass-highlight),\n inset 1px 0 0 var(--xiaohei-sidebar-glass-refraction),\n inset -1px 0 0 var(--xiaohei-sidebar-glass-inner-edge),\n inset 0 -1px 0 var(--xiaohei-sidebar-glass-inner-edge),\n 0 1px 1px rgb(255 255 255 / 4%),\n 10px 0 30px -22px var(--xiaohei-sidebar-shadow),\n 0 24px 52px -30px var(--xiaohei-sidebar-shadow);\n -webkit-backdrop-filter:\n blur(28px)\n saturate(var(--xiaohei-sidebar-glass-saturation))\n brightness(var(--xiaohei-sidebar-glass-brightness));\n backdrop-filter:\n blur(28px)\n saturate(var(--xiaohei-sidebar-glass-saturation))\n brightness(var(--xiaohei-sidebar-glass-brightness));\n}\n\n/* Specular light and the inner lens rim are independent from the tint. This\n * keeps the surface recognisably glass without reducing control contrast. */\n#dsh-theme-xiaohei\\/sidebar-glass::before,\n#dsh-theme-xiaohei\\/sidebar-glass::after {\n content: '';\n position: absolute;\n pointer-events: none;\n}\n\n#dsh-theme-xiaohei\\/sidebar-glass::before {\n inset: 0;\n border-radius: inherit;\n background:\n linear-gradient(\n 112deg,\n var(--xiaohei-sidebar-glass-specular),\n transparent 14%,\n transparent 78%,\n var(--xiaohei-sidebar-glass-refraction)\n );\n opacity: .72;\n -webkit-mask-image: linear-gradient(180deg, black, rgb(0 0 0 / 18%) 26%, transparent 58%);\n mask-image: linear-gradient(180deg, black, rgb(0 0 0 / 18%) 26%, transparent 58%);\n}\n\n#dsh-theme-xiaohei\\/sidebar-glass::after {\n inset: 1px;\n border-radius: calc(var(--xiaohei-radius-panel) - 1px);\n box-shadow:\n inset 0 0 0 1px var(--xiaohei-sidebar-glass-refraction),\n inset 0 18px 24px -28px var(--xiaohei-sidebar-glass-highlight),\n inset 0 -20px 30px -30px var(--xiaohei-sidebar-shadow);\n}\n\n/* Generated ink-space artwork supplies the complex Xiaohei identity. It is a\n * paint-only layer inside the glass and never participates in host layout. */\n#dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {\n position: absolute;\n z-index: 0;\n inset: 0;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: left bottom;\n pointer-events: none;\n user-select: none;\n opacity: var(--xiaohei-sidebar-atmosphere-opacity);\n mix-blend-mode: screen;\n}\n\nhtml[data-xiaohei-appearance='light']\n #dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {\n mix-blend-mode: multiply;\n}\n\n/* Header toggle and the primary action keep the host's dimensions. */\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > div:first-child button:last-child,\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD'],\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {\n color: var(--xiaohei-sidebar-icon);\n transition:\n color var(--xiaohei-motion-fast) ease,\n background-color var(--xiaohei-motion-base) ease,\n border-color var(--xiaohei-motion-base) ease;\n}\n\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > div:first-child button:last-child:hover {\n color: var(--xiaohei-sidebar-emphasis);\n background: var(--xiaohei-sidebar-hover);\n}\n\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD'],\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {\n position: relative;\n isolation: isolate;\n overflow: hidden;\n border-color: transparent;\n background: transparent !important;\n box-shadow: none;\n justify-content: flex-start;\n gap: 8px;\n padding-inline: 12px;\n text-align: start;\n}\n\n/* One quiet horizontal ink stroke replaces the generic button card. The\n * brush is paint-only; the native button, label and focus target stay intact. */\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD']::before,\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']::before {\n content: '';\n position: absolute;\n z-index: -1;\n inset: 3px 7px 3px 5px;\n border-radius: 42% 9% 37% 12% / 28% 46% 36% 58%;\n background: linear-gradient(\n 94deg,\n transparent 0%,\n var(--xiaohei-sidebar-brush-ink) 5%,\n var(--xiaohei-sidebar-brush-ink) 72%,\n transparent 100%\n );\n -webkit-mask-image:\n radial-gradient(ellipse 12px 70% at 5% 48%, black 44%, transparent 76%),\n linear-gradient(90deg, black 5%, black 76%, transparent 100%);\n mask-image:\n radial-gradient(ellipse 12px 70% at 5% 48%, black 44%, transparent 76%),\n linear-gradient(90deg, black 5%, black 76%, transparent 100%);\n -webkit-mask-composite: source-over;\n mask-composite: add;\n opacity: .9;\n transform: scaleX(.985);\n transform-origin: left center;\n transition:\n background-color var(--xiaohei-motion-base) ease,\n opacity var(--xiaohei-motion-fast) ease,\n transform var(--xiaohei-motion-base) var(--xiaohei-motion-curve);\n}\n\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD']:hover,\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']:hover {\n color: var(--xiaohei-sidebar-emphasis);\n border-color: transparent;\n background: transparent !important;\n}\n\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD']:hover::before,\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']:hover::before {\n background: linear-gradient(\n 94deg,\n transparent 0%,\n var(--xiaohei-sidebar-brush-ink-hover) 5%,\n var(--xiaohei-sidebar-brush-ink-hover) 72%,\n transparent 100%\n );\n opacity: 1;\n transform: scaleX(1);\n}\n\n/* Footer occupants keep their native layout. Only their interaction surface\n * is shaded, avoiding a second card inside the sidebar glass. */\n#root [data-slot='sidebar'] > div:not([class*='_collapsed'])\n > :has(> div > [data-slot='sidebar.footer.action']) {\n box-sizing: border-box;\n gap: 2px;\n margin: 8px 2px 4px;\n padding: 4px;\n border: 1px solid var(--xiaohei-sidebar-control-edge);\n border-radius: calc(var(--xiaohei-radius-control) + 2px);\n background: color-mix(in srgb, var(--xiaohei-sidebar-control) 76%, transparent);\n box-shadow: inset 0 1px 0 var(--xiaohei-sidebar-control-highlight);\n}\n\n#root [data-slot='sidebar.footer.action'] > button,\n#root [data-slot='sidebar.settings'] > button {\n color: var(--dsw-alias-label-secondary);\n border-radius: var(--xiaohei-radius-small) !important;\n transition:\n color var(--xiaohei-motion-fast) ease,\n background-color var(--xiaohei-motion-fast) ease,\n transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);\n}\n\n#root [data-slot='sidebar.footer.action'] > button:hover,\n#root [data-slot='sidebar.settings'] > button:hover,\n#root [data-slot='sidebar.footer.action'] > button[aria-expanded='true'],\n#root [data-slot='sidebar.settings'] > button[aria-expanded='true'] {\n color: var(--xiaohei-sidebar-emphasis);\n background: var(--xiaohei-sidebar-hover);\n}\n\n#root [data-slot='sidebar.footer.action'] > button:active,\n#root [data-slot='sidebar.settings'] > button:active {\n transform: translateY(1px);\n}\n\n#root [data-slot='sidebar'] button:focus-visible {\n outline: 2px solid var(--xiaohei-sidebar-emphasis);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n #root [data-slot='sidebar'] button {\n transition-duration: 0ms !important;\n }\n\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD']::before,\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']::before {\n transition-duration: 0ms !important;\n }\n}\n\n@media (prefers-reduced-transparency: reduce) {\n #dsh-theme-xiaohei\\/sidebar-glass {\n background: var(--xiaohei-sidebar-glass-solid);\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n }\n\n #dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {\n opacity: var(--xiaohei-sidebar-atmosphere-solid-opacity);\n }\n}\n\n@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {\n #dsh-theme-xiaohei\\/sidebar-glass {\n background: var(--xiaohei-sidebar-glass-solid);\n }\n}\n\n@media (forced-colors: active) {\n #dsh-theme-xiaohei\\/sidebar-glass {\n border-color: CanvasText;\n background: Canvas;\n box-shadow: none;\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n }\n\n #dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {\n display: none;\n }\n\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD'],\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {\n border-color: ButtonText;\n }\n\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD']::before,\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']::before {\n display: none;\n }\n}\n";
2
+ export declare const XIAOHEI_SIDEBAR_CSS = "\n/* The layout column and SidebarRoot both consume the native sidebar fill.\n * The theme token makes those surfaces transparent; this stable slot\n * relationship removes the layout column's remaining straight divider. */\n#root :has(> [data-slot='sidebar']) {\n background: transparent !important;\n border-right-color: transparent !important;\n}\n\n#root [data-slot='sidebar'] {\n position: relative;\n}\n\n/* Reveal wide navigation only after its column has reached the target width.\n * Keep the toggle itself native. Opacity is applied to content, never the shell\n * (which also hosts fixed-position settings dialogs). */\n@media (prefers-reduced-motion: no-preference) {\n #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal]:not([class*='_collapsed']) > :not(:first-child),\n #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal]:not([class*='_collapsed']) > div:first-child > button:first-child {\n transition: opacity 100ms ease-out;\n }\n #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal='waiting']:not([class*='_collapsed']) > :not(:first-child),\n #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal='waiting']:not([class*='_collapsed']) > div:first-child > button:first-child {\n opacity: 0 !important;\n visibility: hidden;\n transition: none;\n }\n}\n\n/* Hide the tree scrollbar's paint, retaining its gutter so rows do not grow\n * into the glass edge. Wheel, touch and keyboard remain native; dialogs and\n * other plugin panels keep their normal scrollbar affordance. */\n#root [data-slot='sidebar.workspaces'] [role='tree'] {\n scrollbar-color: transparent transparent !important;\n}\n\n#root [data-slot='sidebar.workspaces'] [role='tree']::-webkit-scrollbar,\n#root [data-slot='sidebar.workspaces'] [role='tree']::-webkit-scrollbar-thumb,\n#root [data-slot='sidebar.workspaces'] [role='tree']::-webkit-scrollbar-track {\n background: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n\n/* The host shell remains paint- and filter-free because Settings is a fixed\n * descendant. The glass itself lives outside #root in the scene layer. */\n#root [data-slot='sidebar'] > div {\n --dsh-sidebar-inline-padding: 18px;\n position: relative;\n background: transparent !important;\n border-right: 0;\n box-shadow: none;\n}\n\n#dsh-theme-xiaohei\\/sidebar-glass {\n position: absolute;\n box-sizing: border-box;\n left: var(--xiaohei-sidebar-glass-left, 7px);\n top: var(--xiaohei-sidebar-glass-top, 8px);\n width: var(--xiaohei-sidebar-glass-width, 0px);\n height: var(--xiaohei-sidebar-glass-height, 0px);\n pointer-events: none;\n overflow: hidden;\n border: 1px solid var(--xiaohei-sidebar-glass-edge);\n border-radius: var(--xiaohei-sidebar-glass-radius);\n background: var(--xiaohei-sidebar-glass-fill);\n box-shadow:\n inset 0 1px var(--xiaohei-sidebar-glass-highlight),\n inset 1px 0 var(--xiaohei-sidebar-glass-refraction),\n 0 18px 50px -32px var(--xiaohei-sidebar-shadow);\n -webkit-backdrop-filter:\n blur(var(--xiaohei-sidebar-glass-blur))\n saturate(var(--xiaohei-sidebar-glass-saturation));\n backdrop-filter:\n blur(var(--xiaohei-sidebar-glass-blur))\n saturate(var(--xiaohei-sidebar-glass-saturation));\n}\n\n/* Width dragging changes the full-height glass raster every frame. Suspend\n * only the filters while geometry is moving; the translucent surface remains\n * visible and the settled glass returns after the resize gesture ends. */\nhtml[data-xiaohei-sidebar-resizing] #dsh-theme-xiaohei\\/sidebar-glass {\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n}\n\n/* One restrained inner rim completes the glass edge without tinting content. */\n#dsh-theme-xiaohei\\/sidebar-glass::after {\n content: '';\n position: absolute;\n pointer-events: none;\n inset: 1px;\n border-radius: calc(var(--xiaohei-sidebar-glass-radius) - 1px);\n box-shadow:\n inset 0 1px var(--xiaohei-sidebar-glass-refraction),\n inset 0 -20px 28px -32px var(--xiaohei-sidebar-shadow-soft);\n}\n\n/* The official brand slot owns geometry in both the wide sidebar and rail.\n * The bitmap remains visible as a no-WebGL fallback while the compact\n * MetallicPaint canvas adds a restrained liquid-metal pass above it. */\n.xiaohei-brand-mark {\n position: relative;\n display: inline-grid;\n flex: none;\n place-items: center;\n width: var(--xiaohei-brand-mark-size);\n height: var(--xiaohei-brand-mark-size);\n margin: -2px;\n overflow: visible;\n pointer-events: none;\n filter: drop-shadow(0 2px 3px rgb(8 13 15 / 18%));\n transform: translateY(-1px);\n}\n\n.xiaohei-brand-mark__fallback,\n.xiaohei-brand-mark__metal {\n position: absolute;\n inset: 0;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.xiaohei-brand-mark__fallback {\n opacity: .94;\n transition: opacity var(--xiaohei-motion-base) ease;\n}\n\n.xiaohei-brand-mark__metal {\n opacity: 0;\n transition:\n opacity var(--xiaohei-motion-base) ease,\n filter var(--xiaohei-motion-base) ease;\n}\n\n.xiaohei-brand-mark[data-metallic-ready='true'] .xiaohei-brand-mark__fallback {\n opacity: .28;\n}\n\n.xiaohei-brand-mark[data-metallic-ready='true'] .xiaohei-brand-mark__metal {\n opacity: .92;\n}\n\n.xiaohei-brand-name {\n white-space: nowrap;\n letter-spacing: .025em;\n font-size: 17px;\n font-weight: 600;\n}\n\n/* ui-conversation currently exposes the Hero mark but not its headline as a\n * slot. Anchor the visual copy to that official mark occupant so hashed Host\n * class names and unrelated headings remain untouched. */\n#root span:has(> .xiaohei-brand-mark[data-brand-context='hero']) + span {\n font-size: 0;\n}\n\n#root span:has(> .xiaohei-brand-mark[data-brand-context='hero']) + span::after {\n content: '\u4E07\u7269\u6709\u7075\uFF0C\u81EA\u5728\u540C\u884C';\n font-size: 26px;\n font-weight: 500;\n line-height: 32px;\n}\n\n#root [data-slot='sidebar'] button:hover .xiaohei-brand-mark__metal {\n filter: brightness(1.12) contrast(1.04);\n}\n\n/* Keep native rail/wide geometry and one consistent control material. */\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > div:first-child button:last-child,\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD'],\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {\n color: var(--xiaohei-sidebar-emphasis);\n transition:\n background-color var(--xiaohei-motion-fast) ease,\n border-color var(--xiaohei-motion-fast) ease,\n transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);\n}\n\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > div:first-child button:last-child:hover {\n background: var(--xiaohei-sidebar-hover);\n}\n\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD'],\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {\n border: 1px solid var(--xiaohei-sidebar-control-edge);\n border-radius: var(--xiaohei-radius-control);\n background: var(--xiaohei-sidebar-control);\n box-shadow: inset 0 1px var(--xiaohei-sidebar-control-highlight);\n justify-content: flex-start;\n gap: 8px;\n padding-inline: 12px;\n text-align: start;\n}\n\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD']:hover,\n#root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']:hover {\n border-color: var(--xiaohei-sidebar-control-edge-hover);\n background: var(--xiaohei-sidebar-hover);\n}\n\n/* The footer uses a divider instead of another framed card. */\n#root [data-slot='sidebar'] > div:not([class*='_collapsed'])\n > :has(> div > [data-slot='sidebar.footer.action']) {\n box-sizing: border-box;\n gap: 2px;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--xiaohei-sidebar-control-edge);\n}\n\n#root [data-slot='sidebar.footer.action'] > button,\n#root [data-slot='sidebar.settings'] > button {\n color: var(--dsw-alias-label-secondary);\n border-radius: var(--xiaohei-radius-small) !important;\n transition:\n color var(--xiaohei-motion-fast) ease,\n background-color var(--xiaohei-motion-fast) ease,\n transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);\n}\n\n#root [data-slot='sidebar.footer.action'] > button:hover,\n#root [data-slot='sidebar.settings'] > button:hover,\n#root [data-slot='sidebar.footer.action'] > button[aria-expanded='true'],\n#root [data-slot='sidebar.settings'] > button[aria-expanded='true'] {\n color: var(--xiaohei-sidebar-emphasis);\n background: var(--xiaohei-sidebar-hover);\n}\n\n#root [data-slot='sidebar.footer.action'] > button:active,\n#root [data-slot='sidebar.settings'] > button:active {\n transform: translateY(1px);\n}\n\n#root [data-slot='sidebar'] button:focus-visible {\n outline: 2px solid var(--xiaohei-sidebar-emphasis);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n #root [data-slot='sidebar'] button {\n transition-duration: 0ms !important;\n }\n\n\n .xiaohei-brand-mark__fallback,\n .xiaohei-brand-mark__metal {\n transition-duration: 0ms !important;\n }\n}\n\n@media (prefers-reduced-transparency: reduce) {\n #dsh-theme-xiaohei\\/sidebar-glass {\n background: var(--xiaohei-sidebar-glass-solid);\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n }\n\n}\n\n@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {\n #dsh-theme-xiaohei\\/sidebar-glass {\n background: var(--xiaohei-sidebar-glass-solid);\n }\n}\n\n@media (forced-colors: active) {\n #dsh-theme-xiaohei\\/sidebar-glass {\n border-color: CanvasText;\n background: Canvas;\n box-shadow: none;\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n }\n\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='\u65B0\u5EFA\u4F1A\u8BDD'],\n #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {\n border-color: ButtonText;\n }\n\n}\n";
3
3
  //# sourceMappingURL=sidebar.d.ts.map
@@ -12,9 +12,41 @@ export const XIAOHEI_SIDEBAR_CSS = `
12
12
  position: relative;
13
13
  }
14
14
 
15
+ /* Reveal wide navigation only after its column has reached the target width.
16
+ * Keep the toggle itself native. Opacity is applied to content, never the shell
17
+ * (which also hosts fixed-position settings dialogs). */
18
+ @media (prefers-reduced-motion: no-preference) {
19
+ #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal]:not([class*='_collapsed']) > :not(:first-child),
20
+ #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal]:not([class*='_collapsed']) > div:first-child > button:first-child {
21
+ transition: opacity 100ms ease-out;
22
+ }
23
+ #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal='waiting']:not([class*='_collapsed']) > :not(:first-child),
24
+ #root [data-slot='sidebar'] > div[data-xiaohei-sidebar-reveal='waiting']:not([class*='_collapsed']) > div:first-child > button:first-child {
25
+ opacity: 0 !important;
26
+ visibility: hidden;
27
+ transition: none;
28
+ }
29
+ }
30
+
31
+ /* Hide the tree scrollbar's paint, retaining its gutter so rows do not grow
32
+ * into the glass edge. Wheel, touch and keyboard remain native; dialogs and
33
+ * other plugin panels keep their normal scrollbar affordance. */
34
+ #root [data-slot='sidebar.workspaces'] [role='tree'] {
35
+ scrollbar-color: transparent transparent !important;
36
+ }
37
+
38
+ #root [data-slot='sidebar.workspaces'] [role='tree']::-webkit-scrollbar,
39
+ #root [data-slot='sidebar.workspaces'] [role='tree']::-webkit-scrollbar-thumb,
40
+ #root [data-slot='sidebar.workspaces'] [role='tree']::-webkit-scrollbar-track {
41
+ background: transparent !important;
42
+ border-color: transparent !important;
43
+ box-shadow: none !important;
44
+ }
45
+
15
46
  /* The host shell remains paint- and filter-free because Settings is a fixed
16
47
  * descendant. The glass itself lives outside #root in the scene layer. */
17
48
  #root [data-slot='sidebar'] > div {
49
+ --dsh-sidebar-inline-padding: 18px;
18
50
  position: relative;
19
51
  background: transparent !important;
20
52
  border-right: 0;
@@ -31,194 +63,153 @@ export const XIAOHEI_SIDEBAR_CSS = `
31
63
  pointer-events: none;
32
64
  overflow: hidden;
33
65
  border: 1px solid var(--xiaohei-sidebar-glass-edge);
34
- border-radius: var(--xiaohei-radius-panel);
35
- background:
36
- radial-gradient(96% 16% at 14% 0%, var(--xiaohei-sidebar-glass-highlight), transparent 64%),
37
- linear-gradient(
38
- 90deg,
39
- var(--xiaohei-sidebar-glass-refraction),
40
- transparent 6%,
41
- transparent 95%,
42
- var(--xiaohei-sidebar-glass-inner-edge)
43
- ),
44
- linear-gradient(
45
- 180deg,
46
- var(--xiaohei-sidebar-glass-refraction),
47
- transparent 9%,
48
- transparent 88%,
49
- var(--xiaohei-sidebar-glass-inner-edge)
50
- ),
51
- var(--xiaohei-sidebar-glass-fill);
66
+ border-radius: var(--xiaohei-sidebar-glass-radius);
67
+ background: var(--xiaohei-sidebar-glass-fill);
52
68
  box-shadow:
53
- 0 0 0 1px var(--xiaohei-sidebar-glass-outline),
54
- inset 0 1px 0 var(--xiaohei-sidebar-glass-highlight),
55
- inset 1px 0 0 var(--xiaohei-sidebar-glass-refraction),
56
- inset -1px 0 0 var(--xiaohei-sidebar-glass-inner-edge),
57
- inset 0 -1px 0 var(--xiaohei-sidebar-glass-inner-edge),
58
- 0 1px 1px rgb(255 255 255 / 4%),
59
- 10px 0 30px -22px var(--xiaohei-sidebar-shadow),
60
- 0 24px 52px -30px var(--xiaohei-sidebar-shadow);
69
+ inset 0 1px var(--xiaohei-sidebar-glass-highlight),
70
+ inset 1px 0 var(--xiaohei-sidebar-glass-refraction),
71
+ 0 18px 50px -32px var(--xiaohei-sidebar-shadow);
61
72
  -webkit-backdrop-filter:
62
- blur(28px)
63
- saturate(var(--xiaohei-sidebar-glass-saturation))
64
- brightness(var(--xiaohei-sidebar-glass-brightness));
73
+ blur(var(--xiaohei-sidebar-glass-blur))
74
+ saturate(var(--xiaohei-sidebar-glass-saturation));
65
75
  backdrop-filter:
66
- blur(28px)
67
- saturate(var(--xiaohei-sidebar-glass-saturation))
68
- brightness(var(--xiaohei-sidebar-glass-brightness));
76
+ blur(var(--xiaohei-sidebar-glass-blur))
77
+ saturate(var(--xiaohei-sidebar-glass-saturation));
78
+ }
79
+
80
+ /* Width dragging changes the full-height glass raster every frame. Suspend
81
+ * only the filters while geometry is moving; the translucent surface remains
82
+ * visible and the settled glass returns after the resize gesture ends. */
83
+ html[data-xiaohei-sidebar-resizing] #dsh-theme-xiaohei\\/sidebar-glass {
84
+ -webkit-backdrop-filter: none;
85
+ backdrop-filter: none;
69
86
  }
70
87
 
71
- /* Specular light and the inner lens rim are independent from the tint. This
72
- * keeps the surface recognisably glass without reducing control contrast. */
73
- #dsh-theme-xiaohei\\/sidebar-glass::before,
88
+ /* One restrained inner rim completes the glass edge without tinting content. */
74
89
  #dsh-theme-xiaohei\\/sidebar-glass::after {
75
90
  content: '';
76
91
  position: absolute;
77
92
  pointer-events: none;
78
- }
79
-
80
- #dsh-theme-xiaohei\\/sidebar-glass::before {
81
- inset: 0;
82
- border-radius: inherit;
83
- background:
84
- linear-gradient(
85
- 112deg,
86
- var(--xiaohei-sidebar-glass-specular),
87
- transparent 14%,
88
- transparent 78%,
89
- var(--xiaohei-sidebar-glass-refraction)
90
- );
91
- opacity: .72;
92
- -webkit-mask-image: linear-gradient(180deg, black, rgb(0 0 0 / 18%) 26%, transparent 58%);
93
- mask-image: linear-gradient(180deg, black, rgb(0 0 0 / 18%) 26%, transparent 58%);
94
- }
95
-
96
- #dsh-theme-xiaohei\\/sidebar-glass::after {
97
93
  inset: 1px;
98
- border-radius: calc(var(--xiaohei-radius-panel) - 1px);
94
+ border-radius: calc(var(--xiaohei-sidebar-glass-radius) - 1px);
99
95
  box-shadow:
100
- inset 0 0 0 1px var(--xiaohei-sidebar-glass-refraction),
101
- inset 0 18px 24px -28px var(--xiaohei-sidebar-glass-highlight),
102
- inset 0 -20px 30px -30px var(--xiaohei-sidebar-shadow);
96
+ inset 0 1px var(--xiaohei-sidebar-glass-refraction),
97
+ inset 0 -20px 28px -32px var(--xiaohei-sidebar-shadow-soft);
98
+ }
99
+
100
+ /* The official brand slot owns geometry in both the wide sidebar and rail.
101
+ * The bitmap remains visible as a no-WebGL fallback while the compact
102
+ * MetallicPaint canvas adds a restrained liquid-metal pass above it. */
103
+ .xiaohei-brand-mark {
104
+ position: relative;
105
+ display: inline-grid;
106
+ flex: none;
107
+ place-items: center;
108
+ width: var(--xiaohei-brand-mark-size);
109
+ height: var(--xiaohei-brand-mark-size);
110
+ margin: -2px;
111
+ overflow: visible;
112
+ pointer-events: none;
113
+ filter: drop-shadow(0 2px 3px rgb(8 13 15 / 18%));
114
+ transform: translateY(-1px);
103
115
  }
104
116
 
105
- /* Generated ink-space artwork supplies the complex Xiaohei identity. It is a
106
- * paint-only layer inside the glass and never participates in host layout. */
107
- #dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {
117
+ .xiaohei-brand-mark__fallback,
118
+ .xiaohei-brand-mark__metal {
108
119
  position: absolute;
109
- z-index: 0;
110
120
  inset: 0;
111
121
  display: block;
112
122
  width: 100%;
113
123
  height: 100%;
114
- object-fit: cover;
115
- object-position: left bottom;
116
- pointer-events: none;
117
- user-select: none;
118
- opacity: var(--xiaohei-sidebar-atmosphere-opacity);
119
- mix-blend-mode: screen;
124
+ object-fit: contain;
125
+ }
126
+
127
+ .xiaohei-brand-mark__fallback {
128
+ opacity: .94;
129
+ transition: opacity var(--xiaohei-motion-base) ease;
120
130
  }
121
131
 
122
- html[data-xiaohei-appearance='light']
123
- #dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {
124
- mix-blend-mode: multiply;
132
+ .xiaohei-brand-mark__metal {
133
+ opacity: 0;
134
+ transition:
135
+ opacity var(--xiaohei-motion-base) ease,
136
+ filter var(--xiaohei-motion-base) ease;
137
+ }
138
+
139
+ .xiaohei-brand-mark[data-metallic-ready='true'] .xiaohei-brand-mark__fallback {
140
+ opacity: .28;
141
+ }
142
+
143
+ .xiaohei-brand-mark[data-metallic-ready='true'] .xiaohei-brand-mark__metal {
144
+ opacity: .92;
145
+ }
146
+
147
+ .xiaohei-brand-name {
148
+ white-space: nowrap;
149
+ letter-spacing: .025em;
150
+ font-size: 17px;
151
+ font-weight: 600;
125
152
  }
126
153
 
127
- /* Header toggle and the primary action keep the host's dimensions. */
154
+ /* ui-conversation currently exposes the Hero mark but not its headline as a
155
+ * slot. Anchor the visual copy to that official mark occupant so hashed Host
156
+ * class names and unrelated headings remain untouched. */
157
+ #root span:has(> .xiaohei-brand-mark[data-brand-context='hero']) + span {
158
+ font-size: 0;
159
+ }
160
+
161
+ #root span:has(> .xiaohei-brand-mark[data-brand-context='hero']) + span::after {
162
+ content: '万物有灵,自在同行';
163
+ font-size: 26px;
164
+ font-weight: 500;
165
+ line-height: 32px;
166
+ }
167
+
168
+ #root [data-slot='sidebar'] button:hover .xiaohei-brand-mark__metal {
169
+ filter: brightness(1.12) contrast(1.04);
170
+ }
171
+
172
+ /* Keep native rail/wide geometry and one consistent control material. */
128
173
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > div:first-child button:last-child,
129
174
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话'],
130
175
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {
131
- color: var(--xiaohei-sidebar-icon);
176
+ color: var(--xiaohei-sidebar-emphasis);
132
177
  transition:
133
- color var(--xiaohei-motion-fast) ease,
134
- background-color var(--xiaohei-motion-base) ease,
135
- border-color var(--xiaohei-motion-base) ease;
178
+ background-color var(--xiaohei-motion-fast) ease,
179
+ border-color var(--xiaohei-motion-fast) ease,
180
+ transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);
136
181
  }
137
182
 
138
183
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > div:first-child button:last-child:hover {
139
- color: var(--xiaohei-sidebar-emphasis);
140
184
  background: var(--xiaohei-sidebar-hover);
141
185
  }
142
186
 
143
187
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话'],
144
188
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {
145
- position: relative;
146
- isolation: isolate;
147
- overflow: hidden;
148
- border-color: transparent;
149
- background: transparent !important;
150
- box-shadow: none;
189
+ border: 1px solid var(--xiaohei-sidebar-control-edge);
190
+ border-radius: var(--xiaohei-radius-control);
191
+ background: var(--xiaohei-sidebar-control);
192
+ box-shadow: inset 0 1px var(--xiaohei-sidebar-control-highlight);
151
193
  justify-content: flex-start;
152
194
  gap: 8px;
153
195
  padding-inline: 12px;
154
196
  text-align: start;
155
197
  }
156
198
 
157
- /* One quiet horizontal ink stroke replaces the generic button card. The
158
- * brush is paint-only; the native button, label and focus target stay intact. */
159
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话']::before,
160
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']::before {
161
- content: '';
162
- position: absolute;
163
- z-index: -1;
164
- inset: 3px 7px 3px 5px;
165
- border-radius: 42% 9% 37% 12% / 28% 46% 36% 58%;
166
- background: linear-gradient(
167
- 94deg,
168
- transparent 0%,
169
- var(--xiaohei-sidebar-brush-ink) 5%,
170
- var(--xiaohei-sidebar-brush-ink) 72%,
171
- transparent 100%
172
- );
173
- -webkit-mask-image:
174
- radial-gradient(ellipse 12px 70% at 5% 48%, black 44%, transparent 76%),
175
- linear-gradient(90deg, black 5%, black 76%, transparent 100%);
176
- mask-image:
177
- radial-gradient(ellipse 12px 70% at 5% 48%, black 44%, transparent 76%),
178
- linear-gradient(90deg, black 5%, black 76%, transparent 100%);
179
- -webkit-mask-composite: source-over;
180
- mask-composite: add;
181
- opacity: .9;
182
- transform: scaleX(.985);
183
- transform-origin: left center;
184
- transition:
185
- background-color var(--xiaohei-motion-base) ease,
186
- opacity var(--xiaohei-motion-fast) ease,
187
- transform var(--xiaohei-motion-base) var(--xiaohei-motion-curve);
188
- }
189
-
190
199
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话']:hover,
191
200
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']:hover {
192
- color: var(--xiaohei-sidebar-emphasis);
193
- border-color: transparent;
194
- background: transparent !important;
195
- }
196
-
197
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话']:hover::before,
198
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']:hover::before {
199
- background: linear-gradient(
200
- 94deg,
201
- transparent 0%,
202
- var(--xiaohei-sidebar-brush-ink-hover) 5%,
203
- var(--xiaohei-sidebar-brush-ink-hover) 72%,
204
- transparent 100%
205
- );
206
- opacity: 1;
207
- transform: scaleX(1);
201
+ border-color: var(--xiaohei-sidebar-control-edge-hover);
202
+ background: var(--xiaohei-sidebar-hover);
208
203
  }
209
204
 
210
- /* Footer occupants keep their native layout. Only their interaction surface
211
- * is shaded, avoiding a second card inside the sidebar glass. */
205
+ /* The footer uses a divider instead of another framed card. */
212
206
  #root [data-slot='sidebar'] > div:not([class*='_collapsed'])
213
207
  > :has(> div > [data-slot='sidebar.footer.action']) {
214
208
  box-sizing: border-box;
215
209
  gap: 2px;
216
- margin: 8px 2px 4px;
217
- padding: 4px;
218
- border: 1px solid var(--xiaohei-sidebar-control-edge);
219
- border-radius: calc(var(--xiaohei-radius-control) + 2px);
220
- background: color-mix(in srgb, var(--xiaohei-sidebar-control) 76%, transparent);
221
- box-shadow: inset 0 1px 0 var(--xiaohei-sidebar-control-highlight);
210
+ margin-top: 8px;
211
+ padding-top: 8px;
212
+ border-top: 1px solid var(--xiaohei-sidebar-control-edge);
222
213
  }
223
214
 
224
215
  #root [data-slot='sidebar.footer.action'] > button,
@@ -254,8 +245,9 @@ html[data-xiaohei-appearance='light']
254
245
  transition-duration: 0ms !important;
255
246
  }
256
247
 
257
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话']::before,
258
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']::before {
248
+
249
+ .xiaohei-brand-mark__fallback,
250
+ .xiaohei-brand-mark__metal {
259
251
  transition-duration: 0ms !important;
260
252
  }
261
253
  }
@@ -267,9 +259,6 @@ html[data-xiaohei-appearance='light']
267
259
  backdrop-filter: none;
268
260
  }
269
261
 
270
- #dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {
271
- opacity: var(--xiaohei-sidebar-atmosphere-solid-opacity);
272
- }
273
262
  }
274
263
 
275
264
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
@@ -287,19 +276,11 @@ html[data-xiaohei-appearance='light']
287
276
  backdrop-filter: none;
288
277
  }
289
278
 
290
- #dsh-theme-xiaohei\\/sidebar-glass > .xiaohei-sidebar-atmosphere {
291
- display: none;
292
- }
293
-
294
279
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话'],
295
280
  #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session'] {
296
281
  border-color: ButtonText;
297
282
  }
298
283
 
299
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='新建会话']::before,
300
- #root [data-slot='sidebar'] > div:not([class*='_collapsed']) > button[aria-label='New session']::before {
301
- display: none;
302
- }
303
284
  }
304
285
  `;
305
286
  //# sourceMappingURL=sidebar.js.map
@@ -1,3 +1,3 @@
1
1
  /** Semantic Xiaohei identity tokens shared by every themed component layer. */
2
- export declare const XIAOHEI_CHROME_TOKENS_CSS = "\nhtml {\n --xiaohei-ink: #0E1517;\n --xiaohei-ink-soft: rgb(14 21 23 / 74%);\n --xiaohei-spirit: #69B6BA;\n --xiaohei-spirit-strong: #8ACED0;\n --xiaohei-spirit-soft: rgb(105 182 186 / 12%);\n --xiaohei-spirit-faint: rgb(105 182 186 / 6%);\n --xiaohei-edge: rgb(124 189 192 / 15%);\n --xiaohei-edge-strong: rgb(138 206 208 / 30%);\n --xiaohei-surface: rgb(22 29 31 / 94%);\n --xiaohei-surface-raised: rgb(29 37 39 / 97%);\n --xiaohei-surface-muted: rgb(15 21 23 / 68%);\n --xiaohei-sidebar-emphasis: #E1E6E7;\n --xiaohei-sidebar-icon: rgb(220 227 229 / 70%);\n --xiaohei-sidebar-hover: rgb(231 238 240 / 6.5%);\n --xiaohei-sidebar-glass-fill: rgb(21 25 27 / 62%);\n --xiaohei-sidebar-glass-solid: #1B2325;\n --xiaohei-sidebar-glass-edge: rgb(238 247 249 / 18%);\n --xiaohei-sidebar-glass-outline: rgb(0 0 0 / 30%);\n --xiaohei-sidebar-glass-inner-edge: rgb(0 0 0 / 18%);\n --xiaohei-sidebar-glass-highlight: rgb(255 255 255 / 16%);\n --xiaohei-sidebar-glass-refraction: rgb(255 255 255 / 9%);\n --xiaohei-sidebar-glass-specular: rgb(255 255 255 / 13%);\n --xiaohei-sidebar-glass-saturation: 90%;\n --xiaohei-sidebar-glass-brightness: 92%;\n --xiaohei-sidebar-atmosphere-opacity: 0.36;\n --xiaohei-sidebar-atmosphere-solid-opacity: 0.22;\n --xiaohei-sidebar-control: rgb(231 238 240 / 4.5%);\n --xiaohei-sidebar-control-edge: rgb(231 238 240 / 8%);\n --xiaohei-sidebar-control-edge-hover: rgb(231 238 240 / 13%);\n --xiaohei-sidebar-control-highlight: rgb(255 255 255 / 5%);\n --xiaohei-sidebar-brush-ink: rgb(231 238 240 / 8%);\n --xiaohei-sidebar-brush-ink-hover: rgb(231 238 240 / 13%);\n --xiaohei-sidebar-shadow: rgb(0 0 0 / 24%);\n --xiaohei-workspace-label: rgb(220 227 229 / 78%);\n --xiaohei-space-frame-edge: rgb(231 238 240 / 8%);\n --xiaohei-space-frame-highlight: rgb(255 255 255 / 4%);\n --xiaohei-workspace-control-edge: rgb(231 238 240 / 8%);\n --xiaohei-workspace-path: rgb(200 211 213 / 8%);\n --xiaohei-workspace-path-active: rgb(105 182 186 / 20%);\n --xiaohei-workspace-folder-open: rgb(105 182 186 / 7%);\n --xiaohei-workspace-folder-edge: rgb(105 182 186 / 7%);\n --xiaohei-workspace-folder-shadow: rgb(0 0 0 / 2.4%);\n --xiaohei-workspace-row-hover: rgb(231 238 240 / 5.5%);\n --xiaohei-workspace-row-active: rgb(231 238 240 / 7.5%);\n --xiaohei-workspace-row-active-edge: rgb(231 238 240 / 5%);\n --xiaohei-workspace-action-hover: rgb(231 238 240 / 7%);\n --xiaohei-workspace-active-line: #69B6BA;\n --xiaohei-workspace-active-line-glow: rgb(105 182 186 / 20%);\n --xiaohei-workspace-rift-glow: rgb(105 182 186 / 12%);\n --xiaohei-frame-line: rgb(138 206 208 / 21%);\n --xiaohei-frame-line-strong: rgb(151 216 218 / 40%);\n --xiaohei-frame-fill: rgb(15 21 23 / 54%);\n --xiaohei-frame-fill-raised: rgb(24 32 34 / 78%);\n --xiaohei-frame-inner: rgb(231 252 252 / 6%);\n --xiaohei-frame-plaque: #182122;\n --xiaohei-frame-label: #B9E5E7;\n --xiaohei-frame-ink: #081011;\n --xiaohei-layer-panel: rgb(20 27 29 / 76%);\n --xiaohei-layer-panel-edge: rgb(124 189 192 / 12%);\n --xiaohei-layer-panel-shadow: rgb(0 5 8 / 26%);\n --xiaohei-conversation-text: #E0E6E4;\n --xiaohei-conversation-meta: rgb(195 205 204 / 58%);\n --xiaohei-conversation-user: rgb(117 158 154 / 13%);\n --xiaohei-conversation-user-edge: rgb(143 177 173 / 12%);\n --xiaohei-layer-content: rgb(27 35 37 / 92%);\n --xiaohei-layer-content-edge: rgb(124 189 192 / 20%);\n --xiaohei-layer-content-highlight: rgb(239 255 255 / 4%);\n --xiaohei-shadow: rgb(0 5 7 / 30%);\n --xiaohei-focus-shadow: rgb(105 182 186 / 14%);\n --xiaohei-overlay-fill: rgb(22 29 31 / 88%);\n --xiaohei-overlay-blur: 18px;\n --xiaohei-overlay-saturation: 108%;\n --xiaohei-plugin-workspace-fill: rgb(20 27 29 / 62%);\n --xiaohei-plugin-pane-fill: rgb(27 35 37 / 46%);\n --xiaohei-plugin-raised-fill: rgb(29 37 39 / 72%);\n --xiaohei-plugin-control-fill: rgb(33 42 44 / 86%);\n --xiaohei-plugin-surface-blur: 32px;\n --xiaohei-plugin-surface-saturation: 112%;\n --xiaohei-radius-panel: 16px;\n --xiaohei-radius-control: 10px;\n --xiaohei-radius-small: 8px;\n --xiaohei-motion-fast: 140ms;\n --xiaohei-motion-base: 190ms;\n --xiaohei-motion-curve: cubic-bezier(0.16, 1, 0.3, 1);\n}\n\nhtml[data-xiaohei-appearance='light'] {\n --xiaohei-ink: #252C35;\n --xiaohei-ink-soft: rgb(37 44 53 / 72%);\n --xiaohei-spirit: #547D78;\n --xiaohei-spirit-strong: #426A65;\n --xiaohei-spirit-soft: rgb(84 125 120 / 10%);\n --xiaohei-spirit-faint: rgb(84 125 120 / 5%);\n --xiaohei-edge: rgb(84 125 120 / 19%);\n --xiaohei-edge-strong: rgb(84 125 120 / 38%);\n --xiaohei-surface: rgb(232 237 243 / 94%);\n --xiaohei-surface-raised: rgb(241 244 248 / 97%);\n --xiaohei-surface-muted: rgb(220 227 234 / 78%);\n --xiaohei-sidebar-emphasis: #3F454C;\n --xiaohei-sidebar-icon: rgb(48 54 61 / 68%);\n --xiaohei-sidebar-hover: rgb(48 54 61 / 6%);\n --xiaohei-sidebar-glass-fill: rgb(215 220 223 / 62%);\n --xiaohei-sidebar-glass-solid: #E8EDEF;\n --xiaohei-sidebar-glass-edge: rgb(255 255 255 / 88%);\n --xiaohei-sidebar-glass-outline: rgb(42 50 56 / 14%);\n --xiaohei-sidebar-glass-inner-edge: rgb(43 51 56 / 11%);\n --xiaohei-sidebar-glass-highlight: rgb(255 255 255 / 88%);\n --xiaohei-sidebar-glass-refraction: rgb(255 255 255 / 42%);\n --xiaohei-sidebar-glass-specular: rgb(255 255 255 / 72%);\n --xiaohei-sidebar-glass-saturation: 76%;\n --xiaohei-sidebar-glass-brightness: 104%;\n --xiaohei-sidebar-atmosphere-opacity: 0.28;\n --xiaohei-sidebar-atmosphere-solid-opacity: 0.16;\n --xiaohei-sidebar-control: rgb(255 255 255 / 26%);\n --xiaohei-sidebar-control-edge: rgb(46 51 58 / 8%);\n --xiaohei-sidebar-control-edge-hover: rgb(46 51 58 / 13%);\n --xiaohei-sidebar-control-highlight: rgb(255 255 255 / 48%);\n --xiaohei-sidebar-brush-ink: rgb(38 47 49 / 9%);\n --xiaohei-sidebar-brush-ink-hover: rgb(38 47 49 / 14%);\n --xiaohei-sidebar-shadow: rgb(23 30 34 / 14%);\n --xiaohei-workspace-label: rgb(48 54 61 / 76%);\n --xiaohei-space-frame-edge: rgb(46 51 58 / 8%);\n --xiaohei-space-frame-highlight: rgb(255 255 255 / 32%);\n --xiaohei-workspace-control-edge: rgb(46 51 58 / 9%);\n --xiaohei-workspace-path: rgb(45 56 57 / 9%);\n --xiaohei-workspace-path-active: rgb(84 125 120 / 22%);\n --xiaohei-workspace-folder-open: rgb(84 125 120 / 6.5%);\n --xiaohei-workspace-folder-edge: rgb(61 99 84 / 5.5%);\n --xiaohei-workspace-folder-shadow: rgb(30 50 42 / 1.8%);\n --xiaohei-workspace-row-hover: rgb(48 54 61 / 5%);\n --xiaohei-workspace-row-active: rgb(48 54 61 / 7.5%);\n --xiaohei-workspace-row-active-edge: rgb(46 51 58 / 5%);\n --xiaohei-workspace-action-hover: rgb(48 54 61 / 7%);\n --xiaohei-workspace-active-line: #547D78;\n --xiaohei-workspace-active-line-glow: rgb(84 125 120 / 20%);\n --xiaohei-workspace-rift-glow: rgb(84 125 120 / 8%);\n --xiaohei-frame-line: rgb(84 125 120 / 22%);\n --xiaohei-frame-line-strong: rgb(84 125 120 / 43%);\n --xiaohei-frame-fill: rgb(224 231 238 / 58%);\n --xiaohei-frame-fill-raised: rgb(238 242 247 / 88%);\n --xiaohei-frame-inner: rgb(255 255 255 / 72%);\n --xiaohei-frame-plaque: rgb(235 241 240 / 94%);\n --xiaohei-frame-label: #294A46;\n --xiaohei-frame-ink: #243633;\n --xiaohei-layer-panel: rgb(226 232 239 / 78%);\n --xiaohei-layer-panel-edge: rgb(84 125 120 / 11%);\n --xiaohei-layer-panel-shadow: rgb(43 55 51 / 8%);\n --xiaohei-conversation-text: #303842;\n --xiaohei-conversation-meta: rgb(76 87 99 / 56%);\n --xiaohei-conversation-user: rgb(84 125 120 / 10%);\n --xiaohei-conversation-user-edge: rgb(84 125 120 / 10%);\n --xiaohei-layer-content: rgb(238 242 247 / 94%);\n --xiaohei-layer-content-edge: rgb(84 125 120 / 20%);\n --xiaohei-layer-content-highlight: rgb(255 255 255 / 62%);\n --xiaohei-shadow: rgb(43 55 51 / 11%);\n --xiaohei-focus-shadow: rgb(84 125 120 / 13%);\n --xiaohei-overlay-fill: rgb(232 237 243 / 90%);\n --xiaohei-overlay-blur: 18px;\n --xiaohei-overlay-saturation: 106%;\n --xiaohei-plugin-workspace-fill: rgb(232 237 243 / 64%);\n --xiaohei-plugin-pane-fill: rgb(238 242 247 / 46%);\n --xiaohei-plugin-raised-fill: rgb(244 247 250 / 72%);\n --xiaohei-plugin-control-fill: rgb(248 250 252 / 86%);\n --xiaohei-plugin-surface-blur: 32px;\n --xiaohei-plugin-surface-saturation: 106%;\n}\n";
2
+ export declare const XIAOHEI_CHROME_TOKENS_CSS = "\nhtml {\n --xiaohei-ink: #0E1517;\n --xiaohei-ink-soft: rgb(14 21 23 / 74%);\n --xiaohei-spirit: #69B6BA;\n --xiaohei-spirit-strong: #8ACED0;\n --xiaohei-spirit-soft: rgb(105 182 186 / 12%);\n --xiaohei-spirit-faint: rgb(105 182 186 / 6%);\n --xiaohei-edge: rgb(124 189 192 / 15%);\n --xiaohei-edge-strong: rgb(138 206 208 / 30%);\n --xiaohei-surface: rgb(22 29 31 / 94%);\n --xiaohei-surface-raised: rgb(29 37 39 / 97%);\n --xiaohei-surface-muted: rgb(15 21 23 / 68%);\n --xiaohei-sidebar-emphasis: #E1E6E7;\n --xiaohei-sidebar-icon: rgb(220 227 229 / 70%);\n --xiaohei-sidebar-hover: rgb(231 238 240 / 6.5%);\n --xiaohei-sidebar-glass-fill: rgb(18 22 25 / 48%);\n --xiaohei-sidebar-glass-solid: #1B2023;\n --xiaohei-sidebar-glass-edge: rgb(255 255 255 / 8%);\n --xiaohei-sidebar-glass-highlight: rgb(255 255 255 / 13%);\n --xiaohei-sidebar-glass-refraction: rgb(255 255 255 / 18%);\n --xiaohei-sidebar-glass-saturation: 102%;\n --xiaohei-sidebar-glass-blur: 18px;\n --xiaohei-sidebar-glass-radius: 18px;\n --xiaohei-sidebar-control: rgb(231 238 240 / 7%);\n --xiaohei-sidebar-control-edge: rgb(231 238 240 / 8%);\n --xiaohei-sidebar-control-edge-hover: rgb(231 238 240 / 13%);\n --xiaohei-sidebar-control-highlight: rgb(255 255 255 / 5%);\n --xiaohei-sidebar-shadow: rgb(0 0 0 / 30%);\n --xiaohei-sidebar-shadow-soft: rgb(0 0 0 / 16%);\n --xiaohei-workspace-label: rgb(220 227 229 / 78%);\n --xiaohei-workspace-control-edge: rgb(231 238 240 / 8%);\n --xiaohei-workspace-folder-open: rgb(231 238 240 / 3%);\n --xiaohei-workspace-row-hover: rgb(231 238 240 / 4%);\n --xiaohei-workspace-row-active: rgb(231 238 240 / 12%);\n --xiaohei-workspace-row-active-hover: rgb(231 238 240 / 16%);\n --xiaohei-workspace-row-active-edge: rgb(231 238 240 / 10%);\n --xiaohei-workspace-action-hover: rgb(231 238 240 / 6%);\n --xiaohei-frame-line: rgb(138 206 208 / 21%);\n --xiaohei-frame-line-strong: rgb(151 216 218 / 40%);\n --xiaohei-frame-fill: rgb(15 21 23 / 54%);\n --xiaohei-frame-fill-raised: rgb(24 32 34 / 78%);\n --xiaohei-frame-inner: rgb(231 252 252 / 6%);\n --xiaohei-frame-plaque: #182122;\n --xiaohei-frame-label: #B9E5E7;\n --xiaohei-frame-ink: #081011;\n --xiaohei-layer-panel: rgb(20 27 29 / 76%);\n --xiaohei-layer-panel-edge: rgb(124 189 192 / 12%);\n --xiaohei-layer-panel-shadow: rgb(0 5 8 / 26%);\n --xiaohei-conversation-text: #E5E7E8;\n --xiaohei-conversation-meta: rgb(199 203 206 / 60%);\n --xiaohei-conversation-assistant:\n linear-gradient(\n 115deg,\n rgb(86 91 95 / 30%) 0%,\n rgb(50 54 57 / 22%) 46%,\n rgb(27 30 32 / 30%) 100%\n ),\n rgb(20 23 25 / 68%);\n --xiaohei-conversation-user:\n linear-gradient(\n 118deg,\n rgb(105 110 114 / 27%) 0%,\n rgb(61 65 68 / 23%) 52%,\n rgb(34 37 40 / 31%) 100%\n ),\n rgb(27 30 33 / 72%);\n --xiaohei-conversation-meta-surface:\n linear-gradient(112deg, rgb(91 96 100 / 17%), rgb(42 46 49 / 14%)),\n rgb(20 23 25 / 58%);\n --xiaohei-conversation-meta-edge: rgb(221 225 227 / 12%);\n --xiaohei-conversation-edge: rgb(229 232 234 / 17%);\n --xiaohei-conversation-highlight: rgb(255 255 255 / 12%);\n --xiaohei-conversation-shadow: rgb(0 0 0 / 28%);\n --xiaohei-conversation-blur: 18px;\n --xiaohei-layer-content: rgb(27 35 37 / 92%);\n --xiaohei-layer-content-edge: rgb(124 189 192 / 20%);\n --xiaohei-layer-content-highlight: rgb(239 255 255 / 4%);\n --xiaohei-composer-fill: rgb(17 23 25 / 78%);\n --xiaohei-composer-solid: #1B2325;\n --xiaohei-composer-edge: rgb(232 240 242 / 13%);\n --xiaohei-composer-edge-focus: rgb(232 240 242 / 26%);\n --xiaohei-composer-highlight: rgb(255 255 255 / 7%);\n --xiaohei-composer-highlight-strong: rgb(255 255 255 / 10%);\n --xiaohei-composer-lower-edge: rgb(0 0 0 / 20%);\n --xiaohei-composer-shadow: rgb(0 5 7 / 24%);\n --xiaohei-composer-focus: rgb(232 240 242 / 7%);\n --xiaohei-composer-tail: rgb(181 211 212 / 32%);\n --xiaohei-composer-control-edge: rgb(231 238 240 / 10%);\n --xiaohei-composer-control-hover: rgb(231 238 240 / 6%);\n --xiaohei-composer-disabled: rgb(34 42 44 / 66%);\n --xiaohei-composer-primary-icon: #EDF4F4;\n --xiaohei-composer-heixiu-edge: rgb(235 243 244 / 34%);\n --xiaohei-composer-heixiu-shadow: rgb(0 3 4 / 52%);\n --xiaohei-composer-blur: 22px;\n --xiaohei-composer-saturation: 106%;\n --xiaohei-shadow: rgb(0 5 7 / 30%);\n --xiaohei-focus-shadow: rgb(105 182 186 / 14%);\n --xiaohei-overlay-fill: rgb(22 29 31 / 88%);\n --xiaohei-overlay-blur: 18px;\n --xiaohei-overlay-saturation: 108%;\n --xiaohei-plugin-workspace-fill: rgb(20 27 29 / 62%);\n --xiaohei-plugin-pane-fill: rgb(27 35 37 / 46%);\n --xiaohei-plugin-raised-fill: rgb(29 37 39 / 72%);\n --xiaohei-plugin-control-fill: rgb(33 42 44 / 86%);\n --xiaohei-plugin-surface-blur: 32px;\n --xiaohei-plugin-surface-saturation: 112%;\n --xiaohei-radius-panel: 16px;\n --xiaohei-radius-control: 10px;\n --xiaohei-radius-small: 8px;\n --xiaohei-motion-fast: 140ms;\n --xiaohei-motion-base: 190ms;\n --xiaohei-motion-curve: cubic-bezier(0.16, 1, 0.3, 1);\n}\n\nhtml[data-xiaohei-appearance='light'] {\n --xiaohei-ink: #252C35;\n --xiaohei-ink-soft: rgb(37 44 53 / 72%);\n --xiaohei-spirit: #547D78;\n --xiaohei-spirit-strong: #426A65;\n --xiaohei-spirit-soft: rgb(84 125 120 / 10%);\n --xiaohei-spirit-faint: rgb(84 125 120 / 5%);\n --xiaohei-edge: rgb(84 125 120 / 19%);\n --xiaohei-edge-strong: rgb(84 125 120 / 38%);\n --xiaohei-surface: rgb(232 237 243 / 94%);\n --xiaohei-surface-raised: rgb(241 244 248 / 97%);\n --xiaohei-surface-muted: rgb(220 227 234 / 78%);\n --xiaohei-sidebar-emphasis: #3F454C;\n --xiaohei-sidebar-icon: rgb(48 54 61 / 68%);\n --xiaohei-sidebar-hover: rgb(48 54 61 / 6%);\n --xiaohei-sidebar-glass-fill: rgb(247 245 242 / 58%);\n --xiaohei-sidebar-glass-solid: #EDF1F3;\n --xiaohei-sidebar-glass-edge: rgb(37 45 51 / 9%);\n --xiaohei-sidebar-glass-highlight: rgb(255 255 255 / 64%);\n --xiaohei-sidebar-glass-refraction: rgb(255 255 255 / 18%);\n --xiaohei-sidebar-glass-saturation: 102%;\n --xiaohei-sidebar-glass-blur: 18px;\n --xiaohei-sidebar-control: rgb(255 255 255 / 30%);\n --xiaohei-sidebar-control-edge: rgb(46 51 58 / 8%);\n --xiaohei-sidebar-control-edge-hover: rgb(46 51 58 / 13%);\n --xiaohei-sidebar-control-highlight: rgb(255 255 255 / 48%);\n --xiaohei-sidebar-shadow: rgb(28 37 43 / 12%);\n --xiaohei-sidebar-shadow-soft: rgb(28 37 43 / 6%);\n --xiaohei-workspace-label: rgb(48 54 61 / 76%);\n --xiaohei-workspace-control-edge: rgb(46 51 58 / 9%);\n --xiaohei-workspace-folder-open: rgb(48 54 61 / 3%);\n --xiaohei-workspace-row-hover: rgb(48 54 61 / 5.5%);\n --xiaohei-workspace-row-active: rgb(48 54 61 / 10%);\n --xiaohei-workspace-row-active-hover: rgb(48 54 61 / 14%);\n --xiaohei-workspace-row-active-edge: rgb(46 51 58 / 8%);\n --xiaohei-workspace-action-hover: rgb(255 255 255 / 10%);\n --xiaohei-frame-line: rgb(84 125 120 / 22%);\n --xiaohei-frame-line-strong: rgb(84 125 120 / 43%);\n --xiaohei-frame-fill: rgb(224 231 238 / 58%);\n --xiaohei-frame-fill-raised: rgb(238 242 247 / 88%);\n --xiaohei-frame-inner: rgb(255 255 255 / 72%);\n --xiaohei-frame-plaque: rgb(235 241 240 / 94%);\n --xiaohei-frame-label: #294A46;\n --xiaohei-frame-ink: #243633;\n --xiaohei-layer-panel: rgb(226 232 239 / 78%);\n --xiaohei-layer-panel-edge: rgb(84 125 120 / 11%);\n --xiaohei-layer-panel-shadow: rgb(43 55 51 / 8%);\n --xiaohei-conversation-text: #30353A;\n --xiaohei-conversation-meta: rgb(72 79 86 / 58%);\n --xiaohei-conversation-assistant:\n linear-gradient(\n 115deg,\n rgb(255 255 255 / 55%) 0%,\n rgb(230 233 235 / 24%) 48%,\n rgb(202 207 210 / 16%) 100%\n ),\n rgb(232 235 237 / 67%);\n --xiaohei-conversation-user:\n linear-gradient(\n 118deg,\n rgb(255 255 255 / 42%) 0%,\n rgb(213 217 220 / 23%) 52%,\n rgb(190 196 200 / 17%) 100%\n ),\n rgb(220 224 227 / 72%);\n --xiaohei-conversation-meta-surface:\n linear-gradient(112deg, rgb(255 255 255 / 34%), rgb(201 206 209 / 15%)),\n rgb(224 227 229 / 58%);\n --xiaohei-conversation-meta-edge: rgb(50 57 63 / 12%);\n --xiaohei-conversation-edge: rgb(45 52 58 / 15%);\n --xiaohei-conversation-highlight: rgb(255 255 255 / 58%);\n --xiaohei-conversation-shadow: rgb(36 42 47 / 13%);\n --xiaohei-conversation-blur: 18px;\n --xiaohei-layer-content: rgb(238 242 247 / 94%);\n --xiaohei-layer-content-edge: rgb(84 125 120 / 20%);\n --xiaohei-layer-content-highlight: rgb(255 255 255 / 62%);\n --xiaohei-composer-fill: rgb(241 244 246 / 76%);\n --xiaohei-composer-solid: #F0F3F5;\n --xiaohei-composer-edge: rgb(45 53 59 / 12%);\n --xiaohei-composer-edge-focus: rgb(45 53 59 / 24%);\n --xiaohei-composer-highlight: rgb(255 255 255 / 72%);\n --xiaohei-composer-highlight-strong: rgb(255 255 255 / 88%);\n --xiaohei-composer-lower-edge: rgb(45 53 59 / 8%);\n --xiaohei-composer-shadow: rgb(36 45 50 / 11%);\n --xiaohei-composer-focus: rgb(45 53 59 / 6%);\n --xiaohei-composer-tail: rgb(47 57 62 / 26%);\n --xiaohei-composer-control-edge: rgb(46 53 59 / 10%);\n --xiaohei-composer-control-hover: rgb(255 255 255 / 46%);\n --xiaohei-composer-disabled: rgb(222 227 230 / 72%);\n --xiaohei-composer-primary-icon: #F5F8F8;\n --xiaohei-composer-heixiu-edge: rgb(255 255 255 / 24%);\n --xiaohei-composer-heixiu-shadow: rgb(35 43 47 / 30%);\n --xiaohei-composer-blur: 22px;\n --xiaohei-composer-saturation: 104%;\n --xiaohei-shadow: rgb(43 55 51 / 11%);\n --xiaohei-focus-shadow: rgb(84 125 120 / 13%);\n --xiaohei-overlay-fill: rgb(232 237 243 / 90%);\n --xiaohei-overlay-blur: 18px;\n --xiaohei-overlay-saturation: 106%;\n --xiaohei-plugin-workspace-fill: rgb(232 237 243 / 64%);\n --xiaohei-plugin-pane-fill: rgb(238 242 247 / 46%);\n --xiaohei-plugin-raised-fill: rgb(244 247 250 / 72%);\n --xiaohei-plugin-control-fill: rgb(248 250 252 / 86%);\n --xiaohei-plugin-surface-blur: 32px;\n --xiaohei-plugin-surface-saturation: 106%;\n}\n";
3
3
  //# sourceMappingURL=tokens.d.ts.map