weasel-icons 0.14.0 → 0.14.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.
package/README.md CHANGED
@@ -8,6 +8,10 @@ Version `0.10.0` contains 874 icons, adding 200 across documents, collaboration,
8
8
 
9
9
  Version `0.7.0` contained 469 icons; `0.6.0` contained 265 icons.
10
10
 
11
+ ## Version 0.14.1
12
+
13
+ Refines Vampire with a fixed face, solid hair and mouth, and white fangs; gives Frankenstein swept hair and attached ears. Repairs Can, Fountain, Grill Fork and Rat motion. The customization guide now covers stable anatomy and deliberate outline, ink and neutral paint roles. Public state names and shared props stay compatible; the collection remains at 1,034 icons.
14
+
11
15
  ## Version 0.14.0
12
16
 
13
17
  Adds 10 Halloween icons with three typed states each, bringing the collection to 1,034: cauldron, coffin, witch hat, potion bottle, Frankenstein, tombstone, vampire, mummy, spider web and candy corn. Includes vampire-to-bat transformation, one-shot hat casting, bats above the tombstone and a spider walking out of its web. The existing jack-o’-lantern’s lit state now turns its stalk into an attached flickering flame. Existing state names and shared props remain compatible.
@@ -6,25 +6,40 @@ export declare const canArt: {
6
6
  readonly name: "structure";
7
7
  readonly paths: readonly ["M 21 10.5 a 9 2.5 0 0 1 -18 0 v 8 a 9 2.5 0 0 0 18 0 z", "M 3 10.5 a 9 2.5 0 0 1 6.527 -2.405", "M 9 16.858 a 31 31 0 0 0 6 0"];
8
8
  readonly poses: readonly [{}, {}, {}];
9
+ }, {
10
+ readonly name: "back-rim";
11
+ readonly paths: readonly ["M 9.527 8.095 A 9 2.5 0 0 1 21 10.5"];
12
+ readonly poses: readonly [{
13
+ readonly opacity: 0;
14
+ }, {
15
+ readonly opacity: 0.6;
16
+ }, {}];
9
17
  }, {
10
18
  readonly name: "action";
11
- readonly paths: readonly ["M 21 10.5 A 9 2.5 25.32 0 0 4.59 3.47 9 2.5 25.32 0 0 21 10.5"];
12
- readonly poses: readonly [{}, {}, {
13
- readonly angle: -8;
19
+ readonly paths: readonly ["M 21 10.5 C 20.948544 8.973227 17.278179 6.18817 12.775345 4.259168 C 8.272511 2.330166 4.619688 1.977989 4.59 3.47 C 4.641456 4.996773 8.311821 7.78183 12.814655 9.710832 C 17.317489 11.639834 20.970312 11.992011 21 10.5"];
20
+ readonly pathStates: readonly [readonly ["M 21 10.5 C 20.948544 8.973227 17.278179 6.18817 12.775345 4.259168 C 8.272511 2.330166 4.619688 1.977989 4.59 3.47 C 4.641456 4.996773 8.311821 7.78183 12.814655 9.710832 C 17.317489 11.639834 20.970312 11.992011 21 10.5"], readonly ["M 21 10.5 C 17.8 10 12.1 9.3 11.6 6.3 C 11.2 3.5 16.5 2.7 18.8 4.4 C 21 5.9 21 8 17.6 8.2 C 17.8 9.2 20.1 10.2 21 10.5"], readonly ["M 21 10.5 C 18.9 10 17.2 8.7 16.8 7 C 16 3.2 21.4 2.3 22 5.9 C 22.4 8 20.3 9.4 18.8 8.2 C 18.3 8.4 20 10 21 10.5"]];
21
+ readonly poses: readonly [{
22
+ readonly flex: 0;
23
+ }, {
24
+ readonly flex: 0.6;
25
+ }, {
26
+ readonly flex: 1;
14
27
  }];
15
- readonly gestures: readonly [null, {
16
- readonly duration: 0.75;
17
- readonly repeatAfter: 0.75;
18
- readonly loop: false;
19
- readonly frames: readonly [{
20
- readonly at: 0;
21
- }, {
22
- readonly at: 0.4;
23
- readonly angle: 5;
24
- }, {
25
- readonly at: 1;
26
- }];
27
- }, null];
28
- readonly pivot: readonly [21, 10.5];
28
+ readonly detail: true;
29
+ readonly surface: true;
30
+ }, {
31
+ readonly name: "curl";
32
+ readonly paths: readonly ["M 18.8 8.2 C 17.6 7.7 17.6 5.5 18.8 5.2 C 19.6 4.9 20.5 5.5 20.3 6.5"];
33
+ readonly pathStates: readonly [readonly ["M 12.814655 9.710832 C 12.814655 9.710832 12.814655 9.710832 12.814655 9.710832 C 12.814655 9.710832 12.814655 9.710832 12.814655 9.710832"], readonly ["M 17.6 8.2 C 17.6 8.2 17.6 8.2 17.6 8.2 C 17.6 8.2 17.6 8.2 17.6 8.2"], readonly ["M 18.8 8.2 C 17.6 7.7 17.6 5.5 18.8 5.2 C 19.6 4.9 20.5 5.5 20.3 6.5"]];
34
+ readonly poses: readonly [{
35
+ readonly opacity: 0;
36
+ }, {
37
+ readonly opacity: 0;
38
+ }, {}];
39
+ readonly detail: true;
40
+ readonly revealAfter: {
41
+ readonly part: "action";
42
+ readonly flex: readonly [0.65, 0.95];
43
+ };
29
44
  }];
30
45
  };
