weasel-icons 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +6 -1
  2. package/THIRD_PARTY_NOTICES.md +2 -0
  3. package/dist/icons/battery/battery-icon.d.ts +5 -0
  4. package/dist/icons/battery/battery-icon.js +9 -0
  5. package/dist/icons/battery/battery-rig.d.ts +150 -0
  6. package/dist/icons/battery/battery-rig.js +106 -0
  7. package/dist/icons/bug/bug-icon.d.ts +5 -0
  8. package/dist/icons/bug/bug-icon.js +9 -0
  9. package/dist/icons/bug/bug-rig.d.ts +338 -0
  10. package/dist/icons/bug/bug-rig.js +110 -0
  11. package/dist/icons/compass/compass-icon.d.ts +5 -0
  12. package/dist/icons/compass/compass-icon.js +9 -0
  13. package/dist/icons/compass/compass-rig.d.ts +91 -0
  14. package/dist/icons/compass/compass-rig.js +69 -0
  15. package/dist/icons/hourglass/hourglass-icon.d.ts +5 -0
  16. package/dist/icons/hourglass/hourglass-icon.js +9 -0
  17. package/dist/icons/hourglass/hourglass-rig.d.ts +136 -0
  18. package/dist/icons/hourglass/hourglass-rig.js +89 -0
  19. package/dist/icons/network/network-icon.d.ts +5 -0
  20. package/dist/icons/network/network-icon.js +9 -0
  21. package/dist/icons/network/network-rig.d.ts +200 -0
  22. package/dist/icons/network/network-rig.js +133 -0
  23. package/dist/icons/signal/signal-icon.d.ts +5 -0
  24. package/dist/icons/signal/signal-icon.js +9 -0
  25. package/dist/icons/signal/signal-rig.d.ts +185 -0
  26. package/dist/icons/signal/signal-rig.js +66 -0
  27. package/dist/icons/toggle/toggle-icon.d.ts +5 -0
  28. package/dist/icons/toggle/toggle-icon.js +9 -0
  29. package/dist/icons/toggle/toggle-rig.d.ts +86 -0
  30. package/dist/icons/toggle/toggle-rig.js +55 -0
  31. package/dist/icons/trash/trash-icon.d.ts +5 -0
  32. package/dist/icons/trash/trash-icon.js +9 -0
  33. package/dist/icons/trash/trash-rig.d.ts +98 -0
  34. package/dist/icons/trash/trash-rig.js +67 -0
  35. package/dist/icons/zap/zap-icon.d.ts +6 -0
  36. package/dist/icons/zap/zap-icon.js +36 -0
  37. package/dist/icons/zap/zap-rig.d.ts +15 -0
  38. package/dist/icons/zap/zap-rig.js +60 -0
  39. package/dist/index.d.ts +9 -0
  40. package/dist/index.js +9 -0
  41. package/dist/shared/icon-colors.d.ts +9 -0
  42. package/package.json +46 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Icons that overreact beautifully. Stateful React SVG icons with smooth transitions and optional continuous behavior.
4
4
 
5
- Version `0.4.0` contains 156 icons, adding 56 icons for editing, layouts, files, devices, media, collaboration and data. It includes the latest hand, arrow, receipt, tag and flag motion revisions.
5
+ Version `0.5.0` contains 165 icons. It adds nine status icons (network, signal, trash, battery, toggle, hourglass, zap, compass, bug). Version `0.4.0` added 56 icons for editing, layouts, files, devices, media, collaboration and data. It includes the latest hand, arrow, receipt, tag and flag motion revisions.
6
6
 
7
7
  ## Install
8
8
 
@@ -51,6 +51,11 @@ The existing SVG smoothly transitions when `state` changes, including during an
51
51
 
52
52
  Exports include: `DogIcon`, `MonkeyIcon`, `HeartIcon`, `ShipIcon`, `RocketIcon`, `SearchIcon`, `BellIcon`, `DownloadIcon`, `ShieldIcon`, `CursorIcon`, `ClapperboardIcon`, `PlugIcon`, `BulbIcon`, `AlertIcon`, `BadgeCheckIcon`, `ReplaceIcon`, `DeleteIcon`, `SwapIcon`, `SparklesIcon`, `SparkleIcon`, `StarIcon`, `WaveIcon`, `RefreshIcon`, `CopyIcon`, `EyeIcon`, `LinkIcon`, `CheckIcon`, and `CloseIcon`. Each icon exports its own state type and list, for example `DogState` and `dogStates`, or `BadgeCheckState` and `badgeCheckStates`. TypeScript autocompletion shows the valid states for each icon.
