weasel-icons 0.1.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.
Files changed (396) hide show
  1. package/README.md +93 -5
  2. package/THIRD_PARTY_NOTICES.md +17 -5
  3. package/dist/icons/alert/alert-icon.d.ts +6 -0
  4. package/dist/icons/alert/alert-icon.js +22 -0
  5. package/dist/icons/alert/alert-rig.d.ts +12 -0
  6. package/dist/icons/alert/alert-rig.js +25 -0
  7. package/dist/icons/arrow-down/arrow-down-icon.d.ts +5 -0
  8. package/dist/icons/arrow-down/arrow-down-icon.js +9 -0
  9. package/dist/icons/arrow-down/arrow-down-rig.d.ts +43 -0
  10. package/dist/icons/arrow-down/arrow-down-rig.js +64 -0
  11. package/dist/icons/arrow-left/arrow-left-icon.d.ts +5 -0
  12. package/dist/icons/arrow-left/arrow-left-icon.js +9 -0
  13. package/dist/icons/arrow-left/arrow-left-rig.d.ts +43 -0
  14. package/dist/icons/arrow-left/arrow-left-rig.js +64 -0
  15. package/dist/icons/arrow-right/arrow-right-icon.d.ts +5 -0
  16. package/dist/icons/arrow-right/arrow-right-icon.js +9 -0
  17. package/dist/icons/arrow-right/arrow-right-rig.d.ts +43 -0
  18. package/dist/icons/arrow-right/arrow-right-rig.js +64 -0
  19. package/dist/icons/arrow-up/arrow-up-icon.d.ts +5 -0
  20. package/dist/icons/arrow-up/arrow-up-icon.js +9 -0
  21. package/dist/icons/arrow-up/arrow-up-rig.d.ts +43 -0
  22. package/dist/icons/arrow-up/arrow-up-rig.js +64 -0
  23. package/dist/icons/badge-check/badge-check-icon.d.ts +5 -0
  24. package/dist/icons/badge-check/badge-check-icon.js +33 -0
  25. package/dist/icons/badge-check/badge-check-rig.d.ts +14 -0
  26. package/dist/icons/badge-check/badge-check-rig.js +36 -0
  27. package/dist/icons/bell/bell-icon.js +1 -1
  28. package/dist/icons/book-open/book-open-icon.d.ts +5 -0
  29. package/dist/icons/book-open/book-open-icon.js +9 -0
  30. package/dist/icons/book-open/book-open-rig.d.ts +65 -0
  31. package/dist/icons/book-open/book-open-rig.js +95 -0
  32. package/dist/icons/bookmark/bookmark-icon.d.ts +5 -0
  33. package/dist/icons/bookmark/bookmark-icon.js +9 -0
  34. package/dist/icons/bookmark/bookmark-rig.d.ts +43 -0
  35. package/dist/icons/bookmark/bookmark-rig.js +65 -0
  36. package/dist/icons/bulb/bulb-icon.d.ts +5 -0
  37. package/dist/icons/bulb/bulb-icon.js +25 -0
  38. package/dist/icons/bulb/bulb-rig.d.ts +13 -0
  39. package/dist/icons/bulb/bulb-rig.js +37 -0
  40. package/dist/icons/calendar/calendar-icon.d.ts +5 -0
  41. package/dist/icons/calendar/calendar-icon.js +9 -0
  42. package/dist/icons/calendar/calendar-rig.d.ts +67 -0
  43. package/dist/icons/calendar/calendar-rig.js +95 -0
  44. package/dist/icons/camera/camera-icon.d.ts +5 -0
  45. package/dist/icons/camera/camera-icon.js +9 -0
  46. package/dist/icons/camera/camera-rig.d.ts +58 -0
  47. package/dist/icons/camera/camera-rig.js +82 -0
  48. package/dist/icons/check/check-icon.d.ts +5 -0
  49. package/dist/icons/check/check-icon.js +26 -0
  50. package/dist/icons/check/check-rig.d.ts +6 -0
  51. package/dist/icons/check/check-rig.js +38 -0
  52. package/dist/icons/chevron-down/chevron-down-icon.d.ts +5 -0
  53. package/dist/icons/chevron-down/chevron-down-icon.js +9 -0
  54. package/dist/icons/chevron-down/chevron-down-rig.d.ts +48 -0
  55. package/dist/icons/chevron-down/chevron-down-rig.js +30 -0
  56. package/dist/icons/chevron-left/chevron-left-icon.d.ts +5 -0
  57. package/dist/icons/chevron-left/chevron-left-icon.js +9 -0
  58. package/dist/icons/chevron-left/chevron-left-rig.d.ts +34 -0
  59. package/dist/icons/chevron-left/chevron-left-rig.js +49 -0
  60. package/dist/icons/chevron-right/chevron-right-icon.d.ts +5 -0
  61. package/dist/icons/chevron-right/chevron-right-icon.js +9 -0
  62. package/dist/icons/chevron-right/chevron-right-rig.d.ts +34 -0
  63. package/dist/icons/chevron-right/chevron-right-rig.js +49 -0
  64. package/dist/icons/chevron-up/chevron-up-icon.d.ts +5 -0
  65. package/dist/icons/chevron-up/chevron-up-icon.js +9 -0
  66. package/dist/icons/chevron-up/chevron-up-rig.d.ts +48 -0
  67. package/dist/icons/chevron-up/chevron-up-rig.js +30 -0
  68. package/dist/icons/circle-help/circle-help-icon.d.ts +5 -0
  69. package/dist/icons/circle-help/circle-help-icon.js +9 -0
  70. package/dist/icons/circle-help/circle-help-rig.d.ts +45 -0
  71. package/dist/icons/circle-help/circle-help-rig.js +70 -0
  72. package/dist/icons/clapperboard/clapperboard-icon.d.ts +5 -0
  73. package/dist/icons/clapperboard/clapperboard-icon.js +18 -0
  74. package/dist/icons/clapperboard/clapperboard-rig.d.ts +12 -0
  75. package/dist/icons/clapperboard/clapperboard-rig.js +25 -0
  76. package/dist/icons/clipboard/clipboard-icon.d.ts +5 -0
  77. package/dist/icons/clipboard/clipboard-icon.js +9 -0
  78. package/dist/icons/clipboard/clipboard-rig.d.ts +69 -0
  79. package/dist/icons/clipboard/clipboard-rig.js +99 -0
  80. package/dist/icons/clock/clock-icon.d.ts +5 -0
  81. package/dist/icons/clock/clock-icon.js +9 -0
  82. package/dist/icons/clock/clock-rig.d.ts +40 -0
  83. package/dist/icons/clock/clock-rig.js +53 -0
  84. package/dist/icons/close/close-icon.d.ts +5 -0
  85. package/dist/icons/close/close-icon.js +27 -0
  86. package/dist/icons/close/close-rig.d.ts +10 -0
  87. package/dist/icons/close/close-rig.js +31 -0
  88. package/dist/icons/cloud/cloud-icon.d.ts +5 -0
  89. package/dist/icons/cloud/cloud-icon.js +9 -0
  90. package/dist/icons/cloud/cloud-rig.d.ts +74 -0
  91. package/dist/icons/cloud/cloud-rig.js +103 -0
  92. package/dist/icons/code/code-icon.d.ts +5 -0
  93. package/dist/icons/code/code-icon.js +9 -0
  94. package/dist/icons/code/code-rig.d.ts +104 -0
  95. package/dist/icons/code/code-rig.js +148 -0
  96. package/dist/icons/copy/copy-icon.d.ts +5 -0
  97. package/dist/icons/copy/copy-icon.js +31 -0
  98. package/dist/icons/copy/copy-rig.d.ts +13 -0
  99. package/dist/icons/copy/copy-rig.js +44 -0
  100. package/dist/icons/credit-card/credit-card-icon.d.ts +5 -0
  101. package/dist/icons/credit-card/credit-card-icon.js +9 -0
  102. package/dist/icons/credit-card/credit-card-rig.d.ts +88 -0
  103. package/dist/icons/credit-card/credit-card-rig.js +122 -0
  104. package/dist/icons/cursor/cursor-icon.d.ts +5 -0
  105. package/dist/icons/cursor/cursor-icon.js +32 -0
  106. package/dist/icons/cursor/cursor-rig.d.ts +21 -0
  107. package/dist/icons/cursor/cursor-rig.js +63 -0
  108. package/dist/icons/database/database-icon.d.ts +5 -0
  109. package/dist/icons/database/database-icon.js +9 -0
  110. package/dist/icons/database/database-rig.d.ts +61 -0
  111. package/dist/icons/database/database-rig.js +86 -0
  112. package/dist/icons/delete/delete-icon.d.ts +5 -0
  113. package/dist/icons/delete/delete-icon.js +25 -0
  114. package/dist/icons/delete/delete-rig.d.ts +15 -0
  115. package/dist/icons/delete/delete-rig.js +33 -0
  116. package/dist/icons/dog/dog-icon.js +1 -1
  117. package/dist/icons/download/download-icon.js +1 -1
  118. package/dist/icons/external-link/external-link-icon.d.ts +5 -0
  119. package/dist/icons/external-link/external-link-icon.js +9 -0
  120. package/dist/icons/external-link/external-link-rig.d.ts +45 -0
  121. package/dist/icons/external-link/external-link-rig.js +42 -0
  122. package/dist/icons/eye/eye-icon.d.ts +5 -0
  123. package/dist/icons/eye/eye-icon.js +27 -0
  124. package/dist/icons/eye/eye-rig.d.ts +9 -0
  125. package/dist/icons/eye/eye-rig.js +37 -0
  126. package/dist/icons/file/file-icon.d.ts +5 -0
  127. package/dist/icons/file/file-icon.js +9 -0
  128. package/dist/icons/file/file-rig.d.ts +53 -0
  129. package/dist/icons/file/file-rig.js +80 -0
  130. package/dist/icons/file-text/file-text-icon.d.ts +5 -0
  131. package/dist/icons/file-text/file-text-icon.js +9 -0
  132. package/dist/icons/file-text/file-text-rig.d.ts +93 -0
  133. package/dist/icons/file-text/file-text-rig.js +138 -0
  134. package/dist/icons/filter/filter-icon.d.ts +5 -0
  135. package/dist/icons/filter/filter-icon.js +9 -0
  136. package/dist/icons/filter/filter-rig.d.ts +72 -0
  137. package/dist/icons/filter/filter-rig.js +99 -0
  138. package/dist/icons/folder/folder-icon.d.ts +5 -0
  139. package/dist/icons/folder/folder-icon.js +9 -0
  140. package/dist/icons/folder/folder-rig.d.ts +20 -0
  141. package/dist/icons/folder/folder-rig.js +28 -0
  142. package/dist/icons/globe/globe-icon.d.ts +5 -0
  143. package/dist/icons/globe/globe-icon.js +9 -0
  144. package/dist/icons/globe/globe-rig.d.ts +40 -0
  145. package/dist/icons/globe/globe-rig.js +57 -0
  146. package/dist/icons/heart/heart-icon.js +1 -1
  147. package/dist/icons/heart/heart-rig.js +1 -1
  148. package/dist/icons/home/home-icon.d.ts +5 -0
  149. package/dist/icons/home/home-icon.js +9 -0
  150. package/dist/icons/home/home-rig.d.ts +49 -0
  151. package/dist/icons/home/home-rig.js +76 -0
  152. package/dist/icons/image/image-icon.d.ts +5 -0
  153. package/dist/icons/image/image-icon.js +9 -0
  154. package/dist/icons/image/image-rig.d.ts +70 -0
  155. package/dist/icons/image/image-rig.js +99 -0
  156. package/dist/icons/info/info-icon.d.ts +5 -0
  157. package/dist/icons/info/info-icon.js +9 -0
  158. package/dist/icons/info/info-rig.d.ts +48 -0
  159. package/dist/icons/info/info-rig.js +69 -0
  160. package/dist/icons/key/key-icon.d.ts +5 -0
  161. package/dist/icons/key/key-icon.js +9 -0
  162. package/dist/icons/key/key-rig.d.ts +50 -0
  163. package/dist/icons/key/key-rig.js +76 -0
  164. package/dist/icons/layers/layers-icon.d.ts +5 -0
  165. package/dist/icons/layers/layers-icon.js +9 -0
  166. package/dist/icons/layers/layers-rig.d.ts +147 -0
  167. package/dist/icons/layers/layers-rig.js +211 -0
  168. package/dist/icons/layout-dashboard/layout-dashboard-icon.d.ts +5 -0
  169. package/dist/icons/layout-dashboard/layout-dashboard-icon.js +9 -0
  170. package/dist/icons/layout-dashboard/layout-dashboard-rig.d.ts +194 -0
  171. package/dist/icons/layout-dashboard/layout-dashboard-rig.js +284 -0
  172. package/dist/icons/layout-grid/layout-grid-icon.d.ts +5 -0
  173. package/dist/icons/layout-grid/layout-grid-icon.js +9 -0
  174. package/dist/icons/layout-grid/layout-grid-rig.d.ts +103 -0
  175. package/dist/icons/layout-grid/layout-grid-rig.js +167 -0
  176. package/dist/icons/link/link-icon.d.ts +5 -0
  177. package/dist/icons/link/link-icon.js +30 -0
  178. package/dist/icons/link/link-rig.d.ts +13 -0
  179. package/dist/icons/link/link-rig.js +37 -0
  180. package/dist/icons/list/list-icon.d.ts +5 -0
  181. package/dist/icons/list/list-icon.js +9 -0
  182. package/dist/icons/list/list-rig.d.ts +165 -0
  183. package/dist/icons/list/list-rig.js +231 -0
  184. package/dist/icons/lock/lock-icon.d.ts +5 -0
  185. package/dist/icons/lock/lock-icon.js +9 -0
  186. package/dist/icons/lock/lock-rig.d.ts +42 -0
  187. package/dist/icons/lock/lock-rig.js +58 -0
  188. package/dist/icons/log-in/log-in-icon.d.ts +5 -0
  189. package/dist/icons/log-in/log-in-icon.js +9 -0
  190. package/dist/icons/log-in/log-in-rig.d.ts +39 -0
  191. package/dist/icons/log-in/log-in-rig.js +55 -0
  192. package/dist/icons/log-out/log-out-icon.d.ts +5 -0
  193. package/dist/icons/log-out/log-out-icon.js +9 -0
  194. package/dist/icons/log-out/log-out-rig.d.ts +39 -0
  195. package/dist/icons/log-out/log-out-rig.js +55 -0
  196. package/dist/icons/mail/mail-icon.d.ts +5 -0
  197. package/dist/icons/mail/mail-icon.js +9 -0
  198. package/dist/icons/mail/mail-rig.d.ts +20 -0
  199. package/dist/icons/mail/mail-rig.js +28 -0
  200. package/dist/icons/map-pin/map-pin-icon.d.ts +5 -0
  201. package/dist/icons/map-pin/map-pin-icon.js +9 -0
  202. package/dist/icons/map-pin/map-pin-rig.d.ts +118 -0
  203. package/dist/icons/map-pin/map-pin-rig.js +164 -0
  204. package/dist/icons/maximize/maximize-icon.d.ts +5 -0
  205. package/dist/icons/maximize/maximize-icon.js +9 -0
  206. package/dist/icons/maximize/maximize-rig.d.ts +190 -0
  207. package/dist/icons/maximize/maximize-rig.js +268 -0
  208. package/dist/icons/menu/menu-icon.d.ts +5 -0
  209. package/dist/icons/menu/menu-icon.js +9 -0
  210. package/dist/icons/menu/menu-rig.d.ts +41 -0
  211. package/dist/icons/menu/menu-rig.js +58 -0
  212. package/dist/icons/message-circle/message-circle-icon.d.ts +5 -0
  213. package/dist/icons/message-circle/message-circle-icon.js +9 -0
  214. package/dist/icons/message-circle/message-circle-rig.d.ts +99 -0
  215. package/dist/icons/message-circle/message-circle-rig.js +143 -0
  216. package/dist/icons/mic/mic-icon.d.ts +5 -0
  217. package/dist/icons/mic/mic-icon.js +9 -0
  218. package/dist/icons/mic/mic-rig.d.ts +67 -0
  219. package/dist/icons/mic/mic-rig.js +96 -0
  220. package/dist/icons/minimize/minimize-icon.d.ts +5 -0
  221. package/dist/icons/minimize/minimize-icon.js +9 -0
  222. package/dist/icons/minimize/minimize-rig.d.ts +190 -0
  223. package/dist/icons/minimize/minimize-rig.js +268 -0
  224. package/dist/icons/minus/minus-icon.d.ts +5 -0
  225. package/dist/icons/minus/minus-icon.js +9 -0
  226. package/dist/icons/minus/minus-rig.d.ts +31 -0
  227. package/dist/icons/minus/minus-rig.js +47 -0
  228. package/dist/icons/monkey/monkey-icon.js +1 -1
  229. package/dist/icons/moon/moon-icon.d.ts +5 -0
  230. package/dist/icons/moon/moon-icon.js +9 -0
  231. package/dist/icons/moon/moon-rig.d.ts +62 -0
  232. package/dist/icons/moon/moon-rig.js +87 -0
  233. package/dist/icons/more-horizontal/more-horizontal-icon.d.ts +5 -0
  234. package/dist/icons/more-horizontal/more-horizontal-icon.js +9 -0
  235. package/dist/icons/more-horizontal/more-horizontal-rig.d.ts +91 -0
  236. package/dist/icons/more-horizontal/more-horizontal-rig.js +141 -0
  237. package/dist/icons/more-vertical/more-vertical-icon.d.ts +5 -0
  238. package/dist/icons/more-vertical/more-vertical-icon.js +9 -0
  239. package/dist/icons/more-vertical/more-vertical-rig.d.ts +91 -0
  240. package/dist/icons/more-vertical/more-vertical-rig.js +141 -0
  241. package/dist/icons/music/music-icon.d.ts +5 -0
  242. package/dist/icons/music/music-icon.js +9 -0
  243. package/dist/icons/music/music-rig.d.ts +66 -0
  244. package/dist/icons/music/music-rig.js +95 -0
  245. package/dist/icons/package/package-icon.d.ts +5 -0
  246. package/dist/icons/package/package-icon.js +9 -0
  247. package/dist/icons/package/package-rig.d.ts +40 -0
  248. package/dist/icons/package/package-rig.js +60 -0
  249. package/dist/icons/pause/pause-icon.d.ts +5 -0
  250. package/dist/icons/pause/pause-icon.js +9 -0
  251. package/dist/icons/pause/pause-rig.d.ts +104 -0
  252. package/dist/icons/pause/pause-rig.js +147 -0
  253. package/dist/icons/pencil/pencil-icon.d.ts +5 -0
  254. package/dist/icons/pencil/pencil-icon.js +9 -0
  255. package/dist/icons/pencil/pencil-rig.d.ts +48 -0
  256. package/dist/icons/pencil/pencil-rig.js +68 -0
  257. package/dist/icons/phone/phone-icon.d.ts +5 -0
  258. package/dist/icons/phone/phone-icon.js +9 -0
  259. package/dist/icons/phone/phone-rig.d.ts +41 -0
  260. package/dist/icons/phone/phone-rig.js +60 -0
  261. package/dist/icons/play/play-icon.d.ts +5 -0
  262. package/dist/icons/play/play-icon.js +9 -0
  263. package/dist/icons/play/play-rig.d.ts +58 -0
  264. package/dist/icons/play/play-rig.js +80 -0
  265. package/dist/icons/plug/plug-icon.d.ts +5 -0
  266. package/dist/icons/plug/plug-icon.js +21 -0
  267. package/dist/icons/plug/plug-rig.d.ts +16 -0
  268. package/dist/icons/plug/plug-rig.js +29 -0
  269. package/dist/icons/plus/plus-icon.d.ts +5 -0
  270. package/dist/icons/plus/plus-icon.js +9 -0
  271. package/dist/icons/plus/plus-rig.d.ts +94 -0
  272. package/dist/icons/plus/plus-rig.js +137 -0
  273. package/dist/icons/refresh/refresh-icon.d.ts +5 -0
  274. package/dist/icons/refresh/refresh-icon.js +40 -0
  275. package/dist/icons/refresh/refresh-rig.d.ts +11 -0
  276. package/dist/icons/refresh/refresh-rig.js +30 -0
  277. package/dist/icons/replace/replace-icon.d.ts +5 -0
  278. package/dist/icons/replace/replace-icon.js +26 -0
  279. package/dist/icons/replace/replace-rig.d.ts +20 -0
  280. package/dist/icons/replace/replace-rig.js +42 -0
  281. package/dist/icons/rocket/rocket-icon.js +1 -1
  282. package/dist/icons/save/save-icon.d.ts +5 -0
  283. package/dist/icons/save/save-icon.js +9 -0
  284. package/dist/icons/save/save-rig.d.ts +43 -0
  285. package/dist/icons/save/save-rig.js +63 -0
  286. package/dist/icons/search/search-icon.js +1 -1
  287. package/dist/icons/send/send-icon.d.ts +5 -0
  288. package/dist/icons/send/send-icon.js +9 -0
  289. package/dist/icons/send/send-rig.d.ts +43 -0
  290. package/dist/icons/send/send-rig.js +61 -0
  291. package/dist/icons/settings/settings-icon.d.ts +5 -0
  292. package/dist/icons/settings/settings-icon.js +9 -0
  293. package/dist/icons/settings/settings-rig.d.ts +41 -0
  294. package/dist/icons/settings/settings-rig.js +64 -0
  295. package/dist/icons/share/share-icon.d.ts +5 -0
  296. package/dist/icons/share/share-icon.js +9 -0
  297. package/dist/icons/share/share-rig.d.ts +80 -0
  298. package/dist/icons/share/share-rig.js +114 -0
  299. package/dist/icons/shield/shield-icon.d.ts +5 -0
  300. package/dist/icons/shield/shield-icon.js +25 -0
  301. package/dist/icons/shield/shield-rig.d.ts +23 -0
  302. package/dist/icons/shield/shield-rig.js +42 -0
  303. package/dist/icons/ship/ship-icon.js +1 -1
  304. package/dist/icons/shopping-bag/shopping-bag-icon.d.ts +5 -0
  305. package/dist/icons/shopping-bag/shopping-bag-icon.js +9 -0
  306. package/dist/icons/shopping-bag/shopping-bag-rig.d.ts +92 -0
  307. package/dist/icons/shopping-bag/shopping-bag-rig.js +139 -0
  308. package/dist/icons/shopping-cart/shopping-cart-icon.d.ts +5 -0
  309. package/dist/icons/shopping-cart/shopping-cart-icon.js +9 -0
  310. package/dist/icons/shopping-cart/shopping-cart-rig.d.ts +72 -0
  311. package/dist/icons/shopping-cart/shopping-cart-rig.js +111 -0
  312. package/dist/icons/sliders/sliders-icon.d.ts +5 -0
  313. package/dist/icons/sliders/sliders-icon.js +9 -0
  314. package/dist/icons/sliders/sliders-rig.d.ts +156 -0
  315. package/dist/icons/sliders/sliders-rig.js +231 -0
  316. package/dist/icons/sparkle/sparkle-icon.d.ts +5 -0
  317. package/dist/icons/sparkle/sparkle-icon.js +27 -0
  318. package/dist/icons/sparkle/sparkle-rig.d.ts +8 -0
  319. package/dist/icons/sparkle/sparkle-rig.js +6 -0
  320. package/dist/icons/sparkles/sparkles-icon.d.ts +5 -0
  321. package/dist/icons/sparkles/sparkles-icon.js +27 -0
  322. package/dist/icons/sparkles/sparkles-rig.d.ts +14 -0
  323. package/dist/icons/sparkles/sparkles-rig.js +24 -0
  324. package/dist/icons/star/star-icon.d.ts +5 -0
  325. package/dist/icons/star/star-icon.js +38 -0
  326. package/dist/icons/star/star-rig.d.ts +20 -0
  327. package/dist/icons/star/star-rig.js +61 -0
  328. package/dist/icons/sun/sun-icon.d.ts +5 -0
  329. package/dist/icons/sun/sun-icon.js +9 -0
  330. package/dist/icons/sun/sun-rig.d.ts +290 -0
  331. package/dist/icons/sun/sun-rig.js +401 -0
  332. package/dist/icons/swap/swap-icon.d.ts +5 -0
  333. package/dist/icons/swap/swap-icon.js +26 -0
  334. package/dist/icons/swap/swap-rig.d.ts +10 -0
  335. package/dist/icons/swap/swap-rig.js +24 -0
  336. package/dist/icons/terminal/terminal-icon.d.ts +5 -0
  337. package/dist/icons/terminal/terminal-icon.js +9 -0
  338. package/dist/icons/terminal/terminal-rig.d.ts +71 -0
  339. package/dist/icons/terminal/terminal-rig.js +102 -0
  340. package/dist/icons/timer/timer-icon.d.ts +5 -0
  341. package/dist/icons/timer/timer-icon.js +9 -0
  342. package/dist/icons/timer/timer-rig.d.ts +50 -0
  343. package/dist/icons/timer/timer-rig.js +72 -0
  344. package/dist/icons/truck/truck-icon.d.ts +5 -0
  345. package/dist/icons/truck/truck-icon.js +9 -0
  346. package/dist/icons/truck/truck-rig.d.ts +184 -0
  347. package/dist/icons/truck/truck-rig.js +272 -0
  348. package/dist/icons/upload/upload-icon.d.ts +5 -0
  349. package/dist/icons/upload/upload-icon.js +9 -0
  350. package/dist/icons/upload/upload-rig.d.ts +99 -0
  351. package/dist/icons/upload/upload-rig.js +124 -0
  352. package/dist/icons/user/user-icon.d.ts +5 -0
  353. package/dist/icons/user/user-icon.js +9 -0
  354. package/dist/icons/user/user-rig.d.ts +45 -0
  355. package/dist/icons/user/user-rig.js +66 -0
  356. package/dist/icons/users/users-icon.d.ts +5 -0
  357. package/dist/icons/users/users-icon.js +9 -0
  358. package/dist/icons/users/users-rig.d.ts +76 -0
  359. package/dist/icons/users/users-rig.js +113 -0
  360. package/dist/icons/video/video-icon.d.ts +5 -0
  361. package/dist/icons/video/video-icon.js +9 -0
  362. package/dist/icons/video/video-rig.d.ts +62 -0
  363. package/dist/icons/video/video-rig.js +84 -0
  364. package/dist/icons/volume/volume-icon.d.ts +5 -0
  365. package/dist/icons/volume/volume-icon.js +9 -0
  366. package/dist/icons/volume/volume-rig.d.ts +82 -0
  367. package/dist/icons/volume/volume-rig.js +120 -0
  368. package/dist/icons/wallet/wallet-icon.d.ts +5 -0
  369. package/dist/icons/wallet/wallet-icon.js +9 -0
  370. package/dist/icons/wallet/wallet-rig.d.ts +63 -0
  371. package/dist/icons/wallet/wallet-rig.js +90 -0
  372. package/dist/icons/wave/wave-icon.d.ts +5 -0
  373. package/dist/icons/wave/wave-icon.js +18 -0
  374. package/dist/icons/wave/wave-rig.d.ts +8 -0
  375. package/dist/icons/wave/wave-rig.js +39 -0
  376. package/dist/icons/wifi/wifi-icon.d.ts +5 -0
  377. package/dist/icons/wifi/wifi-icon.js +9 -0
  378. package/dist/icons/wifi/wifi-rig.d.ts +189 -0
  379. package/dist/icons/wifi/wifi-rig.js +260 -0
  380. package/dist/index.d.ts +93 -2
  381. package/dist/index.js +92 -1
  382. package/dist/shared/articulated-icon.d.ts +7 -0
  383. package/dist/shared/articulated-icon.js +49 -0
  384. package/dist/shared/articulation.d.ts +62 -0
  385. package/dist/shared/articulation.js +85 -0
  386. package/dist/shared/icon-colors.d.ts +95 -4
  387. package/dist/shared/icon-types.d.ts +1 -0
  388. package/dist/shared/sparkle-motion.d.ts +12 -0
  389. package/dist/shared/sparkle-motion.js +38 -0
  390. package/dist/shared/use-icon-motion.d.ts +5 -1
  391. package/dist/shared/use-icon-motion.js +30 -3
  392. package/package.json +464 -9
  393. package/dist/icons/leaf/leaf-icon.d.ts +0 -6
  394. package/dist/icons/leaf/leaf-icon.js +0 -29
  395. package/dist/icons/leaf/leaf-rig.d.ts +0 -25
  396. package/dist/icons/leaf/leaf-rig.js +0 -201