@@ -1,6 +1,11 @@
1
1
  export const canStates = ['open', 'peel', 'peeled'];
2
- // Open can illustration interaction. The lid lifts slightly once about its existing right attachment and returns; the body and exposed rim never fold together. Retain a distinct pose for this configuration or result.
2
+ // Peel-back lid: preserve the body and the source open ellipse. The thin sheet
3
+ // retracts and curls toward its fixed right-hand attachment at (21, 10.5).
4
+ // The back rim is revealed beneath it; the final curl remains still.
3
5
  // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
6
+ const openLid = 'M 21 10.5 C 20.948544 8.973227 17.278179 6.18817 12.775345 4.259168 C 8.272511 2.330166 4.619688 1.977989 4.59 3.47 C 4.641456 4.996773 8.311821 7.78183 12.814655 9.710832 C 17.317489 11.639834 20.970312 11.992011 21 10.5';
7
+ const peelingLid = 'M 21 10.5 C 17.8 10 12.1 9.3 11.6 6.3 C 11.2 3.5 16.5 2.7 18.8 4.4 C 21 5.9 21 8 17.6 8.2 C 17.8 9.2 20.1 10.2 21 10.5';
8
+ const rolledLid = 'M 21 10.5 C 18.9 10 17.2 8.7 16.8 7 C 16 3.2 21.4 2.3 22 5.9 C 22.4 8 20.3 9.4 18.8 8.2 C 18.3 8.4 20 10 21 10.5';
4
9
  export const canArt = {
5
10
  name: 'can',
6
11
  parts: [
@@ -13,38 +18,32 @@ export const canArt = {
13
18
  ],
14
19
  poses: [{}, {}, {}],
15
20
  },
21
+ {
22
+ name: 'back-rim',
23
+ paths: ['M 9.527 8.095 A 9 2.5 0 0 1 21 10.5'],
24
+ poses: [{ opacity: 0 }, { opacity: 0.6 }, {}],
25
+ },
16
26
  {
17
27
  name: 'action',
18
- paths: ['M 21 10.5 A 9 2.5 25.32 0 0 4.59 3.47 9 2.5 25.32 0 0 21 10.5'],
19
- poses: [
20
- {},
21
- {},
22
- {
23
- angle: -8,
24
- },
25
- ],
26
- gestures: [
27
- null,
28
- {
29
- duration: 0.75,
30
- repeatAfter: 0.75,
31
- loop: false,
32
- frames: [
33
- {
34
- at: 0,
35
- },
36
- {
37
- at: 0.4,
38
- angle: 5,
39
- },
40
- {
41
- at: 1,
42
- },
43
- ],
44
- },
45
- null,
28
+ paths: [openLid],
29
+ pathStates: [[openLid], [peelingLid], [rolledLid]],
30
+ poses: [{ flex: 0 }, { flex: 0.6 }, { flex: 1 }],
31
+ detail: true,
32
+ surface: true,
33
+ },
34
+ {
35
+ name: 'curl',
36
+ paths: ['M 18.8 8.2 C 17.6 7.7 17.6 5.5 18.8 5.2 C 19.6 4.9 20.5 5.5 20.3 6.5'],
37
+ pathStates: [
38
+ [
39
+ 'M 12.814655 9.710832 C 12.814655 9.710832 12.814655 9.710832 12.814655 9.710832 C 12.814655 9.710832 12.814655 9.710832 12.814655 9.710832',
40
+ ],
41
+ ['M 17.6 8.2 C 17.6 8.2 17.6 8.2 17.6 8.2 C 17.6 8.2 17.6 8.2 17.6 8.2'],
42
+ ['M 18.8 8.2 C 17.6 7.7 17.6 5.5 18.8 5.2 C 19.6 4.9 20.5 5.5 20.3 6.5'],
46
43
  ],
47
- pivot: [21, 10.5],
44
+ poses: [{ opacity: 0 }, { opacity: 0 }, {}],
45
+ detail: true,
46
+ revealAfter: { part: 'action', flex: [0.65, 0.95] },
48
47
  },
49
48
  ],
50
49
  };
