@lemoncat7/dsh-theme-xiaohei 0.3.0-alpha.23 → 0.3.1

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 (208) hide show
  1. package/README.md +37 -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 +118 -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 +5850 -4447
  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-identity.d.ts +1 -0
  59. package/lib/generated-identity.js +1 -0
  60. package/lib/generated-keyart.d.ts +18 -3
  61. package/lib/generated-keyart.js +18 -3
  62. package/lib/host-contract.d.ts +9 -0
  63. package/lib/host-contract.js +13 -0
  64. package/lib/host-dom.d.ts +11 -0
  65. package/lib/host-dom.js +60 -0
  66. package/lib/loading-heixiu.js +3 -3
  67. package/lib/metallic-brand-mark.d.ts +10 -0
  68. package/lib/metallic-brand-mark.js +309 -0
  69. package/lib/plugin.d.ts +1 -1
  70. package/lib/plugin.js +31 -16
  71. package/lib/portal.js +11 -10
  72. package/lib/reactions.js +3 -3
  73. package/lib/scene/avatar-model.d.ts +6 -0
  74. package/lib/scene/avatar-model.js +646 -0
  75. package/lib/scene/avatar-motion.d.ts +3 -0
  76. package/lib/scene/avatar-motion.js +799 -0
  77. package/lib/scene/character-idle.d.ts +17 -0
  78. package/lib/scene/character-idle.js +65 -0
  79. package/lib/scene/character-layout.d.ts +24 -0
  80. package/lib/scene/character-layout.js +51 -0
  81. package/lib/scene/character-poses.d.ts +26 -0
  82. package/lib/scene/character-poses.js +11 -0
  83. package/lib/scene/heixiu-feedback.d.ts +1 -1
  84. package/lib/scene/heixiu-feedback.js +0 -17
  85. package/lib/scene/pointer-bridge.d.ts +21 -0
  86. package/lib/scene/pointer-bridge.js +155 -0
  87. package/lib/scene/runtime.d.ts +12 -0
  88. package/lib/scene/runtime.js +87 -0
  89. package/lib/scene/styles.d.ts +7 -0
  90. package/lib/scene/styles.js +75 -0
  91. package/lib/scene/sylva-performance.d.ts +11 -0
  92. package/lib/scene/sylva-performance.js +58 -0
  93. package/lib/scene/wallpaper-character-styles.d.ts +3 -0
  94. package/lib/scene/wallpaper-character-styles.js +43 -0
  95. package/lib/scene/wallpaper-character.d.ts +4 -0
  96. package/lib/scene/wallpaper-character.js +195 -0
  97. package/lib/scene.d.ts +7 -13
  98. package/lib/scene.js +7 -1023
  99. package/lib/sidebar-glass.js +88 -35
  100. package/lib/sidebar-heixiu-roaming.js +5 -5
  101. package/lib/state.d.ts +14 -2
  102. package/lib/state.js +12 -4
  103. package/lib/theme.js +2 -2
  104. package/lib/vendor/bloub/decor.d.ts +114 -0
  105. package/lib/vendor/bloub/decor.js +198 -0
  106. package/lib/vendor/bloub/engine.d.ts +213 -0
  107. package/lib/vendor/bloub/engine.js +452 -0
  108. package/lib/vendor/bloub/expressions.d.ts +35 -0
  109. package/lib/vendor/bloub/expressions.js +143 -0
  110. package/lib/vendor/bloub/eyefit.d.ts +75 -0
  111. package/lib/vendor/bloub/eyefit.js +393 -0
  112. package/lib/vendor/bloub/face.d.ts +63 -0
  113. package/lib/vendor/bloub/face.js +106 -0
  114. package/lib/vendor/bloub/math.d.ts +22 -0
  115. package/lib/vendor/bloub/math.js +36 -0
  116. package/lib/vendor/bloub/profiles.d.ts +8 -0
  117. package/lib/vendor/bloub/profiles.js +20 -0
  118. package/lib/vendor/bloub/repere.d.ts +30 -0
  119. package/lib/vendor/bloub/repere.js +32 -0
  120. package/lib/vendor/bloub/shape.d.ts +80 -0
  121. package/lib/vendor/bloub/shape.js +268 -0
  122. package/lib/vendor/bloub/skins.d.ts +36 -0
  123. package/lib/vendor/bloub/skins.js +74 -0
  124. package/lib/vendor/bloub/states.d.ts +87 -0
  125. package/lib/vendor/bloub/states.js +468 -0
  126. package/package.json +23 -6
  127. package/lib/appearance.d.ts.map +0 -1
  128. package/lib/appearance.js.map +0 -1
  129. package/lib/blink.d.ts.map +0 -1
  130. package/lib/blink.js.map +0 -1
  131. package/lib/boot-appearance.d.ts.map +0 -1
  132. package/lib/boot-appearance.js.map +0 -1
  133. package/lib/boot-loader.d.ts.map +0 -1
  134. package/lib/boot-loader.js.map +0 -1
  135. package/lib/chrome/accessibility.d.ts.map +0 -1
  136. package/lib/chrome/accessibility.js.map +0 -1
  137. package/lib/chrome/blink.d.ts.map +0 -1
  138. package/lib/chrome/blink.js.map +0 -1
  139. package/lib/chrome/composer.d.ts.map +0 -1
  140. package/lib/chrome/composer.js.map +0 -1
  141. package/lib/chrome/conversation-messages.d.ts.map +0 -1
  142. package/lib/chrome/conversation-messages.js.map +0 -1
  143. package/lib/chrome/conversation.d.ts.map +0 -1
  144. package/lib/chrome/conversation.js.map +0 -1
  145. package/lib/chrome/frames.d.ts.map +0 -1
  146. package/lib/chrome/frames.js.map +0 -1
  147. package/lib/chrome/gaze.d.ts.map +0 -1
  148. package/lib/chrome/gaze.js.map +0 -1
  149. package/lib/chrome/identity.d.ts.map +0 -1
  150. package/lib/chrome/identity.js.map +0 -1
  151. package/lib/chrome/overlays.d.ts.map +0 -1
  152. package/lib/chrome/overlays.js.map +0 -1
  153. package/lib/chrome/portal.d.ts.map +0 -1
  154. package/lib/chrome/portal.js.map +0 -1
  155. package/lib/chrome/reactions.d.ts.map +0 -1
  156. package/lib/chrome/reactions.js.map +0 -1
  157. package/lib/chrome/sidebar.d.ts.map +0 -1
  158. package/lib/chrome/sidebar.js.map +0 -1
  159. package/lib/chrome/tokens.d.ts.map +0 -1
  160. package/lib/chrome/tokens.js.map +0 -1
  161. package/lib/chrome/workspace.d.ts.map +0 -1
  162. package/lib/chrome/workspace.js.map +0 -1
  163. package/lib/chrome.d.ts.map +0 -1
  164. package/lib/chrome.js.map +0 -1
  165. package/lib/client.d.ts.map +0 -1
  166. package/lib/client.js.map +0 -7
  167. package/lib/gaze.d.ts.map +0 -1
  168. package/lib/gaze.js.map +0 -1
  169. package/lib/generated-identity.d.ts.map +0 -1
  170. package/lib/generated-identity.js.map +0 -1
  171. package/lib/generated-keyart.d.ts.map +0 -1
  172. package/lib/generated-keyart.js.map +0 -1
  173. package/lib/generated-loading-assets.d.ts.map +0 -1
  174. package/lib/generated-loading-assets.js.map +0 -1
  175. package/lib/generated-sidebar-assets.d.ts +0 -4
  176. package/lib/generated-sidebar-assets.d.ts.map +0 -1
  177. package/lib/generated-sidebar-assets.js +0 -4
  178. package/lib/generated-sidebar-assets.js.map +0 -1
  179. package/lib/heixiu-interactions.d.ts.map +0 -1
  180. package/lib/heixiu-interactions.js.map +0 -1
  181. package/lib/index.d.ts.map +0 -1
  182. package/lib/index.js.map +0 -1
  183. package/lib/loading-heixiu.d.ts.map +0 -1
  184. package/lib/loading-heixiu.js.map +0 -1
  185. package/lib/plugin.d.ts.map +0 -1
  186. package/lib/plugin.js.map +0 -1
  187. package/lib/portal.d.ts.map +0 -1
  188. package/lib/portal.js.map +0 -1
  189. package/lib/reactions.d.ts.map +0 -1
  190. package/lib/reactions.js.map +0 -1
  191. package/lib/scene/heixiu-feedback.d.ts.map +0 -1
  192. package/lib/scene/heixiu-feedback.js.map +0 -1
  193. package/lib/scene/heixiu-interactions.d.ts.map +0 -1
  194. package/lib/scene/heixiu-interactions.js.map +0 -1
  195. package/lib/scene/state-transitions.d.ts.map +0 -1
  196. package/lib/scene/state-transitions.js.map +0 -1
  197. package/lib/scene.d.ts.map +0 -1
  198. package/lib/scene.js.map +0 -1
  199. package/lib/sidebar-glass.d.ts.map +0 -1
  200. package/lib/sidebar-glass.js.map +0 -1
  201. package/lib/sidebar-heixiu-escape.d.ts.map +0 -1
  202. package/lib/sidebar-heixiu-escape.js.map +0 -1
  203. package/lib/sidebar-heixiu-roaming.d.ts.map +0 -1
  204. package/lib/sidebar-heixiu-roaming.js.map +0 -1
  205. package/lib/state.d.ts.map +0 -1
  206. package/lib/state.js.map +0 -1
  207. package/lib/theme.d.ts.map +0 -1
  208. package/lib/theme.js.map +0 -1
