@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
@@ -0,0 +1,87 @@
1
+ import { type ArcSpec, type DotRender } from './decor.js';
2
+ import { type HeadGaze } from './face.js';
3
+ import { type Silhouette } from './shape.js';
4
+ export interface EyeCfg {
5
+ /** largeur locale (axe court de la gelule), en unites de rayon de boule */
6
+ w: number;
7
+ /** hauteur locale (axe long) */
8
+ h: number;
9
+ /** 1 = ouvert, 0 = ferme */
10
+ open: number;
11
+ /**
12
+ * Inclinaison propre de la gelule, en degres, positif = le haut part a
13
+ * droite. Appliquee APRES le repere tangent de la sphere. Sans elle, les deux
14
+ * yeux penchent forcement du meme cote (le roulis de tete) et la colere comme
15
+ * la tristesse, qui demandent des inclinaisons en miroir, sont hors de portee.
16
+ */
17
+ tilt?: number;
18
+ }
19
+ export interface Pose {
20
+ /** silhouette du corps, en unites de rayon de boule */
21
+ sil: Silhouette;
22
+ /** decalage global du corps ET des yeux */
23
+ offX: number;
24
+ offY: number;
25
+ gaze: HeadGaze;
26
+ /** demi-ecart des yeux sur la sphere, en degres */
27
+ split: number;
28
+ /** [oeil interieur, oeil exterieur] */
29
+ eyes: [EyeCfg, EyeCfg];
30
+ /** opacite des yeux : sert aux etats sans visage */
31
+ eyeAlpha: number;
32
+ bodyAlpha: number;
33
+ dots: DotRender[];
34
+ arcs: ArcSpec[];
35
+ notif: {
36
+ x: number;
37
+ y: number;
38
+ r: number;
39
+ notch: number;
40
+ } | null;
41
+ /** true = le decor passe derriere le corps (particules de l'eclatement) */
42
+ dotsBehind: boolean;
43
+ }
44
+ export type StateId = 'idle' | 'thinking' | 'wink' | 'wide' | 'alert' | 'notify' | 'exclaim' | 'sleep' | 'egg' | 'hexagon' | 'play' | 'orbit' | 'burst' | 'comet'
45
+ /** transition d'interface, pas une animation du catalogue : hors `SEQUENCE` */
46
+ | 'swirl';
47
+ export interface StateDef {
48
+ id: StateId;
49
+ /** duree de maintien quand la sequence complete est jouee */
50
+ duration: number;
51
+ /**
52
+ * duree en dessous de laquelle l'animation est coupee avant d'aboutir : le
53
+ * "!" ne revient pas, le corps reste eclate. Elle se lit dans les constantes
54
+ * de `pose` ci-dessous, elle ne se choisit pas. Absente = l'etat ignore le
55
+ * temps ou boucle, n'importe quelle duree lui va (voir `MIN_BLOCK`).
56
+ */
57
+ minDuration?: number;
58
+ /** duree du morph d'entree */
59
+ morph: number;
60
+ /** true = l'entree est masquee par un clignement, comme dans la video */
61
+ blinkIn: boolean;
62
+ /**
63
+ * true = le corps est la silhouette "au repos", donc remplacable par la forme
64
+ * choisie dans le personnalisateur. Les etats qui dessinent leur propre forme
65
+ * (le "!", les points, l'oeuf, le triangle...) valent false : c'est cette forme
66
+ * la qui EST l'animation.
67
+ */
68
+ baseBody: boolean;
69
+ /**
70
+ * true = l'etat porte le visage "au repos", donc remplacable par l'expression
71
+ * choisie. Seul `idle` : les autres etats a visage ont une expression relevee
72
+ * sur la video, c'est precisement ce qu'on reproduit.
73
+ */
74
+ baseFace: boolean;
75
+ pose(local: number): Pose;
76
+ }
77
+ export declare const STATES: StateDef[];
78
+ export declare const STATE_BY_ID: Map<StateId, StateDef>;
79
+ /** Ordre de lecture de la sequence complete, calque sur la video de reference. */
80
+ /**
81
+ * Date, en temps local, ou chaque etat est le plus lisible : c'est la pose que
82
+ * montrent les vignettes et la planche. Rendu deterministe, donc comparable
83
+ * d'une execution a l'autre. Le type force a couvrir tout nouvel etat.
84
+ */
85
+ export declare const POSES: Record<StateId, number>;
86
+ export declare const SEQUENCE: StateId[];
87
+ //# sourceMappingURL=states.d.ts.map
@@ -0,0 +1,468 @@
1
+ // Adapted from bloub, Copyright (c) 2026 Jérémy Perret (MIT).
2
+ // See THIRD_PARTY_NOTICES.md for source revision and local changes.
3
+ import { COMET_DOT, COMET_RIBBONS, DOT_PEAK, DOT_R, DOT_X, NOTIF_ANGLE, NOTIF_DIST, NOTIF_MARGIN, NOTIF_POP, NOTIF_R, RINGS, SWOOSH, particles } from './decor.js';
4
+ import { EYE_H, EYE_SPLIT, EYE_W, REST_GAZE } from './face.js';
5
+ import { TAU, clamp, easings } from './math.js';
6
+ import { circle, hullOfCircles, polyPath, profileFromPolygon, silhouette } from './shape.js';
7
+ const pair = (w, h) => [
8
+ { w, h, open: 1 },
9
+ { w, h, open: 1 }
10
+ ];
11
+ function base(over = {}) {
12
+ return {
13
+ sil: circle(1),
14
+ offX: 0,
15
+ offY: 0,
16
+ gaze: { ...REST_GAZE },
17
+ split: EYE_SPLIT,
18
+ eyes: pair(EYE_W, EYE_H),
19
+ eyeAlpha: 1,
20
+ bodyAlpha: 1,
21
+ dots: [],
22
+ arcs: [],
23
+ notif: null,
24
+ dotsBehind: false,
25
+ ...over
26
+ };
27
+ }
28
+ /* --------------------------------------------------- formes non radiales */
29
+ /**
30
+ * Barre du "!" vertical : enveloppe convexe de deux cercles.
31
+ * Mesure : cercle haut (0, -0.505) r 0.132, cercle bas (0, +0.130) r 0.075,
32
+ * flancs rectilignes. Elle est donc tronconique (rapport haut/bas 1.76).
33
+ */
34
+ const BAR_UPRIGHT_CY = -0.1875;
35
+ const BAR_UPRIGHT = profileFromPolygon(hullOfCircles(0, -0.505, 0.132, 0, 0.13, 0.075), 0, BAR_UPRIGHT_CY);
36
+ /** Barre du "!" penche : capsule pure (largeur constante 0.269, longueur 0.776). */
37
+ const BAR_ITALIC = profileFromPolygon(hullOfCircles(0, -0.2535, 0.1345, 0, 0.2535, 0.1345), 0, 0);
38
+ const barUpright = (pose = {}) => ({
39
+ radii: [...BAR_UPRIGHT],
40
+ rot: 0,
41
+ cx: 0,
42
+ cy: BAR_UPRIGHT_CY,
43
+ sx: 1,
44
+ sy: 1,
45
+ ...pose
46
+ });
47
+ const barItalic = (pose = {}) => ({
48
+ radii: [...BAR_ITALIC],
49
+ rot: 0,
50
+ cx: 0,
51
+ cy: 0,
52
+ sx: 1,
53
+ sy: 1,
54
+ ...pose
55
+ });
56
+ /**
57
+ * Le point du "!" penche n'est pas un disque : c'est une goutte, bout rond
58
+ * (r 0.118) du cote de la barre et pointe effilee a l'oppose, longueur 0.300
59
+ * dans l'axe du glyphe. Centree sur le barycentre du bout rond.
60
+ */
61
+ const TEAR = polyPath(hullOfCircles(0, 0, 0.118, 0, 0.172, 0.012));
62
+ /**
63
+ * Le triangle ne tourne pas sur lui-meme : son centre decrit un cercle de
64
+ * rayon 0.213 autour de l'origine (mesure). C'est ce decalage qui donne
65
+ * l'impression qu'il bascule au lieu de pivoter sur place.
66
+ */
67
+ const TRI_ORBIT = 0.213;
68
+ function spinningTriangle(rot) {
69
+ return silhouette('triangle', {
70
+ rot,
71
+ cx: -TRI_ORBIT * Math.sin(rot),
72
+ cy: TRI_ORBIT * Math.cos(rot)
73
+ });
74
+ }
75
+ /** Onde de pulsation qui parcourt les trois points de gauche a droite. */
76
+ function dotPulse(t, index) {
77
+ const p = ((((t - index * 0.5) / 1.5) % 1) + 1) % 1;
78
+ const k = p < 0.5 ? 0.5 - 0.5 * Math.cos(p * TAU) : 0;
79
+ return clamp(k * 2);
80
+ }
81
+ export const STATES = [
82
+ {
83
+ id: 'idle',
84
+ duration: 2.4,
85
+ morph: 0.45,
86
+ blinkIn: false,
87
+ baseFace: true,
88
+ baseBody: true,
89
+ pose: () => base()
90
+ },
91
+ {
92
+ id: 'thinking',
93
+ duration: 2.6,
94
+ morph: 0.4,
95
+ baseFace: false,
96
+ baseBody: false,
97
+ blinkIn: true,
98
+ pose: (t) => {
99
+ const mid = dotPulse(t, 1);
100
+ // Les points lateraux sortent des flancs de la boule : dans la video ils
101
+ // restent fusionnes avec elle 1-2 frames avant de se detacher.
102
+ const emerge = 0.3 + 0.7 * easings.easeOutCubic(clamp(t / 0.3));
103
+ return base({
104
+ // la boule DEVIENT le point du milieu : le morph reste continu
105
+ sil: circle(DOT_R * (1 + (DOT_PEAK - 1) * mid), { cx: DOT_X[1] }),
106
+ eyeAlpha: 0,
107
+ dots: [0, 2].map((i) => {
108
+ const k = dotPulse(t, i);
109
+ return {
110
+ x: DOT_X[i] * emerge,
111
+ y: 0,
112
+ r: DOT_R * (1 + (DOT_PEAK - 1) * k),
113
+ opacity: 0.55 + 0.45 * k
114
+ };
115
+ })
116
+ });
117
+ }
118
+ },
119
+ {
120
+ id: 'wink',
121
+ duration: 1.6,
122
+ morph: 0.3,
123
+ blinkIn: true,
124
+ baseFace: false,
125
+ baseBody: true,
126
+ pose: () => base({
127
+ gaze: { yaw: -5.37, pitch: 4.55, roll: 6.7 },
128
+ split: 16.25,
129
+ // L'oeil ferme n'est pas l'oeil ouvert ecrase : c'est un tiret
130
+ // horizontal PLUS LARGE que l'oeil ouvert (0.447 contre 0.236).
131
+ eyes: [
132
+ { w: 0.236, h: 0.464, open: 1 },
133
+ { w: 0.447, h: 0.089, open: 1 }
134
+ ]
135
+ })
136
+ },
137
+ {
138
+ id: 'wide',
139
+ duration: 1.8,
140
+ morph: 0.55,
141
+ blinkIn: true,
142
+ baseFace: false,
143
+ baseBody: true,
144
+ pose: () => base({
145
+ gaze: { yaw: 6.92, pitch: -21.96, roll: 11.6 },
146
+ split: 18.43,
147
+ eyes: pair(0.356, 0.875)
148
+ })
149
+ },
150
+ {
151
+ id: 'alert',
152
+ duration: 2.4,
153
+ // le "!" revient en place a 1.6 + 0.4
154
+ minDuration: 2,
155
+ morph: 0.45,
156
+ baseFace: false,
157
+ baseBody: false,
158
+ blinkIn: false,
159
+ pose: (t) => {
160
+ // Course mesuree : -0.087 -> +0.732 en 1.5 s, ease-in-out, micro-overshoot.
161
+ const p = clamp(t / 1.5);
162
+ const travel = easings.easeInOutCubic(p) * 0.82 - 0.087;
163
+ const back = t > 1.6 ? clamp((t - 1.6) / 0.4) : 0;
164
+ const x = travel * (1 - back) + 0.1 * back;
165
+ // Vibration secondaire a 2.5 Hz, barre et point en opposition de phase.
166
+ const buzz = Math.sin(t * 2.5 * TAU) * 0.005;
167
+ const tilt = (17.7 * Math.PI) / 180;
168
+ return base({
169
+ sil: barItalic({ rot: tilt, cx: x, cy: -0.325 - buzz }),
170
+ eyeAlpha: 0,
171
+ dots: [
172
+ {
173
+ // le point suit l'axe du glyphe, a 0.580 du centre de la barre
174
+ x: x - Math.sin(tilt) * 0.58,
175
+ y: -0.325 + Math.cos(tilt) * 0.58 + buzz * 2.8,
176
+ r: 0.118,
177
+ d: TEAR,
178
+ rot: (tilt * 180) / Math.PI,
179
+ opacity: 1
180
+ }
181
+ ]
182
+ });
183
+ }
184
+ },
185
+ {
186
+ id: 'notify',
187
+ duration: 2.2,
188
+ morph: 0.5,
189
+ blinkIn: true,
190
+ baseFace: false,
191
+ baseBody: true,
192
+ pose: (t) => {
193
+ // Pop du point bleu : pic a +14 % vers 0.3 s puis stabilisation.
194
+ const p = clamp(t / 0.45);
195
+ const pop = 1 + (NOTIF_POP - 1) * Math.sin(p * Math.PI) * (1 - p * 0.35);
196
+ const r = NOTIF_R * (p < 1 ? pop : 1);
197
+ const a = (NOTIF_ANGLE * Math.PI) / 180;
198
+ return base({
199
+ // le regard part a l'oppose de la pastille
200
+ gaze: { yaw: -21.94, pitch: -5.82, roll: -12.2 },
201
+ split: 18.89,
202
+ eyes: pair(0.505, 0.498),
203
+ notif: {
204
+ x: Math.cos(a) * NOTIF_DIST,
205
+ y: Math.sin(a) * NOTIF_DIST,
206
+ r,
207
+ notch: r + NOTIF_MARGIN
208
+ }
209
+ });
210
+ }
211
+ },
212
+ {
213
+ id: 'exclaim',
214
+ duration: 2,
215
+ morph: 0.45,
216
+ baseFace: false,
217
+ baseBody: false,
218
+ blinkIn: false,
219
+ pose: () => base({
220
+ sil: barUpright(),
221
+ eyeAlpha: 0,
222
+ dots: [{ x: -0.012, y: 0.526, r: 0.113, opacity: 1 }]
223
+ })
224
+ },
225
+ {
226
+ id: 'sleep',
227
+ duration: 2.4,
228
+ morph: 0.5,
229
+ baseFace: false,
230
+ baseBody: false,
231
+ blinkIn: false,
232
+ pose: (t) => base({
233
+ // Rebond vertical mesure : +-0.19 autour de +0.11, periode 0.6 s.
234
+ sil: circle(0.1585, { cy: 0.11 + Math.sin(t * (TAU / 0.6)) * 0.19 }),
235
+ eyeAlpha: 0
236
+ })
237
+ },
238
+ {
239
+ id: 'egg',
240
+ duration: 1.8,
241
+ morph: 0.4,
242
+ baseFace: false,
243
+ baseBody: false,
244
+ blinkIn: true,
245
+ pose: () => base({
246
+ sil: silhouette('egg'),
247
+ gaze: { yaw: 19.97, pitch: 26.01, roll: -17.1 },
248
+ // les yeux se resserrent comme le corps
249
+ split: 11.07,
250
+ eyes: pair(0.164, 0.385)
251
+ })
252
+ },
253
+ {
254
+ id: 'hexagon',
255
+ duration: 1.6,
256
+ morph: 0.4,
257
+ baseFace: false,
258
+ baseBody: false,
259
+ blinkIn: true,
260
+ pose: () => base({
261
+ sil: silhouette('hexagon'),
262
+ gaze: { yaw: 23.11, pitch: 24.42, roll: -13.3 },
263
+ split: 13.37,
264
+ eyes: pair(0.177, 0.411)
265
+ })
266
+ },
267
+ {
268
+ id: 'play',
269
+ duration: 2,
270
+ morph: 0.5,
271
+ baseFace: false,
272
+ baseBody: false,
273
+ blinkIn: true,
274
+ pose: (t) => {
275
+ // Le triangle reste quasi immobile pendant que le bouquet le traverse.
276
+ const fade = clamp(t / 0.35) * clamp((2.2 - t) / 0.5);
277
+ return base({
278
+ sil: spinningTriangle(0),
279
+ gaze: { yaw: 12, pitch: -8, roll: -6 },
280
+ split: 15,
281
+ eyes: pair(0.18, 0.34),
282
+ // le bouquet balaie de la droite vers la gauche par-dessus le triangle
283
+ arcs: SWOOSH.map((s, i) => ({
284
+ id: `sw${i}`,
285
+ seed: { ...s, cx: 0.45 - t * 0.42 },
286
+ t,
287
+ opacity: fade
288
+ }))
289
+ });
290
+ }
291
+ },
292
+ {
293
+ id: 'orbit',
294
+ duration: 3.4,
295
+ // le corps a fini de se relacher du triangle vers la boule a 1.6 + 0.9
296
+ minDuration: 2.5,
297
+ morph: 0.6,
298
+ baseFace: false,
299
+ baseBody: false,
300
+ blinkIn: false,
301
+ pose: (t) => {
302
+ // Rotation mesuree : rampe sur 0.35 s puis 1.25 tour/s (sens antihoraire).
303
+ const ramp = easings.easeInOutCubic(clamp(t / 0.35));
304
+ const rot = -TAU * 1.25 * t * ramp;
305
+ // Le corps se relache du triangle vers la boule pendant l'orbite.
306
+ const back = easings.easeInOutCubic(clamp((t - 1.6) / 0.9));
307
+ const tri = spinningTriangle(rot);
308
+ const ball = circle(1, { rot });
309
+ const sil = {
310
+ radii: tri.radii.map((r, i) => r + (ball.radii[i] - r) * back),
311
+ rot,
312
+ cx: tri.cx * (1 - back),
313
+ cy: tri.cy * (1 - back),
314
+ sx: 1,
315
+ sy: 1
316
+ };
317
+ const fade = clamp(t / 0.8) * clamp((3.6 - t) / 0.9);
318
+ return base({
319
+ sil,
320
+ // les yeux filent autour de la sphere ~3x plus vite que la silhouette
321
+ gaze: {
322
+ yaw: REST_GAZE.yaw + Math.sin(t * 6.5) * 65 * (1 - back),
323
+ pitch: -4 + back * 32,
324
+ roll: -13
325
+ },
326
+ eyes: pair(0.18, 0.34 + back * 0.07),
327
+ // les anneaux entrent un par un sur 0.8 s
328
+ arcs: RINGS.map((s, i) => ({
329
+ id: `rg${i}`,
330
+ seed: s,
331
+ t,
332
+ opacity: fade * clamp((t - i * 0.13) / 0.3)
333
+ }))
334
+ });
335
+ }
336
+ },
337
+ {
338
+ /**
339
+ * Entree dans la vue des reglages.
340
+ *
341
+ * SEUL etat qui n'est pas releve sur la video : il est CHOISI, comme la
342
+ * couleur `--ink`. Il emprunte le vocabulaire d'`orbit` — les memes anneaux,
343
+ * avec leurs parametres mesures — mais coupe court : 1 s au lieu de 3,4, la
344
+ * moitie des anneaux, et aucun triangle.
345
+ *
346
+ * Les deux drapeaux a `true` sont tout l'interet de cet etat :
347
+ *
348
+ * - `baseBody` laisse la forme choisie remplacer le corps, donc la vue peut
349
+ * imposer le cercle et le galet ou la goutte y MORPHENT au lieu de sauter ;
350
+ * - `baseFace` fait porter le visage de repos, donc le suivi du curseur
351
+ * s'applique des cette entree. Un etat qui aurait sa propre pose de regard
352
+ * (comme `orbit`) rendrait la main a l'etat suivant en pleine course, et
353
+ * les yeux sauteraient d'un coup a la reprise.
354
+ *
355
+ * Il n'est volontairement PAS dans `SEQUENCE` : ce n'est pas une animation du
356
+ * catalogue, c'est une transition d'interface.
357
+ */
358
+ id: 'swirl',
359
+ // un peu plus que le tour du regard (`TURN_TIME`, 1,1 s) : les yeux doivent
360
+ // etre poses a gauche avant que les anneaux ne s'effacent
361
+ duration: 1.3,
362
+ minDuration: 1.3,
363
+ morph: 0.3,
364
+ baseFace: true,
365
+ baseBody: true,
366
+ // le morph de forme est masque par un clignement, comme partout ailleurs
367
+ blinkIn: true,
368
+ pose: (t) => base({
369
+ // trois anneaux sur les six d'`orbit` : la moitie du bouquet suffit a le
370
+ // reconnaitre, et c'est autant d'arcs en moins a rasteriser par image
371
+ arcs: RINGS.slice(0, 3).map((s, i) => ({
372
+ id: `sw${i}`,
373
+ seed: s,
374
+ t,
375
+ // ils entrent l'un apres l'autre puis s'effacent avant la fin du bloc,
376
+ // pour que la reprise au repos se fasse sur une image deja propre
377
+ opacity: clamp((t - i * 0.06) / 0.14) * clamp((1.22 - t) / 0.34)
378
+ }))
379
+ })
380
+ },
381
+ {
382
+ id: 'burst',
383
+ duration: 2.6,
384
+ // le corps est recompose a 1.7 + 0.7
385
+ minDuration: 2.4,
386
+ morph: 0.4,
387
+ baseFace: false,
388
+ baseBody: false,
389
+ blinkIn: false,
390
+ pose: (t) => {
391
+ // Effondrement mesure : 1.0 -> 0.166 en 0.7 s, ease-out, sans rebond.
392
+ const collapse = 1 - 0.834 * easings.easeOutQuint(clamp(t / 0.7));
393
+ const regrow = easings.easeOutQuint(clamp((t - 1.7) / 0.7));
394
+ return base({
395
+ sil: circle(collapse + (1 - collapse) * regrow),
396
+ eyeAlpha: clamp((t - 1.85) / 0.4),
397
+ dots: particles(t, 1),
398
+ dotsBehind: true
399
+ });
400
+ }
401
+ },
402
+ {
403
+ id: 'comet',
404
+ duration: 2.4,
405
+ // le point se recompose a 1.85 + 0.6 = 2.45, soit 0.05 s apres la coupe de
406
+ // la video : ce reliquat se termine pendant le fondu suivant, comme dans la
407
+ // reference. On ne descend donc pas sous la duree mesuree.
408
+ minDuration: 2.4,
409
+ morph: 0.45,
410
+ baseFace: false,
411
+ baseBody: false,
412
+ blinkIn: false,
413
+ pose: (t) => {
414
+ const collapse = 1 - (1 - COMET_DOT) * easings.easeOutQuint(clamp(t / 0.55));
415
+ const regrow = easings.easeOutQuint(clamp((t - 1.85) / 0.6));
416
+ const fade = clamp((t - 0.15) / 0.25) * clamp((1.95 - t) / 0.3);
417
+ return base({
418
+ // Le point derive de 0.035 vers le bas puis remonte (wobble mesure).
419
+ sil: circle(collapse + (1 - collapse) * regrow, {
420
+ cy: Math.sin(clamp(t / 1.7) * Math.PI) * 0.035
421
+ }),
422
+ eyeAlpha: clamp((t - 2) / 0.35),
423
+ arcs: COMET_RIBBONS.map((s, i) => ({ id: `cm${i}`, seed: s, t, opacity: fade }))
424
+ });
425
+ }
426
+ }
427
+ ];
428
+ export const STATE_BY_ID = new Map(STATES.map((s) => [s.id, s]));
429
+ /** Ordre de lecture de la sequence complete, calque sur la video de reference. */
430
+ /**
431
+ * Date, en temps local, ou chaque etat est le plus lisible : c'est la pose que
432
+ * montrent les vignettes et la planche. Rendu deterministe, donc comparable
433
+ * d'une execution a l'autre. Le type force a couvrir tout nouvel etat.
434
+ */
435
+ export const POSES = {
436
+ idle: 1,
437
+ thinking: 1.1,
438
+ wink: 0.8,
439
+ wide: 0.8,
440
+ alert: 0.75,
441
+ notify: 0.9,
442
+ exclaim: 0.8,
443
+ sleep: 0.45,
444
+ egg: 0.8,
445
+ hexagon: 0.8,
446
+ play: 0.9,
447
+ orbit: 1.2,
448
+ swirl: 0.5,
449
+ burst: 0.45,
450
+ comet: 1.15
451
+ };
452
+ export const SEQUENCE = [
453
+ 'idle',
454
+ 'thinking',
455
+ 'wink',
456
+ 'wide',
457
+ 'alert',
458
+ 'notify',
459
+ 'exclaim',
460
+ 'sleep',
461
+ 'egg',
462
+ 'hexagon',
463
+ 'play',
464
+ 'orbit',
465
+ 'burst',
466
+ 'comet'
467
+ ];
468
+ //# sourceMappingURL=states.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemoncat7/dsh-theme-xiaohei",
3
- "version": "0.3.0-alpha.23",
3
+ "version": "0.3.2",
4
4
  "description": "A Luo Xiaohei-inspired animated dark theme for DeepSeek Harness",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -28,9 +28,9 @@