@@ -8,11 +8,37 @@ export declare const fountainArt: {
8
8
  readonly poses: readonly [{}, {}, {}];
9
9
  }, {
10
10
  readonly name: "jets";
11
- readonly paths: readonly ["M9 16v-5a2 2 0 1 0 -4 0", "M15 16v-5a2 2 0 1 1 4 0", "M12 16v-10a3 3 0 0 1 6 0", "M6 6a3 3 0 0 1 6 0"];
11
+ readonly paths: ("M12 16 C12 12.6667 12 9.3333 12 6" | "M12 6 C12 4.343146 13.343146 3 15 3 C16.656854 3 18 4.343146 18 6" | "M12 6 C12 4.343146 10.656854 3 9 3 C7.343146 3 6 4.343146 6 6" | "M9 16 C9 14.3333 9 12.6667 9 11 C9 9.895431 8.104569 9 7 9 C5.895431 9 5 9.895431 5 11" | "M15 16 C15 14.3333 15 12.6667 15 11 C15 9.895431 15.895431 9 17 9 C18.104569 9 19 9.895431 19 11")[];
12
+ readonly pathStates: readonly [("M12 16 C12 12.6667 12 9.3333 12 6" | "M12 6 C12 4.343146 13.343146 3 15 3 C16.656854 3 18 4.343146 18 6" | "M12 6 C12 4.343146 10.656854 3 9 3 C7.343146 3 6 4.343146 6 6" | "M9 16 C9 14.3333 9 12.6667 9 11 C9 9.895431 8.104569 9 7 9 C5.895431 9 5 9.895431 5 11" | "M15 16 C15 14.3333 15 12.6667 15 11 C15 9.895431 15.895431 9 17 9 C18.104569 9 19 9.895431 19 11")[], ("M12 16 C12 12.6667 12 9.3333 12 6" | "M12 6 C12 4.343146 13.343146 3 15 3 C16.656854 3 18 4.343146 18 6" | "M12 6 C12 4.343146 10.656854 3 9 3 C7.343146 3 6 4.343146 6 6" | "M9 16 C9 14.3333 9 12.6667 9 11 C9 9.895431 8.104569 9 7 9 C5.895431 9 5 9.895431 5 11" | "M15 16 C15 14.3333 15 12.6667 15 11 C15 9.895431 15.895431 9 17 9 C18.104569 9 19 9.895431 19 11")[], readonly ["M12 16 C12 14.8 12 13.1 12 11.7", "M12 11.7 C12 9.4 15.2 9.1 16.4 11.1 C17.3 12.1 17.6 14.6 17.4 16", "M12 11.7 C12 9.4 8.8 9.1 7.6 11.1 C6.7 12.1 6.4 14.6 6.6 16"]];
13
+ readonly poses: readonly [{
14
+ readonly opacity: 0;
15
+ }, {}, {}];
16
+ readonly pivot: readonly [12, 16];
17
+ readonly detail: true;
18
+ readonly accent: true;
19
+ readonly gestures: readonly [null, {
20
+ readonly duration: 1.7;
21
+ readonly repeatAfter: 1.9;
22
+ readonly loop: true;
23
+ readonly frames: readonly [{
24
+ readonly at: 0;
25
+ }, {
26
+ readonly at: 0.25;
27
+ readonly scaleY: 0.035;
28
+ }, {
29
+ readonly at: 0.75;
30
+ readonly scaleY: -0.035;
31
+ }, {
32
+ readonly at: 1;
33
+ }];
34
+ }, null];
35
+ }, {
36
+ readonly name: "side-jets";
37
+ readonly paths: ("M12 16 C12 12.6667 12 9.3333 12 6" | "M12 6 C12 4.343146 13.343146 3 15 3 C16.656854 3 18 4.343146 18 6" | "M12 6 C12 4.343146 10.656854 3 9 3 C7.343146 3 6 4.343146 6 6" | "M9 16 C9 14.3333 9 12.6667 9 11 C9 9.895431 8.104569 9 7 9 C5.895431 9 5 9.895431 5 11" | "M15 16 C15 14.3333 15 12.6667 15 11 C15 9.895431 15.895431 9 17 9 C18.104569 9 19 9.895431 19 11")[];
12
38
  readonly poses: readonly [{
13
39
  readonly opacity: 0;
14
40
  }, {}, {
15
- readonly scaleY: 0.55;
41
+ readonly opacity: 0;
16
42
  }];
17
43
  readonly pivot: readonly [12, 16];
18
44
  readonly detail: true;
@@ -1,10 +1,25 @@
1
1
  // Geometry reference: https://raw.githubusercontent.com/tabler/tabler-icons/ed177a085b652fe04ec4f37ced867c94621e7840/icons/outline/fountain.svg
2
2
  // Adaptation and state motion authored for Weasel; see THIRD_PARTY_NOTICES.md.
3
- // The reference water paths all begin at the basin rim y16 and curve into distinct outlets. Jet scaling uses that rim as its fixed baseline, so full and low flow remain connected and visible rather than blinking away.
3
+ // Full flow retains the reference outline, split into a shared centre stem and
4
+ // four arcs. Low flow bends those same paths downward instead of compressing
5
+ // their stroke with scaleY. Low output retains the centre spray while the
6
+ // outer two jets switch off. Visible streams meet the fixed basin rim at y16.
4
7
  // off: Pedestal and basin retained without water jets
5
8
  // flowing: Water rises and arcs into basin
6
9
  // low: Shorter jets remain above basin
7
10
  export const fountainStates = ['off', 'flowing', 'low'];
11
+ const fullJets = [
12
+ 'M12 16 C12 12.6667 12 9.3333 12 6',
13
+ 'M12 6 C12 4.343146 13.343146 3 15 3 C16.656854 3 18 4.343146 18 6',
14
+ 'M12 6 C12 4.343146 10.656854 3 9 3 C7.343146 3 6 4.343146 6 6',
15
+ 'M9 16 C9 14.3333 9 12.6667 9 11 C9 9.895431 8.104569 9 7 9 C5.895431 9 5 9.895431 5 11',
16
+ 'M15 16 C15 14.3333 15 12.6667 15 11 C15 9.895431 15.895431 9 17 9 C18.104569 9 19 9.895431 19 11',
17
+ ];
18
+ const lowJets = [
19
+ 'M12 16 C12 14.8 12 13.1 12 11.7',
20
+ 'M12 11.7 C12 9.4 15.2 9.1 16.4 11.1 C17.3 12.1 17.6 14.6 17.4 16',
21
+ 'M12 11.7 C12 9.4 8.8 9.1 7.6 11.1 C6.7 12.1 6.4 14.6 6.6 16',
22
+ ];
8
23
  export const fountainArt = {
9
24
  name: 'fountain',
10
25
  parts: [
@@ -15,20 +30,14 @@ export const fountainArt = {
15
30
  },
16
31
  {
17
32
  name: 'jets',
18
- paths: [
19
- 'M9 16v-5a2 2 0 1 0 -4 0',
20
- 'M15 16v-5a2 2 0 1 1 4 0',
21
- 'M12 16v-10a3 3 0 0 1 6 0',
22
- 'M6 6a3 3 0 0 1 6 0',
23
- ],
33
+ paths: fullJets.slice(0, 3),
34
+ pathStates: [fullJets.slice(0, 3), fullJets.slice(0, 3), lowJets],
24
35
  poses: [
25
36
  {
26
37
  opacity: 0,
27
38
  },
28
39
  {},
29
- {
30
- scaleY: 0.55,
31
- },
40
+ {},
32
41
  ],
33
42
  pivot: [12, 16],
34
43
  detail: true,
@@ -59,6 +68,24 @@ export const fountainArt = {
59
68
  null,
60
69
  ],
61
70
  },
71
+ {
72
+ name: 'side-jets',
73
+ paths: fullJets.slice(3),
74
+ poses: [{ opacity: 0 }, {}, { opacity: 0 }],
75
+ pivot: [12, 16],
76
+ detail: true,
77
+ accent: true,
78
+ gestures: [
79
+ null,
80
+ {
81
+ duration: 1.7,
82
+ repeatAfter: 1.9,
83
+ loop: true,
84
+ frames: [{ at: 0 }, { at: 0.25, scaleY: 0.035 }, { at: 0.75, scaleY: -0.035 }, { at: 1 }],
85
+ },
86
+ null,
87
+ ],
88
+ },
62
89
  {
63
90
  name: 'basin',
64
91
  paths: ['M3 16h18v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-2'],
@@ -4,9 +4,15 @@ export declare const frankensteinArt: {
4
4
  readonly name: "frankenstein";
5
5
  readonly parts: readonly [{
6
6
  readonly name: "neck-bolts";
7
- readonly paths: readonly ["M3 15.5H6", "M3 14.3V16.7", "M18 15.5H21", "M21 14.3V16.7"];
7
+ readonly paths: readonly ["M3 17.5H6", "M3 16.3V18.7", "M18 17.5H21", "M21 16.3V18.7"];
8
8
  readonly poses: readonly [{}, {}, {}];
9
9
  readonly accent: true;
10
+ }, {
11
+ readonly name: "ears";
12
+ readonly paths: readonly ["M6 12.2C3.4 10.5 2.9 14.5 6 15.1Z", "M18 12.2C20.6 10.5 21.1 14.5 18 15.1Z"];
13
+ readonly poses: readonly [{}, {}, {}];
14
+ readonly detail: true;
15
+ readonly surface: true;
10
16
  }, {
11
17
  readonly name: "head";
12
18
  readonly paths: readonly ["M6 5Q6 3 8 3H16Q18 3 18 5V17Q18 21 12 21Q6 21 6 17Z"];
@@ -14,11 +20,17 @@ export declare const frankensteinArt: {
14
20
  readonly surface: true;
15
21
  }, {
16
22
  readonly name: "fringe";
17
- readonly paths: readonly ["M6 7.8H8.3L9.3 9L10.7 7.8H13.3L14.3 9L15.7 7.8H18"];
23
+ readonly paths: readonly ["M6 5.2C5.3 3.5 6.35 2.15 8.5 2.1C9.9 2.05 11.1 2.5 12 3.05C12.9 1.55 15 1.55 16.65 2.2C18 2.75 18.65 4.15 18 5.2Q14.9 4.3 12 4.9Q8.8 4 6 5.2Z"];
24
+ readonly poses: readonly [{}, {}, {}];
25
+ readonly fillOnly: "ink";
26
+ }, {
27
+ readonly name: "hair-part";
28
+ readonly paths: readonly ["M11.8 2.85Q12.1 3.65 12 4.6Q12.35 3.55 12.8 2.5Q12.25 2.6 11.8 2.85Z"];
18
29
  readonly poses: readonly [{}, {}, {}];
30
+ readonly fillOnly: "surface";
19
31
  }, {
20
32
  readonly name: "stitches";
21
- readonly paths: readonly ["M9 5.5H14.5", "M10.7 4.9V6.1", "M13 4.9V6.1"];
33
+ readonly paths: readonly ["M9 6.8H14.5", "M10.7 6.2V7.4", "M13 6.2V7.4"];
22
34
  readonly poses: readonly [{}, {}, {}];
23
35
  readonly detail: true;
24
36
  readonly accent: true;
@@ -42,7 +54,7 @@ export declare const frankensteinArt: {
42
54
  readonly pathStates: readonly [readonly ["M9 17Q12 17 15 17"], readonly ["M9 17Q12 18.3 15 17"], readonly ["M9 17Q12 15.8 15 17"]];
43
55
  }, {
44
56
  readonly name: "left-arc";
45
- readonly paths: readonly ["M2 10.7L3.1 12L1.6 13.2"];
57
+ readonly paths: readonly ["M2 8.2L3.1 9.5L1.6 10.7"];
46
58
  readonly poses: readonly [{
47
59
  readonly opacity: 0;
48
60
  }, {
@@ -75,7 +87,7 @@ export declare const frankensteinArt: {
75
87
  }];
76
88
  }, {
77
89
  readonly name: "right-arc";
78
- readonly paths: readonly ["M22 10.7L20.9 12L22.4 13.2"];
90
+ readonly paths: readonly ["M22 8.2L20.9 9.5L22.4 10.7"];
79
91
  readonly poses: readonly [{
80
92
  readonly opacity: 0;
81
93
  }, {
@@ -1,5 +1,5 @@
1
1
  // Original Weasel outline and state choreography. Structural observations are retained in the external review record.
2
- // Broad flat head, short jagged fringe, forehead stitches and paired neck bolts.
2
+ // Broad fixed face, swept parted hair, rounded ears, forehead stitches and paired neck bolts.
3
3
  // dormant: Eyes rest closed beneath the stitched forehead
4
4
  // awake: Eyes open with a small curious mouth change
5
5
  // charged: Neck bolts hold the accent colour as small electrical arcs flicker beside them
@@ -9,10 +9,17 @@ export const frankensteinArt = {
9
9
  parts: [
10
10
  {
11
11
  name: 'neck-bolts',
12
- paths: ['M3 15.5H6', 'M3 14.3V16.7', 'M18 15.5H21', 'M21 14.3V16.7'],
12
+ paths: ['M3 17.5H6', 'M3 16.3V18.7', 'M18 17.5H21', 'M21 16.3V18.7'],
13
13
  poses: [{}, {}, {}],
14
14
  accent: true,
15
15
  },
16
+ {
17
+ name: 'ears',
18
+ paths: ['M6 12.2C3.4 10.5 2.9 14.5 6 15.1Z', 'M18 12.2C20.6 10.5 21.1 14.5 18 15.1Z'],
19
+ poses: [{}, {}, {}],
20
+ detail: true,
21
+ surface: true,
22
+ },
16
23
  {
17
24
  name: 'head',
18
25
  paths: ['M6 5Q6 3 8 3H16Q18 3 18 5V17Q18 21 12 21Q6 21 6 17Z'],
@@ -21,12 +28,21 @@ export const frankensteinArt = {
21
28
  },
22
29
  {
23
30
  name: 'fringe',
24
- paths: ['M6 7.8H8.3L9.3 9L10.7 7.8H13.3L14.3 9L15.7 7.8H18'],
31
+ paths: [
32
+ 'M6 5.2C5.3 3.5 6.35 2.15 8.5 2.1C9.9 2.05 11.1 2.5 12 3.05C12.9 1.55 15 1.55 16.65 2.2C18 2.75 18.65 4.15 18 5.2Q14.9 4.3 12 4.9Q8.8 4 6 5.2Z',
33
+ ],
34
+ poses: [{}, {}, {}],
35
+ fillOnly: 'ink',
36
+ },
37
+ {
38
+ name: 'hair-part',
39
+ paths: ['M11.8 2.85Q12.1 3.65 12 4.6Q12.35 3.55 12.8 2.5Q12.25 2.6 11.8 2.85Z'],
25
40
  poses: [{}, {}, {}],
41
+ fillOnly: 'surface',
26
42
  },
27
43
  {
28
44
  name: 'stitches',
29
- paths: ['M9 5.5H14.5', 'M10.7 4.9V6.1', 'M13 4.9V6.1'],
45
+ paths: ['M9 6.8H14.5', 'M10.7 6.2V7.4', 'M13 6.2V7.4'],
30
46
  poses: [{}, {}, {}],
31
47
  detail: true,
32
48
  accent: true,
@@ -73,7 +89,7 @@ export const frankensteinArt = {
73
89
  },
74
90
  {
75
91
  name: 'left-arc',
76
- paths: ['M2 10.7L3.1 12L1.6 13.2'],
92
+ paths: ['M2 8.2L3.1 9.5L1.6 10.7'],
77
93
  poses: [
78
94
  {
79
95
  opacity: 0,
@@ -123,7 +139,7 @@ export const frankensteinArt = {
123
139
  },
124
140
  {
125
141
  name: 'right-arc',
126
- paths: ['M22 10.7L20.9 12L22.4 13.2'],
142
+ paths: ['M22 8.2L20.9 9.5L22.4 10.7'],
127
143
  poses: [
128
144
  {
129
145
  opacity: 0,
@@ -4,7 +4,7 @@ export declare const grillForkArt: {
4
4
  readonly name: "grill-fork";
5
5
  readonly parts: readonly [{
6
6
  readonly name: "food";
7
- readonly paths: readonly ["M2.7 5a2.3 2.3 0 1 0 4.6 0a2.3 2.3 0 1 0 -4.6 0"];
7
+ readonly paths: readonly ["M2.1 4.6 L4.6 2.1 Q5.1 1.6 5.6 2.1 L6.9 3.4 Q7.4 3.9 6.9 4.4 L4.4 6.9 Q3.9 7.4 3.4 6.9 L2.1 5.6 Q1.6 5.1 2.1 4.6 Z"];
8
8
  readonly poses: readonly [{
9
9
  readonly opacity: 0;
10
10
  }, {
@@ -12,12 +12,14 @@ export declare const grillForkArt: {
12
12
  readonly y: -0.6;
13
13
  readonly opacity: 0;
14
14
  }, {
15
- readonly x: 0.5;
16
- readonly y: -1;
15
+ readonly y: -0.65;
16
+ readonly angle: 9;
17
17
  readonly opacity: 1;
18
18
  }];
19
19
  readonly detail: true;
20
20
  readonly accent: true;
21
+ readonly surface: true;
22
+ readonly pivot: readonly [18.4, 18.4];
21
23
  }, {
22
24
  readonly name: "body";
23
25
  readonly paths: readonly ["M5 5l11.5 11.5", "M19.347 16.575l1.08 1.079a1.96 1.96 0 0 1 -2.773 2.772l-1.08 -1.079a1.96 1.96 0 0 1 2.773 -2.772", "M3 7l3.05 3.15a2.9 2.9 0 0 0 4.1 -4.1l-3.15 -3.05"];
@@ -25,9 +27,9 @@ export declare const grillForkArt: {
25
27
  readonly x: -0.6;
26
28
  readonly y: -0.6;
27
29
  }, {
28
- readonly x: 0.5;
29
- readonly y: -1;
30
+ readonly y: -0.65;
31
+ readonly angle: 9;
30
32
  }];
31
- readonly pivot: readonly [12, 12];
33
+ readonly pivot: readonly [18.4, 18.4];
32
34
  }];
33
35
  };
@@ -1,6 +1,7 @@
1
1
  // Geometry reference: https://raw.githubusercontent.com/tabler/tabler-icons/ed177a085b652fe04ec4f37ced867c94621e7840/icons/outline/grill-fork.svg
2
2
  // Adaptation and state motion authored for Weasel; see THIRD_PARTY_NOTICES.md.
3
- // The source utensil has two long separated tines, a diagonal shaft and rounded grip. Piercing follows the shaft axis; when food is explicitly lifted its transform matches the fork exactly.
3
+ // Preserve the reference tines, shaft and grip. The rounded bite is skewered by
4
+ // the middle tine; bite and utensil share the grip pivot throughout the lift.
4
5
  // ready: Tines held clear
5
6
  // piercing: Tines advance along shaft axis
6
7
  // lifted: Tines and food lift together
@@ -10,7 +11,9 @@ export const grillForkArt = {
10
11
  parts: [
11
12
  {
12
13
  name: 'food',
13
- paths: ['M2.7 5a2.3 2.3 0 1 0 4.6 0a2.3 2.3 0 1 0 -4.6 0'],
14
+ paths: [
15
+ 'M2.1 4.6 L4.6 2.1 Q5.1 1.6 5.6 2.1 L6.9 3.4 Q7.4 3.9 6.9 4.4 L4.4 6.9 Q3.9 7.4 3.4 6.9 L2.1 5.6 Q1.6 5.1 2.1 4.6 Z',
16
+ ],
14
17
  poses: [
15
18
  {
16
19
  opacity: 0,
@@ -21,13 +24,15 @@ export const grillForkArt = {
21
24
  opacity: 0,
22
25
  },
23
26
  {
24
- x: 0.5,
25
- y: -1,
27
+ y: -0.65,
28
+ angle: 9,
26
29
  opacity: 1,
27
30
  },
28
31
  ],
29
32
  detail: true,
30
33
  accent: true,
34
+ surface: true,
35
+ pivot: [18.4, 18.4],
31
36
  },
32
37
  {
33
38
  name: 'body',
@@ -43,11 +48,11 @@ export const grillForkArt = {
43
48
  y: -0.6,
44
49
  },
45
50
  {
46
- x: 0.5,
47
- y: -1,
51
+ y: -0.65,
52
+ angle: 9,
48
53
  },
49
54
  ],
50
- pivot: [12, 12],
55
+ pivot: [18.4, 18.4],
51
56
  },
52
57
  ],
53
58
  };
@@ -4,32 +4,35 @@ export declare const ratArt: {
4
4
  readonly name: "rat";
5
5
  readonly parts: readonly [{
6
6
  readonly name: "structure";
7
- readonly paths: readonly ["M 13 22 H 4 a 2 2 0 0 1 0 -4 h 12", "M 13.236 18 a 3 3 0 0 0 -2.2 -5", "M 16 9 h .01", "M 16.82 3.94 a 3 3 0 1 1 3.237 4.868 l 1.815 2.587 a 1.5 1.5 0 0 1 -1.5 2.1 l -2.872 -.453 a 3 3 0 0 0 -3.5 3", "M 17 4.988 a 3 3 0 1 0 -5.2 2.052 A 7 7 0 0 0 4 14.015 4 4 0 0 0 8 18"];
7
+ readonly paths: readonly ["M 13 22 H 4 a 2 2 0 0 1 0 -4 h 12", "M 13.236 18 a 3 3 0 0 0 -2.2 -5"];
8
8
  readonly poses: readonly [{}, {}, {}];
9
9
  }, {
10
- readonly name: "whiskers";
11
- readonly paths: readonly ["M 21.5 12 L 23.8 10.8", "M 21.5 12 L 23.8 13.2"];
10
+ readonly name: "head";
11
+ readonly paths: readonly ["M 16.82 3.94 C 17.66859 3.041639 18.981232 2.75555 20.126696 3.219307 C 21.272159 3.683065 22.016048 4.801772 22.000638 6.037458 C 21.985228 7.273144 21.213672 8.372952 20.057 8.808 L 21.872 11.395 C 22.085823 11.879686 22.028128 12.441216 21.720214 12.872296 C 21.4123 13.303375 20.899835 13.540069 20.372 13.495 L 17.5 13.042 C 16.622008 12.893503 15.72342 13.142716 15.047332 13.72222 C 14.371243 14.301725 13.987531 15.151626 14 16.042", "M 17 4.988 C 16.994443 3.645777 16.097999 2.470578 14.804984 2.11043 C 13.511969 1.750282 12.137074 2.292837 11.438441 3.43892 C 10.739808 4.585003 10.887468 6.055683 11.8 7.04 C 9.813625 6.811479 7.824339 7.443309 6.333872 8.776131 C 4.843404 10.108953 3.994039 12.015532 4 14.015 C 4.008262 16.218279 5.796706 18.000015 8 18", "M 16 9 L 16.01 9"];
12
+ readonly pathStates: readonly [readonly ["M 16.82 3.94 C 17.66859 3.041639 18.981232 2.75555 20.126696 3.219307 C 21.272159 3.683065 22.016048 4.801772 22.000638 6.037458 C 21.985228 7.273144 21.213672 8.372952 20.057 8.808 L 21.872 11.395 C 22.085823 11.879686 22.028128 12.441216 21.720214 12.872296 C 21.4123 13.303375 20.899835 13.540069 20.372 13.495 L 17.5 13.042 C 16.622008 12.893503 15.72342 13.142716 15.047332 13.72222 C 14.371243 14.301725 13.987531 15.151626 14 16.042", "M 17 4.988 C 16.994443 3.645777 16.097999 2.470578 14.804984 2.11043 C 13.511969 1.750282 12.137074 2.292837 11.438441 3.43892 C 10.739808 4.585003 10.887468 6.055683 11.8 7.04 C 9.813625 6.811479 7.824339 7.443309 6.333872 8.776131 C 4.843404 10.108953 3.994039 12.015532 4 14.015 C 4.008262 16.218279 5.796706 18.000015 8 18", "M 16 9 L 16.01 9"], readonly ["M 17.12 4.14 C 17.96859 3.241639 19.281232 2.95555 20.426696 3.419307 C 21.572159 3.883065 22.316048 5.001772 22.300638 6.237458 C 22.285228 7.473144 21.513672 8.572952 20.357 9.008 L 22.172 11.595 C 22.385823 12.079686 22.328128 12.641216 22.020214 13.072296 C 21.7123 13.503375 21.199835 13.740069 20.672 13.695 L 17.8 13.242 C 16.922008 13.093503 16.013349 13.336002 15.27931 13.876872 C 14.545271 14.417743 14.076568 15.210985 14 16.042", "M 17.3 5.188 C 17.294443 3.845777 16.397999 2.670578 15.104984 2.31043 C 13.811969 1.950282 12.437074 2.492837 11.738441 3.63892 C 11.039808 4.785003 11.187468 6.255683 12.1 7.24 C 10.113625 7.011479 8.106993 7.631744 6.559199 8.926349 C 5.011406 10.220954 4.080038 12.072864 4 14.015 C 4.008262 16.218279 5.796706 18.000015 8 18", "M 16.3 9.2 L 16.31 9.2"], readonly ["M 13.942283 3.161018 C 14.452163 2.035327 15.600149 1.33747 16.834191 1.403035 C 18.068232 1.4686 19.135809 2.284171 19.523538 3.457553 C 19.911268 4.630934 19.53981 5.922017 18.587792 6.709938 L 21.146153 8.565089 C 21.506125 8.953754 21.63439 9.503475 21.483597 10.011316 C 21.332805 10.519157 20.925319 10.909798 20.411569 11.03903 L 17.548557 11.545742 C 16.670054 11.691181 15.895577 12.250367 15.35945 13.154024 C 14.736204 13.98484 14.262581 15.012833 14 16.042", "M 14.453672 4.093319 C 14.011433 2.826031 12.781221 2.006713 11.441399 2.087151 C 10.101576 2.167589 8.978226 3.128207 8.690783 4.439302 C 8.40334 5.750397 9.021763 7.092879 10.205041 7.726478 C 8.252488 8.157108 6.649392 9.288897 5.784126 10.557337 C 4.721994 11.66808 4.123093 12.863128 4 14.015 C 4.008262 16.218279 5.796706 18.000015 8 18", "M 14.814333 8.212308 L 14.823788 8.209052"]];
13
+ readonly pathOffsets: readonly [readonly [0.059633, -0.369172, -0.001771, -0.423437, -0.023617, -0.509801, 0.0046, -0.586735, 0.032816, -0.663669, 0.105322, -0.715429, 0.187249, -0.717125, 0.269177, -0.71882, 0.343762, -0.670104, 0.375137, -0.594403, 0.542597, -0.720378, 0.574249, -0.735614, 0.611591, -0.733025, 0.640837, -0.713566, 0.670084, -0.694108, 0.686897, -0.660665, 0.68507, -0.625584, 0.661363, -0.43425, 0.653451, -0.375735, 0.649385, -0.306097, 0.550434, -0.211252, 0.436071, -0.133226, 0.240074, -0.061169, 0, 0], readonly [0.128692, -0.383406, 0.03975, -0.380086, -0.036164, -0.318092, -0.05719, -0.231607, -0.078216, -0.145122, -0.039236, -0.055195, 0.038256, -0.011414, 0.115747, 0.032368, 0.21289, 0.019348, 0.276118, -0.043293, 0.26534, 0.088855, 0.293571, 0.206623, 0.302837, 0.236708, 0.277094, 0.230163, 0.178598, 0.132753, 0, 0, 0, 0, 0, 0, 0, 0], readonly [0.396781, -0.325952, 0.396759, -0.326615]];
12
14
  readonly poses: readonly [{}, {}, {}];
13
- readonly detail: true;
14
- readonly pathOffsets: readonly [readonly [0, 0, 0, -0.55], readonly [0, 0, 0, 0.55]];
15
15
  readonly gestures: readonly [null, {
16
- readonly duration: 0.85;
17
- readonly repeatAfter: 0.85;
18
- readonly loop: false;
16
+ readonly duration: 1.05;
17
+ readonly repeatAfter: 2.2;
18
+ readonly loop: true;
19
19
  readonly frames: readonly [{
20
20
  readonly at: 0;
21
21
  }, {
22
- readonly at: 0.25;
22
+ readonly at: 0.16;
23
23
  readonly flex: 1;
24
24
  }, {
25
- readonly at: 0.5;
25
+ readonly at: 0.34;
26
+ readonly flex: 0.05;
26
27
  }, {
27
- readonly at: 0.7;
28
- readonly flex: 1;
28
+ readonly at: 0.53;
29
+ readonly flex: 0.85;
30
+ }, {
31
+ readonly at: 0.76;
32
+ readonly flex: 0;
29
33
  }, {
30
34
  readonly at: 1;
31
35
  }];
32
36
  }, null];
33
- readonly pathStates: readonly [readonly ["M 21.5 12 L 23.8 10.8", "M 21.5 12 L 23.8 13.2"], readonly ["M 21.5 12 L 23.8 10.8", "M 21.5 12 L 23.8 13.2"], readonly ["M 21.5 12 L 23.6 9.6", "M 21.5 12 L 23.6 14.4"]];
34
37
  }];
35
38
  };