53
53
 
54
+ ### Added in 0.5.0
55
+
56
+ - **Status:** `NetworkIcon` (offline/connecting/online), `SignalIcon` (weak/searching/strong), `BatteryIcon` (low/charging/full), `ToggleIcon` (off/switching/on), `HourglassIcon` (idle/waiting/done), `CompassIcon` (idle/locating/located).
57
+ - **Actions:** `TrashIcon` (idle/emptying/emptied), `ZapIcon` (idle/boosting/boosted, with an accent energy fill), `BugIcon` (idle/debugging/fixed).
58
+
54
59
  ### Added in 0.4.0
55
60
 
56
61
  - **Editing:** `UndoIcon`, `RedoIcon`, `CropIcon`, `ScissorsIcon`, `PaperclipIcon`, `EraserIcon`, `BrushIcon`, `HighlighterIcon`.
@@ -14,6 +14,8 @@ Refresh, Copy, Eye, Link, Check and Close additionally adapt `refresh-cw`, `copy
14
14
 
15
15
  The 0.4.0 expansion additionally adapts these assets at the same pinned revision: `undo-2`, `redo-2`, `crop`, `scissors`, `paperclip`, `eraser`, `brush`, `highlighter`, `panel-left`, `panel-right`, `columns-2`, `rows-2`, `table-2`, `kanban`, `app-window`, `picture-in-picture-2`, `folder-open`, `folder-plus`, `file-plus`, `file-check`, `archive`, `inbox`, `hard-drive`, `printer`, `bluetooth`, `cast`, `monitor`, `smartphone`, `power`, `fingerprint-pattern`, `scan-qr-code`, `scan-face`, `skip-forward`, `skip-back`, `rewind`, `fast-forward`, `repeat`, `shuffle`, `headphones`, `radio`, `thumbs-up`, `thumbs-down`, `user-plus`, `user-minus`, `at-sign`, `reply`, `forward`, `flag`, `chart-column`, `chart-line`, `chart-pie`, `trending-up`, `receipt`, `tag`, `gift`, `ticket`. Parts, compatible morphs, and state choreography are independently authored. The upstream ISC and Feather notices below are retained for all adapted assets.
16
16
 
17
+ The 0.5.0 release additionally adapts `network`, `signal`, `trash`, `battery-full`, `battery-charging`, `toggle-left`, `toggle-right`, `hourglass`, `zap`, `compass` and `bug` at the same pinned revision. Battery merges the full and charging assets into one rig; Toggle merges both toggle positions; Network splits the connector into a stem and two arms that start at the root. Sand, the zap energy fill and speed streaks, dial ticks, the bug's resolution check and all choreography are original to Weasel.
18
+
17
19
  The retained Lucide geometry carries the following [Lucide ISC notice](https://lucide.dev/license):
18
20
  Star, Sparkles and Sparkle additionally adapt the current `star` and central `sparkles` contours. Sparkle is the single-contour composition; Sparkles' satellite diamonds and the single-line Wave geometry are original to Weasel. Wave follows the user's visual reference, not Lucide's stacked wave glyph.
19
21
 
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type BatteryState } from "./battery-rig.js";
3
+ export { batteryStates, type BatteryState } from "./battery-rig.js";
4
+ export type BatteryIconProps = StatefulIconProps<BatteryState>;
5
+ export declare const BatteryIcon: import("react").NamedExoticComponent<BatteryIconProps>;
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { memo } from 'react';
4
+ import { ArticulatedIcon } from "../../shared/articulated-icon.js";
5
+ import { batteryArt, batteryStates } from "./battery-rig.js";
6
+ export { batteryStates } from "./battery-rig.js";
7
+ export const BatteryIcon = memo(function BatteryIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: batteryArt, states: batteryStates, ...props });
9
+ });
@@ -0,0 +1,150 @@
1
+ export declare const batteryStates: readonly ["low", "charging", "full"];
2
+ export type BatteryState = (typeof batteryStates)[number];
3
+ export declare const batteryArt: {
4
+ readonly name: "battery";
5
+ readonly parts: readonly [{
6
+ readonly name: "shell";
7
+ readonly paths: readonly ["M4 6H16Q18 6 18 8V16Q18 18 16 18H4Q2 18 2 16V8Q2 6 4 6Z", "M22 14v-4"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ readonly pivot: readonly [12, 12];
10
+ readonly gestures: readonly [null, null, {
11
+ readonly duration: 0.7;
12
+ readonly repeatAfter: 2;
13
+ readonly loop: false;
14
+ readonly frames: readonly [{
15
+ readonly at: 0;
16
+ }, {
17
+ readonly at: 0.5;
18
+ readonly scaleX: 0.05;
19
+ readonly scaleY: 0.05;
20
+ }, {
21
+ readonly at: 1;
22
+ }];
23
+ }];
24
+ }, {
25
+ readonly name: "cell-one";
26
+ readonly detail: true;
27
+ readonly paths: readonly ["M6 10v4"];
28
+ readonly poses: readonly [{}, {
29
+ readonly opacity: 0;
30
+ readonly scaleY: 0.3;
31
+ }, {}];
32
+ readonly pivot: readonly [6, 12];
33
+ readonly gestures: readonly [{
34
+ readonly duration: 1.2;
35
+ readonly repeatAfter: 2.4;
36
+ readonly loop: true;
37
+ readonly frames: readonly [{
38
+ readonly at: 0;
39
+ }, {
40
+ readonly at: 0.3;
41
+ readonly opacity: -0.9;
42
+ }, {
43
+ readonly at: 0.5;
44
+ readonly opacity: -0.9;
45
+ }, {
46
+ readonly at: 1;
47
+ }];
48
+ }, null, {
49
+ readonly duration: 0.7;
50
+ readonly repeatAfter: 2;
51
+ readonly loop: false;
52
+ readonly frames: readonly [{
53
+ readonly at: 0;
54
+ readonly scaleY: -1;
55
+ }, {
56
+ readonly at: 0.35;
57
+ }, {
58
+ readonly at: 1;
59
+ }];
60
+ }];
61
+ }, {
62
+ readonly name: "cell-two";
63
+ readonly detail: true;
64
+ readonly paths: readonly ["M10 10v4"];
65
+ readonly poses: readonly [{
66
+ readonly opacity: 0;
67
+ readonly scaleY: 0.3;
68
+ }, {
69
+ readonly opacity: 0;
70
+ readonly scaleY: 0.3;
71
+ }, {}];
72
+ readonly pivot: readonly [10, 12];
73
+ readonly gestures: readonly [null, null, {
74
+ readonly duration: 0.7;
75
+ readonly repeatAfter: 2;
76
+ readonly loop: false;
77
+ readonly frames: readonly [{
78
+ readonly at: 0;
79
+ readonly scaleY: -1;
80
+ }, {
81
+ readonly at: 0.3;
82
+ readonly scaleY: -1;
83
+ }, {
84
+ readonly at: 0.6;
85
+ }, {
86
+ readonly at: 1;
87
+ }];
88
+ }];
89
+ }, {
90
+ readonly name: "cell-three";
91
+ readonly detail: true;
92
+ readonly paths: readonly ["M14 10v4"];
93
+ readonly poses: readonly [{
94
+ readonly opacity: 0;
95
+ readonly scaleY: 0.3;
96
+ }, {
97
+ readonly opacity: 0;
98
+ readonly scaleY: 0.3;
99
+ }, {}];
100
+ readonly pivot: readonly [14, 12];
101
+ readonly gestures: readonly [null, null, {
102
+ readonly duration: 0.7;
103
+ readonly repeatAfter: 2;
104
+ readonly loop: false;
105
+ readonly frames: readonly [{
106
+ readonly at: 0;
107
+ readonly scaleY: -1;
108
+ }, {
109
+ readonly at: 0.55;
110
+ readonly scaleY: -1;
111
+ }, {
112
+ readonly at: 0.85;
113
+ }, {
114
+ readonly at: 1;
115
+ }];
116
+ }];
117
+ }, {
118
+ readonly name: "bolt";
119
+ readonly accent: true;
120
+ readonly paths: readonly ["m11 7-3 5h4l-3 5"];
121
+ readonly poses: readonly [{
122
+ readonly opacity: 0;
123
+ readonly scaleX: 0.6;
124
+ readonly scaleY: 0.6;
125
+ }, {}, {
126
+ readonly opacity: 0;
127
+ readonly scaleX: 0.6;
128
+ readonly scaleY: 0.6;
129
+ }];
130
+ readonly pivot: readonly [10, 12];
131
+ readonly traceLength: 15.7;
132
+ readonly gestures: readonly [null, {
133
+ readonly duration: 1.3;
134
+ readonly repeatAfter: 2.1;
135
+ readonly loop: true;
136
+ readonly frames: readonly [{
137
+ readonly at: 0;
138
+ readonly draw: -1;
139
+ }, {
140
+ readonly at: 0.45;
141
+ }, {
142
+ readonly at: 0.6;
143
+ readonly scaleX: 0.12;
144
+ readonly scaleY: 0.12;
145
+ }, {
146
+ readonly at: 1;
147
+ }];
148
+ }];
149
+ }];
150
+ };
@@ -0,0 +1,106 @@
1
+ export const batteryStates = ['low', 'charging', 'full'];
2
+ // Lucide-derived outline (battery-full, battery-charging); attribution and pinned source: THIRD_PARTY_NOTICES.md.
3
+ // Low keeps one blinking cell; charging replaces the cells with a bolt that traces energy into the shell; full stacks three cells in sequence.
4
+ export const batteryArt = {
5
+ name: 'battery',
6
+ parts: [
7
+ {
8
+ name: 'shell',
9
+ paths: ['M4 6H16Q18 6 18 8V16Q18 18 16 18H4Q2 18 2 16V8Q2 6 4 6Z', 'M22 14v-4'],
10
+ poses: [{}, {}, {}],
11
+ pivot: [12, 12],
12
+ gestures: [
13
+ null,
14
+ null,
15
+ {
16
+ duration: 0.7,
17
+ repeatAfter: 2,
18
+ loop: false,
19
+ frames: [{ at: 0 }, { at: 0.5, scaleX: 0.05, scaleY: 0.05 }, { at: 1 }],
20
+ },
21
+ ],
22
+ },
23
+ {
24
+ name: 'cell-one',
25
+ detail: true,
26
+ paths: ['M6 10v4'],
27
+ poses: [{}, { opacity: 0, scaleY: 0.3 }, {}],
28
+ pivot: [6, 12],
29
+ gestures: [
30
+ {
31
+ duration: 1.2,
32
+ repeatAfter: 2.4,
33
+ loop: true,
34
+ frames: [{ at: 0 }, { at: 0.3, opacity: -0.9 }, { at: 0.5, opacity: -0.9 }, { at: 1 }],
35
+ },
36
+ null,
37
+ {
38
+ duration: 0.7,
39
+ repeatAfter: 2,
40
+ loop: false,
41
+ frames: [{ at: 0, scaleY: -1 }, { at: 0.35 }, { at: 1 }],
42
+ },
43
+ ],
44
+ },
45
+ {
46
+ name: 'cell-two',
47
+ detail: true,
48
+ paths: ['M10 10v4'],
49
+ poses: [{ opacity: 0, scaleY: 0.3 }, { opacity: 0, scaleY: 0.3 }, {}],
50
+ pivot: [10, 12],
51
+ gestures: [
52
+ null,
53
+ null,
54
+ {
55
+ duration: 0.7,
56
+ repeatAfter: 2,
57
+ loop: false,
58
+ frames: [{ at: 0, scaleY: -1 }, { at: 0.3, scaleY: -1 }, { at: 0.6 }, { at: 1 }],
59
+ },
60
+ ],
61
+ },
62
+ {
63
+ name: 'cell-three',
64
+ detail: true,
65
+ paths: ['M14 10v4'],
66
+ poses: [{ opacity: 0, scaleY: 0.3 }, { opacity: 0, scaleY: 0.3 }, {}],
67
+ pivot: [14, 12],
68
+ gestures: [
69
+ null,
70
+ null,
71
+ {
72
+ duration: 0.7,
73
+ repeatAfter: 2,
74
+ loop: false,
75
+ frames: [{ at: 0, scaleY: -1 }, { at: 0.55, scaleY: -1 }, { at: 0.85 }, { at: 1 }],
76
+ },
77
+ ],
78
+ },
79
+ {
80
+ name: 'bolt',
81
+ accent: true,
82
+ paths: ['m11 7-3 5h4l-3 5'],
83
+ poses: [
84
+ { opacity: 0, scaleX: 0.6, scaleY: 0.6 },
85
+ {},
86
+ { opacity: 0, scaleX: 0.6, scaleY: 0.6 },
87
+ ],
88
+ pivot: [10, 12],
89
+ traceLength: 15.7,
90
+ gestures: [
91
+ null,
92
+ {
93
+ duration: 1.3,
94
+ repeatAfter: 2.1,
95
+ loop: true,
96
+ frames: [
97
+ { at: 0, draw: -1 },
98
+ { at: 0.45 },
99
+ { at: 0.6, scaleX: 0.12, scaleY: 0.12 },
100
+ { at: 1 },
101
+ ],
102
+ },
103
+ ],
104
+ },
105
+ ],
106
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type BugState } from "./bug-rig.js";
3
+ export { bugStates, type BugState } from "./bug-rig.js";
4
+ export type BugIconProps = StatefulIconProps<BugState>;
5
+ export declare const BugIcon: import("react").NamedExoticComponent<BugIconProps>;
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { memo } from 'react';
4
+ import { ArticulatedIcon } from "../../shared/articulated-icon.js";
5
+ import { bugArt, bugStates } from "./bug-rig.js";
6
+ export { bugStates } from "./bug-rig.js";
7
+ export const BugIcon = memo(function BugIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: bugArt, states: bugStates, ...props });
9
+ });
@@ -0,0 +1,338 @@
1
+ export declare const bugStates: readonly ["idle", "debugging", "fixed"];
2
+ export type BugState = (typeof bugStates)[number];
3
+ export declare const bugArt: {
4
+ readonly name: "bug";
5
+ readonly parts: readonly [{
6
+ readonly name: "legs-left";
7
+ readonly paths: readonly ["M3 21a4 4 0 0 1 3.81-4", "M3 5a4 4 0 0 0 3.55 3.97", "M6 13H2"];
8
+ readonly poses: readonly [{}, {}, {
9
+ readonly x: -1.6;
10
+ readonly y: -2.6;
11
+ readonly scaleX: 0.72;
12
+ readonly scaleY: 0.72;
13
+ }];
14
+ readonly pivot: readonly [12, 12];
15
+ readonly gestures: readonly [null, {
16
+ readonly frames: readonly [{
17
+ readonly at: 0;
18
+ }, {
19
+ y: number;
20
+ angle: number;
21
+ x: number;
22
+ readonly at: 0.15;
23
+ }, {
24
+ readonly y?: number;
25
+ angle: number;
26
+ x: number;
27
+ readonly at: 0.3;
28
+ }, {
29
+ y: number;
30
+ angle: number;
31
+ x: number;
32
+ readonly at: 0.48;
33
+ }, {
34
+ readonly y?: number;
35
+ angle: number;
36
+ x: number;
37
+ readonly at: 0.64;
38
+ }, {
39
+ y: number;
40
+ angle: number;
41
+ x: number;
42
+ readonly at: 0.82;
43
+ }, {
44
+ readonly at: 1;
45
+ }];
46
+ readonly duration: 1.3;
47
+ readonly repeatAfter: 2.1;
48
+ readonly loop: true;
49
+ }, {
50
+ readonly duration: 0.8;
51
+ readonly repeatAfter: 2;
52
+ readonly loop: false;
53
+ readonly frames: readonly [{
54
+ readonly at: 0;
55
+ }, {
56
+ readonly at: 0.3;
57
+ readonly y: -0.6;
58
+ }, {
59
+ readonly at: 0.55;
60
+ readonly y: 0.25;
61
+ }, {
62
+ readonly at: 1;
63
+ }];
64
+ }];
65
+ }, {
66
+ readonly name: "legs-right";
67
+ readonly paths: readonly ["M21 21a4 4 0 0 0-3.81-4", "M21 5a4 4 0 0 1-3.55 3.97", "M22 13h-4"];
68
+ readonly poses: readonly [{}, {}, {
69
+ readonly x: -3.6;
70
+ readonly y: -2.6;
71
+ readonly scaleX: 0.72;
72
+ readonly scaleY: 0.72;
73
+ }];
74
+ readonly pivot: readonly [12, 12];
75
+ readonly gestures: readonly [null, {
76
+ readonly frames: readonly [{
77
+ readonly at: 0;
78
+ }, {
79
+ y: number;
80
+ angle: number;
81
+ x: number;
82
+ readonly at: 0.15;
83
+ }, {
84
+ readonly y?: number;
85
+ angle: number;
86
+ x: number;
87
+ readonly at: 0.3;
88
+ }, {
89
+ y: number;
90
+ angle: number;
91
+ x: number;
92
+ readonly at: 0.48;
93
+ }, {
94
+ readonly y?: number;
95
+ angle: number;
96
+ x: number;
97
+ readonly at: 0.64;
98
+ }, {
99
+ y: number;
100
+ angle: number;
101
+ x: number;
102
+ readonly at: 0.82;
103
+ }, {
104
+ readonly at: 1;
105
+ }];
106
+ readonly duration: 1.3;
107
+ readonly repeatAfter: 2.1;
108
+ readonly loop: true;
109
+ }, {
110
+ readonly duration: 0.8;
111
+ readonly repeatAfter: 2;
112
+ readonly loop: false;
113
+ readonly frames: readonly [{
114
+ readonly at: 0;
115
+ }, {
116
+ readonly at: 0.3;
117
+ readonly y: -0.6;
118
+ }, {
119
+ readonly at: 0.55;
120
+ readonly y: 0.25;
121
+ }, {
122
+ readonly at: 1;
123
+ }];
124
+ }];
125
+ }, {
126
+ readonly name: "body";
127
+ readonly paths: readonly ["M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z", "M12 20v-9"];
128
+ readonly poses: readonly [{}, {}, {
129
+ readonly x: -2.6;
130
+ readonly y: -2.6;
131
+ readonly scaleX: 0.72;
132
+ readonly scaleY: 0.72;
133
+ }];
134
+ readonly pivot: readonly [12, 12];
135
+ readonly gestures: readonly [null, {
136
+ readonly frames: readonly [{
137
+ readonly at: 0;
138
+ }, {
139
+ y: number;
140
+ angle: number;
141
+ x: number;
142
+ readonly at: 0.15;
143
+ }, {
144
+ readonly y?: number;
145
+ angle: number;
146
+ x: number;
147
+ readonly at: 0.3;
148
+ }, {
149
+ y: number;
150
+ angle: number;
151
+ x: number;
152
+ readonly at: 0.48;
153
+ }, {
154
+ readonly y?: number;
155
+ angle: number;
156
+ x: number;
157
+ readonly at: 0.64;
158
+ }, {
159
+ y: number;
160
+ angle: number;
161
+ x: number;
162
+ readonly at: 0.82;
163
+ }, {
164
+ readonly at: 1;
165
+ }];
166
+ readonly duration: 1.3;
167
+ readonly repeatAfter: 2.1;
168
+ readonly loop: true;
169
+ }, {
170
+ readonly duration: 0.8;
171
+ readonly repeatAfter: 2;
172
+ readonly loop: false;
173
+ readonly frames: readonly [{
174
+ readonly at: 0;
175
+ }, {
176
+ readonly at: 0.3;
177
+ readonly y: -0.6;
178
+ }, {
179
+ readonly at: 0.55;
180
+ readonly y: 0.25;
181
+ }, {
182
+ readonly at: 1;
183
+ }];
184
+ }];
185
+ }, {
186
+ readonly name: "head";
187
+ readonly paths: readonly ["M9 7.13V6a3 3 0 1 1 6 0v1.13"];
188
+ readonly poses: readonly [{}, {}, {
189
+ readonly x: -2.6;
190
+ readonly y: -2.6;
191
+ readonly scaleX: 0.72;
192
+ readonly scaleY: 0.72;
193
+ }];
194
+ readonly pivot: readonly [12, 12];
195
+ readonly gestures: readonly [null, {
196
+ readonly frames: readonly [{
197
+ readonly at: 0;
198
+ }, {
199
+ y: number;
200
+ angle: number;
201
+ x: number;
202
+ readonly at: 0.15;
203
+ }, {
204
+ readonly y?: number;
205
+ angle: number;
206
+ x: number;
207
+ readonly at: 0.3;
208
+ }, {
209
+ y: number;
210
+ angle: number;
211
+ x: number;
212
+ readonly at: 0.48;
213
+ }, {
214
+ readonly y?: number;
215
+ angle: number;
216
+ x: number;
217
+ readonly at: 0.64;
218
+ }, {
219
+ y: number;
220
+ angle: number;
221
+ x: number;
222
+ readonly at: 0.82;
223
+ }, {
224
+ readonly at: 1;
225
+ }];
226
+ readonly duration: 1.3;
227
+ readonly repeatAfter: 2.1;
228
+ readonly loop: true;
229
+ }, {
230
+ readonly duration: 0.8;
231
+ readonly repeatAfter: 2;
232
+ readonly loop: false;
233
+ readonly frames: readonly [{
234
+ readonly at: 0;
235
+ }, {
236
+ readonly at: 0.3;
237
+ readonly y: -0.6;
238
+ }, {
239
+ readonly at: 0.55;
240
+ readonly y: 0.25;
241
+ }, {
242
+ readonly at: 1;
243
+ }];
244
+ }];
245
+ }, {
246
+ readonly name: "antennae";
247
+ readonly detail: true;
248
+ readonly paths: readonly ["M14.12 3.88 16 2", "m8 2 1.88 1.88"];
249
+ readonly poses: readonly [{}, {}, {
250
+ readonly x: -2.6;
251
+ readonly y: -2.6;
252
+ readonly scaleX: 0.72;
253
+ readonly scaleY: 0.72;
254
+ }];
255
+ readonly pivot: readonly [12, 12];
256
+ readonly gestures: readonly [null, {
257
+ readonly frames: readonly [{
258
+ readonly at: 0;
259
+ }, {
260
+ y: number;
261
+ angle: number;
262
+ x: number;
263
+ readonly at: 0.15;
264
+ }, {
265
+ readonly y?: number;
266
+ angle: number;
267
+ x: number;
268
+ readonly at: 0.3;
269
+ }, {
270
+ y: number;
271
+ angle: number;
272
+ x: number;
273
+ readonly at: 0.48;
274
+ }, {
275
+ readonly y?: number;
276
+ angle: number;
277
+ x: number;
278
+ readonly at: 0.64;
279
+ }, {
280
+ y: number;
281
+ angle: number;
282
+ x: number;
283
+ readonly at: 0.82;
284
+ }, {
285
+ readonly at: 1;
286
+ }];
287
+ readonly duration: 1.3;
288
+ readonly repeatAfter: 2.1;
289
+ readonly loop: true;
290
+ }, {
291
+ readonly duration: 0.8;
292
+ readonly repeatAfter: 2;
293
+ readonly loop: false;
294
+ readonly frames: readonly [{
295
+ readonly at: 0;
296
+ }, {
297
+ readonly at: 0.3;
298
+ readonly y: -0.6;
299
+ }, {
300
+ readonly at: 0.55;
301
+ readonly y: 0.25;
302
+ }, {
303
+ readonly at: 1;
304
+ }];
305
+ }];
306
+ }, {
307
+ readonly name: "check";
308
+ readonly accent: true;
309
+ readonly paths: readonly ["M13.4 17.6l2.6 2.6 5-5.2"];
310
+ readonly poses: readonly [{
311
+ readonly opacity: 0;
312
+ readonly draw: 0;
313
+ }, {
314
+ readonly opacity: 0;
315
+ readonly draw: 0;
316
+ }, {}];
317
+ readonly pivot: readonly [17.2, 18];
318
+ readonly traceLength: 11;
319
+ readonly gestures: readonly [null, null, {
320
+ readonly duration: 0.8;
321
+ readonly repeatAfter: 2;
322
+ readonly loop: false;
323
+ readonly frames: readonly [{
324
+ readonly at: 0;
325
+ readonly draw: -1;
326
+ }, {
327
+ readonly at: 0.3;
328
+ readonly draw: -1;
329
+ }, {
330
+ readonly at: 0.7;
331
+ readonly scaleX: 0.12;
332
+ readonly scaleY: 0.12;
333
+ }, {
334
+ readonly at: 1;
335
+ }];
336
+ }];
337
+ }];
338
+ };