weasel-icons 0.2.0 → 0.3.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.
- package/README.md +81 -2
- package/THIRD_PARTY_NOTICES.md +6 -4
- package/dist/icons/arrow-down/arrow-down-icon.d.ts +5 -0
- package/dist/icons/arrow-down/arrow-down-icon.js +9 -0
- package/dist/icons/arrow-down/arrow-down-rig.d.ts +43 -0
- package/dist/icons/arrow-down/arrow-down-rig.js +64 -0
- package/dist/icons/arrow-left/arrow-left-icon.d.ts +5 -0
- package/dist/icons/arrow-left/arrow-left-icon.js +9 -0
- package/dist/icons/arrow-left/arrow-left-rig.d.ts +43 -0
- package/dist/icons/arrow-left/arrow-left-rig.js +64 -0
- package/dist/icons/arrow-right/arrow-right-icon.d.ts +5 -0
- package/dist/icons/arrow-right/arrow-right-icon.js +9 -0
- package/dist/icons/arrow-right/arrow-right-rig.d.ts +43 -0
- package/dist/icons/arrow-right/arrow-right-rig.js +64 -0
- package/dist/icons/arrow-up/arrow-up-icon.d.ts +5 -0
- package/dist/icons/arrow-up/arrow-up-icon.js +9 -0
- package/dist/icons/arrow-up/arrow-up-rig.d.ts +43 -0
- package/dist/icons/arrow-up/arrow-up-rig.js +64 -0
- package/dist/icons/book-open/book-open-icon.d.ts +5 -0
- package/dist/icons/book-open/book-open-icon.js +9 -0
- package/dist/icons/book-open/book-open-rig.d.ts +65 -0
- package/dist/icons/book-open/book-open-rig.js +95 -0
- package/dist/icons/bookmark/bookmark-icon.d.ts +5 -0
- package/dist/icons/bookmark/bookmark-icon.js +9 -0
- package/dist/icons/bookmark/bookmark-rig.d.ts +43 -0
- package/dist/icons/bookmark/bookmark-rig.js +65 -0
- package/dist/icons/calendar/calendar-icon.d.ts +5 -0
- package/dist/icons/calendar/calendar-icon.js +9 -0
- package/dist/icons/calendar/calendar-rig.d.ts +67 -0
- package/dist/icons/calendar/calendar-rig.js +95 -0
- package/dist/icons/camera/camera-icon.d.ts +5 -0
- package/dist/icons/camera/camera-icon.js +9 -0
- package/dist/icons/camera/camera-rig.d.ts +58 -0
- package/dist/icons/camera/camera-rig.js +82 -0
- package/dist/icons/chevron-down/chevron-down-icon.d.ts +5 -0
- package/dist/icons/chevron-down/chevron-down-icon.js +9 -0
- package/dist/icons/chevron-down/chevron-down-rig.d.ts +48 -0
- package/dist/icons/chevron-down/chevron-down-rig.js +30 -0
- package/dist/icons/chevron-left/chevron-left-icon.d.ts +5 -0
- package/dist/icons/chevron-left/chevron-left-icon.js +9 -0
- package/dist/icons/chevron-left/chevron-left-rig.d.ts +34 -0
- package/dist/icons/chevron-left/chevron-left-rig.js +49 -0
- package/dist/icons/chevron-right/chevron-right-icon.d.ts +5 -0
- package/dist/icons/chevron-right/chevron-right-icon.js +9 -0
- package/dist/icons/chevron-right/chevron-right-rig.d.ts +34 -0
- package/dist/icons/chevron-right/chevron-right-rig.js +49 -0
- package/dist/icons/chevron-up/chevron-up-icon.d.ts +5 -0
- package/dist/icons/chevron-up/chevron-up-icon.js +9 -0
- package/dist/icons/chevron-up/chevron-up-rig.d.ts +48 -0
- package/dist/icons/chevron-up/chevron-up-rig.js +30 -0
- package/dist/icons/circle-help/circle-help-icon.d.ts +5 -0
- package/dist/icons/circle-help/circle-help-icon.js +9 -0
- package/dist/icons/circle-help/circle-help-rig.d.ts +45 -0
- package/dist/icons/circle-help/circle-help-rig.js +70 -0
- package/dist/icons/clipboard/clipboard-icon.d.ts +5 -0
- package/dist/icons/clipboard/clipboard-icon.js +9 -0
- package/dist/icons/clipboard/clipboard-rig.d.ts +69 -0
- package/dist/icons/clipboard/clipboard-rig.js +99 -0
- package/dist/icons/clock/clock-icon.d.ts +5 -0
- package/dist/icons/clock/clock-icon.js +9 -0
- package/dist/icons/clock/clock-rig.d.ts +40 -0
- package/dist/icons/clock/clock-rig.js +53 -0
- package/dist/icons/cloud/cloud-icon.d.ts +5 -0
- package/dist/icons/cloud/cloud-icon.js +9 -0
- package/dist/icons/cloud/cloud-rig.d.ts +74 -0
- package/dist/icons/cloud/cloud-rig.js +103 -0
- package/dist/icons/code/code-icon.d.ts +5 -0
- package/dist/icons/code/code-icon.js +9 -0
- package/dist/icons/code/code-rig.d.ts +104 -0
- package/dist/icons/code/code-rig.js +148 -0
- package/dist/icons/credit-card/credit-card-icon.d.ts +5 -0
- package/dist/icons/credit-card/credit-card-icon.js +9 -0
- package/dist/icons/credit-card/credit-card-rig.d.ts +88 -0
- package/dist/icons/credit-card/credit-card-rig.js +122 -0
- package/dist/icons/database/database-icon.d.ts +5 -0
- package/dist/icons/database/database-icon.js +9 -0
- package/dist/icons/database/database-rig.d.ts +61 -0
- package/dist/icons/database/database-rig.js +86 -0
- package/dist/icons/external-link/external-link-icon.d.ts +5 -0
- package/dist/icons/external-link/external-link-icon.js +9 -0
- package/dist/icons/external-link/external-link-rig.d.ts +45 -0
- package/dist/icons/external-link/external-link-rig.js +42 -0
- package/dist/icons/file/file-icon.d.ts +5 -0
- package/dist/icons/file/file-icon.js +9 -0
- package/dist/icons/file/file-rig.d.ts +53 -0
- package/dist/icons/file/file-rig.js +80 -0
- package/dist/icons/file-text/file-text-icon.d.ts +5 -0
- package/dist/icons/file-text/file-text-icon.js +9 -0
- package/dist/icons/file-text/file-text-rig.d.ts +93 -0
- package/dist/icons/file-text/file-text-rig.js +138 -0
- package/dist/icons/filter/filter-icon.d.ts +5 -0
- package/dist/icons/filter/filter-icon.js +9 -0
- package/dist/icons/filter/filter-rig.d.ts +72 -0
- package/dist/icons/filter/filter-rig.js +99 -0
- package/dist/icons/folder/folder-icon.d.ts +5 -0
- package/dist/icons/folder/folder-icon.js +9 -0
- package/dist/icons/folder/folder-rig.d.ts +20 -0
- package/dist/icons/folder/folder-rig.js +28 -0
- package/dist/icons/globe/globe-icon.d.ts +5 -0
- package/dist/icons/globe/globe-icon.js +9 -0
- package/dist/icons/globe/globe-rig.d.ts +40 -0
- package/dist/icons/globe/globe-rig.js +57 -0
- package/dist/icons/home/home-icon.d.ts +5 -0
- package/dist/icons/home/home-icon.js +9 -0
- package/dist/icons/home/home-rig.d.ts +49 -0
- package/dist/icons/home/home-rig.js +76 -0
- package/dist/icons/image/image-icon.d.ts +5 -0
- package/dist/icons/image/image-icon.js +9 -0
- package/dist/icons/image/image-rig.d.ts +70 -0
- package/dist/icons/image/image-rig.js +99 -0
- package/dist/icons/info/info-icon.d.ts +5 -0
- package/dist/icons/info/info-icon.js +9 -0
- package/dist/icons/info/info-rig.d.ts +48 -0
- package/dist/icons/info/info-rig.js +69 -0
- package/dist/icons/key/key-icon.d.ts +5 -0
- package/dist/icons/key/key-icon.js +9 -0
- package/dist/icons/key/key-rig.d.ts +50 -0
- package/dist/icons/key/key-rig.js +76 -0
- package/dist/icons/layers/layers-icon.d.ts +5 -0
- package/dist/icons/layers/layers-icon.js +9 -0
- package/dist/icons/layers/layers-rig.d.ts +147 -0
- package/dist/icons/layers/layers-rig.js +211 -0
- package/dist/icons/layout-dashboard/layout-dashboard-icon.d.ts +5 -0
- package/dist/icons/layout-dashboard/layout-dashboard-icon.js +9 -0
- package/dist/icons/layout-dashboard/layout-dashboard-rig.d.ts +194 -0
- package/dist/icons/layout-dashboard/layout-dashboard-rig.js +284 -0
- package/dist/icons/layout-grid/layout-grid-icon.d.ts +5 -0
- package/dist/icons/layout-grid/layout-grid-icon.js +9 -0
- package/dist/icons/layout-grid/layout-grid-rig.d.ts +103 -0
- package/dist/icons/layout-grid/layout-grid-rig.js +167 -0
- package/dist/icons/list/list-icon.d.ts +5 -0
- package/dist/icons/list/list-icon.js +9 -0
- package/dist/icons/list/list-rig.d.ts +165 -0
- package/dist/icons/list/list-rig.js +231 -0
- package/dist/icons/lock/lock-icon.d.ts +5 -0
- package/dist/icons/lock/lock-icon.js +9 -0
- package/dist/icons/lock/lock-rig.d.ts +42 -0
- package/dist/icons/lock/lock-rig.js +58 -0
- package/dist/icons/log-in/log-in-icon.d.ts +5 -0
- package/dist/icons/log-in/log-in-icon.js +9 -0
- package/dist/icons/log-in/log-in-rig.d.ts +39 -0
- package/dist/icons/log-in/log-in-rig.js +55 -0
- package/dist/icons/log-out/log-out-icon.d.ts +5 -0
- package/dist/icons/log-out/log-out-icon.js +9 -0
- package/dist/icons/log-out/log-out-rig.d.ts +39 -0
- package/dist/icons/log-out/log-out-rig.js +55 -0
- package/dist/icons/mail/mail-icon.d.ts +5 -0
- package/dist/icons/mail/mail-icon.js +9 -0
- package/dist/icons/mail/mail-rig.d.ts +20 -0
- package/dist/icons/mail/mail-rig.js +28 -0
- package/dist/icons/map-pin/map-pin-icon.d.ts +5 -0
- package/dist/icons/map-pin/map-pin-icon.js +9 -0
- package/dist/icons/map-pin/map-pin-rig.d.ts +118 -0
- package/dist/icons/map-pin/map-pin-rig.js +164 -0
- package/dist/icons/maximize/maximize-icon.d.ts +5 -0
- package/dist/icons/maximize/maximize-icon.js +9 -0
- package/dist/icons/maximize/maximize-rig.d.ts +190 -0
- package/dist/icons/maximize/maximize-rig.js +268 -0
- package/dist/icons/menu/menu-icon.d.ts +5 -0
- package/dist/icons/menu/menu-icon.js +9 -0
- package/dist/icons/menu/menu-rig.d.ts +41 -0
- package/dist/icons/menu/menu-rig.js +58 -0
- package/dist/icons/message-circle/message-circle-icon.d.ts +5 -0
- package/dist/icons/message-circle/message-circle-icon.js +9 -0
- package/dist/icons/message-circle/message-circle-rig.d.ts +99 -0
- package/dist/icons/message-circle/message-circle-rig.js +143 -0
- package/dist/icons/mic/mic-icon.d.ts +5 -0
- package/dist/icons/mic/mic-icon.js +9 -0
- package/dist/icons/mic/mic-rig.d.ts +67 -0
- package/dist/icons/mic/mic-rig.js +96 -0
- package/dist/icons/minimize/minimize-icon.d.ts +5 -0
- package/dist/icons/minimize/minimize-icon.js +9 -0
- package/dist/icons/minimize/minimize-rig.d.ts +190 -0
- package/dist/icons/minimize/minimize-rig.js +268 -0
- package/dist/icons/minus/minus-icon.d.ts +5 -0
- package/dist/icons/minus/minus-icon.js +9 -0
- package/dist/icons/minus/minus-rig.d.ts +31 -0
- package/dist/icons/minus/minus-rig.js +47 -0
- package/dist/icons/moon/moon-icon.d.ts +5 -0
- package/dist/icons/moon/moon-icon.js +9 -0
- package/dist/icons/moon/moon-rig.d.ts +62 -0
- package/dist/icons/moon/moon-rig.js +87 -0
- package/dist/icons/more-horizontal/more-horizontal-icon.d.ts +5 -0
- package/dist/icons/more-horizontal/more-horizontal-icon.js +9 -0
- package/dist/icons/more-horizontal/more-horizontal-rig.d.ts +91 -0
- package/dist/icons/more-horizontal/more-horizontal-rig.js +141 -0
- package/dist/icons/more-vertical/more-vertical-icon.d.ts +5 -0
- package/dist/icons/more-vertical/more-vertical-icon.js +9 -0
- package/dist/icons/more-vertical/more-vertical-rig.d.ts +91 -0
- package/dist/icons/more-vertical/more-vertical-rig.js +141 -0
- package/dist/icons/music/music-icon.d.ts +5 -0
- package/dist/icons/music/music-icon.js +9 -0
- package/dist/icons/music/music-rig.d.ts +66 -0
- package/dist/icons/music/music-rig.js +95 -0
- package/dist/icons/package/package-icon.d.ts +5 -0
- package/dist/icons/package/package-icon.js +9 -0
- package/dist/icons/package/package-rig.d.ts +40 -0
- package/dist/icons/package/package-rig.js +60 -0
- package/dist/icons/pause/pause-icon.d.ts +5 -0
- package/dist/icons/pause/pause-icon.js +9 -0
- package/dist/icons/pause/pause-rig.d.ts +104 -0
- package/dist/icons/pause/pause-rig.js +147 -0
- package/dist/icons/pencil/pencil-icon.d.ts +5 -0
- package/dist/icons/pencil/pencil-icon.js +9 -0
- package/dist/icons/pencil/pencil-rig.d.ts +48 -0
- package/dist/icons/pencil/pencil-rig.js +68 -0
- package/dist/icons/phone/phone-icon.d.ts +5 -0
- package/dist/icons/phone/phone-icon.js +9 -0
- package/dist/icons/phone/phone-rig.d.ts +41 -0
- package/dist/icons/phone/phone-rig.js +60 -0
- package/dist/icons/play/play-icon.d.ts +5 -0
- package/dist/icons/play/play-icon.js +9 -0
- package/dist/icons/play/play-rig.d.ts +58 -0
- package/dist/icons/play/play-rig.js +80 -0
- package/dist/icons/plus/plus-icon.d.ts +5 -0
- package/dist/icons/plus/plus-icon.js +9 -0
- package/dist/icons/plus/plus-rig.d.ts +94 -0
- package/dist/icons/plus/plus-rig.js +137 -0
- package/dist/icons/replace/replace-icon.js +9 -8
- package/dist/icons/replace/replace-rig.d.ts +7 -1
- package/dist/icons/replace/replace-rig.js +35 -17
- package/dist/icons/save/save-icon.d.ts +5 -0
- package/dist/icons/save/save-icon.js +9 -0
- package/dist/icons/save/save-rig.d.ts +43 -0
- package/dist/icons/save/save-rig.js +63 -0
- package/dist/icons/send/send-icon.d.ts +5 -0
- package/dist/icons/send/send-icon.js +9 -0
- package/dist/icons/send/send-rig.d.ts +43 -0
- package/dist/icons/send/send-rig.js +61 -0
- package/dist/icons/settings/settings-icon.d.ts +5 -0
- package/dist/icons/settings/settings-icon.js +9 -0
- package/dist/icons/settings/settings-rig.d.ts +41 -0
- package/dist/icons/settings/settings-rig.js +64 -0
- package/dist/icons/share/share-icon.d.ts +5 -0
- package/dist/icons/share/share-icon.js +9 -0
- package/dist/icons/share/share-rig.d.ts +80 -0
- package/dist/icons/share/share-rig.js +114 -0
- package/dist/icons/shopping-bag/shopping-bag-icon.d.ts +5 -0
- package/dist/icons/shopping-bag/shopping-bag-icon.js +9 -0
- package/dist/icons/shopping-bag/shopping-bag-rig.d.ts +92 -0
- package/dist/icons/shopping-bag/shopping-bag-rig.js +139 -0
- package/dist/icons/shopping-cart/shopping-cart-icon.d.ts +5 -0
- package/dist/icons/shopping-cart/shopping-cart-icon.js +9 -0
- package/dist/icons/shopping-cart/shopping-cart-rig.d.ts +72 -0
- package/dist/icons/shopping-cart/shopping-cart-rig.js +111 -0
- package/dist/icons/sliders/sliders-icon.d.ts +5 -0
- package/dist/icons/sliders/sliders-icon.js +9 -0
- package/dist/icons/sliders/sliders-rig.d.ts +156 -0
- package/dist/icons/sliders/sliders-rig.js +231 -0
- package/dist/icons/sun/sun-icon.d.ts +5 -0
- package/dist/icons/sun/sun-icon.js +9 -0
- package/dist/icons/sun/sun-rig.d.ts +290 -0
- package/dist/icons/sun/sun-rig.js +401 -0
- package/dist/icons/terminal/terminal-icon.d.ts +5 -0
- package/dist/icons/terminal/terminal-icon.js +9 -0
- package/dist/icons/terminal/terminal-rig.d.ts +71 -0
- package/dist/icons/terminal/terminal-rig.js +102 -0
- package/dist/icons/timer/timer-icon.d.ts +5 -0
- package/dist/icons/timer/timer-icon.js +9 -0
- package/dist/icons/timer/timer-rig.d.ts +50 -0
- package/dist/icons/timer/timer-rig.js +72 -0
- package/dist/icons/truck/truck-icon.d.ts +5 -0
- package/dist/icons/truck/truck-icon.js +9 -0
- package/dist/icons/truck/truck-rig.d.ts +184 -0
- package/dist/icons/truck/truck-rig.js +272 -0
- package/dist/icons/upload/upload-icon.d.ts +5 -0
- package/dist/icons/upload/upload-icon.js +9 -0
- package/dist/icons/upload/upload-rig.d.ts +99 -0
- package/dist/icons/upload/upload-rig.js +124 -0
- package/dist/icons/user/user-icon.d.ts +5 -0
- package/dist/icons/user/user-icon.js +9 -0
- package/dist/icons/user/user-rig.d.ts +45 -0
- package/dist/icons/user/user-rig.js +66 -0
- package/dist/icons/users/users-icon.d.ts +5 -0
- package/dist/icons/users/users-icon.js +9 -0
- package/dist/icons/users/users-rig.d.ts +76 -0
- package/dist/icons/users/users-rig.js +113 -0
- package/dist/icons/video/video-icon.d.ts +5 -0
- package/dist/icons/video/video-icon.js +9 -0
- package/dist/icons/video/video-rig.d.ts +62 -0
- package/dist/icons/video/video-rig.js +84 -0
- package/dist/icons/volume/volume-icon.d.ts +5 -0
- package/dist/icons/volume/volume-icon.js +9 -0
- package/dist/icons/volume/volume-rig.d.ts +82 -0
- package/dist/icons/volume/volume-rig.js +120 -0
- package/dist/icons/wallet/wallet-icon.d.ts +5 -0
- package/dist/icons/wallet/wallet-icon.js +9 -0
- package/dist/icons/wallet/wallet-rig.d.ts +63 -0
- package/dist/icons/wallet/wallet-rig.js +90 -0
- package/dist/icons/wifi/wifi-icon.d.ts +5 -0
- package/dist/icons/wifi/wifi-icon.js +9 -0
- package/dist/icons/wifi/wifi-rig.d.ts +189 -0
- package/dist/icons/wifi/wifi-rig.js +260 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.js +72 -0
- package/dist/shared/articulated-icon.d.ts +7 -0
- package/dist/shared/articulated-icon.js +49 -0
- package/dist/shared/articulation.d.ts +62 -0
- package/dist/shared/articulation.js +85 -0
- package/dist/shared/icon-colors.d.ts +72 -0
- package/dist/shared/use-icon-motion.d.ts +1 -1
- package/dist/shared/use-icon-motion.js +4 -3
- package/package.json +361 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
export const plusStates = ['idle', 'hover', 'pressed'];
|
|
2
|
+
// Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
|
|
3
|
+
// Add action: horizontal compression leads, the vertical arm follows, then the cross springs open once. It remains a plus throughout.
|
|
4
|
+
export const plusArt = {
|
|
5
|
+
name: 'plus',
|
|
6
|
+
parts: [
|
|
7
|
+
{
|
|
8
|
+
name: 'horizontal',
|
|
9
|
+
paths: ['M5 12h14'],
|
|
10
|
+
poses: [
|
|
11
|
+
{},
|
|
12
|
+
{
|
|
13
|
+
scaleX: 1.22,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
scaleX: 0.58,
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
pivot: [12, 12],
|
|
20
|
+
gestures: [
|
|
21
|
+
null,
|
|
22
|
+
{
|
|
23
|
+
duration: 0.8,
|
|
24
|
+
repeatAfter: 1.8,
|
|
25
|
+
loop: false,
|
|
26
|
+
frames: [
|
|
27
|
+
{
|
|
28
|
+
at: 0,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
at: 0.22,
|
|
32
|
+
scaleX: 0.1,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
at: 0.54,
|
|
36
|
+
scaleX: -0.08,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
at: 1,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
duration: 0.9,
|
|
45
|
+
repeatAfter: 1.9,
|
|
46
|
+
loop: false,
|
|
47
|
+
frames: [
|
|
48
|
+
{
|
|
49
|
+
at: 0,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
at: 0.17,
|
|
53
|
+
scaleX: -0.16,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
at: 0.44,
|
|
57
|
+
scaleX: 0.25,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
at: 0.74,
|
|
61
|
+
scaleX: -0.04,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
at: 1,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'vertical',
|
|
72
|
+
paths: ['M12 5v14'],
|
|
73
|
+
poses: [
|
|
74
|
+
{},
|
|
75
|
+
{
|
|
76
|
+
scaleY: 1.22,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
scaleY: 0.58,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
pivot: [12, 12],
|
|
83
|
+
gestures: [
|
|
84
|
+
null,
|
|
85
|
+
{
|
|
86
|
+
duration: 0.8,
|
|
87
|
+
repeatAfter: 1.8,
|
|
88
|
+
loop: false,
|
|
89
|
+
frames: [
|
|
90
|
+
{
|
|
91
|
+
at: 0,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
at: 0.18,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
at: 0.43,
|
|
98
|
+
scaleY: 0.1,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
at: 0.66,
|
|
102
|
+
scaleY: -0.06,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
at: 1,
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
duration: 0.9,
|
|
111
|
+
repeatAfter: 1.9,
|
|
112
|
+
loop: false,
|
|
113
|
+
frames: [
|
|
114
|
+
{
|
|
115
|
+
at: 0,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
at: 0.28,
|
|
119
|
+
scaleY: -0.14,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
at: 0.6,
|
|
123
|
+
scaleY: 0.22,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
at: 0.84,
|
|
127
|
+
scaleY: -0.03,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
at: 1,
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
};
|
|
@@ -4,22 +4,23 @@ import { memo, useCallback, useRef } from 'react';
|
|
|
4
4
|
import { motion, useTransform } from 'motion/react';
|
|
5
5
|
import { usePoseWeight, useBehaviorClock, useActionProgress } from "../../shared/use-icon-motion.js";
|
|
6
6
|
import { useMotionPreference } from "../../shared/use-motion-preference.js";
|
|
7
|
-
import { REPLACE_SOURCE, REPLACE_TARGET, sampleReplace } from "./replace-rig.js";
|
|
7
|
+
import { REPLACE_SOURCE, REPLACE_TARGET, REPLACE_ARROW_LENGTH, REPLACE_CHECK_LENGTH, sampleReplace, } from "./replace-rig.js";
|
|
8
8
|
export { replaceStates } from "./replace-rig.js";
|
|
9
|
-
const ORIGIN = { originX: '0px', originY: '0px', transformBox: 'view-box' };
|
|
10
9
|
export const ReplaceIcon = memo(function ReplaceIcon({ state = 'idle', size = 24, color = 'currentColor', accentColor = 'currentColor', strokeWidth = 1.65, speed = 1, alive = false, className, }) {
|
|
11
10
|
const reduced = useMotionPreference(), element = useRef(null);
|
|
12
11
|
const pace = Number.isFinite(speed) ? Math.min(4, Math.max(0.1, speed)) : 1;
|
|
13
|
-
const
|
|
14
|
-
const performs = alive && !reduced && state
|
|
12
|
+
const replacing = usePoseWeight(state === 'replacing', pace, reduced), replaced = usePoseWeight(state === 'replaced', pace, reduced), error = usePoseWeight(state === 'error', pace, reduced);
|
|
13
|
+
const performs = alive && !reduced && state === 'replacing', life = usePoseWeight(performs, pace, reduced), time = useBehaviorClock(element, performs, pace, life);
|
|
15
14
|
const first = useRef(state !== 'replacing');
|
|
16
15
|
const canRestart = useCallback(() => {
|
|
17
16
|
const invisible = first.current || replacing.get() < 0.001;
|
|
18
17
|
first.current = false;
|
|
19
18
|
return invisible;
|
|
20
19
|
}, [replacing]);
|
|
21
|
-
const entry = useActionProgress(state === 'replacing', pace, reduced, 1.
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
20
|
+
const entry = useActionProgress(state === 'replacing', pace, reduced, 1.6, canRestart);
|
|
21
|
+
const canConfirm = useCallback(() => replaced.get() < 0.001, [replaced]);
|
|
22
|
+
const confirmation = useActionProgress(state === 'replaced', pace, reduced, 0.38, canConfirm);
|
|
23
|
+
const rig = useTransform(() => sampleReplace([0, replacing.get(), replaced.get(), error.get()], time.get(), life.get(), entry.get(), confirmation.get()));
|
|
24
|
+
const arrow = useTransform(rig, (r) => r.arrow), head = useTransform(rig, (r) => r.head), check = useTransform(rig, (r) => r.check), failure = useTransform(rig, (r) => r.error), status = useTransform(rig, (r) => r.status), arrowOffset = useTransform(rig, (r) => r.arrowOffset), arrowOpacity = useTransform(rig, (r) => r.arrowOpacity), headOpacity = useTransform(rig, (r) => r.headOpacity), checkOffset = useTransform(rig, (r) => r.checkOffset);
|
|
25
|
+
return (_jsx("svg", { ref: element, className: className, width: size, height: size, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false", pointerEvents: "none", style: { display: 'block', overflow: 'visible' }, children: _jsxs("g", { "data-layer": "replace-body", transform: "translate(12 12) scale(0.84) translate(-12 -12)", children: [_jsx("g", { "data-layer": "replace-source", children: _jsx("path", { "data-part": "source", d: REPLACE_SOURCE, stroke: color, strokeWidth: strokeWidth }) }), _jsxs("g", { "data-layer": "replace-target", children: [_jsx("path", { "data-part": "target", d: REPLACE_TARGET, stroke: color, strokeWidth: strokeWidth }), _jsx(motion.path, { "data-layer": "replace-check", d: status, opacity: check, strokeDasharray: REPLACE_CHECK_LENGTH, strokeDashoffset: checkOffset, stroke: accentColor, strokeWidth: Math.min(strokeWidth * 0.72, 1.05) }), _jsx(motion.path, { "data-layer": "replace-error", d: "M6.5 16v1.7M6.5 19h.01", opacity: failure, stroke: color, strokeWidth: Math.min(strokeWidth * 0.72, 1.05) })] }), _jsx(motion.path, { "data-layer": "replace-arrow", d: arrow, opacity: arrowOpacity, strokeDasharray: REPLACE_ARROW_LENGTH, strokeDashoffset: arrowOffset, stroke: color, strokeWidth: strokeWidth }), _jsx(motion.path, { "data-layer": "replace-head", d: head, opacity: headOpacity, stroke: color, strokeWidth: strokeWidth })] }) }));
|
|
25
26
|
});
|
|
@@ -2,13 +2,19 @@ export declare const replaceStates: readonly ["idle", "replacing", "replaced", "
|
|
|
2
2
|
export type ReplaceState = (typeof replaceStates)[number];
|
|
3
3
|
export declare const REPLACE_SOURCE = "M14 4a1 1 0 0 1 1-1M15 10a1 1 0 0 1-1-1M21 4a1 1 0 0 0-1-1M21 9a1 1 0 0 1-1 1";
|
|
4
4
|
export declare const REPLACE_TARGET = "M4 14h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1Z";
|
|
5
|
-
export declare
|
|
5
|
+
export declare const REPLACE_ARROW_LENGTH: number;
|
|
6
|
+
export declare const REPLACE_CHECK_LENGTH: number;
|
|
7
|
+
export declare function sampleReplace(weights: readonly number[], time?: number, alive?: number, entry?: number, confirmation?: number): {
|
|
6
8
|
body: string;
|
|
7
9
|
source: string;
|
|
8
10
|
target: string;
|
|
9
11
|
arrow: string;
|
|
10
12
|
head: string;
|
|
13
|
+
arrowOffset: number;
|
|
14
|
+
arrowOpacity: number;
|
|
15
|
+
headOpacity: number;
|
|
11
16
|
check: number;
|
|
12
17
|
error: number;
|
|
18
|
+
checkOffset: number;
|
|
13
19
|
status: string;
|
|
14
20
|
};
|
|
@@ -1,24 +1,42 @@
|
|
|
1
|
-
import { behaviorBeat } from "../../shared/behavior-curves.js";
|
|
2
1
|
export const replaceStates = ['idle', 'replacing', 'replaced', 'error'];
|
|
3
2
|
export const REPLACE_SOURCE = 'M14 4a1 1 0 0 1 1-1M15 10a1 1 0 0 1-1-1M21 4a1 1 0 0 0-1-1M21 9a1 1 0 0 1-1 1';
|
|
4
3
|
export const REPLACE_TARGET = 'M4 14h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1Z';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
// Two straight segments and a quarter-circle of radius 2.
|
|
5
|
+
export const REPLACE_ARROW_LENGTH = 7 + Math.PI;
|
|
6
|
+
export const REPLACE_CHECK_LENGTH = Math.hypot(1.3, 1.3) + Math.hypot(2.1, -2.5);
|
|
7
|
+
const clamp = (n) => Math.max(0, Math.min(1, n));
|
|
8
|
+
const ease = (n) => {
|
|
9
|
+
const x = clamp(n);
|
|
10
|
+
return x * x * x * (x * (x * 6 - 15) + 10);
|
|
11
|
+
};
|
|
12
|
+
// The arrow writes toward the destination, fades, then resets while hidden.
|
|
13
|
+
function transfer(time) {
|
|
14
|
+
const t = Math.max(0, time);
|
|
15
|
+
const draw = ease(t / 0.64) * (1 - ease((t - 1.2) / 0.28));
|
|
16
|
+
const opacity = ease(t / 0.12) * (1 - ease((t - 0.92) / 0.22));
|
|
17
|
+
const head = ease((t - 0.48) / 0.16) * (1 - ease((t - 0.92) / 0.22));
|
|
18
|
+
return { offset: REPLACE_ARROW_LENGTH * (1 - draw), opacity, head };
|
|
19
|
+
}
|
|
20
|
+
export function sampleReplace(weights, time = 0, alive = 0, entry = 1, confirmation = 1) {
|
|
21
|
+
const [, replacing, replaced, error] = weights.map(clamp);
|
|
22
|
+
const life = clamp(alive);
|
|
23
|
+
const one = transfer(clamp(entry) * 1.6);
|
|
24
|
+
const loop = transfer(((time % 1.6) + 1.6) % 1.6);
|
|
25
|
+
// Blend visible channels, never the accumulated clock/phase.
|
|
26
|
+
const mix = (a, b) => a + (b - a) * life;
|
|
27
|
+
const active = replacing * Math.max(1 - ease((entry - 0.92) / 0.08), life);
|
|
14
28
|
return {
|
|
15
29
|
body: 'translate(12px, 12px) scale(0.84) translate(-12px, -12px)',
|
|
16
|
-
source:
|
|
17
|
-
target:
|
|
18
|
-
arrow:
|
|
19
|
-
head:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
30
|
+
source: 'translate(0px, 0px)',
|
|
31
|
+
target: 'translate(0px, 0px)',
|
|
32
|
+
arrow: 'M10 3H8a2 2 0 0 0-2 2v5',
|
|
33
|
+
head: 'M3 7L6 10L9 7',
|
|
34
|
+
arrowOffset: active * mix(one.offset, loop.offset),
|
|
35
|
+
arrowOpacity: 1 - active + active * mix(one.opacity, loop.opacity),
|
|
36
|
+
headOpacity: 1 - active + active * mix(one.head, loop.head),
|
|
37
|
+
check: replaced * (1 - error),
|
|
38
|
+
error: error * (1 - replaced),
|
|
39
|
+
checkOffset: REPLACE_CHECK_LENGTH * (1 - ease(confirmation)),
|
|
40
|
+
status: 'M4.9 17.4L6.2 18.7L8.3 16.2',
|
|
23
41
|
};
|
|
24
42
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StatefulIconProps } from "../../shared/icon-types.js";
|
|
2
|
+
import { type SaveState } from "./save-rig.js";
|
|
3
|
+
export { saveStates, type SaveState } from "./save-rig.js";
|
|
4
|
+
export type SaveIconProps = StatefulIconProps<SaveState>;
|
|
5
|
+
export declare const SaveIcon: import("react").NamedExoticComponent<SaveIconProps>;
|
|
@@ -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 { saveArt, saveStates } from "./save-rig.js";
|
|
6
|
+
export { saveStates } from "./save-rig.js";
|
|
7
|
+
export const SaveIcon = memo(function SaveIcon(props) {
|
|
8
|
+
return _jsx(ArticulatedIcon, { art: saveArt, states: saveStates, ...props });
|
|
9
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export declare const saveStates: readonly ["idle", "saving", "saved"];
|
|
2
|
+
export type SaveState = (typeof saveStates)[number];
|
|
3
|
+
export declare const saveArt: {
|
|
4
|
+
readonly name: "save";
|
|
5
|
+
readonly parts: readonly [{
|
|
6
|
+
readonly name: "disk";
|
|
7
|
+
readonly paths: readonly ["M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z", "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", "M7 3v4a1 1 0 0 0 1 1h7"];
|
|
8
|
+
readonly poses: readonly [{}, {}, {}];
|
|
9
|
+
readonly pivot: readonly [12, 12];
|
|
10
|
+
readonly gestures: readonly [];
|
|
11
|
+
}, {
|
|
12
|
+
readonly name: "write";
|
|
13
|
+
readonly detail: true;
|
|
14
|
+
readonly paths: readonly ["M9 17L12 17L15 17"];
|
|
15
|
+
readonly poses: readonly [{
|
|
16
|
+
readonly opacity: 0;
|
|
17
|
+
}, {
|
|
18
|
+
readonly opacity: 1;
|
|
19
|
+
readonly scaleX: 0.7;
|
|
20
|
+
}, {
|
|
21
|
+
readonly opacity: 1;
|
|
22
|
+
}];
|
|
23
|
+
readonly pivot: readonly [12, 17];
|
|
24
|
+
readonly gestures: readonly [null, {
|
|
25
|
+
readonly duration: 1.05;
|
|
26
|
+
readonly repeatAfter: 1.9;
|
|
27
|
+
readonly loop: true;
|
|
28
|
+
readonly frames: readonly [{
|
|
29
|
+
readonly at: 0;
|
|
30
|
+
}, {
|
|
31
|
+
readonly at: 0.16;
|
|
32
|
+
readonly scaleX: -0.5;
|
|
33
|
+
}, {
|
|
34
|
+
readonly at: 0.65;
|
|
35
|
+
readonly scaleX: 0.3;
|
|
36
|
+
}, {
|
|
37
|
+
readonly at: 1;
|
|
38
|
+
}];
|
|
39
|
+
}];
|
|
40
|
+
readonly pathStates: readonly [readonly ["M9 17L12 17L15 17"], readonly ["M9 17L12 17L15 17"], readonly ["M9.7 16.7L11.4 18.3L14.6 15.7"]];
|
|
41
|
+
readonly accent: true;
|
|
42
|
+
}];
|
|
43
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const saveStates = ['idle', 'saving', 'saved'];
|
|
2
|
+
// Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
|
|
3
|
+
// A write stroke sweeps through the disk label and bends into a completion tick; the shell remains still.
|
|
4
|
+
export const saveArt = {
|
|
5
|
+
name: 'save',
|
|
6
|
+
parts: [
|
|
7
|
+
{
|
|
8
|
+
name: 'disk',
|
|
9
|
+
paths: [
|
|
10
|
+
'M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',
|
|
11
|
+
'M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7',
|
|
12
|
+
'M7 3v4a1 1 0 0 0 1 1h7',
|
|
13
|
+
],
|
|
14
|
+
poses: [{}, {}, {}],
|
|
15
|
+
pivot: [12, 12],
|
|
16
|
+
gestures: [],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'write',
|
|
20
|
+
detail: true,
|
|
21
|
+
paths: ['M9 17L12 17L15 17'],
|
|
22
|
+
poses: [
|
|
23
|
+
{
|
|
24
|
+
opacity: 0,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
opacity: 1,
|
|
28
|
+
scaleX: 0.7,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
opacity: 1,
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
pivot: [12, 17],
|
|
35
|
+
gestures: [
|
|
36
|
+
null,
|
|
37
|
+
{
|
|
38
|
+
duration: 1.05,
|
|
39
|
+
repeatAfter: 1.9,
|
|
40
|
+
loop: true,
|
|
41
|
+
frames: [
|
|
42
|
+
{
|
|
43
|
+
at: 0,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
at: 0.16,
|
|
47
|
+
scaleX: -0.5,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
at: 0.65,
|
|
51
|
+
scaleX: 0.3,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
at: 1,
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
pathStates: [['M9 17L12 17L15 17'], ['M9 17L12 17L15 17'], ['M9.7 16.7L11.4 18.3L14.6 15.7']],
|
|
60
|
+
accent: true,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StatefulIconProps } from "../../shared/icon-types.js";
|
|
2
|
+
import { type SendState } from "./send-rig.js";
|
|
3
|
+
export { sendStates, type SendState } from "./send-rig.js";
|
|
4
|
+
export type SendIconProps = StatefulIconProps<SendState>;
|
|
5
|
+
export declare const SendIcon: import("react").NamedExoticComponent<SendIconProps>;
|
|
@@ -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 { sendArt, sendStates } from "./send-rig.js";
|
|
6
|
+
export { sendStates } from "./send-rig.js";
|
|
7
|
+
export const SendIcon = memo(function SendIcon(props) {
|
|
8
|
+
return _jsx(ArticulatedIcon, { art: sendArt, states: sendStates, ...props });
|
|
9
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export declare const sendStates: readonly ["idle", "sending", "sent"];
|
|
2
|
+
export type SendState = (typeof sendStates)[number];
|
|
3
|
+
export declare const sendArt: {
|
|
4
|
+
readonly name: "send";
|
|
5
|
+
readonly parts: readonly [{
|
|
6
|
+
readonly name: "plane";
|
|
7
|
+
readonly paths: readonly ["M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z", "m21.854 2.147-10.94 10.939"];
|
|
8
|
+
readonly poses: readonly [{}, {
|
|
9
|
+
readonly x: -1;
|
|
10
|
+
readonly y: 1;
|
|
11
|
+
readonly angle: -12;
|
|
12
|
+
readonly scaleX: 0.83;
|
|
13
|
+
readonly scaleY: 0.83;
|
|
14
|
+
}, {
|
|
15
|
+
readonly x: 4;
|
|
16
|
+
readonly y: -4;
|
|
17
|
+
readonly angle: 8;
|
|
18
|
+
readonly scaleX: 0.55;
|
|
19
|
+
readonly scaleY: 0.55;
|
|
20
|
+
}];
|
|
21
|
+
readonly pivot: readonly [12, 12];
|
|
22
|
+
readonly gestures: readonly [null, {
|
|
23
|
+
readonly duration: 1.2;
|
|
24
|
+
readonly repeatAfter: 2.6;
|
|
25
|
+
readonly loop: true;
|
|
26
|
+
readonly frames: readonly [{
|
|
27
|
+
readonly at: 0;
|
|
28
|
+
}, {
|
|
29
|
+
readonly at: 0.15;
|
|
30
|
+
readonly x: -0.7;
|
|
31
|
+
readonly y: 0.7;
|
|
32
|
+
readonly angle: -4;
|
|
33
|
+
}, {
|
|
34
|
+
readonly at: 0.6;
|
|
35
|
+
readonly x: 1.5;
|
|
36
|
+
readonly y: -1.5;
|
|
37
|
+
readonly angle: 10;
|
|
38
|
+
}, {
|
|
39
|
+
readonly at: 1;
|
|
40
|
+
}];
|
|
41
|
+
}];
|
|
42
|
+
}];
|
|
43
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export const sendStates = ['idle', 'sending', 'sent'];
|
|
2
|
+
// Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
|
|
3
|
+
// The paper plane banks and draws back before a diagonal departure; sent holds a smaller distant plane instead of a near-identical full-size outline.
|
|
4
|
+
export const sendArt = {
|
|
5
|
+
name: 'send',
|
|
6
|
+
parts: [
|
|
7
|
+
{
|
|
8
|
+
name: 'plane',
|
|
9
|
+
paths: [
|
|
10
|
+
'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',
|
|
11
|
+
'm21.854 2.147-10.94 10.939',
|
|
12
|
+
],
|
|
13
|
+
poses: [
|
|
14
|
+
{},
|
|
15
|
+
{
|
|
16
|
+
x: -1,
|
|
17
|
+
y: 1,
|
|
18
|
+
angle: -12,
|
|
19
|
+
scaleX: 0.83,
|
|
20
|
+
scaleY: 0.83,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
x: 4,
|
|
24
|
+
y: -4,
|
|
25
|
+
angle: 8,
|
|
26
|
+
scaleX: 0.55,
|
|
27
|
+
scaleY: 0.55,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
pivot: [12, 12],
|
|
31
|
+
gestures: [
|
|
32
|
+
null,
|
|
33
|
+
{
|
|
34
|
+
duration: 1.2,
|
|
35
|
+
repeatAfter: 2.6,
|
|
36
|
+
loop: true,
|
|
37
|
+
frames: [
|
|
38
|
+
{
|
|
39
|
+
at: 0,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
at: 0.15,
|
|
43
|
+
x: -0.7,
|
|
44
|
+
y: 0.7,
|
|
45
|
+
angle: -4,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
at: 0.6,
|
|
49
|
+
x: 1.5,
|
|
50
|
+
y: -1.5,
|
|
51
|
+
angle: 10,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
at: 1,
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StatefulIconProps } from "../../shared/icon-types.js";
|
|
2
|
+
import { type SettingsState } from "./settings-rig.js";
|
|
3
|
+
export { settingsStates, type SettingsState } from "./settings-rig.js";
|
|
4
|
+
export type SettingsIconProps = StatefulIconProps<SettingsState>;
|
|
5
|
+
export declare const SettingsIcon: import("react").NamedExoticComponent<SettingsIconProps>;
|
|
@@ -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 { settingsArt, settingsStates } from "./settings-rig.js";
|
|
6
|
+
export { settingsStates } from "./settings-rig.js";
|
|
7
|
+
export const SettingsIcon = memo(function SettingsIcon(props) {
|
|
8
|
+
return _jsx(ArticulatedIcon, { art: settingsArt, states: settingsStates, ...props });
|
|
9
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const settingsStates: readonly ["idle", "adjusting", "applied"];
|
|
2
|
+
export type SettingsState = (typeof settingsStates)[number];
|
|
3
|
+
export declare const settingsArt: {
|
|
4
|
+
readonly name: "settings";
|
|
5
|
+
readonly parts: readonly [{
|
|
6
|
+
readonly name: "gear";
|
|
7
|
+
readonly paths: readonly ["M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"];
|
|
8
|
+
readonly poses: readonly [{}, {
|
|
9
|
+
readonly angle: 24;
|
|
10
|
+
}, {
|
|
11
|
+
readonly angle: 45;
|
|
12
|
+
}];
|
|
13
|
+
readonly pivot: readonly [12, 12];
|
|
14
|
+
readonly gestures: readonly [null, {
|
|
15
|
+
readonly duration: 1.45;
|
|
16
|
+
readonly repeatAfter: 2.3;
|
|
17
|
+
readonly loop: true;
|
|
18
|
+
readonly frames: readonly [{
|
|
19
|
+
readonly at: 0;
|
|
20
|
+
}, {
|
|
21
|
+
readonly at: 0.12;
|
|
22
|
+
readonly angle: -12;
|
|
23
|
+
}, {
|
|
24
|
+
readonly at: 0.52;
|
|
25
|
+
readonly angle: 58;
|
|
26
|
+
}, {
|
|
27
|
+
readonly at: 0.78;
|
|
28
|
+
readonly angle: 58;
|
|
29
|
+
}, {
|
|
30
|
+
readonly at: 1;
|
|
31
|
+
}];
|
|
32
|
+
}];
|
|
33
|
+
}, {
|
|
34
|
+
readonly name: "hub";
|
|
35
|
+
readonly paths: readonly ["M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "M12 10.6L12 13.4"];
|
|
36
|
+
readonly poses: readonly [{}, {}, {}];
|
|
37
|
+
readonly pivot: readonly [12, 12];
|
|
38
|
+
readonly gestures: readonly [];
|
|
39
|
+
readonly pathStates: readonly [readonly ["M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "M12 10.6L12 13.4"], readonly ["M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "M10.6 12L13.4 12"], readonly ["M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "M11 11L13 13"]];
|
|
40
|
+
}];
|
|
41
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export const settingsStates = ['idle', 'adjusting', 'applied'];
|
|
2
|
+
// Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
|
|
3
|
+
// The cog takes up slack and ratchets around a stationary slotted axle; the slot records the applied setting without an added badge.
|
|
4
|
+
export const settingsArt = {
|
|
5
|
+
name: 'settings',
|
|
6
|
+
parts: [
|
|
7
|
+
{
|
|
8
|
+
name: 'gear',
|
|
9
|
+
paths: [
|
|
10
|
+
'M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915',
|
|
11
|
+
],
|
|
12
|
+
poses: [
|
|
13
|
+
{},
|
|
14
|
+
{
|
|
15
|
+
angle: 24,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
angle: 45,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
pivot: [12, 12],
|
|
22
|
+
gestures: [
|
|
23
|
+
null,
|
|
24
|
+
{
|
|
25
|
+
duration: 1.45,
|
|
26
|
+
repeatAfter: 2.3,
|
|
27
|
+
loop: true,
|
|
28
|
+
frames: [
|
|
29
|
+
{
|
|
30
|
+
at: 0,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
at: 0.12,
|
|
34
|
+
angle: -12,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
at: 0.52,
|
|
38
|
+
angle: 58,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
at: 0.78,
|
|
42
|
+
angle: 58,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
at: 1,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'hub',
|
|
53
|
+
paths: ['M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0', 'M12 10.6L12 13.4'],
|
|
54
|
+
poses: [{}, {}, {}],
|
|
55
|
+
pivot: [12, 12],
|
|
56
|
+
gestures: [],
|
|
57
|
+
pathStates: [
|
|
58
|
+
['M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0', 'M12 10.6L12 13.4'],
|
|
59
|
+
['M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0', 'M10.6 12L13.4 12'],
|
|
60
|
+
['M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0', 'M11 11L13 13'],
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StatefulIconProps } from "../../shared/icon-types.js";
|
|
2
|
+
import { type ShareState } from "./share-rig.js";
|
|
3
|
+
export { shareStates, type ShareState } from "./share-rig.js";
|
|
4
|
+
export type ShareIconProps = StatefulIconProps<ShareState>;
|
|
5
|
+
export declare const ShareIcon: import("react").NamedExoticComponent<ShareIconProps>;
|
|
@@ -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 { shareArt, shareStates } from "./share-rig.js";
|
|
6
|
+
export { shareStates } from "./share-rig.js";
|
|
7
|
+
export const ShareIcon = memo(function ShareIcon(props) {
|
|
8
|
+
return _jsx(ArticulatedIcon, { art: shareArt, states: shareStates, ...props });
|
|
9
|
+
});
|