28
28
  "files": [
29
29
  "lib/**/*.js",
30
30
  "lib/**/*.d.ts",
31
- "lib/**/*.map",
32
31
  "cordis.patch.yml",
33
32
  "README.md",
33
+ "THIRD_PARTY_NOTICES.md",
34
34
  "LICENSE"
35
35
  ],
36
36
  "dsh": {
@@ -41,6 +41,9 @@
41
41
  "platform": "web",
42
42
  "immediately": true,
43
43
  "inject": [
44
+ "@deepseek-ai/dsh-client-ui-conversation",
45
+ "@deepseek-ai/dsh-client-ui-renderer",
46
+ "@deepseek-ai/dsh-client-ui-sidebar",
44
47
  "@deepseek-ai/dsh-client-ui-theme"
45
48
  ]
46
49
  }
@@ -61,14 +64,28 @@
61
64
  },
62
65
  "devDependencies": {
63
66
  "@deepseek-ai/cordis": "^4.0.1",
64
- "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.7",
65
- "@deepseek-ai/dsh-client-ui-theme": "^0.1.0-rc.7",
66
- "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.7",
67
+ "@deepseek-ai/dsh-api-session-controller": "0.1.2-rc.1",
68
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1",
69
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.2-rc.1",
70
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.1.2-rc.1",
71
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1",
72
+ "@deepseek-ai/dsh-client-ui-theme": "0.1.2-rc.1",
73
+ "@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1",
67
74
  "@types/node": "^24.0.0",
75
+ "@types/react": "^18.3.28",
68
76
  "esbuild": "^0.25.0",
77
+ "react": "^18.3.1",
69
78
  "typescript": "^5.9.3"
70
79
  },