@@ -0,0 +1,143 @@
1
+ /** Heixiu is the Host send button, not a neighbouring ornament. */
2
+ export const XIAOHEI_COMPOSER_SEND_HEIXIU_CSS = `
3
+ /* Official InputBar contract: row -> trailing controls -> last primary action. */
4
+ #root [data-composer-card='true'] > :last-child > :last-child > button:last-child {
5
+ position: relative;
6
+ isolation: isolate;
7
+ width: 38px;
8
+ height: 38px;
9
+ min-width: 38px;
10
+ min-height: 38px;
11
+ border: 1px solid var(--xiaohei-composer-control-edge) !important;
12
+ border-radius: 50% !important;
13
+ color: var(--xiaohei-composer-primary-icon) !important;
14
+ background: var(--xiaohei-composer-disabled) !important;
15
+ box-shadow: inset 0 1px 0 var(--xiaohei-composer-highlight) !important;
16
+ }
17
+
18
+ #root [data-composer-card='true'] > :last-child > :last-child > button:last-child[data-xiaohei-send-heixiu='true'] {
19
+ overflow: visible;
20
+ padding: 0;
21
+ border-color: transparent !important;
22
+ background: transparent !important;
23
+ box-shadow: none !important;
24
+ }
25
+
26
+ /* Preserve the native glyph in the DOM; only the visual presentation changes. */
27
+ #root [data-composer-card='true'] > :last-child > :last-child
28
+ > button[data-xiaohei-send-heixiu='true'] > svg {
29
+ opacity: 0;
30
+ }
31
+
32
+ .xiaohei-composer-send-heixiu {
33
+ position: absolute;
34
+ z-index: 1;
35
+ inset: 0;
36
+ overflow: visible;
37
+ pointer-events: none;
38
+ opacity: 1;
39
+ transform: translateY(-1px) scale(1) translateZ(0);
40
+ transform-origin: 50% 58%;
41
+ transition:
42
+ opacity 160ms ease,
43
+ transform 180ms var(--xiaohei-motion-curve);
44
+ }
45
+
46
+ .xiaohei-composer-send-heixiu img {
47
+ position: absolute;
48
+ top: 50%;
49
+ left: 50%;
50
+ display: block;
51
+ width: 60px;
52
+ height: 60px;
53
+ max-width: none;
54
+ user-select: none;
55
+ pointer-events: none;
56
+ object-fit: contain;
57
+ filter:
58
+ drop-shadow(0 0 1px var(--xiaohei-composer-heixiu-edge))
59
+ drop-shadow(0 3px 4px var(--xiaohei-composer-heixiu-shadow));
60
+ transform: translate(-50%, -45%) translateZ(0);
61
+ }
62
+
63
+ .xiaohei-composer-send-heixiu__open {
64
+ opacity: 1;
65
+ }
66
+
67
+ .xiaohei-composer-send-heixiu__blink {
68
+ opacity: 0;
69
+ }
70
+
71
+ .xiaohei-composer-send-heixiu[data-xiaohei-blink='closed']
72
+ .xiaohei-composer-send-heixiu__open {
73
+ opacity: 0;
74
+ }
75
+
76
+ .xiaohei-composer-send-heixiu[data-xiaohei-blink='closed']
77
+ .xiaohei-composer-send-heixiu__blink {
78
+ opacity: 1;
79
+ }
80
+
81
+ #root [data-composer-card='true'] > :last-child > :last-child
82
+ > button[data-xiaohei-send-heixiu='true']:not(:disabled):hover {
83
+ border-color: transparent !important;
84
+ background: transparent !important;
85
+ box-shadow: none !important;
86
+ transform: none;
87
+ }
88
+
89
+ #root [data-composer-card='true'] > :last-child > :last-child
90
+ > button[data-xiaohei-send-heixiu='true']:not(:disabled):hover
91
+ .xiaohei-composer-send-heixiu {
92
+ transform: translateY(-2px) scale(1.055) translateZ(0);
93
+ }
94
+
95
+ #root [data-composer-card='true'] > :last-child > :last-child
96
+ > button[data-xiaohei-send-heixiu='true']:not(:disabled):active {
97
+ transform: none;
98
+ }
99
+
100
+ #root [data-composer-card='true'] > :last-child > :last-child
101
+ > button[data-xiaohei-send-heixiu='true']:not(:disabled):active
102
+ .xiaohei-composer-send-heixiu {
103
+ transform: translateY(0) scale(.93) translateZ(0);
104
+ }
105
+
106
+ #root [data-composer-card='true'] > :last-child > :last-child
107
+ > button[data-xiaohei-send-heixiu='true']:disabled {
108
+ border-color: transparent !important;
109
+ background: transparent !important;
110
+ box-shadow: none !important;
111
+ transform: none;
112
+ }
113
+
114
+ #root [data-composer-card='true'] > :last-child > :last-child
115
+ > button[data-xiaohei-send-heixiu='true']:disabled
116
+ .xiaohei-composer-send-heixiu {
117
+ opacity: .42;
118
+ }
119
+
120
+ @media (prefers-reduced-motion: reduce) {
121
+ .xiaohei-composer-send-heixiu {
122
+ transition-duration: 0.01ms !important;
123
+ }
124
+ }
125
+
126
+ @media (forced-colors: active) {
127
+ #root [data-composer-card='true'] > :last-child > :last-child
128
+ > button[data-xiaohei-send-heixiu='true'] {
129
+ border: 1px solid ButtonText !important;
130
+ background: ButtonFace !important;
131
+ }
132
+
133
+ #root [data-composer-card='true'] > :last-child > :last-child
134
+ > button[data-xiaohei-send-heixiu='true'] > svg {
135
+ opacity: 1;
136
+ }
137
+
138
+ .xiaohei-composer-send-heixiu {
139
+ display: none;
140
+ }
141
+ }
142
+ `;
143
+ //# sourceMappingURL=composer-send-heixiu.js.map
@@ -1,3 +1,3 @@
1
- /** Conversation composer, command affordances, and send action. */
2
- export declare const XIAOHEI_COMPOSER_CSS = "\n#root [data-composer-card='true'] {\n position: relative;\n isolation: isolate;\n overflow: visible;\n border: 1px solid var(--xiaohei-layer-content-edge) !important;\n border-radius: 8px !important;\n background:\n linear-gradient(\n 90deg,\n transparent,\n transparent 18%,\n var(--xiaohei-spirit-faint) 52%,\n transparent\n ) 18px 0 / 104px 1px no-repeat,\n linear-gradient(180deg, var(--xiaohei-layer-content-highlight), transparent 34%),\n var(--xiaohei-layer-content) !important;\n box-shadow:\n inset 0 0 0 1px var(--xiaohei-frame-inner),\n inset 0 1px rgb(255 255 255 / 7%),\n inset 0 -1px var(--xiaohei-layer-panel-edge),\n 0 8px 22px var(--xiaohei-shadow) !important;\n transition:\n border-color var(--xiaohei-motion-base) ease,\n box-shadow var(--xiaohei-motion-base) ease;\n}\n\n#root [data-composer-card='true']:focus-within {\n border-color: var(--xiaohei-edge-strong) !important;\n box-shadow:\n inset 0 1px rgb(255 255 255 / 9%),\n 0 10px 26px var(--xiaohei-shadow),\n 0 0 0 4px var(--xiaohei-focus-shadow) !important;\n}\n\n#root [data-composer-card='true'] textarea {\n color: var(--dsw-alias-label-primary) !important;\n caret-color: var(--xiaohei-spirit-strong);\n}\n\n#root [data-composer-card='true'] textarea::placeholder {\n color: var(--dsw-alias-label-tertiary) !important;\n opacity: 0.92;\n}\n\n#root [data-composer-card='true'] [data-input-backdrop='true'] {\n border-color: transparent !important;\n background: transparent !important;\n}\n\n#root [data-composer-card='true'] button {\n min-width: 28px;\n min-height: 28px;\n border: 1px solid transparent;\n border-radius: var(--xiaohei-radius-small);\n transition:\n color var(--xiaohei-motion-fast) ease,\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-composer-card='true'] button:not(:disabled):hover {\n color: var(--xiaohei-spirit-strong);\n border-color: var(--xiaohei-edge);\n background: var(--xiaohei-spirit-soft);\n}\n\n#root [data-composer-card='true'] button:not(:disabled):active {\n transform: translateY(1px) scale(0.98);\n}\n\n#root button[aria-label='\u53D1\u9001\u6D88\u606F'],\n#root button[aria-label='Send message'] {\n position: relative;\n isolation: isolate;\n border: 1px solid var(--xiaohei-edge-strong) !important;\n border-radius: 50% !important;\n color: var(--dsw-alias-brand-primary-invert) !important;\n background:\n radial-gradient(circle at 36% 27%, rgb(255 255 255 / 36%) 0 7%, transparent 9%),\n linear-gradient(145deg, var(--xiaohei-spirit), var(--dsw-alias-button-primary-fill)) !important;\n box-shadow:\n inset 0 1px rgb(255 255 255 / 34%),\n inset 0 -2px rgb(4 25 31 / 18%),\n 0 6px 16px var(--xiaohei-focus-shadow) !important;\n transition:\n transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve),\n box-shadow var(--xiaohei-motion-base) ease,\n filter var(--xiaohei-motion-base) ease;\n}\n\n#root button[aria-label='\u53D1\u9001\u6D88\u606F']::after,\n#root button[aria-label='Send message']::after {\n content: '';\n position: absolute;\n inset: 3px;\n border: 1px solid rgb(238 253 255 / 28%);\n border-radius: inherit;\n pointer-events: none;\n opacity: 0.58;\n transition: opacity var(--xiaohei-motion-fast) ease, transform 220ms var(--xiaohei-motion-curve);\n}\n\n#root button[aria-label='\u53D1\u9001\u6D88\u606F']:not(:disabled):hover,\n#root button[aria-label='Send message']:not(:disabled):hover {\n filter: brightness(1.05) saturate(1.03);\n box-shadow:\n inset 0 1px rgb(255 255 255 / 42%),\n inset 0 -2px rgb(4 25 31 / 16%),\n 0 8px 20px var(--xiaohei-focus-shadow) !important;\n}\n\n#root button[aria-label='\u53D1\u9001\u6D88\u606F']:not(:disabled):active,\n#root button[aria-label='Send message']:not(:disabled):active {\n transform: translateY(1px) scale(0.96);\n}\n\n#root button[aria-label='\u53D1\u9001\u6D88\u606F']:not(:disabled):active::after,\n#root button[aria-label='Send message']:not(:disabled):active::after {\n opacity: 0.86;\n transform: scale(0.76);\n}\n\n#root button[aria-label='\u53D1\u9001\u6D88\u606F']:disabled,\n#root button[aria-label='Send message']:disabled {\n border-color: var(--xiaohei-edge) !important;\n color: var(--dsw-alias-label-dimmed) !important;\n background: var(--xiaohei-surface-muted) !important;\n filter: saturate(0.42);\n box-shadow: inset 0 1px rgb(255 255 255 / 8%) !important;\n}\n\n#root button[aria-label='\u53D1\u9001\u6D88\u606F']:disabled::after,\n#root button[aria-label='Send message']:disabled::after {\n opacity: 0.12;\n}\n\n@media (max-width: 700px) {\n #root [data-composer-card='true'] {\n border-radius: 7px !important;\n }\n}\n";
1
+ /** Conversation composer expressed as Xiaohei's quiet spatial workbench. */
2
+ export declare const XIAOHEI_COMPOSER_CSS = "\n#root [data-composer-card='true'] {\n position: relative;\n isolation: isolate;\n overflow: visible;\n gap: 10px;\n padding-top: 12px;\n border: 1px solid var(--xiaohei-composer-edge) !important;\n border-radius: 14px !important;\n background: var(--xiaohei-composer-fill) !important;\n -webkit-backdrop-filter:\n blur(var(--xiaohei-composer-blur))\n saturate(var(--xiaohei-composer-saturation));\n backdrop-filter:\n blur(var(--xiaohei-composer-blur))\n saturate(var(--xiaohei-composer-saturation));\n box-shadow:\n 0 10px 28px var(--xiaohei-composer-shadow),\n 0 2px 8px var(--xiaohei-shadow) !important;\n transition:\n border-color var(--xiaohei-motion-base) ease,\n box-shadow 260ms ease,\n background-color var(--xiaohei-motion-base) ease;\n}\n\n/* The lower contour behaves like Xiaohei's tail. Workspace-pick mode is\n excluded so the Host keeps ownership of its native dashed affordance. */\n#root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu']))::after {\n content: '';\n position: absolute;\n z-index: 2;\n right: 58px;\n bottom: -1px;\n left: 18px;\n height: 11px;\n border-bottom: 2px solid var(--xiaohei-composer-tail);\n border-radius: 0 0 76% 34%;\n pointer-events: none;\n opacity: 0.32;\n transform: scaleX(.48) translateZ(0);\n transform-origin: right center;\n -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);\n mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);\n transition:\n opacity 240ms ease,\n transform 360ms var(--xiaohei-motion-curve);\n}\n\n#root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu'])):focus-within::after {\n opacity: 0.74;\n transform: scaleX(1) translateZ(0);\n}\n\n#root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu'])):has(textarea:not(:placeholder-shown))::after {\n opacity: 0.88;\n transform: scaleX(.92) translateZ(0);\n}\n\n#root [data-composer-card='true'] textarea {\n -webkit-appearance: none;\n appearance: none;\n border: 0 !important;\n border-radius: 0 !important;\n color: var(--dsw-alias-label-primary) !important;\n background: transparent !important;\n caret-color: var(--xiaohei-spirit-strong);\n box-shadow: none !important;\n}\n\n#root [data-composer-card='true'] textarea:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n}\n\n#root [data-composer-card='true'] textarea::placeholder {\n color: var(--dsw-alias-label-tertiary) !important;\n opacity: 0.84;\n}\n\n#root [data-composer-card='true'] [data-input-backdrop='true'] {\n border-color: transparent !important;\n background: transparent !important;\n}\n\n#root [data-composer-card='true'] button {\n min-width: 30px;\n min-height: 30px;\n border: 1px solid transparent;\n border-radius: 9px;\n transition:\n color var(--xiaohei-motion-fast) ease,\n background-color var(--xiaohei-motion-fast) ease,\n border-color var(--xiaohei-motion-fast) ease,\n box-shadow var(--xiaohei-motion-fast) ease,\n transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);\n}\n\n#root [data-composer-card='true'] button:not(:disabled):hover {\n color: var(--dsw-alias-label-primary);\n border-color: var(--xiaohei-composer-control-edge);\n background: var(--xiaohei-composer-control-hover);\n box-shadow: inset 0 1px 0 var(--xiaohei-composer-highlight);\n}\n\n#root [data-composer-card='true'] button:not(:disabled):active {\n transform: translateY(1px) scale(.97);\n}\n\n@media (max-width: 700px) {\n #root [data-composer-card='true'] {\n border-radius: 12px !important;\n }\n\n #root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu']))::after {\n right: 54px;\n left: 14px;\n }\n}\n\n@media (prefers-reduced-transparency: reduce) {\n #root [data-composer-card='true'] {\n background: var(--xiaohei-composer-solid) !important;\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n }\n}\n\n@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {\n #root [data-composer-card='true'] {\n background: var(--xiaohei-composer-solid) !important;\n }\n}\n";
3
3
  //# sourceMappingURL=composer.d.ts.map