@@ -0,0 +1,88 @@
1
+ export declare const creditCardStates: readonly ["idle", "processing", "approved"];
2
+ export type CreditCardState = (typeof creditCardStates)[number];
3
+ export declare const creditCardArt: {
4
+ readonly name: "credit-card";
5
+ readonly parts: readonly [{
6
+ readonly name: "card";
7
+ readonly paths: readonly ["M4 5H20Q22 5 22 7V17Q22 19 20 19H4Q2 19 2 17V7Q2 5 4 5Z", "M2 10L22 10", "M6 14h2"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ readonly pivot: readonly [12, 12];
10
+ readonly gestures: readonly [null, {
11
+ readonly duration: 1.1;
12
+ readonly repeatAfter: 2.1;
13
+ readonly loop: false;
14
+ readonly frames: readonly [{
15
+ readonly at: 0;
16
+ }, {
17
+ readonly at: 0.18;
18
+ readonly angle: -3;
19
+ readonly y: -0.3;
20
+ }, {
21
+ readonly at: 0.48;
22
+ readonly angle: 1.2;
23
+ readonly y: 0.25;
24
+ }, {
25
+ readonly at: 0.75;
26
+ readonly angle: -0.3;
27
+ }, {
28
+ readonly at: 1;
29
+ }];
30
+ }, null];
31
+ }, {
32
+ readonly name: "authorization";
33
+ readonly detail: true;
34
+ readonly paths: readonly ["M14 14L16 14L19 14"];
35
+ readonly poses: readonly [{
36
+ readonly opacity: 0;
37
+ }, {
38
+ readonly opacity: 1;
39
+ readonly draw: 0.2;
40
+ }, {
41
+ readonly opacity: 1;
42
+ }];
43
+ readonly pivot: readonly [12, 12];
44
+ readonly gestures: readonly [null, {
45
+ readonly duration: 2.2;
46
+ readonly repeatAfter: 2.9;
47
+ readonly loop: true;
48
+ readonly frames: readonly [{
49
+ readonly at: 0;
50
+ }, {
51
+ readonly at: 0.18;
52
+ readonly draw: 0.75;
53
+ }, {
54
+ readonly at: 0.45;
55
+ readonly draw: 0.75;
56
+ }, {
57
+ readonly at: 0.6;
58
+ readonly draw: 0.75;
59
+ readonly opacity: -1;
60
+ }, {
61
+ readonly at: 0.76;
62
+ readonly opacity: -1;
63
+ }, {
64
+ readonly at: 1;
65
+ }];
66
+ }, {
67
+ readonly duration: 1;
68
+ readonly repeatAfter: 2;
69
+ readonly loop: false;
70
+ readonly frames: readonly [{
71
+ readonly at: 0;
72
+ }, {
73
+ readonly at: 0.12;
74
+ readonly draw: -0.85;
75
+ }, {
76
+ readonly at: 0.6;
77
+ readonly draw: 0;
78
+ readonly scaleX: 0.06;
79
+ readonly scaleY: 0.06;
80
+ }, {
81
+ readonly at: 1;
82
+ }];
83
+ }];
84
+ readonly pathStates: readonly [readonly ["M14 14L16 14L19 14"], readonly ["M14 14L16 14L19 14"], readonly ["M14 14L16 16L19 12.5"]];
85
+ readonly traceLength: 9;
86
+ readonly accent: true;
87
+ }];
88
+ };
@@ -0,0 +1,122 @@
1
+ export const creditCardStates = ['idle', 'processing', 'approved'];
2
+ // Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
3
+ // Checkout: a single card tap starts processing, a held authorization stroke advances, and only the approved state writes the check. The card stays still while waiting.
4
+ export const creditCardArt = {
5
+ name: 'credit-card',
6
+ parts: [
7
+ {
8
+ name: 'card',
9
+ paths: ['M4 5H20Q22 5 22 7V17Q22 19 20 19H4Q2 19 2 17V7Q2 5 4 5Z', 'M2 10L22 10', 'M6 14h2'],
10
+ poses: [{}, {}, {}],
11
+ pivot: [12, 12],
12
+ gestures: [
13
+ null,
14
+ {
15
+ duration: 1.1,
16
+ repeatAfter: 2.1,
17
+ loop: false,
18
+ frames: [
19
+ {
20
+ at: 0,
21
+ },
22
+ {
23
+ at: 0.18,
24
+ angle: -3,
25
+ y: -0.3,
26
+ },
27
+ {
28
+ at: 0.48,
29
+ angle: 1.2,
30
+ y: 0.25,
31
+ },
32
+ {
33
+ at: 0.75,
34
+ angle: -0.3,
35
+ },
36
+ {
37
+ at: 1,
38
+ },
39
+ ],
40
+ },
41
+ null,
42
+ ],
43
+ },
44
+ {
45
+ name: 'authorization',
46
+ detail: true,
47
+ paths: ['M14 14L16 14L19 14'],
48
+ poses: [
49
+ {
50
+ opacity: 0,
51
+ },
52
+ {
53
+ opacity: 1,
54
+ draw: 0.2,
55
+ },
56
+ {
57
+ opacity: 1,
58
+ },
59
+ ],
60
+ pivot: [12, 12],
61
+ gestures: [
62
+ null,
63
+ {
64
+ duration: 2.2,
65
+ repeatAfter: 2.9,
66
+ loop: true,
67
+ frames: [
68
+ {
69
+ at: 0,
70
+ },
71
+ {
72
+ at: 0.18,
73
+ draw: 0.75,
74
+ },
75
+ {
76
+ at: 0.45,
77
+ draw: 0.75,
78
+ },
79
+ {
80
+ at: 0.6,
81
+ draw: 0.75,
82
+ opacity: -1,
83
+ },
84
+ {
85
+ at: 0.76,
86
+ opacity: -1,
87
+ },
88
+ {
89
+ at: 1,
90
+ },
91
+ ],
92
+ },
93
+ {
94
+ duration: 1,
95
+ repeatAfter: 2,
96
+ loop: false,
97
+ frames: [
98
+ {
99
+ at: 0,
100
+ },
101
+ {
102
+ at: 0.12,
103
+ draw: -0.85,
104
+ },
105
+ {
106
+ at: 0.6,
107
+ draw: 0,
108
+ scaleX: 0.06,
109
+ scaleY: 0.06,
110
+ },
111
+ {
112
+ at: 1,
113
+ },
114
+ ],
115
+ },
116
+ ],
117
+ pathStates: [['M14 14L16 14L19 14'], ['M14 14L16 14L19 14'], ['M14 14L16 16L19 12.5']],
118
+ traceLength: 9,
119
+ accent: true,
120
+ },
121
+ ],
122
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type CursorState } from "./cursor-rig.js";
3
+ export { cursorStates, type CursorState } from "./cursor-rig.js";
4
+ export type CursorIconProps = StatefulIconProps<CursorState>;
5
+ export declare const CursorIcon: import("react").NamedExoticComponent<CursorIconProps>;
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo, useCallback, useEffect, useId, useRef } from 'react';
4
+ import { motion, useMotionValue, useTransform } from 'motion/react';
5
+ import { usePoseWeight, useBehaviorClock, useActionProgress } from "../../shared/use-icon-motion.js";
6
+ import { useMotionPreference } from "../../shared/use-motion-preference.js";
7
+ import { CURSOR_POINTER, cursorClickAction, sampleCursor } from "./cursor-rig.js";
8
+ export { cursorStates } from "./cursor-rig.js";
9
+ const ORIGIN = { originX: '0px', originY: '0px', transformBox: 'view-box' };
10
+ export const CursorIcon = memo(function CursorIcon({ state = 'idle', size = 24, color = 'currentColor', accentColor = 'currentColor', strokeWidth = 1.65, speed = 1, alive = false, className, }) {
11
+ const reduced = useMotionPreference(), element = useRef(null), id = useId();
12
+ const pace = Number.isFinite(speed) ? Math.min(4, Math.max(0.1, speed)) : 1;
13
+ const idle = usePoseWeight(state === 'idle', pace, reduced), hovering = usePoseWeight(state === 'hovering', pace, reduced), clicking = usePoseWeight(state === 'clicking', pace, reduced), blocked = usePoseWeight(state === 'blocked', pace, reduced);
14
+ const performs = alive && !reduced && state !== 'idle', life = usePoseWeight(performs, pace, reduced), time = useBehaviorClock(element, performs, pace, life);
15
+ const clickEpoch = useMotionValue(0);
16
+ const canRestart = useCallback(() => {
17
+ const phase = (time.get() - clickEpoch.get()) % 6.8;
18
+ const repeat = phase < 3.1 ? 1 : Math.min(1, (phase - 3.1) / 0.9);
19
+ const reaction = cursorClickAction(repeat);
20
+ return clicking.get() * life.get() * (reaction.press + reaction.opacity) === 0;
21
+ }, [time, clickEpoch, clicking, life]);
22
+ const entry = useActionProgress(state === 'clicking', pace, reduced, 0.9, canRestart);
23
+ useEffect(() => {
24
+ // Give a fresh entry its own quiet interval without resetting the shared clock
25
+ // or restarting an already visible, interrupted click.
26
+ if (state === 'clicking' && entry.get() === 0)
27
+ clickEpoch.set(time.get());
28
+ }, [state, entry, clickEpoch, time]);
29
+ const rig = useTransform(() => sampleCursor([idle.get(), hovering.get(), clicking.get(), blocked.get()], time.get(), life.get(), entry.get(), time.get() - clickEpoch.get(), strokeWidth));
30
+ const pointer = useTransform(rig, (r) => r.pointer), click = useTransform(rig, (r) => r.click), blockedOpacity = useTransform(rig, (r) => r.blocked), tipCut = useTransform(rig, (r) => r.tipCut), badgeRadius = useTransform(rig, (r) => r.badgeRadius), badgeStroke = useTransform(rig, (r) => r.badgeStroke), blockedSlash = useTransform(rig, (r) => r.blockedSlash), rays = useTransform(rig, (r) => r.rays);
31
+ return (_jsxs("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: [_jsx("defs", { children: _jsx("clipPath", { id: `${id}-tip-cut`, children: _jsx(motion.path, { "data-part": "cursor-tip-cut", d: tipCut, clipRule: "evenodd" }) }) }), _jsx(motion.path, { "data-layer": "cursor-click", d: rays, stroke: accentColor, strokeWidth: strokeWidth * 0.45, opacity: click }), _jsx(motion.path, { "data-layer": "cursor-pointer", "data-part": "pointer", d: CURSOR_POINTER, stroke: color, strokeWidth: strokeWidth, transform: pointer, style: ORIGIN, clipPath: `url(#${id}-tip-cut)` }), _jsxs(motion.g, { "data-layer": "cursor-blocked", transform: pointer, style: ORIGIN, opacity: blockedOpacity, stroke: accentColor, strokeWidth: badgeStroke, children: [_jsx(motion.circle, { "data-part": "blocked-ring", cx: "4.2", cy: "4.2", r: badgeRadius }), _jsx(motion.path, { "data-part": "blocked-slash", d: blockedSlash })] })] }));
32
+ });
@@ -0,0 +1,21 @@
1
+ export declare const cursorStates: readonly ["idle", "hovering", "clicking", "blocked"];
2
+ export type CursorState = (typeof cursorStates)[number];
3
+ export declare const CURSOR_POINTER = "M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z";
4
+ export declare const CURSOR_RAY_ANGLES: readonly [180, 225, 270];
5
+ /** One press, followed by an outward burst. Reset distance only while invisible. */
6
+ export declare function cursorClickAction(progress: number): {
7
+ press: number;
8
+ opacity: number;
9
+ distance: number;
10
+ length: number;
11
+ };
12
+ export declare function sampleCursor(weights: readonly number[], time?: number, alive?: number, entry?: number, clickTime?: number, strokeWidth?: number): {
13
+ pointer: string;
14
+ rays: string;
15
+ click: number;
16
+ blocked: number;
17
+ badgeRadius: number;
18
+ badgeStroke: number;
19
+ blockedSlash: string;
20
+ tipCut: string;
21
+ };
@@ -0,0 +1,63 @@
1
+ import { behaviorBeat } from "../../shared/behavior-curves.js";
2
+ export const cursorStates = ['idle', 'hovering', 'clicking', 'blocked'];
3
+ export const CURSOR_POINTER = 'M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z';
4
+ export const CURSOR_RAY_ANGLES = [180, 225, 270];
5
+ const clamp = (n) => Math.max(0, Math.min(1, n));
6
+ const smooth = (n) => {
7
+ const x = clamp(n);
8
+ return x * x * x * (x * (x * 6 - 15) + 10);
9
+ };
10
+ /** One press, followed by an outward burst. Reset distance only while invisible. */
11
+ export function cursorClickAction(progress) {
12
+ const t = clamp(progress) * 0.9;
13
+ const travel = smooth((t - 0.22) / 0.5);
14
+ return {
15
+ press: behaviorBeat(t, 0, 0.18, 0.04, 0.3),
16
+ opacity: behaviorBeat(t, 0.22, 0.09, 0.02, 0.39),
17
+ distance: 2.7 + 0.5 * travel,
18
+ length: 1.05,
19
+ };
20
+ }
21
+ export function sampleCursor(weights, time = 0, alive = 0, entry = 1, clickTime = time, strokeWidth = 1.65) {
22
+ const [, h, c, b] = weights.map(clamp), life = clamp(alive), t = time % 6.8;
23
+ // Two continuous figure-eights per phrase: the whole pointer explores, never
24
+ // stops at a keyframe, and keeps the current phase when a state is interrupted.
25
+ const orbit = (t * Math.PI * 2) / 3.4;
26
+ const approach = behaviorBeat(t, 0.2, 0.38, 0.08, 0.28) + 0.65 * behaviorBeat(t, 3.65, 0.44, 0.06, 0.3);
27
+ const recoil = behaviorBeat(t, 0.63, 0.22, 0.04, 0.66) + 0.65 * behaviorBeat(t, 4.12, 0.24, 0.04, 0.7);
28
+ // Entry owns the first click; living repeats use the existing uninterrupted clock.
29
+ const clickPhase = clickTime % 6.8;
30
+ const repeat = clickPhase < 3.1 ? 1 : clamp((clickPhase - 3.1) / 0.9);
31
+ const action = cursorClickAction(entry < 1 ? entry : repeat);
32
+ const amount = entry < 1 ? 1 : life;
33
+ const refusal = life * (-0.5 * approach + 0.42 * recoil);
34
+ // A brief entry hesitation also works with alive off, then becomes static.
35
+ const entryHesitation = 0.24 * 4 * b * (1 - b);
36
+ const dx = h * life * 1.25 * Math.sin(orbit) + b * (0.3 + refusal) + entryHesitation;
37
+ const dy = h * life * 0.75 * Math.sin(orbit * 2) + b * (0.3 + refusal) + entryHesitation;
38
+ const tipX = 6 + dx, tipY = 6 + dy;
39
+ const scale = 0.84 + h * 0.015 - b * 0.06 - c * (0.012 + amount * 0.065 * action.press);
40
+ const rays = CURSOR_RAY_ANGLES.map((angle) => {
41
+ const radians = (angle * Math.PI) / 180, x = Math.cos(radians), y = Math.sin(radians);
42
+ // Fade paint, not emitted travel: turning alive off must not pull rays back.
43
+ const distance = amount > 0 ? action.distance : 2.7;
44
+ const point = (r) => `${tipX + x * r} ${tipY + y * r}`;
45
+ return `M${point(distance)}L${point(distance + action.length)}`;
46
+ }).join('');
47
+ // The blocked symbol replaces the pointed apex. Clearance includes both
48
+ // painted half-strokes, so primary paint never shows through the badge.
49
+ const badgeRadius = b * 2.8;
50
+ const badgeStroke = b * strokeWidth * 0.75;
51
+ const cutRadius = badgeRadius + badgeStroke / 2 + b * 0.5 + strokeWidth * 0.5 * smooth(b / 0.08);
52
+ const diagonal = badgeRadius / Math.SQRT2;
53
+ return {
54
+ pointer: `translate(${tipX}px, ${tipY}px) scale(${scale}) translate(-4.2px, -4.2px)`,
55
+ rays,
56
+ click: c * amount * action.opacity,
57
+ blocked: b,
58
+ badgeRadius,
59
+ badgeStroke,
60
+ blockedSlash: `M${4.2 - diagonal} ${4.2 - diagonal}L${4.2 + diagonal} ${4.2 + diagonal}`,
61
+ tipCut: `M-24 -24H48V48H-24Z M${4.2 - cutRadius} 4.2a${cutRadius} ${cutRadius} 0 1 0 ${2 * cutRadius} 0a${cutRadius} ${cutRadius} 0 1 0 ${-2 * cutRadius} 0Z`,
62
+ };
63
+ }
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type DatabaseState } from "./database-rig.js";
3
+ export { databaseStates, type DatabaseState } from "./database-rig.js";
4
+ export type DatabaseIconProps = StatefulIconProps<DatabaseState>;
5
+ export declare const DatabaseIcon: import("react").NamedExoticComponent<DatabaseIconProps>;
@@ -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 { databaseArt, databaseStates } from "./database-rig.js";
6
+ export { databaseStates } from "./database-rig.js";
7
+ export const DatabaseIcon = memo(function DatabaseIcon(props) {
8
+ return _jsx(ArticulatedIcon, { art: databaseArt, states: databaseStates, ...props });
9
+ });
@@ -0,0 +1,61 @@
1
+ export declare const databaseStates: readonly ["idle", "syncing", "synced"];
2
+ export type DatabaseState = (typeof databaseStates)[number];
3
+ export declare const databaseArt: {
4
+ readonly name: "database";
5
+ readonly parts: readonly [{
6
+ readonly name: "cylinder";
7
+ readonly paths: readonly ["M3 5V19A9 3 0 0 0 21 19V5", "M3 5a9 3 0 1 0 18 0a9 3 0 1 0 -18 0"];
8
+ readonly poses: readonly [{}, {}, {}];
9
+ readonly pivot: readonly [12, 12];
10
+ readonly gestures: readonly [];
11
+ }, {
12
+ readonly name: "middle-band";
13
+ readonly paths: readonly ["M3 12A9 3 0 0 0 21 12"];
14
+ readonly poses: readonly [{}, {
15
+ readonly y: -3;
16
+ }, {
17
+ readonly y: 3;
18
+ }];
19
+ readonly pivot: readonly [12, 12];
20
+ readonly gestures: readonly [null, {
21
+ readonly duration: 2.5;
22
+ readonly repeatAfter: 3.8;
23
+ readonly loop: true;
24
+ readonly frames: readonly [{
25
+ readonly at: 0;
26
+ }, {
27
+ readonly at: 0.12;
28
+ }, {
29
+ readonly at: 0.58;
30
+ readonly y: 6;
31
+ }, {
32
+ readonly at: 0.72;
33
+ readonly y: 6;
34
+ readonly opacity: -1;
35
+ }, {
36
+ readonly at: 0.88;
37
+ readonly opacity: -1;
38
+ }, {
39
+ readonly at: 1;
40
+ }];
41
+ }, {
42
+ readonly duration: 1.2;
43
+ readonly repeatAfter: 2.2;
44
+ readonly loop: false;
45
+ readonly frames: readonly [{
46
+ readonly at: 0;
47
+ }, {
48
+ readonly at: 0.2;
49
+ readonly y: -0.9;
50
+ }, {
51
+ readonly at: 0.55;
52
+ readonly y: 0.25;
53
+ }, {
54
+ readonly at: 0.8;
55
+ readonly y: -0.05;
56
+ }, {
57
+ readonly at: 1;
58
+ }];
59
+ }];
60
+ }];
61
+ };
@@ -0,0 +1,86 @@
1
+ export const databaseStates = ['idle', 'syncing', 'synced'];
2
+ // Lucide-derived outline; attribution and pinned source: THIRD_PARTY_NOTICES.md.
3
+ // Sync storage: a write band scans downward through the cylinder, fades, and resets invisibly. The synced band seats at the bottom; the cylinder keeps its volume.
4
+ export const databaseArt = {
5
+ name: 'database',
6
+ parts: [
7
+ {
8
+ name: 'cylinder',
9
+ paths: ['M3 5V19A9 3 0 0 0 21 19V5', 'M3 5a9 3 0 1 0 18 0a9 3 0 1 0 -18 0'],
10
+ poses: [{}, {}, {}],
11
+ pivot: [12, 12],
12
+ gestures: [],
13
+ },
14
+ {
15
+ name: 'middle-band',
16
+ paths: ['M3 12A9 3 0 0 0 21 12'],
17
+ poses: [
18
+ {},
19
+ {
20
+ y: -3,
21
+ },
22
+ {
23
+ y: 3,
24
+ },
25
+ ],
26
+ pivot: [12, 12],
27
+ gestures: [
28
+ null,
29
+ {
30
+ duration: 2.5,
31
+ repeatAfter: 3.8,
32
+ loop: true,
33
+ frames: [
34
+ {
35
+ at: 0,
36
+ },
37
+ {
38
+ at: 0.12,
39
+ },
40
+ {
41
+ at: 0.58,
42
+ y: 6,
43
+ },
44
+ {
45
+ at: 0.72,
46
+ y: 6,
47
+ opacity: -1,
48
+ },
49
+ {
50
+ at: 0.88,
51
+ opacity: -1,
52
+ },
53
+ {
54
+ at: 1,
55
+ },
56
+ ],
57
+ },
58
+ {
59
+ duration: 1.2,
60
+ repeatAfter: 2.2,
61
+ loop: false,
62
+ frames: [
63
+ {
64
+ at: 0,
65
+ },
66
+ {
67
+ at: 0.2,
68
+ y: -0.9,
69
+ },
70
+ {
71
+ at: 0.55,
72
+ y: 0.25,
73
+ },
74
+ {
75
+ at: 0.8,
76
+ y: -0.05,
77
+ },
78
+ {
79
+ at: 1,
80
+ },
81
+ ],
82
+ },
83
+ ],
84
+ },
85
+ ],
86
+ };
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type DeleteState } from "./delete-rig.js";
3
+ export { deleteStates, type DeleteState } from "./delete-rig.js";
4
+ export type DeleteIconProps = StatefulIconProps<DeleteState>;
5
+ export declare const DeleteIcon: import("react").NamedExoticComponent<DeleteIconProps>;
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo, useCallback, useRef, useId } from 'react';
4
+ import { motion, useTransform } from 'motion/react';
5
+ import { usePoseWeight, useBehaviorClock, useActionProgress } from "../../shared/use-icon-motion.js";
6
+ import { useMotionPreference } from "../../shared/use-motion-preference.js";
7
+ import { DELETE_SHELL, sampleDelete } from "./delete-rig.js";
8
+ export { deleteStates } from "./delete-rig.js";
9
+ const ORIGIN = { originX: '0px', originY: '0px', transformBox: 'view-box' };
10
+ export const DeleteIcon = memo(function DeleteIcon({ state = 'idle', size = 24, color = 'currentColor', accentColor = 'currentColor', strokeWidth = 1.65, speed = 1, alive = false, className, }) {
11
+ const reduced = useMotionPreference(), element = useRef(null), id = useId();
12
+ const pace = Number.isFinite(speed) ? Math.min(4, Math.max(0.1, speed)) : 1;
13
+ const idle = usePoseWeight(state === 'idle', pace, reduced), deleting = usePoseWeight(state === 'deleting', pace, reduced), deleted = usePoseWeight(state === 'deleted', pace, reduced), error = usePoseWeight(state === 'error', pace, reduced);
14
+ const performs = alive && !reduced && state !== 'idle', life = usePoseWeight(performs, pace, reduced), time = useBehaviorClock(element, performs, pace, life);
15
+ const first = useRef(state !== 'deleting');
16
+ const canRestart = useCallback(() => {
17
+ const invisible = first.current || deleting.get() < 0.001;
18
+ first.current = false;
19
+ return invisible;
20
+ }, [deleting]);
21
+ const entry = useActionProgress(state === 'deleting', pace, reduced, 1.15, canRestart);
22
+ const rig = useTransform(() => sampleDelete([idle.get(), deleting.get(), deleted.get(), error.get()], time.get(), life.get(), entry.get()));
23
+ const body = useTransform(rig, (r) => r.body), mark = useTransform(rig, (r) => r.mark), reverse = useTransform(rig, (r) => r.reverse), offset = useTransform(rig, (r) => r.offset), markOpacity = useTransform(rig, (r) => r.markOpacity), cutX = useTransform(rig, (r) => r.cutX), erase = useTransform(rig, (r) => r.erase), eraseX = useTransform(rig, (r) => r.eraseX), echo = useTransform(rig, (r) => r.echo), echoOffset = useTransform(rig, (r) => r.echoOffset);
24
+ return (_jsxs("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("defs", { children: [_jsx("clipPath", { id: `${id}-inside`, children: _jsx("path", { d: DELETE_SHELL }) }), _jsx("clipPath", { id: `${id}-erase`, children: _jsx(motion.rect, { "data-part": "erase-window", x: "0", y: "6", width: cutX, height: "12" }) })] }), _jsxs(motion.g, { "data-layer": "delete-body", transform: body, style: ORIGIN, children: [_jsx("path", { "data-part": "shell", d: DELETE_SHELL, stroke: color, strokeWidth: strokeWidth }), _jsxs("g", { clipPath: `url(#${id}-inside)`, children: [_jsxs(motion.g, { "data-layer": "delete-symbol", style: { x: offset }, opacity: markOpacity, clipPath: `url(#${id}-erase)`, children: [_jsx(motion.path, { "data-layer": "delete-mark", d: mark, stroke: color, strokeWidth: Math.min(strokeWidth, 2.5) }), _jsx(motion.path, { "data-layer": "delete-reverse", d: "m18 9-6 6", opacity: reverse, stroke: color, strokeWidth: Math.min(strokeWidth, 2.5) })] }), _jsx(motion.path, { "data-layer": "delete-erase", d: "M0 8v8", style: { x: eraseX }, opacity: erase, stroke: accentColor, strokeWidth: Math.min(strokeWidth * 0.75, 1.4) })] }), _jsx(motion.path, { "data-layer": "delete-echo", d: "M0 10h-1.2M0 14h-1.2", style: { x: echoOffset }, opacity: echo, stroke: accentColor, strokeWidth: Math.min(strokeWidth * 0.65, 1.1) })] })] }));
25
+ });
@@ -0,0 +1,15 @@
1
+ export declare const deleteStates: readonly ["idle", "deleting", "deleted", "error"];
2
+ export type DeleteState = (typeof deleteStates)[number];
3
+ export declare const DELETE_SHELL = "M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z";
4
+ export declare function sampleDelete(weights: readonly number[], time?: number, alive?: number, entry?: number): {
5
+ body: string;
6
+ mark: string;
7
+ reverse: number;
8
+ markOpacity: number;
9
+ cutX: number;
10
+ offset: number;
11
+ erase: number;
12
+ eraseX: number;
13
+ echo: number;
14
+ echoOffset: number;
15
+ };
@@ -0,0 +1,33 @@
1
+ import { behaviorBeat } from "../../shared/behavior-curves.js";
2
+ export const deleteStates = ['idle', 'deleting', 'deleted', 'error'];
3
+ export const DELETE_SHELL = 'M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z';
4
+ export function sampleDelete(weights, time = 0, alive = 0, entry = 1) {
5
+ const clamp = (n) => Math.max(0, Math.min(1, n));
6
+ const smooth = (n) => {
7
+ const t = clamp(n);
8
+ return t * t * t * (t * (t * 6 - 15) + 10);
9
+ };
10
+ const [, deleting, deleted, error] = weights.map(clamp), life = clamp(alive);
11
+ const t = time % 6;
12
+ const action = clamp(entry) * 1.15;
13
+ const sweep = smooth((action - 0.22) / 0.68);
14
+ const repeating = smooth((t - 0.55) / 0.8) * (1 - smooth((t - 2.5) / 0.65));
15
+ const eraseProgress = sweep * (1 - life) + repeating * life;
16
+ const contact = Math.max(behaviorBeat(action, 0, 0.16, 0.05, 0.32), life * behaviorBeat(t, 0.25, 0.16, 0.05, 0.35));
17
+ const refusal = error * life * behaviorBeat(t, 0.4, 0.22, 0.06, 0.6);
18
+ const erased = smooth((t - 1.1) / 0.3) * (1 - smooth((t - 3.2) / 0.55));
19
+ const effect = deleting *
20
+ Math.max(behaviorBeat(action, 0.22, 0.1, 0.45, 0.22), life * behaviorBeat(t, 0.55, 0.1, 0.55, 0.25));
21
+ return {
22
+ body: `translate(${12 - deleting * contact * 0.7 + refusal * 0.6}px, 12px) scale(${0.82 - deleting * contact * 0.025}) translate(-12px, -12px)`,
23
+ mark: `M${12 - 0.5 * deleted} ${9 + 3 * deleted}L${15 - 1.5 * deleted} ${12 + 2 * deleted}L18 ${15 - 5 * deleted}`,
24
+ reverse: 1 - deleted,
25
+ markOpacity: 1 - deleting * life * erased,
26
+ cutX: 24 - deleting * (4 + eraseProgress * 10) - effect * 0.6,
27
+ offset: -deleting * eraseProgress * 0.4,
28
+ erase: effect,
29
+ eraseX: 20 - eraseProgress * 10,
30
+ echo: deleting * contact * 0.5,
31
+ echoOffset: -contact * 0.2,
32
+ };
33
+ }
@@ -9,7 +9,7 @@ export { dogStates } from "./dog-rig.js";
9
9
  // Motion emits CSS transforms. The -3/-3 viewBox origin is offset back to
10
10
  // SVG coordinate (0,0), so authored pivot coordinates remain exact.
11
11
  const SVG_ORIGIN = { originX: '3px', originY: '3px', transformBox: 'view-box' };
12
- export const DogIcon = memo(function DogIcon({ state = 'waiting', size = 24, color = 'currentColor', accentColor = 'currentColor', strokeWidth = 1.8, speed = 1, alive = false, className, colors, }) {
12
+ export const DogIcon = memo(function DogIcon({ state = 'waiting', size = 24, color = 'currentColor', accentColor = 'currentColor', strokeWidth = 1.65, speed = 1, alive = false, className, colors, }) {
13
13
  const reduced = useMotionPreference();
14
14
  const element = useRef(null);
15
15
  const mouthId = `puppy-mouth-${useId().replace(/:/g, '')}`;
@@ -7,7 +7,7 @@ import { usePoseWeight, useBehaviorClock } from "../../shared/use-icon-motion.js
7
7
  import { sampleDownload, DOWNLOAD_TRAY } from "./download-rig.js";
8
8
  export { downloadStates } from "./download-rig.js";
9
9
  const ORIGIN = { originX: 0, originY: 0, transformBox: 'view-box' };
10
- export const DownloadIcon = memo(function DownloadIcon({ state = 'idle', size = 24, color = 'currentColor', accentColor = 'currentColor', strokeWidth = 1.8, speed = 1, alive = false, className, }) {
10
+ export const DownloadIcon = memo(function DownloadIcon({ state = 'idle', size = 24, color = 'currentColor', accentColor = 'currentColor', strokeWidth = 1.65, speed = 1, alive = false, className, }) {
11
11
  const reduced = useMotionPreference(), element = useRef(null);
12
12
  const pace = Number.isFinite(speed) ? Math.min(4, Math.max(0.1, speed)) : 1;
13
13
  const idle = usePoseWeight(state === 'idle', pace, reduced), downloading = usePoseWeight(state === 'downloading', pace, reduced);
@@ -0,0 +1,5 @@
1
+ import type { StatefulIconProps } from "../../shared/icon-types.js";
2
+ import { type ExternalLinkState } from "./external-link-rig.js";
3
+ export { externalLinkStates, type ExternalLinkState } from "./external-link-rig.js";
4
+ export type ExternalLinkIconProps = StatefulIconProps<ExternalLinkState>;
5
+ export declare const ExternalLinkIcon: import("react").NamedExoticComponent<ExternalLinkIconProps>;
@@ -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 { externalLinkArt, externalLinkStates, resolveExternalLinkState, } from "./external-link-rig.js";
6
+ export { externalLinkStates } from "./external-link-rig.js";
7
+ export const ExternalLinkIcon = memo(function ExternalLinkIcon(props) {
8
+ return (_jsx(ArticulatedIcon, { art: externalLinkArt, states: externalLinkStates, ...props, state: resolveExternalLinkState(props.state) }));
9
+ });