svger-cli 3.1.0 → 4.0.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 (729) hide show
  1. package/CHANGELOG.md +399 -0
  2. package/README.md +448 -37
  3. package/SECURITY.md +3 -3
  4. package/assets/svges/500px.svg +3 -0
  5. package/assets/svges/adobe.svg +3 -0
  6. package/assets/svges/adonis.svg +3 -0
  7. package/assets/svges/aeroplane-1.svg +3 -0
  8. package/assets/svges/agenda.svg +3 -0
  9. package/assets/svges/airbnb.svg +3 -0
  10. package/assets/svges/airtable.svg +3 -0
  11. package/assets/svges/alarm-1.svg +7 -0
  12. package/assets/svges/align-text-center.svg +6 -0
  13. package/assets/svges/align-text-left.svg +6 -0
  14. package/assets/svges/align-text-right.svg +6 -0
  15. package/assets/svges/alpinejs.svg +4 -0
  16. package/assets/svges/amazon-original.svg +5 -0
  17. package/assets/svges/amazon-pay.svg +7 -0
  18. package/assets/svges/amazon.svg +10 -0
  19. package/assets/svges/ambulance-1.svg +4 -0
  20. package/assets/svges/amd.svg +3 -0
  21. package/assets/svges/amex.svg +4 -0
  22. package/assets/svges/anchor.svg +3 -0
  23. package/assets/svges/android-old.svg +3 -0
  24. package/assets/svges/android.svg +3 -0
  25. package/assets/svges/angellist.svg +3 -0
  26. package/assets/svges/angle-double-down.svg +4 -0
  27. package/assets/svges/angle-double-left.svg +4 -0
  28. package/assets/svges/angle-double-right.svg +4 -0
  29. package/assets/svges/angle-double-up.svg +4 -0
  30. package/assets/svges/angular.svg +3 -0
  31. package/assets/svges/app-store.svg +3 -0
  32. package/assets/svges/apple-brand.svg +3 -0
  33. package/assets/svges/apple-music-alt.svg +3 -0
  34. package/assets/svges/apple-music.svg +3 -0
  35. package/assets/svges/apple-pay.svg +3 -0
  36. package/assets/svges/arc-browser.svg +6 -0
  37. package/assets/svges/arrow-all-direction.svg +6 -0
  38. package/assets/svges/arrow-angular-top-left.svg +3 -0
  39. package/assets/svges/arrow-angular-top-right.svg +3 -0
  40. package/assets/svges/arrow-both-direction-horizontal-1.svg +3 -0
  41. package/assets/svges/arrow-both-direction-vertical-1.svg +3 -0
  42. package/assets/svges/arrow-downward.svg +3 -0
  43. package/assets/svges/arrow-left-circle.svg +4 -0
  44. package/assets/svges/arrow-left.svg +3 -0
  45. package/assets/svges/arrow-right-circle.svg +4 -0
  46. package/assets/svges/arrow-right.svg +3 -0
  47. package/assets/svges/arrow-upward.svg +3 -0
  48. package/assets/svges/asana.svg +3 -0
  49. package/assets/svges/astro.svg +4 -0
  50. package/assets/svges/atlassian.svg +3 -0
  51. package/assets/svges/audi-alt.svg +3 -0
  52. package/assets/svges/audi.svg +3 -0
  53. package/assets/svges/aws.svg +3 -0
  54. package/assets/svges/azure.svg +3 -0
  55. package/assets/svges/badge-decagram-percent.svg +6 -0
  56. package/assets/svges/balloons.svg +3 -0
  57. package/assets/svges/ban-2.svg +3 -0
  58. package/assets/svges/bar-chart-4.svg +6 -0
  59. package/assets/svges/bar-chart-dollar.svg +6 -0
  60. package/assets/svges/basket-shopping-3.svg +5 -0
  61. package/assets/svges/beat.svg +3 -0
  62. package/assets/svges/behance.svg +5 -0
  63. package/assets/svges/bell-1.svg +3 -0
  64. package/assets/svges/bike.svg +6 -0
  65. package/assets/svges/bing.svg +5 -0
  66. package/assets/svges/bitbucket.svg +5 -0
  67. package/assets/svges/bitcoin.svg +5 -0
  68. package/assets/svges/bittorrent.svg +6 -0
  69. package/assets/svges/blogger-alt.svg +3 -0
  70. package/assets/svges/blogger.svg +3 -0
  71. package/assets/svges/bluetooth-logo.svg +3 -0
  72. package/assets/svges/bluetooth.svg +3 -0
  73. package/assets/svges/bmw.svg +7 -0
  74. package/assets/svges/board-writing-3.svg +3 -0
  75. package/assets/svges/bold.svg +3 -0
  76. package/assets/svges/bolt-2.svg +3 -0
  77. package/assets/svges/bolt-3.svg +3 -0
  78. package/assets/svges/book-1.svg +4 -0
  79. package/assets/svges/bookmark-1.svg +3 -0
  80. package/assets/svges/bookmark-circle.svg +4 -0
  81. package/assets/svges/books-2.svg +3 -0
  82. package/assets/svges/bootstrap-5-square.svg +3 -0
  83. package/assets/svges/bootstrap-5.svg +3 -0
  84. package/assets/svges/box-archive-1.svg +4 -0
  85. package/assets/svges/box-closed.svg +3 -0
  86. package/assets/svges/box-gift-1.svg +3 -0
  87. package/assets/svges/brave.svg +3 -0
  88. package/assets/svges/bricks.svg +3 -0
  89. package/assets/svges/bridge-3.svg +3 -0
  90. package/assets/svges/briefcase-1.svg +3 -0
  91. package/assets/svges/briefcase-2.svg +3 -0
  92. package/assets/svges/briefcase-plus-1.svg +4 -0
  93. package/assets/svges/brush-1-rotated.svg +3 -0
  94. package/assets/svges/brush-2.svg +3 -0
  95. package/assets/svges/btc.svg +3 -0
  96. package/assets/svges/bug-1.svg +3 -0
  97. package/assets/svges/buildings-1.svg +5 -0
  98. package/assets/svges/bulb-2.svg +3 -0
  99. package/assets/svges/bulb-4.svg +9 -0
  100. package/assets/svges/burger-1.svg +3 -0
  101. package/assets/svges/burger-drink.svg +4 -0
  102. package/assets/svges/bus-1.svg +5 -0
  103. package/assets/svges/busket-ball.svg +3 -0
  104. package/assets/svges/cake-1.svg +3 -0
  105. package/assets/svges/calculator-1.svg +8 -0
  106. package/assets/svges/calculator-2.svg +13 -0
  107. package/assets/svges/calendar-days.svg +9 -0
  108. package/assets/svges/camera-1.svg +4 -0
  109. package/assets/svges/camera-movie-1.svg +3 -0
  110. package/assets/svges/candy-cane-2.svg +3 -0
  111. package/assets/svges/candy-round-1.svg +3 -0
  112. package/assets/svges/canva.svg +3 -0
  113. package/assets/svges/capsule-1.svg +3 -0
  114. package/assets/svges/car-2.svg +5 -0
  115. package/assets/svges/car-4.svg +3 -0
  116. package/assets/svges/car-6.svg +5 -0
  117. package/assets/svges/caravan-1.svg +3 -0
  118. package/assets/svges/cart-1.svg +5 -0
  119. package/assets/svges/cart-2.svg +5 -0
  120. package/assets/svges/cash-app.svg +3 -0
  121. package/assets/svges/certificate-badge-1.svg +6 -0
  122. package/assets/svges/chat-bubble-2.svg +5 -0
  123. package/assets/svges/check-circle-1.svg +4 -0
  124. package/assets/svges/check-square-2.svg +4 -0
  125. package/assets/svges/check.svg +3 -0
  126. package/assets/svges/chevron-down-circle.svg +4 -0
  127. package/assets/svges/chevron-down.svg +3 -0
  128. package/assets/svges/chevron-left-circle.svg +4 -0
  129. package/assets/svges/chevron-left.svg +3 -0
  130. package/assets/svges/chevron-right-circle.svg +4 -0
  131. package/assets/svges/chevron-up-circle.svg +4 -0
  132. package/assets/svges/chevron-up.svg +3 -0
  133. package/assets/svges/chrome.svg +6 -0
  134. package/assets/svges/chromecast.svg +3 -0
  135. package/assets/svges/cisco.svg +3 -0
  136. package/assets/svges/claude.svg +3 -0
  137. package/assets/svges/clickup.svg +4 -0
  138. package/assets/svges/clipboard.svg +3 -0
  139. package/assets/svges/cloud-2.svg +3 -0
  140. package/assets/svges/cloud-bolt-1.svg +4 -0
  141. package/assets/svges/cloud-bolt-2.svg +4 -0
  142. package/assets/svges/cloud-check-circle.svg +5 -0
  143. package/assets/svges/cloud-download.svg +5 -0
  144. package/assets/svges/cloud-iot-2.svg +3 -0
  145. package/assets/svges/cloud-rain.svg +6 -0
  146. package/assets/svges/cloud-refresh-clockwise.svg +5 -0
  147. package/assets/svges/cloud-sun.svg +9 -0
  148. package/assets/svges/cloud-upload.svg +5 -0
  149. package/assets/svges/cloudflare.svg +3 -0
  150. package/assets/svges/code-1.svg +5 -0
  151. package/assets/svges/code-s.svg +5 -0
  152. package/assets/svges/codepen.svg +3 -0
  153. package/assets/svges/coffee-cup-2.svg +6 -0
  154. package/assets/svges/coinbase.svg +10 -0
  155. package/assets/svges/colour-palette-3.svg +7 -0
  156. package/assets/svges/comment-1-share.svg +4 -0
  157. package/assets/svges/comment-1-text.svg +5 -0
  158. package/assets/svges/comment-1.svg +3 -0
  159. package/assets/svges/compass-drafting-2.svg +3 -0
  160. package/assets/svges/connectdevelop.svg +3 -0
  161. package/assets/svges/copilot.svg +8 -0
  162. package/assets/svges/coral.svg +3 -0
  163. package/assets/svges/cpanel.svg +3 -0
  164. package/assets/svges/crane-4.svg +3 -0
  165. package/assets/svges/creative-commons.svg +4 -0
  166. package/assets/svges/credit-card-multiple.svg +3 -0
  167. package/assets/svges/crop-2.svg +3 -0
  168. package/assets/svges/crown-3.svg +3 -0
  169. package/assets/svges/css3.svg +3 -0
  170. package/assets/svges/dashboard-square-1.svg +6 -0
  171. package/assets/svges/database-2.svg +3 -0
  172. package/assets/svges/deno.svg +4 -0
  173. package/assets/svges/dev.svg +3 -0
  174. package/assets/svges/dialogflow.svg +4 -0
  175. package/assets/svges/diamonds-1.svg +3 -0
  176. package/assets/svges/diamonds-2.svg +3 -0
  177. package/assets/svges/digitalocean.svg +3 -0
  178. package/assets/svges/diners-club.svg +38 -0
  179. package/assets/svges/direction-ltr.svg +4 -0
  180. package/assets/svges/direction-rtl.svg +4 -0
  181. package/assets/svges/discord-chat.svg +5 -0
  182. package/assets/svges/discord.svg +3 -0
  183. package/assets/svges/discover.svg +3 -0
  184. package/assets/svges/docker.svg +3 -0
  185. package/assets/svges/dollar-circle.svg +4 -0
  186. package/assets/svges/dollar.svg +3 -0
  187. package/assets/svges/double-quotes-end-1.svg +4 -0
  188. package/assets/svges/download-1.svg +4 -0
  189. package/assets/svges/download-circle-1.svg +4 -0
  190. package/assets/svges/dribbble-symbol.svg +3 -0
  191. package/assets/svges/dribbble.svg +3 -0
  192. package/assets/svges/drizzle.svg +6 -0
  193. package/assets/svges/dropbox.svg +7 -0
  194. package/assets/svges/drupal.svg +3 -0
  195. package/assets/svges/dumbbell-1.svg +3 -0
  196. package/assets/svges/edge.svg +3 -0
  197. package/assets/svges/emoji-expressionless-flat-eyes.svg +6 -0
  198. package/assets/svges/emoji-expressionless.svg +6 -0
  199. package/assets/svges/emoji-grin.svg +6 -0
  200. package/assets/svges/emoji-sad.svg +6 -0
  201. package/assets/svges/emoji-smile-side.svg +6 -0
  202. package/assets/svges/emoji-smile-sunglass.svg +5 -0
  203. package/assets/svges/emoji-smile-tongue.svg +3 -0
  204. package/assets/svges/emoji-smile.svg +6 -0
  205. package/assets/svges/enter-down.svg +4 -0
  206. package/assets/svges/enter.svg +4 -0
  207. package/assets/svges/envato.svg +4 -0
  208. package/assets/svges/envelope-1.svg +3 -0
  209. package/assets/svges/eraser-1.svg +4 -0
  210. package/assets/svges/ethereum-logo.svg +4 -0
  211. package/assets/svges/euro.svg +3 -0
  212. package/assets/svges/exit-up.svg +4 -0
  213. package/assets/svges/exit.svg +4 -0
  214. package/assets/svges/expand-arrow-1.svg +3 -0
  215. package/assets/svges/expand-square-4.svg +6 -0
  216. package/assets/svges/expressjs.svg +4 -0
  217. package/assets/svges/eye.svg +4 -0
  218. package/assets/svges/facebook-messenger.svg +3 -0
  219. package/assets/svges/facebook-rounded.svg +4 -0
  220. package/assets/svges/facebook-square.svg +3 -0
  221. package/assets/svges/facebook.svg +3 -0
  222. package/assets/svges/facetime.svg +3 -0
  223. package/assets/svges/figma.svg +3 -0
  224. package/assets/svges/file-format-zip.svg +4 -0
  225. package/assets/svges/file-multiple.svg +4 -0
  226. package/assets/svges/file-pencil.svg +4 -0
  227. package/assets/svges/file-plus-circle.svg +5 -0
  228. package/assets/svges/file-question.svg +5 -0
  229. package/assets/svges/file-xmark.svg +4 -0
  230. package/assets/svges/firebase.svg +3 -0
  231. package/assets/svges/firefox.svg +3 -0
  232. package/assets/svges/firework-rocket-4.svg +3 -0
  233. package/assets/svges/fitbit.svg +3 -0
  234. package/assets/svges/flag-1.svg +3 -0
  235. package/assets/svges/flag-2.svg +3 -0
  236. package/assets/svges/flickr.svg +4 -0
  237. package/assets/svges/floppy-disk-1.svg +3 -0
  238. package/assets/svges/flower-2.svg +3 -0
  239. package/assets/svges/flutter.svg +3 -0
  240. package/assets/svges/folder-1.svg +3 -0
  241. package/assets/svges/ford.svg +3 -0
  242. package/assets/svges/framer.svg +3 -0
  243. package/assets/svges/funnel-1.svg +3 -0
  244. package/assets/svges/gallery.svg +4 -0
  245. package/assets/svges/game-pad-modern-1.svg +6 -0
  246. package/assets/svges/gatsby.svg +3 -0
  247. package/assets/svges/gauge-1.svg +5 -0
  248. package/assets/svges/gear-1.svg +4 -0
  249. package/assets/svges/gears-3.svg +6 -0
  250. package/assets/svges/gemini.svg +3 -0
  251. package/assets/svges/git.svg +3 -0
  252. package/assets/svges/github.svg +3 -0
  253. package/assets/svges/glass-juice-1.svg +3 -0
  254. package/assets/svges/globe-1.svg +3 -0
  255. package/assets/svges/globe-stand.svg +4 -0
  256. package/assets/svges/go.svg +7 -0
  257. package/assets/svges/goodreads.svg +3 -0
  258. package/assets/svges/google-cloud.svg +3 -0
  259. package/assets/svges/google-drive.svg +3 -0
  260. package/assets/svges/google-meet.svg +3 -0
  261. package/assets/svges/google-pay.svg +3 -0
  262. package/assets/svges/google-wallet.svg +3 -0
  263. package/assets/svges/google.svg +3 -0
  264. package/assets/svges/graduation-cap-1.svg +3 -0
  265. package/assets/svges/grammarly.svg +3 -0
  266. package/assets/svges/hacker-news.svg +3 -0
  267. package/assets/svges/hammer-1.svg +3 -0
  268. package/assets/svges/hammer-2.svg +3 -0
  269. package/assets/svges/hand-mic.svg +3 -0
  270. package/assets/svges/hand-shake.svg +3 -0
  271. package/assets/svges/hand-stop.svg +3 -0
  272. package/assets/svges/hand-taking-dollar.svg +4 -0
  273. package/assets/svges/hand-taking-leaf-1.svg +5 -0
  274. package/assets/svges/hand-taking-user.svg +5 -0
  275. package/assets/svges/hashnode.svg +3 -0
  276. package/assets/svges/hat-chef-3.svg +3 -0
  277. package/assets/svges/headphone-1.svg +3 -0
  278. package/assets/svges/heart.svg +3 -0
  279. package/assets/svges/helicopter-2.svg +4 -0
  280. package/assets/svges/helmet-safety-1.svg +3 -0
  281. package/assets/svges/hierarchy-1.svg +9 -0
  282. package/assets/svges/highlighter-1.svg +3 -0
  283. package/assets/svges/highlighter-2.svg +3 -0
  284. package/assets/svges/home-2.svg +3 -0
  285. package/assets/svges/hospital-2.svg +4 -0
  286. package/assets/svges/hourglass.svg +3 -0
  287. package/assets/svges/html5.svg +4 -0
  288. package/assets/svges/ibm.svg +3 -0
  289. package/assets/svges/id-card.svg +7 -0
  290. package/assets/svges/imdb.svg +7 -0
  291. package/assets/svges/indent.svg +8 -0
  292. package/assets/svges/info.svg +4 -0
  293. package/assets/svges/injection-1.svg +3 -0
  294. package/assets/svges/instagram-logotype.svg +3 -0
  295. package/assets/svges/instagram.svg +4 -0
  296. package/assets/svges/intel.svg +4 -0
  297. package/assets/svges/ios.svg +3 -0
  298. package/assets/svges/island-2.svg +4 -0
  299. package/assets/svges/jaguar.svg +3 -0
  300. package/assets/svges/jamstack.svg +3 -0
  301. package/assets/svges/java.svg +3 -0
  302. package/assets/svges/javascript.svg +3 -0
  303. package/assets/svges/jcb.svg +3 -0
  304. package/assets/svges/joomla.svg +6 -0
  305. package/assets/svges/jsfiddle.svg +4 -0
  306. package/assets/svges/key-1.svg +3 -0
  307. package/assets/svges/keyboard.svg +12 -0
  308. package/assets/svges/knife-fork-1.svg +5 -0
  309. package/assets/svges/kubernetes.svg +11 -0
  310. package/assets/svges/label-dollar-2.svg +4 -0
  311. package/assets/svges/laptop-2.svg +3 -0
  312. package/assets/svges/laptop-phone.svg +5 -0
  313. package/assets/svges/laravel.svg +3 -0
  314. package/assets/svges/layers-1.svg +4 -0
  315. package/assets/svges/layout-26.svg +3 -0
  316. package/assets/svges/layout-9.svg +3 -0
  317. package/assets/svges/leaf-1.svg +3 -0
  318. package/assets/svges/leaf-6.svg +4 -0
  319. package/assets/svges/lemon-squeezy.svg +6 -0
  320. package/assets/svges/life-guard-tube-1.svg +3 -0
  321. package/assets/svges/line-dashed.svg +5 -0
  322. package/assets/svges/line-dotted.svg +8 -0
  323. package/assets/svges/line-height.svg +7 -0
  324. package/assets/svges/line.svg +3 -0
  325. package/assets/svges/lineicons.svg +6 -0
  326. package/assets/svges/link-2-angular-right.svg +3 -0
  327. package/assets/svges/linkedin.svg +3 -0
  328. package/assets/svges/location-arrow-right.svg +3 -0
  329. package/assets/svges/locked-1.svg +4 -0
  330. package/assets/svges/locked-2.svg +4 -0
  331. package/assets/svges/loom.svg +3 -0
  332. package/assets/svges/magento.svg +4 -0
  333. package/assets/svges/magnet.svg +3 -0
  334. package/assets/svges/mailchimp.svg +3 -0
  335. package/assets/svges/map-marker-1.svg +6 -0
  336. package/assets/svges/map-marker-5.svg +4 -0
  337. package/assets/svges/map-pin-5.svg +3 -0
  338. package/assets/svges/markdown.svg +5 -0
  339. package/assets/svges/mastercard.svg +7 -0
  340. package/assets/svges/medium-alt.svg +3 -0
  341. package/assets/svges/medium.svg +3 -0
  342. package/assets/svges/megaphone-1.svg +3 -0
  343. package/assets/svges/menu-cheesburger.svg +8 -0
  344. package/assets/svges/menu-hamburger-1.svg +5 -0
  345. package/assets/svges/menu-meatballs-1.svg +5 -0
  346. package/assets/svges/menu-meatballs-2.svg +5 -0
  347. package/assets/svges/mercedes.svg +3 -0
  348. package/assets/svges/message-2-question.svg +5 -0
  349. package/assets/svges/message-2.svg +3 -0
  350. package/assets/svges/message-3-text.svg +5 -0
  351. package/assets/svges/meta-alt.svg +3 -0
  352. package/assets/svges/meta.svg +7 -0
  353. package/assets/svges/microphone-1.svg +4 -0
  354. package/assets/svges/microscope.svg +3 -0
  355. package/assets/svges/microsoft-edge.svg +5 -0
  356. package/assets/svges/microsoft-teams.svg +6 -0
  357. package/assets/svges/microsoft.svg +6 -0
  358. package/assets/svges/minus-circle.svg +4 -0
  359. package/assets/svges/minus.svg +3 -0
  360. package/assets/svges/mongodb.svg +3 -0
  361. package/assets/svges/monitor-code.svg +5 -0
  362. package/assets/svges/monitor-mac.svg +3 -0
  363. package/assets/svges/monitor.svg +3 -0
  364. package/assets/svges/moon-half-right-5.svg +3 -0
  365. package/assets/svges/mountains-2.svg +3 -0
  366. package/assets/svges/mouse-2.svg +3 -0
  367. package/assets/svges/mushroom-1.svg +3 -0
  368. package/assets/svges/mushroom-5.svg +6 -0
  369. package/assets/svges/music.svg +3 -0
  370. package/assets/svges/mysql.svg +3 -0
  371. package/assets/svges/nasa.svg +3 -0
  372. package/assets/svges/netflix.svg +3 -0
  373. package/assets/svges/netlify.svg +3 -0
  374. package/assets/svges/next-step-2.svg +3 -0
  375. package/assets/svges/nextjs.svg +3 -0
  376. package/assets/svges/nike.svg +3 -0
  377. package/assets/svges/nissan.svg +3 -0
  378. package/assets/svges/nodejs-alt.svg +3 -0
  379. package/assets/svges/nodejs.svg +3 -0
  380. package/assets/svges/notebook-1.svg +3 -0
  381. package/assets/svges/notion.svg +3 -0
  382. package/assets/svges/npm.svg +3 -0
  383. package/assets/svges/nuxt.svg +3 -0
  384. package/assets/svges/nvidia.svg +3 -0
  385. package/assets/svges/oculus.svg +4 -0
  386. package/assets/svges/open-ai.svg +3 -0
  387. package/assets/svges/opera-mini.svg +3 -0
  388. package/assets/svges/oracle.svg +3 -0
  389. package/assets/svges/outdent.svg +8 -0
  390. package/assets/svges/paddle.svg +3 -0
  391. package/assets/svges/page-break-1.svg +7 -0
  392. package/assets/svges/pagination.svg +7 -0
  393. package/assets/svges/paint-bucket.svg +3 -0
  394. package/assets/svges/paint-roller-1.svg +3 -0
  395. package/assets/svges/paperclip-1.svg +3 -0
  396. package/assets/svges/party-flags.svg +3 -0
  397. package/assets/svges/party-spray.svg +3 -0
  398. package/assets/svges/patreon.svg +3 -0
  399. package/assets/svges/pause.svg +4 -0
  400. package/assets/svges/payoneer.svg +4 -0
  401. package/assets/svges/paypal.svg +4 -0
  402. package/assets/svges/pen-to-square.svg +4 -0
  403. package/assets/svges/pencil-1.svg +3 -0
  404. package/assets/svges/pepsi.svg +4 -0
  405. package/assets/svges/phone.svg +4 -0
  406. package/assets/svges/photos.svg +4 -0
  407. package/assets/svges/php.svg +3 -0
  408. package/assets/svges/pie-chart-2.svg +3 -0
  409. package/assets/svges/pilcrow.svg +3 -0
  410. package/assets/svges/pimjo-logo.svg +9 -0
  411. package/assets/svges/pimjo-symbol.svg +3 -0
  412. package/assets/svges/pinterest.svg +3 -0
  413. package/assets/svges/pizza-2.svg +6 -0
  414. package/assets/svges/placeholder-dollar.svg +4 -0
  415. package/assets/svges/plantscale.svg +3 -0
  416. package/assets/svges/play-store.svg +3 -0
  417. package/assets/svges/play.svg +3 -0
  418. package/assets/svges/playstation.svg +5 -0
  419. package/assets/svges/plug-1.svg +3 -0
  420. package/assets/svges/plus-circle.svg +4 -0
  421. package/assets/svges/plus.svg +3 -0
  422. package/assets/svges/pnpm.svg +10 -0
  423. package/assets/svges/postgresql.svg +3 -0
  424. package/assets/svges/postman.svg +3 -0
  425. package/assets/svges/pound.svg +3 -0
  426. package/assets/svges/power-button.svg +4 -0
  427. package/assets/svges/previous-step-2.svg +3 -0
  428. package/assets/svges/printer.svg +3 -0
  429. package/assets/svges/prisma.svg +3 -0
  430. package/assets/svges/producthunt.svg +4 -0
  431. package/assets/svges/proton-mail-logo.svg +3 -0
  432. package/assets/svges/proton-mail-symbol.svg +3 -0
  433. package/assets/svges/python.svg +3 -0
  434. package/assets/svges/question-mark-circle.svg +5 -0
  435. package/assets/svges/question-mark.svg +4 -0
  436. package/assets/svges/quora.svg +4 -0
  437. package/assets/svges/radis.svg +3 -0
  438. package/assets/svges/react.svg +3 -0
  439. package/assets/svges/reddit.svg +6 -0
  440. package/assets/svges/refresh-circle-1-clockwise.svg +4 -0
  441. package/assets/svges/refresh-dollar-1.svg +5 -0
  442. package/assets/svges/refresh-user-1.svg +6 -0
  443. package/assets/svges/remix-js.svg +4 -0
  444. package/assets/svges/road-1.svg +6 -0
  445. package/assets/svges/rocket-5.svg +5 -0
  446. package/assets/svges/route-1.svg +7 -0
  447. package/assets/svges/rss-right.svg +6 -0
  448. package/assets/svges/ruler-1.svg +3 -0
  449. package/assets/svges/ruler-pen.svg +4 -0
  450. package/assets/svges/rupee.svg +3 -0
  451. package/assets/svges/safari.svg +35 -0
  452. package/assets/svges/sanity.svg +20 -0
  453. package/assets/svges/school-bench-1.svg +4 -0
  454. package/assets/svges/school-bench-2.svg +4 -0
  455. package/assets/svges/scissors-1-vertical.svg +4 -0
  456. package/assets/svges/scoter.svg +8 -0
  457. package/assets/svges/scroll-down-2.svg +6 -0
  458. package/assets/svges/search-1.svg +3 -0
  459. package/assets/svges/search-2.svg +4 -0
  460. package/assets/svges/search-minus.svg +4 -0
  461. package/assets/svges/search-plus.svg +4 -0
  462. package/assets/svges/search-text.svg +5 -0
  463. package/assets/svges/select-cursor-1.svg +10 -0
  464. package/assets/svges/seo-monitor.svg +6 -0
  465. package/assets/svges/service-bell-1.svg +3 -0
  466. package/assets/svges/share-1-circle.svg +4 -0
  467. package/assets/svges/share-1.svg +3 -0
  468. package/assets/svges/share-2.svg +4 -0
  469. package/assets/svges/shield-2-check.svg +4 -0
  470. package/assets/svges/shield-2.svg +3 -0
  471. package/assets/svges/shield-dollar.svg +4 -0
  472. package/assets/svges/shift-left.svg +4 -0
  473. package/assets/svges/shift-right.svg +4 -0
  474. package/assets/svges/ship-1.svg +5 -0
  475. package/assets/svges/shirt-1.svg +3 -0
  476. package/assets/svges/shopify.svg +3 -0
  477. package/assets/svges/shovel.svg +3 -0
  478. package/assets/svges/shuffle.svg +3 -0
  479. package/assets/svges/sign-post-left.svg +3 -0
  480. package/assets/svges/signal-app.svg +3 -0
  481. package/assets/svges/signs-post-2.svg +3 -0
  482. package/assets/svges/sketch.svg +3 -0
  483. package/assets/svges/skype.svg +3 -0
  484. package/assets/svges/slack.svg +10 -0
  485. package/assets/svges/slice-2.svg +3 -0
  486. package/assets/svges/sliders-horizontal-square-2.svg +7 -0
  487. package/assets/svges/slideshare.svg +5 -0
  488. package/assets/svges/snapchat.svg +3 -0
  489. package/assets/svges/sort-alphabetical.svg +5 -0
  490. package/assets/svges/sort-high-to-low.svg +7 -0
  491. package/assets/svges/soundcloud.svg +3 -0
  492. package/assets/svges/spacex.svg +4 -0
  493. package/assets/svges/spellcheck.svg +4 -0
  494. package/assets/svges/spinner-2-sacle.svg +10 -0
  495. package/assets/svges/spinner-3.svg +3 -0
  496. package/assets/svges/sports.svg +3 -0
  497. package/assets/svges/spotify-alt.svg +6 -0
  498. package/assets/svges/spotify.svg +3 -0
  499. package/assets/svges/squarespace.svg +3 -0
  500. package/assets/svges/stackoverflow.svg +8 -0
  501. package/assets/svges/stamp.svg +3 -0
  502. package/assets/svges/star-fat-half-2.svg +4 -0
  503. package/assets/svges/star-fat.svg +3 -0
  504. package/assets/svges/star-sharp-disabled.svg +4 -0
  505. package/assets/svges/statista.svg +3 -0
  506. package/assets/svges/steam.svg +5 -0
  507. package/assets/svges/stethoscope-1.svg +3 -0
  508. package/assets/svges/stopwatch.svg +5 -0
  509. package/assets/svges/storage-hdd-2.svg +4 -0
  510. package/assets/svges/strikethrough-1.svg +5 -0
  511. package/assets/svges/stripe.svg +9 -0
  512. package/assets/svges/stumbleupon.svg +3 -0
  513. package/assets/svges/sun-1.svg +11 -0
  514. package/assets/svges/supabase.svg +5 -0
  515. package/assets/svges/surfboard-2.svg +3 -0
  516. package/assets/svges/svelte.svg +3 -0
  517. package/assets/svges/swift.svg +3 -0
  518. package/assets/svges/tab.svg +4 -0
  519. package/assets/svges/tailwindcss.svg +3 -0
  520. package/assets/svges/target-user.svg +5 -0
  521. package/assets/svges/telegram.svg +3 -0
  522. package/assets/svges/telephone-1.svg +4 -0
  523. package/assets/svges/telephone-3.svg +5 -0
  524. package/assets/svges/tesla.svg +3 -0
  525. package/assets/svges/text-format-remove.svg +5 -0
  526. package/assets/svges/text-format.svg +5 -0
  527. package/assets/svges/text-paragraph.svg +6 -0
  528. package/assets/svges/thumbs-down-3.svg +3 -0
  529. package/assets/svges/thumbs-up-3.svg +3 -0
  530. package/assets/svges/ticket-1.svg +3 -0
  531. package/assets/svges/tickets-3.svg +7 -0
  532. package/assets/svges/tiktok-alt.svg +3 -0
  533. package/assets/svges/tiktok.svg +3 -0
  534. package/assets/svges/tower-broadcast-1.svg +7 -0
  535. package/assets/svges/toyota.svg +4 -0
  536. package/assets/svges/train-1.svg +4 -0
  537. package/assets/svges/train-3.svg +5 -0
  538. package/assets/svges/trash-3.svg +5 -0
  539. package/assets/svges/tree-2.svg +3 -0
  540. package/assets/svges/trees-3.svg +3 -0
  541. package/assets/svges/trello.svg +3 -0
  542. package/assets/svges/trend-down-1.svg +3 -0
  543. package/assets/svges/trend-up-1.svg +3 -0
  544. package/assets/svges/trophy-1.svg +3 -0
  545. package/assets/svges/trowel-1.svg +3 -0
  546. package/assets/svges/truck-delivery-1.svg +3 -0
  547. package/assets/svges/tumblr.svg +3 -0
  548. package/assets/svges/turborepo.svg +4 -0
  549. package/assets/svges/twitch.svg +3 -0
  550. package/assets/svges/twitter-old.svg +3 -0
  551. package/assets/svges/typescript.svg +3 -0
  552. package/assets/svges/uber-symbol.svg +3 -0
  553. package/assets/svges/uber.svg +3 -0
  554. package/assets/svges/ubuntu.svg +3 -0
  555. package/assets/svges/underline.svg +4 -0
  556. package/assets/svges/unlink-2-angular-eft.svg +8 -0
  557. package/assets/svges/unlocked-2.svg +4 -0
  558. package/assets/svges/unsplash.svg +4 -0
  559. package/assets/svges/upload-1.svg +4 -0
  560. package/assets/svges/upload-circle-1.svg +4 -0
  561. package/assets/svges/user-4.svg +4 -0
  562. package/assets/svges/user-multiple-4.svg +6 -0
  563. package/assets/svges/vector-nodes-6.svg +3 -0
  564. package/assets/svges/vector-nodes-7.svg +3 -0
  565. package/assets/svges/vercel.svg +3 -0
  566. package/assets/svges/vimeo.svg +3 -0
  567. package/assets/svges/visa.svg +3 -0
  568. package/assets/svges/vite.svg +6 -0
  569. package/assets/svges/vk.svg +3 -0
  570. package/assets/svges/vmware.svg +4 -0
  571. package/assets/svges/volkswagen.svg +8 -0
  572. package/assets/svges/volume-1.svg +5 -0
  573. package/assets/svges/volume-high.svg +6 -0
  574. package/assets/svges/volume-low.svg +4 -0
  575. package/assets/svges/volume-mute.svg +6 -0
  576. package/assets/svges/volume-off.svg +3 -0
  577. package/assets/svges/vs-code.svg +3 -0
  578. package/assets/svges/vuejs.svg +3 -0
  579. package/assets/svges/wallet-1.svg +3 -0
  580. package/assets/svges/watch-beat-1.svg +4 -0
  581. package/assets/svges/water-drop-1.svg +4 -0
  582. package/assets/svges/webflow.svg +3 -0
  583. package/assets/svges/webhooks.svg +3 -0
  584. package/assets/svges/wechat.svg +4 -0
  585. package/assets/svges/weight-machine-1.svg +4 -0
  586. package/assets/svges/whatsapp.svg +3 -0
  587. package/assets/svges/wheelbarrow-empty.svg +3 -0
  588. package/assets/svges/wheelchair-1.svg +3 -0
  589. package/assets/svges/windows.svg +6 -0
  590. package/assets/svges/wise.svg +3 -0
  591. package/assets/svges/wordpress.svg +3 -0
  592. package/assets/svges/www-cursor.svg +5 -0
  593. package/assets/svges/www.svg +4 -0
  594. package/assets/svges/x.svg +3 -0
  595. package/assets/svges/xampp.svg +5 -0
  596. package/assets/svges/xbox.svg +6 -0
  597. package/assets/svges/xmark-circle.svg +4 -0
  598. package/assets/svges/xmark.svg +3 -0
  599. package/assets/svges/xrp.svg +3 -0
  600. package/assets/svges/yahoo.svg +3 -0
  601. package/assets/svges/yarn.svg +4 -0
  602. package/assets/svges/ycombinator.svg +3 -0
  603. package/assets/svges/yen.svg +3 -0
  604. package/assets/svges/youtube-kids.svg +3 -0
  605. package/assets/svges/youtube-music.svg +4 -0
  606. package/assets/svges/youtube.svg +3 -0
  607. package/assets/svges/zapier.svg +3 -0
  608. package/assets/svges/zero-size.svg +6 -0
  609. package/assets/svges/zoom.svg +4 -0
  610. package/bin/test-svger.js +163 -0
  611. package/dist/__tests__/__mocks__/visual-diff.d.ts +7 -0
  612. package/dist/__tests__/__mocks__/visual-diff.js +13 -0
  613. package/dist/__tests__/fixtures.js +18 -18
  614. package/dist/cli.js +148 -2
  615. package/dist/config.js +4 -1
  616. package/dist/core/enhanced-plugin-manager.d.ts +107 -0
  617. package/dist/core/enhanced-plugin-manager.js +315 -0
  618. package/dist/core/error-handler.d.ts +1 -1
  619. package/dist/core/error-handler.js +14 -17
  620. package/dist/core/framework-templates.js +37 -47
  621. package/dist/core/logger.js +0 -1
  622. package/dist/core/performance-engine.js +10 -15
  623. package/dist/core/plugin-manager.js +4 -4
  624. package/dist/core/style-compiler.d.ts +0 -1
  625. package/dist/core/style-compiler.js +3 -6
  626. package/dist/index.d.ts +4 -0
  627. package/dist/index.js +4 -0
  628. package/dist/integrations/babel.d.ts +1 -1
  629. package/dist/integrations/babel.js +31 -12
  630. package/dist/integrations/jest-preset.js +1 -1
  631. package/dist/integrations/rollup.js +29 -10
  632. package/dist/integrations/vite.js +29 -14
  633. package/dist/integrations/webpack.d.ts +1 -0
  634. package/dist/integrations/webpack.js +29 -10
  635. package/dist/optimizers/advanced-stages.d.ts +40 -0
  636. package/dist/optimizers/advanced-stages.js +297 -0
  637. package/dist/optimizers/basic-cleaner.d.ts +68 -0
  638. package/dist/optimizers/basic-cleaner.js +198 -0
  639. package/dist/optimizers/collapse-useless-groups.d.ts +26 -0
  640. package/dist/optimizers/collapse-useless-groups.js +104 -0
  641. package/dist/optimizers/command-optimizer.d.ts +48 -0
  642. package/dist/optimizers/command-optimizer.js +299 -0
  643. package/dist/optimizers/index.d.ts +14 -0
  644. package/dist/optimizers/index.js +15 -0
  645. package/dist/optimizers/move-attrs-to-parent.d.ts +31 -0
  646. package/dist/optimizers/move-attrs-to-parent.js +115 -0
  647. package/dist/optimizers/numeric-optimizer.d.ts +43 -0
  648. package/dist/optimizers/numeric-optimizer.js +383 -0
  649. package/dist/optimizers/optimizer-pipeline.d.ts +39 -0
  650. package/dist/optimizers/optimizer-pipeline.js +81 -0
  651. package/dist/optimizers/path-deduplicator.d.ts +37 -0
  652. package/dist/optimizers/path-deduplicator.js +406 -0
  653. package/dist/optimizers/path-parser.d.ts +60 -0
  654. package/dist/optimizers/path-parser.js +428 -0
  655. package/dist/optimizers/path-shortener.d.ts +41 -0
  656. package/dist/optimizers/path-shortener.js +274 -0
  657. package/dist/optimizers/path-simplifier.d.ts +30 -0
  658. package/dist/optimizers/path-simplifier.js +326 -0
  659. package/dist/optimizers/remove-hidden-empty.d.ts +29 -0
  660. package/dist/optimizers/remove-hidden-empty.js +130 -0
  661. package/dist/optimizers/remove-unused-defs.d.ts +24 -0
  662. package/dist/optimizers/remove-unused-defs.js +132 -0
  663. package/dist/optimizers/shape-conversion.d.ts +74 -0
  664. package/dist/optimizers/shape-conversion.js +277 -0
  665. package/dist/optimizers/style-optimizer.d.ts +30 -0
  666. package/dist/optimizers/style-optimizer.js +324 -0
  667. package/dist/optimizers/svg-tree-parser.d.ts +55 -0
  668. package/dist/optimizers/svg-tree-parser.js +352 -0
  669. package/dist/optimizers/transform-collapsing.d.ts +38 -0
  670. package/dist/optimizers/transform-collapsing.js +444 -0
  671. package/dist/optimizers/transform-optimizer.d.ts +65 -0
  672. package/dist/optimizers/transform-optimizer.js +320 -0
  673. package/dist/optimizers/tree-serializer.d.ts +46 -0
  674. package/dist/optimizers/tree-serializer.js +190 -0
  675. package/dist/optimizers/tree-stages.d.ts +27 -0
  676. package/dist/optimizers/tree-stages.js +141 -0
  677. package/dist/optimizers/types.d.ts +207 -0
  678. package/dist/optimizers/types.js +122 -0
  679. package/dist/plugins/color-replacer.d.ts +39 -0
  680. package/dist/plugins/color-replacer.js +126 -0
  681. package/dist/plugins/gradient-optimizer.d.ts +33 -0
  682. package/dist/plugins/gradient-optimizer.js +197 -0
  683. package/dist/plugins/stroke-normalizer.d.ts +33 -0
  684. package/dist/plugins/stroke-normalizer.js +166 -0
  685. package/dist/plugins/watermark-remover.d.ts +32 -0
  686. package/dist/plugins/watermark-remover.js +133 -0
  687. package/dist/processors/svg-processor.d.ts +17 -2
  688. package/dist/processors/svg-processor.js +108 -32
  689. package/dist/services/config.d.ts +4 -0
  690. package/dist/services/config.js +62 -1
  691. package/dist/services/file-watcher.d.ts +1 -1
  692. package/dist/services/file-watcher.js +1 -1
  693. package/dist/services/svg-service.d.ts +6 -0
  694. package/dist/services/svg-service.js +66 -16
  695. package/dist/types/index.d.ts +1 -0
  696. package/dist/types/plugin-system.d.ts +153 -0
  697. package/dist/types/plugin-system.js +5 -0
  698. package/dist/utils/visual-diff.d.ts +150 -0
  699. package/dist/utils/visual-diff.js +247 -0
  700. package/dist/watch.js +0 -2
  701. package/docs/COMPLETE-ACHIEVEMENT-SUMMARY.md +401 -0
  702. package/docs/MIGRATION-4.0.0.md +271 -0
  703. package/docs/PIPELINE-INTEGRATION.md +406 -0
  704. package/docs/PLUGIN-DEVELOPMENT-GUIDE.md +807 -0
  705. package/docs/QUICK-REFERENCE.md +176 -0
  706. package/docs/SAMPLE-SVGS-TESTING.md +276 -0
  707. package/docs/archive/PHASE-1-ARCHITECTURE.md +345 -0
  708. package/docs/archive/PHASE-1-IMPLEMENTATION.md +307 -0
  709. package/docs/archive/PHASE-1-SUMMARY.md +298 -0
  710. package/docs/archive/PHASE-2-COMPLETE.md +207 -0
  711. package/docs/archive/PHASE-3-SUMMARY.md +149 -0
  712. package/docs/archive/PHASE-4.3-COMMAND-OPTIMIZER.md +323 -0
  713. package/docs/archive/PHASE-4.4-PATH-SIMPLIFICATION.md +81 -0
  714. package/docs/archive/PHASE-4.5-PATH-DEDUPLICATION.md +449 -0
  715. package/docs/archive/PHASE-5.1-SUCCESS-REPORT.md +207 -0
  716. package/docs/archive/PHASE-5.1-TRANSFORM-COLLAPSING.md +362 -0
  717. package/docs/archive/PHASE-6.1-SHAPE-CONVERSION-DESIGN.md +518 -0
  718. package/docs/archive/PHASE-6.2-PLUGIN-SYSTEM-STATUS.md +403 -0
  719. package/docs/archive/PHASE-6.3-FINAL-STATUS.md +193 -0
  720. package/docs/archive/PHASE-6.3-VALIDATION-PROGRESS.md +345 -0
  721. package/docs/archive/PHASE-6.3-VISUAL-DIFF-DESIGN.md +553 -0
  722. package/docs/archive/PHASE-6.3-VISUAL-DIFF-SUMMARY.md +367 -0
  723. package/docs/archive/PHASE-6.3-XML-SERIALIZATION-FIX.md +210 -0
  724. package/docs/archive/RELEASE-NOTES-3.2.0.md +344 -0
  725. package/docs/archive/RELEASE-PREP-3.2.0.md +376 -0
  726. package/docs/performance/PERFORMANCE-RESULTS.md +31 -0
  727. package/docs/performance/REAL-WORLD-BENCHMARKS.md +159 -0
  728. package/package.json +16 -6
  729. package/DEVELOPMENT.md +0 -353