@@ -1,47 +1,81 @@
1
- /** Conversation composer, command affordances, and send action. */
1
+ /** Conversation composer expressed as Xiaohei's quiet spatial workbench. */
2
2
  export const XIAOHEI_COMPOSER_CSS = `
3
3
  #root [data-composer-card='true'] {
4
4
  position: relative;
5
5
  isolation: isolate;
6
6
  overflow: visible;
7
- border: 1px solid var(--xiaohei-layer-content-edge) !important;
8
- border-radius: 8px !important;
9
- background:
10
- linear-gradient(
11
- 90deg,
12
- transparent,
13
- transparent 18%,
14
- var(--xiaohei-spirit-faint) 52%,
15
- transparent
16
- ) 18px 0 / 104px 1px no-repeat,
17
- linear-gradient(180deg, var(--xiaohei-layer-content-highlight), transparent 34%),
18
- var(--xiaohei-layer-content) !important;
7
+ gap: 10px;
8
+ padding-top: 12px;
9
+ border: 1px solid var(--xiaohei-composer-edge) !important;
10
+ border-radius: 14px !important;
11
+ background: var(--xiaohei-composer-fill) !important;
12
+ -webkit-backdrop-filter:
13
+ blur(var(--xiaohei-composer-blur))
14
+ saturate(var(--xiaohei-composer-saturation));
15
+ backdrop-filter:
16
+ blur(var(--xiaohei-composer-blur))
17
+ saturate(var(--xiaohei-composer-saturation));
19
18
  box-shadow:
20
- inset 0 0 0 1px var(--xiaohei-frame-inner),
21
- inset 0 1px rgb(255 255 255 / 7%),
22
- inset 0 -1px var(--xiaohei-layer-panel-edge),
23
- 0 8px 22px var(--xiaohei-shadow) !important;
19
+ 0 10px 28px var(--xiaohei-composer-shadow),
20
+ 0 2px 8px var(--xiaohei-shadow) !important;
24
21
  transition:
25
22
  border-color var(--xiaohei-motion-base) ease,
26
- box-shadow var(--xiaohei-motion-base) ease;
23
+ box-shadow 260ms ease,
24
+ background-color var(--xiaohei-motion-base) ease;
27
25
  }
28
26
 
29
- #root [data-composer-card='true']:focus-within {
30
- border-color: var(--xiaohei-edge-strong) !important;
31
- box-shadow:
32
- inset 0 1px rgb(255 255 255 / 9%),
33
- 0 10px 26px var(--xiaohei-shadow),
34
- 0 0 0 4px var(--xiaohei-focus-shadow) !important;
27
+ /* The lower contour behaves like Xiaohei's tail. Workspace-pick mode is
28
+ excluded so the Host keeps ownership of its native dashed affordance. */
29
+ #root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu']))::after {
30
+ content: '';
31
+ position: absolute;
32
+ z-index: 2;
33
+ right: 58px;
34
+ bottom: -1px;
35
+ left: 18px;
36
+ height: 11px;
37
+ border-bottom: 2px solid var(--xiaohei-composer-tail);
38
+ border-radius: 0 0 76% 34%;
39
+ pointer-events: none;
40
+ opacity: 0.32;
41
+ transform: scaleX(.48) translateZ(0);
42
+ transform-origin: right center;
43
+ -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
44
+ mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
45
+ transition:
46
+ opacity 240ms ease,
47
+ transform 360ms var(--xiaohei-motion-curve);
48
+ }
49
+
50
+ #root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu'])):focus-within::after {
51
+ opacity: 0.74;
52
+ transform: scaleX(1) translateZ(0);
53
+ }
54
+
55
+ #root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu'])):has(textarea:not(:placeholder-shown))::after {
56
+ opacity: 0.88;
57
+ transform: scaleX(.92) translateZ(0);
35
58
  }
36
59
 
37
60
  #root [data-composer-card='true'] textarea {
61
+ -webkit-appearance: none;
62
+ appearance: none;
63
+ border: 0 !important;
64
+ border-radius: 0 !important;
38
65
  color: var(--dsw-alias-label-primary) !important;
66
+ background: transparent !important;
39
67
  caret-color: var(--xiaohei-spirit-strong);
68
+ box-shadow: none !important;
69
+ }
70
+
71
+ #root [data-composer-card='true'] textarea:focus-visible {
72
+ outline: none !important;
73
+ box-shadow: none !important;
40
74
  }
41
75
 
42
76
  #root [data-composer-card='true'] textarea::placeholder {
43
77
  color: var(--dsw-alias-label-tertiary) !important;
44
- opacity: 0.92;
78
+ opacity: 0.84;
45
79
  }
46
80
 
47
81
  #root [data-composer-card='true'] [data-input-backdrop='true'] {
@@ -50,96 +84,51 @@ export const XIAOHEI_COMPOSER_CSS = `
50
84
  }