71
80
  "publishConfig": {
72
81
  "access": "public"
73
- }
82
+ },
83
+ "repository": {
84
+ "type": "git",
85
+ "url": "git+https://github.com/lemoncat7/dsh-theme-xiaohei.git"
86
+ },
87
+ "bugs": {
88
+ "url": "https://github.com/lemoncat7/dsh-theme-xiaohei/issues"
89
+ },
90
+ "homepage": "https://github.com/lemoncat7/dsh-theme-xiaohei#readme"
74
91
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAM5E,eAAO,MAAM,4BAA4B,4BAA4B,CAAA;AAErE,UAAU,wBAAwB;IAChC,KAAK,EAAE;QACL,QAAQ,IAAI,aAAa,CAAA;KAC1B,CAAA;IACD,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CACnF;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,wBAAwB,EAC7B,GAAG,GAAE,QAAQ,GAAG,SAAkE,GACjF,MAAM,IAAI,CAoBZ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AASrE,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CACnC,GAA6B,EAC7B,MAA4B,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;IAElF,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IAEtC,MAAM,IAAI,GAAG,CAAC,QAAuB,EAAQ,EAAE;QAC7C,MAAM,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAA;QAC1F,IAAI,cAAc,KAAK,OAAO,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC5D,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAA;YAC9E,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,cAAc;gBAAE,OAAM;QAC5D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC7F,CAAC;QACD,4BAA4B,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC,CAAA;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAE1B,OAAO,GAAG,EAAE;QACV,GAAG,EAAE,CAAA;QACL,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAA;IACnE,CAAC,CAAA;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blink.d.ts","sourceRoot":"","sources":["../src/blink.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,kCAAkC,CAAA;AAkBrE,2FAA2F;AAC3F,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,QAAQ,GAAG,SAAkE,GACjF,MAAM,IAAI,CAoGZ"}
package/lib/blink.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"blink.js","sourceRoot":"","sources":["../src/blink.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"boot-appearance.d.ts","sourceRoot":"","sources":["../src/boot-appearance.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,iCAAiC,CAAA;AAC/E,eAAO,MAAM,gCAAgC,4CAA4C,CAAA;AAEzF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,2gCAkCvC,CAAA;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAGhE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"boot-appearance.js","sourceRoot":"","sources":["../src/boot-appearance.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAA;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,yCAAyC,CAAA;AAEzF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1C,CAAA;AAED,gFAAgF;AAChF,MAAM,UAAU,4BAA4B,CAAC,GAAa;IACxD,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAA;IACtE,GAAG,CAAC,cAAc,CAAC,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAA;AAChE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"boot-loader.d.ts","sourceRoot":"","sources":["../src/boot-loader.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,6BAA6B,yCAAyC,CAAA;AACnF,eAAO,MAAM,0BAA0B,6BAA6B,CAAA;AAUpE,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB5D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"boot-loader.js","sourceRoot":"","sources":["../src/boot-loader.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../src/chrome/accessibility.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,eAAO,MAAM,gCAAgC,i2EA0E5C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../src/chrome/accessibility.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E/C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blink.d.ts","sourceRoot":"","sources":["../../src/chrome/blink.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,eAAO,MAAM,iBAAiB,4QAY7B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blink.js","sourceRoot":"","sources":["../../src/chrome/blink.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;CAYhC,CAAA"}