@@ -88,21 +88,16 @@ export class PerformanceEngine {
88
88
  */
89
89
  optimizeSVGContent(content, level = 'balanced') {
90
90
  const startTime = performance.now();
91
- let optimized = content;
92
- switch (level) {
93
- case 'fast':
94
- // Basic optimizations only
95
- optimized = this.applyFastOptimizations(content);
96
- break;
97
- case 'balanced':
98
- // Standard optimizations with good performance/quality balance
99
- optimized = this.applyBalancedOptimizations(content);
100
- break;
101
- case 'maximum':
102
- // Comprehensive optimizations
103
- optimized = this.applyMaximumOptimizations(content);
104
- break;
105
- }
91
+ // Object lookup map for optimization strategies - O(1) performance
92
+ const optimizationStrategies = {
93
+ fast: c => this.applyFastOptimizations(c),
94
+ balanced: c => this.applyBalancedOptimizations(c),
95
+ maximum: c => this.applyMaximumOptimizations(c),
96
+ };
97
+ const strategy = optimizationStrategies[level];
98
+ const optimized = strategy
99
+ ? strategy(content)
100
+ : this.applyBalancedOptimizations(content);
106
101
  const duration = performance.now() - startTime;
107
102
  const compressionRatio = (1 - optimized.length / content.length) * 100;
108
103
  logger.debug(`SVG optimization (${level}): ${compressionRatio.toFixed(1)}% reduction in ${duration.toFixed(2)}ms`);
@@ -21,12 +21,12 @@ export class PluginManager {
21
21
  loadBuiltinPlugins() {
22
22
  // SVG Optimizer Plugin
23
23
  this.registerPlugin({
24
- name: 'svg-optimizer',
24
+ name: 'optimize',
25
25
  version: '1.0.0',
26
- process: async (content, options) => {
27
- return this.optimizeSVG(content, options);
26
+ process: async (content, _options) => {
27
+ return this.optimizeSVG(content, _options);
28
28
  },
29
- validate: (options) => true,
29
+ validate: (_options) => true,
30
30
  });
31
31
  // Color Theme Plugin
32
32
  this.registerPlugin({
@@ -58,7 +58,6 @@ export interface CompiledStyles {
58
58
  export declare class SVGStyleCompiler {
59
59
  private static instance;
60
60
  private themes;
61
- private globalCSS;
62
61
  private constructor();
63
62
  static getInstance(): SVGStyleCompiler;
64
63
  /**
@@ -5,7 +5,6 @@
5
5
  export class SVGStyleCompiler {
6
6
  static instance;
7
7
  themes = new Map();
8
- globalCSS = [];
9
8
  constructor() {
10
9
  this.loadDefaultThemes();
11
10
  }
@@ -98,9 +97,7 @@ if (typeof document !== 'undefined') {
98
97
  const inlineStyleObject = Object.keys(compiled.inline).length > 0
99
98
  ? `const defaultStyles = ${JSON.stringify(compiled.inline, null, 2)};`
100
99
  : '';
101
- const classNames = compiled.classes.length > 0
102
- ? `'${compiled.classes.join(' ')} ' + (props.className || '')`
103
- : 'props.className';
100
+ // Note: className prop generation for CSS classes will be implemented in future enhancement
104
101
  return `${imports}
105
102
 
106
103
  /**
@@ -219,7 +216,7 @@ function getAnimationStyles(animationType: string): React.CSSProperties {
219
216
  return animations[animationType as keyof typeof animations] || {};
220
217
  }
221
218
 
222
- function getThemeStyles(theme: string): React.CSSProperties {
219
+ function getThemeStyles(theme: _theme): React.CSSProperties {
223
220
  if (theme === 'dark') {
224
221
  return { filter: 'invert(1) hue-rotate(180deg)' };
225
222
  }
@@ -363,7 +360,7 @@ if (typeof document !== 'undefined') {
363
360
  }
364
361
  return theme;
365
362
  }
366
- compileBaseStyles(options, compiled, theme) {
363
+ compileBaseStyles(options, compiled, _theme) {
367
364
  // Handle basic properties
368
365
  const styleMap = {
369
366
  fill: 'fill',
package/dist/index.d.ts CHANGED
@@ -87,6 +87,10 @@ export type { SVGConfig, ComponentGenerationOptions, OutputConfig, NamingConvent
87
87
  * Error handling types - Available from core error handler
88
88
  */
89
89
  export type { SVGError, ErrorRecoveryStrategy } from './core/error-handler.js';
90
+ /**
91
+ * Optimizer types - Available from optimizers
92
+ */
93
+ export { OptLevel } from './optimizers/types.js';
90
94
  /**
91
95
  * Component Templates - Pre-built component templates for various use cases
92
96
  * Provides: functional React component template with TypeScript support
package/dist/index.js CHANGED
@@ -93,6 +93,10 @@ export { buildAll, generateSVG } from './builder.js';
93
93
  * Provides: SVG cleaning, attribute normalization, and content optimization
94
94
  */
95
95
  export { clean } from './clean.js';
96
+ /**
97
+ * Optimizer types - Available from optimizers
98
+ */
99
+ export { OptLevel } from './optimizers/types.js';
96
100
  // ============================================================================
97
101
  // TEMPLATES
98
102
  // ============================================================================
@@ -39,7 +39,7 @@ import type { BabelPluginOptions } from '../types/integrations.js';
39
39
  * - Pre-build: Process all SVGs before Babel transformation
40
40
  * - On-demand: Transform SVG imports as they're encountered
41
41
  */
42
- export declare function svgerBabelPlugin(api: any, options?: BabelPluginOptions): any;
42
+ export declare function svgerBabelPlugin(_api: any, options?: BabelPluginOptions): any;
43
43
  /**
44
44
  * Create a Babel plugin instance with preset options
45
45
  *
@@ -85,9 +85,9 @@ async function processAllSVGs(options, processedFiles) {
85
85
  }
86
86
  }
87
87
  // Generate index file if enabled
88
- if (options.generateIndex && results.length > 0) {
88
+ if (options.generateIndex) {
89
89
  try {
90
- await generateIndexFile(outputPath, results, options);
90
+ await generateIndexFile(outputPath, options);
91
91
  }
92
92
  catch (error) {
93
93
  logger.error('Failed to generate index file:', error);
@@ -97,16 +97,35 @@ async function processAllSVGs(options, processedFiles) {
97
97
  }
98
98
  /**
99
99
  * Generate index file with all exports
100
+ * Scans the output directory for all existing component files
100
101
  */
101
- async function generateIndexFile(outputDir, results, options) {
102
- const extension = options.typescript ? 'ts' : 'js';
103
- const exports = results
104
- .filter(r => r.componentName)
105
- .map(r => `export { default as ${r.componentName} } from './${r.componentName}';`)
106
- .join('\n');
107
- const indexPath = path.join(outputDir, `index.${extension}`);
108
- await FileSystem.writeFile(indexPath, exports, 'utf-8');
109
- logger.debug(`Generated index file: ${indexPath}`);
102
+ async function generateIndexFile(outputDir, options) {
103
+ try {
104
+ // Scan output directory for all component files
105
+ const files = await FileSystem.readDir(outputDir);
106
+ const extension = options.typescript ? 'tsx' : 'jsx';
107
+ // Filter component files (exclude index files)
108
+ const componentFiles = files.filter(file => (file.endsWith(`.${extension}`) ||
109
+ file.endsWith('.ts') ||
110
+ file.endsWith('.js')) &&
111
+ !file.startsWith('index.'));
112
+ if (componentFiles.length === 0) {
113
+ logger.warn('No component files found for index generation');
114
+ return;
115
+ }
116
+ // Extract component names
117
+ const componentNames = componentFiles.map(file => path.basename(file, path.extname(file)));
118
+ const indexExtension = options.typescript ? 'ts' : 'js';
119
+ const exports = componentNames
120
+ .map(name => `export { default as ${name} } from './${name}';`)
121
+ .join('\n');
122
+ const indexPath = path.join(outputDir, `index.${indexExtension}`);
123
+ await FileSystem.writeFile(indexPath, exports, 'utf-8');
124
+ logger.debug(`Generated index file: ${indexPath}`);
125
+ }
126
+ catch (error) {
127
+ logger.error('Failed to generate index file:', error);
128
+ }
110
129
  }
111
130
  /**
112
131
  * Transform SVG import path to component path
@@ -130,7 +149,7 @@ function transformSVGImport(sourcePath, options) {
130
149
  * - Pre-build: Process all SVGs before Babel transformation
131
150
  * - On-demand: Transform SVG imports as they're encountered
132
151
  */
133
- export function svgerBabelPlugin(api, options = {}) {
152
+ export function svgerBabelPlugin(_api, options = {}) {
134
153
  const config = configService.readConfig();
135
154
  const pluginOptions = {
136
155
  source: options.source || config.source || './src/icons',
@@ -124,7 +124,7 @@ function convertToCommonJS(code, componentName) {
124
124
  let commonJsCode = code
125
125
  .replace(/import\s+React\s+from\s+['"]react['"]/g, "const React = require('react')")
126
126
  .replace(/export\s+default\s+/g, 'module.exports = ')
127
- .replace(/export\s+{([^}]+)}/g, (match, exports) => {
127
+ .replace(/export\s+{([^}]+)}/g, (_match, exports) => {
128
128
  const exportList = exports.split(',').map((e) => e.trim());
129
129
  return exportList
130
130
  .map((exp) => `module.exports.${exp} = ${exp}`)
@@ -140,7 +140,7 @@ async function processAllSVGs(options, processedFiles) {
140
140
  }
141
141
  // Generate index file
142
142
  if (options.generateIndex) {
143
- await generateIndexFile(outputDir, results, options);
143
+ await generateIndexFile(outputDir, options);
144
144
  }
145
145
  const successful = results.filter(r => r.success).length;
146
146
  logger.info(`SVGER: Processed ${successful}/${svgFiles.length} SVG files`);
@@ -182,16 +182,35 @@ async function processSVGFile(svgPath, outputDir, options) {
182
182
  }
183
183
  /**
184
184
  * Generate index file with all exports
185
+ * Scans the output directory for all existing component files
185
186
  */
186
- async function generateIndexFile(outputDir, results, options) {
187
- const extension = options.typescript ? 'ts' : 'js';
188
- const exports = results
189
- .filter(r => r.componentName)
190
- .map(r => `export { default as ${r.componentName} } from './${r.componentName}';`)
191
- .join('\n');
192
- const indexPath = path.join(outputDir, `index.${extension}`);
193
- await FileSystem.writeFile(indexPath, exports, 'utf-8');
194
- logger.debug(`Generated index file: ${indexPath}`);
187
+ async function generateIndexFile(outputDir, options) {
188
+ try {
189
+ // Scan output directory for all component files
190
+ const files = await FileSystem.readDir(outputDir);
191
+ const extension = options.typescript ? 'tsx' : 'jsx';
192
+ // Filter component files (exclude index files)
193
+ const componentFiles = files.filter(file => (file.endsWith(`.${extension}`) ||
194
+ file.endsWith('.ts') ||
195
+ file.endsWith('.js')) &&
196
+ !file.startsWith('index.'));
197
+ if (componentFiles.length === 0) {
198
+ logger.warn('No component files found for index generation');
199
+ return;
200
+ }
201
+ // Extract component names
202
+ const componentNames = componentFiles.map(file => path.basename(file, path.extname(file)));
203
+ const indexExtension = options.typescript ? 'ts' : 'js';
204
+ const exports = componentNames
205
+ .map(name => `export { default as ${name} } from './${name}';`)
206
+ .join('\n');
207
+ const indexPath = path.join(outputDir, `index.${indexExtension}`);
208
+ await FileSystem.writeFile(indexPath, exports, 'utf-8');
209
+ logger.debug(`Generated index file: ${indexPath}`);
210
+ }
211
+ catch (error) {
212
+ logger.error('Failed to generate index file:', error);
213
+ }
195
214
  }
196
215
  // Default export
197
216
  export default svgerRollupPlugin;
@@ -47,13 +47,9 @@ export function svgerVitePlugin(options = {}) {
47
47
  svgo: options.svgo !== undefined ? options.svgo : false,
48
48
  generateIndex: options.generateIndex !== undefined ? options.generateIndex : true,
49
49
  };
50
- let viteConfig;
51
50
  const processedFiles = new Set();
52
51
  return {
53
52
  name: PLUGIN_NAME,
54
- configResolved(resolvedConfig) {
55
- viteConfig = resolvedConfig;
56
- },
57
53
  async buildStart() {
58
54
  logger.info('SVGER Vite Plugin: Processing SVG files...');
59
55
  await processAllSVGs(pluginOptions, processedFiles);
@@ -164,7 +160,7 @@ async function processAllSVGs(options, processedFiles) {
164
160
  }
165
161
  // Generate index file
166
162
  if (options.generateIndex) {
167
- await generateIndexFile(outputDir, results, options);
163
+ await generateIndexFile(outputDir, options);
168
164
  }
169
165
  const successful = results.filter(r => r.success).length;
170
166
  logger.info(`SVGER: Processed ${successful}/${svgFiles.length} SVG files`);
@@ -206,16 +202,35 @@ async function processSVGFile(svgPath, outputDir, options) {
206
202
  }
207
203
  /**
208
204
  * Generate index file with all exports
205
+ * Scans the output directory for all existing component files
209
206
  */
210
- async function generateIndexFile(outputDir, results, options) {
211
- const extension = options.typescript ? 'ts' : 'js';
212
- const exports = results
213
- .filter(r => r.componentName)
214
- .map(r => `export { default as ${r.componentName} } from './${r.componentName}';`)
215
- .join('\n');
216
- const indexPath = path.join(outputDir, `index.${extension}`);
217
- await FileSystem.writeFile(indexPath, exports, 'utf-8');
218
- logger.debug(`Generated index file: ${indexPath}`);
207
+ async function generateIndexFile(outputDir, options) {
208
+ try {
209
+ // Scan output directory for all component files
210
+ const files = await FileSystem.readDir(outputDir);
211
+ const extension = options.typescript ? 'tsx' : 'jsx';
212
+ // Filter component files (exclude index files)
213
+ const componentFiles = files.filter(file => (file.endsWith(`.${extension}`) ||
214
+ file.endsWith('.ts') ||
215
+ file.endsWith('.js')) &&
216
+ !file.startsWith('index.'));
217
+ if (componentFiles.length === 0) {
218
+ logger.warn('No component files found for index generation');
219
+ return;
220
+ }
221
+ // Extract component names
222
+ const componentNames = componentFiles.map(file => path.basename(file, path.extname(file)));
223
+ const indexExtension = options.typescript ? 'ts' : 'js';
224
+ const exports = componentNames
225
+ .map(name => `export { default as ${name} } from './${name}';`)
226
+ .join('\n');
227
+ const indexPath = path.join(outputDir, `index.${indexExtension}`);
228
+ await FileSystem.writeFile(indexPath, exports, 'utf-8');
229
+ logger.debug(`Generated index file: ${indexPath}`);
230
+ }
231
+ catch (error) {
232
+ logger.error('Failed to generate index file:', error);
233
+ }
219
234
  }
220
235
  // Default export
221
236
  export default svgerVitePlugin;
@@ -45,6 +45,7 @@ export declare class SvgerWebpackPlugin {
45
45
  private processSVGFile;
46
46
  /**
47
47
  * Generate index file with all exports
48
+ * Scans the output directory for all existing component files
48
49
  */
49
50
  private generateIndexFile;
50
51
  /**
@@ -111,7 +111,7 @@ export class SvgerWebpackPlugin {
111
111
  }
112
112
  // Generate index file
113
113
  if (this.options.generateIndex) {
114
- await this.generateIndexFile(outputDir, results.filter(r => r.success));
114
+ await this.generateIndexFile(outputDir);
115
115
  }
116
116
  const successful = results.filter(r => r.success).length;
117
117
  logger.info(`SVGER: Processed ${successful}/${svgFiles.length} SVG files`);
@@ -176,16 +176,35 @@ export class SvgerWebpackPlugin {
176
176
  }
177
177
  /**
178
178
  * Generate index file with all exports
179
+ * Scans the output directory for all existing component files
179
180
  */
180
- async generateIndexFile(outputDir, results) {
181
- const extension = this.options.typescript ? 'ts' : 'js';
182
- const exports = results
183
- .filter(r => r.componentName)
184
- .map(r => `export { default as ${r.componentName} } from './${r.componentName}';`)
185
- .join('\n');
186
- const indexPath = path.join(outputDir, `index.${extension}`);
187
- await FileSystem.writeFile(indexPath, exports, 'utf-8');
188
- logger.debug(`Generated index file: ${indexPath}`);
181
+ async generateIndexFile(outputDir) {
182
+ try {
183
+ // Scan output directory for all component files
184
+ const files = await FileSystem.readDir(outputDir);
185
+ const extension = this.options.typescript ? 'tsx' : 'jsx';
186
+ // Filter component files (exclude index files)
187
+ const componentFiles = files.filter(file => (file.endsWith(`.${extension}`) ||
188
+ file.endsWith('.ts') ||
189
+ file.endsWith('.js')) &&
190
+ !file.startsWith('index.'));
191
+ if (componentFiles.length === 0) {
192
+ logger.warn('No component files found for index generation');
193
+ return;
194
+ }
195
+ // Extract component names
196
+ const componentNames = componentFiles.map(file => path.basename(file, path.extname(file)));
197
+ const indexExtension = this.options.typescript ? 'ts' : 'js';
198
+ const exports = componentNames
199
+ .map(name => `export { default as ${name} } from './${name}';`)
200
+ .join('\n');
201
+ const indexPath = path.join(outputDir, `index.${indexExtension}`);
202
+ await FileSystem.writeFile(indexPath, exports, 'utf-8');
203
+ logger.debug(`Generated index file: ${indexPath}`);
204
+ }
205
+ catch (error) {
206
+ logger.error('Failed to generate index file:', error);
207
+ }
189
208
  }
190
209
  /**
191
210
  * Get changed files from webpack
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Advanced Optimization Stages
3
+ * Wrappers for Phase 3-5 optimizers in the pipeline
4
+ */
5
+ import type { OptConfig } from './types.js';
6
+ /**
7
+ * Numeric optimization stage wrapper
8
+ * Phase 3.1: Coordinate precision, number formatting, etc.
9
+ */
10
+ export declare function numericStage(svg: string, config: OptConfig): Promise<string>;
11
+ /**
12
+ * Style optimization stage wrapper
13
+ * Phase 3.2: Color shortening, unit removal, style consolidation
14
+ */
15
+ export declare function styleStage(svg: string, config: OptConfig): Promise<string>;
16
+ /**
17
+ * Transform optimization stage wrapper
18
+ * Phase 3.3: Matrix simplification, transform shortening
19
+ */
20
+ export declare function transformStage(svg: string, config: OptConfig): Promise<string>;
21
+ /**
22
+ * Transform collapsing stage wrapper
23
+ * Phase 5.1: Propagate transforms, bake into coordinates, collapse groups
24
+ */
25
+ export declare function transformCollapseStage(svg: string, config: OptConfig): Promise<string>;
26
+ /**
27
+ * Path optimization stage wrapper
28
+ * Phase 4.1-4.2: Path parsing, command merging, H/V conversion, abs/rel optimization
29
+ */
30
+ export declare function pathOptimizationStage(svg: string, config: OptConfig): Promise<string>;
31
+ /**
32
+ * Path simplification stage wrapper
33
+ * Phase 4.4: Douglas-Peucker and Visvalingam-Whyatt algorithms
34
+ */
35
+ export declare function pathSimplificationStage(svg: string, config: OptConfig): Promise<string>;
36
+ /**
37
+ * Combined advanced optimization stage
38
+ * Applies all Phase 3-5 optimizations in optimal order
39
+ */
40
+ export declare function advancedOptimizationStage(svg: string, config: OptConfig): Promise<string>;