51
85
 
52
86
  #root [data-composer-card='true'] button {
53
- min-width: 28px;
54
- min-height: 28px;
87
+ min-width: 30px;
88
+ min-height: 30px;
55
89
  border: 1px solid transparent;
56
- border-radius: var(--xiaohei-radius-small);
90
+ border-radius: 9px;
57
91
  transition:
58
92
  color var(--xiaohei-motion-fast) ease,
59
93
  background-color var(--xiaohei-motion-fast) ease,
60
94
  border-color var(--xiaohei-motion-fast) ease,
95
+ box-shadow var(--xiaohei-motion-fast) ease,
61
96
  transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);
62
97
  }
63
98
 
64
99
  #root [data-composer-card='true'] button:not(:disabled):hover {
65
- color: var(--xiaohei-spirit-strong);
66
- border-color: var(--xiaohei-edge);
67
- background: var(--xiaohei-spirit-soft);
100
+ color: var(--dsw-alias-label-primary);
101
+ border-color: var(--xiaohei-composer-control-edge);
102
+ background: var(--xiaohei-composer-control-hover);
103
+ box-shadow: inset 0 1px 0 var(--xiaohei-composer-highlight);
68
104
  }
69
105
 
70
106
  #root [data-composer-card='true'] button:not(:disabled):active {
