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
@@ -0,0 +1,110 @@
1
+ export const bugStates = ['idle', 'debugging', 'fixed'];
2
+ // Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
3
+ // Debugging is a chase: the whole bug darts left and right inside its frame, body leaning into each dart while the legs step and the antennae whip; fixed shrinks the bug into the upper-left corner, legs tucked, and traces an accent check into the space it left.
4
+ const dartFrames = {
5
+ duration: 1.3,
6
+ repeatAfter: 2.1,
7
+ loop: true,
8
+ };
9
+ /** Whole-body dart shared by every part; legs and antennae add their own step on top. */
10
+ const dart = (extra) => ({
11
+ ...dartFrames,
12
+ frames: [
13
+ { at: 0 },
14
+ { at: 0.15, x: -1, angle: -6, y: -0.3, ...extra[0.15] },
15
+ { at: 0.3, x: -0.7, angle: -3, ...extra[0.3] },
16
+ { at: 0.48, x: 1, angle: 6, y: -0.3, ...extra[0.48] },
17
+ { at: 0.64, x: 0.7, angle: 3, ...extra[0.64] },
18
+ { at: 0.82, x: -0.3, angle: -2, y: -0.4, ...extra[0.82] },
19
+ { at: 1 },
20
+ ],
21
+ });
22
+ const settle = {
23
+ duration: 0.8,
24
+ repeatAfter: 2,
25
+ loop: false,
26
+ frames: [{ at: 0 }, { at: 0.3, y: -0.6 }, { at: 0.55, y: 0.25 }, { at: 1 }],
27
+ };
28
+ /** Fixed pose: the bug tucks into the upper-left corner. */
29
+ const tucked = { x: -2.6, y: -2.6, scaleX: 0.72, scaleY: 0.72 };
30
+ export const bugArt = {
31
+ name: 'bug',
32
+ parts: [
33
+ {
34
+ name: 'legs-left',
35
+ paths: ['M3 21a4 4 0 0 1 3.81-4', 'M3 5a4 4 0 0 0 3.55 3.97', 'M6 13H2'],
36
+ poses: [{}, {}, { ...tucked, x: -1.6 }],
37
+ pivot: [12, 12],
38
+ gestures: [
39
+ null,
40
+ dart({ 0.15: { y: -1, angle: -9 }, 0.48: { y: 0.4 }, 0.82: { y: -0.8, angle: -4 } }),
41
+ settle,
42
+ ],
43
+ },
44
+ {
45
+ name: 'legs-right',
46
+ paths: ['M21 21a4 4 0 0 0-3.81-4', 'M21 5a4 4 0 0 1-3.55 3.97', 'M22 13h-4'],
47
+ poses: [{}, {}, { ...tucked, x: -3.6 }],
48
+ pivot: [12, 12],
49
+ gestures: [
50
+ null,
51
+ dart({ 0.15: { y: 0.4 }, 0.48: { y: -1, angle: 9 }, 0.64: { y: 0.3 } }),
52
+ settle,
53
+ ],
54
+ },
55
+ {
56
+ name: 'body',
57
+ paths: ['M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z', 'M12 20v-9'],
58
+ poses: [{}, {}, tucked],
59
+ pivot: [12, 12],
60
+ gestures: [null, dart({}), settle],
61
+ },
62
+ {
63
+ name: 'head',
64
+ paths: ['M9 7.13V6a3 3 0 1 1 6 0v1.13'],
65
+ poses: [{}, {}, tucked],
66
+ pivot: [12, 12],
67
+ gestures: [null, dart({ 0.15: { x: -1.4, angle: -8 }, 0.48: { x: 1.4, angle: 8 } }), settle],
68
+ },
69
+ {
70
+ name: 'antennae',
71
+ detail: true,
72
+ paths: ['M14.12 3.88 16 2', 'm8 2 1.88 1.88'],
73
+ poses: [{}, {}, tucked],
74
+ pivot: [12, 12],
75
+ gestures: [
76
+ null,
77
+ dart({
78
+ 0.15: { x: -1.6, angle: -12, y: -0.5 },
79
+ 0.3: { angle: 2 },
80
+ 0.48: { x: 1.6, angle: 12, y: -0.5 },
81
+ 0.64: { angle: -2 },
82
+ }),
83
+ settle,
84
+ ],
85
+ },
86
+ {
87
+ name: 'check',
88
+ accent: true,
89
+ paths: ['M13.4 17.6l2.6 2.6 5-5.2'],
90
+ poses: [{ opacity: 0, draw: 0 }, { opacity: 0, draw: 0 }, {}],
91
+ pivot: [17.2, 18],
92
+ traceLength: 11,
93
+ gestures: [
94
+ null,
95
+ null,
96
+ {
97
+ duration: 0.8,
98
+ repeatAfter: 2,
99
+ loop: false,
100
+ frames: [
101
+ { at: 0, draw: -1 },
102
+ { at: 0.3, draw: -1 },
103
+ { at: 0.7, scaleX: 0.12, scaleY: 0.12 },
104
+ { at: 1 },
105
+ ],
106
+ },
107
+ ],
108
+ },
109
+ ],
110
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type CompassState } from "./compass-rig.js";
3
+ export { compassStates, type CompassState } from "./compass-rig.js";
4
+ export type CompassIconProps = StatefulIconProps<CompassState>;
5
+ export declare const CompassIcon: import("react").NamedExoticComponent<CompassIconProps>;
@@ -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 { compassArt, compassStates } from "./compass-rig.js";
6
+ export { compassStates } from "./compass-rig.js";
7
+ export const CompassIcon = memo(function CompassIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: compassArt, states: compassStates, ...props });
9
+ });
@@ -0,0 +1,91 @@
1
+ export declare const compassStates: readonly ["idle", "locating", "located"];
2
+ export type CompassState = (typeof compassStates)[number];
3
+ export declare const compassArt: {
4
+ readonly name: "compass";
5
+ readonly parts: readonly [{
6
+ readonly name: "dial";
7
+ readonly paths: readonly ["M2 12a10 10 0 1 0 20 0a10 10 0 1 0-20 0"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ readonly pivot: readonly [12, 12];
10
+ readonly gestures: readonly [null, null, {
11
+ readonly duration: 0.8;
12
+ readonly repeatAfter: 2;
13
+ readonly loop: false;
14
+ readonly frames: readonly [{
15
+ readonly at: 0;
16
+ }, {
17
+ readonly at: 0.4;
18
+ readonly scaleX: 0.06;
19
+ readonly scaleY: 0.06;
20
+ }, {
21
+ readonly at: 1;
22
+ }];
23
+ }];
24
+ }, {
25
+ readonly name: "ticks";
26
+ readonly detail: true;
27
+ readonly paths: readonly ["M12 2.6v1.6", "M21.4 12h-1.6", "M12 21.4v-1.6", "M2.6 12h1.6"];
28
+ readonly poses: readonly [{
29
+ readonly opacity: 0;
30
+ }, {
31
+ readonly opacity: 0.6;
32
+ }, {}];
33
+ readonly pivot: readonly [12, 12];
34
+ readonly gestures: readonly [null, {
35
+ readonly duration: 1.4;
36
+ readonly repeatAfter: 2.2;
37
+ readonly loop: true;
38
+ readonly frames: readonly [{
39
+ readonly at: 0;
40
+ }, {
41
+ readonly at: 0.5;
42
+ readonly opacity: 0.4;
43
+ }, {
44
+ readonly at: 1;
45
+ }];
46
+ }];
47
+ }, {
48
+ readonly name: "needle";
49
+ readonly paths: readonly ["m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"];
50
+ readonly poses: readonly [{}, {
51
+ readonly angle: 20;
52
+ }, {
53
+ readonly angle: -45;
54
+ }];
55
+ readonly pivot: readonly [12, 12];
56
+ readonly gestures: readonly [null, {
57
+ readonly duration: 1.4;
58
+ readonly repeatAfter: 2.2;
59
+ readonly loop: true;
60
+ readonly frames: readonly [{
61
+ readonly at: 0;
62
+ }, {
63
+ readonly at: 0.25;
64
+ readonly angle: 95;
65
+ }, {
66
+ readonly at: 0.55;
67
+ readonly angle: -70;
68
+ }, {
69
+ readonly at: 0.8;
70
+ readonly angle: 30;
71
+ }, {
72
+ readonly at: 1;
73
+ }];
74
+ }, {
75
+ readonly duration: 0.8;
76
+ readonly repeatAfter: 2;
77
+ readonly loop: false;
78
+ readonly frames: readonly [{
79
+ readonly at: 0;
80
+ }, {
81
+ readonly at: 0.4;
82
+ readonly angle: -14;
83
+ }, {
84
+ readonly at: 0.7;
85
+ readonly angle: 5;
86
+ }, {
87
+ readonly at: 1;
88
+ }];
89
+ }];
90
+ }];
91
+ };
@@ -0,0 +1,69 @@
1
+ export const compassStates = ['idle', 'locating', 'located'];
2
+ // Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
3
+ // The needle hunts back and forth with decaying swings while locating, then swings to north and overshoots once into a held bearing; the dial only breathes on the fix.
4
+ export const compassArt = {
5
+ name: 'compass',
6
+ parts: [
7
+ {
8
+ name: 'dial',
9
+ paths: ['M2 12a10 10 0 1 0 20 0a10 10 0 1 0-20 0'],
10
+ poses: [{}, {}, {}],
11
+ pivot: [12, 12],
12
+ gestures: [
13
+ null,
14
+ null,
15
+ {
16
+ duration: 0.8,
17
+ repeatAfter: 2,
18
+ loop: false,
19
+ frames: [{ at: 0 }, { at: 0.4, scaleX: 0.06, scaleY: 0.06 }, { at: 1 }],
20
+ },
21
+ ],
22
+ },
23
+ {
24
+ name: 'ticks',
25
+ detail: true,
26
+ paths: ['M12 2.6v1.6', 'M21.4 12h-1.6', 'M12 21.4v-1.6', 'M2.6 12h1.6'],
27
+ poses: [{ opacity: 0 }, { opacity: 0.6 }, {}],
28
+ pivot: [12, 12],
29
+ gestures: [
30
+ null,
31
+ {
32
+ duration: 1.4,
33
+ repeatAfter: 2.2,
34
+ loop: true,
35
+ frames: [{ at: 0 }, { at: 0.5, opacity: 0.4 }, { at: 1 }],
36
+ },
37
+ ],
38
+ },
39
+ {
40
+ name: 'needle',
41
+ paths: [
42
+ 'm16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z',
43
+ ],
44
+ poses: [{}, { angle: 20 }, { angle: -45 }],
45
+ pivot: [12, 12],
46
+ gestures: [
47
+ null,
48
+ {
49
+ duration: 1.4,
50
+ repeatAfter: 2.2,
51
+ loop: true,
52
+ frames: [
53
+ { at: 0 },
54
+ { at: 0.25, angle: 95 },
55
+ { at: 0.55, angle: -70 },
56
+ { at: 0.8, angle: 30 },
57
+ { at: 1 },
58
+ ],
59
+ },
60
+ {
61
+ duration: 0.8,
62
+ repeatAfter: 2,
63
+ loop: false,
64
+ frames: [{ at: 0 }, { at: 0.4, angle: -14 }, { at: 0.7, angle: 5 }, { at: 1 }],
65
+ },
66
+ ],
67
+ },
68
+ ],
69
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type HourglassState } from "./hourglass-rig.js";
3
+ export { hourglassStates, type HourglassState } from "./hourglass-rig.js";
4
+ export type HourglassIconProps = StatefulIconProps<HourglassState>;
5
+ export declare const HourglassIcon: import("react").NamedExoticComponent<HourglassIconProps>;
@@ -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 { hourglassArt, hourglassStates } from "./hourglass-rig.js";
6
+ export { hourglassStates } from "./hourglass-rig.js";
7
+ export const HourglassIcon = memo(function HourglassIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: hourglassArt, states: hourglassStates, ...props });
9
+ });
@@ -0,0 +1,136 @@
1
+ export declare const hourglassStates: readonly ["idle", "waiting", "done"];
2
+ export type HourglassState = (typeof hourglassStates)[number];
3
+ export declare const hourglassArt: {
4
+ readonly name: "hourglass";
5
+ readonly parts: readonly [{
6
+ readonly name: "frame";
7
+ readonly paths: readonly ["M5 22h14", "M5 2h14", "M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22", "M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ readonly pivot: readonly [12, 12];
10
+ readonly gestures: readonly [null, {
11
+ readonly duration: 1.6;
12
+ readonly repeatAfter: 2.4;
13
+ readonly loop: true;
14
+ readonly frames: readonly [{
15
+ readonly at: 0;
16
+ }, {
17
+ readonly at: 0.3;
18
+ readonly angle: -4;
19
+ }, {
20
+ readonly at: 0.7;
21
+ readonly angle: 4;
22
+ }, {
23
+ readonly at: 1;
24
+ }];
25
+ }, {
26
+ readonly duration: 0.7;
27
+ readonly repeatAfter: 2;
28
+ readonly loop: false;
29
+ readonly frames: readonly [{
30
+ readonly at: 0;
31
+ }, {
32
+ readonly at: 0.3;
33
+ readonly scaleY: -0.06;
34
+ readonly y: 0.5;
35
+ }, {
36
+ readonly at: 1;
37
+ }];
38
+ }];
39
+ }, {
40
+ readonly name: "upper-sand";
41
+ readonly detail: true;
42
+ readonly paths: readonly ["M9.4 5.2h5.2"];
43
+ readonly poses: readonly [{}, {
44
+ readonly scaleX: 0.55;
45
+ readonly y: 1.3;
46
+ }, {
47
+ readonly opacity: 0;
48
+ readonly scaleX: 0.1;
49
+ readonly y: 2.6;
50
+ }];
51
+ readonly pivot: readonly [12, 5.2];
52
+ readonly gestures: readonly [null, {
53
+ readonly duration: 1.6;
54
+ readonly repeatAfter: 2.4;
55
+ readonly loop: true;
56
+ readonly frames: readonly [{
57
+ readonly at: 0;
58
+ readonly scaleX: 0.35;
59
+ readonly y: -0.6;
60
+ }, {
61
+ readonly at: 0.8;
62
+ readonly scaleX: -0.25;
63
+ readonly y: 0.5;
64
+ }, {
65
+ readonly at: 1;
66
+ }];
67
+ }];
68
+ }, {
69
+ readonly name: "stream";
70
+ readonly detail: true;
71
+ readonly paths: readonly ["M12 12.5v5.5"];
72
+ readonly poses: readonly [{
73
+ readonly opacity: 0;
74
+ readonly draw: 0;
75
+ }, {}, {
76
+ readonly opacity: 0;
77
+ readonly draw: 0;
78
+ }];
79
+ readonly pivot: readonly [12, 12.5];
80
+ readonly traceLength: 5.5;
81
+ readonly gestures: readonly [null, {
82
+ readonly duration: 1.6;
83
+ readonly repeatAfter: 2.4;
84
+ readonly loop: true;
85
+ readonly frames: readonly [{
86
+ readonly at: 0;
87
+ readonly draw: -1;
88
+ }, {
89
+ readonly at: 0.35;
90
+ }, {
91
+ readonly at: 0.75;
92
+ }, {
93
+ readonly at: 1;
94
+ }];
95
+ }];
96
+ }, {
97
+ readonly name: "lower-sand";
98
+ readonly detail: true;
99
+ readonly paths: readonly ["M8.6 19.6h6.8"];
100
+ readonly poses: readonly [{
101
+ readonly opacity: 0;
102
+ readonly scaleX: 0.1;
103
+ }, {
104
+ readonly scaleX: 0.55;
105
+ }, {}];
106
+ readonly pivot: readonly [12, 19.6];
107
+ readonly gestures: readonly [null, {
108
+ readonly duration: 1.6;
109
+ readonly repeatAfter: 2.4;
110
+ readonly loop: true;
111
+ readonly frames: readonly [{
112
+ readonly at: 0;
113
+ readonly scaleX: -0.3;
114
+ }, {
115
+ readonly at: 0.85;
116
+ readonly scaleX: 0.3;
117
+ }, {
118
+ readonly at: 1;
119
+ }];
120
+ }, {
121
+ readonly duration: 0.7;
122
+ readonly repeatAfter: 2;
123
+ readonly loop: false;
124
+ readonly frames: readonly [{
125
+ readonly at: 0;
126
+ readonly scaleX: -0.5;
127
+ }, {
128
+ readonly at: 0.4;
129
+ readonly scaleX: 0.08;
130
+ readonly y: -0.4;
131
+ }, {
132
+ readonly at: 1;
133
+ }];
134
+ }];
135
+ }];
136
+ };
@@ -0,0 +1,89 @@
1
+ export const hourglassStates = ['idle', 'waiting', 'done'];
2
+ // Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
3
+ // Sand moves from the upper to the lower bulb through a pouring stream while the frame rocks; done holds a full lower bulb that lands with a settle instead of flipping the glass.
4
+ export const hourglassArt = {
5
+ name: 'hourglass',
6
+ parts: [
7
+ {
8
+ name: 'frame',
9
+ paths: [
10
+ 'M5 22h14',
11
+ 'M5 2h14',
12
+ 'M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22',
13
+ 'M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2',
14
+ ],
15
+ poses: [{}, {}, {}],
16
+ pivot: [12, 12],
17
+ gestures: [
18
+ null,
19
+ {
20
+ duration: 1.6,
21
+ repeatAfter: 2.4,
22
+ loop: true,
23
+ frames: [{ at: 0 }, { at: 0.3, angle: -4 }, { at: 0.7, angle: 4 }, { at: 1 }],
24
+ },
25
+ {
26
+ duration: 0.7,
27
+ repeatAfter: 2,
28
+ loop: false,
29
+ frames: [{ at: 0 }, { at: 0.3, scaleY: -0.06, y: 0.5 }, { at: 1 }],
30
+ },
31
+ ],
32
+ },
33
+ {
34
+ name: 'upper-sand',
35
+ detail: true,
36
+ paths: ['M9.4 5.2h5.2'],
37
+ poses: [{}, { scaleX: 0.55, y: 1.3 }, { opacity: 0, scaleX: 0.1, y: 2.6 }],
38
+ pivot: [12, 5.2],
39
+ gestures: [
40
+ null,
41
+ {
42
+ duration: 1.6,
43
+ repeatAfter: 2.4,
44
+ loop: true,
45
+ frames: [{ at: 0, scaleX: 0.35, y: -0.6 }, { at: 0.8, scaleX: -0.25, y: 0.5 }, { at: 1 }],
46
+ },
47
+ ],
48
+ },
49
+ {
50
+ name: 'stream',
51
+ detail: true,
52
+ paths: ['M12 12.5v5.5'],
53
+ poses: [{ opacity: 0, draw: 0 }, {}, { opacity: 0, draw: 0 }],
54
+ pivot: [12, 12.5],
55
+ traceLength: 5.5,
56
+ gestures: [
57
+ null,
58
+ {
59
+ duration: 1.6,
60
+ repeatAfter: 2.4,
61
+ loop: true,
62
+ frames: [{ at: 0, draw: -1 }, { at: 0.35 }, { at: 0.75 }, { at: 1 }],
63
+ },
64
+ ],
65
+ },
66
+ {
67
+ name: 'lower-sand',
68
+ detail: true,
69
+ paths: ['M8.6 19.6h6.8'],
70
+ poses: [{ opacity: 0, scaleX: 0.1 }, { scaleX: 0.55 }, {}],
71
+ pivot: [12, 19.6],
72
+ gestures: [
73
+ null,
74
+ {
75
+ duration: 1.6,
76
+ repeatAfter: 2.4,
77
+ loop: true,
78
+ frames: [{ at: 0, scaleX: -0.3 }, { at: 0.85, scaleX: 0.3 }, { at: 1 }],
79
+ },
80
+ {
81
+ duration: 0.7,
82
+ repeatAfter: 2,
83
+ loop: false,
84
+ frames: [{ at: 0, scaleX: -0.5 }, { at: 0.4, scaleX: 0.08, y: -0.4 }, { at: 1 }],
85
+ },
86
+ ],
87
+ },
88
+ ],
89
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type NetworkState } from "./network-rig.js";
3
+ export { networkStates, type NetworkState } from "./network-rig.js";
4
+ export type NetworkIconProps = StatefulIconProps<NetworkState>;
5
+ export declare const NetworkIcon: import("react").NamedExoticComponent<NetworkIconProps>;
@@ -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 { networkArt, networkStates } from "./network-rig.js";
6
+ export { networkStates } from "./network-rig.js";
7
+ export const NetworkIcon = memo(function NetworkIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: networkArt, states: networkStates, ...props });
9
+ });