weasel-icons 0.3.0 → 0.4.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 (230) hide show
  1. package/README.md +14 -2
  2. package/THIRD_PARTY_NOTICES.md +2 -0
  3. package/dist/icons/app-window/app-window-icon.d.ts +5 -0
  4. package/dist/icons/app-window/app-window-icon.js +9 -0
  5. package/dist/icons/app-window/app-window-rig.d.ts +37 -0
  6. package/dist/icons/app-window/app-window-rig.js +54 -0
  7. package/dist/icons/archive/archive-icon.d.ts +5 -0
  8. package/dist/icons/archive/archive-icon.js +9 -0
  9. package/dist/icons/archive/archive-rig.d.ts +46 -0
  10. package/dist/icons/archive/archive-rig.js +68 -0
  11. package/dist/icons/at-sign/at-sign-icon.d.ts +5 -0
  12. package/dist/icons/at-sign/at-sign-icon.js +9 -0
  13. package/dist/icons/at-sign/at-sign-rig.d.ts +31 -0
  14. package/dist/icons/at-sign/at-sign-rig.js +47 -0
  15. package/dist/icons/bluetooth/bluetooth-icon.d.ts +5 -0
  16. package/dist/icons/bluetooth/bluetooth-icon.js +9 -0
  17. package/dist/icons/bluetooth/bluetooth-rig.d.ts +53 -0
  18. package/dist/icons/bluetooth/bluetooth-rig.js +86 -0
  19. package/dist/icons/brush/brush-icon.d.ts +5 -0
  20. package/dist/icons/brush/brush-icon.js +9 -0
  21. package/dist/icons/brush/brush-rig.d.ts +67 -0
  22. package/dist/icons/brush/brush-rig.js +103 -0
  23. package/dist/icons/cast/cast-icon.d.ts +5 -0
  24. package/dist/icons/cast/cast-icon.js +9 -0
  25. package/dist/icons/cast/cast-rig.d.ts +57 -0
  26. package/dist/icons/cast/cast-rig.js +88 -0
  27. package/dist/icons/chart-bar/chart-bar-icon.d.ts +5 -0
  28. package/dist/icons/chart-bar/chart-bar-icon.js +9 -0
  29. package/dist/icons/chart-bar/chart-bar-rig.d.ts +79 -0
  30. package/dist/icons/chart-bar/chart-bar-rig.js +124 -0
  31. package/dist/icons/chart-line/chart-line-icon.d.ts +5 -0
  32. package/dist/icons/chart-line/chart-line-icon.js +9 -0
  33. package/dist/icons/chart-line/chart-line-rig.d.ts +50 -0
  34. package/dist/icons/chart-line/chart-line-rig.js +73 -0
  35. package/dist/icons/chart-pie/chart-pie-icon.d.ts +5 -0
  36. package/dist/icons/chart-pie/chart-pie-icon.js +9 -0
  37. package/dist/icons/chart-pie/chart-pie-rig.d.ts +21 -0
  38. package/dist/icons/chart-pie/chart-pie-rig.js +31 -0
  39. package/dist/icons/columns/columns-icon.d.ts +5 -0
  40. package/dist/icons/columns/columns-icon.js +9 -0
  41. package/dist/icons/columns/columns-rig.d.ts +15 -0
  42. package/dist/icons/columns/columns-rig.js +19 -0
  43. package/dist/icons/crop/crop-icon.d.ts +5 -0
  44. package/dist/icons/crop/crop-icon.js +9 -0
  45. package/dist/icons/crop/crop-rig.d.ts +16 -0
  46. package/dist/icons/crop/crop-rig.js +28 -0
  47. package/dist/icons/eraser/eraser-icon.d.ts +5 -0
  48. package/dist/icons/eraser/eraser-icon.js +9 -0
  49. package/dist/icons/eraser/eraser-rig.d.ts +48 -0
  50. package/dist/icons/eraser/eraser-rig.js +76 -0
  51. package/dist/icons/fast-forward/fast-forward-icon.d.ts +5 -0
  52. package/dist/icons/fast-forward/fast-forward-icon.js +9 -0
  53. package/dist/icons/fast-forward/fast-forward-rig.d.ts +48 -0
  54. package/dist/icons/fast-forward/fast-forward-rig.js +78 -0
  55. package/dist/icons/file-check/file-check-icon.d.ts +5 -0
  56. package/dist/icons/file-check/file-check-icon.js +9 -0
  57. package/dist/icons/file-check/file-check-rig.d.ts +57 -0
  58. package/dist/icons/file-check/file-check-rig.js +89 -0
  59. package/dist/icons/file-plus/file-plus-icon.d.ts +5 -0
  60. package/dist/icons/file-plus/file-plus-icon.js +9 -0
  61. package/dist/icons/file-plus/file-plus-rig.d.ts +33 -0
  62. package/dist/icons/file-plus/file-plus-rig.js +56 -0
  63. package/dist/icons/fingerprint/fingerprint-icon.d.ts +5 -0
  64. package/dist/icons/fingerprint/fingerprint-icon.js +9 -0
  65. package/dist/icons/fingerprint/fingerprint-rig.d.ts +61 -0
  66. package/dist/icons/fingerprint/fingerprint-rig.js +102 -0
  67. package/dist/icons/flag/flag-icon.d.ts +5 -0
  68. package/dist/icons/flag/flag-icon.js +9 -0
  69. package/dist/icons/flag/flag-rig.d.ts +35 -0
  70. package/dist/icons/flag/flag-rig.js +54 -0
  71. package/dist/icons/folder-open/folder-open-icon.d.ts +5 -0
  72. package/dist/icons/folder-open/folder-open-icon.js +9 -0
  73. package/dist/icons/folder-open/folder-open-rig.d.ts +15 -0
  74. package/dist/icons/folder-open/folder-open-rig.js +23 -0
  75. package/dist/icons/folder-plus/folder-plus-icon.d.ts +5 -0
  76. package/dist/icons/folder-plus/folder-plus-icon.js +9 -0
  77. package/dist/icons/folder-plus/folder-plus-rig.d.ts +46 -0
  78. package/dist/icons/folder-plus/folder-plus-rig.js +72 -0
  79. package/dist/icons/forward/forward-icon.d.ts +5 -0
  80. package/dist/icons/forward/forward-icon.js +9 -0
  81. package/dist/icons/forward/forward-rig.d.ts +45 -0
  82. package/dist/icons/forward/forward-rig.js +73 -0
  83. package/dist/icons/gift/gift-icon.d.ts +5 -0
  84. package/dist/icons/gift/gift-icon.js +9 -0
  85. package/dist/icons/gift/gift-rig.d.ts +40 -0
  86. package/dist/icons/gift/gift-rig.js +64 -0
  87. package/dist/icons/hard-drive/hard-drive-icon.d.ts +5 -0
  88. package/dist/icons/hard-drive/hard-drive-icon.js +9 -0
  89. package/dist/icons/hard-drive/hard-drive-rig.d.ts +54 -0
  90. package/dist/icons/hard-drive/hard-drive-rig.js +88 -0
  91. package/dist/icons/headphones/headphones-icon.d.ts +5 -0
  92. package/dist/icons/headphones/headphones-icon.js +9 -0
  93. package/dist/icons/headphones/headphones-rig.d.ts +66 -0
  94. package/dist/icons/headphones/headphones-rig.js +102 -0
  95. package/dist/icons/highlighter/highlighter-icon.d.ts +5 -0
  96. package/dist/icons/highlighter/highlighter-icon.js +9 -0
  97. package/dist/icons/highlighter/highlighter-rig.d.ts +37 -0
  98. package/dist/icons/highlighter/highlighter-rig.js +57 -0
  99. package/dist/icons/inbox/inbox-icon.d.ts +5 -0
  100. package/dist/icons/inbox/inbox-icon.js +9 -0
  101. package/dist/icons/inbox/inbox-rig.d.ts +48 -0
  102. package/dist/icons/inbox/inbox-rig.js +73 -0
  103. package/dist/icons/kanban/kanban-icon.d.ts +5 -0
  104. package/dist/icons/kanban/kanban-icon.js +9 -0
  105. package/dist/icons/kanban/kanban-rig.d.ts +19 -0
  106. package/dist/icons/kanban/kanban-rig.js +27 -0
  107. package/dist/icons/monitor/monitor-icon.d.ts +5 -0
  108. package/dist/icons/monitor/monitor-icon.js +9 -0
  109. package/dist/icons/monitor/monitor-rig.d.ts +42 -0
  110. package/dist/icons/monitor/monitor-rig.js +67 -0
  111. package/dist/icons/panel-left/panel-left-icon.d.ts +5 -0
  112. package/dist/icons/panel-left/panel-left-icon.js +9 -0
  113. package/dist/icons/panel-left/panel-left-rig.d.ts +15 -0
  114. package/dist/icons/panel-left/panel-left-rig.js +19 -0
  115. package/dist/icons/panel-right/panel-right-icon.d.ts +5 -0
  116. package/dist/icons/panel-right/panel-right-icon.js +9 -0
  117. package/dist/icons/panel-right/panel-right-rig.d.ts +15 -0
  118. package/dist/icons/panel-right/panel-right-rig.js +19 -0
  119. package/dist/icons/paperclip/paperclip-icon.d.ts +5 -0
  120. package/dist/icons/paperclip/paperclip-icon.js +9 -0
  121. package/dist/icons/paperclip/paperclip-rig.d.ts +28 -0
  122. package/dist/icons/paperclip/paperclip-rig.js +52 -0
  123. package/dist/icons/picture-in-picture/picture-in-picture-icon.d.ts +5 -0
  124. package/dist/icons/picture-in-picture/picture-in-picture-icon.js +9 -0
  125. package/dist/icons/picture-in-picture/picture-in-picture-rig.d.ts +21 -0
  126. package/dist/icons/picture-in-picture/picture-in-picture-rig.js +29 -0
  127. package/dist/icons/power/power-icon.d.ts +5 -0
  128. package/dist/icons/power/power-icon.js +9 -0
  129. package/dist/icons/power/power-rig.d.ts +36 -0
  130. package/dist/icons/power/power-rig.js +56 -0
  131. package/dist/icons/printer/printer-icon.d.ts +5 -0
  132. package/dist/icons/printer/printer-icon.js +9 -0
  133. package/dist/icons/printer/printer-rig.d.ts +55 -0
  134. package/dist/icons/printer/printer-rig.js +82 -0
  135. package/dist/icons/radio/radio-icon.d.ts +5 -0
  136. package/dist/icons/radio/radio-icon.js +9 -0
  137. package/dist/icons/radio/radio-rig.d.ts +53 -0
  138. package/dist/icons/radio/radio-rig.js +83 -0
  139. package/dist/icons/receipt/receipt-icon.d.ts +5 -0
  140. package/dist/icons/receipt/receipt-icon.js +9 -0
  141. package/dist/icons/receipt/receipt-rig.d.ts +65 -0
  142. package/dist/icons/receipt/receipt-rig.js +110 -0
  143. package/dist/icons/redo/redo-icon.d.ts +5 -0
  144. package/dist/icons/redo/redo-icon.js +9 -0
  145. package/dist/icons/redo/redo-rig.d.ts +28 -0
  146. package/dist/icons/redo/redo-rig.js +53 -0
  147. package/dist/icons/repeat/repeat-icon.d.ts +5 -0
  148. package/dist/icons/repeat/repeat-icon.js +9 -0
  149. package/dist/icons/repeat/repeat-rig.d.ts +35 -0
  150. package/dist/icons/repeat/repeat-rig.js +60 -0
  151. package/dist/icons/reply/reply-icon.d.ts +5 -0
  152. package/dist/icons/reply/reply-icon.js +9 -0
  153. package/dist/icons/reply/reply-rig.d.ts +45 -0
  154. package/dist/icons/reply/reply-rig.js +73 -0
  155. package/dist/icons/rewind/rewind-icon.d.ts +5 -0
  156. package/dist/icons/rewind/rewind-icon.js +9 -0
  157. package/dist/icons/rewind/rewind-rig.d.ts +48 -0
  158. package/dist/icons/rewind/rewind-rig.js +78 -0
  159. package/dist/icons/rows/rows-icon.d.ts +5 -0
  160. package/dist/icons/rows/rows-icon.js +9 -0
  161. package/dist/icons/rows/rows-rig.d.ts +15 -0
  162. package/dist/icons/rows/rows-rig.js +19 -0
  163. package/dist/icons/scan-face/scan-face-icon.d.ts +5 -0
  164. package/dist/icons/scan-face/scan-face-icon.js +9 -0
  165. package/dist/icons/scan-face/scan-face-rig.d.ts +50 -0
  166. package/dist/icons/scan-face/scan-face-rig.js +82 -0
  167. package/dist/icons/scan-qr/scan-qr-icon.d.ts +5 -0
  168. package/dist/icons/scan-qr/scan-qr-icon.js +9 -0
  169. package/dist/icons/scan-qr/scan-qr-rig.d.ts +50 -0
  170. package/dist/icons/scan-qr/scan-qr-rig.js +87 -0
  171. package/dist/icons/scissors/scissors-icon.d.ts +5 -0
  172. package/dist/icons/scissors/scissors-icon.js +9 -0
  173. package/dist/icons/scissors/scissors-rig.d.ts +52 -0
  174. package/dist/icons/scissors/scissors-rig.js +76 -0
  175. package/dist/icons/shuffle/shuffle-icon.d.ts +5 -0
  176. package/dist/icons/shuffle/shuffle-icon.js +9 -0
  177. package/dist/icons/shuffle/shuffle-rig.d.ts +32 -0
  178. package/dist/icons/shuffle/shuffle-rig.js +56 -0
  179. package/dist/icons/skip-back/skip-back-icon.d.ts +5 -0
  180. package/dist/icons/skip-back/skip-back-icon.js +9 -0
  181. package/dist/icons/skip-back/skip-back-rig.d.ts +31 -0
  182. package/dist/icons/skip-back/skip-back-rig.js +53 -0
  183. package/dist/icons/skip-forward/skip-forward-icon.d.ts +5 -0
  184. package/dist/icons/skip-forward/skip-forward-icon.js +9 -0
  185. package/dist/icons/skip-forward/skip-forward-rig.d.ts +31 -0
  186. package/dist/icons/skip-forward/skip-forward-rig.js +53 -0
  187. package/dist/icons/smartphone/smartphone-icon.d.ts +5 -0
  188. package/dist/icons/smartphone/smartphone-icon.js +9 -0
  189. package/dist/icons/smartphone/smartphone-rig.d.ts +39 -0
  190. package/dist/icons/smartphone/smartphone-rig.js +57 -0
  191. package/dist/icons/table/table-icon.d.ts +5 -0
  192. package/dist/icons/table/table-icon.js +9 -0
  193. package/dist/icons/table/table-rig.d.ts +18 -0
  194. package/dist/icons/table/table-rig.js +26 -0
  195. package/dist/icons/tag/tag-icon.d.ts +5 -0
  196. package/dist/icons/tag/tag-icon.js +9 -0
  197. package/dist/icons/tag/tag-rig.d.ts +27 -0
  198. package/dist/icons/tag/tag-rig.js +42 -0
  199. package/dist/icons/thumbs-down/thumbs-down-icon.d.ts +5 -0
  200. package/dist/icons/thumbs-down/thumbs-down-icon.js +9 -0
  201. package/dist/icons/thumbs-down/thumbs-down-rig.d.ts +30 -0
  202. package/dist/icons/thumbs-down/thumbs-down-rig.js +53 -0
  203. package/dist/icons/thumbs-up/thumbs-up-icon.d.ts +5 -0
  204. package/dist/icons/thumbs-up/thumbs-up-icon.js +9 -0
  205. package/dist/icons/thumbs-up/thumbs-up-rig.d.ts +33 -0
  206. package/dist/icons/thumbs-up/thumbs-up-rig.js +57 -0
  207. package/dist/icons/ticket/ticket-icon.d.ts +5 -0
  208. package/dist/icons/ticket/ticket-icon.js +9 -0
  209. package/dist/icons/ticket/ticket-rig.d.ts +30 -0
  210. package/dist/icons/ticket/ticket-rig.js +43 -0
  211. package/dist/icons/trending-up/trending-up-icon.d.ts +5 -0
  212. package/dist/icons/trending-up/trending-up-icon.js +9 -0
  213. package/dist/icons/trending-up/trending-up-rig.d.ts +44 -0
  214. package/dist/icons/trending-up/trending-up-rig.js +68 -0
  215. package/dist/icons/undo/undo-icon.d.ts +5 -0
  216. package/dist/icons/undo/undo-icon.js +9 -0
  217. package/dist/icons/undo/undo-rig.d.ts +28 -0
  218. package/dist/icons/undo/undo-rig.js +53 -0
  219. package/dist/icons/user-minus/user-minus-icon.d.ts +5 -0
  220. package/dist/icons/user-minus/user-minus-icon.js +9 -0
  221. package/dist/icons/user-minus/user-minus-rig.d.ts +31 -0
  222. package/dist/icons/user-minus/user-minus-rig.js +51 -0
  223. package/dist/icons/user-plus/user-plus-icon.d.ts +5 -0
  224. package/dist/icons/user-plus/user-plus-icon.js +9 -0
  225. package/dist/icons/user-plus/user-plus-rig.d.ts +56 -0
  226. package/dist/icons/user-plus/user-plus-rig.js +85 -0
  227. package/dist/index.d.ts +56 -0
  228. package/dist/index.js +56 -0
  229. package/dist/shared/icon-colors.d.ts +56 -0
  230. package/package.json +281 -1