71
- transform: translateY(1px) scale(0.98);
72
- }
73
-
74
- #root button[aria-label='发送消息'],
75
- #root button[aria-label='Send message'] {
76
- position: relative;
77
- isolation: isolate;
78
- border: 1px solid var(--xiaohei-edge-strong) !important;
79
- border-radius: 50% !important;
80
- color: var(--dsw-alias-brand-primary-invert) !important;
81
- background:
82
- radial-gradient(circle at 36% 27%, rgb(255 255 255 / 36%) 0 7%, transparent 9%),
83
- linear-gradient(145deg, var(--xiaohei-spirit), var(--dsw-alias-button-primary-fill)) !important;
84
- box-shadow:
85
- inset 0 1px rgb(255 255 255 / 34%),
86
- inset 0 -2px rgb(4 25 31 / 18%),
87
- 0 6px 16px var(--xiaohei-focus-shadow) !important;
88
- transition:
89
- transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve),
90
- box-shadow var(--xiaohei-motion-base) ease,
91
- filter var(--xiaohei-motion-base) ease;
107
+ transform: translateY(1px) scale(.97);
92
108
  }
93
109
 
94
- #root button[aria-label='发送消息']::after,
95
- #root button[aria-label='Send message']::after {
96
- content: '';
97
- position: absolute;
98
- inset: 3px;
99
- border: 1px solid rgb(238 253 255 / 28%);
100
- border-radius: inherit;
101
- pointer-events: none;
102
- opacity: 0.58;
103
- transition: opacity var(--xiaohei-motion-fast) ease, transform 220ms var(--xiaohei-motion-curve);
104
- }
105
-
106
- #root button[aria-label='发送消息']:not(:disabled):hover,
107
- #root button[aria-label='Send message']:not(:disabled):hover {
108
- filter: brightness(1.05) saturate(1.03);
109
- box-shadow:
110
- inset 0 1px rgb(255 255 255 / 42%),
111
- inset 0 -2px rgb(4 25 31 / 16%),
112
- 0 8px 20px var(--xiaohei-focus-shadow) !important;
113
- }
114
-
115
- #root button[aria-label='发送消息']:not(:disabled):active,
116
- #root button[aria-label='Send message']:not(:disabled):active {
117
- transform: translateY(1px) scale(0.96);
118
- }
119
-
120
- #root button[aria-label='发送消息']:not(:disabled):active::after,
121
- #root button[aria-label='Send message']:not(:disabled):active::after {
122
- opacity: 0.86;
123
- transform: scale(0.76);
124
- }
110
+ @media (max-width: 700px) {
111
+ #root [data-composer-card='true'] {
112
+ border-radius: 12px !important;
113
+ }
125
114
 
