material-icon-theme 3.7.1 → 4.15.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 (920) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.json +51 -0
  3. package/.github/FUNDING.yml +3 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +34 -0
  5. package/.github/ISSUE_TEMPLATE/icon_request.md +27 -0
  6. package/.github/workflows/build.yml +45 -0
  7. package/.github/workflows/color-check.yml +22 -0
  8. package/.github/workflows/release.yml +73 -0
  9. package/.prettierrc +7 -0
  10. package/.vscode/extensions.json +3 -0
  11. package/.vscode/launch.json +43 -37
  12. package/.vscode/settings.json +14 -9
  13. package/.vscode/tasks.json +32 -20
  14. package/.vscodeignore +21 -19
  15. package/CHANGELOG.md +1125 -723
  16. package/CONTRIBUTING.md +62 -47
  17. package/LICENSE.md +8 -8
  18. package/README.md +209 -149
  19. package/build/web-extension.webpack.config.js +62 -0
  20. package/build/webpack.config.js +39 -0
  21. package/changelog.config.json +4 -0
  22. package/icons/3d.svg +1 -1
  23. package/icons/abc.svg +1 -0
  24. package/icons/actionscript.svg +1 -3
  25. package/icons/ada.svg +1 -0
  26. package/icons/adonis.svg +1 -0
  27. package/icons/advpl_include.svg +1 -0
  28. package/icons/advpl_prw.svg +1 -0
  29. package/icons/advpl_ptm.svg +1 -0
  30. package/icons/advpl_tlpp.svg +1 -0
  31. package/icons/android.svg +1 -1
  32. package/icons/angular-component.svg +1 -3
  33. package/icons/angular-directive.svg +1 -3
  34. package/icons/angular-guard.svg +1 -3
  35. package/icons/angular-pipe.svg +1 -3
  36. package/icons/angular-resolver.svg +1 -3
  37. package/icons/angular-service.svg +1 -3
  38. package/icons/angular.svg +1 -3
  39. package/icons/apiblueprint.svg +1 -5
  40. package/icons/apollo.svg +1 -0
  41. package/icons/applescript.svg +1 -3
  42. package/icons/appveyor.svg +1 -5
  43. package/icons/arduino.svg +1 -1
  44. package/icons/asciidoc.svg +1 -1
  45. package/icons/assembly.svg +1 -4
  46. package/icons/astro.svg +1 -0
  47. package/icons/astyle.svg +4 -0
  48. package/icons/audio.svg +1 -4
  49. package/icons/aurelia.svg +1 -107
  50. package/icons/authors.svg +1 -1
  51. package/icons/autohotkey.svg +1 -3
  52. package/icons/autoit.svg +1 -21
  53. package/icons/azure-pipelines.svg +1 -1
  54. package/icons/azure.svg +1 -1
  55. package/icons/babel.svg +1 -1
  56. package/icons/ballerina.svg +1 -1
  57. package/icons/bazel.svg +1 -1
  58. package/icons/bicep.svg +1 -0
  59. package/icons/bitbucket.svg +1 -1
  60. package/icons/bithound.svg +1 -1
  61. package/icons/blink.svg +1 -4
  62. package/icons/blink_light.svg +1 -4
  63. package/icons/blitz.svg +4 -0
  64. package/icons/bower.svg +1 -1
  65. package/icons/brainfuck.svg +1 -0
  66. package/icons/browserlist.svg +1 -6
  67. package/icons/browserlist_light.svg +1 -7
  68. package/icons/buck.svg +1 -0
  69. package/icons/bucklescript.svg +1 -3
  70. package/icons/buildkite.svg +1 -1
  71. package/icons/c.svg +1 -1
  72. package/icons/cabal.svg +1 -8
  73. package/icons/cake.svg +1 -1
  74. package/icons/capacitor.svg +1 -0
  75. package/icons/certificate.svg +1 -3
  76. package/icons/changelog.svg +1 -1
  77. package/icons/chess.svg +1 -0
  78. package/icons/chess_light.svg +1 -0
  79. package/icons/circleci.svg +1 -14
  80. package/icons/circleci_light.svg +1 -14
  81. package/icons/clojure.svg +1 -1
  82. package/icons/cloudfoundry.svg +1 -24
  83. package/icons/cmake.svg +1 -7
  84. package/icons/coala.svg +1 -0
  85. package/icons/cobol.svg +1 -0
  86. package/icons/coconut.svg +1 -0
  87. package/icons/code-climate.svg +1 -4
  88. package/icons/code-climate_light.svg +1 -4
  89. package/icons/codecov.svg +1 -0
  90. package/icons/codeowners.svg +1 -0
  91. package/icons/coffee.svg +1 -3
  92. package/icons/coldfusion.svg +1 -7
  93. package/icons/command.svg +1 -0
  94. package/icons/commitlint.svg +1 -0
  95. package/icons/conduct.svg +1 -4
  96. package/icons/console.svg +1 -3
  97. package/icons/contributing.svg +1 -4
  98. package/icons/cpp.svg +1 -1
  99. package/icons/credits.svg +1 -3
  100. package/icons/crystal.svg +1 -4
  101. package/icons/crystal_light.svg +1 -4
  102. package/icons/csharp.svg +1 -3
  103. package/icons/css-map.svg +1 -1
  104. package/icons/css.svg +1 -3
  105. package/icons/cucumber.svg +1 -4
  106. package/icons/cuda.svg +1 -4
  107. package/icons/cypress.svg +4 -0
  108. package/icons/d.svg +1 -1
  109. package/icons/dart.svg +1 -9
  110. package/icons/database.svg +1 -1
  111. package/icons/denizenscript.svg +1 -0
  112. package/icons/dependabot.svg +4 -0
  113. package/icons/dhall.svg +1 -0
  114. package/icons/diff.svg +1 -1
  115. package/icons/dinophp.svg +16 -0
  116. package/icons/disc.svg +1 -0
  117. package/icons/django.svg +1 -1
  118. package/icons/docker.svg +1 -4
  119. package/icons/document.svg +1 -3
  120. package/icons/dotjs.svg +1 -8
  121. package/icons/drawio.svg +1 -0
  122. package/icons/drone.svg +1 -6
  123. package/icons/drone_light.svg +1 -6
  124. package/icons/dune.svg +1 -0
  125. package/icons/edge.svg +1 -1
  126. package/icons/editorconfig.svg +1 -9
  127. package/icons/ejs.svg +1 -7
  128. package/icons/elixir.svg +1 -1
  129. package/icons/elm.svg +1 -1
  130. package/icons/email.svg +1 -3
  131. package/icons/ember.svg +1 -0
  132. package/icons/erlang.svg +1 -5
  133. package/icons/eslint.svg +1 -3
  134. package/icons/exe.svg +1 -3
  135. package/icons/fastlane.svg +1 -1
  136. package/icons/favicon.svg +1 -3
  137. package/icons/figma.svg +10 -0
  138. package/icons/file.svg +1 -3
  139. package/icons/firebase.svg +1 -9
  140. package/icons/flash.svg +1 -12
  141. package/icons/flow.svg +1 -7
  142. package/icons/folder-admin-open.svg +1 -0
  143. package/icons/folder-admin.svg +1 -0
  144. package/icons/folder-android-open.svg +1 -1
  145. package/icons/folder-android.svg +1 -1
  146. package/icons/folder-angular-open.svg +2 -0
  147. package/icons/folder-angular.svg +2 -0
  148. package/icons/folder-animation-open.svg +1 -1
  149. package/icons/folder-animation.svg +1 -1
  150. package/icons/folder-ansible-open.svg +1 -1
  151. package/icons/folder-ansible.svg +1 -1
  152. package/icons/folder-api-open.svg +1 -4
  153. package/icons/folder-api.svg +1 -4
  154. package/icons/folder-apollo-open.svg +1 -0
  155. package/icons/folder-apollo.svg +1 -0
  156. package/icons/folder-app-open.svg +1 -1
  157. package/icons/folder-app.svg +1 -1
  158. package/icons/folder-archive-open.svg +1 -1
  159. package/icons/folder-archive.svg +1 -1
  160. package/icons/folder-audio-open.svg +1 -2
  161. package/icons/folder-audio.svg +1 -2
  162. package/icons/folder-aurelia-open.svg +1 -2
  163. package/icons/folder-aurelia.svg +1 -2
  164. package/icons/folder-aws-open.svg +1 -2
  165. package/icons/folder-aws.svg +1 -2
  166. package/icons/folder-azure-pipelines-open.svg +1 -0
  167. package/icons/folder-azure-pipelines.svg +1 -0
  168. package/icons/folder-base-open.svg +1 -0
  169. package/icons/folder-base.svg +1 -0
  170. package/icons/folder-batch-open.svg +1 -1
  171. package/icons/folder-batch.svg +1 -1
  172. package/icons/folder-benchmark-open.svg +1 -1
  173. package/icons/folder-benchmark.svg +1 -1
  174. package/icons/folder-bower-open.svg +1 -2
  175. package/icons/folder-bower.svg +1 -2
  176. package/icons/folder-cart-open.svg +1 -0
  177. package/icons/folder-cart.svg +1 -0
  178. package/icons/folder-ci-open.svg +1 -1
  179. package/icons/folder-ci.svg +1 -1
  180. package/icons/folder-circleci-open.svg +1 -2
  181. package/icons/folder-circleci.svg +1 -1
  182. package/icons/folder-class-open.svg +1 -1
  183. package/icons/folder-class.svg +1 -1
  184. package/icons/folder-client-open.svg +1 -1
  185. package/icons/folder-client.svg +1 -1
  186. package/icons/folder-cluster-open.svg +1 -8
  187. package/icons/folder-cluster.svg +1 -8
  188. package/icons/folder-cobol-open.svg +1 -0
  189. package/icons/folder-cobol.svg +1 -0
  190. package/icons/folder-command-open.svg +1 -4
  191. package/icons/folder-command.svg +1 -4
  192. package/icons/folder-components-open.svg +1 -2
  193. package/icons/folder-components.svg +1 -2
  194. package/icons/folder-config-open.svg +1 -2
  195. package/icons/folder-config.svg +1 -2
  196. package/icons/folder-connection-open.svg +1 -0
  197. package/icons/folder-connection.svg +1 -0
  198. package/icons/folder-constant-open.svg +1 -1
  199. package/icons/folder-constant.svg +1 -1
  200. package/icons/folder-container-open.svg +1 -1
  201. package/icons/folder-container.svg +1 -1
  202. package/icons/folder-content-open.svg +1 -1
  203. package/icons/folder-content.svg +1 -1
  204. package/icons/folder-context-open.svg +1 -0
  205. package/icons/folder-context.svg +1 -0
  206. package/icons/folder-contract-open.svg +1 -0
  207. package/icons/folder-contract.svg +1 -0
  208. package/icons/folder-controller-open.svg +1 -1
  209. package/icons/folder-controller.svg +1 -1
  210. package/icons/folder-core-open.svg +1 -1
  211. package/icons/folder-core.svg +1 -1
  212. package/icons/folder-coverage-open.svg +1 -1
  213. package/icons/folder-coverage.svg +1 -1
  214. package/icons/folder-css-open.svg +1 -2
  215. package/icons/folder-css.svg +1 -2
  216. package/icons/folder-custom-open.svg +1 -1
  217. package/icons/folder-custom.svg +1 -1
  218. package/icons/folder-cypress-open.svg +5 -0
  219. package/icons/folder-cypress.svg +5 -0
  220. package/icons/folder-database-open.svg +1 -2
  221. package/icons/folder-database.svg +1 -2
  222. package/icons/folder-debug-open.svg +1 -1
  223. package/icons/folder-debug.svg +1 -1
  224. package/icons/folder-delta-open.svg +1 -4
  225. package/icons/folder-delta.svg +1 -4
  226. package/icons/folder-dist-open.svg +1 -2
  227. package/icons/folder-dist.svg +1 -2
  228. package/icons/folder-docker-open.svg +1 -2
  229. package/icons/folder-docker.svg +1 -5
  230. package/icons/folder-docs-open.svg +1 -2
  231. package/icons/folder-docs.svg +1 -2
  232. package/icons/folder-download-open.svg +1 -1
  233. package/icons/folder-download.svg +1 -1
  234. package/icons/folder-dump-open.svg +1 -1
  235. package/icons/folder-dump.svg +1 -1
  236. package/icons/folder-environment-open.svg +1 -1
  237. package/icons/folder-environment.svg +1 -1
  238. package/icons/folder-error-open.svg +1 -0
  239. package/icons/folder-error.svg +1 -0
  240. package/icons/folder-event-open.svg +1 -0
  241. package/icons/folder-event.svg +1 -0
  242. package/icons/folder-examples-open.svg +1 -1
  243. package/icons/folder-examples.svg +1 -1
  244. package/icons/folder-expo-open.svg +1 -1
  245. package/icons/folder-expo.svg +1 -4
  246. package/icons/folder-export-open.svg +1 -1
  247. package/icons/folder-export.svg +1 -5
  248. package/icons/folder-fastlane-open.svg +1 -1
  249. package/icons/folder-fastlane.svg +1 -1
  250. package/icons/folder-firebase-open.svg +1 -0
  251. package/icons/folder-firebase.svg +1 -0
  252. package/icons/folder-flow-open.svg +1 -1
  253. package/icons/folder-flow.svg +1 -1
  254. package/icons/folder-font-open.svg +1 -1
  255. package/icons/folder-font.svg +1 -1
  256. package/icons/folder-functions-open.svg +1 -1
  257. package/icons/folder-functions.svg +1 -1
  258. package/icons/folder-generator-open.svg +1 -1
  259. package/icons/folder-generator.svg +1 -1
  260. package/icons/folder-git-open.svg +1 -1
  261. package/icons/folder-git.svg +1 -1
  262. package/icons/folder-github-open.svg +1 -2
  263. package/icons/folder-github.svg +1 -2
  264. package/icons/folder-gitlab-open.svg +1 -2
  265. package/icons/folder-gitlab.svg +1 -2
  266. package/icons/folder-global-open.svg +1 -2
  267. package/icons/folder-global.svg +1 -2
  268. package/icons/folder-gradle-open.svg +1 -2
  269. package/icons/folder-gradle.svg +1 -2
  270. package/icons/folder-graphql-open.svg +1 -1
  271. package/icons/folder-graphql.svg +1 -1
  272. package/icons/folder-guard-open.svg +1 -1
  273. package/icons/folder-guard.svg +1 -1
  274. package/icons/folder-gulp-open.svg +1 -0
  275. package/icons/folder-gulp.svg +1 -0
  276. package/icons/folder-helper-open.svg +1 -1
  277. package/icons/folder-helper.svg +1 -1
  278. package/icons/folder-home-open.svg +1 -0
  279. package/icons/folder-home.svg +1 -0
  280. package/icons/folder-hook-open.svg +1 -1
  281. package/icons/folder-hook.svg +1 -1
  282. package/icons/folder-husky-open.svg +1 -0
  283. package/icons/folder-husky.svg +1 -0
  284. package/icons/folder-i18n-open.svg +1 -2
  285. package/icons/folder-i18n.svg +1 -2
  286. package/icons/folder-images-open.svg +1 -2
  287. package/icons/folder-images.svg +1 -2
  288. package/icons/folder-import-open.svg +1 -1
  289. package/icons/folder-import.svg +1 -1
  290. package/icons/folder-include-open.svg +1 -2
  291. package/icons/folder-include.svg +1 -2
  292. package/icons/folder-intellij-open.svg +1 -0
  293. package/icons/folder-intellij-open_light.svg +1 -0
  294. package/icons/folder-intellij.svg +1 -0
  295. package/icons/folder-intellij_light.svg +1 -0
  296. package/icons/folder-interface-open.svg +1 -0
  297. package/icons/folder-interface.svg +1 -0
  298. package/icons/folder-ios-open.svg +1 -1
  299. package/icons/folder-ios.svg +1 -1
  300. package/icons/folder-java-open.svg +2 -0
  301. package/icons/folder-java.svg +2 -0
  302. package/icons/folder-javascript-open.svg +1 -2
  303. package/icons/folder-javascript.svg +1 -2
  304. package/icons/folder-jinja-open.svg +1 -2
  305. package/icons/folder-jinja-open_light.svg +1 -2
  306. package/icons/folder-jinja.svg +1 -2
  307. package/icons/folder-jinja_light.svg +1 -2
  308. package/icons/folder-job-open.svg +1 -1
  309. package/icons/folder-job.svg +1 -1
  310. package/icons/folder-json-open.svg +1 -0
  311. package/icons/folder-json.svg +1 -0
  312. package/icons/folder-keys-open.svg +1 -1
  313. package/icons/folder-keys.svg +1 -1
  314. package/icons/folder-kubernetes-open.svg +1 -1
  315. package/icons/folder-kubernetes.svg +1 -5
  316. package/icons/folder-layout-open.svg +1 -1
  317. package/icons/folder-layout.svg +1 -1
  318. package/icons/folder-less-open.svg +1 -1
  319. package/icons/folder-less.svg +1 -1
  320. package/icons/folder-lib-open.svg +1 -2
  321. package/icons/folder-lib.svg +1 -2
  322. package/icons/folder-log-open.svg +1 -2
  323. package/icons/folder-log.svg +1 -2
  324. package/icons/folder-mail-open.svg +1 -1
  325. package/icons/folder-mail.svg +1 -1
  326. package/icons/folder-mappings-open.svg +1 -1
  327. package/icons/folder-mappings.svg +1 -1
  328. package/icons/folder-markdown-open.svg +1 -2
  329. package/icons/folder-markdown.svg +1 -2
  330. package/icons/folder-messages-open.svg +1 -1
  331. package/icons/folder-messages.svg +1 -1
  332. package/icons/folder-meta-open.svg +1 -1
  333. package/icons/folder-meta.svg +1 -1
  334. package/icons/folder-middleware-open.svg +1 -1
  335. package/icons/folder-middleware.svg +1 -1
  336. package/icons/folder-mjml-open.svg +1 -0
  337. package/icons/folder-mjml.svg +1 -0
  338. package/icons/folder-mobile-open.svg +1 -0
  339. package/icons/folder-mobile.svg +1 -0
  340. package/icons/folder-mock-open.svg +1 -1
  341. package/icons/folder-mock.svg +1 -1
  342. package/icons/folder-next-open.svg +2 -0
  343. package/icons/folder-next.svg +2 -0
  344. package/icons/folder-ngrx-actions-open.svg +1 -2
  345. package/icons/folder-ngrx-actions.svg +1 -2
  346. package/icons/folder-ngrx-effects-open.svg +1 -2
  347. package/icons/folder-ngrx-effects.svg +1 -2
  348. package/icons/folder-ngrx-entities-open.svg +1 -2
  349. package/icons/folder-ngrx-entities.svg +1 -2
  350. package/icons/folder-ngrx-reducer-open.svg +1 -2
  351. package/icons/folder-ngrx-reducer.svg +1 -2
  352. package/icons/folder-ngrx-selectors-open.svg +1 -0
  353. package/icons/folder-ngrx-selectors.svg +1 -0
  354. package/icons/folder-ngrx-state-open.svg +1 -1
  355. package/icons/folder-ngrx-state.svg +1 -1
  356. package/icons/folder-ngrx-store-open.svg +1 -1
  357. package/icons/folder-ngrx-store.svg +1 -1
  358. package/icons/folder-node-open.svg +1 -1
  359. package/icons/folder-node.svg +1 -1
  360. package/icons/folder-nuxt-open.svg +1 -0
  361. package/icons/folder-nuxt.svg +1 -0
  362. package/icons/folder-other-open.svg +1 -1
  363. package/icons/folder-other.svg +1 -1
  364. package/icons/folder-packages-open.svg +1 -1
  365. package/icons/folder-packages.svg +1 -1
  366. package/icons/folder-php-open.svg +1 -2
  367. package/icons/folder-php.svg +1 -2
  368. package/icons/folder-phpmailer-open.svg +1 -2
  369. package/icons/folder-phpmailer.svg +1 -2
  370. package/icons/folder-pipe-open.svg +1 -1
  371. package/icons/folder-pipe.svg +1 -1
  372. package/icons/folder-plugin-open.svg +1 -1
  373. package/icons/folder-plugin.svg +1 -1
  374. package/icons/folder-prisma-open.svg +1 -1
  375. package/icons/folder-prisma.svg +1 -1
  376. package/icons/folder-private-open.svg +1 -1
  377. package/icons/folder-private.svg +1 -1
  378. package/icons/folder-project-open.svg +1 -0
  379. package/icons/folder-project.svg +1 -0
  380. package/icons/folder-public-open.svg +1 -2
  381. package/icons/folder-public.svg +1 -2
  382. package/icons/folder-python-open.svg +1 -1
  383. package/icons/folder-python.svg +1 -1
  384. package/icons/folder-quasar-open.svg +1 -0
  385. package/icons/folder-quasar.svg +1 -0
  386. package/icons/folder-queue-open.svg +2 -0
  387. package/icons/folder-queue.svg +2 -0
  388. package/icons/folder-react-components-open.svg +1 -2
  389. package/icons/folder-react-components.svg +1 -2
  390. package/icons/folder-redux-actions-open.svg +1 -1
  391. package/icons/folder-redux-actions.svg +1 -1
  392. package/icons/folder-redux-reducer-open.svg +1 -2
  393. package/icons/folder-redux-reducer.svg +1 -2
  394. package/icons/folder-redux-selector-open.svg +1 -0
  395. package/icons/folder-redux-selector.svg +1 -0
  396. package/icons/folder-redux-store-open.svg +1 -2
  397. package/icons/folder-redux-store.svg +1 -2
  398. package/icons/folder-resolver-open.svg +2 -0
  399. package/icons/folder-resolver.svg +2 -0
  400. package/icons/folder-resource-open.svg +1 -2
  401. package/icons/folder-resource.svg +1 -2
  402. package/icons/folder-review-open.svg +1 -1
  403. package/icons/folder-review.svg +1 -1
  404. package/icons/folder-routes-open.svg +1 -1
  405. package/icons/folder-routes.svg +1 -1
  406. package/icons/folder-rules-open.svg +1 -1
  407. package/icons/folder-rules.svg +1 -1
  408. package/icons/folder-sass-open.svg +1 -1
  409. package/icons/folder-sass.svg +1 -1
  410. package/icons/folder-scala-open.svg +1 -0
  411. package/icons/folder-scala.svg +1 -0
  412. package/icons/folder-scripts-open.svg +1 -2
  413. package/icons/folder-scripts.svg +1 -2
  414. package/icons/folder-secure-open.svg +1 -1
  415. package/icons/folder-secure.svg +1 -1
  416. package/icons/folder-server-open.svg +1 -1
  417. package/icons/folder-server.svg +1 -1
  418. package/icons/folder-serverless-open.svg +5 -1
  419. package/icons/folder-serverless.svg +5 -1
  420. package/icons/folder-shared-open.svg +1 -1
  421. package/icons/folder-shared.svg +1 -1
  422. package/icons/folder-src-open.svg +1 -2
  423. package/icons/folder-src.svg +1 -2
  424. package/icons/folder-stack-open.svg +1 -1
  425. package/icons/folder-stack.svg +1 -1
  426. package/icons/folder-stencil-open.svg +1 -0
  427. package/icons/folder-stencil.svg +1 -0
  428. package/icons/folder-storybook-open.svg +1 -0
  429. package/icons/folder-storybook.svg +1 -0
  430. package/icons/folder-stylus-open.svg +1 -1
  431. package/icons/folder-stylus.svg +1 -1
  432. package/icons/folder-sublime-open.svg +1 -2
  433. package/icons/folder-sublime.svg +1 -2
  434. package/icons/folder-svelte-open.svg +1 -0
  435. package/icons/folder-svelte.svg +1 -0
  436. package/icons/folder-svg-open.svg +1 -1
  437. package/icons/folder-svg.svg +1 -1
  438. package/icons/folder-syntax-open.svg +1 -1
  439. package/icons/folder-syntax.svg +1 -1
  440. package/icons/folder-target-open.svg +2 -0
  441. package/icons/folder-target.svg +2 -0
  442. package/icons/folder-tasks-open.svg +1 -1
  443. package/icons/folder-tasks.svg +1 -1
  444. package/icons/folder-temp-open.svg +1 -2
  445. package/icons/folder-temp.svg +1 -2
  446. package/icons/folder-template-open.svg +1 -1
  447. package/icons/folder-template.svg +1 -1
  448. package/icons/folder-terraform-open.svg +1 -0
  449. package/icons/folder-terraform.svg +1 -0
  450. package/icons/folder-test-open.svg +1 -1
  451. package/icons/folder-test.svg +1 -1
  452. package/icons/folder-theme-open.svg +1 -2
  453. package/icons/folder-theme.svg +1 -2
  454. package/icons/folder-tools-open.svg +1 -1
  455. package/icons/folder-tools.svg +1 -1
  456. package/icons/folder-typescript-open.svg +1 -1
  457. package/icons/folder-typescript.svg +1 -1
  458. package/icons/folder-unity-open.svg +2 -0
  459. package/icons/folder-unity.svg +2 -0
  460. package/icons/folder-update-open.svg +1 -0
  461. package/icons/folder-update.svg +1 -0
  462. package/icons/folder-upload-open.svg +1 -1
  463. package/icons/folder-upload.svg +1 -1
  464. package/icons/folder-utils-open.svg +1 -1
  465. package/icons/folder-utils.svg +1 -1
  466. package/icons/folder-vercel-open.svg +4 -0
  467. package/icons/folder-vercel.svg +4 -0
  468. package/icons/folder-video-open.svg +1 -2
  469. package/icons/folder-video.svg +1 -2
  470. package/icons/folder-views-open.svg +1 -1
  471. package/icons/folder-views.svg +1 -1
  472. package/icons/folder-vm-open.svg +1 -1
  473. package/icons/folder-vm.svg +1 -1
  474. package/icons/folder-vscode-open.svg +1 -2
  475. package/icons/folder-vscode.svg +1 -2
  476. package/icons/folder-vue-directives-open.svg +1 -0
  477. package/icons/folder-vue-directives.svg +1 -0
  478. package/icons/folder-vue-open.svg +1 -1
  479. package/icons/folder-vue.svg +1 -1
  480. package/icons/folder-vuepress-open.svg +1 -0
  481. package/icons/folder-vuepress.svg +1 -0
  482. package/icons/folder-vuex-store-open.svg +1 -1
  483. package/icons/folder-vuex-store.svg +1 -1
  484. package/icons/folder-wakatime-open.svg +1 -2
  485. package/icons/folder-wakatime.svg +1 -2
  486. package/icons/folder-webpack-open.svg +1 -2
  487. package/icons/folder-webpack.svg +1 -2
  488. package/icons/folder-wordpress-open.svg +1 -2
  489. package/icons/folder-wordpress.svg +1 -1
  490. package/icons/folder-yarn-open.svg +1 -0
  491. package/icons/folder-yarn.svg +1 -0
  492. package/icons/font.svg +1 -3
  493. package/icons/forth.svg +1 -0
  494. package/icons/fortran.svg +1 -0
  495. package/icons/foxpro.svg +1 -1
  496. package/icons/fsharp.svg +1 -7
  497. package/icons/fusebox.svg +1 -20
  498. package/icons/gatsby.svg +1 -5
  499. package/icons/gcp.svg +1 -0
  500. package/icons/gemfile.svg +1 -1
  501. package/icons/gemini.svg +1 -0
  502. package/icons/git.svg +1 -4
  503. package/icons/gitlab.svg +1 -43
  504. package/icons/gitpod.svg +1 -0
  505. package/icons/gleam.svg +4 -0
  506. package/icons/go-mod.svg +1 -0
  507. package/icons/go.svg +1 -8
  508. package/icons/go_gopher.svg +1 -25
  509. package/icons/godot-assets.svg +1 -1
  510. package/icons/godot.svg +1 -1
  511. package/icons/gradle.svg +1 -3
  512. package/icons/grain.svg +1 -0
  513. package/icons/graphcool.svg +1 -6
  514. package/icons/graphql.svg +1 -11
  515. package/icons/gridsome.svg +4 -0
  516. package/icons/groovy.svg +1 -3
  517. package/icons/grunt.svg +1 -1
  518. package/icons/gulp.svg +1 -3
  519. package/icons/h.svg +1 -6
  520. package/icons/hack.svg +1 -2
  521. package/icons/haml.svg +1 -5
  522. package/icons/handlebars.svg +1 -3
  523. package/icons/hardhat.svg +4 -0
  524. package/icons/haskell.svg +1 -8
  525. package/icons/haxe.svg +1 -17
  526. package/icons/hcl.svg +1 -1
  527. package/icons/hcl_light.svg +1 -1
  528. package/icons/helm.svg +1 -1
  529. package/icons/heroku.svg +1 -1
  530. package/icons/hex.svg +1 -0
  531. package/icons/horusec.svg +1 -0
  532. package/icons/hpp.svg +1 -7
  533. package/icons/html.svg +1 -3
  534. package/icons/http.svg +1 -3
  535. package/icons/husky.svg +1 -0
  536. package/icons/i18n.svg +1 -1
  537. package/icons/idris.svg +1 -0
  538. package/icons/image.svg +1 -3
  539. package/icons/imba.svg +1 -0
  540. package/icons/ionic.svg +1 -1
  541. package/icons/istanbul.svg +1 -1
  542. package/icons/jar.svg +1 -0
  543. package/icons/java.svg +1 -3
  544. package/icons/javaclass.svg +1 -0
  545. package/icons/javascript-map.svg +1 -6
  546. package/icons/javascript.svg +1 -3
  547. package/icons/jenkins.svg +1 -1
  548. package/icons/jest.svg +1 -1
  549. package/icons/jinja.svg +1 -17
  550. package/icons/jinja_light.svg +1 -17
  551. package/icons/jsconfig.svg +1 -0
  552. package/icons/json.svg +1 -1
  553. package/icons/julia.svg +1 -9
  554. package/icons/jupyter.svg +1 -1
  555. package/icons/karma.svg +1 -8
  556. package/icons/key.svg +1 -3
  557. package/icons/kivy.svg +1 -9
  558. package/icons/kl.svg +1 -8
  559. package/icons/kotlin.svg +1 -14
  560. package/icons/kusto.svg +1 -0
  561. package/icons/laravel.svg +1 -5
  562. package/icons/lerna.svg +1 -0
  563. package/icons/less.svg +1 -1
  564. package/icons/lib.svg +1 -3
  565. package/icons/lighthouse.svg +3 -0
  566. package/icons/lilypond.svg +1 -0
  567. package/icons/liquid.svg +1 -0
  568. package/icons/lisp.svg +1 -0
  569. package/icons/livescript.svg +1 -18
  570. package/icons/lock.svg +1 -3
  571. package/icons/log.svg +1 -4
  572. package/icons/lolcode.svg +1 -0
  573. package/icons/lua.svg +1 -7
  574. package/icons/makefile.svg +1 -1
  575. package/icons/markdown.svg +1 -3
  576. package/icons/markojs.svg +1 -12
  577. package/icons/mathematica.svg +1 -3
  578. package/icons/matlab.svg +1 -8
  579. package/icons/maven.svg +1 -0
  580. package/icons/mdx.svg +1 -1
  581. package/icons/merlin.svg +1 -5
  582. package/icons/meson.svg +1 -0
  583. package/icons/minecraft.svg +1 -0
  584. package/icons/mint.svg +1 -1
  585. package/icons/mjml.svg +1 -4
  586. package/icons/mocha.svg +1 -2
  587. package/icons/modernizr.svg +1 -0
  588. package/icons/moonscript.svg +1 -0
  589. package/icons/mxml.svg +1 -3
  590. package/icons/ndst.svg +7 -0
  591. package/icons/nest-controller.svg +1 -0
  592. package/icons/nest-decorator.svg +1 -0
  593. package/icons/nest-filter.svg +1 -0
  594. package/icons/nest-gateway.svg +1 -0
  595. package/icons/nest-guard.svg +1 -0
  596. package/icons/nest-middleware.svg +1 -0
  597. package/icons/nest-module.svg +1 -0
  598. package/icons/nest-pipe.svg +1 -0
  599. package/icons/nest-resolver.svg +1 -0
  600. package/icons/nest-service.svg +1 -0
  601. package/icons/nest.svg +1 -0
  602. package/icons/netlify.svg +1 -0
  603. package/icons/next.svg +3 -0
  604. package/icons/next_light.svg +3 -0
  605. package/icons/nginx.svg +1 -0
  606. package/icons/ngrx-actions.svg +1 -4
  607. package/icons/ngrx-effects.svg +1 -4
  608. package/icons/ngrx-entity.svg +1 -4
  609. package/icons/ngrx-reducer.svg +1 -4
  610. package/icons/ngrx-selectors.svg +1 -0
  611. package/icons/ngrx-state.svg +1 -4
  612. package/icons/nim.svg +1 -1
  613. package/icons/nix.svg +1 -6
  614. package/icons/nodejs.svg +1 -3
  615. package/icons/nodejs_alt.svg +1 -1
  616. package/icons/nodemon.svg +1 -7
  617. package/icons/npm.svg +1 -8
  618. package/icons/nrwl.svg +1 -0
  619. package/icons/nuget.svg +1 -0
  620. package/icons/nunjucks.svg +1 -3
  621. package/icons/nuxt.svg +1 -0
  622. package/icons/nuxt_light.svg +1 -0
  623. package/icons/ocaml.svg +1 -1
  624. package/icons/odin.svg +6 -0
  625. package/icons/opa.svg +1 -0
  626. package/icons/opam.svg +1 -0
  627. package/icons/parcel.svg +4 -0
  628. package/icons/pascal.svg +1 -0
  629. package/icons/pawn.svg +1 -0
  630. package/icons/pdf.svg +1 -1
  631. package/icons/percy.svg +1 -0
  632. package/icons/perl.svg +1 -3
  633. package/icons/php-cs-fixer.svg +1 -0
  634. package/icons/php.svg +1 -1
  635. package/icons/php_elephant.svg +1 -4
  636. package/icons/php_elephant_pink.svg +1 -0
  637. package/icons/phpunit.svg +1 -0
  638. package/icons/pipeline.svg +1 -0
  639. package/icons/playwright.svg +7 -0
  640. package/icons/pnpm.svg +9 -0
  641. package/icons/pnpm_light.svg +7 -0
  642. package/icons/poetry.svg +1 -0
  643. package/icons/postcss.svg +1 -9
  644. package/icons/posthtml.svg +1 -0
  645. package/icons/powerpoint.svg +1 -3
  646. package/icons/powershell.svg +1 -1
  647. package/icons/prettier.svg +1 -35
  648. package/icons/prisma.svg +1 -1
  649. package/icons/processing.svg +10 -5
  650. package/icons/prolog.svg +1 -0
  651. package/icons/proto.svg +1 -0
  652. package/icons/protractor.svg +1 -1
  653. package/icons/pug.svg +1 -22
  654. package/icons/puppet.svg +1 -13
  655. package/icons/purescript.svg +1 -1
  656. package/icons/python-misc.svg +1 -1
  657. package/icons/python.svg +1 -8
  658. package/icons/qsharp.svg +1 -0
  659. package/icons/quasar.svg +1 -0
  660. package/icons/r.svg +1 -4
  661. package/icons/racket.svg +1 -1
  662. package/icons/raml.svg +1 -1
  663. package/icons/razor.svg +1 -1
  664. package/icons/react.svg +1 -3
  665. package/icons/react_ts.svg +1 -1
  666. package/icons/readme.svg +1 -3
  667. package/icons/reason.svg +1 -3
  668. package/icons/red.svg +1 -8
  669. package/icons/redux-action.svg +1 -1
  670. package/icons/redux-reducer.svg +1 -1
  671. package/icons/redux-selector.svg +1 -0
  672. package/icons/redux-store.svg +1 -1
  673. package/icons/remix.svg +4 -0
  674. package/icons/remix_light.svg +4 -0
  675. package/icons/renovate.svg +1 -0
  676. package/icons/replit.svg +1 -0
  677. package/icons/rescript.svg +1 -0
  678. package/icons/restql.svg +1 -60
  679. package/icons/riot.svg +1 -3
  680. package/icons/roadmap.svg +1 -0
  681. package/icons/robot.svg +1 -1
  682. package/icons/robots.svg +1 -0
  683. package/icons/rollup.svg +1 -50
  684. package/icons/rome.svg +5 -0
  685. package/icons/routing.svg +1 -3
  686. package/icons/rubocop.svg +1 -0
  687. package/icons/rubocop_light.svg +1 -0
  688. package/icons/ruby.svg +1 -3
  689. package/icons/rust.svg +1 -3
  690. package/icons/salesforce.svg +1 -0
  691. package/icons/san.svg +1 -1
  692. package/icons/sas.svg +1 -0
  693. package/icons/sass.svg +1 -1
  694. package/icons/sbt.svg +1 -6
  695. package/icons/scala.svg +1 -1
  696. package/icons/scheme.svg +1 -1
  697. package/icons/search.svg +1 -0
  698. package/icons/semantic-release.svg +1 -1
  699. package/icons/semantic-release_light.svg +1 -1
  700. package/icons/sentry.svg +1 -0
  701. package/icons/sequelize.svg +1 -31
  702. package/icons/serverless.svg +4 -0
  703. package/icons/settings.svg +1 -3
  704. package/icons/shaderlab.svg +1 -3
  705. package/icons/silverstripe.svg +1 -0
  706. package/icons/siyuan.svg +9 -0
  707. package/icons/sketch.svg +1 -0
  708. package/icons/slim.svg +1 -4
  709. package/icons/slug.svg +1 -0
  710. package/icons/smarty.svg +1 -3
  711. package/icons/sml.svg +1 -0
  712. package/icons/snowpack.svg +1 -0
  713. package/icons/snowpack_light.svg +1 -0
  714. package/icons/snyk.svg +1 -23
  715. package/icons/solidity.svg +1 -7
  716. package/icons/steadybit.svg +1 -0
  717. package/icons/stencil.svg +1 -1
  718. package/icons/stitches.svg +1 -0
  719. package/icons/stitches_light.svg +1 -0
  720. package/icons/storybook.svg +1 -1
  721. package/icons/stryker.svg +1 -0
  722. package/icons/stylelint.svg +1 -12
  723. package/icons/stylelint_light.svg +1 -12
  724. package/icons/stylus.svg +1 -1
  725. package/icons/sublime.svg +1 -1
  726. package/icons/svelte.svg +1 -0
  727. package/icons/svg.svg +1 -1
  728. package/icons/svgo.svg +1 -0
  729. package/icons/svgr.svg +4 -0
  730. package/icons/swc.svg +1 -12
  731. package/icons/swift.svg +1 -1
  732. package/icons/table.svg +1 -3
  733. package/icons/tailwindcss.svg +1 -1
  734. package/icons/tauri.svg +9 -0
  735. package/icons/tcl.svg +1 -0
  736. package/icons/teal.svg +1 -0
  737. package/icons/template.svg +4 -0
  738. package/icons/terraform.svg +1 -12
  739. package/icons/test-js.svg +1 -1
  740. package/icons/test-jsx.svg +1 -4
  741. package/icons/test-ts.svg +1 -1
  742. package/icons/tex.svg +1 -1
  743. package/icons/textlint.svg +1 -0
  744. package/icons/tilt.svg +1 -0
  745. package/icons/tobi.svg +4 -0
  746. package/icons/tobimake.svg +14 -0
  747. package/icons/todo.svg +1 -1
  748. package/icons/travis.svg +1 -13
  749. package/icons/tsconfig.svg +1 -0
  750. package/icons/tune.svg +1 -7
  751. package/icons/turborepo.svg +12 -0
  752. package/icons/turborepo_light.svg +12 -0
  753. package/icons/twig.svg +1 -3
  754. package/icons/twine.svg +1 -0
  755. package/icons/typescript-def.svg +1 -6
  756. package/icons/typescript.svg +1 -3
  757. package/icons/uml.svg +1 -0
  758. package/icons/uml_light.svg +1 -0
  759. package/icons/url.svg +1 -3
  760. package/icons/vagrant.svg +1 -1
  761. package/icons/vala.svg +1 -0
  762. package/icons/velocity.svg +1 -1
  763. package/icons/vercel.svg +1 -0
  764. package/icons/vercel_light.svg +1 -0
  765. package/icons/verilog.svg +1 -3
  766. package/icons/vfl.svg +1 -16
  767. package/icons/video.svg +1 -4
  768. package/icons/vim.svg +1 -0
  769. package/icons/virtual.svg +1 -1
  770. package/icons/visualstudio.svg +1 -4
  771. package/icons/vite.svg +1 -0
  772. package/icons/vlang.svg +1 -0
  773. package/icons/vscode.svg +1 -9
  774. package/icons/vue-config.svg +1 -1
  775. package/icons/vue.svg +1 -1
  776. package/icons/vuex-store.svg +1 -1
  777. package/icons/wakatime.svg +1 -21
  778. package/icons/wakatime_light.svg +1 -21
  779. package/icons/wallaby.svg +1 -1
  780. package/icons/watchman.svg +1 -4
  781. package/icons/webassembly.svg +1 -1
  782. package/icons/webhint.svg +1 -5
  783. package/icons/webpack.svg +1 -6
  784. package/icons/wepy.svg +1 -1
  785. package/icons/windicss.svg +1 -0
  786. package/icons/wolframlanguage.svg +1 -13
  787. package/icons/word.svg +1 -3
  788. package/icons/xaml.svg +1 -3
  789. package/icons/xml.svg +1 -4
  790. package/icons/yaml.svg +1 -1
  791. package/icons/yang.svg +1 -1
  792. package/icons/yarn.svg +1 -3
  793. package/icons/zig.svg +1 -0
  794. package/icons/zip.svg +1 -3
  795. package/images/bloop.png +0 -0
  796. package/images/contributors.png +0 -0
  797. package/images/fileIcons.png +0 -0
  798. package/images/folderIcons.png +0 -0
  799. package/images/stepsize.png +0 -0
  800. package/logo.svg +21 -21
  801. package/material-colors.yml +257 -0
  802. package/package.json +264 -220
  803. package/package.nls.de.json +35 -34
  804. package/package.nls.es.json +32 -31
  805. package/package.nls.fr.json +32 -31
  806. package/package.nls.ja.json +35 -0
  807. package/package.nls.json +35 -34
  808. package/package.nls.nl.json +35 -0
  809. package/package.nls.pl.json +35 -0
  810. package/package.nls.pt-BR.json +32 -31
  811. package/package.nls.pt-PT.json +32 -31
  812. package/package.nls.ru.json +32 -31
  813. package/package.nls.zh-CN.json +32 -31
  814. package/package.nls.zh-TW.json +32 -0
  815. package/src/commands/activate.ts +26 -30
  816. package/src/commands/explorerArrows.ts +55 -0
  817. package/src/commands/folderColor.ts +96 -88
  818. package/src/commands/folders.ts +55 -41
  819. package/src/commands/grayscale.ts +55 -54
  820. package/src/commands/iconPacks.ts +68 -65
  821. package/src/commands/index.ts +30 -27
  822. package/src/commands/opacity.ts +46 -47
  823. package/src/commands/restoreConfig.ts +14 -14
  824. package/src/commands/saturation.ts +46 -47
  825. package/src/extension.ts +35 -35
  826. package/src/helpers/changeDetection.ts +68 -58
  827. package/src/helpers/customIcons.ts +8 -0
  828. package/src/helpers/fileConfig.ts +37 -0
  829. package/src/helpers/index.ts +100 -87
  830. package/src/helpers/objects.ts +58 -55
  831. package/src/helpers/types.ts +7 -0
  832. package/src/helpers/versioning.ts +73 -58
  833. package/src/i18n/index.ts +78 -82
  834. package/src/i18n/lang-de.ts +54 -43
  835. package/src/i18n/lang-en.ts +53 -52
  836. package/src/i18n/lang-es.ts +53 -43
  837. package/src/i18n/lang-fr.ts +53 -43
  838. package/src/i18n/lang-ja.ts +54 -0
  839. package/src/i18n/lang-nl.ts +54 -0
  840. package/src/i18n/lang-pl.ts +52 -0
  841. package/src/i18n/lang-pt-br.ts +53 -43
  842. package/src/i18n/lang-pt-pt.ts +53 -43
  843. package/src/i18n/lang-ru.ts +52 -43
  844. package/src/i18n/lang-uk.ts +54 -22
  845. package/src/i18n/lang-zh-cn.ts +52 -43
  846. package/src/i18n/lang-zh-tw.ts +52 -0
  847. package/src/icons/fileIcons.ts +1836 -784
  848. package/src/icons/folderIcons.ts +750 -183
  849. package/src/icons/generator/constants.ts +29 -29
  850. package/src/icons/generator/fileGenerator.ts +216 -116
  851. package/src/icons/generator/folderGenerator.ts +340 -182
  852. package/src/icons/generator/iconOpacity.ts +111 -89
  853. package/src/icons/generator/iconSaturation.ts +140 -118
  854. package/src/icons/generator/index.ts +7 -7
  855. package/src/icons/generator/jsonGenerator.ts +187 -98
  856. package/src/icons/generator/languageGenerator.ts +127 -67
  857. package/src/icons/index.ts +4 -4
  858. package/src/icons/languageIcons.ts +134 -74
  859. package/src/messages/outdated.ts +33 -24
  860. package/src/messages/reload.ts +32 -32
  861. package/src/messages/start.ts +12 -13
  862. package/src/messages/update.ts +48 -48
  863. package/src/messages/welcome.ts +47 -47
  864. package/src/models/helpers/index.ts +1 -0
  865. package/src/models/helpers/themeStatus.ts +5 -0
  866. package/src/models/i18n/index.ts +1 -1
  867. package/src/models/i18n/translation.ts +50 -50
  868. package/src/models/iconConfiguration.ts +37 -37
  869. package/src/models/icons/defaultIcon.ts +16 -16
  870. package/src/models/icons/files/fileIcon.ts +49 -40
  871. package/src/models/icons/files/fileTypes.ts +14 -14
  872. package/src/models/icons/files/index.ts +2 -2
  873. package/src/models/icons/folders/folderIcon.ts +34 -34
  874. package/src/models/icons/folders/folderTheme.ts +23 -23
  875. package/src/models/icons/folders/index.ts +2 -2
  876. package/src/models/icons/iconJsonOptions.ts +23 -23
  877. package/src/models/icons/iconPack.ts +12 -11
  878. package/src/models/icons/index.ts +6 -6
  879. package/src/models/icons/languages/index.ts +1 -1
  880. package/src/models/icons/languages/languageIdentifier.ts +26 -26
  881. package/src/models/index.ts +4 -4
  882. package/src/models/scripts/contributors/contributor.ts +22 -0
  883. package/src/models/scripts/contributors/contributorsConfig.ts +10 -0
  884. package/src/scripts/contributors/contributors.css +24 -0
  885. package/src/scripts/contributors/index.ts +138 -0
  886. package/src/scripts/helpers/painter.ts +5 -5
  887. package/src/scripts/helpers/screenshots.ts +32 -0
  888. package/src/scripts/helpers/similarity.ts +47 -42
  889. package/src/scripts/helpers/titleCase.ts +7 -4
  890. package/src/scripts/icons/checks/checkIconAvailability.ts +215 -151
  891. package/src/scripts/icons/checks/checkIconConflicts.ts +154 -115
  892. package/src/scripts/icons/checks/checkIconUsage.ts +141 -110
  893. package/src/scripts/icons/checks/index.ts +7 -7
  894. package/src/scripts/icons/generateJson.ts +11 -10
  895. package/src/scripts/preview/index.ts +40 -24
  896. package/src/scripts/preview/preview.ts +165 -112
  897. package/src/scripts/preview/style.css +48 -43
  898. package/src/test/runTest.ts +26 -0
  899. package/src/test/spec/i18n/i18n.spec.ts +61 -0
  900. package/src/test/spec/icons/fileIcons.spec.ts +250 -0
  901. package/src/test/spec/icons/folderIcons.spec.ts +418 -0
  902. package/src/test/spec/icons/languageIcons.spec.ts +184 -0
  903. package/src/test/spec/index.ts +36 -0
  904. package/src/web/extension.ts +10 -0
  905. package/svgo.config.js +12 -0
  906. package/tsconfig.json +23 -20
  907. package/.travis.yml +0 -20
  908. package/appveyor.yml +0 -24
  909. package/icons/processing_light.svg +0 -5
  910. package/icons/stencil_light.svg +0 -1
  911. package/src/commands/folderArrows.ts +0 -60
  912. package/src/models/advancedWorkspaceConfiguration.ts +0 -7
  913. package/src/scripts/preview/screenshots.ts +0 -28
  914. package/src/test/i18n/i18n.test.ts +0 -37
  915. package/src/test/icons/fileIcons.test.ts +0 -185
  916. package/src/test/icons/folderIcons.test.ts +0 -356
  917. package/src/test/icons/languageIcons.test.ts +0 -138
  918. package/src/test/index.ts +0 -23
  919. package/tslint.json +0 -104
  920. package/webpack.config.js +0 -40