@@ -0,0 +1,73 @@
1
+ export const inboxStates = ['empty', 'receiving', 'received'];
2
+ // Inbox arrival status. A message descends toward the tray; a short line remains inside the pocket.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const inboxArt = {
5
+ name: 'inbox',
6
+ parts: [
7
+ {
8
+ name: 'tray',
9
+ paths: [
10
+ 'M22 12 16 12 14 15 10 15 8 12 2 12',
11
+ 'M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z',
12
+ ],
13
+ poses: [{}, {}, {}],
14
+ },
15
+ {
16
+ name: 'message',
17
+ paths: ['M8 5h8v4H8Z'],
18
+ poses: [
19
+ {
20
+ opacity: 0,
21
+ },
22
+ {},
23
+ {
24
+ opacity: 0,
25
+ y: 5,
26
+ },
27
+ ],
28
+ gestures: [
29
+ null,
30
+ {
31
+ duration: 0.9,
32
+ repeatAfter: 1.5,
33
+ loop: false,
34
+ frames: [
35
+ {
36
+ at: 0,
37
+ y: -2,
38
+ opacity: -1,
39
+ },
40
+ {
41
+ at: 0.3,
42
+ y: -1,
43
+ },
44
+ {
45
+ at: 0.8,
46
+ y: 2,
47
+ },
48
+ {
49
+ at: 1,
50
+ y: 2,
51
+ },
52
+ ],
53
+ },
54
+ null,
55
+ ],
56
+ detail: true,
57
+ },
58
+ {
59
+ name: 'received',
60
+ paths: ['M10 18h4'],
61
+ poses: [
62
+ {
63
+ opacity: 0,
64
+ },
65
+ {
66
+ opacity: 0,
67
+ },
68
+ {},
69
+ ],
70
+ accent: true,
71
+ },
72
+ ],
73
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type KanbanState } from "./kanban-rig.js";
3
+ export { kanbanStates, type KanbanState } from "./kanban-rig.js";
4
+ export type KanbanIconProps = StatefulIconProps<KanbanState>;
5
+ export declare const KanbanIcon: import("react").NamedExoticComponent<KanbanIconProps>;
@@ -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 { kanbanArt, kanbanStates } from "./kanban-rig.js";
6
+ export { kanbanStates } from "./kanban-rig.js";
7
+ export const KanbanIcon = memo(function KanbanIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: kanbanArt, states: kanbanStates, ...props });
9
+ });
@@ -0,0 +1,19 @@
1
+ export declare const kanbanStates: readonly ["idle", "moving", "moved"];
2
+ export type KanbanState = (typeof kanbanStates)[number];
3
+ export declare const kanbanArt: {
4
+ readonly name: "kanban";
5
+ readonly parts: readonly [{
6
+ readonly name: "rails";
7
+ readonly paths: readonly ["M5 3H19Q21 3 21 5V19Q21 21 19 21H5Q3 21 3 19V5Q3 3 5 3Z", "M9 3v18M16 3v18"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ }, {
10
+ readonly name: "task";
11
+ readonly paths: readonly ["M4.5 8h3M4.5 11h2"];
12
+ readonly poses: readonly [{}, {
13
+ readonly x: 3;
14
+ }, {
15
+ readonly x: 7;
16
+ }];
17
+ readonly accent: true;
18
+ }];
19
+ };
@@ -0,0 +1,27 @@
1
+ export const kanbanStates = ['idle', 'moving', 'moved'];
2
+ // Task board column change. One task card crosses the stationary column dividers; it never rearranges the whole board.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const kanbanArt = {
5
+ name: 'kanban',
6
+ parts: [
7
+ {
8
+ name: 'rails',
9
+ paths: ['M5 3H19Q21 3 21 5V19Q21 21 19 21H5Q3 21 3 19V5Q3 3 5 3Z', 'M9 3v18M16 3v18'],
10
+ poses: [{}, {}, {}],
11
+ },
12
+ {
13
+ name: 'task',
14
+ paths: ['M4.5 8h3M4.5 11h2'],
15
+ poses: [
16
+ {},
17
+ {
18
+ x: 3,
19
+ },
20
+ {
21
+ x: 7,
22
+ },
23
+ ],
24
+ accent: true,
25
+ },
26
+ ],
27
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type MonitorState } from "./monitor-rig.js";
3
+ export { monitorStates, type MonitorState } from "./monitor-rig.js";
4
+ export type MonitorIconProps = StatefulIconProps<MonitorState>;
5
+ export declare const MonitorIcon: import("react").NamedExoticComponent<MonitorIconProps>;
@@ -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 { monitorArt, monitorStates } from "./monitor-rig.js";
6
+ export { monitorStates } from "./monitor-rig.js";
7
+ export const MonitorIcon = memo(function MonitorIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: monitorArt, states: monitorStates, ...props });
9
+ });
@@ -0,0 +1,42 @@
1
+ export declare const monitorStates: readonly ["standby", "waking", "awake"];
2
+ export type MonitorState = (typeof monitorStates)[number];
3
+ export declare const monitorArt: {
4
+ readonly name: "monitor";
5
+ readonly parts: readonly [{
6
+ readonly name: "display";
7
+ readonly paths: readonly ["M4 3H20Q22 3 22 5V15Q22 17 20 17H4Q2 17 2 15V5Q2 3 4 3Z", "M8 21L16 21", "M12 17L12 21"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ }, {
10
+ readonly name: "wake";
11
+ readonly paths: readonly ["M7 10h10"];
12
+ readonly poses: readonly [{
13
+ readonly opacity: 0;
14
+ }, {}, {
15
+ readonly y: -2;
16
+ }];
17
+ readonly pivot: readonly [12, 10];
18
+ readonly gestures: readonly [null, {
19
+ readonly duration: 0.65;
20
+ readonly repeatAfter: 1.5;
21
+ readonly loop: false;
22
+ readonly frames: readonly [{
23
+ readonly at: 0;
24
+ readonly scaleX: -0.9;
25
+ }, {
26
+ readonly at: 0.6;
27
+ }, {
28
+ readonly at: 1;
29
+ }];
30
+ }, null];
31
+ readonly detail: true;
32
+ }, {
33
+ readonly name: "content";
34
+ readonly paths: readonly ["M7 12h6"];
35
+ readonly poses: readonly [{
36
+ readonly opacity: 0;
37
+ }, {
38
+ readonly opacity: 0;
39
+ }, {}];
40
+ readonly detail: true;
41
+ }];
42
+ };
@@ -0,0 +1,67 @@
1
+ export const monitorStates = ['standby', 'waking', 'awake'];
2
+ // Display power status. A horizontal wake line opens into two content lines inside the stationary monitor.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const monitorArt = {
5
+ name: 'monitor',
6
+ parts: [
7
+ {
8
+ name: 'display',
9
+ paths: [
10
+ 'M4 3H20Q22 3 22 5V15Q22 17 20 17H4Q2 17 2 15V5Q2 3 4 3Z',
11
+ 'M8 21L16 21',
12
+ 'M12 17L12 21',
13
+ ],
14
+ poses: [{}, {}, {}],
15
+ },
16
+ {
17
+ name: 'wake',
18
+ paths: ['M7 10h10'],
19
+ poses: [
20
+ {
21
+ opacity: 0,
22
+ },
23
+ {},
24
+ {
25
+ y: -2,
26
+ },
27
+ ],
28
+ pivot: [12, 10],
29
+ gestures: [
30
+ null,
31
+ {
32
+ duration: 0.65,
33
+ repeatAfter: 1.5,
34
+ loop: false,
35
+ frames: [
36
+ {
37
+ at: 0,
38
+ scaleX: -0.9,
39
+ },
40
+ {
41
+ at: 0.6,
42
+ },
43
+ {
44
+ at: 1,
45
+ },
46
+ ],
47
+ },
48
+ null,
49
+ ],
50
+ detail: true,
51
+ },
52
+ {
53
+ name: 'content',
54
+ paths: ['M7 12h6'],
55
+ poses: [
56
+ {
57
+ opacity: 0,
58
+ },
59
+ {
60
+ opacity: 0,
61
+ },
62
+ {},
63
+ ],
64
+ detail: true,
65
+ },
66
+ ],
67
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type PanelLeftState } from "./panel-left-rig.js";
3
+ export { panelLeftStates, type PanelLeftState } from "./panel-left-rig.js";
4
+ export type PanelLeftIconProps = StatefulIconProps<PanelLeftState>;
5
+ export declare const PanelLeftIcon: import("react").NamedExoticComponent<PanelLeftIconProps>;
@@ -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 { panelLeftArt, panelLeftStates } from "./panel-left-rig.js";
6
+ export { panelLeftStates } from "./panel-left-rig.js";
7
+ export const PanelLeftIcon = memo(function PanelLeftIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: panelLeftArt, states: panelLeftStates, ...props });
9
+ });
@@ -0,0 +1,15 @@
1
+ export declare const panelLeftStates: readonly ["collapsed", "opening", "expanded"];
2
+ export type PanelLeftState = (typeof panelLeftStates)[number];
3
+ export declare const panelLeftArt: {
4
+ readonly name: "panel-left";
5
+ readonly parts: readonly [{
6
+ readonly name: "frame";
7
+ readonly paths: readonly ["M5 3H19Q21 3 21 5V19Q21 21 19 21H5Q3 21 3 19V5Q3 3 5 3Z"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ }, {
10
+ readonly name: "divider";
11
+ readonly paths: readonly ["M5 3v18"];
12
+ readonly poses: readonly [{}, {}, {}];
13
+ readonly pathStates: readonly [readonly ["M5 3v18"], readonly ["M7.0 3v18"], readonly ["M9 3v18"]];
14
+ }];
15
+ };
@@ -0,0 +1,19 @@
1
+ export const panelLeftStates = ['collapsed', 'opening', 'expanded'];
2
+ // Sidebar disclosure. The divider slides to reveal the sidebar without moving the frame.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const panelLeftArt = {
5
+ name: 'panel-left',
6
+ parts: [
7
+ {
8
+ name: 'frame',
9
+ paths: ['M5 3H19Q21 3 21 5V19Q21 21 19 21H5Q3 21 3 19V5Q3 3 5 3Z'],
10
+ poses: [{}, {}, {}],
11
+ },
12
+ {
13
+ name: 'divider',
14
+ paths: ['M5 3v18'],
15
+ poses: [{}, {}, {}],
16
+ pathStates: [['M5 3v18'], ['M7.0 3v18'], ['M9 3v18']],
17
+ },
18
+ ],
19
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type PanelRightState } from "./panel-right-rig.js";
3
+ export { panelRightStates, type PanelRightState } from "./panel-right-rig.js";
4
+ export type PanelRightIconProps = StatefulIconProps<PanelRightState>;
5
+ export declare const PanelRightIcon: import("react").NamedExoticComponent<PanelRightIconProps>;
@@ -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 { panelRightArt, panelRightStates } from "./panel-right-rig.js";
6
+ export { panelRightStates } from "./panel-right-rig.js";
7
+ export const PanelRightIcon = memo(function PanelRightIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: panelRightArt, states: panelRightStates, ...props });
9
+ });
@@ -0,0 +1,15 @@
1
+ export declare const panelRightStates: readonly ["collapsed", "opening", "expanded"];
2
+ export type PanelRightState = (typeof panelRightStates)[number];
3
+ export declare const panelRightArt: {
4
+ readonly name: "panel-right";
5
+ readonly parts: readonly [{
6
+ readonly name: "frame";
7
+ readonly paths: readonly ["M5 3H19Q21 3 21 5V19Q21 21 19 21H5Q3 21 3 19V5Q3 3 5 3Z"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ }, {
10
+ readonly name: "divider";
11
+ readonly paths: readonly ["M19 3v18"];
12
+ readonly poses: readonly [{}, {}, {}];
13
+ readonly pathStates: readonly [readonly ["M19 3v18"], readonly ["M17.0 3v18"], readonly ["M15 3v18"]];
14
+ }];
15
+ };
@@ -0,0 +1,19 @@
1
+ export const panelRightStates = ['collapsed', 'opening', 'expanded'];
2
+ // Sidebar disclosure. The divider slides to reveal the sidebar without moving the frame.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const panelRightArt = {
5
+ name: 'panel-right',
6
+ parts: [
7
+ {
8
+ name: 'frame',
9
+ paths: ['M5 3H19Q21 3 21 5V19Q21 21 19 21H5Q3 21 3 19V5Q3 3 5 3Z'],
10
+ poses: [{}, {}, {}],
11
+ },
12
+ {
13
+ name: 'divider',
14
+ paths: ['M19 3v18'],
15
+ poses: [{}, {}, {}],
16
+ pathStates: [['M19 3v18'], ['M17.0 3v18'], ['M15 3v18']],
17
+ },
18
+ ],
19
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type PaperclipState } from "./paperclip-rig.js";
3
+ export { paperclipStates, type PaperclipState } from "./paperclip-rig.js";
4
+ export type PaperclipIconProps = StatefulIconProps<PaperclipState>;
5
+ export declare const PaperclipIcon: import("react").NamedExoticComponent<PaperclipIconProps>;
@@ -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 { paperclipArt, paperclipStates } from "./paperclip-rig.js";
6
+ export { paperclipStates } from "./paperclip-rig.js";
7
+ export const PaperclipIcon = memo(function PaperclipIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: paperclipArt, states: paperclipStates, ...props });
9
+ });
@@ -0,0 +1,28 @@
1
+ export declare const paperclipStates: readonly ["idle", "attaching", "attached"];
2
+ export type PaperclipState = (typeof paperclipStates)[number];
3
+ export declare const paperclipArt: {
4
+ readonly name: "paperclip";
5
+ readonly parts: readonly [{
6
+ readonly name: "clip";
7
+ readonly paths: readonly ["M16 6 L7.586 14.586 C6.805 15.367 6.805 16.633 7.586 17.414 C8.367 18.195 9.633 18.195 10.414 17.414 L18.828 8.828 C20.391 7.266 20.391 4.734 18.828 3.172 C17.266 1.609 14.734 1.609 13.172 3.172 L4.793 11.723 C2.451 14.065 2.451 17.866 4.793 20.208 C7.136 22.55 10.935 22.55 13.278 20.208 L21.657 11.657"];
8
+ readonly pathOffsets: readonly [readonly [1.2, 0.4, 0.3, 0.2, 0.15, 0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
9
+ readonly poses: readonly [{}, {
10
+ readonly flex: 1;
11
+ }, {}];
12
+ readonly gestures: readonly [null, null, {
13
+ readonly duration: 0.8;
14
+ readonly repeatAfter: 1.6;
15
+ readonly loop: false;
16
+ readonly frames: readonly [{
17
+ readonly at: 0;
18
+ }, {
19
+ readonly at: 0.32;
20
+ readonly flex: -0.12;
21
+ }, {
22
+ readonly at: 0.7;
23
+ }, {
24
+ readonly at: 1;
25
+ }];
26
+ }];
27
+ }];
28
+ };
@@ -0,0 +1,52 @@
1
+ export const paperclipStates = ['idle', 'attaching', 'attached'];
2
+ // Only the free inner wire flexes open while an attachment is pending. Actual completion releases it with one small spring-back; the outer coil stays planted. No extra document or success tick.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const paperclipArt = {
5
+ name: 'paperclip',
6
+ parts: [
7
+ {
8
+ name: 'clip',
9
+ paths: [
10
+ 'M16 6 L7.586 14.586 C6.805 15.367 6.805 16.633 7.586 17.414 C8.367 18.195 9.633 18.195 10.414 17.414 L18.828 8.828 C20.391 7.266 20.391 4.734 18.828 3.172 C17.266 1.609 14.734 1.609 13.172 3.172 L4.793 11.723 C2.451 14.065 2.451 17.866 4.793 20.208 C7.136 22.55 10.935 22.55 13.278 20.208 L21.657 11.657',
11
+ ],
12
+ pathOffsets: [
13
+ [
14
+ 1.2, 0.4, 0.3, 0.2, 0.15, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
15
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
16
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
17
+ ],
18
+ ],
19
+ poses: [
20
+ {},
21
+ {
22
+ flex: 1,
23
+ },
24
+ {},
25
+ ],
26
+ gestures: [
27
+ null,
28
+ null,
29
+ {
30
+ duration: 0.8,
31
+ repeatAfter: 1.6,
32
+ loop: false,
33
+ frames: [
34
+ {
35
+ at: 0,
36
+ },
37
+ {
38
+ at: 0.32,
39
+ flex: -0.12,
40
+ },
41
+ {
42
+ at: 0.7,
43
+ },
44
+ {
45
+ at: 1,
46
+ },
47
+ ],
48
+ },
49
+ ],
50
+ },
51
+ ],
52
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type PictureInPictureState } from "./picture-in-picture-rig.js";
3
+ export { pictureInPictureStates, type PictureInPictureState } from "./picture-in-picture-rig.js";
4
+ export type PictureInPictureIconProps = StatefulIconProps<PictureInPictureState>;
5
+ export declare const PictureInPictureIcon: import("react").NamedExoticComponent<PictureInPictureIconProps>;
@@ -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 { pictureInPictureArt, pictureInPictureStates, } from "./picture-in-picture-rig.js";
6
+ export { pictureInPictureStates } from "./picture-in-picture-rig.js";
7
+ export const PictureInPictureIcon = memo(function PictureInPictureIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: pictureInPictureArt, states: pictureInPictureStates, ...props });
9
+ });
@@ -0,0 +1,21 @@
1
+ export declare const pictureInPictureStates: readonly ["idle", "detaching", "floating"];
2
+ export type PictureInPictureState = (typeof pictureInPictureStates)[number];
3
+ export declare const pictureInPictureArt: {
4
+ readonly name: "picture-in-picture";
5
+ readonly parts: readonly [{
6
+ readonly name: "screen";
7
+ readonly paths: readonly ["M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ }, {
10
+ readonly name: "player";
11
+ readonly paths: readonly ["M14 13H20Q22 13 22 15V18Q22 20 20 20H14Q12 20 12 18V15Q12 13 14 13Z"];
12
+ readonly poses: readonly [{
13
+ readonly x: -4;
14
+ readonly y: -4;
15
+ }, {
16
+ readonly x: -2;
17
+ readonly y: -2;
18
+ }, {}];
19
+ readonly accent: true;
20
+ }];
21
+ };
@@ -0,0 +1,29 @@
1
+ export const pictureInPictureStates = ['idle', 'detaching', 'floating'];
2
+ // Video picture-in-picture control. The small player separates diagonally from the main screen and holds its new position.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const pictureInPictureArt = {
5
+ name: 'picture-in-picture',
6
+ parts: [
7
+ {
8
+ name: 'screen',
9
+ paths: ['M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4'],
10
+ poses: [{}, {}, {}],
11
+ },
12
+ {
13
+ name: 'player',
14
+ paths: ['M14 13H20Q22 13 22 15V18Q22 20 20 20H14Q12 20 12 18V15Q12 13 14 13Z'],
15
+ poses: [
16
+ {
17
+ x: -4,
18
+ y: -4,
19
+ },
20
+ {
21
+ x: -2,
22
+ y: -2,
23
+ },
24
+ {},
25
+ ],
26
+ accent: true,
27
+ },
28
+ ],
29
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type PowerState } from "./power-rig.js";
3
+ export { powerStates, type PowerState } from "./power-rig.js";
4
+ export type PowerIconProps = StatefulIconProps<PowerState>;
5
+ export declare const PowerIcon: import("react").NamedExoticComponent<PowerIconProps>;
@@ -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 { powerArt, powerStates } from "./power-rig.js";
6
+ export { powerStates } from "./power-rig.js";
7
+ export const PowerIcon = memo(function PowerIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: powerArt, states: powerStates, ...props });
9
+ });
@@ -0,0 +1,36 @@
1
+ export declare const powerStates: readonly ["off", "starting", "on"];
2
+ export type PowerState = (typeof powerStates)[number];
3
+ export declare const powerArt: {
4
+ readonly name: "power";
5
+ readonly parts: readonly [{
6
+ readonly name: "stem";
7
+ readonly paths: readonly ["M12 2v10"];
8
+ readonly poses: readonly [{
9
+ readonly opacity: 0.5;
10
+ }, {
11
+ readonly y: 1.2;
12
+ }, {}];
13
+ }, {
14
+ readonly name: "ring";
15
+ readonly paths: readonly ["M18.4 6.6a9 9 0 1 1-12.77.04"];
16
+ readonly poses: readonly [{
17
+ readonly opacity: 0.35;
18
+ }, {
19
+ readonly opacity: 0.7;
20
+ }, {}];
21
+ readonly traceLength: 45;
22
+ readonly gestures: readonly [null, {
23
+ readonly duration: 0.9;
24
+ readonly repeatAfter: 1.5;
25
+ readonly loop: false;
26
+ readonly frames: readonly [{
27
+ readonly at: 0;
28
+ readonly draw: -0.65;
29
+ }, {
30
+ readonly at: 0.8;
31
+ }, {
32
+ readonly at: 1;
33
+ }];
34
+ }, null];
35
+ }];
36
+ };
@@ -0,0 +1,56 @@
1
+ export const powerStates = ['off', 'starting', 'on'];
2
+ // Power toggle status. The stem presses inward as the ring closes to full strength; on is a stable glyph.
3
+ // Adapted Lucide geometry; see THIRD_PARTY_NOTICES.md.
4
+ export const powerArt = {
5
+ name: 'power',
6
+ parts: [
7
+ {
8
+ name: 'stem',
9
+ paths: ['M12 2v10'],
10
+ poses: [
11
+ {
12
+ opacity: 0.5,
13
+ },
14
+ {
15
+ y: 1.2,
16
+ },
17
+ {},
18
+ ],
19
+ },
20
+ {
21
+ name: 'ring',
22
+ paths: ['M18.4 6.6a9 9 0 1 1-12.77.04'],
23
+ poses: [
24
+ {
25
+ opacity: 0.35,
26
+ },
27
+ {
28
+ opacity: 0.7,
29
+ },
30
+ {},
31
+ ],
32
+ traceLength: 45,
33
+ gestures: [
34
+ null,
35
+ {
36
+ duration: 0.9,
37
+ repeatAfter: 1.5,
38
+ loop: false,
39
+ frames: [
40
+ {
41
+ at: 0,
42
+ draw: -0.65,
43
+ },
44
+ {
45
+ at: 0.8,
46
+ },
47
+ {
48
+ at: 1,
49
+ },
50
+ ],
51
+ },
52
+ null,
53
+ ],
54
+ },
55
+ ],
56
+ };