126
- #root button[aria-label='发送消息']:disabled,
127
- #root button[aria-label='Send message']:disabled {
128
- border-color: var(--xiaohei-edge) !important;
129
- color: var(--dsw-alias-label-dimmed) !important;
130
- background: var(--xiaohei-surface-muted) !important;
131
- filter: saturate(0.42);
132
- box-shadow: inset 0 1px rgb(255 255 255 / 8%) !important;
115
+ #root [data-composer-card='true']:not(:has(textarea[aria-haspopup='menu']))::after {
116
+ right: 54px;
117
+ left: 14px;
118
+ }
133
119
  }
134
120
 
135
- #root button[aria-label='发送消息']:disabled::after,
136
- #root button[aria-label='Send message']:disabled::after {
137
- opacity: 0.12;
121
+ @media (prefers-reduced-transparency: reduce) {
122
+ #root [data-composer-card='true'] {
123
+ background: var(--xiaohei-composer-solid) !important;
124
+ -webkit-backdrop-filter: none;
125
+ backdrop-filter: none;
126
+ }
138
127
  }
139
128
 
140
- @media (max-width: 700px) {
129
+ @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
141
130
  #root [data-composer-card='true'] {
142
- border-radius: 7px !important;
131
+ background: var(--xiaohei-composer-solid) !important;
143
132
  }