@@ -1,89 +1,111 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
-
4
- /**
5
- * Changes the opacity of all icons in the set.
6
- * @param opacity Opacity value
7
- * @param fileNames Only change the opacity of certain file names.
8
- */
9
- export const setIconOpacity = (opacity: number, fileNames?: string[]) => {
10
- if (!validateOpacityValue(opacity)) {
11
- return console.error('Invalid opacity value! Opacity must be a decimal number between 0 and 1!');
12
- }
13
-
14
- let iconsPath;
15
- if (path.basename(__dirname) === 'dist') {
16
- iconsPath = path.join(__dirname, '..', 'icons');
17
- } else {
18
- // executed via script
19
- iconsPath = path.join(__dirname, '..', '..', '..', 'icons');
20
- }
21
-
22
- try {
23
- // read all icon files from the icons folder
24
- (fileNames || fs.readdirSync(iconsPath)).forEach(iconFileName => {
25
- const svgFilePath = path.join(iconsPath, iconFileName);
26
-
27
- // Read SVG file
28
- const svg = fs.readFileSync(svgFilePath, 'utf-8');
29
-
30
- // Get the root element of the SVG file
31
- const svgRootElement = getSVGRootElement(svg);
32
- if (!svgRootElement) return;
33
-
34
- let updatedRootElement: string;
35
-
36
- if (opacity < 1) {
37
- updatedRootElement = addOpacityAttribute(svgRootElement, opacity);
38
- } else {
39
- updatedRootElement = removeOpacityAttribute(svgRootElement);
40
- }
41
- const updatedSVG = svg.replace(/<svg[^>]*>/, updatedRootElement);
42
-
43
- fs.writeFileSync(svgFilePath, updatedSVG);
44
- });
45
- } catch (error) {
46
- console.error(error);
47
- }
48
- };
49
-
50
- /**
51
- * Validate the opacity value.
52
- * @param opacity Opacity value
53
- */
54
- export const validateOpacityValue = (opacity: number) => {
55
- return opacity !== null && opacity <= 1 && opacity >= 0;
56
- };
57
-
58
- /**
59
- * Get the SVG root element.
60
- * @param svg SVG file as string.
61
- */
62
- const getSVGRootElement = (svg: string) => {
63
- const result = new RegExp(/<svg[^>]*>/).exec(svg);
64
- return result.length > 0 ? result[0] : undefined;
65
- };
66
-
67
- /**
68
- * Add an opacity attribute to the SVG icon to control the opacity of the icon.
69
- * @param svgRoot Root element of the SVG icon.
70
- * @param opacity Opacity value.
71
- */
72
- const addOpacityAttribute = (svgRoot: string, opacity: number) => {
73
- const pattern = new RegExp(/\sopacity="[\d.]+"/);
74
- // if the opacity attribute already exists
75
- if (pattern.test(svgRoot)) {
76
- return svgRoot.replace(pattern, ` opacity="${opacity}"`);
77
- } else {
78
- return svgRoot.replace(/^<svg/, `<svg opacity="${opacity}"`);
79
- }
80
- };
81
-
82
- /**
83
- * Remove the opacity attribute of the SVG icon.
84
- * @param svgRoot Root element of the SVG icon.
85
- */
86
- const removeOpacityAttribute = (svgRoot: string) => {
87
- const pattern = new RegExp(/\sopacity="[\d.]+"/);
88
- return svgRoot.replace(pattern, '');
89
- };
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { getCustomIconPaths } from '../../helpers/customIcons';
4
+ import { IconJsonOptions } from '../../models';
5
+
6
+ /**
7
+ * Changes the opacity of all icons in the set.
8
+ * @param options Icon JSON options which include the opacity value.
9
+ * @param fileNames Only change the opacity of certain file names.
10
+ */
11
+ export const setIconOpacity = (
12
+ options: IconJsonOptions,
13
+ fileNames?: string[]
14
+ ) => {
15
+ if (!validateOpacityValue(options.opacity)) {
16
+ return console.error(
17
+ 'Invalid opacity value! Opacity must be a decimal number between 0 and 1!'
18
+ );
19
+ }
20
+
21
+ let iconsPath = '';
22
+ if (path.basename(__dirname) === 'dist') {
23
+ iconsPath = path.join(__dirname, '..', 'icons');
24
+ } else {
25
+ // executed via script
26
+ iconsPath = path.join(__dirname, '..', '..', '..', 'icons');
27
+ }
28
+
29
+ const customIconPaths = getCustomIconPaths(options);
30
+ const iconFiles = fs.readdirSync(iconsPath);
31
+
32
+ try {
33
+ // read all icon files from the icons folder
34
+ (fileNames || iconFiles).forEach(adjustOpacity(iconsPath, options));
35
+
36
+ customIconPaths.forEach((iconPath) => {
37
+ const customIcons = fs.readdirSync(iconPath);
38
+ customIcons.forEach(adjustOpacity(iconPath, options));
39
+ });
40
+ } catch (error) {
41
+ console.error(error);
42
+ }
43
+ };
44
+
45
+ /**
46
+ * Validate the opacity value.
47
+ * @param opacity Opacity value
48
+ */
49
+ export const validateOpacityValue = (opacity: number | undefined) => {
50
+ return opacity !== undefined && opacity <= 1 && opacity >= 0;
51
+ };
52
+
53
+ /**
54
+ * Get the SVG root element.
55
+ * @param svg SVG file as string.
56
+ */
57
+ const getSVGRootElement = (svg: string) => {
58
+ const result = new RegExp(/<svg[^>]*>/).exec(svg);
59
+ return result?.[0];
60
+ };
61
+
62
+ /**
63
+ * Add an opacity attribute to the SVG icon to control the opacity of the icon.
64
+ * @param svgRoot Root element of the SVG icon.
65
+ * @param opacity Opacity value.
66
+ */
67
+ const addOpacityAttribute = (svgRoot: string, opacity: number) => {
68
+ const pattern = new RegExp(/\sopacity="[\d.]+"/);
69
+ // if the opacity attribute already exists
70
+ if (pattern.test(svgRoot)) {
71
+ return svgRoot.replace(pattern, ` opacity="${opacity}"`);
72
+ } else {
73
+ return svgRoot.replace(/^<svg/, `<svg opacity="${opacity}"`);
74
+ }
75
+ };
76
+
77
+ /**
78
+ * Remove the opacity attribute of the SVG icon.
79
+ * @param svgRoot Root element of the SVG icon.
80
+ */
81
+ const removeOpacityAttribute = (svgRoot: string) => {
82
+ const pattern = new RegExp(/\sopacity="[\d.]+"/);
83
+ return svgRoot.replace(pattern, '');
84
+ };
85
+
86
+ const adjustOpacity = (
87
+ iconPath: string,
88
+ options: IconJsonOptions
89
+ ): ((value: string, index: number, array: string[]) => void) => {
90
+ return (iconFileName) => {
91
+ const svgFilePath = path.join(iconPath, iconFileName);
92
+
93
+ // Read SVG file
94
+ const svg = fs.readFileSync(svgFilePath, 'utf-8');
95
+
96
+ // Get the root element of the SVG file
97
+ const svgRootElement = getSVGRootElement(svg);
98
+ if (!svgRootElement) return;
99
+
100
+ let updatedRootElement: string;
101
+
102
+ if (options.opacity !== undefined && options.opacity < 1) {
103
+ updatedRootElement = addOpacityAttribute(svgRootElement, options.opacity);
104
+ } else {
105
+ updatedRootElement = removeOpacityAttribute(svgRootElement);
106
+ }
107
+ const updatedSVG = svg.replace(/<svg[^>]*>/, updatedRootElement);
108
+
109
+ fs.writeFileSync(svgFilePath, updatedSVG);
110
+ };
111
+ };
@@ -1,118 +1,140 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
-
4
- /**
5
- * Changes saturation of all icons in the set.
6
- * @param saturation Saturation value.
7
- * @param fileNames Only change the saturation of certain file names.
8
- */
9
- export const setIconSaturation = (saturation: number, fileNames?: string[]) => {
10
- if (!validateSaturationValue(saturation)) {
11
- return console.error('Invalid saturation value! Saturation must be a decimal number between 0 and 1!');
12
- }
13
-
14
- let iconsPath;
15
- if (path.basename(__dirname) === 'dist') {
16
- iconsPath = path.join(__dirname, '..', 'icons');
17
- } else {
18
- // executed via script
19
- iconsPath = path.join(__dirname, '..', '..', '..', 'icons');
20
- }
21
-
22
- // read all icon files from the icons folder
23
- try {
24
- (fileNames || fs.readdirSync(iconsPath)).forEach(iconFileName => {
25
- const svgFilePath = path.join(iconsPath, iconFileName);
26
-
27
- // Read SVG file
28
- const svg = fs.readFileSync(svgFilePath, 'utf-8');
29
-
30
- // Get the root element of the SVG file
31
- const svgRootElement = getSVGRootElement(svg);
32
- if (!svgRootElement) return;
33
-
34
- let updatedRootElement: string;
35
-
36
- if (saturation < 1) {
37
- updatedRootElement = addFilterAttribute(svgRootElement);
38
- } else {
39
- updatedRootElement = removeFilterAttribute(svgRootElement);
40
- }
41
-
42
- let updatedSVG = svg.replace(/<svg[^>]*>/, updatedRootElement);
43
-
44
- if (saturation < 1) {
45
- updatedSVG = addFilterElement(updatedSVG, saturation);
46
- } else {
47
- updatedSVG = removeFilterElement(updatedSVG);
48
- }
49
-
50
- fs.writeFileSync(svgFilePath, updatedSVG);
51
- });
52
- } catch (error) {
53
- console.error(error);
54
- }
55
- };
56
-
57
- /**
58
- * Get the SVG root element.
59
- * @param svg SVG file as string.
60
- */
61
- const getSVGRootElement = (svg: string) => {
62
- const result = new RegExp(/<svg[^>]*>/).exec(svg);
63
- return result.length > 0 ? result[0] : undefined;
64
- };
65
-
66
- /**
67
- * Add an filter attribute to the SVG icon.
68
- * @param svgRoot Root element of the SVG icon.
69
- */
70
- const addFilterAttribute = (svgRoot: string) => {
71
- const pattern = new RegExp(/\sfilter="[^"]+?"/);
72
- // if the filter attribute already exists
73
- if (pattern.test(svgRoot)) {
74
- return svgRoot.replace(pattern, ` filter="url(#saturation)"`);
75
- } else {
76
- return svgRoot.replace(/^<svg/, `<svg filter="url(#saturation)"`);
77
- }
78
- };
79
-
80
- /**
81
- * Remove the filter attribute of the SVG icon.
82
- * @param svgRoot Root element of the SVG icon.
83
- */
84
- const removeFilterAttribute = (svgRoot: string) => {
85
- const pattern = new RegExp(/\sfilter="[^"]+?"/);
86
- return svgRoot.replace(pattern, '');
87
- };
88
-
89
- /**
90
- * Add filter element to the SVG icon.
91
- * @param svg SVG file as string.
92
- */
93
- const addFilterElement = (svg: string, value: number) => {
94
- const pattern = new RegExp(/<filter id="saturation".+<\/filter>(.*<\/svg>)/);
95
- const filterElement = `<filter id="saturation"><feColorMatrix type="saturate" values="${value}"/></filter>`;
96
- if (pattern.test(svg)) {
97
- return svg.replace(pattern, `${filterElement}$1`);
98
- } else {
99
- return svg.replace(/<\/svg>/, `${filterElement}</svg>`);
100
- }
101
- };
102
-
103
- /**
104
- * Remove filter element from the SVG icon.
105
- * @param svg SVG file as string.
106
- */
107
- const removeFilterElement = (svg: string) => {
108
- const pattern = new RegExp(/<filter id="saturation".+<\/filter>(.*<\/svg>)/);
109
- return svg.replace(pattern, `$1`);
110
- };
111
-
112
- /**
113
- * Validate the saturation value.
114
- * @param saturation Saturation value
115
- */
116
- export const validateSaturationValue = (saturation: number) => {
117
- return saturation !== null && saturation <= 1 && saturation >= 0;
118
- };
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { getCustomIconPaths } from '../../helpers/customIcons';
4
+ import { IconJsonOptions } from '../../models';
5
+
6
+ /**
7
+ * Changes saturation of all icons in the set.
8
+ * @param options Icon JSON options which include the saturation value.
9
+ * @param fileNames Only change the saturation of certain file names.
10
+ */
11
+ export const setIconSaturation = (
12
+ options: IconJsonOptions,
13
+ fileNames?: string[]
14
+ ) => {
15
+ if (!validateSaturationValue(options.saturation)) {
16
+ return console.error(
17
+ 'Invalid saturation value! Saturation must be a decimal number between 0 and 1!'
18
+ );
19
+ }
20
+
21
+ let iconsPath = '';
22
+ if (path.basename(__dirname) === 'dist') {
23
+ iconsPath = path.join(__dirname, '..', 'icons');
24
+ } else {
25
+ // executed via script
26
+ iconsPath = path.join(__dirname, '..', '..', '..', 'icons');
27
+ }
28
+
29
+ const customIconPaths = getCustomIconPaths(options);
30
+ const iconFiles = fs.readdirSync(iconsPath);
31
+
32
+ // read all icon files from the icons folder
33
+ try {
34
+ (fileNames || iconFiles).forEach(adjustSaturation(iconsPath, options));
35
+
36
+ customIconPaths.forEach((iconPath) => {
37
+ const customIcons = fs.readdirSync(iconPath);
38
+ customIcons.forEach(adjustSaturation(iconPath, options));
39
+ });
40
+ } catch (error) {
41
+ console.error(error);
42
+ }
43
+ };
44
+
45
+ /**
46
+ * Get the SVG root element.
47
+ * @param svg SVG file as string.
48
+ */
49
+ const getSVGRootElement = (svg: string) => {
50
+ const result = new RegExp(/<svg[^>]*>/).exec(svg);
51
+ return result?.[0];
52
+ };
53
+
54
+ /**
55
+ * Add an filter attribute to the SVG icon.
56
+ * @param svgRoot Root element of the SVG icon.
57
+ */
58
+ const addFilterAttribute = (svgRoot: string) => {
59
+ const pattern = new RegExp(/\sfilter="[^"]+?"/);
60
+ // if the filter attribute already exists
61
+ if (pattern.test(svgRoot)) {
62
+ return svgRoot.replace(pattern, ' filter="url(#saturation)"');
63
+ } else {
64
+ return svgRoot.replace(/^<svg/, '<svg filter="url(#saturation)"');
65
+ }
66
+ };
67
+
68
+ /**
69
+ * Remove the filter attribute of the SVG icon.
70
+ * @param svgRoot Root element of the SVG icon.
71
+ */
72
+ const removeFilterAttribute = (svgRoot: string) => {
73
+ const pattern = new RegExp(/\sfilter="[^"]+?"/);
74
+ return svgRoot.replace(pattern, '');
75
+ };
76
+
77
+ /**
78
+ * Add filter element to the SVG icon.
79
+ * @param svg SVG file as string.
80
+ */
81
+ const addFilterElement = (svg: string, value: number) => {
82
+ const pattern = new RegExp(/<filter id="saturation".+<\/filter>(.*<\/svg>)/);
83
+ const filterElement = `<filter id="saturation"><feColorMatrix type="saturate" values="${value}"/></filter>`;
84
+ if (pattern.test(svg)) {
85
+ return svg.replace(pattern, `${filterElement}$1`);
86
+ } else {
87
+ return svg.replace(/<\/svg>/, `${filterElement}</svg>`);
88
+ }
89
+ };
90
+
91
+ /**
92
+ * Remove filter element from the SVG icon.
93
+ * @param svg SVG file as string.
94
+ */
95
+ const removeFilterElement = (svg: string) => {
96
+ const pattern = new RegExp(/<filter id="saturation".+<\/filter>(.*<\/svg>)/);
97
+ return svg.replace(pattern, '$1');
98
+ };
99
+
100
+ /**
101
+ * Validate the saturation value.
102
+ * @param saturation Saturation value
103
+ */
104
+ export const validateSaturationValue = (saturation: number | undefined) => {
105
+ return saturation !== undefined && saturation <= 1 && saturation >= 0;
106
+ };
107
+
108
+ const adjustSaturation = (
109
+ iconsPath: any,
110
+ options: IconJsonOptions
111
+ ): ((value: string, index: number, array: string[]) => void) => {
112
+ return (iconFileName) => {
113
+ const svgFilePath = path.join(iconsPath, iconFileName);
114
+
115
+ // Read SVG file
116
+ const svg = fs.readFileSync(svgFilePath, 'utf-8');
117
+
118
+ // Get the root element of the SVG file
119
+ const svgRootElement = getSVGRootElement(svg);
120
+ if (!svgRootElement) return;
121
+
122
+ let updatedRootElement: string;
123
+
124
+ if (options.saturation !== undefined && options.saturation < 1) {
125
+ updatedRootElement = addFilterAttribute(svgRootElement);
126
+ } else {
127
+ updatedRootElement = removeFilterAttribute(svgRootElement);
128
+ }
129
+
130
+ let updatedSVG = svg.replace(/<svg[^>]*>/, updatedRootElement);
131
+
132
+ if (options.saturation !== undefined && options.saturation < 1) {
133
+ updatedSVG = addFilterElement(updatedSVG, options.saturation);
134
+ } else {
135
+ updatedSVG = removeFilterElement(updatedSVG);
136
+ }
137
+
138
+ fs.writeFileSync(svgFilePath, updatedSVG);
139
+ };
140
+ };
@@ -1,7 +1,7 @@
1
- export * from './fileGenerator';
2
- export * from './folderGenerator';
3
- export * from './languageGenerator';
4
- export * from './constants';
5
- export * from './jsonGenerator';
6
- export * from './iconOpacity';
7
- export * from './iconSaturation';
1
+ export * from './fileGenerator';
2
+ export * from './folderGenerator';
3
+ export * from './languageGenerator';
4
+ export * from './constants';
5
+ export * from './jsonGenerator';
6
+ export * from './iconOpacity';
7
+ export * from './iconSaturation';