144
133
  }
145
134
  `;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Browser-independent control primitives.
3
+ *
4
+ * This layer owns only the shared native-control contract. Feature chrome is
5
+ * composed after it and remains free to define geometry or stronger states.
6
+ */
7
+ export declare const XIAOHEI_CONTROL_PRIMITIVES_CSS = "\nhtml {\n color-scheme: dark;\n accent-color: var(--xiaohei-spirit);\n font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"PingFang SC\",\n \"Microsoft YaHei\", \"Segoe UI\", sans-serif;\n font-synthesis: none;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml[data-xiaohei-appearance='light'] {\n color-scheme: light;\n}\n\n#root,\n:where(#root) :where(button, input, textarea, select) {\n font: inherit;\n letter-spacing: inherit;\n}\n\n:where(#root) :where(button, input, textarea, select) {\n box-sizing: border-box;\n color: inherit;\n -webkit-tap-highlight-color: transparent;\n}\n\n:where(#root) :where(button, select, input[type='button'], input[type='submit'], input[type='reset']) {\n -webkit-appearance: none;\n appearance: none;\n}\n\n:where(#root) :where(button, input[type='button'], input[type='submit'], input[type='reset']) {\n margin: 0;\n border: 1px solid transparent;\n border-radius: var(--xiaohei-radius-small);\n color: var(--dsw-alias-label-primary);\n background: transparent;\n cursor: pointer;\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 transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);\n}\n\n:where(#root) :where(button, input[type='button'], input[type='submit'], input[type='reset']):not(:disabled):hover {\n border-color: var(--xiaohei-edge);\n background-color: var(--xiaohei-spirit-soft);\n}\n\n:where(#root) :where(button, input[type='button'], input[type='submit'], input[type='reset']):not(:disabled):active {\n transform: translateY(1px) scale(.98);\n}\n\n:where(#root) :where(button, input[type='button'], input[type='submit'], input[type='reset']):disabled {\n cursor: not-allowed;\n opacity: .48;\n}\n\n:where(#root) :where(input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']), textarea, select) {\n border: 1px solid var(--xiaohei-edge);\n border-radius: var(--xiaohei-radius-control);\n color: var(--dsw-alias-label-primary);\n background-color: var(--xiaohei-plugin-control-fill);\n box-shadow: inset 0 1px var(--xiaohei-layer-content-highlight);\n transition:\n border-color var(--xiaohei-motion-fast) ease,\n background-color var(--xiaohei-motion-fast) ease,\n box-shadow var(--xiaohei-motion-fast) ease;\n}\n\n:where(#root) :where(input, textarea)::placeholder {\n color: var(--dsw-alias-label-tertiary);\n opacity: 1;\n}\n\n:where(#root) :where(input[type='search'])::-webkit-search-cancel-button,\n:where(#root) :where(input[type='search'])::-webkit-search-decoration {\n -webkit-appearance: none;\n appearance: none;\n}\n\n:where(#root) :where(input[type='number']) {\n -moz-appearance: textfield;\n}\n\n:where(#root) :where(input[type='number'])::-webkit-inner-spin-button,\n:where(#root) :where(input[type='number'])::-webkit-outer-spin-button {\n margin: 0;\n -webkit-appearance: none;\n appearance: none;\n}\n\n:where(#root) :where(textarea) {\n resize: vertical;\n}\n\n:where(#root) :where(select) {\n padding-inline-end: 30px;\n background-image:\n linear-gradient(45deg, transparent 50%, currentColor 50%),\n linear-gradient(135deg, currentColor 50%, transparent 50%);\n background-position:\n calc(100% - 15px) 50%,\n calc(100% - 10px) 50%;\n background-repeat: no-repeat;\n background-size: 5px 5px, 5px 5px;\n}\n\n:where(#root) :where(select)::-ms-expand {\n display: none;\n}\n\n:where(#root) :where(option, optgroup) {\n color: var(--dsw-alias-label-primary);\n background: var(--xiaohei-surface-raised);\n}\n\n:where(#root) :where(input[type='checkbox'], input[type='radio']) {\n -webkit-appearance: none;\n appearance: none;\n display: inline-grid;\n place-content: center;\n width: 16px;\n height: 16px;\n margin: 0;\n border: 1px solid var(--xiaohei-edge-strong);\n color: var(--xiaohei-frame-ink);\n background: var(--xiaohei-plugin-control-fill);\n box-shadow: inset 0 1px var(--xiaohei-layer-content-highlight);\n cursor: pointer;\n transition:\n border-color var(--xiaohei-motion-fast) ease,\n background-color var(--xiaohei-motion-fast) ease,\n box-shadow var(--xiaohei-motion-fast) ease;\n}\n\n:where(#root) :where(input[type='checkbox']) {\n border-radius: 5px;\n}\n\n:where(#root) :where(input[type='radio']) {\n border-radius: 50%;\n}\n\n:where(#root) :where(input[type='checkbox'], input[type='radio'])::before {\n content: '';\n width: 8px;\n height: 8px;\n background: currentColor;\n opacity: 0;\n transform: scale(.5);\n transition:\n opacity var(--xiaohei-motion-fast) ease,\n transform var(--xiaohei-motion-fast) var(--xiaohei-motion-curve);\n}\n\n:where(#root) :where(input[type='checkbox'])::before {\n clip-path: polygon(14% 44%, 0 62%, 40% 100%, 100% 20%, 82% 5%, 38% 70%);\n}\n\n:where(#root) :where(input[type='radio'])::before {\n border-radius: 50%;\n}\n\n:where(#root) :where(input[type='checkbox'], input[type='radio']):checked {\n border-color: var(--xiaohei-spirit-strong);\n background: var(--xiaohei-spirit);\n box-shadow: 0 0 0 3px var(--xiaohei-spirit-faint);\n}\n\n:where(#root) :where(input[type='checkbox'], input[type='radio']):checked::before {\n opacity: 1;\n transform: scale(1);\n}\n\n:where(#root) :where(input[type='checkbox'], input[type='radio']):disabled {\n cursor: not-allowed;\n opacity: .48;\n}\n\n:where(#root) :where(input[type='range']) {\n -webkit-appearance: none;\n appearance: none;\n height: 16px;\n margin: 0;\n background: transparent;\n cursor: pointer;\n}\n\n:where(#root) :where(input[type='range'])::-webkit-slider-runnable-track {\n height: 4px;\n border-radius: 999px;\n background: var(--xiaohei-surface-muted);\n box-shadow: inset 0 0 0 1px var(--xiaohei-edge);\n}\n\n:where(#root) :where(input[type='range'])::-webkit-slider-thumb {\n width: 14px;\n height: 14px;\n margin-top: -5px;\n border: 2px solid var(--xiaohei-surface-raised);\n border-radius: 50%;\n background: var(--xiaohei-spirit);\n box-shadow: 0 2px 6px var(--xiaohei-shadow);\n -webkit-appearance: none;\n appearance: none;\n}\n\n:where(#root) :where(input[type='range'])::-moz-range-track {\n height: 4px;\n border: 0;\n border-radius: 999px;\n background: var(--xiaohei-surface-muted);\n box-shadow: inset 0 0 0 1px var(--xiaohei-edge);\n}\n\n:where(#root) :where(input[type='range'])::-moz-range-progress {\n height: 4px;\n border-radius: 999px;\n background: var(--xiaohei-spirit);\n}\n\n:where(#root) :where(input[type='range'])::-moz-range-thumb {\n width: 10px;\n height: 10px;\n border: 2px solid var(--xiaohei-surface-raised);\n border-radius: 50%;\n background: var(--xiaohei-spirit);\n box-shadow: 0 2px 6px var(--xiaohei-shadow);\n}\n\n:where(#root) :where(input[type='range']):disabled {\n cursor: not-allowed;\n opacity: .48;\n}\n\n:where(#root) :where(input[type='file'])::file-selector-button {\n margin-inline-end: 10px;\n padding: 6px 10px;\n border: 1px solid var(--xiaohei-edge);\n border-radius: var(--xiaohei-radius-small);\n color: var(--dsw-alias-label-primary);\n background: var(--xiaohei-plugin-control-fill);\n font: inherit;\n cursor: pointer;\n}\n\n:where(#root) :where(progress) {\n overflow: hidden;\n border: 0;\n border-radius: 999px;\n color: var(--xiaohei-spirit);\n background: var(--xiaohei-surface-muted);\n accent-color: var(--xiaohei-spirit);\n}\n\n:where(#root) :where(progress)::-webkit-progress-bar {\n background: var(--xiaohei-surface-muted);\n}\n\n:where(#root) :where(progress)::-webkit-progress-value {\n background: var(--xiaohei-spirit);\n}\n\n:where(#root) :where(progress)::-moz-progress-bar {\n background: var(--xiaohei-spirit);\n}\n\n:where(#root) :where(fieldset) {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n:where(#root) :where(legend) {\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n:where(#root) :where(summary) {\n cursor: pointer;\n}\n\n:where(#root) :where(a) {\n color: var(--xiaohei-spirit-strong);\n text-decoration-color: var(--xiaohei-edge-strong);\n text-underline-offset: .18em;\n}\n\n:where(#root) :where(a):hover {\n text-decoration-color: currentColor;\n}\n\n#root {\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n}\n\n#root:hover,\n#root:focus-within {\n scrollbar-color: var(--dsw-alias-scrollbar-bg-l1) transparent;\n}\n\n#root ::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\n#root ::-webkit-scrollbar-track,\n#root ::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n#root ::-webkit-scrollbar-thumb {\n min-width: 28px;\n min-height: 28px;\n border: 2px solid transparent;\n border-radius: 999px;\n background: transparent;\n background-clip: padding-box;\n}\n\n#root:hover ::-webkit-scrollbar-thumb,\n#root:focus-within ::-webkit-scrollbar-thumb {\n background-color: var(--dsw-alias-scrollbar-bg-l1);\n}\n\n#root ::-webkit-scrollbar-thumb:hover {\n background-color: var(--dsw-alias-scrollbar-hover-l1);\n}\n\n@media (forced-colors: active) {\n :where(#root) :where(input, textarea, select, button, progress) {\n forced-color-adjust: auto;\n }\n}\n";
8
+ //# sourceMappingURL=controls.d.ts.map