From eb035fe3704c15ad3c96fa93d5415c13c7892f47 Mon Sep 17 00:00:00 2001
From: Han Yeong-woo <han@yeongwoo.dev>
Date: Thu, 1 Feb 2024 22:38:21 +0900
Subject: [PATCH] Improve formatting (#1814)

* Ignore linting for examples in docs

* Formatting JSX single attribute per line

* Separte `format` and `lint:format` in package.json

* Bump prettier version

* Run format
---
 .eslintignore                                 |   3 +-
 .eslintrc.js                                  |  13 +-
 .github/actions/build-and-test.yml            |   6 +-
 .github/actions/check-icons.yml               |   6 +-
 .github/labeler.yml                           |  96 ++++----
 .github/workflows/close-stale-prs.yml         |   2 +-
 .github/workflows/labeler.yml                 |   6 +-
 .github/workflows/lucide-font.yml             |   2 +-
 .github/workflows/release.yml                 |  30 ++-
 .prettierignore                               |   3 +
 .vscode/launch.json                           |   2 +-
 .vscode/settings.json                         |  11 +-
 categories/accessibility.json                 |   2 +-
 categories/account.json                       |   2 +-
 categories/animals.json                       |   2 +-
 categories/arrows.json                        |   2 +-
 categories/brands.json                        |   2 +-
 categories/buildings.json                     |   2 +-
 categories/charts.json                        |   2 +-
 categories/communication.json                 |   2 +-
 categories/connectivity.json                  |   2 +-
 categories/currency.json                      |   2 +-
 categories/cursors.json                       |   2 +-
 categories/design.json                        |   2 +-
 categories/devices.json                       |   2 +-
 categories/emoji.json                         |   2 +-
 categories/files.json                         |   2 +-
 categories/food-beverage.json                 |   2 +-
 categories/furniture.json                     |   2 +-
 categories/gaming.json                        |   2 +-
 categories/home.json                          |   2 +-
 categories/layout.json                        |   2 +-
 categories/mail.json                          |   2 +-
 categories/maps.json                          |   2 +-
 categories/maths.json                         |   2 +-
 categories/medical.json                       |   2 +-
 categories/money.json                         |   2 +-
 categories/multimedia.json                    |   2 +-
 categories/nature.json                        |   2 +-
 categories/navigation.json                    |   2 +-
 categories/notifications.json                 |   2 +-
 categories/people.json                        |   2 +-
 categories/photography.json                   |   2 +-
 categories/science.json                       |   2 +-
 categories/seasons.json                       |   2 +-
 categories/security.json                      |   2 +-
 categories/shapes.json                        |   2 +-
 categories/shopping.json                      |   2 +-
 categories/social.json                        |   2 +-
 categories/sports.json                        |   2 +-
 categories/sustainability.json                |   2 +-
 categories/time.json                          |   2 +-
 categories/tools.json                         |   2 +-
 categories/transportation.json                |   2 +-
 categories/travel.json                        |   2 +-
 categories/weather.json                       |   2 +-
 docs/.vitepress/api/categories/index.get.ts   |  14 +-
 docs/.vitepress/api/gh-icon/[...data].get.ts  |   4 +-
 .../api/gh-icon/dpi/[...data].get.ts          |   2 +-
 .../api/gh-icon/stroke-width/[...data].get.ts |  26 +--
 docs/.vitepress/api/icon-nodes/index.get.ts   |  32 +--
 docs/.vitepress/api/icons/[iconName].get.ts   |  43 ++--
 docs/.vitepress/api/tags/index.get.ts         |  14 +-
 docs/.vitepress/api/test.ts                   |   4 +-
 docs/.vitepress/config.ts                     | 207 +++++++++++-------
 docs/.vitepress/data/packageData.json         | 126 +++++++++--
 docs/.vitepress/lib/SvgPreview/Backdrop.tsx   |  63 +++++-
 docs/.vitepress/lib/SvgPreview/index.tsx      | 173 +++++++++++----
 docs/.vitepress/lib/SvgPreview/types.ts       |   2 +-
 docs/.vitepress/lib/SvgPreview/utils.ts       |  20 +-
 docs/.vitepress/lib/categories.ts             |  28 ++-
 docs/.vitepress/lib/createCodeExamples.ts     |  59 +++--
 docs/.vitepress/lib/fetchPackages.ts          |  50 +++--
 docs/.vitepress/lib/generateZip.ts            |  12 +-
 docs/.vitepress/lib/getFallbackZip.tsx        |  24 +-
 docs/.vitepress/lib/icons.ts                  |  38 ++--
 docs/.vitepress/sidebar.ts                    |  60 +++--
 .../components/home/HomeHeroBefore.data.ts    |  24 +-
 .../components/home/HomeHeroIconsCard.data.ts |  15 +-
 .../home/HomePackagesSection.data.ts          |   8 +-
 .../components/icons/CategoryList.data.ts     |  13 +-
 .../theme/components/icons/confetti.css       | 101 +++++++--
 .../components/packages/PackageList.data.ts   |  21 +-
 .../theme/composables/useActiveAnchor.ts      | 101 +++++----
 .../theme/composables/useCategoryView.ts      |   8 +-
 .../theme/composables/useConfetti.ts          |  10 +-
 .../theme/composables/useFetchCategories.ts   |  20 +-
 .../theme/composables/useFetchTags.ts         |  20 +-
 .../theme/composables/useIconStyle.ts         |  14 +-
 .../.vitepress/theme/composables/useSearch.ts |  10 +-
 docs/.vitepress/theme/index.ts                |  30 +--
 docs/.vitepress/theme/style.css               |  76 +++----
 docs/.vitepress/theme/types.ts                |  55 +++--
 docs/.vitepress/theme/utils/downloadData.ts   |   4 +-
 docs/.vitepress/theme/utils/getSVGIcon.ts     |  16 +-
 docs/icons/[name].paths.ts                    |  21 +-
 docs/icons/categories.data.ts                 |  12 +-
 docs/icons/codeExamples.data.ts               |  10 +-
 docs/icons/icons.data.ts                      |   8 +-
 docs/tsconfig.json                            |   4 +-
 icons/a-arrow-down.json                       |   2 +-
 icons/a-arrow-up.json                         |   2 +-
 icons/a-large-small.json                      |   2 +-
 icons/accessibility.json                      |   2 +-
 icons/activity-square.json                    |   2 +-
 icons/activity.json                           |   2 +-
 icons/air-vent.json                           |   2 +-
 icons/airplay.json                            |   2 +-
 icons/alarm-clock-off.json                    |   2 +-
 icons/alarm-clock.json                        |   2 +-
 icons/alarm-smoke.json                        |   2 +-
 icons/album.json                              |   2 +-
 icons/alert-circle.json                       |   2 +-
 icons/alert-octagon.json                      |   2 +-
 icons/alert-triangle.json                     |   2 +-
 icons/align-center-horizontal.json            |   2 +-
 icons/align-center-vertical.json              |   2 +-
 icons/align-center.json                       |   2 +-
 icons/align-end-horizontal.json               |   2 +-
 icons/align-end-vertical.json                 |   2 +-
 icons/align-horizontal-distribute-center.json |   2 +-
 icons/align-horizontal-distribute-end.json    |   2 +-
 icons/align-horizontal-distribute-start.json  |   2 +-
 icons/align-horizontal-justify-center.json    |   2 +-
 icons/align-horizontal-justify-end.json       |   2 +-
 icons/align-horizontal-justify-start.json     |   2 +-
 icons/align-horizontal-space-around.json      |   2 +-
 icons/align-horizontal-space-between.json     |   2 +-
 icons/align-justify.json                      |   2 +-
 icons/align-left.json                         |   2 +-
 icons/align-right.json                        |   2 +-
 icons/align-start-horizontal.json             |   2 +-
 icons/align-start-vertical.json               |   2 +-
 icons/align-vertical-distribute-center.json   |   2 +-
 icons/align-vertical-distribute-end.json      |   2 +-
 icons/align-vertical-distribute-start.json    |   2 +-
 icons/align-vertical-justify-center.json      |   2 +-
 icons/align-vertical-justify-end.json         |   2 +-
 icons/align-vertical-justify-start.json       |   2 +-
 icons/align-vertical-space-around.json        |   2 +-
 icons/align-vertical-space-between.json       |   2 +-
 icons/ampersand.json                          |   2 +-
 icons/ampersands.json                         |   2 +-
 icons/anchor.json                             |   2 +-
 icons/angry.json                              |   2 +-
 icons/annoyed.json                            |   2 +-
 icons/antenna.json                            |   2 +-
 icons/anvil.json                              |   2 +-
 icons/aperture.json                           |   2 +-
 icons/app-window.json                         |   2 +-
 icons/apple.json                              |   2 +-
 icons/archive-restore.json                    |   2 +-
 icons/archive-x.json                          |   2 +-
 icons/archive.json                            |   2 +-
 icons/area-chart.json                         |   2 +-
 icons/armchair.json                           |   2 +-
 icons/arrow-big-down-dash.json                |   2 +-
 icons/arrow-big-down.json                     |   2 +-
 icons/arrow-big-left-dash.json                |   2 +-
 icons/arrow-big-left.json                     |   2 +-
 icons/arrow-big-right-dash.json               |   2 +-
 icons/arrow-big-right.json                    |   2 +-
 icons/arrow-big-up-dash.json                  |   2 +-
 icons/arrow-big-up.json                       |   2 +-
 icons/arrow-down-0-1.json                     |   2 +-
 icons/arrow-down-1-0.json                     |   2 +-
 icons/arrow-down-a-z.json                     |   2 +-
 icons/arrow-down-circle.json                  |   2 +-
 icons/arrow-down-from-line.json               |   2 +-
 icons/arrow-down-left-from-circle.json        |   2 +-
 icons/arrow-down-left-from-square.json        |   2 +-
 icons/arrow-down-left-square.json             |   2 +-
 icons/arrow-down-left.json                    |   2 +-
 icons/arrow-down-narrow-wide.json             |   2 +-
 icons/arrow-down-right-from-circle.json       |   2 +-
 icons/arrow-down-right-from-square.json       |   2 +-
 icons/arrow-down-right-square.json            |   2 +-
 icons/arrow-down-right.json                   |   2 +-
 icons/arrow-down-square.json                  |   2 +-
 icons/arrow-down-to-dot.json                  |   2 +-
 icons/arrow-down-to-line.json                 |   2 +-
 icons/arrow-down-up.json                      |   2 +-
 icons/arrow-down-wide-narrow.json             |   2 +-
 icons/arrow-down-z-a.json                     |   2 +-
 icons/arrow-down.json                         |   2 +-
 icons/arrow-left-circle.json                  |   2 +-
 icons/arrow-left-from-line.json               |   2 +-
 icons/arrow-left-right.json                   |   2 +-
 icons/arrow-left-square.json                  |   2 +-
 icons/arrow-left-to-line.json                 |   2 +-
 icons/arrow-left.json                         |   2 +-
 icons/arrow-right-circle.json                 |   2 +-
 icons/arrow-right-from-line.json              |   2 +-
 icons/arrow-right-left.json                   |   2 +-
 icons/arrow-right-square.json                 |   2 +-
 icons/arrow-right-to-line.json                |   2 +-
 icons/arrow-right.json                        |   2 +-
 icons/arrow-up-0-1.json                       |   2 +-
 icons/arrow-up-1-0.json                       |   2 +-
 icons/arrow-up-a-z.json                       |   2 +-
 icons/arrow-up-circle.json                    |   2 +-
 icons/arrow-up-down.json                      |   2 +-
 icons/arrow-up-from-dot.json                  |   2 +-
 icons/arrow-up-from-line.json                 |   2 +-
 icons/arrow-up-left-from-circle.json          |   2 +-
 icons/arrow-up-left-from-square.json          |   2 +-
 icons/arrow-up-left-square.json               |   2 +-
 icons/arrow-up-left.json                      |   2 +-
 icons/arrow-up-narrow-wide.json               |   2 +-
 icons/arrow-up-right-from-circle.json         |   2 +-
 icons/arrow-up-right-from-square.json         |   2 +-
 icons/arrow-up-right-square.json              |   2 +-
 icons/arrow-up-right.json                     |   2 +-
 icons/arrow-up-square.json                    |   2 +-
 icons/arrow-up-to-line.json                   |   2 +-
 icons/arrow-up-wide-narrow.json               |   2 +-
 icons/arrow-up-z-a.json                       |   2 +-
 icons/arrow-up.json                           |   2 +-
 icons/arrows-up-from-line.json                |   2 +-
 icons/asterisk.json                           |   2 +-
 icons/at-sign.json                            |   2 +-
 icons/audio-lines.json                        |   2 +-
 icons/award.json                              |   2 +-
 icons/axe.json                                |   2 +-
 icons/axis-3d.json                            |   2 +-
 icons/baby.json                               |   2 +-
 icons/backpack.json                           |   2 +-
 icons/badge-alert.json                        |   2 +-
 icons/badge-cent.json                         |   2 +-
 icons/badge-check.json                        |   4 +-
 icons/badge-dollar-sign.json                  |   2 +-
 icons/badge-euro.json                         |   2 +-
 icons/badge-help.json                         |   2 +-
 icons/badge-indian-rupee.json                 |   2 +-
 icons/badge-info.json                         |   2 +-
 icons/badge-minus.json                        |   2 +-
 icons/badge-percent.json                      |   2 +-
 icons/badge-plus.json                         |   2 +-
 icons/badge-pound-sterling.json               |   2 +-
 icons/badge-russian-ruble.json                |   2 +-
 icons/badge-swiss-franc.json                  |   2 +-
 icons/badge-x.json                            |   2 +-
 icons/badge.json                              |   2 +-
 icons/baggage-claim.json                      |   2 +-
 icons/banana.json                             |   2 +-
 icons/banknote.json                           |   2 +-
 icons/bar-chart-2.json                        |   2 +-
 icons/bar-chart-3.json                        |   2 +-
 icons/bar-chart-4.json                        |   2 +-
 icons/bar-chart-big.json                      |   2 +-
 icons/bar-chart-horizontal-big.json           |   2 +-
 icons/bar-chart-horizontal.json               |   2 +-
 icons/bar-chart.json                          |   2 +-
 icons/barcode.json                            |   2 +-
 icons/baseline.json                           |   2 +-
 icons/bath.json                               |   2 +-
 icons/beaker.json                             |   2 +-
 icons/bean-off.json                           |   2 +-
 icons/bean.json                               |   2 +-
 icons/bed-double.json                         |   2 +-
 icons/bed-single.json                         |   2 +-
 icons/bed.json                                |   2 +-
 icons/beef.json                               |   2 +-
 icons/beer.json                               |   2 +-
 icons/bell-dot.json                           |   2 +-
 icons/bell-electric.json                      |   2 +-
 icons/bell-minus.json                         |   2 +-
 icons/bell-off.json                           |   2 +-
 icons/bell-plus.json                          |   2 +-
 icons/bell-ring.json                          |   2 +-
 icons/bell.json                               |   2 +-
 icons/bike.json                               |   2 +-
 icons/binary.json                             |   2 +-
 icons/biohazard.json                          |   2 +-
 icons/bird.json                               |   2 +-
 icons/bitcoin.json                            |   2 +-
 icons/blinds.json                             |   2 +-
 icons/blocks.json                             |   2 +-
 icons/bluetooth-connected.json                |   2 +-
 icons/bluetooth-off.json                      |   2 +-
 icons/bluetooth-searching.json                |   2 +-
 icons/bluetooth.json                          |   2 +-
 icons/bold.json                               |   2 +-
 icons/bolt.json                               |   2 +-
 icons/bomb.json                               |   2 +-
 icons/bone.json                               |   2 +-
 icons/book-a.json                             |   2 +-
 icons/book-check.json                         |   2 +-
 icons/book-copy.json                          |   6 +-
 icons/book-dashed.json                        |   2 +-
 icons/book-down.json                          |   2 +-
 icons/book-image.json                         |   2 +-
 icons/book-key.json                           |   2 +-
 icons/book-lock.json                          |   2 +-
 icons/book-marked.json                        |   2 +-
 icons/book-minus.json                         |   2 +-
 icons/book-open-check.json                    |   2 +-
 icons/book-open.json                          |   2 +-
 icons/book-plus.json                          |   2 +-
 icons/book-text.json                          |   2 +-
 icons/book-up-2.json                          |   2 +-
 icons/book-up.json                            |   2 +-
 icons/book-user.json                          |   2 +-
 icons/book-x.json                             |   2 +-
 icons/book.json                               |   2 +-
 icons/bookmark-check.json                     |   2 +-
 icons/bookmark-minus.json                     |   2 +-
 icons/bookmark-plus.json                      |   2 +-
 icons/bookmark-x.json                         |   2 +-
 icons/bookmark.json                           |   2 +-
 icons/boom-box.json                           |   2 +-
 icons/box-select.json                         |   2 +-
 icons/box.json                                |   2 +-
 icons/boxes.json                              |   2 +-
 icons/braces.json                             |   4 +-
 icons/brackets.json                           |   2 +-
 icons/brain-circuit.json                      |   2 +-
 icons/brain-cog.json                          |   2 +-
 icons/brain.json                              |   2 +-
 icons/brick-wall.json                         |   2 +-
 icons/briefcase.json                          |   2 +-
 icons/bring-to-front.json                     |   2 +-
 icons/brush.json                              |   2 +-
 icons/bug-off.json                            |   2 +-
 icons/bug-play.json                           |   2 +-
 icons/bug.json                                |   2 +-
 icons/building-2.json                         |   2 +-
 icons/building.json                           |   2 +-
 icons/bus-front.json                          |   2 +-
 icons/bus.json                                |   2 +-
 icons/cable-car.json                          |   2 +-
 icons/cake-slice.json                         |   2 +-
 icons/calculator.json                         |   2 +-
 icons/calendar-check-2.json                   |   2 +-
 icons/calendar-check.json                     |   2 +-
 icons/calendar-clock.json                     |   2 +-
 icons/calendar-days.json                      |   2 +-
 icons/calendar-fold.json                      |   2 +-
 icons/calendar-heart.json                     |   2 +-
 icons/calendar-minus-2.json                   |   2 +-
 icons/calendar-minus.json                     |   2 +-
 icons/calendar-off.json                       |   2 +-
 icons/calendar-plus-2.json                    |   2 +-
 icons/calendar-plus.json                      |   2 +-
 icons/calendar-range.json                     |   2 +-
 icons/calendar-search.json                    |   2 +-
 icons/calendar-x-2.json                       |   2 +-
 icons/calendar-x.json                         |   2 +-
 icons/calendar.json                           |   2 +-
 icons/camera-off.json                         |   2 +-
 icons/camera.json                             |   2 +-
 icons/candlestick-chart.json                  |   2 +-
 icons/candy-cane.json                         |   2 +-
 icons/candy-off.json                          |   2 +-
 icons/candy.json                              |   2 +-
 icons/car-front.json                          |   2 +-
 icons/car-taxi-front.json                     |   2 +-
 icons/car.json                                |   2 +-
 icons/caravan.json                            |   2 +-
 icons/carrot.json                             |   2 +-
 icons/case-lower.json                         |   2 +-
 icons/case-sensitive.json                     |   2 +-
 icons/case-upper.json                         |   2 +-
 icons/cassette-tape.json                      |   2 +-
 icons/cast.json                               |   2 +-
 icons/castle.json                             |   2 +-
 icons/cat.json                                |   2 +-
 icons/cctv.json                               |   2 +-
 icons/check-check.json                        |   2 +-
 icons/check-circle-2.json                     |   2 +-
 icons/check-circle.json                       |   2 +-
 icons/check-square-2.json                     |   2 +-
 icons/check-square.json                       |   2 +-
 icons/check.json                              |   2 +-
 icons/chef-hat.json                           |   2 +-
 icons/cherry.json                             |   2 +-
 icons/chevron-down-circle.json                |   2 +-
 icons/chevron-down-square.json                |   2 +-
 icons/chevron-first.json                      |   2 +-
 icons/chevron-last.json                       |   2 +-
 icons/chevron-left-circle.json                |   2 +-
 icons/chevron-left-square.json                |   2 +-
 icons/chevron-left.json                       |   2 +-
 icons/chevron-right-circle.json               |   2 +-
 icons/chevron-right-square.json               |   2 +-
 icons/chevron-right.json                      |   2 +-
 icons/chevron-up-circle.json                  |   2 +-
 icons/chevron-up-square.json                  |   2 +-
 icons/chevrons-down-up.json                   |   2 +-
 icons/chevrons-down.json                      |   2 +-
 icons/chevrons-left-right.json                |   2 +-
 icons/chevrons-left.json                      |   2 +-
 icons/chevrons-right-left.json                |   2 +-
 icons/chevrons-right.json                     |   2 +-
 icons/chevrons-up-down.json                   |   2 +-
 icons/chevrons-up.json                        |   2 +-
 icons/church.json                             |   2 +-
 icons/cigarette-off.json                      |   2 +-
 icons/cigarette.json                          |   2 +-
 icons/circle-dashed.json                      |   2 +-
 icons/circle-dollar-sign.json                 |   2 +-
 icons/circle-dot-dashed.json                  |   2 +-
 icons/circle-dot.json                         |   2 +-
 icons/circle-ellipsis.json                    |   2 +-
 icons/circle-equal.json                       |   2 +-
 icons/circle-off.json                         |   2 +-
 icons/circle-slash.json                       |   2 +-
 icons/circle-user-round.json                  |   2 +-
 icons/circle.json                             |   2 +-
 icons/citrus.json                             |   2 +-
 icons/clapperboard.json                       |   2 +-
 icons/clipboard-check.json                    |   2 +-
 icons/clipboard-copy.json                     |   2 +-
 icons/clipboard-list.json                     |   2 +-
 icons/clipboard-paste.json                    |   2 +-
 icons/clipboard-pen-line.json                 |   2 +-
 icons/clipboard-pen.json                      |   2 +-
 icons/clipboard-type.json                     |   2 +-
 icons/clipboard-x.json                        |   2 +-
 icons/clipboard.json                          |   2 +-
 icons/clock-1.json                            |   2 +-
 icons/clock-10.json                           |   2 +-
 icons/clock-11.json                           |   2 +-
 icons/clock-12.json                           |   2 +-
 icons/clock-2.json                            |   2 +-
 icons/clock-3.json                            |   2 +-
 icons/clock-4.json                            |   2 +-
 icons/clock-5.json                            |   2 +-
 icons/clock-6.json                            |   2 +-
 icons/clock-7.json                            |   2 +-
 icons/clock-8.json                            |   2 +-
 icons/clock-9.json                            |   2 +-
 icons/clock.json                              |   2 +-
 icons/cloud-cog.json                          |   2 +-
 icons/cloud-drizzle.json                      |   2 +-
 icons/cloud-fog.json                          |   2 +-
 icons/cloud-hail.json                         |   2 +-
 icons/cloud-lightning.json                    |   2 +-
 icons/cloud-moon-rain.json                    |   2 +-
 icons/cloud-moon.json                         |   2 +-
 icons/cloud-off.json                          |   2 +-
 icons/cloud-rain-wind.json                    |   2 +-
 icons/cloud-rain.json                         |   2 +-
 icons/cloud-snow.json                         |   2 +-
 icons/cloud-sun-rain.json                     |   2 +-
 icons/cloud-sun.json                          |   2 +-
 icons/cloud.json                              |   2 +-
 icons/cloudy.json                             |   2 +-
 icons/clover.json                             |   2 +-
 icons/club.json                               |   2 +-
 icons/code-2.json                             |   2 +-
 icons/code-square.json                        |   2 +-
 icons/code.json                               |   2 +-
 icons/coffee.json                             |   2 +-
 icons/cog.json                                |   2 +-
 icons/coins.json                              |   2 +-
 icons/columns-2.json                          |   2 +-
 icons/columns-3.json                          |   2 +-
 icons/columns-4.json                          |   2 +-
 icons/combine.json                            |   2 +-
 icons/command.json                            |   2 +-
 icons/compass.json                            |   2 +-
 icons/component.json                          |   2 +-
 icons/computer.json                           |   2 +-
 icons/concierge-bell.json                     |   2 +-
 icons/cone.json                               |   2 +-
 icons/construction.json                       |   2 +-
 icons/contact-2.json                          |   2 +-
 icons/contact.json                            |   2 +-
 icons/container.json                          |   2 +-
 icons/contrast.json                           |   2 +-
 icons/cookie.json                             |   2 +-
 icons/copy-check.json                         |   2 +-
 icons/copy-minus.json                         |   2 +-
 icons/copy-plus.json                          |   2 +-
 icons/copy-slash.json                         |   2 +-
 icons/copy-x.json                             |   2 +-
 icons/copy.json                               |   2 +-
 icons/copyleft.json                           |   2 +-
 icons/copyright.json                          |   2 +-
 icons/corner-down-left.json                   |   2 +-
 icons/corner-down-right.json                  |   2 +-
 icons/corner-left-down.json                   |   2 +-
 icons/corner-left-up.json                     |   2 +-
 icons/corner-right-down.json                  |   2 +-
 icons/corner-right-up.json                    |   2 +-
 icons/corner-up-left.json                     |   2 +-
 icons/corner-up-right.json                    |   2 +-
 icons/cpu.json                                |   2 +-
 icons/creative-commons.json                   |   2 +-
 icons/credit-card.json                        |   2 +-
 icons/croissant.json                          |   2 +-
 icons/crop.json                               |   2 +-
 icons/cross.json                              |   2 +-
 icons/crosshair.json                          |   2 +-
 icons/crown.json                              |   2 +-
 icons/cuboid.json                             |   2 +-
 icons/cup-soda.json                           |   2 +-
 icons/currency.json                           |   2 +-
 icons/cylinder.json                           |   2 +-
 icons/database-backup.json                    |   2 +-
 icons/database-zap.json                       |   2 +-
 icons/delete.json                             |   2 +-
 icons/dessert.json                            |   2 +-
 icons/diameter.json                           |   2 +-
 icons/diamond.json                            |   2 +-
 icons/dice-1.json                             |   2 +-
 icons/dice-2.json                             |   2 +-
 icons/dice-3.json                             |   2 +-
 icons/dice-4.json                             |   2 +-
 icons/dice-5.json                             |   2 +-
 icons/dice-6.json                             |   2 +-
 icons/dices.json                              |   2 +-
 icons/diff.json                               |   2 +-
 icons/disc-2.json                             |   2 +-
 icons/disc-3.json                             |   2 +-
 icons/disc-album.json                         |   4 +-
 icons/disc.json                               |   2 +-
 icons/divide-circle.json                      |   2 +-
 icons/divide-square.json                      |   2 +-
 icons/divide.json                             |   2 +-
 icons/dna-off.json                            |   2 +-
 icons/dna.json                                |   2 +-
 icons/dog.json                                |   2 +-
 icons/dollar-sign.json                        |   2 +-
 icons/donut.json                              |   2 +-
 icons/door-closed.json                        |   2 +-
 icons/door-open.json                          |   2 +-
 icons/dot-square.json                         |   2 +-
 icons/dot.json                                |   2 +-
 icons/download-cloud.json                     |   2 +-
 icons/download.json                           |   2 +-
 icons/drafting-compass.json                   |   2 +-
 icons/drama.json                              |  32 +--
 icons/drill.json                              |   2 +-
 icons/droplet.json                            |   2 +-
 icons/droplets.json                           |   2 +-
 icons/drum.json                               |   2 +-
 icons/drumstick.json                          |   2 +-
 icons/dumbbell.json                           |   2 +-
 icons/ear-off.json                            |   2 +-
 icons/ear.json                                |   2 +-
 icons/eclipse.json                            |   2 +-
 icons/egg-fried.json                          |   2 +-
 icons/egg-off.json                            |   2 +-
 icons/egg.json                                |   2 +-
 icons/equal-not.json                          |   2 +-
 icons/equal-square.json                       |   2 +-
 icons/equal.json                              |   2 +-
 icons/eraser.json                             |   2 +-
 icons/euro.json                               |   2 +-
 icons/expand.json                             |   2 +-
 icons/external-link.json                      |   2 +-
 icons/eye-off.json                            |   2 +-
 icons/eye.json                                |   2 +-
 icons/factory.json                            |   2 +-
 icons/fan.json                                |   2 +-
 icons/fast-forward.json                       |   2 +-
 icons/feather.json                            |   2 +-
 icons/fence.json                              |   2 +-
 icons/ferris-wheel.json                       |   2 +-
 icons/file-archive.json                       |   2 +-
 icons/file-audio-2.json                       |   2 +-
 icons/file-audio.json                         |   2 +-
 icons/file-axis-3d.json                       |   2 +-
 icons/file-badge-2.json                       |   2 +-
 icons/file-badge.json                         |   2 +-
 icons/file-bar-chart-2.json                   |   2 +-
 icons/file-bar-chart.json                     |   2 +-
 icons/file-box.json                           |   2 +-
 icons/file-check-2.json                       |   2 +-
 icons/file-check.json                         |   2 +-
 icons/file-clock.json                         |   2 +-
 icons/file-code-2.json                        |   2 +-
 icons/file-code.json                          |   2 +-
 icons/file-diff.json                          |   2 +-
 icons/file-digit.json                         |   2 +-
 icons/file-down.json                          |   2 +-
 icons/file-heart.json                         |   2 +-
 icons/file-image.json                         |   2 +-
 icons/file-input.json                         |   2 +-
 icons/file-json-2.json                        |   2 +-
 icons/file-json.json                          |   2 +-
 icons/file-key-2.json                         |   2 +-
 icons/file-key.json                           |   2 +-
 icons/file-line-chart.json                    |   2 +-
 icons/file-lock-2.json                        |   2 +-
 icons/file-lock.json                          |   2 +-
 icons/file-minus-2.json                       |   2 +-
 icons/file-minus.json                         |   2 +-
 icons/file-music.json                         |   2 +-
 icons/file-output.json                        |   2 +-
 icons/file-pen-line.json                      |   2 +-
 icons/file-pen.json                           |   2 +-
 icons/file-pie-chart.json                     |   2 +-
 icons/file-plus-2.json                        |   2 +-
 icons/file-plus.json                          |   2 +-
 icons/file-question.json                      |   2 +-
 icons/file-scan.json                          |   2 +-
 icons/file-search-2.json                      |   2 +-
 icons/file-search.json                        |   2 +-
 icons/file-sliders.json                       |   2 +-
 icons/file-spreadsheet.json                   |   2 +-
 icons/file-stack.json                         |   2 +-
 icons/file-symlink.json                       |   2 +-
 icons/file-terminal.json                      |   2 +-
 icons/file-text.json                          |   2 +-
 icons/file-type-2.json                        |   2 +-
 icons/file-type.json                          |   2 +-
 icons/file-up.json                            |   2 +-
 icons/file-video-2.json                       |   2 +-
 icons/file-video.json                         |   2 +-
 icons/file-volume-2.json                      |   2 +-
 icons/file-volume.json                        |   2 +-
 icons/file-warning.json                       |   2 +-
 icons/file-x-2.json                           |   2 +-
 icons/file-x.json                             |   2 +-
 icons/file.json                               |   2 +-
 icons/files.json                              |   2 +-
 icons/film.json                               |   2 +-
 icons/filter-x.json                           |   2 +-
 icons/filter.json                             |   2 +-
 icons/fingerprint.json                        |   2 +-
 icons/fire-extinguisher.json                  |   2 +-
 icons/fish-off.json                           |   2 +-
 icons/fish.json                               |   2 +-
 icons/flag-off.json                           |   2 +-
 icons/flag-triangle-left.json                 |   2 +-
 icons/flag-triangle-right.json                |   2 +-
 icons/flag.json                               |   2 +-
 icons/flame-kindling.json                     |   2 +-
 icons/flame.json                              |   2 +-
 icons/flashlight-off.json                     |   2 +-
 icons/flashlight.json                         |   2 +-
 icons/flask-conical-off.json                  |   2 +-
 icons/flask-conical.json                      |   2 +-
 icons/flask-round.json                        |   2 +-
 icons/flip-horizontal-2.json                  |   2 +-
 icons/flip-horizontal.json                    |   2 +-
 icons/flip-vertical-2.json                    |   2 +-
 icons/flip-vertical.json                      |   2 +-
 icons/flower-2.json                           |   2 +-
 icons/flower.json                             |   2 +-
 icons/focus.json                              |   2 +-
 icons/fold-horizontal.json                    |   2 +-
 icons/fold-vertical.json                      |   2 +-
 icons/folder-archive.json                     |   2 +-
 icons/folder-check.json                       |   2 +-
 icons/folder-clock.json                       |   2 +-
 icons/folder-closed.json                      |   2 +-
 icons/folder-dot.json                         |   2 +-
 icons/folder-down.json                        |   2 +-
 icons/folder-git-2.json                       |   2 +-
 icons/folder-git.json                         |   2 +-
 icons/folder-heart.json                       |   2 +-
 icons/folder-input.json                       |   2 +-
 icons/folder-kanban.json                      |   2 +-
 icons/folder-key.json                         |   2 +-
 icons/folder-lock.json                        |   2 +-
 icons/folder-minus.json                       |   2 +-
 icons/folder-open-dot.json                    |   2 +-
 icons/folder-open.json                        |   2 +-
 icons/folder-output.json                      |   2 +-
 icons/folder-pen.json                         |   2 +-
 icons/folder-plus.json                        |   2 +-
 icons/folder-root.json                        |   2 +-
 icons/folder-search-2.json                    |   2 +-
 icons/folder-search.json                      |   2 +-
 icons/folder-symlink.json                     |   2 +-
 icons/folder-tree.json                        |   2 +-
 icons/folder-up.json                          |   2 +-
 icons/folder-x.json                           |   2 +-
 icons/folder.json                             |   2 +-
 icons/folders.json                            |   2 +-
 icons/footprints.json                         |   2 +-
 icons/forklift.json                           |   2 +-
 icons/form-input.json                         |   2 +-
 icons/forward.json                            |   2 +-
 icons/frame.json                              |   2 +-
 icons/frown.json                              |   2 +-
 icons/fuel.json                               |   2 +-
 icons/fullscreen.json                         |   2 +-
 icons/function-square.json                    |   2 +-
 icons/gallery-horizontal-end.json             |   2 +-
 icons/gallery-horizontal.json                 |   2 +-
 icons/gallery-thumbnails.json                 |   2 +-
 icons/gallery-vertical-end.json               |   2 +-
 icons/gallery-vertical.json                   |   2 +-
 icons/gamepad-2.json                          |   2 +-
 icons/gamepad.json                            |   2 +-
 icons/gantt-chart.json                        |  11 +-
 icons/gauge-circle.json                       |   2 +-
 icons/gauge.json                              |   2 +-
 icons/gem.json                                |   2 +-
 icons/ghost.json                              |   2 +-
 icons/git-branch-plus.json                    |   2 +-
 icons/git-branch.json                         |   2 +-
 icons/git-commit-horizontal.json              |   2 +-
 icons/git-commit-vertical.json                |   2 +-
 icons/git-compare-arrows.json                 |   2 +-
 icons/git-compare.json                        |   2 +-
 icons/git-fork.json                           |   2 +-
 icons/git-graph.json                          |   2 +-
 icons/git-merge.json                          |   2 +-
 icons/git-pull-request-arrow.json             |   2 +-
 icons/git-pull-request-closed.json            |   2 +-
 icons/git-pull-request-create-arrow.json      |   2 +-
 icons/git-pull-request-create.json            |   2 +-
 icons/git-pull-request-draft.json             |   2 +-
 icons/git-pull-request.json                   |   2 +-
 icons/glass-water.json                        |   2 +-
 icons/glasses.json                            |   2 +-
 icons/globe-2.json                            |   2 +-
 icons/globe.json                              |   2 +-
 icons/goal.json                               |  18 +-
 icons/grab.json                               |   2 +-
 icons/grape.json                              |   2 +-
 icons/grid-2x2.json                           |   2 +-
 icons/grid-3x3.json                           |   2 +-
 icons/grip-horizontal.json                    |   2 +-
 icons/grip-vertical.json                      |   2 +-
 icons/grip.json                               |   2 +-
 icons/group.json                              |   2 +-
 icons/guitar.json                             |   2 +-
 icons/hammer.json                             |   2 +-
 icons/hand-coins.json                         |   2 +-
 icons/hand-heart.json                         |   2 +-
 icons/hand-helping.json                       |   2 +-
 icons/hand-metal.json                         |   2 +-
 icons/hand-platter.json                       |   2 +-
 icons/hand.json                               |   2 +-
 icons/hard-drive-download.json                |   2 +-
 icons/hard-drive-upload.json                  |   2 +-
 icons/hard-drive.json                         |   2 +-
 icons/hard-hat.json                           |   2 +-
 icons/hash.json                               |   2 +-
 icons/haze.json                               |   2 +-
 icons/hdmi-port.json                          |   2 +-
 icons/heading-1.json                          |   2 +-
 icons/heading-2.json                          |   2 +-
 icons/heading-3.json                          |   2 +-
 icons/heading-4.json                          |   2 +-
 icons/heading-5.json                          |   2 +-
 icons/heading-6.json                          |   2 +-
 icons/heading.json                            |   2 +-
 icons/headphones.json                         |   2 +-
 icons/heart-crack.json                        |   2 +-
 icons/heart-handshake.json                    |   2 +-
 icons/heart-off.json                          |   2 +-
 icons/heart-pulse.json                        |   2 +-
 icons/heart.json                              |   2 +-
 icons/heater.json                             |   2 +-
 icons/help-circle.json                        |   2 +-
 icons/hexagon.json                            |   2 +-
 icons/highlighter.json                        |   2 +-
 icons/history.json                            |   2 +-
 icons/home.json                               |   2 +-
 icons/hop-off.json                            |   2 +-
 icons/hop.json                                |   2 +-
 icons/hotel.json                              |   2 +-
 icons/hourglass.json                          |   2 +-
 icons/ice-cream-2.json                        |   2 +-
 icons/ice-cream.json                          |   2 +-
 icons/image-minus.json                        |   2 +-
 icons/image-off.json                          |   2 +-
 icons/image-plus.json                         |   2 +-
 icons/image.json                              |   2 +-
 icons/import.json                             |   2 +-
 icons/inbox.json                              |   2 +-
 icons/indent.json                             |   2 +-
 icons/indian-rupee.json                       |   2 +-
 icons/infinity.json                           |   2 +-
 icons/info.json                               |   2 +-
 icons/inspection-panel.json                   |   2 +-
 icons/italic.json                             |   2 +-
 icons/iteration-ccw.json                      |   2 +-
 icons/iteration-cw.json                       |   2 +-
 icons/japanese-yen.json                       |   2 +-
 icons/joystick.json                           |   2 +-
 icons/kanban.json                             |   2 +-
 icons/key-round.json                          |   2 +-
 icons/key-square.json                         |   2 +-
 icons/key.json                                |   2 +-
 icons/keyboard-music.json                     |   4 +-
 icons/keyboard.json                           |   2 +-
 icons/lamp-ceiling.json                       |   2 +-
 icons/lamp-desk.json                          |   2 +-
 icons/lamp-floor.json                         |   2 +-
 icons/lamp-wall-down.json                     |   2 +-
 icons/lamp-wall-up.json                       |   2 +-
 icons/lamp.json                               |   2 +-
 icons/land-plot.json                          |   2 +-
 icons/landmark.json                           |   2 +-
 icons/languages.json                          |   2 +-
 icons/laptop-2.json                           |   2 +-
 icons/laptop.json                             |   2 +-
 icons/lasso-select.json                       |   2 +-
 icons/lasso.json                              |   2 +-
 icons/laugh.json                              |   2 +-
 icons/layers-2.json                           |   2 +-
 icons/layers-3.json                           |   2 +-
 icons/layers.json                             |   2 +-
 icons/layout-dashboard.json                   |   2 +-
 icons/layout-grid.json                        |   2 +-
 icons/layout-list.json                        |   2 +-
 icons/layout-panel-left.json                  |   2 +-
 icons/layout-panel-top.json                   |   2 +-
 icons/layout-template.json                    |   2 +-
 icons/leaf.json                               |   2 +-
 icons/leafy-green.json                        |   2 +-
 icons/library-big.json                        |   2 +-
 icons/library-square.json                     |   2 +-
 icons/library.json                            |   2 +-
 icons/life-buoy.json                          |   2 +-
 icons/ligature.json                           |   2 +-
 icons/lightbulb-off.json                      |   2 +-
 icons/lightbulb.json                          |   2 +-
 icons/line-chart.json                         |   2 +-
 icons/link-2-off.json                         |   2 +-
 icons/link-2.json                             |   2 +-
 icons/link.json                               |   2 +-
 icons/linkedin.json                           |   2 +-
 icons/list-checks.json                        |   2 +-
 icons/list-end.json                           |   2 +-
 icons/list-filter.json                        |   2 +-
 icons/list-minus.json                         |   2 +-
 icons/list-music.json                         |   2 +-
 icons/list-ordered.json                       |   2 +-
 icons/list-plus.json                          |   2 +-
 icons/list-restart.json                       |   2 +-
 icons/list-start.json                         |   2 +-
 icons/list-todo.json                          |   2 +-
 icons/list-tree.json                          |   2 +-
 icons/list-video.json                         |   2 +-
 icons/list-x.json                             |   2 +-
 icons/list.json                               |   2 +-
 icons/loader-2.json                           |   2 +-
 icons/loader.json                             |   2 +-
 icons/locate-fixed.json                       |   2 +-
 icons/locate-off.json                         |   2 +-
 icons/locate.json                             |   2 +-
 icons/lock-keyhole.json                       |  24 +-
 icons/lock.json                               |   2 +-
 icons/log-in.json                             |   2 +-
 icons/log-out.json                            |   2 +-
 icons/lollipop.json                           |   2 +-
 icons/luggage.json                            |   2 +-
 icons/m-square.json                           |   2 +-
 icons/magnet.json                             |   2 +-
 icons/mail-check.json                         |   2 +-
 icons/mail-minus.json                         |   2 +-
 icons/mail-open.json                          |   2 +-
 icons/mail-plus.json                          |   2 +-
 icons/mail-question.json                      |   2 +-
 icons/mail-search.json                        |   2 +-
 icons/mail-warning.json                       |   2 +-
 icons/mail-x.json                             |   2 +-
 icons/mail.json                               |   2 +-
 icons/mailbox.json                            |   2 +-
 icons/mails.json                              |   2 +-
 icons/map-pin-off.json                        |   2 +-
 icons/map-pin.json                            |   2 +-
 icons/map-pinned.json                         |   2 +-
 icons/map.json                                |   2 +-
 icons/martini.json                            |   2 +-
 icons/maximize-2.json                         |   2 +-
 icons/maximize.json                           |   2 +-
 icons/medal.json                              |   2 +-
 icons/megaphone-off.json                      |   2 +-
 icons/megaphone.json                          |   2 +-
 icons/meh.json                                |   2 +-
 icons/memory-stick.json                       |   2 +-
 icons/menu-square.json                        |   2 +-
 icons/menu.json                               |   2 +-
 icons/merge.json                              |   2 +-
 icons/message-circle-dashed.json              |   2 +-
 icons/message-circle-heart.json               |   2 +-
 icons/message-circle-reply.json               |   2 +-
 icons/message-circle.json                     |   2 +-
 icons/message-square-dashed.json              |   2 +-
 icons/message-square-dot.json                 |   2 +-
 icons/message-square-heart.json               |   2 +-
 icons/message-square-plus.json                |   2 +-
 icons/message-square-quote.json               |   2 +-
 icons/message-square-reply.json               |   2 +-
 icons/message-square.json                     |   2 +-
 icons/messages-square.json                    |   2 +-
 icons/mic-2.json                              |   2 +-
 icons/mic-off.json                            |   2 +-
 icons/mic.json                                |   2 +-
 icons/microscope.json                         |   2 +-
 icons/microwave.json                          |   2 +-
 icons/milestone.json                          |   2 +-
 icons/milk-off.json                           |   2 +-
 icons/milk.json                               |   2 +-
 icons/minimize-2.json                         |   2 +-
 icons/minimize.json                           |   2 +-
 icons/minus-circle.json                       |   2 +-
 icons/minus-square.json                       |   2 +-
 icons/minus.json                              |   2 +-
 icons/monitor-check.json                      |   2 +-
 icons/monitor-dot.json                        |   2 +-
 icons/monitor-down.json                       |   2 +-
 icons/monitor-off.json                        |   2 +-
 icons/monitor-pause.json                      |   2 +-
 icons/monitor-play.json                       |   2 +-
 icons/monitor-smartphone.json                 |   2 +-
 icons/monitor-speaker.json                    |   2 +-
 icons/monitor-stop.json                       |   2 +-
 icons/monitor-up.json                         |   2 +-
 icons/monitor-x.json                          |   2 +-
 icons/monitor.json                            |   2 +-
 icons/moon-star.json                          |   2 +-
 icons/moon.json                               |   2 +-
 icons/more-horizontal.json                    |   2 +-
 icons/more-vertical.json                      |   2 +-
 icons/mountain-snow.json                      |   2 +-
 icons/mountain.json                           |   2 +-
 icons/mouse-pointer-2.json                    |   2 +-
 icons/mouse-pointer-square-dashed.json        |   2 +-
 icons/mouse-pointer-square.json               |   2 +-
 icons/mouse-pointer.json                      |   2 +-
 icons/mouse.json                              |   2 +-
 icons/move-3d.json                            |   2 +-
 icons/move-diagonal-2.json                    |   2 +-
 icons/move-diagonal.json                      |   2 +-
 icons/move-down-left.json                     |   2 +-
 icons/move-down-right.json                    |   2 +-
 icons/move-down.json                          |   2 +-
 icons/move-horizontal.json                    |   2 +-
 icons/move-left.json                          |   2 +-
 icons/move-right.json                         |   2 +-
 icons/move-up-left.json                       |   2 +-
 icons/move-up-right.json                      |   2 +-
 icons/move-up.json                            |   2 +-
 icons/move-vertical.json                      |   2 +-
 icons/move.json                               |   2 +-
 icons/music-2.json                            |   2 +-
 icons/music-3.json                            |   2 +-
 icons/music-4.json                            |   2 +-
 icons/music.json                              |   2 +-
 icons/navigation-2-off.json                   |   2 +-
 icons/navigation-2.json                       |   2 +-
 icons/navigation-off.json                     |   2 +-
 icons/navigation.json                         |   2 +-
 icons/network.json                            |   2 +-
 icons/newspaper.json                          |   2 +-
 icons/nfc.json                                |   2 +-
 icons/notebook-pen.json                       |   2 +-
 icons/notebook-tabs.json                      |   2 +-
 icons/notebook-text.json                      |   2 +-
 icons/notebook.json                           |   2 +-
 icons/notepad-text-dashed.json                |   2 +-
 icons/notepad-text.json                       |   2 +-
 icons/nut-off.json                            |   2 +-
 icons/nut.json                                |   2 +-
 icons/octagon.json                            |   2 +-
 icons/option.json                             |   2 +-
 icons/outdent.json                            |   2 +-
 icons/package-2.json                          |   2 +-
 icons/package-check.json                      |   2 +-
 icons/package-minus.json                      |   2 +-
 icons/package-open.json                       |   2 +-
 icons/package-plus.json                       |   2 +-
 icons/package-search.json                     |   2 +-
 icons/package-x.json                          |   2 +-
 icons/package.json                            |   2 +-
 icons/paint-bucket.json                       |   2 +-
 icons/paint-roller.json                       |   2 +-
 icons/paintbrush-2.json                       |   2 +-
 icons/paintbrush.json                         |   2 +-
 icons/palette.json                            |   2 +-
 icons/palmtree.json                           |   2 +-
 icons/panel-bottom-close.json                 |   2 +-
 icons/panel-bottom-dashed.json                |   2 +-
 icons/panel-bottom-open.json                  |   2 +-
 icons/panel-bottom.json                       |   2 +-
 icons/panel-left-close.json                   |   4 +-
 icons/panel-left-dashed.json                  |   2 +-
 icons/panel-left-open.json                    |   4 +-
 icons/panel-left.json                         |   2 +-
 icons/panel-right-close.json                  |   2 +-
 icons/panel-right-dashed.json                 |   2 +-
 icons/panel-right-open.json                   |   2 +-
 icons/panel-right.json                        |   2 +-
 icons/panel-top-close.json                    |   2 +-
 icons/panel-top-dashed.json                   |   2 +-
 icons/panel-top-open.json                     |   2 +-
 icons/panel-top.json                          |   2 +-
 icons/panels-left-bottom.json                 |   2 +-
 icons/panels-right-bottom.json                |   2 +-
 icons/panels-top-left.json                    |   2 +-
 icons/paperclip.json                          |   2 +-
 icons/parentheses.json                        |   2 +-
 icons/parking-circle-off.json                 |   2 +-
 icons/parking-circle.json                     |   2 +-
 icons/parking-meter.json                      |   2 +-
 icons/parking-square-off.json                 |   2 +-
 icons/parking-square.json                     |   2 +-
 icons/pause-circle.json                       |   2 +-
 icons/pause-octagon.json                      |   2 +-
 icons/pause.json                              |   2 +-
 icons/paw-print.json                          |   2 +-
 icons/pc-case.json                            |   2 +-
 icons/pen-line.json                           |   2 +-
 icons/pen-tool.json                           |   2 +-
 icons/pen.json                                |   2 +-
 icons/pencil-line.json                        |   2 +-
 icons/pencil-ruler.json                       |   2 +-
 icons/pencil.json                             |   2 +-
 icons/pentagon.json                           |   2 +-
 icons/percent-circle.json                     |   2 +-
 icons/percent-diamond.json                    |   2 +-
 icons/percent-square.json                     |   2 +-
 icons/percent.json                            |   2 +-
 icons/person-standing.json                    |   2 +-
 icons/phone-call.json                         |   2 +-
 icons/phone-forwarded.json                    |   2 +-
 icons/phone-incoming.json                     |   2 +-
 icons/phone-missed.json                       |   2 +-
 icons/phone-off.json                          |   2 +-
 icons/phone-outgoing.json                     |   2 +-
 icons/phone.json                              |   2 +-
 icons/pi-square.json                          |   2 +-
 icons/pi.json                                 |   2 +-
 icons/piano.json                              |   2 +-
 icons/picture-in-picture-2.json               |   2 +-
 icons/picture-in-picture.json                 |   2 +-
 icons/pie-chart.json                          |   2 +-
 icons/piggy-bank.json                         |   2 +-
 icons/pilcrow-square.json                     |   2 +-
 icons/pilcrow.json                            |   2 +-
 icons/pill.json                               |   2 +-
 icons/pin-off.json                            |   2 +-
 icons/pin.json                                |   2 +-
 icons/pipette.json                            |   2 +-
 icons/pizza.json                              |   2 +-
 icons/plane-landing.json                      |   2 +-
 icons/plane-takeoff.json                      |   2 +-
 icons/plane.json                              |   2 +-
 icons/play-circle.json                        |   2 +-
 icons/play-square.json                        |   2 +-
 icons/play.json                               |   2 +-
 icons/plus-circle.json                        |   2 +-
 icons/plus-square.json                        |   2 +-
 icons/plus.json                               |   2 +-
 icons/pocket-knife.json                       |   2 +-
 icons/podcast.json                            |   2 +-
 icons/pointer.json                            |   2 +-
 icons/popcorn.json                            |   2 +-
 icons/popsicle.json                           |   2 +-
 icons/pound-sterling.json                     |   2 +-
 icons/power-circle.json                       |   2 +-
 icons/power-off.json                          |   2 +-
 icons/power-square.json                       |   2 +-
 icons/power.json                              |   2 +-
 icons/presentation.json                       |   2 +-
 icons/printer.json                            |   2 +-
 icons/projector.json                          |   2 +-
 icons/puzzle.json                             |   2 +-
 icons/pyramid.json                            |   2 +-
 icons/qr-code.json                            |   2 +-
 icons/quote.json                              |   2 +-
 icons/rabbit.json                             |   2 +-
 icons/radar.json                              |   2 +-
 icons/radiation.json                          |   2 +-
 icons/radio-receiver.json                     |   2 +-
 icons/radio-tower.json                        |   2 +-
 icons/radio.json                              |   2 +-
 icons/radius.json                             |   2 +-
 icons/rail-symbol.json                        |   2 +-
 icons/rainbow.json                            |   2 +-
 icons/rat.json                                |   2 +-
 icons/ratio.json                              |   2 +-
 icons/receipt-cent.json                       |   2 +-
 icons/receipt-euro.json                       |   2 +-
 icons/receipt-indian-rupee.json               |   2 +-
 icons/receipt-japanese-yen.json               |   2 +-
 icons/receipt-pound-sterling.json             |   2 +-
 icons/receipt-russian-ruble.json              |   2 +-
 icons/receipt-swiss-franc.json                |   2 +-
 icons/receipt-text.json                       |   2 +-
 icons/receipt.json                            |   2 +-
 icons/rectangle-horizontal.json               |   2 +-
 icons/rectangle-vertical.json                 |   2 +-
 icons/recycle.json                            |   2 +-
 icons/redo-2.json                             |   2 +-
 icons/redo-dot.json                           |   2 +-
 icons/redo.json                               |   2 +-
 icons/refresh-ccw-dot.json                    |   2 +-
 icons/refresh-ccw.json                        |   2 +-
 icons/refresh-cw-off.json                     |   2 +-
 icons/refresh-cw.json                         |   2 +-
 icons/refrigerator.json                       |   2 +-
 icons/regex.json                              |   2 +-
 icons/remove-formatting.json                  |   2 +-
 icons/repeat-1.json                           |   2 +-
 icons/repeat-2.json                           |   2 +-
 icons/repeat.json                             |   2 +-
 icons/replace-all.json                        |   2 +-
 icons/replace.json                            |   2 +-
 icons/reply-all.json                          |   2 +-
 icons/reply.json                              |   2 +-
 icons/rewind.json                             |   2 +-
 icons/rocket.json                             |   2 +-
 icons/rocking-chair.json                      |   2 +-
 icons/roller-coaster.json                     |   2 +-
 icons/rotate-3d.json                          |   2 +-
 icons/rotate-ccw.json                         |   2 +-
 icons/rotate-cw.json                          |   2 +-
 icons/route-off.json                          |   2 +-
 icons/route.json                              |   2 +-
 icons/router.json                             |   2 +-
 icons/rows-2.json                             |   2 +-
 icons/rows-3.json                             |   2 +-
 icons/rows-4.json                             |   2 +-
 icons/rss.json                                |   2 +-
 icons/ruler.json                              |   2 +-
 icons/russian-ruble.json                      |   2 +-
 icons/sailboat.json                           |   2 +-
 icons/salad.json                              |   2 +-
 icons/sandwich.json                           |   2 +-
 icons/satellite-dish.json                     |   2 +-
 icons/satellite.json                          |   2 +-
 icons/save-all.json                           |   2 +-
 icons/save.json                               |   2 +-
 icons/scale-3d.json                           |   2 +-
 icons/scale.json                              |   2 +-
 icons/scaling.json                            |   2 +-
 icons/scan-barcode.json                       |   2 +-
 icons/scan-eye.json                           |   2 +-
 icons/scan-face.json                          |   2 +-
 icons/scan-line.json                          |   2 +-
 icons/scan-search.json                        |   2 +-
 icons/scan-text.json                          |   2 +-
 icons/scan.json                               |   2 +-
 icons/scatter-chart.json                      |   2 +-
 icons/school-2.json                           |   2 +-
 icons/school.json                             |   2 +-
 icons/scissors-square-dashed-bottom.json      |   2 +-
 icons/scissors-square.json                    |   2 +-
 icons/scissors.json                           |   2 +-
 icons/screen-share-off.json                   |   2 +-
 icons/screen-share.json                       |   2 +-
 icons/scroll-text.json                        |   2 +-
 icons/scroll.json                             |   2 +-
 icons/search-check.json                       |   2 +-
 icons/search-code.json                        |   2 +-
 icons/search-slash.json                       |   2 +-
 icons/search-x.json                           |   2 +-
 icons/search.json                             |   2 +-
 icons/send-horizontal.json                    |   2 +-
 icons/send-to-back.json                       |   2 +-
 icons/send.json                               |   2 +-
 icons/separator-horizontal.json               |   2 +-
 icons/separator-vertical.json                 |   2 +-
 icons/server-cog.json                         |   2 +-
 icons/server-crash.json                       |   2 +-
 icons/server-off.json                         |   2 +-
 icons/server.json                             |   2 +-
 icons/settings-2.json                         |   2 +-
 icons/settings.json                           |   2 +-
 icons/shapes.json                             |   2 +-
 icons/share-2.json                            |   2 +-
 icons/share.json                              |   2 +-
 icons/sheet.json                              |   2 +-
 icons/shell.json                              |   2 +-
 icons/shield-alert.json                       |   2 +-
 icons/shield-ban.json                         |   6 +-
 icons/shield-check.json                       |   2 +-
 icons/shield-ellipsis.json                    |   2 +-
 icons/shield-half.json                        |   2 +-
 icons/shield-minus.json                       |   2 +-
 icons/shield-off.json                         |   2 +-
 icons/shield-question.json                    |   2 +-
 icons/shield.json                             |   2 +-
 icons/ship-wheel.json                         |   2 +-
 icons/ship.json                               |   2 +-
 icons/shirt.json                              |   2 +-
 icons/shopping-bag.json                       |   2 +-
 icons/shopping-basket.json                    |   2 +-
 icons/shopping-cart.json                      |   2 +-
 icons/shovel.json                             |   2 +-
 icons/shower-head.json                        |   2 +-
 icons/shrink.json                             |   2 +-
 icons/shrub.json                              |   2 +-
 icons/shuffle.json                            |   2 +-
 icons/sigma-square.json                       |   2 +-
 icons/sigma.json                              |   2 +-
 icons/signal-high.json                        |   2 +-
 icons/signal-low.json                         |   2 +-
 icons/signal-medium.json                      |   2 +-
 icons/signal-zero.json                        |   2 +-
 icons/signal.json                             |   2 +-
 icons/signpost-big.json                       |   2 +-
 icons/signpost.json                           |   2 +-
 icons/siren.json                              |   2 +-
 icons/skip-back.json                          |   2 +-
 icons/skip-forward.json                       |   2 +-
 icons/skull.json                              |   2 +-
 icons/slash-square.json                       |   4 +-
 icons/slash.json                              |   2 +-
 icons/slice.json                              |   2 +-
 icons/sliders-horizontal.json                 |   2 +-
 icons/sliders.json                            |   2 +-
 icons/smartphone-charging.json                |   2 +-
 icons/smartphone-nfc.json                     |   2 +-
 icons/smartphone.json                         |   2 +-
 icons/smile-plus.json                         |   2 +-
 icons/smile.json                              |   2 +-
 icons/snail.json                              |   2 +-
 icons/snowflake.json                          |   2 +-
 icons/sofa.json                               |   2 +-
 icons/soup.json                               |   2 +-
 icons/space.json                              |   2 +-
 icons/spade.json                              |   2 +-
 icons/sparkle.json                            |   2 +-
 icons/sparkles.json                           |   4 +-
 icons/speaker.json                            |   2 +-
 icons/spell-check-2.json                      |   2 +-
 icons/spell-check.json                        |   2 +-
 icons/split-square-horizontal.json            |   2 +-
 icons/split-square-vertical.json              |   2 +-
 icons/split.json                              |   2 +-
 icons/spray-can.json                          |   2 +-
 icons/sprout.json                             |   2 +-
 icons/square-dashed-bottom-code.json          |   2 +-
 icons/square-dashed-bottom.json               |   2 +-
 icons/square-stack.json                       |   2 +-
 icons/square-user-round.json                  |   2 +-
 icons/square.json                             |   2 +-
 icons/squirrel.json                           |   2 +-
 icons/stamp.json                              |   2 +-
 icons/star-half.json                          |   2 +-
 icons/star-off.json                           |   2 +-
 icons/star.json                               |   2 +-
 icons/step-back.json                          |   2 +-
 icons/step-forward.json                       |   2 +-
 icons/stethoscope.json                        |   2 +-
 icons/sticker.json                            |   2 +-
 icons/sticky-note.json                        |   2 +-
 icons/stop-circle.json                        |   2 +-
 icons/store.json                              |   2 +-
 icons/stretch-horizontal.json                 |   2 +-
 icons/stretch-vertical.json                   |   2 +-
 icons/strikethrough.json                      |   2 +-
 icons/subscript.json                          |   2 +-
 icons/subtitles.json                          |   2 +-
 icons/sun-dim.json                            |   2 +-
 icons/sun-medium.json                         |   2 +-
 icons/sun-snow.json                           |   2 +-
 icons/sun.json                                |   2 +-
 icons/sunrise.json                            |   2 +-
 icons/sunset.json                             |   2 +-
 icons/superscript.json                        |   2 +-
 icons/swiss-franc.json                        |   2 +-
 icons/switch-camera.json                      |   2 +-
 icons/sword.json                              |   2 +-
 icons/swords.json                             |   2 +-
 icons/syringe.json                            |   2 +-
 icons/table-2.json                            |   2 +-
 icons/table-properties.json                   |   2 +-
 icons/table.json                              |   2 +-
 icons/tablet-smartphone.json                  |   2 +-
 icons/tablet.json                             |   2 +-
 icons/tablets.json                            |   2 +-
 icons/tag.json                                |   2 +-
 icons/tally-1.json                            |   2 +-
 icons/tally-2.json                            |   2 +-
 icons/tally-3.json                            |   2 +-
 icons/tally-4.json                            |   2 +-
 icons/tally-5.json                            |   2 +-
 icons/tangent.json                            |   2 +-
 icons/target.json                             |   2 +-
 icons/tent-tree.json                          |   2 +-
 icons/tent.json                               |   2 +-
 icons/terminal-square.json                    |   2 +-
 icons/terminal.json                           |   2 +-
 icons/test-tube-2.json                        |   2 +-
 icons/test-tube.json                          |   2 +-
 icons/test-tubes.json                         |   2 +-
 icons/text-cursor-input.json                  |   2 +-
 icons/text-cursor.json                        |   2 +-
 icons/text-quote.json                         |   2 +-
 icons/text-search.json                        |   2 +-
 icons/text-select.json                        |   2 +-
 icons/text.json                               |   2 +-
 icons/theater.json                            |  34 +--
 icons/thermometer-snowflake.json              |   2 +-
 icons/thermometer-sun.json                    |   2 +-
 icons/thermometer.json                        |   2 +-
 icons/thumbs-down.json                        |   2 +-
 icons/thumbs-up.json                          |   2 +-
 icons/ticket-check.json                       |   2 +-
 icons/ticket-minus.json                       |   2 +-
 icons/ticket-plus.json                        |   2 +-
 icons/ticket-slash.json                       |   2 +-
 icons/ticket-x.json                           |   2 +-
 icons/ticket.json                             |   2 +-
 icons/timer-off.json                          |   2 +-
 icons/timer-reset.json                        |   2 +-
 icons/timer.json                              |   2 +-
 icons/toggle-left.json                        |   2 +-
 icons/toggle-right.json                       |   2 +-
 icons/tornado.json                            |   2 +-
 icons/torus.json                              |   2 +-
 icons/touchpad-off.json                       |   2 +-
 icons/touchpad.json                           |   2 +-
 icons/tower-control.json                      |   2 +-
 icons/toy-brick.json                          |   2 +-
 icons/tractor.json                            |   2 +-
 icons/traffic-cone.json                       |   2 +-
 icons/train-front-tunnel.json                 |   2 +-
 icons/train-front.json                        |   2 +-
 icons/train-track.json                        |   2 +-
 icons/tram-front.json                         |   2 +-
 icons/trash-2.json                            |   2 +-
 icons/trash.json                              |   2 +-
 icons/tree-deciduous.json                     |   2 +-
 icons/tree-pine.json                          |   2 +-
 icons/trees.json                              |   2 +-
 icons/trending-down.json                      |   2 +-
 icons/trending-up.json                        |   2 +-
 icons/triangle-right.json                     |   2 +-
 icons/triangle.json                           |   2 +-
 icons/trophy.json                             |   2 +-
 icons/turtle.json                             |   2 +-
 icons/tv.json                                 |   2 +-
 icons/type.json                               |   2 +-
 icons/umbrella.json                           |   2 +-
 icons/underline.json                          |   2 +-
 icons/undo-2.json                             |   2 +-
 icons/undo-dot.json                           |   2 +-
 icons/undo.json                               |   2 +-
 icons/unfold-horizontal.json                  |   2 +-
 icons/unfold-vertical.json                    |   2 +-
 icons/ungroup.json                            |   2 +-
 icons/unlink-2.json                           |   2 +-
 icons/unlink.json                             |   2 +-
 icons/unlock-keyhole.json                     |  18 +-
 icons/unlock.json                             |   2 +-
 icons/upload-cloud.json                       |   2 +-
 icons/upload.json                             |   2 +-
 icons/usb.json                                |   2 +-
 icons/user-check.json                         |   2 +-
 icons/user-cog.json                           |   2 +-
 icons/user-minus.json                         |   2 +-
 icons/user-plus.json                          |   2 +-
 icons/user-round-check.json                   |   2 +-
 icons/user-round-cog.json                     |   2 +-
 icons/user-round-minus.json                   |   2 +-
 icons/user-round-plus.json                    |   2 +-
 icons/user-round-search.json                  |   2 +-
 icons/user-round-x.json                       |   2 +-
 icons/user-round.json                         |   2 +-
 icons/user-search.json                        |   2 +-
 icons/user-x.json                             |   2 +-
 icons/user.json                               |   2 +-
 icons/users-round.json                        |   2 +-
 icons/users.json                              |   2 +-
 icons/utensils-crossed.json                   |   2 +-
 icons/utensils.json                           |   2 +-
 icons/variable.json                           |   2 +-
 icons/vault.json                              |   2 +-
 icons/vegan.json                              |   2 +-
 icons/venetian-mask.json                      |   2 +-
 icons/vibrate-off.json                        |   2 +-
 icons/vibrate.json                            |   2 +-
 icons/video-off.json                          |   2 +-
 icons/video.json                              |   2 +-
 icons/videotape.json                          |   2 +-
 icons/view.json                               |   2 +-
 icons/voicemail.json                          |   2 +-
 icons/volume-1.json                           |   2 +-
 icons/volume-2.json                           |   2 +-
 icons/volume-x.json                           |   2 +-
 icons/volume.json                             |   2 +-
 icons/vote.json                               |   2 +-
 icons/wallet-2.json                           |   2 +-
 icons/wallet-cards.json                       |   2 +-
 icons/wallet.json                             |   2 +-
 icons/wallpaper.json                          |   2 +-
 icons/wand-2.json                             |   2 +-
 icons/wand.json                               |   2 +-
 icons/warehouse.json                          |   2 +-
 icons/washing-machine.json                    |   2 +-
 icons/watch.json                              |   2 +-
 icons/waves.json                              |   2 +-
 icons/waypoints.json                          |   2 +-
 icons/webcam.json                             |   2 +-
 icons/webhook.json                            |   2 +-
 icons/weight.json                             |   2 +-
 icons/wheat-off.json                          |   2 +-
 icons/wheat.json                              |   2 +-
 icons/whole-word.json                         |   2 +-
 icons/wifi-off.json                           |   2 +-
 icons/wifi.json                               |   2 +-
 icons/wind.json                               |   2 +-
 icons/wine-off.json                           |   2 +-
 icons/wine.json                               |   2 +-
 icons/workflow.json                           |   2 +-
 icons/wrap-text.json                          |   2 +-
 icons/wrench.json                             |   2 +-
 icons/x-circle.json                           |   2 +-
 icons/x-octagon.json                          |   2 +-
 icons/x-square.json                           |   2 +-
 icons/x.json                                  |   2 +-
 icons/zoom-in.json                            |   2 +-
 icons/zoom-out.json                           |   2 +-
 package.json                                  |   5 +-
 packages/lucide-angular/angular.json          |   5 +-
 packages/lucide-angular/karma.conf.js         |   2 +-
 .../lucide-angular/scripts/exportTemplate.mjs |   2 +-
 .../src/lib/lucide-angular.component.spec.ts  |   2 +-
 .../src/lib/lucide-angular.component.ts       |  10 +-
 packages/lucide-angular/src/test.ts           |  21 +-
 packages/lucide-angular/tsconfig.json         |  13 +-
 packages/lucide-angular/tsconfig.lib.json     |   5 +-
 packages/lucide-angular/tsconfig.spec.json    |  13 +-
 packages/lucide-figma/src/api/fetchIcons.ts   | 124 ++++++-----
 .../src/components/EditBar/EditBar.tsx        |   6 +-
 .../src/components/IconButton/IconButton.tsx  |  31 +--
 .../src/components/IconButton/index.ts        |   2 +-
 .../lucide-figma/src/components/Menu/Menu.tsx |  27 ++-
 .../lucide-figma/src/components/Menu/index.ts |   2 +-
 .../components/SearchInput/SearchInput.tsx    |  20 +-
 .../src/components/SearchInput/index.ts       |   2 +-
 .../src/components/Skeleton/Skeleton.scss     |   8 +-
 .../src/components/Skeleton/Skeleton.tsx      |  12 +-
 .../src/components/icons/SearchIcon.tsx       |   7 +-
 .../src/helpers/createIconComponent.ts        |  15 +-
 .../lucide-figma/src/helpers/filterIcons.ts   |  16 +-
 .../lucide-figma/src/helpers/iconNodeToSvg.ts |  18 +-
 packages/lucide-figma/src/helpers/naming.ts   |   1 -
 packages/lucide-figma/src/hooks/useSearch.tsx |  15 +-
 .../lucide-figma/src/interface/interface.html |   5 +-
 .../lucide-figma/src/interface/interface.scss |  14 +-
 .../lucide-figma/src/interface/interface.tsx  |  57 ++---
 packages/lucide-figma/src/main.ts             | 144 ++++++------
 packages/lucide-figma/src/theme.ts            |   2 +-
 packages/lucide-figma/src/views/Icons.tsx     |  87 ++++----
 packages/lucide-figma/src/views/Info.tsx      |  62 +++---
 packages/lucide-figma/src/views/index.ts      |   4 +-
 packages/lucide-figma/src/worker/worker.html  |   5 +-
 packages/lucide-figma/src/worker/worker.ts    |  89 +++++---
 packages/lucide-figma/tsconfig.json           |   7 +-
 packages/lucide-figma/vite.config.ts          |  44 ++--
 packages/lucide-preact/rollup.config.mjs      |  29 +--
 .../lucide-preact/src/createLucideIcon.ts     |  37 ++--
 .../lucide-preact/src/defaultAttributes.ts    |   2 +-
 .../tests/lucide-preact.spec.tsx              |  24 +-
 packages/lucide-preact/tests/setupVitest.js   |   6 +-
 packages/lucide-preact/tsconfig.json          |   2 +-
 .../__mocks__/react-native-svg/index.ts       |   6 +-
 .../lucide-react-native.d.ts                  |   9 +-
 .../lucide-react-native/rollup.config.mjs     |  27 ++-
 .../src/createLucideIcon.ts                   |  35 ++-
 .../tests/lucide-react-native.spec.tsx        |  68 +++---
 .../lucide-react-native/tests/setupVitest.js  |   4 +-
 packages/lucide-react-native/tsconfig.json    |  11 +-
 packages/lucide-react/rollup.config.mjs       | 100 +++++----
 packages/lucide-react/src/createLucideIcon.ts |  24 +-
 .../lucide-react/tests/lucide-react.spec.tsx  |  38 ++--
 packages/lucide-react/tests/setupVitest.js    |   4 +-
 packages/lucide-react/tsconfig.json           |   2 +-
 .../lucide-solid/scripts/replaceVersion.mjs   |  17 +-
 packages/lucide-solid/src/Icon.tsx            |  33 +--
 .../lucide-solid/src/defaultAttributes.ts     |   6 +-
 packages/lucide-solid/src/types.ts            |  16 +-
 .../lucide-solid/tests/lucide-solid.spec.tsx  |  55 ++---
 packages/lucide-solid/tests/setupVitest.js    |   4 +-
 packages/lucide-solid/tsconfig.json           |   4 +-
 packages/lucide-static/rollup.config.mjs      |  10 +-
 packages/lucide-static/scripts/buildLib.mjs   |   5 +-
 packages/lucide-static/src/lucide-static.ts   |   2 +-
 packages/lucide-static/tsconfig.json          |   2 +-
 .../scripts/appendBlockComments.mjs           |   2 +-
 .../lucide-svelte/tests/lucide-svelte.spec.ts |  34 +--
 packages/lucide-svelte/tests/setupVitest.ts   |   4 +-
 packages/lucide-svelte/tsconfig.json          |   8 +-
 packages/lucide-svelte/vitest.config.ts       |  10 +-
 packages/lucide-vue-next/rollup.config.mjs    |  39 ++--
 .../lucide-vue-next/src/createLucideIcon.ts   |  57 ++---
 .../tests/lucide-vue-next.spec.ts             | 105 +++++----
 packages/lucide-vue-next/tsconfig.json        |   2 +-
 packages/lucide-vue/rollup.config.mjs         |   2 +-
 packages/lucide-vue/src/createLucideIcon.ts   |  25 +--
 packages/lucide-vue/src/defaultAttributes.ts  |   2 +-
 packages/lucide-vue/tests/lucide-vue.spec.ts  | 107 +++++----
 packages/lucide-vue/tsconfig.json             |   2 +-
 packages/lucide-vue/vitest.config.ts          |   4 +-
 packages/lucide/rollup.config.mjs             |  30 +--
 packages/lucide/src/attributeTypes.ts         |  35 ++-
 packages/lucide/src/createElement.ts          |   5 +-
 packages/lucide/src/defaultAttributes.ts      |   4 +-
 packages/lucide/src/iconsAndAliases.ts        |   4 +-
 packages/lucide/src/lucide.ts                 |   8 +-
 packages/lucide/src/replaceElement.ts         |  20 +-
 packages/lucide/src/types.ts                  |   5 +-
 packages/lucide/tests/lucide.spec.js          |  20 +-
 packages/lucide/tests/replaceElement.spec.js  |  16 +-
 packages/lucide/tests/setupVitest.js          |   7 +-
 packages/lucide/tsconfig.json                 |   2 +-
 pnpm-lock.yaml                                |   8 +-
 prettier.config.mjs                           |   1 +
 scripts/addMissingIconJsonFiles.mjs           |  18 +-
 scripts/checkIconsAndCategories.mjs           |  14 +-
 scripts/generate/generateIcons.mjs            |   4 +-
 scripts/generateChangedIconsCommentMarkup.mjs |   4 +-
 scripts/generateSuperSVG.mjs                  |   5 +-
 scripts/helpers.mjs                           |  13 +-
 scripts/migrateCategoriesToIcons.mjs          |  11 +-
 scripts/migrateIconsToCategories.mjs          |  15 +-
 scripts/migrateTagsToIcons.mjs                |  20 +-
 scripts/optimizeStagedSvgs.mjs                |   2 +-
 scripts/render/processSvg.mjs                 |  12 +-
 scripts/writeIconRelatedIcons.mjs             |  39 ++--
 tools/build-icons/package.json                |   2 +-
 tools/build-icons/utils/getIconMetaData.mjs   |  10 +-
 tsconfig.json                                 |   2 +-
 1520 files changed, 3651 insertions(+), 3211 deletions(-)

diff --git a/.eslintignore b/.eslintignore
index 925b234bd29..ffae92223d7 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -6,6 +6,5 @@ tests
 node_modules
 .eslintrc.js
 docs/images
-docs/guide/basics/examples
-docs/guide/advanced/examples
+docs/**/examples/
 packages/lucide-react/dynamicIconImports.js
diff --git a/.eslintrc.js b/.eslintrc.js
index ff086ba210f..6378b679d5f 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -42,12 +42,15 @@ module.exports = {
         '@html-eslint/no-duplicate-attrs': 'error',
         '@html-eslint/no-inline-styles': 'error',
         '@html-eslint/require-attrs': [
-           'error',
-             ...Object.entries(DEFAULT_ATTRS)
-               .map(([attr, value]) => ({ tag: 'svg', attr, value: String(value) }))
+          'error',
+          ...Object.entries(DEFAULT_ATTRS).map(([attr, value]) => ({
+            tag: 'svg',
+            attr,
+            value: String(value),
+          })),
         ],
         '@html-eslint/indent': ['error', 2],
-        "@html-eslint/no-multiple-empty-lines": ["error", { "max": 0 }],
+        '@html-eslint/no-multiple-empty-lines': ['error', { max: 0 }],
         '@html-eslint/no-extra-spacing-attrs': [
           'error',
           {
@@ -64,7 +67,7 @@ module.exports = {
         '@html-eslint/element-newline': 'error',
         '@html-eslint/no-trailing-spaces': 'error',
         '@html-eslint/quotes': 'error',
-      }
+      },
     },
   ],
 };
diff --git a/.github/actions/build-and-test.yml b/.github/actions/build-and-test.yml
index 2a0b9fa8d8b..5b5a4675f93 100644
--- a/.github/actions/build-and-test.yml
+++ b/.github/actions/build-and-test.yml
@@ -1,5 +1,5 @@
-name: "Build and Test"
-description: "Builds and test a package"
+name: 'Build and Test'
+description: 'Builds and test a package'
 
 inputs:
   name:
@@ -7,7 +7,7 @@ inputs:
     required: true
 
 runs:
-  using: "composite"
+  using: 'composite'
   steps:
     - uses: actions/checkout@v4
     - uses: actions/setup-node@v4
diff --git a/.github/actions/check-icons.yml b/.github/actions/check-icons.yml
index ad9af1f9efc..0850a17ac92 100644
--- a/.github/actions/check-icons.yml
+++ b/.github/actions/check-icons.yml
@@ -1,5 +1,5 @@
-name: "Check icons"
-description: "Cross-checks icon and category references in JSON descriptors"
+name: 'Check icons'
+description: 'Cross-checks icon and category references in JSON descriptors'
 
 inputs:
   name:
@@ -7,7 +7,7 @@ inputs:
     required: true
 
 runs:
-  using: "composite"
+  using: 'composite'
   steps:
     - uses: actions/checkout@v4
     - uses: actions/setup-node@v4
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 696122eff8e..2023caf3d1f 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -1,92 +1,92 @@
 # For changed dependencies
 📦 dependencies:
-- changed-files:
-  - any-glob-to-any-file:
-    - pnpm-lock.yaml
+  - changed-files:
+      - any-glob-to-any-file:
+          - pnpm-lock.yaml
 
 # For changes in documentation
 📖 documentation:
-- changed-files:
-  - any-glob-to-any-file:
-    - docs/*.md
-    - docs/**/*.md
+  - changed-files:
+      - any-glob-to-any-file:
+          - docs/*.md
+          - docs/**/*.md
 
 # For changes in the site, but not markdown files
 🌍 site:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'docs/**'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'docs/**'
 
 # For changes in the metadata
 🫧 metadata:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'icons/*.json'
-    - categories/*
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'icons/*.json'
+          - categories/*
 
 # For changes or added icons
 🎨 icon:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'icons/*.svg'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'icons/*.svg'
 
 # For changes in the lucide package
 🧳 lucide package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide/*'
 
 # For changes in the lucide React package
 ⚛️ react package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-react/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-react/*'
 
 # For changes in the lucide React Native package
 ⚛️ react native package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-react-native/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-react-native/*'
 
 # For changes in the lucide vue packages
 💎 vue package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-vue/*'
-    - 'packages/lucide-vue-next/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-vue/*'
+          - 'packages/lucide-vue-next/*'
 
 # For changes in the lucide angular package
 🅰️ angular package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-angular/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-angular/*'
 
 # For changes in the lucide preact package
 ⚛️ preact package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-preact/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-preact/*'
 
 # For changes in the lucide svelte package
 🧣 svelte package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-svelte/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-svelte/*'
 
 # For changes in the lucide solid package
 🪝 solid package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-solid/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-solid/*'
 
 # For changes in the lucide static package
 🪨 static package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-static/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-static/*'
 
 # For changes in the lucide flutter package
 🏹 flutter package:
-- changed-files:
-  - any-glob-to-any-file:
-    - 'packages/lucide-flutter/*'
+  - changed-files:
+      - any-glob-to-any-file:
+          - 'packages/lucide-flutter/*'
diff --git a/.github/workflows/close-stale-prs.yml b/.github/workflows/close-stale-prs.yml
index b074a605540..1a805939932 100644
--- a/.github/workflows/close-stale-prs.yml
+++ b/.github/workflows/close-stale-prs.yml
@@ -1,7 +1,7 @@
 name: Close stale issues and PR
 on:
   schedule:
-    - cron: "45 1 * * *"
+    - cron: '45 1 * * *'
 
 jobs:
   stale:
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
index 2a340279efb..bf474c4787d 100644
--- a/.github/workflows/labeler.yml
+++ b/.github/workflows/labeler.yml
@@ -1,6 +1,6 @@
-name: "Pull Request Labeler"
+name: 'Pull Request Labeler'
 on:
-- pull_request_target
+  - pull_request_target
 
 jobs:
   triage:
@@ -9,4 +9,4 @@ jobs:
       pull-requests: write
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/labeler@v5
+      - uses: actions/labeler@v5
diff --git a/.github/workflows/lucide-font.yml b/.github/workflows/lucide-font.yml
index c12be90b6f4..5f183f81333 100644
--- a/.github/workflows/lucide-font.yml
+++ b/.github/workflows/lucide-font.yml
@@ -29,7 +29,7 @@ jobs:
       - name: Create font in ./lucide-font
         run: pnpm build:font
 
-      - name: "Upload to Artifacts"
+      - name: 'Upload to Artifacts'
         uses: actions/upload-artifact@v3
         with:
           name: lucide-font
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f740193058b..bfefa436e95 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -41,17 +41,18 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        package: [
-          'lucide',
-          'lucide-react',
-          'lucide-react-native',
-          'lucide-vue',
-          'lucide-vue-next',
-          'lucide-angular',
-          'lucide-preact',
-          'lucide-solid',
-          'lucide-svelte',
-        ]
+        package:
+          [
+            'lucide',
+            'lucide-react',
+            'lucide-react-native',
+            'lucide-vue',
+            'lucide-vue-next',
+            'lucide-angular',
+            'lucide-preact',
+            'lucide-solid',
+            'lucide-svelte',
+          ]
     steps:
       - uses: actions/checkout@v4
       - uses: pnpm/action-setup@v2
@@ -136,7 +137,7 @@ jobs:
       - name: Create font in ./lucide-font
         run: pnpm build:font
 
-      - name: "Upload to Artifacts"
+      - name: 'Upload to Artifacts'
         uses: actions/upload-artifact@v3
         with:
           name: lucide-font
@@ -145,10 +146,7 @@ jobs:
   post-release:
     if: github.repository == 'lucide-icons/lucide'
     runs-on: ubuntu-latest
-    needs: [
-      pre-release,
-      lucide-font,
-    ]
+    needs: [pre-release, lucide-font]
 
     steps:
       - uses: actions/checkout@v4
diff --git a/.prettierignore b/.prettierignore
index 943334f5ec2..4a40c2a72e2 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,5 +1,8 @@
 pnpm-lock.yaml
 
+# docs examples
+docs/**/examples/
+
 # lucide-angular
 packages/lucide-angular/.angular/cache
 
diff --git a/.vscode/launch.json b/.vscode/launch.json
index b23d58751fe..177bc7dfad1 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -12,4 +12,4 @@
       "webRoot": "${workspaceFolder}"
     }
   ]
-}
\ No newline at end of file
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 59e014f6028..f179cbc079a 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,13 +1,6 @@
 {
-  "cSpell.words": [
-    "devs",
-    "preact",
-    "Preact"
-  ],
+  "cSpell.words": ["devs", "preact", "Preact"],
   "eslint.enable": true,
-  "eslint.validate": [
-    "javascript",
-    "svg"
-  ],
+  "eslint.validate": ["javascript", "svg"],
   "svg.preview.background": "transparent"
 }
diff --git a/categories/accessibility.json b/categories/accessibility.json
index 95da8cf053c..a668d3ee350 100644
--- a/categories/accessibility.json
+++ b/categories/accessibility.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Accessibility",
   "icon": "accessibility"
-}
\ No newline at end of file
+}
diff --git a/categories/account.json b/categories/account.json
index 284b764cbaa..95a80ad403e 100644
--- a/categories/account.json
+++ b/categories/account.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Accounts & access",
   "icon": "user"
-}
\ No newline at end of file
+}
diff --git a/categories/animals.json b/categories/animals.json
index 251c93a8135..85fafda5f95 100644
--- a/categories/animals.json
+++ b/categories/animals.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Animals",
   "icon": "dog"
-}
\ No newline at end of file
+}
diff --git a/categories/arrows.json b/categories/arrows.json
index 5b84413b681..3258378f94f 100644
--- a/categories/arrows.json
+++ b/categories/arrows.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Arrows",
   "icon": "arrow-left-right"
-}
\ No newline at end of file
+}
diff --git a/categories/brands.json b/categories/brands.json
index 5ff30efca69..c48c4b3b0cf 100644
--- a/categories/brands.json
+++ b/categories/brands.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Brands",
   "icon": "facebook"
-}
\ No newline at end of file
+}
diff --git a/categories/buildings.json b/categories/buildings.json
index 71df7f6eac5..13f24b08f7c 100644
--- a/categories/buildings.json
+++ b/categories/buildings.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Buildings",
   "icon": "building"
-}
\ No newline at end of file
+}
diff --git a/categories/charts.json b/categories/charts.json
index 6f94a14bd73..22beb849e9c 100644
--- a/categories/charts.json
+++ b/categories/charts.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Charts",
   "icon": "pie-chart"
-}
\ No newline at end of file
+}
diff --git a/categories/communication.json b/categories/communication.json
index 7fd8bb175f3..3b9a899d749 100644
--- a/categories/communication.json
+++ b/categories/communication.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Communication",
   "icon": "message-circle"
-}
\ No newline at end of file
+}
diff --git a/categories/connectivity.json b/categories/connectivity.json
index 17b4c7bee39..b566a84ec95 100644
--- a/categories/connectivity.json
+++ b/categories/connectivity.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Connectivity",
   "icon": "wifi"
-}
\ No newline at end of file
+}
diff --git a/categories/currency.json b/categories/currency.json
index 31e2846fbe7..0879774d1c7 100644
--- a/categories/currency.json
+++ b/categories/currency.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Currency",
   "icon": "dollar-sign"
-}
\ No newline at end of file
+}
diff --git a/categories/cursors.json b/categories/cursors.json
index 16dddb96a3e..9522faa1647 100644
--- a/categories/cursors.json
+++ b/categories/cursors.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Cursors",
   "icon": "mouse-pointer-2"
-}
\ No newline at end of file
+}
diff --git a/categories/design.json b/categories/design.json
index 312c2048d6a..e32592560a8 100644
--- a/categories/design.json
+++ b/categories/design.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Design",
   "icon": "palette"
-}
\ No newline at end of file
+}
diff --git a/categories/devices.json b/categories/devices.json
index cb2639fc309..3bb54f18079 100644
--- a/categories/devices.json
+++ b/categories/devices.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Devices",
   "icon": "smartphone"
-}
\ No newline at end of file
+}
diff --git a/categories/emoji.json b/categories/emoji.json
index 14afb25abbd..78442db1da3 100644
--- a/categories/emoji.json
+++ b/categories/emoji.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Emoji",
   "icon": "smile"
-}
\ No newline at end of file
+}
diff --git a/categories/files.json b/categories/files.json
index 4d1fa3ad948..073a09beb31 100644
--- a/categories/files.json
+++ b/categories/files.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "File icons",
   "icon": "panels-top-left"
-}
\ No newline at end of file
+}
diff --git a/categories/food-beverage.json b/categories/food-beverage.json
index 2b67eaeeabc..7456558b62b 100644
--- a/categories/food-beverage.json
+++ b/categories/food-beverage.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Food & beverage",
   "icon": "coffee"
-}
\ No newline at end of file
+}
diff --git a/categories/furniture.json b/categories/furniture.json
index 27a03034aaa..56cf3fa3008 100644
--- a/categories/furniture.json
+++ b/categories/furniture.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Furniture",
   "icon": "rocking-chair"
-}
\ No newline at end of file
+}
diff --git a/categories/gaming.json b/categories/gaming.json
index 9bf0a6daa94..2c90f4c9d42 100644
--- a/categories/gaming.json
+++ b/categories/gaming.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Gaming",
   "icon": "gamepad-2"
-}
\ No newline at end of file
+}
diff --git a/categories/home.json b/categories/home.json
index e11aae41211..9a58d217191 100644
--- a/categories/home.json
+++ b/categories/home.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Home",
   "icon": "home"
-}
\ No newline at end of file
+}
diff --git a/categories/layout.json b/categories/layout.json
index 034ea4be91b..22a163f95e5 100644
--- a/categories/layout.json
+++ b/categories/layout.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Layout",
   "icon": "panels-top-left"
-}
\ No newline at end of file
+}
diff --git a/categories/mail.json b/categories/mail.json
index 4ebda7c34be..3dd1d302677 100644
--- a/categories/mail.json
+++ b/categories/mail.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Mail",
   "icon": "mail"
-}
\ No newline at end of file
+}
diff --git a/categories/maps.json b/categories/maps.json
index 4832c5f9716..1a948f11964 100644
--- a/categories/maps.json
+++ b/categories/maps.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Maps",
   "icon": "map"
-}
\ No newline at end of file
+}
diff --git a/categories/maths.json b/categories/maths.json
index f32aed6dc21..f80691908f8 100644
--- a/categories/maths.json
+++ b/categories/maths.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Maths",
   "icon": "divide"
-}
\ No newline at end of file
+}
diff --git a/categories/medical.json b/categories/medical.json
index 05ee123246f..e745df6978c 100644
--- a/categories/medical.json
+++ b/categories/medical.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Medical",
   "icon": "heart"
-}
\ No newline at end of file
+}
diff --git a/categories/money.json b/categories/money.json
index 2d9eadc558e..fd706dee54b 100644
--- a/categories/money.json
+++ b/categories/money.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Money",
   "icon": "piggy-bank"
-}
\ No newline at end of file
+}
diff --git a/categories/multimedia.json b/categories/multimedia.json
index 2c523a7126d..c49f823e38d 100644
--- a/categories/multimedia.json
+++ b/categories/multimedia.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Multimedia",
   "icon": "play-circle"
-}
\ No newline at end of file
+}
diff --git a/categories/nature.json b/categories/nature.json
index 836f45f0818..aa41fd8dde2 100644
--- a/categories/nature.json
+++ b/categories/nature.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Nature",
   "icon": "sprout"
-}
\ No newline at end of file
+}
diff --git a/categories/navigation.json b/categories/navigation.json
index 78f0cc7f29f..0cb9e209dce 100644
--- a/categories/navigation.json
+++ b/categories/navigation.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Navigation",
   "icon": "compass"
-}
\ No newline at end of file
+}
diff --git a/categories/notifications.json b/categories/notifications.json
index be39626c772..5986b507e42 100644
--- a/categories/notifications.json
+++ b/categories/notifications.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Notifications",
   "icon": "alert-triangle"
-}
\ No newline at end of file
+}
diff --git a/categories/people.json b/categories/people.json
index 15dc4c8ae07..be028e4b5b8 100644
--- a/categories/people.json
+++ b/categories/people.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "People",
   "icon": "person-standing"
-}
\ No newline at end of file
+}
diff --git a/categories/photography.json b/categories/photography.json
index 4d3ffe3b378..a4ad5bff190 100644
--- a/categories/photography.json
+++ b/categories/photography.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Photography",
   "icon": "camera"
-}
\ No newline at end of file
+}
diff --git a/categories/science.json b/categories/science.json
index 889b7c20697..720983fb3e4 100644
--- a/categories/science.json
+++ b/categories/science.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Science",
   "icon": "flask-conical"
-}
\ No newline at end of file
+}
diff --git a/categories/seasons.json b/categories/seasons.json
index 3a2a7a1e0c6..0c4fff3cccf 100644
--- a/categories/seasons.json
+++ b/categories/seasons.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Seasons",
   "icon": "leaf"
-}
\ No newline at end of file
+}
diff --git a/categories/security.json b/categories/security.json
index 00371462b65..8372554feca 100644
--- a/categories/security.json
+++ b/categories/security.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Security",
   "icon": "shield"
-}
\ No newline at end of file
+}
diff --git a/categories/shapes.json b/categories/shapes.json
index ed4434f8eb9..c968b222bec 100644
--- a/categories/shapes.json
+++ b/categories/shapes.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Shapes",
   "icon": "triangle"
-}
\ No newline at end of file
+}
diff --git a/categories/shopping.json b/categories/shopping.json
index b224f2312ce..5e6b05ff5fe 100644
--- a/categories/shopping.json
+++ b/categories/shopping.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Shopping",
   "icon": "shopping-bag"
-}
\ No newline at end of file
+}
diff --git a/categories/social.json b/categories/social.json
index 4c8fee7f88a..ee87f85746b 100644
--- a/categories/social.json
+++ b/categories/social.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Social",
   "icon": "thumbs-up"
-}
\ No newline at end of file
+}
diff --git a/categories/sports.json b/categories/sports.json
index 7c3cb01350b..25440ad6f2b 100644
--- a/categories/sports.json
+++ b/categories/sports.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Sports",
   "icon": "type"
-}
\ No newline at end of file
+}
diff --git a/categories/sustainability.json b/categories/sustainability.json
index 1c22a5e85b9..a0730f6facb 100644
--- a/categories/sustainability.json
+++ b/categories/sustainability.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Sustainability",
   "icon": "recycle"
-}
\ No newline at end of file
+}
diff --git a/categories/time.json b/categories/time.json
index 75f119816d5..2b85210deec 100644
--- a/categories/time.json
+++ b/categories/time.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Time & calendar",
   "icon": "calendar"
-}
\ No newline at end of file
+}
diff --git a/categories/tools.json b/categories/tools.json
index 456213ad573..48cf0a96a77 100644
--- a/categories/tools.json
+++ b/categories/tools.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Tools",
   "icon": "hammer"
-}
\ No newline at end of file
+}
diff --git a/categories/transportation.json b/categories/transportation.json
index 0515475d324..984da071c55 100644
--- a/categories/transportation.json
+++ b/categories/transportation.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Transportation",
   "icon": "train-front"
-}
\ No newline at end of file
+}
diff --git a/categories/travel.json b/categories/travel.json
index a85cd27c490..3d78c06e333 100644
--- a/categories/travel.json
+++ b/categories/travel.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Travel",
   "icon": "backpack"
-}
\ No newline at end of file
+}
diff --git a/categories/weather.json b/categories/weather.json
index faa95623923..a08cc5d661b 100644
--- a/categories/weather.json
+++ b/categories/weather.json
@@ -2,4 +2,4 @@
   "$schema": "../category.schema.json",
   "title": "Weather",
   "icon": "cloud-sun"
-}
\ No newline at end of file
+}
diff --git a/docs/.vitepress/api/categories/index.get.ts b/docs/.vitepress/api/categories/index.get.ts
index a1fb097caec..0ac20a3e51d 100644
--- a/docs/.vitepress/api/categories/index.get.ts
+++ b/docs/.vitepress/api/categories/index.get.ts
@@ -1,11 +1,11 @@
-import { eventHandler, setResponseHeader } from 'h3'
-import iconMetaData from '../../data/iconMetaData'
+import { eventHandler, setResponseHeader } from 'h3';
+import iconMetaData from '../../data/iconMetaData';
 
 export default eventHandler((event) => {
-  setResponseHeader(event, 'Cache-Control', 'public, max-age=86400')
-  setResponseHeader(event, 'Access-Control-Allow-Origin', '*')
+  setResponseHeader(event, 'Cache-Control', 'public, max-age=86400');
+  setResponseHeader(event, 'Access-Control-Allow-Origin', '*');
 
   return Object.fromEntries(
-    Object.entries(iconMetaData).map(([name, { categories }]) => [ name, categories ])
-  )
-})
+    Object.entries(iconMetaData).map(([name, { categories }]) => [name, categories]),
+  );
+});
diff --git a/docs/.vitepress/api/gh-icon/[...data].get.ts b/docs/.vitepress/api/gh-icon/[...data].get.ts
index eacfb498f84..204b132b6c1 100644
--- a/docs/.vitepress/api/gh-icon/[...data].get.ts
+++ b/docs/.vitepress/api/gh-icon/[...data].get.ts
@@ -37,13 +37,13 @@ export default eventHandler((event) => {
         backdropString,
         src,
         color: name in iconNodes ? 'red' : '#777',
-      })
+      }),
     );
   }
 
   const svg = Buffer.from(
     // We can't use jsx here, is not supported here by nitro.
-    renderToString(createElement(SvgPreview, { src, showGrid: true }, children))
+    renderToString(createElement(SvgPreview, { src, showGrid: true }, children)),
   ).toString('utf8');
 
   defaultContentType(event, 'image/svg+xml');
diff --git a/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts b/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts
index a09fcb2af0e..2e5d4ebe40a 100644
--- a/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts
+++ b/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts
@@ -28,7 +28,7 @@ export default eventHandler(async (event) => {
   stroke-width="2"
   stroke-linecap="round"
   stroke-linejoin="round"
-`
+`,
     );
 
   const resvg = new Resvg(svg, { background: '#000' });
diff --git a/docs/.vitepress/api/gh-icon/stroke-width/[...data].get.ts b/docs/.vitepress/api/gh-icon/stroke-width/[...data].get.ts
index 1354b1ae47a..db029f643f6 100644
--- a/docs/.vitepress/api/gh-icon/stroke-width/[...data].get.ts
+++ b/docs/.vitepress/api/gh-icon/stroke-width/[...data].get.ts
@@ -1,12 +1,12 @@
-import { eventHandler, setResponseHeader, defaultContentType } from 'h3'
-import { renderToString } from 'react-dom/server'
-import { createElement } from 'react'
+import { eventHandler, setResponseHeader, defaultContentType } from 'h3';
+import { renderToString } from 'react-dom/server';
+import { createElement } from 'react';
 import SvgPreview from '../../../lib/SvgPreview/index.tsx';
-import createLucideIcon, { IconNode } from 'lucide-react/src/createLucideIcon'
+import createLucideIcon, { IconNode } from 'lucide-react/src/createLucideIcon';
 import { parseSync } from 'svgson';
 
 export default eventHandler((event) => {
-  const { params } = event.context
+  const { params } = event.context;
 
   const [strokeWidth, svgData] = params.data.split('/');
   const data = svgData.slice(0, -4);
@@ -16,8 +16,8 @@ export default eventHandler((event) => {
   const Icon = createLucideIcon(
     'icon',
     parseSync(src.includes('<svg') ? src : `<svg>${src}</svg>`).children.map(
-      ({ name, attributes }) => [name, attributes]
-    ) as IconNode
+      ({ name, attributes }) => [name, attributes],
+    ) as IconNode,
   );
 
   const svg = Buffer.from(
@@ -33,12 +33,12 @@ export default eventHandler((event) => {
         @media screen and (prefers-color-scheme: dark) {
           svg { stroke: #fff; fill: transparent !important; }
         }
-      </style>`
-      )
+      </style>`,
+      ),
   ).toString('utf8');
 
-  defaultContentType(event, 'image/svg+xml')
-  setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000')
+  defaultContentType(event, 'image/svg+xml');
+  setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000');
 
-  return svg
-})
+  return svg;
+});
diff --git a/docs/.vitepress/api/icon-nodes/index.get.ts b/docs/.vitepress/api/icon-nodes/index.get.ts
index a8623661cad..8ab634c78b5 100644
--- a/docs/.vitepress/api/icon-nodes/index.get.ts
+++ b/docs/.vitepress/api/icon-nodes/index.get.ts
@@ -1,30 +1,30 @@
-import { eventHandler, getQuery, setResponseHeader } from 'h3'
-import iconNodes from '../../data/iconNodes'
-import { IconNodeWithKeys } from '../../theme/types'
+import { eventHandler, getQuery, setResponseHeader } from 'h3';
+import iconNodes from '../../data/iconNodes';
+import { IconNodeWithKeys } from '../../theme/types';
 
 export default eventHandler((event) => {
-  const query = getQuery(event)
+  const query = getQuery(event);
 
-  const withUniqueKeys = query.withUniqueKeys === 'true'
+  const withUniqueKeys = query.withUniqueKeys === 'true';
 
-  setResponseHeader(event, 'Cache-Control', 'public, max-age=86400')
-  setResponseHeader(event, 'Access-Control-Allow-Origin', '*')
+  setResponseHeader(event, 'Cache-Control', 'public, max-age=86400');
+  setResponseHeader(event, 'Access-Control-Allow-Origin', '*');
 
   if (withUniqueKeys) {
-    return iconNodes
+    return iconNodes;
   }
 
   return Object.entries(iconNodes).reduce((acc, [name, iconNode]) => {
     if (withUniqueKeys) {
-      return [name, iconNode]
+      return [name, iconNode];
     }
 
-    const newIconNode = (iconNode as IconNodeWithKeys).map(([name, { key, ...attrs}]) => {
-      return [name, attrs]
-    })
+    const newIconNode = (iconNode as IconNodeWithKeys).map(([name, { key, ...attrs }]) => {
+      return [name, attrs];
+    });
 
-    acc[name] = newIconNode
+    acc[name] = newIconNode;
 
-    return acc
-  }, {})
-})
+    return acc;
+  }, {});
+});
diff --git a/docs/.vitepress/api/icons/[iconName].get.ts b/docs/.vitepress/api/icons/[iconName].get.ts
index 50fa8107af7..e2d2091bb25 100644
--- a/docs/.vitepress/api/icons/[iconName].get.ts
+++ b/docs/.vitepress/api/icons/[iconName].get.ts
@@ -1,29 +1,29 @@
-import { eventHandler, getQuery, setResponseHeader, createError } from 'h3'
-import iconNodes from '../../data/iconNodes'
-import createLucideIcon from 'lucide-react/src/createLucideIcon'
-import { renderToString } from 'react-dom/server'
-import { createElement } from 'react'
+import { eventHandler, getQuery, setResponseHeader, createError } from 'h3';
+import iconNodes from '../../data/iconNodes';
+import createLucideIcon from 'lucide-react/src/createLucideIcon';
+import { renderToString } from 'react-dom/server';
+import { createElement } from 'react';
 
 export default eventHandler((event) => {
-  const { params } = event.context
+  const { params } = event.context;
 
-  const iconNode = iconNodes[params.iconName]
+  const iconNode = iconNodes[params.iconName];
 
   if (iconNode == null) {
     const error = createError({
       statusCode: 404,
       message: `Icon "${params.iconName}" not found`,
-    })
+    });
 
-    return sendError(event, error)
+    return sendError(event, error);
   }
 
-  const width = getQuery(event).width || undefined
-  const height = getQuery(event).height || undefined
-  const color = getQuery(event).color || undefined
-  const strokeWidth = getQuery(event).strokeWidth || undefined
+  const width = getQuery(event).width || undefined;
+  const height = getQuery(event).height || undefined;
+  const color = getQuery(event).color || undefined;
+  const strokeWidth = getQuery(event).strokeWidth || undefined;
 
-  const LucideIcon = createLucideIcon(params.iconName, iconNode)
+  const LucideIcon = createLucideIcon(params.iconName, iconNode);
 
   const svg = Buffer.from(
     renderToString(
@@ -32,14 +32,13 @@ export default eventHandler((event) => {
         height,
         color: color ? `#${color}` : undefined,
         strokeWidth,
-      }
-    ))
+      }),
+    ),
   ).toString('utf8');
 
-  defaultContentType(event, 'image/svg+xml')
-  setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000')
-  setResponseHeader(event, 'Access-Control-Allow-Origin', '*')
+  defaultContentType(event, 'image/svg+xml');
+  setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000');
+  setResponseHeader(event, 'Access-Control-Allow-Origin', '*');
 
-  return svg
-
-})
+  return svg;
+});
diff --git a/docs/.vitepress/api/tags/index.get.ts b/docs/.vitepress/api/tags/index.get.ts
index ab3c94ca5f2..b2314c4f45f 100644
--- a/docs/.vitepress/api/tags/index.get.ts
+++ b/docs/.vitepress/api/tags/index.get.ts
@@ -1,11 +1,9 @@
-import { eventHandler, setResponseHeader } from 'h3'
-import iconMetaData from '../../data/iconMetaData'
+import { eventHandler, setResponseHeader } from 'h3';
+import iconMetaData from '../../data/iconMetaData';
 
 export default eventHandler((event) => {
-  setResponseHeader(event, 'Cache-Control', 'public, max-age=86400')
-  setResponseHeader(event, 'Access-Control-Allow-Origin', '*')
+  setResponseHeader(event, 'Cache-Control', 'public, max-age=86400');
+  setResponseHeader(event, 'Access-Control-Allow-Origin', '*');
 
-  return Object.fromEntries(
-    Object.entries(iconMetaData).map(([name, { tags }]) => [ name, tags ])
-  )
-})
+  return Object.fromEntries(Object.entries(iconMetaData).map(([name, { tags }]) => [name, tags]));
+});
diff --git a/docs/.vitepress/api/test.ts b/docs/.vitepress/api/test.ts
index ebd7b88012c..a3f2b67f302 100644
--- a/docs/.vitepress/api/test.ts
+++ b/docs/.vitepress/api/test.ts
@@ -1,3 +1,3 @@
 export default eventHandler(() => {
-  return { nitro: 'Is Awesome! asda' }
-})
+  return { nitro: 'Is Awesome! asda' };
+});
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index 173ed778b45..17023ef9322 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -1,10 +1,10 @@
-import { fileURLToPath, URL } from 'node:url'
-import { defineConfig } from 'vitepress'
+import { fileURLToPath, URL } from 'node:url';
+import { defineConfig } from 'vitepress';
 import sidebar from './sidebar';
 
-const title = "Lucide";
-const socialTitle = "Lucide Icons";
-const description = "Beautiful & consistent icon toolkit made by the community."
+const title = 'Lucide';
+const socialTitle = 'Lucide Icons';
+const description = 'Beautiful & consistent icon toolkit made by the community.';
 
 // https://vitepress.dev/reference/site-config
 export default defineConfig({
@@ -19,86 +19,131 @@ export default defineConfig({
         {
           find: /^.*\/VPIconAlignLeft\.vue$/,
           replacement: fileURLToPath(
-            new URL('./theme/components/overrides/VPIconAlignLeft.vue', import.meta.url)
-          )
+            new URL('./theme/components/overrides/VPIconAlignLeft.vue', import.meta.url),
+          ),
         },
         {
           find: /^.*\/VPFooter\.vue$/,
           replacement: fileURLToPath(
-            new URL('./theme/components/overrides/VPFooter.vue', import.meta.url)
-          )
-        }
-      ]
+            new URL('./theme/components/overrides/VPFooter.vue', import.meta.url),
+          ),
+        },
+      ],
     },
   },
   head: [
-    [ 'script', {
-      src: 'https://analytics.lucide.dev/js/script.js',
-      'data-domain': 'lucide.dev',
-      defer: ''
-    }],
-    [ 'meta', {
-      property:"og:locale",
-      content:"en_US"
-    }],
-    [ 'meta', {
-      property:"og:type",
-      content:"website"
-    }],
-    [ 'meta', {
-      property:"og:site_name",
-      content: title,
-    }],
-    [ 'meta', {
-      property:"og:title",
-      content: socialTitle,
-    }],
-    [ 'meta', {
-      property:"og:description",
-      content: description
-    }],
-    [ 'meta', {
-      property:"og:url",
-      content:"https://lucide.dev"
-    }],
-    [ 'meta', {
-      property:"og:image",
-      content: "https://lucide.dev/og.png"
-    }],
-    [ 'meta', {
-      property:"og:image:width",
-      content:"1200"
-    }],
-    [ 'meta', {
-      property:"og:image:height",
-      content:"630"
-    }],
-    [ 'meta', {
-      property:"og:image:type",
-      content:"image/png"
-    }],
-    [ 'meta', {
-      property:"twitter:card",
-      content:"summary_large_image"
-    }],
-    [ 'meta', {
-      property:"twitter:title",
-      content: socialTitle,
-    }],
-    [ 'meta', {
-      property:"twitter:description",
-      content: description
-    }],
-    [ 'meta', {
-      property:"twitter:image",
-      content:"https://lucide.dev/og.png"
-    }],
+    [
+      'script',
+      {
+        src: 'https://analytics.lucide.dev/js/script.js',
+        'data-domain': 'lucide.dev',
+        defer: '',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:locale',
+        content: 'en_US',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:type',
+        content: 'website',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:site_name',
+        content: title,
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:title',
+        content: socialTitle,
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:description',
+        content: description,
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:url',
+        content: 'https://lucide.dev',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:image',
+        content: 'https://lucide.dev/og.png',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:image:width',
+        content: '1200',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:image:height',
+        content: '630',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'og:image:type',
+        content: 'image/png',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'twitter:card',
+        content: 'summary_large_image',
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'twitter:title',
+        content: socialTitle,
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'twitter:description',
+        content: description,
+      },
+    ],
+    [
+      'meta',
+      {
+        property: 'twitter:image',
+        content: 'https://lucide.dev/og.png',
+      },
+    ],
   ],
   themeConfig: {
     // https://vitepress.dev/reference/default-theme-config
     logo: {
       light: '/logo.light.svg',
-      dark: '/logo.dark.svg'
+      dark: '/logo.dark.svg',
     },
     nav: [
       { text: 'Icons', link: '/icons/' },
@@ -110,21 +155,21 @@ export default defineConfig({
     sidebar,
     socialLinks: [
       { icon: 'github', link: 'https://github.com/lucide-icons/lucide' },
-      { icon: 'discord', link: 'https://discord.gg/EH6nSts' }
+      { icon: 'discord', link: 'https://discord.gg/EH6nSts' },
     ],
     footer: {
       message: 'Released under the ISC License.',
-      copyright: `Copyright © ${new Date().getFullYear()} Lucide Contributors`
+      copyright: `Copyright © ${new Date().getFullYear()} Lucide Contributors`,
     },
     editLink: {
-      pattern: 'https://github.com/lucide-icons/lucide/edit/main/docs/:path'
+      pattern: 'https://github.com/lucide-icons/lucide/edit/main/docs/:path',
     },
     carbonAds: {
       code: 'CWYIC53U',
-      placement: 'lucidedev'
-    }
+      placement: 'lucidedev',
+    },
   },
   sitemap: {
-    hostname: 'https://lucide.dev/'
-  }
-})
+    hostname: 'https://lucide.dev/',
+  },
+});
diff --git a/docs/.vitepress/data/packageData.json b/docs/.vitepress/data/packageData.json
index e15de0eeedd..2e9bc22e9e4 100644
--- a/docs/.vitepress/data/packageData.json
+++ b/docs/.vitepress/data/packageData.json
@@ -3,87 +3,171 @@
     "order": 0,
     "icon": "js",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide", "href": "https://www.npmjs.com/package/lucide" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide", "href": "https://www.npmjs.com/package/lucide" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide",
+        "href": "https://www.npmjs.com/package/lucide"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide",
+        "href": "https://www.npmjs.com/package/lucide"
+      }
     ]
   },
   "lucide-react": {
     "order": 1,
     "icon": "react",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-react", "href": "https://www.npmjs.com/package/lucide-react" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-react", "href": "https://www.npmjs.com/package/lucide-react" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-react",
+        "href": "https://www.npmjs.com/package/lucide-react"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-react",
+        "href": "https://www.npmjs.com/package/lucide-react"
+      }
     ]
   },
   "lucide-vue": {
     "order": 2,
     "icon": "vue",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-vue", "href": "https://www.npmjs.com/package/lucide-vue" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-vue", "href": "https://www.npmjs.com/package/lucide-vue" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-vue",
+        "href": "https://www.npmjs.com/package/lucide-vue"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-vue",
+        "href": "https://www.npmjs.com/package/lucide-vue"
+      }
     ]
   },
   "lucide-vue-next": {
     "order": 3,
     "icon": "vue-next",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-vue-next", "href": "https://www.npmjs.com/package/lucide-vue-next" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-vue-next", "href": "https://www.npmjs.com/package/lucide-vue-next" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-vue-next",
+        "href": "https://www.npmjs.com/package/lucide-vue-next"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-vue-next",
+        "href": "https://www.npmjs.com/package/lucide-vue-next"
+      }
     ]
   },
   "lucide-svelte": {
     "order": 4,
     "icon": "svelte",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-svelte", "href": "https://www.npmjs.com/package/lucide-svelte" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-svelte", "href": "https://www.npmjs.com/package/lucide-svelte" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-svelte",
+        "href": "https://www.npmjs.com/package/lucide-svelte"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-svelte",
+        "href": "https://www.npmjs.com/package/lucide-svelte"
+      }
     ]
   },
   "lucide-solid": {
     "order": 4,
     "icon": "solid",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-solid", "href": "https://www.npmjs.com/package/lucide-solid" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-solid", "href": "https://www.npmjs.com/package/lucide-solid" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-solid",
+        "href": "https://www.npmjs.com/package/lucide-solid"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-solid",
+        "href": "https://www.npmjs.com/package/lucide-solid"
+      }
     ]
   },
   "lucide-preact": {
     "order": 5,
     "icon": "preact",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-preact", "href": "https://www.npmjs.com/package/lucide-preact" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-preact", "href": "https://www.npmjs.com/package/lucide-preact" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-preact",
+        "href": "https://www.npmjs.com/package/lucide-preact"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-preact",
+        "href": "https://www.npmjs.com/package/lucide-preact"
+      }
     ]
   },
   "lucide-react-native": {
     "order": 6,
     "icon": "react-native",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-react-native", "href": "https://www.npmjs.com/package/lucide-react-native" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-react-native", "href": "https://www.npmjs.com/package/lucide-react-native" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-react-native",
+        "href": "https://www.npmjs.com/package/lucide-react-native"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-react-native",
+        "href": "https://www.npmjs.com/package/lucide-react-native"
+      }
     ]
   },
   "lucide-angular": {
     "order": 7,
     "icon": "angular",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-angular", "href": "https://www.npmjs.com/package/lucide-angular" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-angular", "href": "https://www.npmjs.com/package/lucide-angular" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-angular",
+        "href": "https://www.npmjs.com/package/lucide-angular"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-angular",
+        "href": "https://www.npmjs.com/package/lucide-angular"
+      }
     ]
   },
   "lucide-static": {
     "order": 8,
     "icon": "svg",
     "shields": [
-      { "alt": "npm", "src": "https://img.shields.io/npm/v/lucide-static", "href": "https://www.npmjs.com/package/lucide-static" },
-      { "alt": "npm", "src": "https://img.shields.io/npm/dw/lucide-static", "href": "https://www.npmjs.com/package/lucide-static" }
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/v/lucide-static",
+        "href": "https://www.npmjs.com/package/lucide-static"
+      },
+      {
+        "alt": "npm",
+        "src": "https://img.shields.io/npm/dw/lucide-static",
+        "href": "https://www.npmjs.com/package/lucide-static"
+      }
     ]
   },
   "lucide-flutter": {
     "order": 9,
     "icon": "flutter",
     "shields": [
-      { "alt": "flutter", "src": "https://img.shields.io/pub/v/lucide_icons", "href": "https://img.shields.io/pub/v/lucide_icons" }
+      {
+        "alt": "flutter",
+        "src": "https://img.shields.io/pub/v/lucide_icons",
+        "href": "https://img.shields.io/pub/v/lucide_icons"
+      }
     ]
   }
 }
diff --git a/docs/.vitepress/lib/SvgPreview/Backdrop.tsx b/docs/.vitepress/lib/SvgPreview/Backdrop.tsx
index be9362523df..4fa9b9b1358 100644
--- a/docs/.vitepress/lib/SvgPreview/Backdrop.tsx
+++ b/docs/.vitepress/lib/SvgPreview/Backdrop.tsx
@@ -17,21 +17,62 @@ const Backdrop = ({ src, color = 'red', backdropString }: BackdropProps): JSX.El
           patternUnits="userSpaceOnUse"
           patternTransform="rotate(45 50 50)"
         >
-          <line stroke={color} strokeWidth={0.1} y2={1} />
-          <line stroke={color} strokeWidth={0.1} y2={1} />
+          <line
+            stroke={color}
+            strokeWidth={0.1}
+            y2={1}
+          />
+          <line
+            stroke={color}
+            strokeWidth={0.1}
+            y2={1}
+          />
         </pattern>
       </defs>
-      <mask id="svg-preview-backdrop-mask-outline" maskUnits="userSpaceOnUse">
-        <g stroke="#fff" dangerouslySetInnerHTML={{ __html: backdropString }} />
-        <g dangerouslySetInnerHTML={{ __html: src }} strokeWidth={2.05} />
+      <mask
+        id="svg-preview-backdrop-mask-outline"
+        maskUnits="userSpaceOnUse"
+      >
+        <g
+          stroke="#fff"
+          dangerouslySetInnerHTML={{ __html: backdropString }}
+        />
+        <g
+          dangerouslySetInnerHTML={{ __html: src }}
+          strokeWidth={2.05}
+        />
       </mask>
-      <mask id="svg-preview-backdrop-mask-fill" maskUnits="userSpaceOnUse">
-        <g stroke="#fff" dangerouslySetInnerHTML={{ __html: backdropString }} />
-        <g dangerouslySetInnerHTML={{ __html: src }} strokeWidth={2.05} />
-        <g strokeWidth={1.75} dangerouslySetInnerHTML={{ __html: backdropString }} />
+      <mask
+        id="svg-preview-backdrop-mask-fill"
+        maskUnits="userSpaceOnUse"
+      >
+        <g
+          stroke="#fff"
+          dangerouslySetInnerHTML={{ __html: backdropString }}
+        />
+        <g
+          dangerouslySetInnerHTML={{ __html: src }}
+          strokeWidth={2.05}
+        />
+        <g
+          strokeWidth={1.75}
+          dangerouslySetInnerHTML={{ __html: backdropString }}
+        />
       </mask>
-      <g strokeWidth={2.25} stroke="url(#pattern)" mask={'url(#svg-preview-backdrop-mask-outline)'}>
-        <rect x="0" y="0" width="24" height="24" fill="url(#pattern)" opacity={0.5} stroke="none" />
+      <g
+        strokeWidth={2.25}
+        stroke="url(#pattern)"
+        mask={'url(#svg-preview-backdrop-mask-outline)'}
+      >
+        <rect
+          x="0"
+          y="0"
+          width="24"
+          height="24"
+          fill="url(#pattern)"
+          opacity={0.5}
+          stroke="none"
+        />
       </g>
       <rect
         x="0"
diff --git a/docs/.vitepress/lib/SvgPreview/index.tsx b/docs/.vitepress/lib/SvgPreview/index.tsx
index f14523e6e63..d7f37093bfd 100644
--- a/docs/.vitepress/lib/SvgPreview/index.tsx
+++ b/docs/.vitepress/lib/SvgPreview/index.tsx
@@ -10,7 +10,11 @@ const Grid = ({
   strokeWidth: number;
   radius: number;
 } & PathProps<'stroke', 'strokeWidth'>) => (
-  <g className="svg-preview-grid-group" strokeLinecap="butt" {...props}>
+  <g
+    className="svg-preview-grid-group"
+    strokeLinecap="butt"
+    {...props}
+  >
     <rect
       className="svg-preview-grid-rect"
       width={24 - props.strokeWidth}
@@ -44,15 +48,21 @@ const Shadow = ({
   paths: Path[];
 } & PathProps<'stroke' | 'strokeWidth' | 'strokeOpacity', 'd'>) => {
   const groupedPaths = Object.entries(
-    paths.reduce((groups, val) => {
-      const key = val.c.id;
-      groups[key] = [...(groups[key] || []), val];
-      return groups;
-    }, {} as Record<number, Path[]>)
+    paths.reduce(
+      (groups, val) => {
+        const key = val.c.id;
+        groups[key] = [...(groups[key] || []), val];
+        return groups;
+      },
+      {} as Record<number, Path[]>,
+    ),
   );
   return (
     <>
-      <g className="svg-preview-shadow-mask-group" {...props}>
+      <g
+        className="svg-preview-shadow-mask-group"
+        {...props}
+      >
         {groupedPaths.map(([id, paths]) => (
           <mask
             id={`svg-preview-shadow-mask-${id}`}
@@ -61,7 +71,15 @@ const Shadow = ({
             strokeWidth={props.strokeWidth}
             stroke="#000"
           >
-            <rect x={0} y={0} width={24} height={24} fill="#fff" stroke="none" rx={radius} />
+            <rect
+              x={0}
+              y={0}
+              width={24}
+              height={24}
+              fill="#fff"
+              stroke="none"
+              rx={radius}
+            />
             <path
               d={paths
                 .flatMap(({ prev, next }) => [
@@ -74,9 +92,16 @@ const Shadow = ({
           </mask>
         ))}
       </g>
-      <g className="svg-preview-shadow-group" {...props}>
+      <g
+        className="svg-preview-shadow-group"
+        {...props}
+      >
         {paths.map(({ d, c: { id } }, i) => (
-          <path key={i} mask={`url(#svg-preview-shadow-mask-${id})`} d={d} />
+          <path
+            key={i}
+            mask={`url(#svg-preview-shadow-mask-${id})`}
+            d={d}
+          />
         ))}
         <path
           d={paths
@@ -94,9 +119,16 @@ const ColoredPath = ({
   paths,
   ...props
 }: { paths: Path[]; colors: string[] } & PathProps<never, 'd' | 'stroke'>) => (
-  <g className="svg-preview-colored-path-group" {...props}>
+  <g
+    className="svg-preview-colored-path-group"
+    {...props}
+  >
     {paths.map(({ d, c }, i) => (
-      <path key={i} d={d} stroke={colors[(c.name === 'path' ? i : c.id) % colors.length]} />
+      <path
+        key={i}
+        d={d}
+        stroke={colors[(c.name === 'path' ? i : c.id) % colors.length]}
+      />
     ))}
   </g>
 );
@@ -138,7 +170,15 @@ const ControlPath = ({
                 key={i}
                 maskUnits="userSpaceOnUse"
               >
-                <rect x="0" y="0" width="24" height="24" fill="#fff" stroke="none" rx={radius} />
+                <rect
+                  x="0"
+                  y="0"
+                  width="24"
+                  height="24"
+                  fill="#fff"
+                  stroke="none"
+                  rx={radius}
+                />
                 <path d={`M${prev.x} ${prev.y}h.01`} />
                 <path d={`M${next.x} ${next.y}h.01`} />
               </mask>
@@ -146,7 +186,10 @@ const ControlPath = ({
           );
         })}
       </g>
-      <g className="svg-preview-control-path-group" {...props}>
+      <g
+        className="svg-preview-control-path-group"
+        {...props}
+      >
         {controlPaths.map(({ d, showMarker }, i) => (
           <path
             key={i}
@@ -155,18 +198,33 @@ const ControlPath = ({
           />
         ))}
       </g>
-      <g className="svg-preview-control-path-marker-group" {...props}>
+      <g
+        className="svg-preview-control-path-marker-group"
+        {...props}
+      >
         <path
           d={controlPaths
             .flatMap(({ prev, next, showMarker }) =>
-              showMarker ? [`M${prev.x} ${prev.y}h.01`, `M${next.x} ${next.y}h.01`] : []
+              showMarker ? [`M${prev.x} ${prev.y}h.01`, `M${next.x} ${next.y}h.01`] : [],
             )
             .join('')}
         />
         {controlPaths.map(({ d, prev, next, startMarker, endMarker }, i) => (
           <React.Fragment key={i}>
-            {startMarker && <circle cx={prev.x} cy={prev.y} r={pointSize / 2} />}
-            {endMarker && <circle cx={next.x} cy={next.y} r={pointSize / 2} />}
+            {startMarker && (
+              <circle
+                cx={prev.x}
+                cy={prev.y}
+                r={pointSize / 2}
+              />
+            )}
+            {endMarker && (
+              <circle
+                cx={next.x}
+                cy={next.y}
+                r={pointSize / 2}
+              />
+            )}
           </React.Fragment>
         ))}
       </g>
@@ -182,15 +240,16 @@ const Radii = ({
   any
 >) => {
   return (
-    <g className="svg-preview-radii-group" {...props}>
+    <g
+      className="svg-preview-radii-group"
+      {...props}
+    >
       {paths.map(
         ({ c, prev, next, circle }, i) =>
           circle && (
             <React.Fragment key={i}>
-              {c.name !== "circle" && (
-                <path
-                  d={`M${prev.x} ${prev.y} ${circle.x} ${circle.y} ${next.x} ${next.y}`}
-                />
+              {c.name !== 'circle' && (
+                <path d={`M${prev.x} ${prev.y} ${circle.x} ${circle.y} ${next.x} ${next.y}`} />
               )}
               <circle
                 cy={circle.y}
@@ -200,7 +259,7 @@ const Radii = ({
                 stroke={
                   (Math.round(circle.x * 100) / 100) % 1 !== 0 ||
                   (Math.round(circle.y * 100) / 100) % 1 !== 0
-                    ? "red"
+                    ? 'red'
                     : undefined
                 }
               />
@@ -208,11 +267,7 @@ const Radii = ({
                 cy={circle.y}
                 cx={circle.x}
                 r={circle.r}
-                stroke={
-                  (Math.round(circle.r * 1000) / 1000) % 1 !== 0
-                    ? "red"
-                    : undefined
-                }
+                stroke={(Math.round(circle.r * 1000) / 1000) % 1 !== 0 ? 'red' : undefined}
               />
             </React.Fragment>
           ),
@@ -230,13 +285,28 @@ const Handles = ({
 >) => {
   console.log(paths);
   return (
-    <g className="svg-preview-handles-group" {...props}>
+    <g
+      className="svg-preview-handles-group"
+      {...props}
+    >
       {paths.map(({ c, prev, next, cp1, cp2 }) => (
         <>
           {cp1 && <path d={`M${prev.x} ${prev.y} ${cp1.x} ${cp1.y}`} />}
-          {cp1 && <circle cy={cp1.y} cx={cp1.x} r={0.25} />}
+          {cp1 && (
+            <circle
+              cy={cp1.y}
+              cx={cp1.x}
+              r={0.25}
+            />
+          )}
           {cp2 && <path d={`M${next.x} ${next.y} ${cp2.x} ${cp2.y}`} />}
-          {cp2 && <circle cy={cp2.y} cx={cp2.x} r={0.25} />}
+          {cp2 && (
+            <circle
+              cy={cp2.y}
+              cx={cp2.x}
+              r={0.25}
+            />
+          )}
         </>
       ))}
     </g>
@@ -280,9 +350,27 @@ const SvgPreview = React.forwardRef<
       {...props}
     >
       <style>{darkModeCss}</style>
-      {showGrid && <Grid strokeWidth={0.1} stroke="#777" strokeOpacity={0.3} radius={1} />}
-      <Shadow paths={paths} strokeWidth={4} stroke="#777" radius={1} strokeOpacity={0.15} />
-      <Handles paths={paths} strokeWidth={0.12} stroke="#777" strokeOpacity={0.6} />
+      {showGrid && (
+        <Grid
+          strokeWidth={0.1}
+          stroke="#777"
+          strokeOpacity={0.3}
+          radius={1}
+        />
+      )}
+      <Shadow
+        paths={paths}
+        strokeWidth={4}
+        stroke="#777"
+        radius={1}
+        strokeOpacity={0.15}
+      />
+      <Handles
+        paths={paths}
+        strokeWidth={0.12}
+        stroke="#777"
+        strokeOpacity={0.6}
+      />
       <ColoredPath
         paths={paths}
         colors={[
@@ -307,8 +395,19 @@ const SvgPreview = React.forwardRef<
         stroke="#777"
         strokeOpacity={0.3}
       />
-      <ControlPath radius={1} paths={paths} pointSize={1} stroke="#fff" strokeWidth={0.125} />
-      <Handles paths={paths} strokeWidth={0.12} stroke="#FFF" strokeOpacity={0.3} />
+      <ControlPath
+        radius={1}
+        paths={paths}
+        pointSize={1}
+        stroke="#fff"
+        strokeWidth={0.125}
+      />
+      <Handles
+        paths={paths}
+        strokeWidth={0.12}
+        stroke="#FFF"
+        strokeOpacity={0.3}
+      />
       {children}
     </svg>
   );
diff --git a/docs/.vitepress/lib/SvgPreview/types.ts b/docs/.vitepress/lib/SvgPreview/types.ts
index b36df0ca636..8c1b8f4edc4 100644
--- a/docs/.vitepress/lib/SvgPreview/types.ts
+++ b/docs/.vitepress/lib/SvgPreview/types.ts
@@ -16,7 +16,7 @@ export type Path = {
 
 export type PathProps<
   RequiredProps extends keyof SVGProps<SVGPathElement | SVGRectElement | SVGCircleElement>,
-  NeverProps extends keyof SVGProps<SVGPathElement | SVGRectElement | SVGCircleElement>
+  NeverProps extends keyof SVGProps<SVGPathElement | SVGRectElement | SVGCircleElement>,
 > = Required<Pick<React.SVGProps<SVGElement & SVGRectElement & SVGCircleElement>, RequiredProps>> &
   Omit<
     React.SVGProps<SVGPathElement & SVGRectElement & SVGCircleElement>,
diff --git a/docs/.vitepress/lib/SvgPreview/utils.ts b/docs/.vitepress/lib/SvgPreview/utils.ts
index 2a9974a9100..9dfb1a6f7ee 100644
--- a/docs/.vitepress/lib/SvgPreview/utils.ts
+++ b/docs/.vitepress/lib/SvgPreview/utils.ts
@@ -51,7 +51,7 @@ export const getCommands = (src: string) =>
   getNodes(src)
     .map(convertToPathNode)
     .flatMap(({ d, name }, idx) =>
-      new SVGPathData(d).toAbs().commands.map((c, cIdx) => ({ ...c, id: idx, idx: cIdx, name }))
+      new SVGPathData(d).toAbs().commands.map((c, cIdx) => ({ ...c, id: idx, idx: cIdx, name })),
     );
 
 export const getPaths = (src: string) => {
@@ -60,10 +60,10 @@ export const getPaths = (src: string) => {
   let prev: Point | undefined = undefined;
   let start: Point | undefined = undefined;
   const addPath = (
-    c: typeof commands[number],
+    c: (typeof commands)[number],
     next: Point,
     d?: string,
-    extras?: { circle?: Path['circle']; cp1?: Path['cp1']; cp2?: Path['cp2'] }
+    extras?: { circle?: Path['circle']; cp1?: Path['cp1']; cp2?: Path['cp2'] },
   ) => {
     assert(prev);
     paths.push({
@@ -153,7 +153,7 @@ export const getPaths = (src: string) => {
           {
             cp1: { x: prev.x - reflectedCp1.x, y: prev.y - reflectedCp1.y },
             cp2: { x: c.x2, y: c.y2 },
-          }
+          },
         );
         break;
       }
@@ -169,7 +169,7 @@ export const getPaths = (src: string) => {
         assert(prev);
         const backTrackCP = (
           index: number,
-          currentPoint: { x: number; y: number }
+          currentPoint: { x: number; y: number },
         ): { x: number; y: number } => {
           const previousCommand = commands[index - 1];
           if (!previousCommand) {
@@ -211,7 +211,7 @@ export const getPaths = (src: string) => {
           {
             cp1: { x: prevCP.x, y: prevCP.y },
             cp2: { x: prevCP.x, y: prevCP.y },
-          }
+          },
         );
         break;
       }
@@ -226,13 +226,13 @@ export const getPaths = (src: string) => {
           c.lArcFlag,
           c.sweepFlag,
           c.x,
-          c.y
+          c.y,
         );
         addPath(
           c,
           c,
           `M ${prev.x} ${prev.y} A${c.rX} ${c.rY} ${c.xRot} ${c.lArcFlag} ${c.sweepFlag} ${c.x} ${c.y}`,
-          { circle: c.rX === c.rY ? { ...center, r: c.rX } : undefined }
+          { circle: c.rX === c.rY ? { ...center, r: c.rX } : undefined },
         );
         break;
       }
@@ -253,7 +253,7 @@ export const arcEllipseCenter = (
   fa: number,
   fs: number,
   x2: number,
-  y2: number
+  y2: number,
 ) => {
   const phi = (a * Math.PI) / 180;
 
@@ -280,7 +280,7 @@ export const arcEllipseCenter = (
     sign *
     Math.sqrt(
       Math.max(rx * rx * ry * ry - rx * rx * y1p * y1p - ry * ry * x1p * x1p, 0) /
-        (rx * rx * y1p * y1p + ry * ry * x1p * x1p)
+        (rx * rx * y1p * y1p + ry * ry * x1p * x1p),
     );
 
   const V2 = [(rx * y1p) / ry, (-ry * x1p) / rx];
diff --git a/docs/.vitepress/lib/categories.ts b/docs/.vitepress/lib/categories.ts
index 2e14bbe71e4..dfc0268b63a 100644
--- a/docs/.vitepress/lib/categories.ts
+++ b/docs/.vitepress/lib/categories.ts
@@ -1,28 +1,34 @@
-import fs from "fs";
-import path from "path";
-import {Category, IconEntity} from "../theme/types";
+import fs from 'fs';
+import path from 'path';
+import { Category, IconEntity } from '../theme/types';
 
-const directory = path.join(process.cwd(), "../categories");
+const directory = path.join(process.cwd(), '../categories');
 
 export function getAllCategoryFiles(): Category[] {
   const fileNames = fs.readdirSync(directory).filter((file) => path.extname(file) === '.json');
 
   return fileNames.map((fileName) => {
-    const name = path.basename(fileName, '.json')
-    const fileContent = fs.readFileSync(path.join(directory, fileName), 'utf8')
+    const name = path.basename(fileName, '.json');
+    const fileContent = fs.readFileSync(path.join(directory, fileName), 'utf8');
 
-    const parsedFileContent = JSON.parse(fileContent)
+    const parsedFileContent = JSON.parse(fileContent);
 
     return {
       name,
       title: parsedFileContent.title,
-    }
+    };
   });
 }
 
-export function mapCategoryIconCount(categories: Category[], icons: { categories: IconEntity['categories'] }[]) {
+export function mapCategoryIconCount(
+  categories: Category[],
+  icons: { categories: IconEntity['categories'] }[],
+) {
   return categories.map((category) => ({
     ...category,
-    iconCount: icons.reduce((acc, curr) => (curr.categories.includes(category.name) ? ++acc : acc), 0)
-  }))
+    iconCount: icons.reduce(
+      (acc, curr) => (curr.categories.includes(category.name) ? ++acc : acc),
+      0,
+    ),
+  }));
 }
diff --git a/docs/.vitepress/lib/createCodeExamples.ts b/docs/.vitepress/lib/createCodeExamples.ts
index 41c75551c56..ee9e4bd4fd3 100644
--- a/docs/.vitepress/lib/createCodeExamples.ts
+++ b/docs/.vitepress/lib/createCodeExamples.ts
@@ -1,24 +1,18 @@
-import {
-  bundledLanguages,
-  type ThemeRegistration
-} from 'shikiji'
-import {
-  getHighlighter,
-} from 'shikiji'
-
+import { bundledLanguages, type ThemeRegistration } from 'shikiji';
+import { getHighlighter } from 'shikiji';
 
 type CodeExampleType = {
-  title: string,
-  language: string,
-  code: string,
-}[]
+  title: string;
+  language: string;
+  code: string;
+}[];
 
 const getIconCodes = (): CodeExampleType => {
   return [
     {
       language: 'html',
       title: 'HTML',
-      code: `<i data-lucide="Name"></i>`
+      code: `<i data-lucide="Name"></i>`,
     },
     {
       language: 'tsx',
@@ -109,36 +103,37 @@ import { LucideAngularModule, PascalCase } from 'lucide-angular';
 
 <div class="icon-Name"></div>
 `,
-    }
-  ]
-}
+    },
+  ];
+};
 
 export type ThemeOptions =
   | ThemeRegistration
-  | { light: ThemeRegistration; dark: ThemeRegistration }
+  | { light: ThemeRegistration; dark: ThemeRegistration };
 
 const highLightCode = async (code: string, lang: string, active?: boolean) => {
   const highlighter = await getHighlighter({
     themes: ['github-light', 'github-dark'],
-    langs: Object.keys(bundledLanguages)
-  })
-
-  const highlightedCode = highlighter.codeToHtml(code, {
-    lang,
-    themes: {
-      light: 'github-light',
-      dark: 'github-dark'
-    },
-    defaultColor: false
-  }).replace('shiki-themes', 'shiki-themes vp-code')
+    langs: Object.keys(bundledLanguages),
+  });
+
+  const highlightedCode = highlighter
+    .codeToHtml(code, {
+      lang,
+      themes: {
+        light: 'github-light',
+        dark: 'github-dark',
+      },
+      defaultColor: false,
+    })
+    .replace('shiki-themes', 'shiki-themes vp-code');
 
   return `<div class="language-${lang} ${active ? 'active' : ''}">
   <button title="Copy Code" class="copy"></button>
   <span class="lang">${lang}</span>
   ${highlightedCode}
-  </div>`
-}
-
+  </div>`;
+};
 
 export default async function createCodeExamples() {
   const codes = getIconCodes();
@@ -153,7 +148,7 @@ export default async function createCodeExamples() {
       language: language,
       code: codeString,
     };
-  })
+  });
 
   return Promise.all(codeExamplePromises);
 }
diff --git a/docs/.vitepress/lib/fetchPackages.ts b/docs/.vitepress/lib/fetchPackages.ts
index 0bf1a7e6504..9f6796547e7 100644
--- a/docs/.vitepress/lib/fetchPackages.ts
+++ b/docs/.vitepress/lib/fetchPackages.ts
@@ -1,38 +1,42 @@
 import { promises as fs, constants } from 'fs';
 import path from 'path';
-import yaml from 'js-yaml'
+import yaml from 'js-yaml';
 import { PackageItem } from '../theme/types';
 
-const fileExist = (filePath) => fs.access(filePath, constants.F_OK).then(() => true).catch(() => false)
+const fileExist = (filePath) =>
+  fs
+    .access(filePath, constants.F_OK)
+    .then(() => true)
+    .catch(() => false);
 
 const fetchPackages = async (): Promise<PackageItem[]> => {
   const docsDir = path.resolve(process.cwd(), '../packages');
-  const fileNames = await (await fs.readdir(docsDir)).map(filename => ({filename, directory: docsDir}))
+  const fileNames = await (
+    await fs.readdir(docsDir)
+  ).map((filename) => ({ filename, directory: docsDir }));
 
-  const packageJsons = await Promise.all(fileNames.map( async ({filename, directory}) => {
-    const filePath = path.resolve(directory, filename)
-    const fileStat = await fs.lstat(filePath);
+  const packageJsons = await Promise.all(
+    fileNames.map(async ({ filename, directory }) => {
+      const filePath = path.resolve(directory, filename);
+      const fileStat = await fs.lstat(filePath);
 
-    if(!fileStat.isDirectory()) return null;
+      if (!fileStat.isDirectory()) return null;
 
-    const jsonFilePath = path.resolve(filePath, 'package.json')
-    if (await fileExist(jsonFilePath)) {
-      return JSON.parse(
-        await fs.readFile(jsonFilePath, 'utf-8')
-      )
-    }
+      const jsonFilePath = path.resolve(filePath, 'package.json');
+      if (await fileExist(jsonFilePath)) {
+        return JSON.parse(await fs.readFile(jsonFilePath, 'utf-8'));
+      }
 
-    const ymlFilePath = path.resolve(filePath, 'pubspec.yaml')
-    if(await fileExist(ymlFilePath)) {
-      return yaml.load(
-        await fs.readFile(ymlFilePath, 'utf-8')
-      );
-    }
+      const ymlFilePath = path.resolve(filePath, 'pubspec.yaml');
+      if (await fileExist(ymlFilePath)) {
+        return yaml.load(await fs.readFile(ymlFilePath, 'utf-8'));
+      }
 
-    return null
-  }))
+      return null;
+    }),
+  );
 
-  return packageJsons
-}
+  return packageJsons;
+};
 
 export default fetchPackages;
diff --git a/docs/.vitepress/lib/generateZip.ts b/docs/.vitepress/lib/generateZip.ts
index e647eab6369..7b95011fd99 100644
--- a/docs/.vitepress/lib/generateZip.ts
+++ b/docs/.vitepress/lib/generateZip.ts
@@ -1,17 +1,15 @@
-export type IconContent = [icon: string, src:string];
+export type IconContent = [icon: string, src: string];
 
 async function generateZip(icons: IconContent[]) {
-  const JSZip = (await import('jszip')).default
+  const JSZip = (await import('jszip')).default;
 
   const zip = new JSZip();
 
-  const addingZipPromises = icons.map(([name, src]) =>
-    zip.file(`${name}.svg`, src),
-  );
+  const addingZipPromises = icons.map(([name, src]) => zip.file(`${name}.svg`, src));
 
-  await Promise.all(addingZipPromises)
+  await Promise.all(addingZipPromises);
 
   return zip.generateAsync({ type: 'blob' });
 }
 
-export default generateZip
+export default generateZip;
diff --git a/docs/.vitepress/lib/getFallbackZip.tsx b/docs/.vitepress/lib/getFallbackZip.tsx
index 82f3bbdaf86..9760697e9f0 100644
--- a/docs/.vitepress/lib/getFallbackZip.tsx
+++ b/docs/.vitepress/lib/getFallbackZip.tsx
@@ -1,17 +1,15 @@
-import { createLucideIcon } from "lucide-react/src/lucide-react"
-import { type LucideProps, type IconNode } from "lucide-react/src/createLucideIcon"
-import { IconEntity } from "../theme/types"
+import { createLucideIcon } from 'lucide-react/src/lucide-react';
+import { type LucideProps, type IconNode } from 'lucide-react/src/createLucideIcon';
+import { IconEntity } from '../theme/types';
 import { renderToStaticMarkup } from 'react-dom/server';
-import { IconContent } from "./generateZip";
+import { IconContent } from './generateZip';
 
 const getFallbackZip = (icons: IconEntity[], params: LucideProps) => {
-  return icons
-    .map<IconContent>((icon) => {
-      const Icon = createLucideIcon(icon.name, icon.iconNode as IconNode)
-      const src = renderToStaticMarkup(<Icon {...params} />)
-      return [icon.name, src]
-    })
-}
+  return icons.map<IconContent>((icon) => {
+    const Icon = createLucideIcon(icon.name, icon.iconNode as IconNode);
+    const src = renderToStaticMarkup(<Icon {...params} />);
+    return [icon.name, src];
+  });
+};
 
-
-export default getFallbackZip
+export default getFallbackZip;
diff --git a/docs/.vitepress/lib/icons.ts b/docs/.vitepress/lib/icons.ts
index ac1c6c94c8b..ece3f9bfd34 100644
--- a/docs/.vitepress/lib/icons.ts
+++ b/docs/.vitepress/lib/icons.ts
@@ -1,34 +1,34 @@
-import fs from "fs";
-import path from "path";
-import { IconNodeWithKeys } from "../theme/types";
-import iconNodes from '../data/iconNodes'
-import releaseMeta from "../data/releaseMetaData.json";
+import fs from 'fs';
+import path from 'path';
+import { IconNodeWithKeys } from '../theme/types';
+import iconNodes from '../data/iconNodes';
+import releaseMeta from '../data/releaseMetaData.json';
 
 const DATE_OF_FORK = '2020-06-08T16:39:52+0100';
 
-const directory = path.join(process.cwd(), "../icons");
+const directory = path.join(process.cwd(), '../icons');
 
 export interface GetDataOptions {
-  withChildKeys?: boolean
+  withChildKeys?: boolean;
 }
 
 export async function getData(name: string) {
   const jsonPath = path.join(directory, `${name}.json`);
-  const jsonContent = fs.readFileSync(jsonPath, "utf8");
+  const jsonContent = fs.readFileSync(jsonPath, 'utf8');
   const { tags, categories, contributors } = JSON.parse(jsonContent);
 
-  const iconNode = iconNodes[name]
+  const iconNode = iconNodes[name];
 
   const releaseData = releaseMeta?.[name] ?? {
-    "createdRelease": {
-      "version": "0.0.0",
-      "date": DATE_OF_FORK
+    createdRelease: {
+      version: '0.0.0',
+      date: DATE_OF_FORK,
     },
-    "changedRelease": {
-      "version": "0.0.0",
-      "date": DATE_OF_FORK
-    }
-  }
+    changedRelease: {
+      version: '0.0.0',
+      date: DATE_OF_FORK,
+    },
+  };
 
   return {
     name,
@@ -36,11 +36,11 @@ export async function getData(name: string) {
     categories,
     iconNode,
     contributors,
-    ...releaseData
+    ...releaseData,
   };
 }
 
-export async function getAllData(): Promise<{ name: string, iconNode: IconNodeWithKeys}[]> {
+export async function getAllData(): Promise<{ name: string; iconNode: IconNodeWithKeys }[]> {
   const names = Object.keys(iconNodes);
 
   return Promise.all(names.map((name) => getData(name)));
diff --git a/docs/.vitepress/sidebar.ts b/docs/.vitepress/sidebar.ts
index 762427aa943..5bb38717646 100644
--- a/docs/.vitepress/sidebar.ts
+++ b/docs/.vitepress/sidebar.ts
@@ -1,31 +1,31 @@
-import { DefaultTheme, UserConfig } from "vitepress"
+import { DefaultTheme, UserConfig } from 'vitepress';
 
 const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
-  'guide':[
+  guide: [
     {
       text: 'Introduction',
       items: [
         { text: 'What is lucide?', link: '/guide/' },
         { text: 'Installation', link: '/guide/installation' },
-        { text: 'Comparison', link: '/guide/comparison' }
-      ]
+        { text: 'Comparison', link: '/guide/comparison' },
+      ],
     },
     {
       text: 'Basics',
       items: [
         {
           text: 'Color',
-          link: '/guide/basics/color'
+          link: '/guide/basics/color',
         },
         {
           text: 'Sizing',
-          link: '/guide/basics/sizing'
+          link: '/guide/basics/sizing',
         },
         {
           text: 'Stroke width',
-          link: '/guide/basics/stroke-width'
+          link: '/guide/basics/stroke-width',
         },
-      ]
+      ],
     },
     // TODO: Add this section
     {
@@ -37,14 +37,14 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
         // },
         {
           text: 'Global styling',
-          link: '/guide/advanced/global-styling'
+          link: '/guide/advanced/global-styling',
         },
         // {
         //   text: 'Animations',
         // },
         {
           text: 'Filled icons',
-          link: '/guide/advanced/filled-icons'
+          link: '/guide/advanced/filled-icons',
         },
         // {
         //   text: 'Combining icons',
@@ -55,75 +55,73 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
         // {
         //   text: 'Auto importing'
         // },
-      ]
+      ],
     },
     {
       text: 'Packages',
       items: [
         {
           text: 'Lucide',
-          link: '/guide/packages/lucide'
+          link: '/guide/packages/lucide',
         },
         {
           text: 'Lucide React',
-          link: '/guide/packages/lucide-react'
+          link: '/guide/packages/lucide-react',
         },
         {
           text: 'Lucide React Native',
-          link: '/guide/packages/lucide-react-native'
+          link: '/guide/packages/lucide-react-native',
         },
         {
           text: 'Lucide Vue',
-          link: '/guide/packages/lucide-vue-next'
+          link: '/guide/packages/lucide-vue-next',
         },
         {
           text: 'Lucide Svelte',
-          link: '/guide/packages/lucide-svelte'
+          link: '/guide/packages/lucide-svelte',
         },
         {
           text: 'Lucide Solid',
-          link: '/guide/packages/lucide-solid'
+          link: '/guide/packages/lucide-solid',
         },
         {
           text: 'Lucide Preact',
-          link: '/guide/packages/lucide-preact'
+          link: '/guide/packages/lucide-preact',
         },
         {
           text: 'Lucide Angular',
-          link: '/guide/packages/lucide-angular'
+          link: '/guide/packages/lucide-angular',
         },
         {
           text: 'Lucide Static',
-          link: '/guide/packages/lucide-static'
+          link: '/guide/packages/lucide-static',
         },
-      ]
+      ],
     },
     {
       text: 'Contributing',
       items: [
         {
           text: 'Icon Design Principles',
-          link: '/guide/design/icon-design-guide'
+          link: '/guide/design/icon-design-guide',
         },
         {
           text: 'Designing in Illustrator',
-          link: '/guide/design/illustrator-guide'
+          link: '/guide/design/illustrator-guide',
         },
         {
           text: 'Designing in InkScape',
-          link:  '/guide/design/inkscape-guide'
+          link: '/guide/design/inkscape-guide',
         },
         {
           text: 'Designing in Figma',
-          link: '/guide/design/figma-guide'
+          link: '/guide/design/figma-guide',
         },
-      ]
+      ],
     },
   ],
   // This should be here to keep the sidebar shown on the icons page
-  'icons': [
-    { text: '', link: '/' },
-  ],
-}
+  icons: [{ text: '', link: '/' }],
+};
 
-export default sidebar
+export default sidebar;
diff --git a/docs/.vitepress/theme/components/home/HomeHeroBefore.data.ts b/docs/.vitepress/theme/components/home/HomeHeroBefore.data.ts
index 5e384e24054..e235048e31c 100644
--- a/docs/.vitepress/theme/components/home/HomeHeroBefore.data.ts
+++ b/docs/.vitepress/theme/components/home/HomeHeroBefore.data.ts
@@ -1,16 +1,18 @@
 export default {
   async load() {
-    const version = await fetch('https://api.github.com/repos/lucide-icons/lucide/releases/latest').then(res => {
-      if (res.ok) {
-        const releaseData = res.json() as Promise<{ tag_name: string }>
+    const version = await fetch('https://api.github.com/repos/lucide-icons/lucide/releases/latest')
+      .then((res) => {
+        if (res.ok) {
+          const releaseData = res.json() as Promise<{ tag_name: string }>;
 
-        return releaseData
-      }
-      return null
-    }).then(res => res.tag_name)
+          return releaseData;
+        }
+        return null;
+      })
+      .then((res) => res.tag_name);
 
     return {
-      version
-    }
-  }
-}
+      version,
+    };
+  },
+};
diff --git a/docs/.vitepress/theme/components/home/HomeHeroIconsCard.data.ts b/docs/.vitepress/theme/components/home/HomeHeroIconsCard.data.ts
index b6898c80f54..e8c158c5cae 100644
--- a/docs/.vitepress/theme/components/home/HomeHeroIconsCard.data.ts
+++ b/docs/.vitepress/theme/components/home/HomeHeroIconsCard.data.ts
@@ -1,16 +1,17 @@
-import iconNodes from '../../../data/iconNodes'
+import iconNodes from '../../../data/iconNodes';
 
-const getRandomItem = <Item>(items: Item[]): Item => items[Math.floor(Math.random()*items.length)];
+const getRandomItem = <Item>(items: Item[]): Item =>
+  items[Math.floor(Math.random() * items.length)];
 
 export default {
   async load() {
-    const icons = Object.entries(iconNodes).map(([name, iconNode]) => ({ name, iconNode }))
+    const icons = Object.entries(iconNodes).map(([name, iconNode]) => ({ name, iconNode }));
 
-    const randomIcons = Array.from({ length: 200 }, () => getRandomItem(icons))
+    const randomIcons = Array.from({ length: 200 }, () => getRandomItem(icons));
 
     return {
       icons: randomIcons,
       iconsCount: icons.length,
-    }
-  }
-}
+    };
+  },
+};
diff --git a/docs/.vitepress/theme/components/home/HomePackagesSection.data.ts b/docs/.vitepress/theme/components/home/HomePackagesSection.data.ts
index 62ca903c462..4ad9a9766de 100644
--- a/docs/.vitepress/theme/components/home/HomePackagesSection.data.ts
+++ b/docs/.vitepress/theme/components/home/HomePackagesSection.data.ts
@@ -47,7 +47,7 @@ export default {
           logo: '/framework-logos/flutter.svg',
           label: 'Lucide documentation for Flutter',
         },
-      ]
-    }
-  }
-}
+      ],
+    };
+  },
+};
diff --git a/docs/.vitepress/theme/components/icons/CategoryList.data.ts b/docs/.vitepress/theme/components/icons/CategoryList.data.ts
index bb32e803854..18224cbee54 100644
--- a/docs/.vitepress/theme/components/icons/CategoryList.data.ts
+++ b/docs/.vitepress/theme/components/icons/CategoryList.data.ts
@@ -1,16 +1,15 @@
 import { getAllData } from '../../../lib/icons';
 import { getAllCategoryFiles, mapCategoryIconCount } from '../../../lib/categories';
-import iconsMetaData from '../../../data/iconMetaData'
-
+import iconsMetaData from '../../../data/iconMetaData';
 
 export default {
   async load() {
-    let categories = getAllCategoryFiles()
+    let categories = getAllCategoryFiles();
 
-    categories = mapCategoryIconCount(categories, Object.values(iconsMetaData))
+    categories = mapCategoryIconCount(categories, Object.values(iconsMetaData));
 
     return {
       categories,
-    }
-  }
-}
+    };
+  },
+};
diff --git a/docs/.vitepress/theme/components/icons/confetti.css b/docs/.vitepress/theme/components/icons/confetti.css
index 9ebcff1d9b0..687edbeaad1 100644
--- a/docs/.vitepress/theme/components/icons/confetti.css
+++ b/docs/.vitepress/theme/components/icons/confetti.css
@@ -12,7 +12,7 @@
 .confetti-button:before,
 .confetti-button:after {
   position: absolute;
-  content: "";
+  content: '';
   display: block;
   width: 140%;
   max-width: 160px;
@@ -41,8 +41,16 @@
     radial-gradient(circle, var(--confetti-color) 20%, transparent 20%),
     radial-gradient(circle, var(--confetti-color) 20%, transparent 20%),
     radial-gradient(circle, var(--confetti-color) 20%, transparent 20%);
-  background-size: 10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%,
-    10% 10%, 18% 18%;
+  background-size:
+    10% 10%,
+    20% 20%,
+    15% 15%,
+    20% 20%,
+    18% 18%,
+    10% 10%,
+    15% 15%,
+    10% 10%,
+    18% 18%;
 }
 
 .confetti-button:after {
@@ -55,7 +63,14 @@
     radial-gradient(circle, var(--confetti-color) 20%, transparent 20%),
     radial-gradient(circle, var(--confetti-color) 20%, transparent 20%),
     radial-gradient(circle, var(--confetti-color) 20%, transparent 20%);
-  background-size: 15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 10% 10%, 20% 20%;
+  background-size:
+    15% 15%,
+    20% 20%,
+    18% 18%,
+    20% 20%,
+    15% 15%,
+    10% 10%,
+    20% 20%;
 }
 
 .confetti-button.animate:before {
@@ -70,35 +85,89 @@
 @keyframes topBubbles {
   0% {
     color: rgb(var(--text-color) / 0);
-    background-position: 5% 90%, 10% 90%, 10% 90%, 15% 90%, 25% 90%, 25% 90%,
-      40% 90%, 55% 90%, 70% 90%;
+    background-position:
+      5% 90%,
+      10% 90%,
+      10% 90%,
+      15% 90%,
+      25% 90%,
+      25% 90%,
+      40% 90%,
+      55% 90%,
+      70% 90%;
   }
   30% {
     color: rgb(var(--text-color) / 1);
   }
   50% {
-    background-position: 0% 80%, 0% 20%, 10% 40%, 20% 0%, 30% 30%, 22% 50%,
-      50% 50%, 65% 20%, 90% 30%;
+    background-position:
+      0% 80%,
+      0% 20%,
+      10% 40%,
+      20% 0%,
+      30% 30%,
+      22% 50%,
+      50% 50%,
+      65% 20%,
+      90% 30%;
   }
   100% {
-    background-position: 0% 70%, 0% 10%, 10% 30%, 20% -10%, 30% 20%, 22% 40%,
-      50% 40%, 65% 10%, 90% 20%;
-    background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
+    background-position:
+      0% 70%,
+      0% 10%,
+      10% 30%,
+      20% -10%,
+      30% 20%,
+      22% 40%,
+      50% 40%,
+      65% 10%,
+      90% 20%;
+    background-size:
+      0% 0%,
+      0% 0%,
+      0% 0%,
+      0% 0%,
+      0% 0%,
+      0% 0%;
     color: rgb(var(--text-color) / 0);
   }
 }
 @keyframes bottomBubbles {
   0% {
-    background-position: 10% -10%, 30% 10%, 55% -10%, 70% -10%, 85% -10%,
-      70% -10%, 70% 0%;
+    background-position:
+      10% -10%,
+      30% 10%,
+      55% -10%,
+      70% -10%,
+      85% -10%,
+      70% -10%,
+      70% 0%;
   }
   50% {
-    background-position: 0% 80%, 20% 80%, 45% 60%, 60% 100%, 75% 70%, 95% 60%,
+    background-position:
+      0% 80%,
+      20% 80%,
+      45% 60%,
+      60% 100%,
+      75% 70%,
+      95% 60%,
       105% 0%;
   }
   100% {
-    background-position: 0% 90%, 20% 90%, 45% 70%, 60% 110%, 75% 80%, 95% 70%,
+    background-position:
+      0% 90%,
+      20% 90%,
+      45% 70%,
+      60% 110%,
+      75% 80%,
+      95% 70%,
       110% 10%;
-    background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
+    background-size:
+      0% 0%,
+      0% 0%,
+      0% 0%,
+      0% 0%,
+      0% 0%,
+      0% 0%;
   }
 }
diff --git a/docs/.vitepress/theme/components/packages/PackageList.data.ts b/docs/.vitepress/theme/components/packages/PackageList.data.ts
index c92038babb2..8d38ba3d551 100644
--- a/docs/.vitepress/theme/components/packages/PackageList.data.ts
+++ b/docs/.vitepress/theme/components/packages/PackageList.data.ts
@@ -1,21 +1,22 @@
 import packageData from '../../../data/packageData.json';
 import thirdPartyPackages from '../../../data/packageData.thirdParty.json';
-import fetchPackages from "../../../lib/fetchPackages";
+import fetchPackages from '../../../lib/fetchPackages';
 
 export default {
   async load() {
     const packages = await fetchPackages();
     return {
       packages: packages
-        .filter(p => p.name in packageData)
+        .filter((p) => p.name in packageData)
         .map((pData) => ({
-        ...pData,
-        ...packageData[pData.name],
-        documentation: `/guide/packages/${pData.name}`,
-        source: `https://github.com/lucide-icons/lucide/tree/main/packages/${pData.name}`,
-        icon: `/framework-logos/${packageData[pData.name].icon}.svg`,
-      })).sort((a, b) => a.order - b.order),
+          ...pData,
+          ...packageData[pData.name],
+          documentation: `/guide/packages/${pData.name}`,
+          source: `https://github.com/lucide-icons/lucide/tree/main/packages/${pData.name}`,
+          icon: `/framework-logos/${packageData[pData.name].icon}.svg`,
+        }))
+        .sort((a, b) => a.order - b.order),
       thirdPartyPackages,
     };
-  }
-}
+  },
+};
diff --git a/docs/.vitepress/theme/composables/useActiveAnchor.ts b/docs/.vitepress/theme/composables/useActiveAnchor.ts
index 68586b6aabc..19fdba255cf 100644
--- a/docs/.vitepress/theme/composables/useActiveAnchor.ts
+++ b/docs/.vitepress/theme/composables/useActiveAnchor.ts
@@ -1,69 +1,68 @@
 import { onMounted, onUpdated, onUnmounted } from 'vue';
-import { throttleAndDebounce } from 'vitepress/dist/client/theme-default/support/utils'
+import { throttleAndDebounce } from 'vitepress/dist/client/theme-default/support/utils';
 
 /*
-* This file is compied and adjusted from vitepress/dist/client/theme-default/composables/useActiveAnchor.ts
-*/
+ * This file is compied and adjusted from vitepress/dist/client/theme-default/composables/useActiveAnchor.ts
+ */
 
 export function useActiveAnchor(container, marker) {
   const onScroll = throttleAndDebounce(setActiveLink, 100);
   let prevActiveLink = null;
   onMounted(() => {
-      requestAnimationFrame(setActiveLink);
-      window.addEventListener('scroll', onScroll);
+    requestAnimationFrame(setActiveLink);
+    window.addEventListener('scroll', onScroll);
   });
   onUpdated(() => {
-      // sidebar update means a route change
-      activateLink(location.hash);
+    // sidebar update means a route change
+    activateLink(location.hash);
   });
   onUnmounted(() => {
-      window.removeEventListener('scroll', onScroll);
+    window.removeEventListener('scroll', onScroll);
   });
   function setActiveLink() {
-      const links = [].slice.call(container.value.querySelectorAll('.outline-link'));
-      const anchors = [].slice
-          .call(document.querySelectorAll('.content .header-anchor'))
-          .filter((anchor) => {
-          return links.some((link) => {
-              return link.hash === anchor.hash && anchor.offsetParent !== null;
-          });
+    const links = [].slice.call(container.value.querySelectorAll('.outline-link'));
+    const anchors = [].slice
+      .call(document.querySelectorAll('.content .header-anchor'))
+      .filter((anchor) => {
+        return links.some((link) => {
+          return link.hash === anchor.hash && anchor.offsetParent !== null;
+        });
       });
-      const scrollY = window.scrollY;
-      const innerHeight = window.innerHeight;
-      const offsetHeight = document.body.offsetHeight;
-      const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;
-      // page bottom - highlight last one
-      if (anchors.length && isBottom) {
-          activateLink(anchors[anchors.length - 1].hash);
-          return;
-      }
-      for (let i = 0; i < anchors.length; i++) {
-          const anchor = anchors[i];
-          const nextAnchor = anchors[i + 1];
-          const [isActive, hash] = isAnchorActive(i, anchor, nextAnchor);
-          if (isActive) {
-              activateLink(hash);
-              return;
-          }
+    const scrollY = window.scrollY;
+    const innerHeight = window.innerHeight;
+    const offsetHeight = document.body.offsetHeight;
+    const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;
+    // page bottom - highlight last one
+    if (anchors.length && isBottom) {
+      activateLink(anchors[anchors.length - 1].hash);
+      return;
+    }
+    for (let i = 0; i < anchors.length; i++) {
+      const anchor = anchors[i];
+      const nextAnchor = anchors[i + 1];
+      const [isActive, hash] = isAnchorActive(i, anchor, nextAnchor);
+      if (isActive) {
+        activateLink(hash);
+        return;
       }
+    }
   }
   function activateLink(hash) {
-      if (prevActiveLink) {
-          prevActiveLink.classList.remove('active');
-      }
-      if (hash !== null) {
-          prevActiveLink = container.value.querySelector(`a[href="${decodeURIComponent(hash)}"]`);
-      }
-      const activeLink = prevActiveLink;
-      if (activeLink) {
-          activeLink.classList.add('active');
-          marker.value.style.top = activeLink.offsetTop + 5 + 'px';
-          marker.value.style.opacity = '1';
-      }
-      else {
-          marker.value.style.top = '33px';
-          marker.value.style.opacity = '0';
-      }
+    if (prevActiveLink) {
+      prevActiveLink.classList.remove('active');
+    }
+    if (hash !== null) {
+      prevActiveLink = container.value.querySelector(`a[href="${decodeURIComponent(hash)}"]`);
+    }
+    const activeLink = prevActiveLink;
+    if (activeLink) {
+      activeLink.classList.add('active');
+      marker.value.style.top = activeLink.offsetTop + 5 + 'px';
+      marker.value.style.opacity = '1';
+    } else {
+      marker.value.style.top = '33px';
+      marker.value.style.opacity = '0';
+    }
   }
 }
 
@@ -75,13 +74,13 @@ function getAnchorTop(anchor) {
 function isAnchorActive(index, anchor, nextAnchor) {
   const scrollTop = window.scrollY;
   if (index === 0 && scrollTop === 0) {
-      return [true, null];
+    return [true, null];
   }
   if (scrollTop < getAnchorTop(anchor)) {
-      return [false, null];
+    return [false, null];
   }
   if (!nextAnchor || scrollTop < getAnchorTop(nextAnchor)) {
-      return [true, anchor.hash];
+    return [true, anchor.hash];
   }
   return [false, null];
 }
diff --git a/docs/.vitepress/theme/composables/useCategoryView.ts b/docs/.vitepress/theme/composables/useCategoryView.ts
index d6c079e02c8..72bd41f6012 100644
--- a/docs/.vitepress/theme/composables/useCategoryView.ts
+++ b/docs/.vitepress/theme/composables/useCategoryView.ts
@@ -1,12 +1,10 @@
-import {
-  ref, inject, Ref
-} from 'vue';
+import { ref, inject, Ref } from 'vue';
 
 export const CATEGORY_VIEW_CONTEXT = Symbol('categoryView');
 
 interface CategoryViewContext {
-  selectedCategory: Ref<string>
-  categoryCounts: Ref<Record<string, number>>
+  selectedCategory: Ref<string>;
+  categoryCounts: Ref<Record<string, number>>;
 }
 
 export const categoryViewContext = {
diff --git a/docs/.vitepress/theme/composables/useConfetti.ts b/docs/.vitepress/theme/composables/useConfetti.ts
index c124b0827b4..0ad4cf73028 100644
--- a/docs/.vitepress/theme/composables/useConfetti.ts
+++ b/docs/.vitepress/theme/composables/useConfetti.ts
@@ -1,8 +1,8 @@
-import { ref } from "vue";
+import { ref } from 'vue';
 
 export default function useConfetti() {
-  const animate = ref(false)
-  const confettiText = ref('confetti!')
+  const animate = ref(false);
+  const confettiText = ref('confetti!');
 
   function confetti() {
     animate.value = true;
@@ -15,6 +15,6 @@ export default function useConfetti() {
   return {
     animate,
     confetti,
-    confettiText
-  }
+    confettiText,
+  };
 }
diff --git a/docs/.vitepress/theme/composables/useFetchCategories.ts b/docs/.vitepress/theme/composables/useFetchCategories.ts
index 6a34a759df8..89e1b7e2a72 100644
--- a/docs/.vitepress/theme/composables/useFetchCategories.ts
+++ b/docs/.vitepress/theme/composables/useFetchCategories.ts
@@ -1,12 +1,12 @@
-import { useFetch } from "@vueuse/core"
+import { useFetch } from '@vueuse/core';
 
-const useFetchCategories = () => useFetch<Record<string, string[]>>(
-  `${import.meta.env.DEV ? 'http://localhost:3000' : ''}/api/categories`,
-  {
-    immediate:
-      typeof window !== 'undefined'
-      && new URLSearchParams(window.location.search).has('search'),
-  }
-).json()
+const useFetchCategories = () =>
+  useFetch<Record<string, string[]>>(
+    `${import.meta.env.DEV ? 'http://localhost:3000' : ''}/api/categories`,
+    {
+      immediate:
+        typeof window !== 'undefined' && new URLSearchParams(window.location.search).has('search'),
+    },
+  ).json();
 
-export default useFetchCategories
+export default useFetchCategories;
diff --git a/docs/.vitepress/theme/composables/useFetchTags.ts b/docs/.vitepress/theme/composables/useFetchTags.ts
index 6dabe532e63..792cf5bfe92 100644
--- a/docs/.vitepress/theme/composables/useFetchTags.ts
+++ b/docs/.vitepress/theme/composables/useFetchTags.ts
@@ -1,12 +1,12 @@
-import { useFetch } from "@vueuse/core"
+import { useFetch } from '@vueuse/core';
 
-const useFetchTags = () => useFetch<Record<string, string[]>>(
-  `${import.meta.env.DEV ? 'http://localhost:3000' : ''}/api/tags`,
-  {
-    immediate:
-      typeof window !== 'undefined'
-      && new URLSearchParams(window.location.search).has('search'),
-  }
-).json()
+const useFetchTags = () =>
+  useFetch<Record<string, string[]>>(
+    `${import.meta.env.DEV ? 'http://localhost:3000' : ''}/api/tags`,
+    {
+      immediate:
+        typeof window !== 'undefined' && new URLSearchParams(window.location.search).has('search'),
+    },
+  ).json();
 
-export default useFetchTags
+export default useFetchTags;
diff --git a/docs/.vitepress/theme/composables/useIconStyle.ts b/docs/.vitepress/theme/composables/useIconStyle.ts
index 93849867ae0..f080635b686 100644
--- a/docs/.vitepress/theme/composables/useIconStyle.ts
+++ b/docs/.vitepress/theme/composables/useIconStyle.ts
@@ -1,16 +1,14 @@
 /* eslint-disable no-console */
 
-import {
-  ref, inject, Ref
-} from 'vue';
+import { ref, inject, Ref } from 'vue';
 
 export const ICON_STYLE_CONTEXT = Symbol('size');
 
 interface IconSizeContext {
-  size: Ref<number>
-  strokeWidth: Ref<number>
-  color: Ref<string>
-  absoluteStrokeWidth: Ref<boolean>
+  size: Ref<number>;
+  strokeWidth: Ref<number>;
+  color: Ref<string>;
+  absoluteStrokeWidth: Ref<boolean>;
 }
 
 export const STYLE_DEFAULTS = {
@@ -27,7 +25,7 @@ export const iconStyleContext = {
   absoluteStrokeWidth: ref(false),
 };
 
-export function useIconStyleContext(): IconSizeContext{
+export function useIconStyleContext(): IconSizeContext {
   const context = inject<IconSizeContext>(ICON_STYLE_CONTEXT);
 
   if (!context) {
diff --git a/docs/.vitepress/theme/composables/useSearch.ts b/docs/.vitepress/theme/composables/useSearch.ts
index 4bd961cd0a2..85a329d0d45 100644
--- a/docs/.vitepress/theme/composables/useSearch.ts
+++ b/docs/.vitepress/theme/composables/useSearch.ts
@@ -1,13 +1,17 @@
 import Fuse from 'fuse.js';
 import { shallowRef, computed, Ref } from 'vue';
 
-const useSearch = <T>(query: Ref<string>, collection: Ref<T[]>, keys: Fuse.FuseOptionKey<T>[] = []) => {
+const useSearch = <T>(
+  query: Ref<string>,
+  collection: Ref<T[]>,
+  keys: Fuse.FuseOptionKey<T>[] = [],
+) => {
   const index = shallowRef(
     new Fuse(collection.value, {
       threshold: 0.2,
       keys,
-    })
-  )
+    }),
+  );
 
   const results = computed(() => {
     index.value.setCollection(collection.value);
diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts
index 3933bb7d0f8..9ba9b2d0981 100644
--- a/docs/.vitepress/theme/index.ts
+++ b/docs/.vitepress/theme/index.ts
@@ -1,12 +1,12 @@
-import { h } from 'vue'
-import DefaultTheme from 'vitepress/theme'
-import './style.css'
-import { Theme } from 'vitepress'
-import IconsSidebarNavAfter from './layouts/IconsSidebarNavAfter.vue'
-import HomeHeroIconsCard from './components/home/HomeHeroIconsCard.vue'
-import HomeHeroBefore from "./components/home/HomeHeroBefore.vue";
-import { ICON_STYLE_CONTEXT, iconStyleContext } from './composables/useIconStyle'
-import { CATEGORY_VIEW_CONTEXT, categoryViewContext } from './composables/useCategoryView'
+import { h } from 'vue';
+import DefaultTheme from 'vitepress/theme';
+import './style.css';
+import { Theme } from 'vitepress';
+import IconsSidebarNavAfter from './layouts/IconsSidebarNavAfter.vue';
+import HomeHeroIconsCard from './components/home/HomeHeroIconsCard.vue';
+import HomeHeroBefore from './components/home/HomeHeroBefore.vue';
+import { ICON_STYLE_CONTEXT, iconStyleContext } from './composables/useIconStyle';
+import { CATEGORY_VIEW_CONTEXT, categoryViewContext } from './composables/useCategoryView';
 
 const theme: Partial<Theme> = {
   extends: DefaultTheme,
@@ -15,12 +15,12 @@ const theme: Partial<Theme> = {
       'home-hero-before': () => h(HomeHeroBefore),
       'sidebar-nav-after': () => h(IconsSidebarNavAfter),
       'home-hero-image': () => h(HomeHeroIconsCard),
-    })
+    });
   },
   enhanceApp({ app }) {
-    app.provide(ICON_STYLE_CONTEXT, iconStyleContext)
-    app.provide(CATEGORY_VIEW_CONTEXT, categoryViewContext)
-  }
-}
+    app.provide(ICON_STYLE_CONTEXT, iconStyleContext);
+    app.provide(CATEGORY_VIEW_CONTEXT, categoryViewContext);
+  },
+};
 
-export default theme
+export default theme;
diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css
index c09c0315b75..dc77c8c5e37 100644
--- a/docs/.vitepress/theme/style.css
+++ b/docs/.vitepress/theme/style.css
@@ -1,43 +1,43 @@
 :root {
-  --vp-c-brand:  #F56565;
-  --vp-c-brand-light:  #F67373;
-  --vp-c-brand-lighter: #F89191;
-  --vp-c-brand-dark: #DC5A5A;
-  --vp-c-brand-darker: #C45050;
-
-  --vp-c-brand-1: #F67373;
-  --vp-c-brand-2:  #FF7070;
-  --vp-c-brand-3:  #F56565;
-  --vp-c-brand-4: #DC5A5A;
-  --vp-c-brand-5: #C45050;
+  --vp-c-brand: #f56565;
+  --vp-c-brand-light: #f67373;
+  --vp-c-brand-lighter: #f89191;
+  --vp-c-brand-dark: #dc5a5a;
+  --vp-c-brand-darker: #c45050;
+
+  --vp-c-brand-1: #f67373;
+  --vp-c-brand-2: #ff7070;
+  --vp-c-brand-3: #f56565;
+  --vp-c-brand-4: #dc5a5a;
+  --vp-c-brand-5: #c45050;
 
   --vp-c-bg-alt-up: #fff;
   --vp-c-bg-alt-down: #fff;
 
-  --vp-code-editor-plain: #24292E;
-  --vp-code-editor-comment: #6A737D;
-  --vp-code-editor-keyword: #D73A49;
-  --vp-code-editor-tag: #22863A;
-  --vp-code-editor-punctuation: #24292E;
-  --vp-code-editor-definition: #6F42C1;
-  --vp-code-editor-property: #005CC5;
-  --vp-code-editor-static: #F78C6C;
-  --vp-code-editor-string: #032F62;
+  --vp-code-editor-plain: #24292e;
+  --vp-code-editor-comment: #6a737d;
+  --vp-code-editor-keyword: #d73a49;
+  --vp-code-editor-tag: #22863a;
+  --vp-code-editor-punctuation: #24292e;
+  --vp-code-editor-definition: #6f42c1;
+  --vp-code-editor-property: #005cc5;
+  --vp-code-editor-static: #f78c6c;
+  --vp-code-editor-string: #032f62;
 }
 
 .dark {
-  --vp-c-bg-alt-up: #1B1B1D;
-  --vp-c-bg-alt-down: #0F0F10;
+  --vp-c-bg-alt-up: #1b1b1d;
+  --vp-c-bg-alt-down: #0f0f10;
 
-  --vp-code-editor-plain: #E1E4E8;
-  --vp-code-editor-comment: #6A737D;
-  --vp-code-editor-keyword: #F97583;
-  --vp-code-editor-tag: #85E89D;
-  --vp-code-editor-punctuation: #9ECBFF;
-  --vp-code-editor-definition: #B392F0;
-  --vp-code-editor-property: #79B8FF;
-  --vp-code-editor-static: #F78C6C;
-  --vp-code-editor-string: #9ECBFF;
+  --vp-code-editor-plain: #e1e4e8;
+  --vp-code-editor-comment: #6a737d;
+  --vp-code-editor-keyword: #f97583;
+  --vp-code-editor-tag: #85e89d;
+  --vp-code-editor-punctuation: #9ecbff;
+  --vp-code-editor-definition: #b392f0;
+  --vp-code-editor-property: #79b8ff;
+  --vp-code-editor-static: #f78c6c;
+  --vp-code-editor-string: #9ecbff;
 }
 
 .VPNavBarTitle .logo {
@@ -69,7 +69,6 @@
 
 .VPHomeHero .container .main h1.name {
   color: var(--vp-c-text);
-
 }
 .VPHomeHero .container .main h1.name .clip {
   color: inherit;
@@ -82,7 +81,6 @@
   color: var(--vp-c-brand);
 }
 
-
 /*  */
 .VPHomeHero .container .image {
   margin: 0;
@@ -101,14 +99,14 @@
 }
 
 .VPFeature .icon {
-  background-color: var(--vp-c-bg);;
+  background-color: var(--vp-c-bg);
 }
 
-.vp-doc[class*=" _icons_"] > div {
+.vp-doc[class*=' _icons_'] > div {
   max-width: 100%;
 }
 
-.VPDoc:has(.vp-doc[class*=" _icons_"]) > .container > .content{
+.VPDoc:has(.vp-doc[class*=' _icons_']) > .container > .content {
   padding-right: 0;
   padding-left: 0;
 }
@@ -120,7 +118,6 @@
 }
 
 @media (min-width: 960px) {
-
   .VPHomeHero .container .image {
     order: 1;
     margin-bottom: auto;
@@ -141,7 +138,6 @@
   }
 
   .VPHomeHero .container .main h1.name {
-
   }
 }
 
@@ -198,10 +194,10 @@ html:has(* .outline-link:target) {
   transition: background-color 0.25s;
 }
 
-.sp-wrapper .sp-tabs .sp-tab-button[data-active="true"] {
+.sp-wrapper .sp-tabs .sp-tab-button[data-active='true'] {
   color: var(--vp-code-tab-active-text-color);
 }
 
-.sp-wrapper .sp-tabs .sp-tab-button[data-active="true"]:after {
+.sp-wrapper .sp-tabs .sp-tab-button[data-active='true']:after {
   background-color: var(--vp-code-tab-active-bar-color);
 }
diff --git a/docs/.vitepress/theme/types.ts b/docs/.vitepress/theme/types.ts
index 43c89e6e0e6..88a02750b81 100644
--- a/docs/.vitepress/theme/types.ts
+++ b/docs/.vitepress/theme/types.ts
@@ -1,5 +1,5 @@
-export type IconNode = [elementName: string, attrs: Record<string, string>][]
-export type IconNodeWithKeys = [elementName: string, attrs: Record<string, string>, key: string][]
+export type IconNode = [elementName: string, attrs: Record<string, string>][];
+export type IconNodeWithKeys = [elementName: string, attrs: Record<string, string>, key: string][];
 
 export interface IconEntity {
   name: string;
@@ -13,45 +13,44 @@ export interface IconEntity {
 }
 
 export interface Category {
-  name: string
-  title: string
-  icon?: string
-  iconCount: number
-  icons?: IconEntity[]
+  name: string;
+  title: string;
+  icon?: string;
+  iconCount: number;
+  icons?: IconEntity[];
 }
 
 interface Shield {
-  alt: string
-  src: string
-  href: string
+  alt: string;
+  src: string;
+  href: string;
 }
 
 export interface PackageItem {
-  name: string
-  description: string
-  icon: string
-  iconDark: string
-  shields: Shield[]
-  source: string
-  documentation: string
-  order?: number
-  private?: boolean
-  flutter?: object
+  name: string;
+  description: string;
+  icon: string;
+  iconDark: string;
+  shields: Shield[];
+  source: string;
+  documentation: string;
+  order?: number;
+  private?: boolean;
+  flutter?: object;
 }
 
-
 export interface Release {
-  version: string
-  date: string
+  version: string;
+  date: string;
 }
 
 interface ShowcaseItemImage {
-  light: string
-  dark: string
+  light: string;
+  dark: string;
 }
 
 export interface ShowcaseItem {
-  name: string
-  url: string
-  image: ShowcaseItemImage
+  name: string;
+  url: string;
+  image: ShowcaseItemImage;
 }
diff --git a/docs/.vitepress/theme/utils/downloadData.ts b/docs/.vitepress/theme/utils/downloadData.ts
index 4fdcb3a4766..b3f1c586608 100644
--- a/docs/.vitepress/theme/utils/downloadData.ts
+++ b/docs/.vitepress/theme/utils/downloadData.ts
@@ -1,6 +1,6 @@
-export default function downloadData(filename:string, data:string) {
+export default function downloadData(filename: string, data: string) {
   const link = document.createElement('a');
   link.download = filename;
-  link.href = data
+  link.href = data;
   link.click();
 }
diff --git a/docs/.vitepress/theme/utils/getSVGIcon.ts b/docs/.vitepress/theme/utils/getSVGIcon.ts
index 223a8fd13b4..b901c92e9bb 100644
--- a/docs/.vitepress/theme/utils/getSVGIcon.ts
+++ b/docs/.vitepress/theme/utils/getSVGIcon.ts
@@ -9,26 +9,26 @@ const allowedAttrs = [
   'stroke-linecap',
   'stroke-linejoin',
   'class',
-]
+];
 
 export default function getSVGIcon(element?: HTMLElement, attrs?: Record<string, string>) {
-  const svg = element ?? document.querySelector('#previewer svg')
-  if (!svg) return
+  const svg = element ?? document.querySelector('#previewer svg');
+  if (!svg) return;
 
-  const clonedSvg = svg.cloneNode(true) as SVGElement
+  const clonedSvg = svg.cloneNode(true) as SVGElement;
 
   // Filter out attributes that are not allowed in SVGs
   for (const attr of Array.from(clonedSvg.attributes)) {
     if (!allowedAttrs.includes(attr.name)) {
-      clonedSvg.removeAttribute(attr.name)
+      clonedSvg.removeAttribute(attr.name);
     }
   }
 
   for (const [key, value] of Object.entries(attrs ?? {})) {
-    clonedSvg.setAttribute(key, value)
+    clonedSvg.setAttribute(key, value);
   }
 
-  const svgString = new XMLSerializer().serializeToString(clonedSvg)
+  const svgString = new XMLSerializer().serializeToString(clonedSvg);
 
-  return svgString
+  return svgString;
 }
diff --git a/docs/icons/[name].paths.ts b/docs/icons/[name].paths.ts
index f28e520b0c7..4921fa5e3df 100644
--- a/docs/icons/[name].paths.ts
+++ b/docs/icons/[name].paths.ts
@@ -1,23 +1,22 @@
-import relatedIcons from '../.vitepress/data/relatedIcons.json'
-import iconNodes from '../.vitepress/data/iconNodes'
-import * as iconDetails from '../.vitepress/data/iconDetails'
-import { IconEntity } from "../.vitepress/theme/types";
+import relatedIcons from '../.vitepress/data/relatedIcons.json';
+import iconNodes from '../.vitepress/data/iconNodes';
+import * as iconDetails from '../.vitepress/data/iconDetails';
+import { IconEntity } from '../.vitepress/theme/types';
 
 export default {
   paths: async () => {
     return (Object.values(iconDetails) as unknown as IconEntity[]).map((iconEntity) => {
-
       const params = {
         ...iconEntity,
         relatedIcons: relatedIcons[iconEntity.name].map((name: string) => ({
           name,
           iconNode: iconNodes[name],
-        }))
-      }
+        })),
+      };
 
       return {
         params,
-      }
-    })
-  }
-}
+      };
+    });
+  },
+};
diff --git a/docs/icons/categories.data.ts b/docs/icons/categories.data.ts
index 0e3984875ab..a59e3f394dd 100644
--- a/docs/icons/categories.data.ts
+++ b/docs/icons/categories.data.ts
@@ -1,13 +1,13 @@
-import { getAllCategoryFiles } from '../.vitepress/lib/categories'
-import iconMetaData from '../.vitepress/data/iconMetaData'
+import { getAllCategoryFiles } from '../.vitepress/lib/categories';
+import iconMetaData from '../.vitepress/data/iconMetaData';
 
 export default {
   async load() {
     return {
       categories: getAllCategoryFiles(),
       iconCategories: Object.fromEntries(
-        Object.entries(iconMetaData).map(([name, { categories }]) => [name, categories])
+        Object.entries(iconMetaData).map(([name, { categories }]) => [name, categories]),
       ),
-    }
-  }
-}
+    };
+  },
+};
diff --git a/docs/icons/codeExamples.data.ts b/docs/icons/codeExamples.data.ts
index 708ab4d344f..ce8ac594194 100644
--- a/docs/icons/codeExamples.data.ts
+++ b/docs/icons/codeExamples.data.ts
@@ -1,13 +1,13 @@
-import createCodeExamples from '../.vitepress/lib/createCodeExamples'
+import createCodeExamples from '../.vitepress/lib/createCodeExamples';
 
 export default {
   async load() {
-    const codeExamples = await createCodeExamples()
+    const codeExamples = await createCodeExamples();
 
     // const randomIcons = Array.from({ length: 200 }, () => getRandomItem(icons))
 
     return {
       codeExamples,
-    }
-  }
-}
+    };
+  },
+};
diff --git a/docs/icons/icons.data.ts b/docs/icons/icons.data.ts
index 77ddacb2259..b5c50019d69 100644
--- a/docs/icons/icons.data.ts
+++ b/docs/icons/icons.data.ts
@@ -1,9 +1,9 @@
-import iconNodes from '../.vitepress/data/iconNodes'
+import iconNodes from '../.vitepress/data/iconNodes';
 
 export default {
   async load() {
     return {
       icons: Object.entries(iconNodes).map(([name, iconNode]) => ({ name, iconNode })),
-    }
-  }
-}
+    };
+  },
+};
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
index ab7ca6b47e1..9a675fb7f4a 100644
--- a/docs/tsconfig.json
+++ b/docs/tsconfig.json
@@ -4,6 +4,6 @@
     "jsx": "react",
     "allowImportingTsExtensions": true,
     "allowSyntheticDefaultImports": true,
-    "noEmit": true
-  }
+    "noEmit": true,
+  },
 }
diff --git a/icons/a-arrow-down.json b/icons/a-arrow-down.json
index 5be35ab27ee..90144eed90b 100644
--- a/icons/a-arrow-down.json
+++ b/icons/a-arrow-down.json
@@ -17,4 +17,4 @@
     "text",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/a-arrow-up.json b/icons/a-arrow-up.json
index 2e1f9a9a411..7c4c66bacc0 100644
--- a/icons/a-arrow-up.json
+++ b/icons/a-arrow-up.json
@@ -18,4 +18,4 @@
     "text",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/a-large-small.json b/icons/a-large-small.json
index 5ae799bc2e8..c957ea8e6e4 100644
--- a/icons/a-large-small.json
+++ b/icons/a-large-small.json
@@ -16,4 +16,4 @@
     "text",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/accessibility.json b/icons/accessibility.json
index 2ee3a2cf8af..1d77d1cd6f9 100644
--- a/icons/accessibility.json
+++ b/icons/accessibility.json
@@ -14,4 +14,4 @@
     "accessibility",
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/activity-square.json b/icons/activity-square.json
index fb1e21372f2..38fdcf690a8 100644
--- a/icons/activity-square.json
+++ b/icons/activity-square.json
@@ -40,4 +40,4 @@
     "multimedia",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/activity.json b/icons/activity.json
index 0516649a02f..d3e2abd7391 100644
--- a/icons/activity.json
+++ b/icons/activity.json
@@ -39,4 +39,4 @@
     "science",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/air-vent.json b/icons/air-vent.json
index 615bac23de9..373de958f85 100644
--- a/icons/air-vent.json
+++ b/icons/air-vent.json
@@ -13,4 +13,4 @@
   "categories": [
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/airplay.json b/icons/airplay.json
index b28b85af9e7..0c9db159110 100644
--- a/icons/airplay.json
+++ b/icons/airplay.json
@@ -18,4 +18,4 @@
     "devices",
     "brands"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/alarm-clock-off.json b/icons/alarm-clock-off.json
index 4a7f920d97e..427b2dae317 100644
--- a/icons/alarm-clock-off.json
+++ b/icons/alarm-clock-off.json
@@ -15,4 +15,4 @@
     "notifications",
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/alarm-clock.json b/icons/alarm-clock.json
index cf3e95f6a52..c0ba0d11448 100644
--- a/icons/alarm-clock.json
+++ b/icons/alarm-clock.json
@@ -15,4 +15,4 @@
     "notifications",
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/alarm-smoke.json b/icons/alarm-smoke.json
index 48c37d40a33..90607d57eaf 100644
--- a/icons/alarm-smoke.json
+++ b/icons/alarm-smoke.json
@@ -18,4 +18,4 @@
     "devices",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/album.json b/icons/album.json
index c8cb4d03a5a..69c60346677 100644
--- a/icons/album.json
+++ b/icons/album.json
@@ -13,4 +13,4 @@
     "photography",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/alert-circle.json b/icons/alert-circle.json
index d7c94b68fa2..f420ef473c2 100644
--- a/icons/alert-circle.json
+++ b/icons/alert-circle.json
@@ -14,4 +14,4 @@
     "notifications",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/alert-octagon.json b/icons/alert-octagon.json
index d7c94b68fa2..f420ef473c2 100644
--- a/icons/alert-octagon.json
+++ b/icons/alert-octagon.json
@@ -14,4 +14,4 @@
     "notifications",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/alert-triangle.json b/icons/alert-triangle.json
index 60dc691d40c..3572a2c00c4 100644
--- a/icons/alert-triangle.json
+++ b/icons/alert-triangle.json
@@ -18,4 +18,4 @@
     "shapes",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-center-horizontal.json b/icons/align-center-horizontal.json
index 6b0b3c403e0..49310a5fdbb 100644
--- a/icons/align-center-horizontal.json
+++ b/icons/align-center-horizontal.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-center-vertical.json b/icons/align-center-vertical.json
index 6b0b3c403e0..49310a5fdbb 100644
--- a/icons/align-center-vertical.json
+++ b/icons/align-center-vertical.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-center.json b/icons/align-center.json
index ecdc1d8a5c0..d97abe04104 100644
--- a/icons/align-center.json
+++ b/icons/align-center.json
@@ -12,4 +12,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-end-horizontal.json b/icons/align-end-horizontal.json
index d8384487aa1..ebd62bedde6 100644
--- a/icons/align-end-horizontal.json
+++ b/icons/align-end-horizontal.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-end-vertical.json b/icons/align-end-vertical.json
index 434ef9aec8f..507f69b3013 100644
--- a/icons/align-end-vertical.json
+++ b/icons/align-end-vertical.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-distribute-center.json b/icons/align-horizontal-distribute-center.json
index 36e01bcf08d..8b6ab37d1de 100644
--- a/icons/align-horizontal-distribute-center.json
+++ b/icons/align-horizontal-distribute-center.json
@@ -15,4 +15,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-distribute-end.json b/icons/align-horizontal-distribute-end.json
index 2693f501817..2331538b3bf 100644
--- a/icons/align-horizontal-distribute-end.json
+++ b/icons/align-horizontal-distribute-end.json
@@ -13,4 +13,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-distribute-start.json b/icons/align-horizontal-distribute-start.json
index 2e92aaa1f9c..d3c2f230cfa 100644
--- a/icons/align-horizontal-distribute-start.json
+++ b/icons/align-horizontal-distribute-start.json
@@ -13,4 +13,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-justify-center.json b/icons/align-horizontal-justify-center.json
index e41ff6764f4..19037bd1e5f 100644
--- a/icons/align-horizontal-justify-center.json
+++ b/icons/align-horizontal-justify-center.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-justify-end.json b/icons/align-horizontal-justify-end.json
index 95399502078..d2146bad7f5 100644
--- a/icons/align-horizontal-justify-end.json
+++ b/icons/align-horizontal-justify-end.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-justify-start.json b/icons/align-horizontal-justify-start.json
index 4aed97a1094..00ff6fa9055 100644
--- a/icons/align-horizontal-justify-start.json
+++ b/icons/align-horizontal-justify-start.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-space-around.json b/icons/align-horizontal-space-around.json
index 4c74903fa59..6b8dbb2acc0 100644
--- a/icons/align-horizontal-space-around.json
+++ b/icons/align-horizontal-space-around.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-horizontal-space-between.json b/icons/align-horizontal-space-between.json
index ca0eff3804f..4161150a0c0 100644
--- a/icons/align-horizontal-space-between.json
+++ b/icons/align-horizontal-space-between.json
@@ -13,4 +13,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-justify.json b/icons/align-justify.json
index bd1087d1625..a25f25e9e2f 100644
--- a/icons/align-justify.json
+++ b/icons/align-justify.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-left.json b/icons/align-left.json
index 01a088d2138..8dd68c2dae5 100644
--- a/icons/align-left.json
+++ b/icons/align-left.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-right.json b/icons/align-right.json
index cba3a5a3832..6c5f625827a 100644
--- a/icons/align-right.json
+++ b/icons/align-right.json
@@ -12,4 +12,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-start-horizontal.json b/icons/align-start-horizontal.json
index 5e962c1a072..12282fad7c0 100644
--- a/icons/align-start-horizontal.json
+++ b/icons/align-start-horizontal.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-start-vertical.json b/icons/align-start-vertical.json
index 4aed97a1094..00ff6fa9055 100644
--- a/icons/align-start-vertical.json
+++ b/icons/align-start-vertical.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-distribute-center.json b/icons/align-vertical-distribute-center.json
index 6cbaeb0c088..88bd116c71c 100644
--- a/icons/align-vertical-distribute-center.json
+++ b/icons/align-vertical-distribute-center.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-distribute-end.json b/icons/align-vertical-distribute-end.json
index 4532b932d5f..49afa96c187 100644
--- a/icons/align-vertical-distribute-end.json
+++ b/icons/align-vertical-distribute-end.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-distribute-start.json b/icons/align-vertical-distribute-start.json
index 5e962c1a072..12282fad7c0 100644
--- a/icons/align-vertical-distribute-start.json
+++ b/icons/align-vertical-distribute-start.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-justify-center.json b/icons/align-vertical-justify-center.json
index 4c74903fa59..6b8dbb2acc0 100644
--- a/icons/align-vertical-justify-center.json
+++ b/icons/align-vertical-justify-center.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-justify-end.json b/icons/align-vertical-justify-end.json
index fad140365be..37bc0584440 100644
--- a/icons/align-vertical-justify-end.json
+++ b/icons/align-vertical-justify-end.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-justify-start.json b/icons/align-vertical-justify-start.json
index 7c92fff9073..804ff5eb126 100644
--- a/icons/align-vertical-justify-start.json
+++ b/icons/align-vertical-justify-start.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-space-around.json b/icons/align-vertical-space-around.json
index 4c74903fa59..6b8dbb2acc0 100644
--- a/icons/align-vertical-space-around.json
+++ b/icons/align-vertical-space-around.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/align-vertical-space-between.json b/icons/align-vertical-space-between.json
index 4c74903fa59..6b8dbb2acc0 100644
--- a/icons/align-vertical-space-between.json
+++ b/icons/align-vertical-space-between.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ampersand.json b/icons/ampersand.json
index e7a8536e189..d93a059218a 100644
--- a/icons/ampersand.json
+++ b/icons/ampersand.json
@@ -17,4 +17,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ampersands.json b/icons/ampersands.json
index 4b671f591e6..7c213796f45 100644
--- a/icons/ampersands.json
+++ b/icons/ampersands.json
@@ -15,4 +15,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/anchor.json b/icons/anchor.json
index eb66097813d..acfbdb57abe 100644
--- a/icons/anchor.json
+++ b/icons/anchor.json
@@ -13,4 +13,4 @@
     "text",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/angry.json b/icons/angry.json
index 404ae9259b8..dc35a338be0 100644
--- a/icons/angry.json
+++ b/icons/angry.json
@@ -13,4 +13,4 @@
   "categories": [
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/annoyed.json b/icons/annoyed.json
index 6e3afbae54b..47f8d376c7b 100644
--- a/icons/annoyed.json
+++ b/icons/annoyed.json
@@ -12,4 +12,4 @@
   "categories": [
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/antenna.json b/icons/antenna.json
index 53af8e1a225..32576401740 100644
--- a/icons/antenna.json
+++ b/icons/antenna.json
@@ -28,4 +28,4 @@
     "multimedia",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/anvil.json b/icons/anvil.json
index 17a0043d596..d8dc16412d1 100644
--- a/icons/anvil.json
+++ b/icons/anvil.json
@@ -19,4 +19,4 @@
     "tools",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/aperture.json b/icons/aperture.json
index 0586ac53394..ec13b672e42 100644
--- a/icons/aperture.json
+++ b/icons/aperture.json
@@ -14,4 +14,4 @@
   "categories": [
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/app-window.json b/icons/app-window.json
index 1d37e37e8f8..a7908e79ce9 100644
--- a/icons/app-window.json
+++ b/icons/app-window.json
@@ -13,4 +13,4 @@
     "files",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/apple.json b/icons/apple.json
index 1bb1288ea03..e89d0037e0c 100644
--- a/icons/apple.json
+++ b/icons/apple.json
@@ -10,4 +10,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/archive-restore.json b/icons/archive-restore.json
index d35e7a849e7..3f0c99c76f6 100644
--- a/icons/archive-restore.json
+++ b/icons/archive-restore.json
@@ -17,4 +17,4 @@
     "files",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/archive-x.json b/icons/archive-x.json
index 1a6428c7daf..4921384aa25 100644
--- a/icons/archive-x.json
+++ b/icons/archive-x.json
@@ -15,4 +15,4 @@
     "files",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/archive.json b/icons/archive.json
index d35449deab7..d9dd673b238 100644
--- a/icons/archive.json
+++ b/icons/archive.json
@@ -17,4 +17,4 @@
     "files",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/area-chart.json b/icons/area-chart.json
index a3c7e7b9d95..698e045843a 100644
--- a/icons/area-chart.json
+++ b/icons/area-chart.json
@@ -12,4 +12,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/armchair.json b/icons/armchair.json
index 9a8be2a8959..9ebdf13c672 100644
--- a/icons/armchair.json
+++ b/icons/armchair.json
@@ -15,4 +15,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-down-dash.json b/icons/arrow-big-down-dash.json
index 1eccd78fa00..ed2ea84efcd 100644
--- a/icons/arrow-big-down-dash.json
+++ b/icons/arrow-big-down-dash.json
@@ -18,4 +18,4 @@
     "gaming",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-down.json b/icons/arrow-big-down.json
index 93ccfd42511..073200725d6 100644
--- a/icons/arrow-big-down.json
+++ b/icons/arrow-big-down.json
@@ -16,4 +16,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-left-dash.json b/icons/arrow-big-left-dash.json
index b70706a43bc..9f679ec0caf 100644
--- a/icons/arrow-big-left-dash.json
+++ b/icons/arrow-big-left-dash.json
@@ -17,4 +17,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-left.json b/icons/arrow-big-left.json
index 8717e49cd79..46a6e27fe26 100644
--- a/icons/arrow-big-left.json
+++ b/icons/arrow-big-left.json
@@ -18,4 +18,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-right-dash.json b/icons/arrow-big-right-dash.json
index 13ff78e9ba2..253974286d3 100644
--- a/icons/arrow-big-right-dash.json
+++ b/icons/arrow-big-right-dash.json
@@ -17,4 +17,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-right.json b/icons/arrow-big-right.json
index 63f1f8355cc..ac5b00a3ba1 100644
--- a/icons/arrow-big-right.json
+++ b/icons/arrow-big-right.json
@@ -18,4 +18,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-up-dash.json b/icons/arrow-big-up-dash.json
index e13ab55b706..b30a10cf65c 100644
--- a/icons/arrow-big-up-dash.json
+++ b/icons/arrow-big-up-dash.json
@@ -24,4 +24,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-big-up.json b/icons/arrow-big-up.json
index 603f7aa5abd..829b6d8fe32 100644
--- a/icons/arrow-big-up.json
+++ b/icons/arrow-big-up.json
@@ -23,4 +23,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-0-1.json b/icons/arrow-down-0-1.json
index 8b9f6666d7b..18bff2f117e 100644
--- a/icons/arrow-down-0-1.json
+++ b/icons/arrow-down-0-1.json
@@ -17,4 +17,4 @@
   "aliases": [
     "arrow-down-01"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-1-0.json b/icons/arrow-down-1-0.json
index 102dc64389b..9025aea0641 100644
--- a/icons/arrow-down-1-0.json
+++ b/icons/arrow-down-1-0.json
@@ -17,4 +17,4 @@
   "aliases": [
     "arrow-down-10"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-a-z.json b/icons/arrow-down-a-z.json
index 3f95924cfcc..29669350cb3 100644
--- a/icons/arrow-down-a-z.json
+++ b/icons/arrow-down-a-z.json
@@ -17,4 +17,4 @@
   "aliases": [
     "arrow-down-az"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-circle.json b/icons/arrow-down-circle.json
index 67f8ddb5793..782e25bde73 100644
--- a/icons/arrow-down-circle.json
+++ b/icons/arrow-down-circle.json
@@ -18,4 +18,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-from-line.json b/icons/arrow-down-from-line.json
index 1c5099c71cd..0c6088b8b90 100644
--- a/icons/arrow-down-from-line.json
+++ b/icons/arrow-down-from-line.json
@@ -19,4 +19,4 @@
     "navigation",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-left-from-circle.json b/icons/arrow-down-left-from-circle.json
index e99657e6683..70746df0c7e 100644
--- a/icons/arrow-down-left-from-circle.json
+++ b/icons/arrow-down-left-from-circle.json
@@ -14,4 +14,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-left-from-square.json b/icons/arrow-down-left-from-square.json
index 1eb0ee9fd54..bd45ac31421 100644
--- a/icons/arrow-down-left-from-square.json
+++ b/icons/arrow-down-left-from-square.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-left-square.json b/icons/arrow-down-left-square.json
index 79f9b70083d..8bbf6746153 100644
--- a/icons/arrow-down-left-square.json
+++ b/icons/arrow-down-left-square.json
@@ -18,4 +18,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-left.json b/icons/arrow-down-left.json
index f5107b70170..523ef497f44 100644
--- a/icons/arrow-down-left.json
+++ b/icons/arrow-down-left.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-narrow-wide.json b/icons/arrow-down-narrow-wide.json
index 9d40674f659..9dadea23458 100644
--- a/icons/arrow-down-narrow-wide.json
+++ b/icons/arrow-down-narrow-wide.json
@@ -13,4 +13,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-right-from-circle.json b/icons/arrow-down-right-from-circle.json
index 9b4d3f5116b..96accc7677f 100644
--- a/icons/arrow-down-right-from-circle.json
+++ b/icons/arrow-down-right-from-circle.json
@@ -14,4 +14,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-right-from-square.json b/icons/arrow-down-right-from-square.json
index 8e33a2fd3d3..8100c1f63a9 100644
--- a/icons/arrow-down-right-from-square.json
+++ b/icons/arrow-down-right-from-square.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-right-square.json b/icons/arrow-down-right-square.json
index 171a37a7496..82b78098654 100644
--- a/icons/arrow-down-right-square.json
+++ b/icons/arrow-down-right-square.json
@@ -18,4 +18,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-right.json b/icons/arrow-down-right.json
index 4d9746d8cbc..853f5ffb0d0 100644
--- a/icons/arrow-down-right.json
+++ b/icons/arrow-down-right.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-square.json b/icons/arrow-down-square.json
index 69e85aca72a..970804e485e 100644
--- a/icons/arrow-down-square.json
+++ b/icons/arrow-down-square.json
@@ -20,4 +20,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-to-dot.json b/icons/arrow-down-to-dot.json
index 570a1e0e5ac..de217882a95 100644
--- a/icons/arrow-down-to-dot.json
+++ b/icons/arrow-down-to-dot.json
@@ -17,4 +17,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-to-line.json b/icons/arrow-down-to-line.json
index e93a952d968..2a4fc520b1b 100644
--- a/icons/arrow-down-to-line.json
+++ b/icons/arrow-down-to-line.json
@@ -23,4 +23,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-up.json b/icons/arrow-down-up.json
index 1d376e14e07..81fe0106f0b 100644
--- a/icons/arrow-down-up.json
+++ b/icons/arrow-down-up.json
@@ -22,4 +22,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-wide-narrow.json b/icons/arrow-down-wide-narrow.json
index 0df2e5e4e08..aae177f8389 100644
--- a/icons/arrow-down-wide-narrow.json
+++ b/icons/arrow-down-wide-narrow.json
@@ -18,4 +18,4 @@
   "aliases": [
     "sort-desc"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down-z-a.json b/icons/arrow-down-z-a.json
index fdf206aef9f..e3dfe1d9bc2 100644
--- a/icons/arrow-down-z-a.json
+++ b/icons/arrow-down-z-a.json
@@ -18,4 +18,4 @@
   "aliases": [
     "arrow-down-za"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-down.json b/icons/arrow-down.json
index a535015758d..1ead570c102 100644
--- a/icons/arrow-down.json
+++ b/icons/arrow-down.json
@@ -14,4 +14,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-left-circle.json b/icons/arrow-left-circle.json
index bd9213e999c..2c774bfd8a4 100644
--- a/icons/arrow-left-circle.json
+++ b/icons/arrow-left-circle.json
@@ -20,4 +20,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-left-from-line.json b/icons/arrow-left-from-line.json
index 0faaff34143..f298d92ecd3 100644
--- a/icons/arrow-left-from-line.json
+++ b/icons/arrow-left-from-line.json
@@ -18,4 +18,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-left-right.json b/icons/arrow-left-right.json
index e3778b65b6c..eb85de90769 100644
--- a/icons/arrow-left-right.json
+++ b/icons/arrow-left-right.json
@@ -21,4 +21,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-left-square.json b/icons/arrow-left-square.json
index 725ec4f2673..f7311a053ce 100644
--- a/icons/arrow-left-square.json
+++ b/icons/arrow-left-square.json
@@ -20,4 +20,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-left-to-line.json b/icons/arrow-left-to-line.json
index 25cf9882daa..b42d92c6137 100644
--- a/icons/arrow-left-to-line.json
+++ b/icons/arrow-left-to-line.json
@@ -18,4 +18,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-left.json b/icons/arrow-left.json
index 0b1e6ffdc52..d1dc1695a77 100644
--- a/icons/arrow-left.json
+++ b/icons/arrow-left.json
@@ -15,4 +15,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-right-circle.json b/icons/arrow-right-circle.json
index 57ddedbae15..f768c6cd799 100644
--- a/icons/arrow-right-circle.json
+++ b/icons/arrow-right-circle.json
@@ -20,4 +20,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-right-from-line.json b/icons/arrow-right-from-line.json
index 1b25ae33f1b..91f17b21e7b 100644
--- a/icons/arrow-right-from-line.json
+++ b/icons/arrow-right-from-line.json
@@ -19,4 +19,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-right-left.json b/icons/arrow-right-left.json
index 4f0c84576da..0a17e02cd30 100644
--- a/icons/arrow-right-left.json
+++ b/icons/arrow-right-left.json
@@ -19,4 +19,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-right-square.json b/icons/arrow-right-square.json
index c7a112b1269..93aa2e0c79e 100644
--- a/icons/arrow-right-square.json
+++ b/icons/arrow-right-square.json
@@ -20,4 +20,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-right-to-line.json b/icons/arrow-right-to-line.json
index 313a591c41b..b6ccf6d2b51 100644
--- a/icons/arrow-right-to-line.json
+++ b/icons/arrow-right-to-line.json
@@ -23,4 +23,4 @@
     "navigation",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-right.json b/icons/arrow-right.json
index 4e1214769eb..27af120f909 100644
--- a/icons/arrow-right.json
+++ b/icons/arrow-right.json
@@ -15,4 +15,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-0-1.json b/icons/arrow-up-0-1.json
index 7c4d4153f7e..f6cf19afb06 100644
--- a/icons/arrow-up-0-1.json
+++ b/icons/arrow-up-0-1.json
@@ -17,4 +17,4 @@
   "aliases": [
     "arrow-up-01"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-1-0.json b/icons/arrow-up-1-0.json
index 63edc499ab7..f82f835b68d 100644
--- a/icons/arrow-up-1-0.json
+++ b/icons/arrow-up-1-0.json
@@ -17,4 +17,4 @@
   "aliases": [
     "arrow-up-10"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-a-z.json b/icons/arrow-up-a-z.json
index 41e7a6d4442..993445caab8 100644
--- a/icons/arrow-up-a-z.json
+++ b/icons/arrow-up-a-z.json
@@ -17,4 +17,4 @@
   "aliases": [
     "arrow-up-az"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-circle.json b/icons/arrow-up-circle.json
index 68e35bfe9e9..191ce45db1d 100644
--- a/icons/arrow-up-circle.json
+++ b/icons/arrow-up-circle.json
@@ -17,4 +17,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-down.json b/icons/arrow-up-down.json
index 9a9a5aa1da0..b3426f02fe8 100644
--- a/icons/arrow-up-down.json
+++ b/icons/arrow-up-down.json
@@ -22,4 +22,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-from-dot.json b/icons/arrow-up-from-dot.json
index ba6addd2a11..b9542a1aa38 100644
--- a/icons/arrow-up-from-dot.json
+++ b/icons/arrow-up-from-dot.json
@@ -15,4 +15,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-from-line.json b/icons/arrow-up-from-line.json
index d977a8dabe8..72064df2719 100644
--- a/icons/arrow-up-from-line.json
+++ b/icons/arrow-up-from-line.json
@@ -22,4 +22,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-left-from-circle.json b/icons/arrow-up-left-from-circle.json
index a01a3ec33ce..665cb7d341d 100644
--- a/icons/arrow-up-left-from-circle.json
+++ b/icons/arrow-up-left-from-circle.json
@@ -18,4 +18,4 @@
     "maps",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-left-from-square.json b/icons/arrow-up-left-from-square.json
index d5e9a8f7309..11a81894f94 100644
--- a/icons/arrow-up-left-from-square.json
+++ b/icons/arrow-up-left-from-square.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-left-square.json b/icons/arrow-up-left-square.json
index 3968836cedb..f61bf128730 100644
--- a/icons/arrow-up-left-square.json
+++ b/icons/arrow-up-left-square.json
@@ -16,4 +16,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-left.json b/icons/arrow-up-left.json
index 547e39152ee..0540698148a 100644
--- a/icons/arrow-up-left.json
+++ b/icons/arrow-up-left.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-narrow-wide.json b/icons/arrow-up-narrow-wide.json
index 3d289556d4e..f3e66dd5917 100644
--- a/icons/arrow-up-narrow-wide.json
+++ b/icons/arrow-up-narrow-wide.json
@@ -19,4 +19,4 @@
   "aliases": [
     "sort-asc"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-right-from-circle.json b/icons/arrow-up-right-from-circle.json
index f5877dba52f..796f79b9262 100644
--- a/icons/arrow-up-right-from-circle.json
+++ b/icons/arrow-up-right-from-circle.json
@@ -14,4 +14,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-right-from-square.json b/icons/arrow-up-right-from-square.json
index 0b8bad8e6b2..8bcb21f0efa 100644
--- a/icons/arrow-up-right-from-square.json
+++ b/icons/arrow-up-right-from-square.json
@@ -17,4 +17,4 @@
     "navigation",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-right-square.json b/icons/arrow-up-right-square.json
index cbb57807639..e58b726d14c 100644
--- a/icons/arrow-up-right-square.json
+++ b/icons/arrow-up-right-square.json
@@ -18,4 +18,4 @@
     "shapes",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-right.json b/icons/arrow-up-right.json
index b2ce472138a..660eddf713e 100644
--- a/icons/arrow-up-right.json
+++ b/icons/arrow-up-right.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-square.json b/icons/arrow-up-square.json
index 77510b2ef71..f2db89e77b1 100644
--- a/icons/arrow-up-square.json
+++ b/icons/arrow-up-square.json
@@ -18,4 +18,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-to-line.json b/icons/arrow-up-to-line.json
index 09bc14ac16a..4ff0dd53947 100644
--- a/icons/arrow-up-to-line.json
+++ b/icons/arrow-up-to-line.json
@@ -18,4 +18,4 @@
     "navigation",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-wide-narrow.json b/icons/arrow-up-wide-narrow.json
index d2ed84b3595..39612048b11 100644
--- a/icons/arrow-up-wide-narrow.json
+++ b/icons/arrow-up-wide-narrow.json
@@ -13,4 +13,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up-z-a.json b/icons/arrow-up-z-a.json
index 93b30120314..a327cee92e5 100644
--- a/icons/arrow-up-z-a.json
+++ b/icons/arrow-up-z-a.json
@@ -18,4 +18,4 @@
   "aliases": [
     "arrow-up-za"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrow-up.json b/icons/arrow-up.json
index e3086d5626b..c3c48fec4c5 100644
--- a/icons/arrow-up.json
+++ b/icons/arrow-up.json
@@ -13,4 +13,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/arrows-up-from-line.json b/icons/arrows-up-from-line.json
index 8514707e1d6..8dbbf6a4a6e 100644
--- a/icons/arrows-up-from-line.json
+++ b/icons/arrows-up-from-line.json
@@ -20,4 +20,4 @@
     "transportation",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/asterisk.json b/icons/asterisk.json
index 16eff394d7d..f099fa79f11 100644
--- a/icons/asterisk.json
+++ b/icons/asterisk.json
@@ -20,4 +20,4 @@
     "maths",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/at-sign.json b/icons/at-sign.json
index c524f76b3d7..1348b1b780c 100644
--- a/icons/at-sign.json
+++ b/icons/at-sign.json
@@ -17,4 +17,4 @@
     "text",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/audio-lines.json b/icons/audio-lines.json
index 97260ed69c3..11fb90d7faf 100644
--- a/icons/audio-lines.json
+++ b/icons/audio-lines.json
@@ -32,4 +32,4 @@
     "multimedia",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/award.json b/icons/award.json
index fcaf074af8a..7dc7a676356 100644
--- a/icons/award.json
+++ b/icons/award.json
@@ -16,4 +16,4 @@
     "sports",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/axe.json b/icons/axe.json
index 01391c36a23..6fc45473688 100644
--- a/icons/axe.json
+++ b/icons/axe.json
@@ -25,4 +25,4 @@
     "tools",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/axis-3d.json b/icons/axis-3d.json
index e92d8a811df..4e9ff43b8ea 100644
--- a/icons/axis-3d.json
+++ b/icons/axis-3d.json
@@ -15,4 +15,4 @@
   "aliases": [
     "axis-3-d"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/baby.json b/icons/baby.json
index 3f14c9c98be..3a9ab243360 100644
--- a/icons/baby.json
+++ b/icons/baby.json
@@ -13,4 +13,4 @@
     "accessibility",
     "people"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/backpack.json b/icons/backpack.json
index a7b723f86ae..a3356070e40 100644
--- a/icons/backpack.json
+++ b/icons/backpack.json
@@ -16,4 +16,4 @@
     "photography",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-alert.json b/icons/badge-alert.json
index 89e5a5c2e9d..043186d15ad 100644
--- a/icons/badge-alert.json
+++ b/icons/badge-alert.json
@@ -17,4 +17,4 @@
     "social",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-cent.json b/icons/badge-cent.json
index 2e6e9b458f7..981488ef382 100644
--- a/icons/badge-cent.json
+++ b/icons/badge-cent.json
@@ -29,4 +29,4 @@
     "account",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-check.json b/icons/badge-check.json
index 60d862babed..09018aaec4d 100644
--- a/icons/badge-check.json
+++ b/icons/badge-check.json
@@ -4,7 +4,9 @@
     "karsa-mistmere",
     "jguddas"
   ],
-  "aliases": ["verified"],
+  "aliases": [
+    "verified"
+  ],
   "tags": [
     "verified",
     "check"
diff --git a/icons/badge-dollar-sign.json b/icons/badge-dollar-sign.json
index 99bf5bc694f..67949367f85 100644
--- a/icons/badge-dollar-sign.json
+++ b/icons/badge-dollar-sign.json
@@ -27,4 +27,4 @@
     "account",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-euro.json b/icons/badge-euro.json
index bc73ae41ff8..96599207b56 100644
--- a/icons/badge-euro.json
+++ b/icons/badge-euro.json
@@ -25,4 +25,4 @@
     "account",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-help.json b/icons/badge-help.json
index 90210039625..e462ef37393 100644
--- a/icons/badge-help.json
+++ b/icons/badge-help.json
@@ -15,4 +15,4 @@
     "social",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-indian-rupee.json b/icons/badge-indian-rupee.json
index e9d89c225fa..c5c4ba778e3 100644
--- a/icons/badge-indian-rupee.json
+++ b/icons/badge-indian-rupee.json
@@ -26,4 +26,4 @@
     "account",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-info.json b/icons/badge-info.json
index 90210039625..e462ef37393 100644
--- a/icons/badge-info.json
+++ b/icons/badge-info.json
@@ -15,4 +15,4 @@
     "social",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-minus.json b/icons/badge-minus.json
index e5c0cee4325..80522be0915 100644
--- a/icons/badge-minus.json
+++ b/icons/badge-minus.json
@@ -16,4 +16,4 @@
     "social",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-percent.json b/icons/badge-percent.json
index 34bf9e2313f..2529c91d979 100644
--- a/icons/badge-percent.json
+++ b/icons/badge-percent.json
@@ -22,4 +22,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-plus.json b/icons/badge-plus.json
index 59292c7b01b..d3f182f8dba 100644
--- a/icons/badge-plus.json
+++ b/icons/badge-plus.json
@@ -16,4 +16,4 @@
     "social",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-pound-sterling.json b/icons/badge-pound-sterling.json
index 993dc8cb98a..5fd90f576e5 100644
--- a/icons/badge-pound-sterling.json
+++ b/icons/badge-pound-sterling.json
@@ -27,4 +27,4 @@
     "account",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-russian-ruble.json b/icons/badge-russian-ruble.json
index 272a1f4a715..278f331a6b1 100644
--- a/icons/badge-russian-ruble.json
+++ b/icons/badge-russian-ruble.json
@@ -26,4 +26,4 @@
     "account",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-swiss-franc.json b/icons/badge-swiss-franc.json
index 50308e2131c..cac722e0f45 100644
--- a/icons/badge-swiss-franc.json
+++ b/icons/badge-swiss-franc.json
@@ -26,4 +26,4 @@
     "account",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge-x.json b/icons/badge-x.json
index b21d516833a..bd0cb6cad70 100644
--- a/icons/badge-x.json
+++ b/icons/badge-x.json
@@ -16,4 +16,4 @@
     "social",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/badge.json b/icons/badge.json
index 4e8dc837e88..66132fef9c6 100644
--- a/icons/badge.json
+++ b/icons/badge.json
@@ -14,4 +14,4 @@
     "social",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/baggage-claim.json b/icons/baggage-claim.json
index 00addd60871..93767524fa6 100644
--- a/icons/baggage-claim.json
+++ b/icons/baggage-claim.json
@@ -16,4 +16,4 @@
     "transportation",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/banana.json b/icons/banana.json
index 1bb1288ea03..e89d0037e0c 100644
--- a/icons/banana.json
+++ b/icons/banana.json
@@ -10,4 +10,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/banknote.json b/icons/banknote.json
index c70558d50cb..18aa12075b5 100644
--- a/icons/banknote.json
+++ b/icons/banknote.json
@@ -13,4 +13,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bar-chart-2.json b/icons/bar-chart-2.json
index 03585694923..fa4786ce2e5 100644
--- a/icons/bar-chart-2.json
+++ b/icons/bar-chart-2.json
@@ -12,4 +12,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bar-chart-3.json b/icons/bar-chart-3.json
index 45486fc5613..f2339bbf073 100644
--- a/icons/bar-chart-3.json
+++ b/icons/bar-chart-3.json
@@ -12,4 +12,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bar-chart-4.json b/icons/bar-chart-4.json
index 45486fc5613..f2339bbf073 100644
--- a/icons/bar-chart-4.json
+++ b/icons/bar-chart-4.json
@@ -12,4 +12,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bar-chart-big.json b/icons/bar-chart-big.json
index e03b1e2f7dc..1dc8c6b89c4 100644
--- a/icons/bar-chart-big.json
+++ b/icons/bar-chart-big.json
@@ -11,4 +11,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bar-chart-horizontal-big.json b/icons/bar-chart-horizontal-big.json
index e03b1e2f7dc..1dc8c6b89c4 100644
--- a/icons/bar-chart-horizontal-big.json
+++ b/icons/bar-chart-horizontal-big.json
@@ -11,4 +11,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bar-chart-horizontal.json b/icons/bar-chart-horizontal.json
index 45486fc5613..f2339bbf073 100644
--- a/icons/bar-chart-horizontal.json
+++ b/icons/bar-chart-horizontal.json
@@ -12,4 +12,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bar-chart.json b/icons/bar-chart.json
index 03585694923..fa4786ce2e5 100644
--- a/icons/bar-chart.json
+++ b/icons/bar-chart.json
@@ -12,4 +12,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/barcode.json b/icons/barcode.json
index 96f8ad20ff0..ca505b8cbba 100644
--- a/icons/barcode.json
+++ b/icons/barcode.json
@@ -19,4 +19,4 @@
   "categories": [
     "shopping"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/baseline.json b/icons/baseline.json
index 8898d0cd58e..4b561b29e30 100644
--- a/icons/baseline.json
+++ b/icons/baseline.json
@@ -11,4 +11,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bath.json b/icons/bath.json
index ace2c3c336c..5059c9e62ac 100644
--- a/icons/bath.json
+++ b/icons/bath.json
@@ -13,4 +13,4 @@
   "categories": [
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/beaker.json b/icons/beaker.json
index 346f61ec37a..54482b80a6d 100644
--- a/icons/beaker.json
+++ b/icons/beaker.json
@@ -15,4 +15,4 @@
     "science",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bean-off.json b/icons/bean-off.json
index 75d95fc2c73..8965aee6f35 100644
--- a/icons/bean-off.json
+++ b/icons/bean-off.json
@@ -17,4 +17,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bean.json b/icons/bean.json
index ce8ea58f6c2..927128df472 100644
--- a/icons/bean.json
+++ b/icons/bean.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bed-double.json b/icons/bed-double.json
index 09394b2b02f..501871408d9 100644
--- a/icons/bed-double.json
+++ b/icons/bed-double.json
@@ -12,4 +12,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bed-single.json b/icons/bed-single.json
index 09394b2b02f..501871408d9 100644
--- a/icons/bed-single.json
+++ b/icons/bed-single.json
@@ -12,4 +12,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bed.json b/icons/bed.json
index 09394b2b02f..501871408d9 100644
--- a/icons/bed.json
+++ b/icons/bed.json
@@ -12,4 +12,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/beef.json b/icons/beef.json
index 16906bde033..fc81ca36e30 100644
--- a/icons/beef.json
+++ b/icons/beef.json
@@ -17,4 +17,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/beer.json b/icons/beer.json
index b96c562af7c..69e7c0b4edc 100644
--- a/icons/beer.json
+++ b/icons/beer.json
@@ -14,4 +14,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bell-dot.json b/icons/bell-dot.json
index 244c093d5d0..08fc8ceecad 100644
--- a/icons/bell-dot.json
+++ b/icons/bell-dot.json
@@ -14,4 +14,4 @@
     "account",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bell-electric.json b/icons/bell-electric.json
index 9304dfdd88a..19daf261f78 100644
--- a/icons/bell-electric.json
+++ b/icons/bell-electric.json
@@ -29,4 +29,4 @@
     "notifications",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bell-minus.json b/icons/bell-minus.json
index 62ad3fb3a66..3ab5de5733b 100644
--- a/icons/bell-minus.json
+++ b/icons/bell-minus.json
@@ -17,4 +17,4 @@
   "categories": [
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bell-off.json b/icons/bell-off.json
index f13eb448129..0d8c3c31815 100644
--- a/icons/bell-off.json
+++ b/icons/bell-off.json
@@ -16,4 +16,4 @@
   "categories": [
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bell-plus.json b/icons/bell-plus.json
index 97a1cf0b72d..e7656d3d6dc 100644
--- a/icons/bell-plus.json
+++ b/icons/bell-plus.json
@@ -16,4 +16,4 @@
   "categories": [
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bell-ring.json b/icons/bell-ring.json
index 9f5e93db384..61862c56b85 100644
--- a/icons/bell-ring.json
+++ b/icons/bell-ring.json
@@ -13,4 +13,4 @@
   "categories": [
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bell.json b/icons/bell.json
index ad3d250ad7e..64f608a89a3 100644
--- a/icons/bell.json
+++ b/icons/bell.json
@@ -16,4 +16,4 @@
     "account",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bike.json b/icons/bike.json
index f17c040a8e7..98088bfb680 100644
--- a/icons/bike.json
+++ b/icons/bike.json
@@ -16,4 +16,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/binary.json b/icons/binary.json
index b881bcecb2a..5d2c441e3de 100644
--- a/icons/binary.json
+++ b/icons/binary.json
@@ -17,4 +17,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/biohazard.json b/icons/biohazard.json
index 846ef5cd6a1..15ed22ac880 100644
--- a/icons/biohazard.json
+++ b/icons/biohazard.json
@@ -15,4 +15,4 @@
   "categories": [
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bird.json b/icons/bird.json
index 4bacbd17237..ee94b2a2cb6 100644
--- a/icons/bird.json
+++ b/icons/bird.json
@@ -14,4 +14,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bitcoin.json b/icons/bitcoin.json
index b19331a5496..9aa218b57c0 100644
--- a/icons/bitcoin.json
+++ b/icons/bitcoin.json
@@ -15,4 +15,4 @@
     "development",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/blinds.json b/icons/blinds.json
index cec9494c346..5d8f1314e63 100644
--- a/icons/blinds.json
+++ b/icons/blinds.json
@@ -18,4 +18,4 @@
   "categories": [
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/blocks.json b/icons/blocks.json
index ac6cefdcd8b..803a47be35b 100644
--- a/icons/blocks.json
+++ b/icons/blocks.json
@@ -20,4 +20,4 @@
     "development",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bluetooth-connected.json b/icons/bluetooth-connected.json
index 2bb84853469..a57cf29b54e 100644
--- a/icons/bluetooth-connected.json
+++ b/icons/bluetooth-connected.json
@@ -11,4 +11,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bluetooth-off.json b/icons/bluetooth-off.json
index 77be1c489b5..3d775f0dcd2 100644
--- a/icons/bluetooth-off.json
+++ b/icons/bluetooth-off.json
@@ -11,4 +11,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bluetooth-searching.json b/icons/bluetooth-searching.json
index 313411d84fe..84a531308a1 100644
--- a/icons/bluetooth-searching.json
+++ b/icons/bluetooth-searching.json
@@ -11,4 +11,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bluetooth.json b/icons/bluetooth.json
index 8ae67de8506..26b4d7e2f63 100644
--- a/icons/bluetooth.json
+++ b/icons/bluetooth.json
@@ -12,4 +12,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bold.json b/icons/bold.json
index 4396f7a2e8c..86e7af615fb 100644
--- a/icons/bold.json
+++ b/icons/bold.json
@@ -15,4 +15,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bolt.json b/icons/bolt.json
index 4d87d899bc6..3bfebd88e26 100644
--- a/icons/bolt.json
+++ b/icons/bolt.json
@@ -22,4 +22,4 @@
     "tools",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bomb.json b/icons/bomb.json
index 59868df04fb..399e35bef9d 100644
--- a/icons/bomb.json
+++ b/icons/bomb.json
@@ -15,4 +15,4 @@
     "explosive"
   ],
   "categories": []
-}
\ No newline at end of file
+}
diff --git a/icons/bone.json b/icons/bone.json
index e3c76a5dbc9..167c3603593 100644
--- a/icons/bone.json
+++ b/icons/bone.json
@@ -17,4 +17,4 @@
     "medical",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-a.json b/icons/book-a.json
index 3731cdaec09..48425c496fa 100644
--- a/icons/book-a.json
+++ b/icons/book-a.json
@@ -48,4 +48,4 @@
     "maps",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-check.json b/icons/book-check.json
index 1492eb50de5..cc63a6859d8 100644
--- a/icons/book-check.json
+++ b/icons/book-check.json
@@ -47,4 +47,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-copy.json b/icons/book-copy.json
index de4b76d65d8..1f58e80e117 100644
--- a/icons/book-copy.json
+++ b/icons/book-copy.json
@@ -1,6 +1,8 @@
 {
   "$schema": "../icon.schema.json",
-  "contributors": ["danielbayley"],
+  "contributors": [
+    "danielbayley"
+  ],
   "tags": [
     "code",
     "coding",
@@ -42,4 +44,4 @@
     "text",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-dashed.json b/icons/book-dashed.json
index 3726179361b..f74b0efbe85 100644
--- a/icons/book-dashed.json
+++ b/icons/book-dashed.json
@@ -27,4 +27,4 @@
   "aliases": [
     "book-template"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-down.json b/icons/book-down.json
index dbe2c6936bd..4e1e3f55b3d 100644
--- a/icons/book-down.json
+++ b/icons/book-down.json
@@ -14,4 +14,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-image.json b/icons/book-image.json
index 1e22def4e0f..791d8bf4ff7 100644
--- a/icons/book-image.json
+++ b/icons/book-image.json
@@ -26,4 +26,4 @@
     "shopping",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-key.json b/icons/book-key.json
index 2d19ba05ec8..fae50c84d62 100644
--- a/icons/book-key.json
+++ b/icons/book-key.json
@@ -25,4 +25,4 @@
     "security",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-lock.json b/icons/book-lock.json
index c36f0b8575f..618c4c7753f 100644
--- a/icons/book-lock.json
+++ b/icons/book-lock.json
@@ -19,4 +19,4 @@
     "security",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-marked.json b/icons/book-marked.json
index 2d84ca628a2..15cb2c88c0f 100644
--- a/icons/book-marked.json
+++ b/icons/book-marked.json
@@ -49,4 +49,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-minus.json b/icons/book-minus.json
index 4221dd8edb4..52fa0720b0d 100644
--- a/icons/book-minus.json
+++ b/icons/book-minus.json
@@ -26,4 +26,4 @@
     "text",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-open-check.json b/icons/book-open-check.json
index 52268a5f490..791993fe2aa 100644
--- a/icons/book-open-check.json
+++ b/icons/book-open-check.json
@@ -50,4 +50,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-open.json b/icons/book-open.json
index 6b21e857733..f3a1134d8ca 100644
--- a/icons/book-open.json
+++ b/icons/book-open.json
@@ -44,4 +44,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-plus.json b/icons/book-plus.json
index 232d025aa79..36ac584ef69 100644
--- a/icons/book-plus.json
+++ b/icons/book-plus.json
@@ -31,4 +31,4 @@
     "text",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-text.json b/icons/book-text.json
index 590c930219d..2a720572e3f 100644
--- a/icons/book-text.json
+++ b/icons/book-text.json
@@ -38,4 +38,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-up-2.json b/icons/book-up-2.json
index 473d654c271..4584fb7cbf4 100644
--- a/icons/book-up-2.json
+++ b/icons/book-up-2.json
@@ -15,4 +15,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-up.json b/icons/book-up.json
index 8d25e0c0bd5..552a34d58e6 100644
--- a/icons/book-up.json
+++ b/icons/book-up.json
@@ -14,4 +14,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-user.json b/icons/book-user.json
index 2dc1871776c..6158ea32bff 100644
--- a/icons/book-user.json
+++ b/icons/book-user.json
@@ -23,4 +23,4 @@
     "communication",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book-x.json b/icons/book-x.json
index 9a0e6f34b7f..659294ac413 100644
--- a/icons/book-x.json
+++ b/icons/book-x.json
@@ -35,4 +35,4 @@
     "text",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/book.json b/icons/book.json
index 102e22a072b..b928989fcfe 100644
--- a/icons/book.json
+++ b/icons/book.json
@@ -41,4 +41,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bookmark-check.json b/icons/bookmark-check.json
index fd3061ce32c..946f1a6e08d 100644
--- a/icons/bookmark-check.json
+++ b/icons/bookmark-check.json
@@ -16,4 +16,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bookmark-minus.json b/icons/bookmark-minus.json
index 9d1597c04bf..660e9fd457b 100644
--- a/icons/bookmark-minus.json
+++ b/icons/bookmark-minus.json
@@ -11,4 +11,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bookmark-plus.json b/icons/bookmark-plus.json
index aa6fc99db19..b143efd6436 100644
--- a/icons/bookmark-plus.json
+++ b/icons/bookmark-plus.json
@@ -10,4 +10,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bookmark-x.json b/icons/bookmark-x.json
index 942082745d4..0136c9a4644 100644
--- a/icons/bookmark-x.json
+++ b/icons/bookmark-x.json
@@ -17,4 +17,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bookmark.json b/icons/bookmark.json
index c41b5c471d2..fdc6e7bdf35 100644
--- a/icons/bookmark.json
+++ b/icons/bookmark.json
@@ -15,4 +15,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/boom-box.json b/icons/boom-box.json
index dda8297ce46..a1fc4db54af 100644
--- a/icons/boom-box.json
+++ b/icons/boom-box.json
@@ -18,4 +18,4 @@
     "multimedia",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/box-select.json b/icons/box-select.json
index ca284af8a0e..17bce98a0dc 100644
--- a/icons/box-select.json
+++ b/icons/box-select.json
@@ -18,4 +18,4 @@
     "text",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/box.json b/icons/box.json
index 71348a02727..cf15e41b9f7 100644
--- a/icons/box.json
+++ b/icons/box.json
@@ -21,4 +21,4 @@
     "development",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/boxes.json b/icons/boxes.json
index 80d062fa237..23f0244955e 100644
--- a/icons/boxes.json
+++ b/icons/boxes.json
@@ -18,4 +18,4 @@
     "gaming",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/braces.json b/icons/braces.json
index c42bb5bd32f..60340a4f8f2 100644
--- a/icons/braces.json
+++ b/icons/braces.json
@@ -4,7 +4,9 @@
     "danielbayley",
     "karsa-mistmere"
   ],
-  "aliases": ["curly-braces"],
+  "aliases": [
+    "curly-braces"
+  ],
   "tags": [
     "json",
     "code",
diff --git a/icons/brackets.json b/icons/brackets.json
index cbe814b4f44..def8d3626a5 100644
--- a/icons/brackets.json
+++ b/icons/brackets.json
@@ -17,4 +17,4 @@
     "development",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/brain-circuit.json b/icons/brain-circuit.json
index d716d52549c..219c5723389 100644
--- a/icons/brain-circuit.json
+++ b/icons/brain-circuit.json
@@ -19,4 +19,4 @@
     "science",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/brain-cog.json b/icons/brain-cog.json
index 2c0a581990d..58946444934 100644
--- a/icons/brain-cog.json
+++ b/icons/brain-cog.json
@@ -18,4 +18,4 @@
     "science",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/brain.json b/icons/brain.json
index 081e5f0c197..23c8df78ee8 100644
--- a/icons/brain.json
+++ b/icons/brain.json
@@ -19,4 +19,4 @@
     "medical",
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/brick-wall.json b/icons/brick-wall.json
index 9102a45b06c..90fc3411fff 100644
--- a/icons/brick-wall.json
+++ b/icons/brick-wall.json
@@ -19,4 +19,4 @@
     "buildings",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/briefcase.json b/icons/briefcase.json
index ea93b7baf61..86e16b196d6 100644
--- a/icons/briefcase.json
+++ b/icons/briefcase.json
@@ -14,4 +14,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bring-to-front.json b/icons/bring-to-front.json
index 041b783f58c..fcf7b24e0b0 100644
--- a/icons/bring-to-front.json
+++ b/icons/bring-to-front.json
@@ -19,4 +19,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/brush.json b/icons/brush.json
index 91d5bc21b31..31162aea2fa 100644
--- a/icons/brush.json
+++ b/icons/brush.json
@@ -14,4 +14,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bug-off.json b/icons/bug-off.json
index abb51358d1a..dd0527b9edb 100644
--- a/icons/bug-off.json
+++ b/icons/bug-off.json
@@ -15,4 +15,4 @@
     "development",
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bug-play.json b/icons/bug-play.json
index 20ccd8269ef..877f18525cd 100644
--- a/icons/bug-play.json
+++ b/icons/bug-play.json
@@ -12,4 +12,4 @@
     "development",
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bug.json b/icons/bug.json
index 27042869994..5d4f1ad2d58 100644
--- a/icons/bug.json
+++ b/icons/bug.json
@@ -14,4 +14,4 @@
     "development",
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/building-2.json b/icons/building-2.json
index 6368d1b2268..6da5ac8070a 100644
--- a/icons/building-2.json
+++ b/icons/building-2.json
@@ -18,4 +18,4 @@
     "account",
     "buildings"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/building.json b/icons/building.json
index e490dc68745..5cbba78d49f 100644
--- a/icons/building.json
+++ b/icons/building.json
@@ -11,4 +11,4 @@
     "account",
     "buildings"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bus-front.json b/icons/bus-front.json
index 912a6406525..04aa159ebc9 100644
--- a/icons/bus-front.json
+++ b/icons/bus-front.json
@@ -12,4 +12,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/bus.json b/icons/bus.json
index 1da100f0f1d..5eaaf1be3ee 100644
--- a/icons/bus.json
+++ b/icons/bus.json
@@ -15,4 +15,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cable-car.json b/icons/cable-car.json
index e7616a671d1..c271de8181c 100644
--- a/icons/cable-car.json
+++ b/icons/cable-car.json
@@ -14,4 +14,4 @@
     "transportation",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cake-slice.json b/icons/cake-slice.json
index eaccb17a895..e9f4e1090a2 100644
--- a/icons/cake-slice.json
+++ b/icons/cake-slice.json
@@ -22,4 +22,4 @@
     "food-beverage",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calculator.json b/icons/calculator.json
index 4bd4d9f17f1..4805f427c11 100644
--- a/icons/calculator.json
+++ b/icons/calculator.json
@@ -12,4 +12,4 @@
     "maths",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-check-2.json b/icons/calendar-check-2.json
index 7b0942d8fe1..10ec96c34fd 100644
--- a/icons/calendar-check-2.json
+++ b/icons/calendar-check-2.json
@@ -22,4 +22,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-check.json b/icons/calendar-check.json
index 7b0942d8fe1..10ec96c34fd 100644
--- a/icons/calendar-check.json
+++ b/icons/calendar-check.json
@@ -22,4 +22,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-clock.json b/icons/calendar-clock.json
index 61eb6535c90..9081da4e7bc 100644
--- a/icons/calendar-clock.json
+++ b/icons/calendar-clock.json
@@ -16,4 +16,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-days.json b/icons/calendar-days.json
index 21bd75aceae..4dd677b4c6c 100644
--- a/icons/calendar-days.json
+++ b/icons/calendar-days.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-fold.json b/icons/calendar-fold.json
index abc62e538e2..d0c53ce8532 100644
--- a/icons/calendar-fold.json
+++ b/icons/calendar-fold.json
@@ -16,4 +16,4 @@
     "time",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-heart.json b/icons/calendar-heart.json
index 5ac06799ad2..6b85a0fac0a 100644
--- a/icons/calendar-heart.json
+++ b/icons/calendar-heart.json
@@ -16,4 +16,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-minus-2.json b/icons/calendar-minus-2.json
index 03225650de0..8920cca22dd 100644
--- a/icons/calendar-minus-2.json
+++ b/icons/calendar-minus-2.json
@@ -15,4 +15,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-minus.json b/icons/calendar-minus.json
index 7734f1d4e63..72adce5b4ad 100644
--- a/icons/calendar-minus.json
+++ b/icons/calendar-minus.json
@@ -16,4 +16,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-off.json b/icons/calendar-off.json
index 7734f1d4e63..72adce5b4ad 100644
--- a/icons/calendar-off.json
+++ b/icons/calendar-off.json
@@ -16,4 +16,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-plus-2.json b/icons/calendar-plus-2.json
index 031b560907d..fcbc7379932 100644
--- a/icons/calendar-plus-2.json
+++ b/icons/calendar-plus-2.json
@@ -17,4 +17,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-plus.json b/icons/calendar-plus.json
index f3f463a4984..2b41b55072d 100644
--- a/icons/calendar-plus.json
+++ b/icons/calendar-plus.json
@@ -18,4 +18,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-range.json b/icons/calendar-range.json
index 42a131e56d8..5c324ef4c0e 100644
--- a/icons/calendar-range.json
+++ b/icons/calendar-range.json
@@ -16,4 +16,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-search.json b/icons/calendar-search.json
index af861d735c6..30873c8ecb9 100644
--- a/icons/calendar-search.json
+++ b/icons/calendar-search.json
@@ -15,4 +15,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-x-2.json b/icons/calendar-x-2.json
index 53b7d651ff1..d570e532838 100644
--- a/icons/calendar-x-2.json
+++ b/icons/calendar-x-2.json
@@ -15,4 +15,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar-x.json b/icons/calendar-x.json
index b24768e85c4..94993edd451 100644
--- a/icons/calendar-x.json
+++ b/icons/calendar-x.json
@@ -16,4 +16,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/calendar.json b/icons/calendar.json
index 1172063521e..032b9126c11 100644
--- a/icons/calendar.json
+++ b/icons/calendar.json
@@ -15,4 +15,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/camera-off.json b/icons/camera-off.json
index 587fd861af0..2ddcbcca72b 100644
--- a/icons/camera-off.json
+++ b/icons/camera-off.json
@@ -17,4 +17,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/camera.json b/icons/camera.json
index d93c6202f5e..2934413e09e 100644
--- a/icons/camera.json
+++ b/icons/camera.json
@@ -15,4 +15,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/candlestick-chart.json b/icons/candlestick-chart.json
index 5d8b2529cc5..befb7b97c76 100644
--- a/icons/candlestick-chart.json
+++ b/icons/candlestick-chart.json
@@ -26,4 +26,4 @@
     "charts",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/candy-cane.json b/icons/candy-cane.json
index d5eaa47576a..e5ece6d8f95 100644
--- a/icons/candy-cane.json
+++ b/icons/candy-cane.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/candy-off.json b/icons/candy-off.json
index f0101f58d9b..390b9e58bb5 100644
--- a/icons/candy-off.json
+++ b/icons/candy-off.json
@@ -15,4 +15,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/candy.json b/icons/candy.json
index 7da4cf8fd9f..a6f37f9f1ab 100644
--- a/icons/candy.json
+++ b/icons/candy.json
@@ -11,4 +11,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/car-front.json b/icons/car-front.json
index 20f32a97059..367fbfb84a1 100644
--- a/icons/car-front.json
+++ b/icons/car-front.json
@@ -12,4 +12,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/car-taxi-front.json b/icons/car-taxi-front.json
index 04664fb896b..c54167c4f1a 100644
--- a/icons/car-taxi-front.json
+++ b/icons/car-taxi-front.json
@@ -13,4 +13,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/car.json b/icons/car.json
index 1d2503ce86a..7d38abd2bb7 100644
--- a/icons/car.json
+++ b/icons/car.json
@@ -14,4 +14,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/caravan.json b/icons/caravan.json
index a0c81fc71fc..19f48373766 100644
--- a/icons/caravan.json
+++ b/icons/caravan.json
@@ -19,4 +19,4 @@
     "travel",
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/carrot.json b/icons/carrot.json
index 24babaced7d..40cc93840a3 100644
--- a/icons/carrot.json
+++ b/icons/carrot.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/case-lower.json b/icons/case-lower.json
index 9adea4278fd..69e761ef0ae 100644
--- a/icons/case-lower.json
+++ b/icons/case-lower.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/case-sensitive.json b/icons/case-sensitive.json
index 9adea4278fd..69e761ef0ae 100644
--- a/icons/case-sensitive.json
+++ b/icons/case-sensitive.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/case-upper.json b/icons/case-upper.json
index 2147d3a9b77..c299897580b 100644
--- a/icons/case-upper.json
+++ b/icons/case-upper.json
@@ -15,4 +15,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cassette-tape.json b/icons/cassette-tape.json
index 80d132164d2..8c6233474fe 100644
--- a/icons/cassette-tape.json
+++ b/icons/cassette-tape.json
@@ -16,4 +16,4 @@
     "communication",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cast.json b/icons/cast.json
index aad3a1e5e6c..023646a75b3 100644
--- a/icons/cast.json
+++ b/icons/cast.json
@@ -15,4 +15,4 @@
     "devices",
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/castle.json b/icons/castle.json
index 52c8defb25d..12191f4a3e3 100644
--- a/icons/castle.json
+++ b/icons/castle.json
@@ -15,4 +15,4 @@
     "gaming",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cat.json b/icons/cat.json
index cacc57233f0..8a4d7d65aa3 100644
--- a/icons/cat.json
+++ b/icons/cat.json
@@ -13,4 +13,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cctv.json b/icons/cctv.json
index 7155ea9074e..87575765d8a 100644
--- a/icons/cctv.json
+++ b/icons/cctv.json
@@ -19,4 +19,4 @@
     "connectivity",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/check-check.json b/icons/check-check.json
index b48193625ed..a64dd9c641e 100644
--- a/icons/check-check.json
+++ b/icons/check-check.json
@@ -17,4 +17,4 @@
   "categories": [
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/check-circle-2.json b/icons/check-circle-2.json
index 91f3ec00bae..72ff75cbcea 100644
--- a/icons/check-circle-2.json
+++ b/icons/check-circle-2.json
@@ -15,4 +15,4 @@
     "notifications",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/check-circle.json b/icons/check-circle.json
index ffd87b8e39e..039fb4753f5 100644
--- a/icons/check-circle.json
+++ b/icons/check-circle.json
@@ -16,4 +16,4 @@
     "notifications",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/check-square-2.json b/icons/check-square-2.json
index 65d7f279cc5..164a918d4cf 100644
--- a/icons/check-square-2.json
+++ b/icons/check-square-2.json
@@ -14,4 +14,4 @@
     "notifications",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/check-square.json b/icons/check-square.json
index ffd87b8e39e..039fb4753f5 100644
--- a/icons/check-square.json
+++ b/icons/check-square.json
@@ -16,4 +16,4 @@
     "notifications",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/check.json b/icons/check.json
index 308ecc498ce..6c97aef9b2b 100644
--- a/icons/check.json
+++ b/icons/check.json
@@ -13,4 +13,4 @@
   "categories": [
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chef-hat.json b/icons/chef-hat.json
index 13e4c48628f..4974a58645b 100644
--- a/icons/chef-hat.json
+++ b/icons/chef-hat.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cherry.json b/icons/cherry.json
index 1bb1288ea03..e89d0037e0c 100644
--- a/icons/cherry.json
+++ b/icons/cherry.json
@@ -10,4 +10,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-down-circle.json b/icons/chevron-down-circle.json
index 17be28c1a4b..fcbe99f4fa3 100644
--- a/icons/chevron-down-circle.json
+++ b/icons/chevron-down-circle.json
@@ -13,4 +13,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-down-square.json b/icons/chevron-down-square.json
index b6d23804f4c..15e3e127255 100644
--- a/icons/chevron-down-square.json
+++ b/icons/chevron-down-square.json
@@ -14,4 +14,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-first.json b/icons/chevron-first.json
index a48f4052f4f..92b1c3edff0 100644
--- a/icons/chevron-first.json
+++ b/icons/chevron-first.json
@@ -12,4 +12,4 @@
     "arrows",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-last.json b/icons/chevron-last.json
index dc907ab3c6f..21ffc1a4a9f 100644
--- a/icons/chevron-last.json
+++ b/icons/chevron-last.json
@@ -13,4 +13,4 @@
     "arrows",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-left-circle.json b/icons/chevron-left-circle.json
index c03ae39f72f..f17c64a5de3 100644
--- a/icons/chevron-left-circle.json
+++ b/icons/chevron-left-circle.json
@@ -16,4 +16,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-left-square.json b/icons/chevron-left-square.json
index d49adc3cf85..6f8cac05917 100644
--- a/icons/chevron-left-square.json
+++ b/icons/chevron-left-square.json
@@ -20,4 +20,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-left.json b/icons/chevron-left.json
index bfa83fa1c72..e3a03123e97 100644
--- a/icons/chevron-left.json
+++ b/icons/chevron-left.json
@@ -15,4 +15,4 @@
     "arrows",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-right-circle.json b/icons/chevron-right-circle.json
index 954dfe28652..64f4c0b49fb 100644
--- a/icons/chevron-right-circle.json
+++ b/icons/chevron-right-circle.json
@@ -15,4 +15,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-right-square.json b/icons/chevron-right-square.json
index 1eeb08a4620..ad6bdc71e7c 100644
--- a/icons/chevron-right-square.json
+++ b/icons/chevron-right-square.json
@@ -26,4 +26,4 @@
     "shapes",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-right.json b/icons/chevron-right.json
index 3e77ab862c1..33faf78cecc 100644
--- a/icons/chevron-right.json
+++ b/icons/chevron-right.json
@@ -23,4 +23,4 @@
     "maths",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-up-circle.json b/icons/chevron-up-circle.json
index 52d238aae81..5740097c72e 100644
--- a/icons/chevron-up-circle.json
+++ b/icons/chevron-up-circle.json
@@ -14,4 +14,4 @@
     "navigation",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevron-up-square.json b/icons/chevron-up-square.json
index 1528b4351b6..f28138f56ba 100644
--- a/icons/chevron-up-square.json
+++ b/icons/chevron-up-square.json
@@ -25,4 +25,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-down-up.json b/icons/chevrons-down-up.json
index 149abd7d5d0..5160c743347 100644
--- a/icons/chevrons-down-up.json
+++ b/icons/chevrons-down-up.json
@@ -13,4 +13,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-down.json b/icons/chevrons-down.json
index bf6edc13fb4..921217448f5 100644
--- a/icons/chevrons-down.json
+++ b/icons/chevrons-down.json
@@ -13,4 +13,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-left-right.json b/icons/chevrons-left-right.json
index 6b84a85d4ab..2fb6431a931 100644
--- a/icons/chevrons-left-right.json
+++ b/icons/chevrons-left-right.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-left.json b/icons/chevrons-left.json
index 1866e8d9c42..df9b8d4d167 100644
--- a/icons/chevrons-left.json
+++ b/icons/chevrons-left.json
@@ -12,4 +12,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-right-left.json b/icons/chevrons-right-left.json
index 265fb2ffadd..e707150ac39 100644
--- a/icons/chevrons-right-left.json
+++ b/icons/chevrons-right-left.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-right.json b/icons/chevrons-right.json
index 1866e8d9c42..df9b8d4d167 100644
--- a/icons/chevrons-right.json
+++ b/icons/chevrons-right.json
@@ -12,4 +12,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-up-down.json b/icons/chevrons-up-down.json
index 4b707904561..99c246fa8f9 100644
--- a/icons/chevrons-up-down.json
+++ b/icons/chevrons-up-down.json
@@ -12,4 +12,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/chevrons-up.json b/icons/chevrons-up.json
index 2376a808128..e311b0bf15c 100644
--- a/icons/chevrons-up.json
+++ b/icons/chevrons-up.json
@@ -15,4 +15,4 @@
     "navigation",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/church.json b/icons/church.json
index a8922c513a4..ff2ed68ab19 100644
--- a/icons/church.json
+++ b/icons/church.json
@@ -12,4 +12,4 @@
     "buildings",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cigarette-off.json b/icons/cigarette-off.json
index 644bf8ebbcb..bb1ef2494ff 100644
--- a/icons/cigarette-off.json
+++ b/icons/cigarette-off.json
@@ -13,4 +13,4 @@
     "transportation",
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cigarette.json b/icons/cigarette.json
index 28306d6c988..80b39c43c75 100644
--- a/icons/cigarette.json
+++ b/icons/cigarette.json
@@ -12,4 +12,4 @@
     "transportation",
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-dashed.json b/icons/circle-dashed.json
index 8cb70e7d5b8..fd25bf15755 100644
--- a/icons/circle-dashed.json
+++ b/icons/circle-dashed.json
@@ -17,4 +17,4 @@
     "development",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-dollar-sign.json b/icons/circle-dollar-sign.json
index ec5003c6bde..04bb535db76 100644
--- a/icons/circle-dollar-sign.json
+++ b/icons/circle-dollar-sign.json
@@ -16,4 +16,4 @@
     "money",
     "currency"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-dot-dashed.json b/icons/circle-dot-dashed.json
index 8cb70e7d5b8..fd25bf15755 100644
--- a/icons/circle-dot-dashed.json
+++ b/icons/circle-dot-dashed.json
@@ -17,4 +17,4 @@
     "development",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-dot.json b/icons/circle-dot.json
index 927dc503c68..b34ca1d8ac1 100644
--- a/icons/circle-dot.json
+++ b/icons/circle-dot.json
@@ -19,4 +19,4 @@
     "development",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-ellipsis.json b/icons/circle-ellipsis.json
index 0658f662915..1ed12b5792d 100644
--- a/icons/circle-ellipsis.json
+++ b/icons/circle-ellipsis.json
@@ -14,4 +14,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-equal.json b/icons/circle-equal.json
index 50ce5f8e47d..900a5822bd5 100644
--- a/icons/circle-equal.json
+++ b/icons/circle-equal.json
@@ -12,4 +12,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-off.json b/icons/circle-off.json
index c30a90357df..928d0997537 100644
--- a/icons/circle-off.json
+++ b/icons/circle-off.json
@@ -25,4 +25,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-slash.json b/icons/circle-slash.json
index 469ab32ea31..afd07abae8d 100644
--- a/icons/circle-slash.json
+++ b/icons/circle-slash.json
@@ -31,4 +31,4 @@
     "development",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle-user-round.json b/icons/circle-user-round.json
index a358c090c42..26a2c72c796 100644
--- a/icons/circle-user-round.json
+++ b/icons/circle-user-round.json
@@ -15,4 +15,4 @@
   "aliases": [
     "user-circle-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/circle.json b/icons/circle.json
index 967c902eef4..7a3a37239a8 100644
--- a/icons/circle.json
+++ b/icons/circle.json
@@ -12,4 +12,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/citrus.json b/icons/citrus.json
index b9b36555ed6..27e9052f8b4 100644
--- a/icons/citrus.json
+++ b/icons/citrus.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clapperboard.json b/icons/clapperboard.json
index 7ac656cbb36..c02882b2332 100644
--- a/icons/clapperboard.json
+++ b/icons/clapperboard.json
@@ -21,4 +21,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-check.json b/icons/clipboard-check.json
index 734c7fd0a51..06e36b1bcac 100644
--- a/icons/clipboard-check.json
+++ b/icons/clipboard-check.json
@@ -17,4 +17,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-copy.json b/icons/clipboard-copy.json
index 225e69311d0..7e8484b7dfd 100644
--- a/icons/clipboard-copy.json
+++ b/icons/clipboard-copy.json
@@ -13,4 +13,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-list.json b/icons/clipboard-list.json
index 3d8a2dbda46..01bbd905721 100644
--- a/icons/clipboard-list.json
+++ b/icons/clipboard-list.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-paste.json b/icons/clipboard-paste.json
index ca94b929a0a..0e39e74b11f 100644
--- a/icons/clipboard-paste.json
+++ b/icons/clipboard-paste.json
@@ -12,4 +12,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-pen-line.json b/icons/clipboard-pen-line.json
index d66b2dbc34e..2fb6486da82 100644
--- a/icons/clipboard-pen-line.json
+++ b/icons/clipboard-pen-line.json
@@ -14,4 +14,4 @@
   "aliases": [
     "clipboard-signature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-pen.json b/icons/clipboard-pen.json
index 97ae9d29435..1cff1a2e402 100644
--- a/icons/clipboard-pen.json
+++ b/icons/clipboard-pen.json
@@ -14,4 +14,4 @@
   "aliases": [
     "clipboard-edit"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-type.json b/icons/clipboard-type.json
index 12e8f658265..c78e5b31d71 100644
--- a/icons/clipboard-type.json
+++ b/icons/clipboard-type.json
@@ -12,4 +12,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard-x.json b/icons/clipboard-x.json
index eaa3693ec2d..30a882225eb 100644
--- a/icons/clipboard-x.json
+++ b/icons/clipboard-x.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clipboard.json b/icons/clipboard.json
index e465a8f8c65..e432c7c1dec 100644
--- a/icons/clipboard.json
+++ b/icons/clipboard.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-1.json b/icons/clock-1.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-1.json
+++ b/icons/clock-1.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-10.json b/icons/clock-10.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-10.json
+++ b/icons/clock-10.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-11.json b/icons/clock-11.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-11.json
+++ b/icons/clock-11.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-12.json b/icons/clock-12.json
index fa98c3aad39..46cd8c79a4c 100644
--- a/icons/clock-12.json
+++ b/icons/clock-12.json
@@ -15,4 +15,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-2.json b/icons/clock-2.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-2.json
+++ b/icons/clock-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-3.json b/icons/clock-3.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-3.json
+++ b/icons/clock-3.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-4.json b/icons/clock-4.json
index f501e8d7f75..e7a8a43678e 100644
--- a/icons/clock-4.json
+++ b/icons/clock-4.json
@@ -11,4 +11,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-5.json b/icons/clock-5.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-5.json
+++ b/icons/clock-5.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-6.json b/icons/clock-6.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-6.json
+++ b/icons/clock-6.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-7.json b/icons/clock-7.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-7.json
+++ b/icons/clock-7.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-8.json b/icons/clock-8.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-8.json
+++ b/icons/clock-8.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock-9.json b/icons/clock-9.json
index a9924576887..9ba18a39da6 100644
--- a/icons/clock-9.json
+++ b/icons/clock-9.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clock.json b/icons/clock.json
index 0bd0b8f7f0c..899e075d1ff 100644
--- a/icons/clock.json
+++ b/icons/clock.json
@@ -11,4 +11,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-cog.json b/icons/cloud-cog.json
index 544dbae36ed..0052ab5447e 100644
--- a/icons/cloud-cog.json
+++ b/icons/cloud-cog.json
@@ -12,4 +12,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-drizzle.json b/icons/cloud-drizzle.json
index 2a7428de908..5b7901b15be 100644
--- a/icons/cloud-drizzle.json
+++ b/icons/cloud-drizzle.json
@@ -13,4 +13,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-fog.json b/icons/cloud-fog.json
index 54309d19b8a..ef2d7ff2505 100644
--- a/icons/cloud-fog.json
+++ b/icons/cloud-fog.json
@@ -12,4 +12,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-hail.json b/icons/cloud-hail.json
index ce23fd9f089..3a5c1e0c85c 100644
--- a/icons/cloud-hail.json
+++ b/icons/cloud-hail.json
@@ -11,4 +11,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-lightning.json b/icons/cloud-lightning.json
index 5cad5701399..9cb78b92f32 100644
--- a/icons/cloud-lightning.json
+++ b/icons/cloud-lightning.json
@@ -13,4 +13,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-moon-rain.json b/icons/cloud-moon-rain.json
index 42269db886f..764f9e2d31c 100644
--- a/icons/cloud-moon-rain.json
+++ b/icons/cloud-moon-rain.json
@@ -14,4 +14,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-moon.json b/icons/cloud-moon.json
index ac7f16cf054..1de9fc03b3d 100644
--- a/icons/cloud-moon.json
+++ b/icons/cloud-moon.json
@@ -12,4 +12,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-off.json b/icons/cloud-off.json
index fb654b332f3..6400396ee98 100644
--- a/icons/cloud-off.json
+++ b/icons/cloud-off.json
@@ -13,4 +13,4 @@
     "connectivity",
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-rain-wind.json b/icons/cloud-rain-wind.json
index ce23fd9f089..3a5c1e0c85c 100644
--- a/icons/cloud-rain-wind.json
+++ b/icons/cloud-rain-wind.json
@@ -11,4 +11,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-rain.json b/icons/cloud-rain.json
index 249cc51f408..da87e553526 100644
--- a/icons/cloud-rain.json
+++ b/icons/cloud-rain.json
@@ -13,4 +13,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-snow.json b/icons/cloud-snow.json
index 867af9bd971..1023647e95d 100644
--- a/icons/cloud-snow.json
+++ b/icons/cloud-snow.json
@@ -13,4 +13,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-sun-rain.json b/icons/cloud-sun-rain.json
index 6e2422638e2..618c4ebc81b 100644
--- a/icons/cloud-sun-rain.json
+++ b/icons/cloud-sun-rain.json
@@ -12,4 +12,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud-sun.json b/icons/cloud-sun.json
index c629b7ef614..578f63bb957 100644
--- a/icons/cloud-sun.json
+++ b/icons/cloud-sun.json
@@ -11,4 +11,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloud.json b/icons/cloud.json
index cc89c100063..44e1da03f4f 100644
--- a/icons/cloud.json
+++ b/icons/cloud.json
@@ -12,4 +12,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cloudy.json b/icons/cloudy.json
index e49ca3d10c9..389377be9ef 100644
--- a/icons/cloudy.json
+++ b/icons/cloudy.json
@@ -11,4 +11,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/clover.json b/icons/clover.json
index dceb766dd23..0e64d14a13b 100644
--- a/icons/clover.json
+++ b/icons/clover.json
@@ -12,4 +12,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/club.json b/icons/club.json
index 43d20b7ed10..ed7230b16c4 100644
--- a/icons/club.json
+++ b/icons/club.json
@@ -14,4 +14,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/code-2.json b/icons/code-2.json
index 372b9067162..86a5cae7927 100644
--- a/icons/code-2.json
+++ b/icons/code-2.json
@@ -14,4 +14,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/code-square.json b/icons/code-square.json
index 76caf9f1fee..aee960c4f59 100644
--- a/icons/code-square.json
+++ b/icons/code-square.json
@@ -18,4 +18,4 @@
   "aliases": [
     "square-code"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/code.json b/icons/code.json
index 27d7702be49..0574ce6ca99 100644
--- a/icons/code.json
+++ b/icons/code.json
@@ -13,4 +13,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/coffee.json b/icons/coffee.json
index 04b9a25c91f..53bd590e7f2 100644
--- a/icons/coffee.json
+++ b/icons/coffee.json
@@ -19,4 +19,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cog.json b/icons/cog.json
index fba0acb5577..2a780d02447 100644
--- a/icons/cog.json
+++ b/icons/cog.json
@@ -15,4 +15,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/coins.json b/icons/coins.json
index 22efa215018..7e46ed743a5 100644
--- a/icons/coins.json
+++ b/icons/coins.json
@@ -15,4 +15,4 @@
     "money",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/columns-2.json b/icons/columns-2.json
index 5e9cf7f3143..9bc4155f96a 100644
--- a/icons/columns-2.json
+++ b/icons/columns-2.json
@@ -38,4 +38,4 @@
   "aliases": [
     "columns"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/columns-3.json b/icons/columns-3.json
index c56bb68be6c..4a5dd12e651 100644
--- a/icons/columns-3.json
+++ b/icons/columns-3.json
@@ -36,4 +36,4 @@
   "aliases": [
     "panels-left-right"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/columns-4.json b/icons/columns-4.json
index bff867a0073..9b9398ee412 100644
--- a/icons/columns-4.json
+++ b/icons/columns-4.json
@@ -47,4 +47,4 @@
     "text",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/combine.json b/icons/combine.json
index 5f6ff4cb5b7..477ba26d4f1 100644
--- a/icons/combine.json
+++ b/icons/combine.json
@@ -20,4 +20,4 @@
     "development",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/command.json b/icons/command.json
index 3aec3515f3a..63983a178c7 100644
--- a/icons/command.json
+++ b/icons/command.json
@@ -16,4 +16,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/compass.json b/icons/compass.json
index cc3449cf776..afd13de9ec8 100644
--- a/icons/compass.json
+++ b/icons/compass.json
@@ -17,4 +17,4 @@
     "maps",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/component.json b/icons/component.json
index e296e34b21d..10f3577304b 100644
--- a/icons/component.json
+++ b/icons/component.json
@@ -16,4 +16,4 @@
     "design",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/computer.json b/icons/computer.json
index 0b2300e6845..5d09449a54b 100644
--- a/icons/computer.json
+++ b/icons/computer.json
@@ -14,4 +14,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/concierge-bell.json b/icons/concierge-bell.json
index 27d5130e14f..5a6c22cb86d 100644
--- a/icons/concierge-bell.json
+++ b/icons/concierge-bell.json
@@ -12,4 +12,4 @@
   "categories": [
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cone.json b/icons/cone.json
index 76ab2f8a61a..8c38625f2d1 100644
--- a/icons/cone.json
+++ b/icons/cone.json
@@ -18,4 +18,4 @@
     "shapes",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/construction.json b/icons/construction.json
index 368a8b3568b..726e8154c9a 100644
--- a/icons/construction.json
+++ b/icons/construction.json
@@ -14,4 +14,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/contact-2.json b/icons/contact-2.json
index 79541a30b3c..75d28d1dd7e 100644
--- a/icons/contact-2.json
+++ b/icons/contact-2.json
@@ -18,4 +18,4 @@
     "communication",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/contact.json b/icons/contact.json
index bca07bd4e89..1e7fb618ff2 100644
--- a/icons/contact.json
+++ b/icons/contact.json
@@ -21,4 +21,4 @@
     "communication",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/container.json b/icons/container.json
index e3f40668e35..cc3318fab8a 100644
--- a/icons/container.json
+++ b/icons/container.json
@@ -19,4 +19,4 @@
     "transportation",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/contrast.json b/icons/contrast.json
index fd0777432cf..66cecff5877 100644
--- a/icons/contrast.json
+++ b/icons/contrast.json
@@ -14,4 +14,4 @@
     "accessibility",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cookie.json b/icons/cookie.json
index 9c8c6504385..ef54748f065 100644
--- a/icons/cookie.json
+++ b/icons/cookie.json
@@ -14,4 +14,4 @@
     "account",
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/copy-check.json b/icons/copy-check.json
index f6a69824c77..5a115795567 100644
--- a/icons/copy-check.json
+++ b/icons/copy-check.json
@@ -14,4 +14,4 @@
     "text",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/copy-minus.json b/icons/copy-minus.json
index daa18439731..381e3f9333e 100644
--- a/icons/copy-minus.json
+++ b/icons/copy-minus.json
@@ -18,4 +18,4 @@
     "text",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/copy-plus.json b/icons/copy-plus.json
index 48eaee47ed2..4cf0eef7b2d 100644
--- a/icons/copy-plus.json
+++ b/icons/copy-plus.json
@@ -16,4 +16,4 @@
     "text",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/copy-slash.json b/icons/copy-slash.json
index f146a6cce62..b2eee7b57c0 100644
--- a/icons/copy-slash.json
+++ b/icons/copy-slash.json
@@ -26,4 +26,4 @@
     "development",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/copy-x.json b/icons/copy-x.json
index 900de105ea1..358818fc1a7 100644
--- a/icons/copy-x.json
+++ b/icons/copy-x.json
@@ -19,4 +19,4 @@
     "notifications",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/copy.json b/icons/copy.json
index 7d841797739..b363b7fa053 100644
--- a/icons/copy.json
+++ b/icons/copy.json
@@ -15,4 +15,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/copyleft.json b/icons/copyleft.json
index 70a0bb7014d..4a9e2552f22 100644
--- a/icons/copyleft.json
+++ b/icons/copyleft.json
@@ -9,4 +9,4 @@
     "licence"
   ],
   "categories": []
-}
\ No newline at end of file
+}
diff --git a/icons/copyright.json b/icons/copyright.json
index 3c53a54c1c6..b1615c00875 100644
--- a/icons/copyright.json
+++ b/icons/copyright.json
@@ -10,4 +10,4 @@
     "license"
   ],
   "categories": []
-}
\ No newline at end of file
+}
diff --git a/icons/corner-down-left.json b/icons/corner-down-left.json
index d5feb2fdc8b..1c48af5bb5e 100644
--- a/icons/corner-down-left.json
+++ b/icons/corner-down-left.json
@@ -12,4 +12,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/corner-down-right.json b/icons/corner-down-right.json
index 6d4e58d98b7..8bf9bc6382c 100644
--- a/icons/corner-down-right.json
+++ b/icons/corner-down-right.json
@@ -15,4 +15,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/corner-left-down.json b/icons/corner-left-down.json
index 0defc8ca89a..130fb0ee92a 100644
--- a/icons/corner-left-down.json
+++ b/icons/corner-left-down.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/corner-left-up.json b/icons/corner-left-up.json
index 0defc8ca89a..130fb0ee92a 100644
--- a/icons/corner-left-up.json
+++ b/icons/corner-left-up.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/corner-right-down.json b/icons/corner-right-down.json
index 0defc8ca89a..130fb0ee92a 100644
--- a/icons/corner-right-down.json
+++ b/icons/corner-right-down.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/corner-right-up.json b/icons/corner-right-up.json
index 0defc8ca89a..130fb0ee92a 100644
--- a/icons/corner-right-up.json
+++ b/icons/corner-right-up.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/corner-up-left.json b/icons/corner-up-left.json
index 0defc8ca89a..130fb0ee92a 100644
--- a/icons/corner-up-left.json
+++ b/icons/corner-up-left.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/corner-up-right.json b/icons/corner-up-right.json
index 0defc8ca89a..130fb0ee92a 100644
--- a/icons/corner-up-right.json
+++ b/icons/corner-up-right.json
@@ -11,4 +11,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cpu.json b/icons/cpu.json
index 1e780794403..9e71d8e3cea 100644
--- a/icons/cpu.json
+++ b/icons/cpu.json
@@ -22,4 +22,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/creative-commons.json b/icons/creative-commons.json
index f078ad6a9d5..8d8bc95a80f 100644
--- a/icons/creative-commons.json
+++ b/icons/creative-commons.json
@@ -8,4 +8,4 @@
     "license"
   ],
   "categories": []
-}
\ No newline at end of file
+}
diff --git a/icons/credit-card.json b/icons/credit-card.json
index d574e1c5880..b0a3e0d51be 100644
--- a/icons/credit-card.json
+++ b/icons/credit-card.json
@@ -15,4 +15,4 @@
     "account",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/croissant.json b/icons/croissant.json
index 3a692453a5a..a599d7d9b47 100644
--- a/icons/croissant.json
+++ b/icons/croissant.json
@@ -12,4 +12,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/crop.json b/icons/crop.json
index daedba6c502..e993678093a 100644
--- a/icons/crop.json
+++ b/icons/crop.json
@@ -14,4 +14,4 @@
     "photography",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cross.json b/icons/cross.json
index 5f3165c256f..8bf90a9b83c 100644
--- a/icons/cross.json
+++ b/icons/cross.json
@@ -11,4 +11,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/crosshair.json b/icons/crosshair.json
index c5ed66f8e97..af55ac38323 100644
--- a/icons/crosshair.json
+++ b/icons/crosshair.json
@@ -11,4 +11,4 @@
   "categories": [
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/crown.json b/icons/crown.json
index af46d079b4e..803aba24b33 100644
--- a/icons/crown.json
+++ b/icons/crown.json
@@ -13,4 +13,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cuboid.json b/icons/cuboid.json
index 29911f3a0cb..1a67f0dace9 100644
--- a/icons/cuboid.json
+++ b/icons/cuboid.json
@@ -17,4 +17,4 @@
     "maths",
     "buildings"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cup-soda.json b/icons/cup-soda.json
index 175957f14f6..d37e97683c9 100644
--- a/icons/cup-soda.json
+++ b/icons/cup-soda.json
@@ -16,4 +16,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/currency.json b/icons/currency.json
index 81f7d6fc986..3a39571bab7 100644
--- a/icons/currency.json
+++ b/icons/currency.json
@@ -12,4 +12,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/cylinder.json b/icons/cylinder.json
index 3025084abdc..3d9448124da 100644
--- a/icons/cylinder.json
+++ b/icons/cylinder.json
@@ -17,4 +17,4 @@
     "design",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/database-backup.json b/icons/database-backup.json
index 7d3deeb448e..2006eaf27bf 100644
--- a/icons/database-backup.json
+++ b/icons/database-backup.json
@@ -24,4 +24,4 @@
     "development",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/database-zap.json b/icons/database-zap.json
index 67994204944..8822b07450a 100644
--- a/icons/database-zap.json
+++ b/icons/database-zap.json
@@ -16,4 +16,4 @@
     "devices",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/delete.json b/icons/delete.json
index 3362b7cb209..d1a17776c3e 100644
--- a/icons/delete.json
+++ b/icons/delete.json
@@ -14,4 +14,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dessert.json b/icons/dessert.json
index 2ba7e8fb569..39acaa75666 100644
--- a/icons/dessert.json
+++ b/icons/dessert.json
@@ -24,4 +24,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/diameter.json b/icons/diameter.json
index 47794349360..49042920ac3 100644
--- a/icons/diameter.json
+++ b/icons/diameter.json
@@ -20,4 +20,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/diamond.json b/icons/diamond.json
index c505c4be64f..307369cdca4 100644
--- a/icons/diamond.json
+++ b/icons/diamond.json
@@ -19,4 +19,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dice-1.json b/icons/dice-1.json
index 7a1434417fd..ce073d1cc19 100644
--- a/icons/dice-1.json
+++ b/icons/dice-1.json
@@ -15,4 +15,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dice-2.json b/icons/dice-2.json
index c736eefbb21..1f4603acbfc 100644
--- a/icons/dice-2.json
+++ b/icons/dice-2.json
@@ -15,4 +15,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dice-3.json b/icons/dice-3.json
index 9b1de8271f9..98a0c341f72 100644
--- a/icons/dice-3.json
+++ b/icons/dice-3.json
@@ -15,4 +15,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dice-4.json b/icons/dice-4.json
index b327905216e..f84401723f9 100644
--- a/icons/dice-4.json
+++ b/icons/dice-4.json
@@ -15,4 +15,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dice-5.json b/icons/dice-5.json
index 37d105d70b9..07a4543d841 100644
--- a/icons/dice-5.json
+++ b/icons/dice-5.json
@@ -15,4 +15,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dice-6.json b/icons/dice-6.json
index e5fdbda308b..1d071f0c94e 100644
--- a/icons/dice-6.json
+++ b/icons/dice-6.json
@@ -15,4 +15,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dices.json b/icons/dices.json
index 4a3180b8088..cad1fc71b40 100644
--- a/icons/dices.json
+++ b/icons/dices.json
@@ -14,4 +14,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/diff.json b/icons/diff.json
index 4a64d1f6fb4..63da516da91 100644
--- a/icons/diff.json
+++ b/icons/diff.json
@@ -17,4 +17,4 @@
     "development",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/disc-2.json b/icons/disc-2.json
index 19c7cd9bb7c..c26b4ad9909 100644
--- a/icons/disc-2.json
+++ b/icons/disc-2.json
@@ -22,4 +22,4 @@
     "devices",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/disc-3.json b/icons/disc-3.json
index b54f61350ba..c1be208a9ce 100644
--- a/icons/disc-3.json
+++ b/icons/disc-3.json
@@ -20,4 +20,4 @@
     "devices",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/disc-album.json b/icons/disc-album.json
index d85399b5cf7..3b3e57c4e06 100644
--- a/icons/disc-album.json
+++ b/icons/disc-album.json
@@ -21,10 +21,10 @@
     "spin",
     "rotate",
     "rpm",
-    "dj"    
+    "dj"
   ],
   "categories": [
     "devices",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/disc.json b/icons/disc.json
index 89c130d51a4..cb833f1ad30 100644
--- a/icons/disc.json
+++ b/icons/disc.json
@@ -30,4 +30,4 @@
     "devices",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/divide-circle.json b/icons/divide-circle.json
index 8cc4a05ea34..bbcf9499e7c 100644
--- a/icons/divide-circle.json
+++ b/icons/divide-circle.json
@@ -14,4 +14,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/divide-square.json b/icons/divide-square.json
index 8cc4a05ea34..bbcf9499e7c 100644
--- a/icons/divide-square.json
+++ b/icons/divide-square.json
@@ -14,4 +14,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/divide.json b/icons/divide.json
index f873815d865..8dc73400656 100644
--- a/icons/divide.json
+++ b/icons/divide.json
@@ -17,4 +17,4 @@
     "maths",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dna-off.json b/icons/dna-off.json
index 42ab71148de..75a76a21e01 100644
--- a/icons/dna-off.json
+++ b/icons/dna-off.json
@@ -16,4 +16,4 @@
     "medical",
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dna.json b/icons/dna.json
index 95db81938e9..49aa4194974 100644
--- a/icons/dna.json
+++ b/icons/dna.json
@@ -14,4 +14,4 @@
   "categories": [
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dog.json b/icons/dog.json
index d9e54978624..0ede66aa31a 100644
--- a/icons/dog.json
+++ b/icons/dog.json
@@ -14,4 +14,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dollar-sign.json b/icons/dollar-sign.json
index af3ee3f48b1..aa01b2053be 100644
--- a/icons/dollar-sign.json
+++ b/icons/dollar-sign.json
@@ -15,4 +15,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/donut.json b/icons/donut.json
index 24778cfd686..707c4df7c08 100644
--- a/icons/donut.json
+++ b/icons/donut.json
@@ -20,4 +20,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/door-closed.json b/icons/door-closed.json
index b28b00398da..9a213ac0659 100644
--- a/icons/door-closed.json
+++ b/icons/door-closed.json
@@ -19,4 +19,4 @@
     "furniture",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/door-open.json b/icons/door-open.json
index b28b00398da..9a213ac0659 100644
--- a/icons/door-open.json
+++ b/icons/door-open.json
@@ -19,4 +19,4 @@
     "furniture",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dot-square.json b/icons/dot-square.json
index 27a7216c1d2..5bcd5f22a30 100644
--- a/icons/dot-square.json
+++ b/icons/dot-square.json
@@ -18,4 +18,4 @@
   "aliases": [
     "square-dot"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dot.json b/icons/dot.json
index f2cc8c34877..9ebdc60b5c4 100644
--- a/icons/dot.json
+++ b/icons/dot.json
@@ -26,4 +26,4 @@
     "shapes",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/download-cloud.json b/icons/download-cloud.json
index 7df9574918c..a97ead8eb6c 100644
--- a/icons/download-cloud.json
+++ b/icons/download-cloud.json
@@ -13,4 +13,4 @@
     "arrows",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/download.json b/icons/download.json
index b65f4a9d886..670c9226180 100644
--- a/icons/download.json
+++ b/icons/download.json
@@ -14,4 +14,4 @@
     "arrows",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/drafting-compass.json b/icons/drafting-compass.json
index 55530b67c4a..0d56461cb5f 100644
--- a/icons/drafting-compass.json
+++ b/icons/drafting-compass.json
@@ -22,4 +22,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/drama.json b/icons/drama.json
index 0c44f6ee9ee..83031ba4649 100644
--- a/icons/drama.json
+++ b/icons/drama.json
@@ -1,17 +1,17 @@
 {
-    "$schema": "../icon.schema.json",
-    "contributors": [
-        "danielbayley"
-    ],
-    "tags": [
-        "drama",
-        "masks",
-        "theater",
-        "theatre",
-        "entertainment",
-        "show"
-    ],
-    "categories": [
-        "multimedia"
-    ]
-}
\ No newline at end of file
+  "$schema": "../icon.schema.json",
+  "contributors": [
+    "danielbayley"
+  ],
+  "tags": [
+    "drama",
+    "masks",
+    "theater",
+    "theatre",
+    "entertainment",
+    "show"
+  ],
+  "categories": [
+    "multimedia"
+  ]
+}
diff --git a/icons/drill.json b/icons/drill.json
index c06da84686c..e676bf3e6bc 100644
--- a/icons/drill.json
+++ b/icons/drill.json
@@ -18,4 +18,4 @@
     "home",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/droplet.json b/icons/droplet.json
index 237b4fb973f..5358031a1dc 100644
--- a/icons/droplet.json
+++ b/icons/droplet.json
@@ -14,4 +14,4 @@
     "weather",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/droplets.json b/icons/droplets.json
index d43d0a7fa22..0d3dc6455ff 100644
--- a/icons/droplets.json
+++ b/icons/droplets.json
@@ -12,4 +12,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/drum.json b/icons/drum.json
index cf94b65f13e..65a1653e018 100644
--- a/icons/drum.json
+++ b/icons/drum.json
@@ -27,4 +27,4 @@
     "multimedia",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/drumstick.json b/icons/drumstick.json
index 6171127e544..6a0efeee421 100644
--- a/icons/drumstick.json
+++ b/icons/drumstick.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/dumbbell.json b/icons/dumbbell.json
index 6ef651d47bd..44822461b08 100644
--- a/icons/dumbbell.json
+++ b/icons/dumbbell.json
@@ -14,4 +14,4 @@
     "maps",
     "sports"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ear-off.json b/icons/ear-off.json
index 546a86c8fb6..cc1084eae96 100644
--- a/icons/ear-off.json
+++ b/icons/ear-off.json
@@ -18,4 +18,4 @@
     "medical",
     "accessibility"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ear.json b/icons/ear.json
index 8e0788f6452..a8137de7b0d 100644
--- a/icons/ear.json
+++ b/icons/ear.json
@@ -14,4 +14,4 @@
     "medical",
     "accessibility"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/eclipse.json b/icons/eclipse.json
index 3d49d16df9c..bae6111a895 100644
--- a/icons/eclipse.json
+++ b/icons/eclipse.json
@@ -35,4 +35,4 @@
     "accessibility",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/egg-fried.json b/icons/egg-fried.json
index e42c88f158d..b269f3a62a7 100644
--- a/icons/egg-fried.json
+++ b/icons/egg-fried.json
@@ -11,4 +11,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/egg-off.json b/icons/egg-off.json
index 892368f8cbd..693f6f0963e 100644
--- a/icons/egg-off.json
+++ b/icons/egg-off.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/egg.json b/icons/egg.json
index 24c09626486..7796cdc1801 100644
--- a/icons/egg.json
+++ b/icons/egg.json
@@ -23,4 +23,4 @@
     "food-beverage",
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/equal-not.json b/icons/equal-not.json
index aab097580f0..354e984e9eb 100644
--- a/icons/equal-not.json
+++ b/icons/equal-not.json
@@ -15,4 +15,4 @@
     "maths",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/equal-square.json b/icons/equal-square.json
index a355a61b1cf..1729668ba9b 100644
--- a/icons/equal-square.json
+++ b/icons/equal-square.json
@@ -16,4 +16,4 @@
   "aliases": [
     "square-equal"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/equal.json b/icons/equal.json
index 9910209f2ac..4825a370506 100644
--- a/icons/equal.json
+++ b/icons/equal.json
@@ -15,4 +15,4 @@
     "maths",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/eraser.json b/icons/eraser.json
index e1b6e895b0d..ec4ca1ceea0 100644
--- a/icons/eraser.json
+++ b/icons/eraser.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/euro.json b/icons/euro.json
index c70558d50cb..18aa12075b5 100644
--- a/icons/euro.json
+++ b/icons/euro.json
@@ -13,4 +13,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/expand.json b/icons/expand.json
index a8cbcf13af2..5d178edac44 100644
--- a/icons/expand.json
+++ b/icons/expand.json
@@ -11,4 +11,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/external-link.json b/icons/external-link.json
index f5b8863cf5d..ab1f44b6aaa 100644
--- a/icons/external-link.json
+++ b/icons/external-link.json
@@ -15,4 +15,4 @@
     "text",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/eye-off.json b/icons/eye-off.json
index 5bb2ced6ced..6cfcf6fc628 100644
--- a/icons/eye-off.json
+++ b/icons/eye-off.json
@@ -16,4 +16,4 @@
     "accessibility",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/eye.json b/icons/eye.json
index 30a385e279e..7fcbee1095b 100644
--- a/icons/eye.json
+++ b/icons/eye.json
@@ -13,4 +13,4 @@
     "accessibility",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/factory.json b/icons/factory.json
index d39266b2a61..a7c6d78c280 100644
--- a/icons/factory.json
+++ b/icons/factory.json
@@ -15,4 +15,4 @@
   "categories": [
     "buildings"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fan.json b/icons/fan.json
index cc87a7b067c..e63b4d552b4 100644
--- a/icons/fan.json
+++ b/icons/fan.json
@@ -13,4 +13,4 @@
   "categories": [
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fast-forward.json b/icons/fast-forward.json
index 29793983905..ea94939fefd 100644
--- a/icons/fast-forward.json
+++ b/icons/fast-forward.json
@@ -10,4 +10,4 @@
     "multimedia",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/feather.json b/icons/feather.json
index 1d3f2c05a9a..417e66f6fda 100644
--- a/icons/feather.json
+++ b/icons/feather.json
@@ -11,4 +11,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fence.json b/icons/fence.json
index a5c82670772..67431ac500d 100644
--- a/icons/fence.json
+++ b/icons/fence.json
@@ -18,4 +18,4 @@
     "home",
     "buildings"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ferris-wheel.json b/icons/ferris-wheel.json
index cd4b0825b00..3ce96913ea8 100644
--- a/icons/ferris-wheel.json
+++ b/icons/ferris-wheel.json
@@ -16,4 +16,4 @@
   "categories": [
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-archive.json b/icons/file-archive.json
index 49e2f0252f2..13396e475f6 100644
--- a/icons/file-archive.json
+++ b/icons/file-archive.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-audio-2.json b/icons/file-audio-2.json
index 6c6dcce1280..705de81bca2 100644
--- a/icons/file-audio-2.json
+++ b/icons/file-audio-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-audio.json b/icons/file-audio.json
index 6c6dcce1280..705de81bca2 100644
--- a/icons/file-audio.json
+++ b/icons/file-audio.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-axis-3d.json b/icons/file-axis-3d.json
index 5a45cbfb108..c3dc1243856 100644
--- a/icons/file-axis-3d.json
+++ b/icons/file-axis-3d.json
@@ -17,4 +17,4 @@
   "aliases": [
     "file-axis-3-d"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-badge-2.json b/icons/file-badge-2.json
index 4fd3d427985..ef42d83974a 100644
--- a/icons/file-badge-2.json
+++ b/icons/file-badge-2.json
@@ -15,4 +15,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-badge.json b/icons/file-badge.json
index 4fd3d427985..ef42d83974a 100644
--- a/icons/file-badge.json
+++ b/icons/file-badge.json
@@ -15,4 +15,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-bar-chart-2.json b/icons/file-bar-chart-2.json
index 3e588ccb020..2575245405f 100644
--- a/icons/file-bar-chart-2.json
+++ b/icons/file-bar-chart-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-bar-chart.json b/icons/file-bar-chart.json
index 3e588ccb020..2575245405f 100644
--- a/icons/file-bar-chart.json
+++ b/icons/file-bar-chart.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-box.json b/icons/file-box.json
index 880afa7939c..4372b365768 100644
--- a/icons/file-box.json
+++ b/icons/file-box.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-check-2.json b/icons/file-check-2.json
index 52331581696..68d74876497 100644
--- a/icons/file-check-2.json
+++ b/icons/file-check-2.json
@@ -16,4 +16,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-check.json b/icons/file-check.json
index effea9ab20f..35878033c0b 100644
--- a/icons/file-check.json
+++ b/icons/file-check.json
@@ -15,4 +15,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-clock.json b/icons/file-clock.json
index 9823fa40461..d9dd1c89022 100644
--- a/icons/file-clock.json
+++ b/icons/file-clock.json
@@ -13,4 +13,4 @@
     "files",
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-code-2.json b/icons/file-code-2.json
index afd1145841b..26fe6076545 100644
--- a/icons/file-code-2.json
+++ b/icons/file-code-2.json
@@ -17,4 +17,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-code.json b/icons/file-code.json
index 5ff96415fd6..52f122d4f52 100644
--- a/icons/file-code.json
+++ b/icons/file-code.json
@@ -18,4 +18,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-diff.json b/icons/file-diff.json
index 69ee0674732..ee63850152f 100644
--- a/icons/file-diff.json
+++ b/icons/file-diff.json
@@ -12,4 +12,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-digit.json b/icons/file-digit.json
index 9bdabd935b5..d3aefb703c7 100644
--- a/icons/file-digit.json
+++ b/icons/file-digit.json
@@ -13,4 +13,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-down.json b/icons/file-down.json
index 88db7d2ec18..5f089c6e0eb 100644
--- a/icons/file-down.json
+++ b/icons/file-down.json
@@ -13,4 +13,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-heart.json b/icons/file-heart.json
index df46a736222..e43b893025d 100644
--- a/icons/file-heart.json
+++ b/icons/file-heart.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-image.json b/icons/file-image.json
index 9e2016db077..71ac4db5736 100644
--- a/icons/file-image.json
+++ b/icons/file-image.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-input.json b/icons/file-input.json
index 7a7110d9726..6fba8b503ce 100644
--- a/icons/file-input.json
+++ b/icons/file-input.json
@@ -13,4 +13,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-json-2.json b/icons/file-json-2.json
index 072f483a10a..a175e354205 100644
--- a/icons/file-json-2.json
+++ b/icons/file-json-2.json
@@ -14,4 +14,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-json.json b/icons/file-json.json
index 072f483a10a..a175e354205 100644
--- a/icons/file-json.json
+++ b/icons/file-json.json
@@ -14,4 +14,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-key-2.json b/icons/file-key-2.json
index 24a07e7795e..25aecd1bebc 100644
--- a/icons/file-key-2.json
+++ b/icons/file-key-2.json
@@ -14,4 +14,4 @@
     "files",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-key.json b/icons/file-key.json
index 24a07e7795e..25aecd1bebc 100644
--- a/icons/file-key.json
+++ b/icons/file-key.json
@@ -14,4 +14,4 @@
     "files",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-line-chart.json b/icons/file-line-chart.json
index 3e588ccb020..2575245405f 100644
--- a/icons/file-line-chart.json
+++ b/icons/file-line-chart.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-lock-2.json b/icons/file-lock-2.json
index 01030ac5303..ba9a6bac010 100644
--- a/icons/file-lock-2.json
+++ b/icons/file-lock-2.json
@@ -14,4 +14,4 @@
     "files",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-lock.json b/icons/file-lock.json
index 01030ac5303..ba9a6bac010 100644
--- a/icons/file-lock.json
+++ b/icons/file-lock.json
@@ -14,4 +14,4 @@
     "files",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-minus-2.json b/icons/file-minus-2.json
index 203b8a736fa..3b4bd9c5d43 100644
--- a/icons/file-minus-2.json
+++ b/icons/file-minus-2.json
@@ -11,4 +11,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-minus.json b/icons/file-minus.json
index 00232cfe0f8..0fbd6e97f8f 100644
--- a/icons/file-minus.json
+++ b/icons/file-minus.json
@@ -14,4 +14,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-music.json b/icons/file-music.json
index 6040dd4160e..51ae6b8496f 100644
--- a/icons/file-music.json
+++ b/icons/file-music.json
@@ -23,4 +23,4 @@
     "files",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-output.json b/icons/file-output.json
index 7a7110d9726..6fba8b503ce 100644
--- a/icons/file-output.json
+++ b/icons/file-output.json
@@ -13,4 +13,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-pen-line.json b/icons/file-pen-line.json
index 9f6efc34a7b..e8474626707 100644
--- a/icons/file-pen-line.json
+++ b/icons/file-pen-line.json
@@ -14,4 +14,4 @@
   "aliases": [
     "file-signature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-pen.json b/icons/file-pen.json
index 053c80b8f40..de3d4489dc3 100644
--- a/icons/file-pen.json
+++ b/icons/file-pen.json
@@ -13,4 +13,4 @@
   "aliases": [
     "file-edit"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-pie-chart.json b/icons/file-pie-chart.json
index 3e588ccb020..2575245405f 100644
--- a/icons/file-pie-chart.json
+++ b/icons/file-pie-chart.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-plus-2.json b/icons/file-plus-2.json
index 811db3c3dc8..8c947160dcf 100644
--- a/icons/file-plus-2.json
+++ b/icons/file-plus-2.json
@@ -14,4 +14,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-plus.json b/icons/file-plus.json
index e6ab41a7c5a..fa9ecf4bb7f 100644
--- a/icons/file-plus.json
+++ b/icons/file-plus.json
@@ -14,4 +14,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-question.json b/icons/file-question.json
index 63bf66106d0..5c7704c5cd4 100644
--- a/icons/file-question.json
+++ b/icons/file-question.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-scan.json b/icons/file-scan.json
index f44701b3a80..ee3e7dad2ad 100644
--- a/icons/file-scan.json
+++ b/icons/file-scan.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-search-2.json b/icons/file-search-2.json
index 528348cacec..55595a8e068 100644
--- a/icons/file-search-2.json
+++ b/icons/file-search-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-search.json b/icons/file-search.json
index dcf711e7528..3b4693167dc 100644
--- a/icons/file-search.json
+++ b/icons/file-search.json
@@ -14,4 +14,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-sliders.json b/icons/file-sliders.json
index f4774ba04ee..3206f8a3a1c 100644
--- a/icons/file-sliders.json
+++ b/icons/file-sliders.json
@@ -21,4 +21,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-spreadsheet.json b/icons/file-spreadsheet.json
index 4f8cdbfb490..4c2221f1e5a 100644
--- a/icons/file-spreadsheet.json
+++ b/icons/file-spreadsheet.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-stack.json b/icons/file-stack.json
index 0dac4d31623..61f3330b491 100644
--- a/icons/file-stack.json
+++ b/icons/file-stack.json
@@ -16,4 +16,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-symlink.json b/icons/file-symlink.json
index 8fee65484ff..188c124c013 100644
--- a/icons/file-symlink.json
+++ b/icons/file-symlink.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-terminal.json b/icons/file-terminal.json
index 6c1cf15dbaa..5f522a65112 100644
--- a/icons/file-terminal.json
+++ b/icons/file-terminal.json
@@ -14,4 +14,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-text.json b/icons/file-text.json
index b4c259abc9d..9ecf8958ec4 100644
--- a/icons/file-text.json
+++ b/icons/file-text.json
@@ -15,4 +15,4 @@
     "files",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-type-2.json b/icons/file-type-2.json
index 0b48b6aabb5..791f9916ddc 100644
--- a/icons/file-type-2.json
+++ b/icons/file-type-2.json
@@ -14,4 +14,4 @@
     "files",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-type.json b/icons/file-type.json
index 0b48b6aabb5..791f9916ddc 100644
--- a/icons/file-type.json
+++ b/icons/file-type.json
@@ -14,4 +14,4 @@
     "files",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-up.json b/icons/file-up.json
index c95049a05fb..daa4fa18d58 100644
--- a/icons/file-up.json
+++ b/icons/file-up.json
@@ -13,4 +13,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-video-2.json b/icons/file-video-2.json
index 4d9123e4ea7..ddef0abbcf6 100644
--- a/icons/file-video-2.json
+++ b/icons/file-video-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-video.json b/icons/file-video.json
index 3f7cb81e7c8..fc4968b0c08 100644
--- a/icons/file-video.json
+++ b/icons/file-video.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-volume-2.json b/icons/file-volume-2.json
index 1ada130066e..d845237c537 100644
--- a/icons/file-volume-2.json
+++ b/icons/file-volume-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-volume.json b/icons/file-volume.json
index 91d16a4482e..4754acc7ee0 100644
--- a/icons/file-volume.json
+++ b/icons/file-volume.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-warning.json b/icons/file-warning.json
index 9cd00493583..2827a924b99 100644
--- a/icons/file-warning.json
+++ b/icons/file-warning.json
@@ -16,4 +16,4 @@
     "files",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-x-2.json b/icons/file-x-2.json
index d7b05b868d3..4cdd046e95b 100644
--- a/icons/file-x-2.json
+++ b/icons/file-x-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file-x.json b/icons/file-x.json
index d7b05b868d3..4cdd046e95b 100644
--- a/icons/file-x.json
+++ b/icons/file-x.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/file.json b/icons/file.json
index fa33b0a6680..84a93dae184 100644
--- a/icons/file.json
+++ b/icons/file.json
@@ -11,4 +11,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/files.json b/icons/files.json
index d16b860b2d1..c4c39e1173a 100644
--- a/icons/files.json
+++ b/icons/files.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/film.json b/icons/film.json
index 8f45c86e4c7..ee12fb3abda 100644
--- a/icons/film.json
+++ b/icons/film.json
@@ -17,4 +17,4 @@
     "photography",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/filter-x.json b/icons/filter-x.json
index 64ecf0b9c2f..f26d6e8e2c0 100644
--- a/icons/filter-x.json
+++ b/icons/filter-x.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/filter.json b/icons/filter.json
index 1545568b022..7d59941456f 100644
--- a/icons/filter.json
+++ b/icons/filter.json
@@ -10,4 +10,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fingerprint.json b/icons/fingerprint.json
index 8ba4584692e..6606cb8ffbe 100644
--- a/icons/fingerprint.json
+++ b/icons/fingerprint.json
@@ -16,4 +16,4 @@
     "medical",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fire-extinguisher.json b/icons/fire-extinguisher.json
index 44b7f109329..1632e78a5ba 100644
--- a/icons/fire-extinguisher.json
+++ b/icons/fire-extinguisher.json
@@ -29,4 +29,4 @@
     "tools",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fish-off.json b/icons/fish-off.json
index b1d78cada53..4abfe38cd87 100644
--- a/icons/fish-off.json
+++ b/icons/fish-off.json
@@ -24,4 +24,4 @@
     "food-beverage",
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fish.json b/icons/fish.json
index 0788986937e..1f4ff85f8a7 100644
--- a/icons/fish.json
+++ b/icons/fish.json
@@ -17,4 +17,4 @@
     "food-beverage",
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flag-off.json b/icons/flag-off.json
index acb6628b8f9..3e7a0180b69 100644
--- a/icons/flag-off.json
+++ b/icons/flag-off.json
@@ -12,4 +12,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flag-triangle-left.json b/icons/flag-triangle-left.json
index 65412051271..6d0e2a1dcb5 100644
--- a/icons/flag-triangle-left.json
+++ b/icons/flag-triangle-left.json
@@ -11,4 +11,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flag-triangle-right.json b/icons/flag-triangle-right.json
index 65412051271..6d0e2a1dcb5 100644
--- a/icons/flag-triangle-right.json
+++ b/icons/flag-triangle-right.json
@@ -11,4 +11,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flag.json b/icons/flag.json
index 5d2f6851757..a44f6ebdeb0 100644
--- a/icons/flag.json
+++ b/icons/flag.json
@@ -11,4 +11,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flame-kindling.json b/icons/flame-kindling.json
index ab768bf706f..4fc8567ec38 100644
--- a/icons/flame-kindling.json
+++ b/icons/flame-kindling.json
@@ -19,4 +19,4 @@
     "social",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flame.json b/icons/flame.json
index 1f68cfb1de0..957cff976ef 100644
--- a/icons/flame.json
+++ b/icons/flame.json
@@ -24,4 +24,4 @@
     "social",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flashlight-off.json b/icons/flashlight-off.json
index b4703473597..527f4ea9268 100644
--- a/icons/flashlight-off.json
+++ b/icons/flashlight-off.json
@@ -13,4 +13,4 @@
     "photography",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flashlight.json b/icons/flashlight.json
index e2c92829ef1..1084ff551a8 100644
--- a/icons/flashlight.json
+++ b/icons/flashlight.json
@@ -11,4 +11,4 @@
     "photography",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flask-conical-off.json b/icons/flask-conical-off.json
index 6bb846fb522..a29185e89a7 100644
--- a/icons/flask-conical-off.json
+++ b/icons/flask-conical-off.json
@@ -17,4 +17,4 @@
     "science",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flask-conical.json b/icons/flask-conical.json
index 770c4c6d19a..4855da991cd 100644
--- a/icons/flask-conical.json
+++ b/icons/flask-conical.json
@@ -17,4 +17,4 @@
     "science",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flask-round.json b/icons/flask-round.json
index 4e8f9f836c9..f751ea3accf 100644
--- a/icons/flask-round.json
+++ b/icons/flask-round.json
@@ -16,4 +16,4 @@
     "science",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flip-horizontal-2.json b/icons/flip-horizontal-2.json
index 52d169c070a..a4a1a9a5b0d 100644
--- a/icons/flip-horizontal-2.json
+++ b/icons/flip-horizontal-2.json
@@ -14,4 +14,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flip-horizontal.json b/icons/flip-horizontal.json
index 52d169c070a..a4a1a9a5b0d 100644
--- a/icons/flip-horizontal.json
+++ b/icons/flip-horizontal.json
@@ -14,4 +14,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flip-vertical-2.json b/icons/flip-vertical-2.json
index fa33391d3d9..11858736dbb 100644
--- a/icons/flip-vertical-2.json
+++ b/icons/flip-vertical-2.json
@@ -15,4 +15,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flip-vertical.json b/icons/flip-vertical.json
index 52d169c070a..a4a1a9a5b0d 100644
--- a/icons/flip-vertical.json
+++ b/icons/flip-vertical.json
@@ -14,4 +14,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flower-2.json b/icons/flower-2.json
index 3e1e1763536..9cfdc938f76 100644
--- a/icons/flower-2.json
+++ b/icons/flower-2.json
@@ -13,4 +13,4 @@
     "sustainability",
     "seasons"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/flower.json b/icons/flower.json
index e58d583e3be..86390381b93 100644
--- a/icons/flower.json
+++ b/icons/flower.json
@@ -14,4 +14,4 @@
     "gaming",
     "sustainability"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/focus.json b/icons/focus.json
index f08f7248762..f16aef1feaf 100644
--- a/icons/focus.json
+++ b/icons/focus.json
@@ -15,4 +15,4 @@
   "categories": [
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fold-horizontal.json b/icons/fold-horizontal.json
index 647cefdd8fa..3a796795b43 100644
--- a/icons/fold-horizontal.json
+++ b/icons/fold-horizontal.json
@@ -15,4 +15,4 @@
     "arrows",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fold-vertical.json b/icons/fold-vertical.json
index 647cefdd8fa..3a796795b43 100644
--- a/icons/fold-vertical.json
+++ b/icons/fold-vertical.json
@@ -15,4 +15,4 @@
     "arrows",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-archive.json b/icons/folder-archive.json
index e53e50d2f35..e299dbc6233 100644
--- a/icons/folder-archive.json
+++ b/icons/folder-archive.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-check.json b/icons/folder-check.json
index 8a8ceb60bd8..353ffbaa60a 100644
--- a/icons/folder-check.json
+++ b/icons/folder-check.json
@@ -15,4 +15,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-clock.json b/icons/folder-clock.json
index 9453dfd15be..b1ad9869174 100644
--- a/icons/folder-clock.json
+++ b/icons/folder-clock.json
@@ -13,4 +13,4 @@
     "files",
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-closed.json b/icons/folder-closed.json
index a4d3ef8c90c..8318780db39 100644
--- a/icons/folder-closed.json
+++ b/icons/folder-closed.json
@@ -11,4 +11,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-dot.json b/icons/folder-dot.json
index 10d78be40a5..66dc979065b 100644
--- a/icons/folder-dot.json
+++ b/icons/folder-dot.json
@@ -26,4 +26,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-down.json b/icons/folder-down.json
index d72544d2df2..49719e69bfa 100644
--- a/icons/folder-down.json
+++ b/icons/folder-down.json
@@ -14,4 +14,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-git-2.json b/icons/folder-git-2.json
index c1462770cf3..7c250d7f393 100644
--- a/icons/folder-git-2.json
+++ b/icons/folder-git-2.json
@@ -15,4 +15,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-git.json b/icons/folder-git.json
index c1462770cf3..7c250d7f393 100644
--- a/icons/folder-git.json
+++ b/icons/folder-git.json
@@ -15,4 +15,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-heart.json b/icons/folder-heart.json
index 90f240fb08d..1767313fe20 100644
--- a/icons/folder-heart.json
+++ b/icons/folder-heart.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-input.json b/icons/folder-input.json
index cc171b23f3a..ce713af6aee 100644
--- a/icons/folder-input.json
+++ b/icons/folder-input.json
@@ -13,4 +13,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-kanban.json b/icons/folder-kanban.json
index 249d2e79bf3..cedd7bbc7f8 100644
--- a/icons/folder-kanban.json
+++ b/icons/folder-kanban.json
@@ -28,4 +28,4 @@
     "design",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-key.json b/icons/folder-key.json
index 5faf791c606..9a346663b67 100644
--- a/icons/folder-key.json
+++ b/icons/folder-key.json
@@ -14,4 +14,4 @@
     "files",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-lock.json b/icons/folder-lock.json
index dbc878e2fef..51174b2c1dd 100644
--- a/icons/folder-lock.json
+++ b/icons/folder-lock.json
@@ -15,4 +15,4 @@
     "files",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-minus.json b/icons/folder-minus.json
index 50fe3ee610e..36af2703874 100644
--- a/icons/folder-minus.json
+++ b/icons/folder-minus.json
@@ -14,4 +14,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-open-dot.json b/icons/folder-open-dot.json
index c2ece7c128b..f8ec54ea4da 100644
--- a/icons/folder-open-dot.json
+++ b/icons/folder-open-dot.json
@@ -15,4 +15,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-open.json b/icons/folder-open.json
index e38e84015a8..448c5706da1 100644
--- a/icons/folder-open.json
+++ b/icons/folder-open.json
@@ -10,4 +10,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-output.json b/icons/folder-output.json
index cc171b23f3a..ce713af6aee 100644
--- a/icons/folder-output.json
+++ b/icons/folder-output.json
@@ -13,4 +13,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-pen.json b/icons/folder-pen.json
index 3dcc9debbab..045bb0f28a4 100644
--- a/icons/folder-pen.json
+++ b/icons/folder-pen.json
@@ -13,4 +13,4 @@
   "aliases": [
     "folder-edit"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-plus.json b/icons/folder-plus.json
index e37ad98fd45..813ecd4b3fc 100644
--- a/icons/folder-plus.json
+++ b/icons/folder-plus.json
@@ -15,4 +15,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-root.json b/icons/folder-root.json
index 22561bb2f42..982ba548440 100644
--- a/icons/folder-root.json
+++ b/icons/folder-root.json
@@ -14,4 +14,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-search-2.json b/icons/folder-search-2.json
index cb6fc32dd8e..d994958d45a 100644
--- a/icons/folder-search-2.json
+++ b/icons/folder-search-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-search.json b/icons/folder-search.json
index cb6fc32dd8e..d994958d45a 100644
--- a/icons/folder-search.json
+++ b/icons/folder-search.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-symlink.json b/icons/folder-symlink.json
index b1d6b7b23f3..10f6efb8e63 100644
--- a/icons/folder-symlink.json
+++ b/icons/folder-symlink.json
@@ -13,4 +13,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-tree.json b/icons/folder-tree.json
index b03436933bc..bfa3154f0df 100644
--- a/icons/folder-tree.json
+++ b/icons/folder-tree.json
@@ -11,4 +11,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-up.json b/icons/folder-up.json
index 07bb1851f8e..6dfcd0abd9c 100644
--- a/icons/folder-up.json
+++ b/icons/folder-up.json
@@ -14,4 +14,4 @@
     "files",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder-x.json b/icons/folder-x.json
index 5169309e896..cd869e419a7 100644
--- a/icons/folder-x.json
+++ b/icons/folder-x.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folder.json b/icons/folder.json
index fede20c72f7..f293aad2cd0 100644
--- a/icons/folder.json
+++ b/icons/folder.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/folders.json b/icons/folders.json
index 3cce51ae5ad..dc901da20e7 100644
--- a/icons/folders.json
+++ b/icons/folders.json
@@ -12,4 +12,4 @@
   "categories": [
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/footprints.json b/icons/footprints.json
index b47ed6957fd..6ac82f7fb32 100644
--- a/icons/footprints.json
+++ b/icons/footprints.json
@@ -14,4 +14,4 @@
   "categories": [
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/forklift.json b/icons/forklift.json
index 1094b96d64f..8946133bda3 100644
--- a/icons/forklift.json
+++ b/icons/forklift.json
@@ -11,4 +11,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/form-input.json b/icons/form-input.json
index 37206e4d3ec..c8c2eb58bf9 100644
--- a/icons/form-input.json
+++ b/icons/form-input.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/forward.json b/icons/forward.json
index 933357618d1..417aeb8ad54 100644
--- a/icons/forward.json
+++ b/icons/forward.json
@@ -13,4 +13,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/frame.json b/icons/frame.json
index 2aa6758adad..1a2f84af825 100644
--- a/icons/frame.json
+++ b/icons/frame.json
@@ -14,4 +14,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/frown.json b/icons/frown.json
index f648881eb3a..af539da6a25 100644
--- a/icons/frown.json
+++ b/icons/frown.json
@@ -17,4 +17,4 @@
     "emoji",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fuel.json b/icons/fuel.json
index 951f3dde6fc..789ccbfd2f7 100644
--- a/icons/fuel.json
+++ b/icons/fuel.json
@@ -14,4 +14,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/fullscreen.json b/icons/fullscreen.json
index 1784e43831f..d30d3c95ef6 100644
--- a/icons/fullscreen.json
+++ b/icons/fullscreen.json
@@ -18,4 +18,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/function-square.json b/icons/function-square.json
index 0c721dfaf10..a2169e04140 100644
--- a/icons/function-square.json
+++ b/icons/function-square.json
@@ -15,4 +15,4 @@
     "shapes",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gallery-horizontal-end.json b/icons/gallery-horizontal-end.json
index 90754d06dc5..dde3780ce44 100644
--- a/icons/gallery-horizontal-end.json
+++ b/icons/gallery-horizontal-end.json
@@ -24,4 +24,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gallery-horizontal.json b/icons/gallery-horizontal.json
index 91f9bc182bf..a97d43beee9 100644
--- a/icons/gallery-horizontal.json
+++ b/icons/gallery-horizontal.json
@@ -19,4 +19,4 @@
     "photography",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gallery-thumbnails.json b/icons/gallery-thumbnails.json
index 5de568dcede..cee41c35a9f 100644
--- a/icons/gallery-thumbnails.json
+++ b/icons/gallery-thumbnails.json
@@ -18,4 +18,4 @@
     "photography",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gallery-vertical-end.json b/icons/gallery-vertical-end.json
index 90754d06dc5..dde3780ce44 100644
--- a/icons/gallery-vertical-end.json
+++ b/icons/gallery-vertical-end.json
@@ -24,4 +24,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gallery-vertical.json b/icons/gallery-vertical.json
index 91f9bc182bf..a97d43beee9 100644
--- a/icons/gallery-vertical.json
+++ b/icons/gallery-vertical.json
@@ -19,4 +19,4 @@
     "photography",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gamepad-2.json b/icons/gamepad-2.json
index 52e9c58b24c..afd262c12ed 100644
--- a/icons/gamepad-2.json
+++ b/icons/gamepad-2.json
@@ -12,4 +12,4 @@
     "gaming",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gamepad.json b/icons/gamepad.json
index df6d4fbc44c..4cdebc81138 100644
--- a/icons/gamepad.json
+++ b/icons/gamepad.json
@@ -11,4 +11,4 @@
     "gaming",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gantt-chart.json b/icons/gantt-chart.json
index 01ed68c35a8..4c86f772bcd 100644
--- a/icons/gantt-chart.json
+++ b/icons/gantt-chart.json
@@ -1,6 +1,8 @@
 {
   "$schema": "../icon.schema.json",
-  "contributors": ["danielbayley"],
+  "contributors": [
+    "danielbayley"
+  ],
   "tags": [
     "projects",
     "manage",
@@ -20,5 +22,10 @@
     "code",
     "coding"
   ],
-  "categories": ["charts", "time", "development", "design"]
+  "categories": [
+    "charts",
+    "time",
+    "development",
+    "design"
+  ]
 }
diff --git a/icons/gauge-circle.json b/icons/gauge-circle.json
index 2e0992d404d..78630d611f5 100644
--- a/icons/gauge-circle.json
+++ b/icons/gauge-circle.json
@@ -18,4 +18,4 @@
     "sports",
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gauge.json b/icons/gauge.json
index 28e3cf4dc8c..37960bf45ac 100644
--- a/icons/gauge.json
+++ b/icons/gauge.json
@@ -21,4 +21,4 @@
     "sports",
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/gem.json b/icons/gem.json
index c905fd60222..6f575ca3fd8 100644
--- a/icons/gem.json
+++ b/icons/gem.json
@@ -24,4 +24,4 @@
     "money",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ghost.json b/icons/ghost.json
index 5da03fa0069..31a30204da2 100644
--- a/icons/ghost.json
+++ b/icons/ghost.json
@@ -11,4 +11,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-branch-plus.json b/icons/git-branch-plus.json
index aed0a080664..bd8b02efb5c 100644
--- a/icons/git-branch-plus.json
+++ b/icons/git-branch-plus.json
@@ -12,4 +12,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-branch.json b/icons/git-branch.json
index 68d27e5cc52..08e4b9a94ca 100644
--- a/icons/git-branch.json
+++ b/icons/git-branch.json
@@ -12,4 +12,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-commit-horizontal.json b/icons/git-commit-horizontal.json
index ad82a4b4c6e..4b6fe54e1b6 100644
--- a/icons/git-commit-horizontal.json
+++ b/icons/git-commit-horizontal.json
@@ -20,4 +20,4 @@
   "aliases": [
     "git-commit"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-commit-vertical.json b/icons/git-commit-vertical.json
index 1f6fca090f4..1824dc5251d 100644
--- a/icons/git-commit-vertical.json
+++ b/icons/git-commit-vertical.json
@@ -15,4 +15,4 @@
     "maps",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-compare-arrows.json b/icons/git-compare-arrows.json
index 3fd7fd79443..2bb154aa53c 100644
--- a/icons/git-compare-arrows.json
+++ b/icons/git-compare-arrows.json
@@ -12,4 +12,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-compare.json b/icons/git-compare.json
index c90512f071d..2373c155bae 100644
--- a/icons/git-compare.json
+++ b/icons/git-compare.json
@@ -13,4 +13,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-fork.json b/icons/git-fork.json
index 0aec8fe267d..ec1c860a349 100644
--- a/icons/git-fork.json
+++ b/icons/git-fork.json
@@ -11,4 +11,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-graph.json b/icons/git-graph.json
index d56862ee951..6f4f0723567 100644
--- a/icons/git-graph.json
+++ b/icons/git-graph.json
@@ -13,4 +13,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-merge.json b/icons/git-merge.json
index 68d27e5cc52..08e4b9a94ca 100644
--- a/icons/git-merge.json
+++ b/icons/git-merge.json
@@ -12,4 +12,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-pull-request-arrow.json b/icons/git-pull-request-arrow.json
index 77d5d93f71a..a60a86192fe 100644
--- a/icons/git-pull-request-arrow.json
+++ b/icons/git-pull-request-arrow.json
@@ -12,4 +12,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-pull-request-closed.json b/icons/git-pull-request-closed.json
index 7e45d8f4724..9ce14209386 100644
--- a/icons/git-pull-request-closed.json
+++ b/icons/git-pull-request-closed.json
@@ -15,4 +15,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-pull-request-create-arrow.json b/icons/git-pull-request-create-arrow.json
index a3ae96bdccc..1cf605a18db 100644
--- a/icons/git-pull-request-create-arrow.json
+++ b/icons/git-pull-request-create-arrow.json
@@ -15,4 +15,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-pull-request-create.json b/icons/git-pull-request-create.json
index a3ae96bdccc..1cf605a18db 100644
--- a/icons/git-pull-request-create.json
+++ b/icons/git-pull-request-create.json
@@ -15,4 +15,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-pull-request-draft.json b/icons/git-pull-request-draft.json
index ab53ca39a73..6cbc4020e71 100644
--- a/icons/git-pull-request-draft.json
+++ b/icons/git-pull-request-draft.json
@@ -14,4 +14,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/git-pull-request.json b/icons/git-pull-request.json
index f45dbde024c..8e700ec8b40 100644
--- a/icons/git-pull-request.json
+++ b/icons/git-pull-request.json
@@ -14,4 +14,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/glass-water.json b/icons/glass-water.json
index c46c0143ff6..09372715fce 100644
--- a/icons/glass-water.json
+++ b/icons/glass-water.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/glasses.json b/icons/glasses.json
index f92a1cace78..887fbfb29d2 100644
--- a/icons/glasses.json
+++ b/icons/glasses.json
@@ -11,4 +11,4 @@
   "categories": [
     "accessibility"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/globe-2.json b/icons/globe-2.json
index 37e4cced109..bf2af7298da 100644
--- a/icons/globe-2.json
+++ b/icons/globe-2.json
@@ -15,4 +15,4 @@
     "maps",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/globe.json b/icons/globe.json
index 038b7477853..12edf30f145 100644
--- a/icons/globe.json
+++ b/icons/globe.json
@@ -15,4 +15,4 @@
     "maps",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/goal.json b/icons/goal.json
index f4bea507b8e..c86826ff133 100644
--- a/icons/goal.json
+++ b/icons/goal.json
@@ -1,10 +1,10 @@
 {
-    "$schema": "../icon.schema.json",
-    "tags": [
-      "flag",
-      "bullseye"
-    ],
-    "categories": [
-      "gaming"
-    ]
-  }
\ No newline at end of file
+  "$schema": "../icon.schema.json",
+  "tags": [
+    "flag",
+    "bullseye"
+  ],
+  "categories": [
+    "gaming"
+  ]
+}
diff --git a/icons/grab.json b/icons/grab.json
index 6680f9dc3c4..1114aa144f1 100644
--- a/icons/grab.json
+++ b/icons/grab.json
@@ -11,4 +11,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/grape.json b/icons/grape.json
index f45c7009754..15886cdebfe 100644
--- a/icons/grape.json
+++ b/icons/grape.json
@@ -11,4 +11,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/grid-2x2.json b/icons/grid-2x2.json
index 53baa92d2ee..acf114b0187 100644
--- a/icons/grid-2x2.json
+++ b/icons/grid-2x2.json
@@ -30,4 +30,4 @@
   "aliases": [
     "grid-2-x-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/grid-3x3.json b/icons/grid-3x3.json
index 2bf56516971..2e6ea56eabd 100644
--- a/icons/grid-3x3.json
+++ b/icons/grid-3x3.json
@@ -21,4 +21,4 @@
     "grid",
     "grid-3-x-3"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/grip-horizontal.json b/icons/grip-horizontal.json
index 8e4a0cbe5e7..30bd732a59e 100644
--- a/icons/grip-horizontal.json
+++ b/icons/grip-horizontal.json
@@ -13,4 +13,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/grip-vertical.json b/icons/grip-vertical.json
index 0f66f757825..dfa3372ab41 100644
--- a/icons/grip-vertical.json
+++ b/icons/grip-vertical.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/grip.json b/icons/grip.json
index b4440802cb0..de4e608d6af 100644
--- a/icons/grip.json
+++ b/icons/grip.json
@@ -14,4 +14,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/group.json b/icons/group.json
index e7fae0159d7..3ec35df6e32 100644
--- a/icons/group.json
+++ b/icons/group.json
@@ -17,4 +17,4 @@
     "shapes",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/guitar.json b/icons/guitar.json
index 23755c51d73..b69d6392ca9 100644
--- a/icons/guitar.json
+++ b/icons/guitar.json
@@ -24,4 +24,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hammer.json b/icons/hammer.json
index 408812ba9dd..a35403026d6 100644
--- a/icons/hammer.json
+++ b/icons/hammer.json
@@ -16,4 +16,4 @@
     "tools",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hand-coins.json b/icons/hand-coins.json
index 5671a0622da..917250da250 100644
--- a/icons/hand-coins.json
+++ b/icons/hand-coins.json
@@ -24,4 +24,4 @@
     "money",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hand-heart.json b/icons/hand-heart.json
index 30a79820764..92493265d55 100644
--- a/icons/hand-heart.json
+++ b/icons/hand-heart.json
@@ -12,4 +12,4 @@
   "categories": [
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hand-helping.json b/icons/hand-helping.json
index 7b6b33650ba..182ae2dd45d 100644
--- a/icons/hand-helping.json
+++ b/icons/hand-helping.json
@@ -19,4 +19,4 @@
   "aliases": [
     "helping-hand"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hand-metal.json b/icons/hand-metal.json
index 37194fadd09..f6a74ee119a 100644
--- a/icons/hand-metal.json
+++ b/icons/hand-metal.json
@@ -11,4 +11,4 @@
     "emoji",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hand-platter.json b/icons/hand-platter.json
index c5b971d10cb..a00b4592af8 100644
--- a/icons/hand-platter.json
+++ b/icons/hand-platter.json
@@ -19,4 +19,4 @@
     "food-beverage",
     "people"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hand.json b/icons/hand.json
index 80a8f413a6f..c5e30d49990 100644
--- a/icons/hand.json
+++ b/icons/hand.json
@@ -13,4 +13,4 @@
     "cursors",
     "accessibility"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hard-drive-download.json b/icons/hard-drive-download.json
index 9b566fda695..8ef70d309d9 100644
--- a/icons/hard-drive-download.json
+++ b/icons/hard-drive-download.json
@@ -19,4 +19,4 @@
     "arrows",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hard-drive-upload.json b/icons/hard-drive-upload.json
index 9b566fda695..8ef70d309d9 100644
--- a/icons/hard-drive-upload.json
+++ b/icons/hard-drive-upload.json
@@ -19,4 +19,4 @@
     "arrows",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hard-drive.json b/icons/hard-drive.json
index c9f70f41605..7c88ee64d62 100644
--- a/icons/hard-drive.json
+++ b/icons/hard-drive.json
@@ -18,4 +18,4 @@
     "development",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hard-hat.json b/icons/hard-hat.json
index 02c062ac2d9..101f95b0a8a 100644
--- a/icons/hard-hat.json
+++ b/icons/hard-hat.json
@@ -13,4 +13,4 @@
   "categories": [
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hash.json b/icons/hash.json
index 0c76a6bb9e8..1c67678c6fc 100644
--- a/icons/hash.json
+++ b/icons/hash.json
@@ -13,4 +13,4 @@
     "text",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/haze.json b/icons/haze.json
index 33727f9c827..91f47b1848f 100644
--- a/icons/haze.json
+++ b/icons/haze.json
@@ -10,4 +10,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hdmi-port.json b/icons/hdmi-port.json
index 28658cb4b6e..b630849b7be 100644
--- a/icons/hdmi-port.json
+++ b/icons/hdmi-port.json
@@ -25,4 +25,4 @@
     "multimedia",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heading-1.json b/icons/heading-1.json
index bb992943917..b8b8e3595be 100644
--- a/icons/heading-1.json
+++ b/icons/heading-1.json
@@ -15,4 +15,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heading-2.json b/icons/heading-2.json
index 45c55b35951..9a0f359419b 100644
--- a/icons/heading-2.json
+++ b/icons/heading-2.json
@@ -13,4 +13,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heading-3.json b/icons/heading-3.json
index 7ce98fb7e07..04818265d1f 100644
--- a/icons/heading-3.json
+++ b/icons/heading-3.json
@@ -15,4 +15,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heading-4.json b/icons/heading-4.json
index a173eae711a..6783030613d 100644
--- a/icons/heading-4.json
+++ b/icons/heading-4.json
@@ -13,4 +13,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heading-5.json b/icons/heading-5.json
index 1e9249822af..4955ee662c1 100644
--- a/icons/heading-5.json
+++ b/icons/heading-5.json
@@ -15,4 +15,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heading-6.json b/icons/heading-6.json
index 43642304d9d..8aed377e59b 100644
--- a/icons/heading-6.json
+++ b/icons/heading-6.json
@@ -13,4 +13,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heading.json b/icons/heading.json
index bb992943917..b8b8e3595be 100644
--- a/icons/heading.json
+++ b/icons/heading.json
@@ -15,4 +15,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/headphones.json b/icons/headphones.json
index 60b0ff5bbd0..16801caf01b 100644
--- a/icons/headphones.json
+++ b/icons/headphones.json
@@ -18,4 +18,4 @@
     "files",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heart-crack.json b/icons/heart-crack.json
index d578bbda9e4..fbac555621e 100644
--- a/icons/heart-crack.json
+++ b/icons/heart-crack.json
@@ -12,4 +12,4 @@
   "categories": [
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heart-handshake.json b/icons/heart-handshake.json
index f86e21842c1..76d2ab80f85 100644
--- a/icons/heart-handshake.json
+++ b/icons/heart-handshake.json
@@ -19,4 +19,4 @@
     "account",
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heart-off.json b/icons/heart-off.json
index 74d3a1f3ab5..82049b36691 100644
--- a/icons/heart-off.json
+++ b/icons/heart-off.json
@@ -15,4 +15,4 @@
     "social",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heart-pulse.json b/icons/heart-pulse.json
index 5be7a2ed8e1..bf92e864c00 100644
--- a/icons/heart-pulse.json
+++ b/icons/heart-pulse.json
@@ -17,4 +17,4 @@
   "categories": [
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heart.json b/icons/heart.json
index 086f105d9ac..0e8a4f9549d 100644
--- a/icons/heart.json
+++ b/icons/heart.json
@@ -22,4 +22,4 @@
     "gaming",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/heater.json b/icons/heater.json
index 48ad1cc1e86..da7d1836c78 100644
--- a/icons/heater.json
+++ b/icons/heater.json
@@ -18,4 +18,4 @@
     "devices",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/help-circle.json b/icons/help-circle.json
index 4210195b5e4..b5ce2e33d33 100644
--- a/icons/help-circle.json
+++ b/icons/help-circle.json
@@ -16,4 +16,4 @@
     "shapes",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hexagon.json b/icons/hexagon.json
index 77d26595995..627dc25cd12 100644
--- a/icons/hexagon.json
+++ b/icons/hexagon.json
@@ -15,4 +15,4 @@
     "brands",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/highlighter.json b/icons/highlighter.json
index b811584b4c8..57e5fb35f9c 100644
--- a/icons/highlighter.json
+++ b/icons/highlighter.json
@@ -13,4 +13,4 @@
     "text",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/history.json b/icons/history.json
index 5cb1e39cd32..ee9810230b9 100644
--- a/icons/history.json
+++ b/icons/history.json
@@ -22,4 +22,4 @@
     "arrows",
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/home.json b/icons/home.json
index ac6e589610d..aec14923693 100644
--- a/icons/home.json
+++ b/icons/home.json
@@ -12,4 +12,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hop-off.json b/icons/hop-off.json
index 37877e1c371..0e9d31888d2 100644
--- a/icons/hop-off.json
+++ b/icons/hop-off.json
@@ -16,4 +16,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hop.json b/icons/hop.json
index ba3d2eccb9e..adec8b0ee33 100644
--- a/icons/hop.json
+++ b/icons/hop.json
@@ -11,4 +11,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hotel.json b/icons/hotel.json
index f24c0be4856..7aa8719bd15 100644
--- a/icons/hotel.json
+++ b/icons/hotel.json
@@ -14,4 +14,4 @@
     "maps",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/hourglass.json b/icons/hourglass.json
index edd3041e538..4de8bd1b257 100644
--- a/icons/hourglass.json
+++ b/icons/hourglass.json
@@ -12,4 +12,4 @@
     "time",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ice-cream-2.json b/icons/ice-cream-2.json
index d1285bad3ea..a032460e322 100644
--- a/icons/ice-cream-2.json
+++ b/icons/ice-cream-2.json
@@ -18,4 +18,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ice-cream.json b/icons/ice-cream.json
index 9b9457ae5c7..d0116bd5915 100644
--- a/icons/ice-cream.json
+++ b/icons/ice-cream.json
@@ -10,4 +10,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/image-minus.json b/icons/image-minus.json
index 9054e2cce61..d9f4a4f8a37 100644
--- a/icons/image-minus.json
+++ b/icons/image-minus.json
@@ -14,4 +14,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/image-off.json b/icons/image-off.json
index 99ce024165c..d86519734ff 100644
--- a/icons/image-off.json
+++ b/icons/image-off.json
@@ -13,4 +13,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/image-plus.json b/icons/image-plus.json
index d5d3fe27363..e8aa5b42ef8 100644
--- a/icons/image-plus.json
+++ b/icons/image-plus.json
@@ -14,4 +14,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/image.json b/icons/image.json
index 903d7d44a00..5b4842b3461 100644
--- a/icons/image.json
+++ b/icons/image.json
@@ -15,4 +15,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/import.json b/icons/import.json
index ad5b6d45dbc..44674f2e1e0 100644
--- a/icons/import.json
+++ b/icons/import.json
@@ -11,4 +11,4 @@
     "arrows",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/inbox.json b/icons/inbox.json
index 794ac614307..a7eaecd0fc6 100644
--- a/icons/inbox.json
+++ b/icons/inbox.json
@@ -12,4 +12,4 @@
     "account",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/indent.json b/icons/indent.json
index af348fff617..f2f8b5c7f60 100644
--- a/icons/indent.json
+++ b/icons/indent.json
@@ -12,4 +12,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/indian-rupee.json b/icons/indian-rupee.json
index c70558d50cb..18aa12075b5 100644
--- a/icons/indian-rupee.json
+++ b/icons/indian-rupee.json
@@ -13,4 +13,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/infinity.json b/icons/infinity.json
index cd9c4d0b74c..1c299d78ea4 100644
--- a/icons/infinity.json
+++ b/icons/infinity.json
@@ -14,4 +14,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/info.json b/icons/info.json
index f877c2399db..1fd19d846aa 100644
--- a/icons/info.json
+++ b/icons/info.json
@@ -13,4 +13,4 @@
     "accessibility",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/inspection-panel.json b/icons/inspection-panel.json
index 22aa4c4045e..d8d08634ec5 100644
--- a/icons/inspection-panel.json
+++ b/icons/inspection-panel.json
@@ -14,4 +14,4 @@
   "categories": [
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/italic.json b/icons/italic.json
index 284b48d5d7f..d90a04d0fc1 100644
--- a/icons/italic.json
+++ b/icons/italic.json
@@ -12,4 +12,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/iteration-ccw.json b/icons/iteration-ccw.json
index 3dbfc6df756..8c452bf91d6 100644
--- a/icons/iteration-ccw.json
+++ b/icons/iteration-ccw.json
@@ -12,4 +12,4 @@
     "arrows",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/iteration-cw.json b/icons/iteration-cw.json
index fc804f1aec0..bd0b392a9b3 100644
--- a/icons/iteration-cw.json
+++ b/icons/iteration-cw.json
@@ -12,4 +12,4 @@
     "arrows",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/japanese-yen.json b/icons/japanese-yen.json
index 37e52653bd5..6ff2de44e73 100644
--- a/icons/japanese-yen.json
+++ b/icons/japanese-yen.json
@@ -12,4 +12,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/joystick.json b/icons/joystick.json
index b27abff60d0..b508a5d10a1 100644
--- a/icons/joystick.json
+++ b/icons/joystick.json
@@ -14,4 +14,4 @@
     "gaming",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/kanban.json b/icons/kanban.json
index 0619277fef9..a3820f9fb51 100644
--- a/icons/kanban.json
+++ b/icons/kanban.json
@@ -24,4 +24,4 @@
     "development",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/key-round.json b/icons/key-round.json
index 326d9f0775b..2d78c46c461 100644
--- a/icons/key-round.json
+++ b/icons/key-round.json
@@ -14,4 +14,4 @@
     "security",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/key-square.json b/icons/key-square.json
index 2c2f64c4b9e..1f5b4acea59 100644
--- a/icons/key-square.json
+++ b/icons/key-square.json
@@ -15,4 +15,4 @@
     "security",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/key.json b/icons/key.json
index 39d7ed07e6b..99c91d311f3 100644
--- a/icons/key.json
+++ b/icons/key.json
@@ -21,4 +21,4 @@
     "security",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/keyboard-music.json b/icons/keyboard-music.json
index 5b6f4300390..1a4932eb298 100644
--- a/icons/keyboard-music.json
+++ b/icons/keyboard-music.json
@@ -6,7 +6,7 @@
   "tags": [
     "music",
     "audio",
-    "sound",    
+    "sound",
     "noise",
     "notes",
     "keys",
@@ -31,4 +31,4 @@
     "multimedia",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/keyboard.json b/icons/keyboard.json
index 8f9f885fc08..5f23c2d18c5 100644
--- a/icons/keyboard.json
+++ b/icons/keyboard.json
@@ -15,4 +15,4 @@
     "devices",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lamp-ceiling.json b/icons/lamp-ceiling.json
index 1c13b9640b1..9e6e3c14df2 100644
--- a/icons/lamp-ceiling.json
+++ b/icons/lamp-ceiling.json
@@ -13,4 +13,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lamp-desk.json b/icons/lamp-desk.json
index b09c41f24c7..780bc4ce1c1 100644
--- a/icons/lamp-desk.json
+++ b/icons/lamp-desk.json
@@ -15,4 +15,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lamp-floor.json b/icons/lamp-floor.json
index ddca521cdfa..c0a4035c9a0 100644
--- a/icons/lamp-floor.json
+++ b/icons/lamp-floor.json
@@ -14,4 +14,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lamp-wall-down.json b/icons/lamp-wall-down.json
index 4289ba4903e..e36252ba255 100644
--- a/icons/lamp-wall-down.json
+++ b/icons/lamp-wall-down.json
@@ -14,4 +14,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lamp-wall-up.json b/icons/lamp-wall-up.json
index 4289ba4903e..e36252ba255 100644
--- a/icons/lamp-wall-up.json
+++ b/icons/lamp-wall-up.json
@@ -14,4 +14,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lamp.json b/icons/lamp.json
index ae2ff09e167..df2b0ff5974 100644
--- a/icons/lamp.json
+++ b/icons/lamp.json
@@ -13,4 +13,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/land-plot.json b/icons/land-plot.json
index cc84baad432..bbe31aa1025 100644
--- a/icons/land-plot.json
+++ b/icons/land-plot.json
@@ -27,4 +27,4 @@
     "sports",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/landmark.json b/icons/landmark.json
index cd1b63b2818..494aa82b751 100644
--- a/icons/landmark.json
+++ b/icons/landmark.json
@@ -16,4 +16,4 @@
     "maps",
     "buildings"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/languages.json b/icons/languages.json
index c21eafae4c5..360a175d0e2 100644
--- a/icons/languages.json
+++ b/icons/languages.json
@@ -11,4 +11,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/laptop-2.json b/icons/laptop-2.json
index 381c83ec083..0e9fe2738ac 100644
--- a/icons/laptop-2.json
+++ b/icons/laptop-2.json
@@ -11,4 +11,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/laptop.json b/icons/laptop.json
index 28b52a63992..33f2eeaf01b 100644
--- a/icons/laptop.json
+++ b/icons/laptop.json
@@ -12,4 +12,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lasso-select.json b/icons/lasso-select.json
index 98301783a0b..e914f10acf2 100644
--- a/icons/lasso-select.json
+++ b/icons/lasso-select.json
@@ -14,4 +14,4 @@
     "design",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lasso.json b/icons/lasso.json
index ee50538c41a..041ba61193b 100644
--- a/icons/lasso.json
+++ b/icons/lasso.json
@@ -13,4 +13,4 @@
     "design",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/laugh.json b/icons/laugh.json
index 224d521d2ce..c1fcc3840cc 100644
--- a/icons/laugh.json
+++ b/icons/laugh.json
@@ -14,4 +14,4 @@
   "categories": [
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layers-2.json b/icons/layers-2.json
index f23e6faad48..8db5af5c3e4 100644
--- a/icons/layers-2.json
+++ b/icons/layers-2.json
@@ -19,4 +19,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layers-3.json b/icons/layers-3.json
index 3d92b4117e9..35b3bcbc197 100644
--- a/icons/layers-3.json
+++ b/icons/layers-3.json
@@ -18,4 +18,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layers.json b/icons/layers.json
index b9aa947f326..1a13049eef3 100644
--- a/icons/layers.json
+++ b/icons/layers.json
@@ -17,4 +17,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layout-dashboard.json b/icons/layout-dashboard.json
index 76ffd62d0ae..ca4b85efef3 100644
--- a/icons/layout-dashboard.json
+++ b/icons/layout-dashboard.json
@@ -12,4 +12,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layout-grid.json b/icons/layout-grid.json
index fcaa6aef9e4..a1487e3def6 100644
--- a/icons/layout-grid.json
+++ b/icons/layout-grid.json
@@ -16,4 +16,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layout-list.json b/icons/layout-list.json
index e2997cd6f08..302b2290f75 100644
--- a/icons/layout-list.json
+++ b/icons/layout-list.json
@@ -18,4 +18,4 @@
     "photography",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layout-panel-left.json b/icons/layout-panel-left.json
index fa0df684274..85566f3f37a 100644
--- a/icons/layout-panel-left.json
+++ b/icons/layout-panel-left.json
@@ -13,4 +13,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layout-panel-top.json b/icons/layout-panel-top.json
index d8f7db7716b..fc449052db7 100644
--- a/icons/layout-panel-top.json
+++ b/icons/layout-panel-top.json
@@ -15,4 +15,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/layout-template.json b/icons/layout-template.json
index d182eef4cfa..831ab38092e 100644
--- a/icons/layout-template.json
+++ b/icons/layout-template.json
@@ -13,4 +13,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/leaf.json b/icons/leaf.json
index e2cb404e97a..5a6e4bb46dc 100644
--- a/icons/leaf.json
+++ b/icons/leaf.json
@@ -16,4 +16,4 @@
     "sustainability",
     "seasons"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/leafy-green.json b/icons/leafy-green.json
index 2264758192b..132deada83f 100644
--- a/icons/leafy-green.json
+++ b/icons/leafy-green.json
@@ -15,4 +15,4 @@
     "food-beverage",
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/library-big.json b/icons/library-big.json
index 26c499e920a..78381b0b8a2 100644
--- a/icons/library-big.json
+++ b/icons/library-big.json
@@ -35,4 +35,4 @@
     "maps",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/library-square.json b/icons/library-square.json
index 26c499e920a..78381b0b8a2 100644
--- a/icons/library-square.json
+++ b/icons/library-square.json
@@ -35,4 +35,4 @@
     "maps",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/library.json b/icons/library.json
index 47f645e7b9e..c70f1d2b0b4 100644
--- a/icons/library.json
+++ b/icons/library.json
@@ -37,4 +37,4 @@
     "maps",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/life-buoy.json b/icons/life-buoy.json
index 659f929b885..68db3cda72b 100644
--- a/icons/life-buoy.json
+++ b/icons/life-buoy.json
@@ -23,4 +23,4 @@
     "accessibility",
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ligature.json b/icons/ligature.json
index b9948c25e12..2092a6e9d83 100644
--- a/icons/ligature.json
+++ b/icons/ligature.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lightbulb-off.json b/icons/lightbulb-off.json
index 99be777c802..f42b6b18c6a 100644
--- a/icons/lightbulb-off.json
+++ b/icons/lightbulb-off.json
@@ -12,4 +12,4 @@
   "categories": [
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lightbulb.json b/icons/lightbulb.json
index 26180434169..fb327d80f38 100644
--- a/icons/lightbulb.json
+++ b/icons/lightbulb.json
@@ -12,4 +12,4 @@
   "categories": [
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/line-chart.json b/icons/line-chart.json
index 68f9d8da2d8..9f1ed57696e 100644
--- a/icons/line-chart.json
+++ b/icons/line-chart.json
@@ -11,4 +11,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/link-2-off.json b/icons/link-2-off.json
index f20937fe629..90ea8d3d927 100644
--- a/icons/link-2-off.json
+++ b/icons/link-2-off.json
@@ -12,4 +12,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/link-2.json b/icons/link-2.json
index 9fa54a88c7c..e0f3dead076 100644
--- a/icons/link-2.json
+++ b/icons/link-2.json
@@ -15,4 +15,4 @@
     "text",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/link.json b/icons/link.json
index 39b68a62e87..d38c22ac9d0 100644
--- a/icons/link.json
+++ b/icons/link.json
@@ -13,4 +13,4 @@
     "text",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/linkedin.json b/icons/linkedin.json
index 98916119251..727a639cfd1 100644
--- a/icons/linkedin.json
+++ b/icons/linkedin.json
@@ -15,4 +15,4 @@
     "social",
     "brands"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-checks.json b/icons/list-checks.json
index 67542cbccfd..0c5001a094d 100644
--- a/icons/list-checks.json
+++ b/icons/list-checks.json
@@ -16,4 +16,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-end.json b/icons/list-end.json
index 712867b252a..7870aaa6a86 100644
--- a/icons/list-end.json
+++ b/icons/list-end.json
@@ -13,4 +13,4 @@
     "multimedia",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-filter.json b/icons/list-filter.json
index 6405427a681..85607c31088 100644
--- a/icons/list-filter.json
+++ b/icons/list-filter.json
@@ -9,4 +9,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-minus.json b/icons/list-minus.json
index 292ca6a0063..c3f70f55d1f 100644
--- a/icons/list-minus.json
+++ b/icons/list-minus.json
@@ -15,4 +15,4 @@
     "multimedia",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-music.json b/icons/list-music.json
index 3a2b9b10fcc..508a9d388dc 100644
--- a/icons/list-music.json
+++ b/icons/list-music.json
@@ -13,4 +13,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-ordered.json b/icons/list-ordered.json
index afa1b08c0e5..24ad75fd45b 100644
--- a/icons/list-ordered.json
+++ b/icons/list-ordered.json
@@ -12,4 +12,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-plus.json b/icons/list-plus.json
index fc28c6b586e..58e4c3e6548 100644
--- a/icons/list-plus.json
+++ b/icons/list-plus.json
@@ -14,4 +14,4 @@
     "multimedia",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-restart.json b/icons/list-restart.json
index f9adb85bdbd..590f0ce1da8 100644
--- a/icons/list-restart.json
+++ b/icons/list-restart.json
@@ -15,4 +15,4 @@
     "multimedia",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-start.json b/icons/list-start.json
index 4183add4633..8a3917d1056 100644
--- a/icons/list-start.json
+++ b/icons/list-start.json
@@ -14,4 +14,4 @@
     "multimedia",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-todo.json b/icons/list-todo.json
index 9ccb1481720..379196d3a3b 100644
--- a/icons/list-todo.json
+++ b/icons/list-todo.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-tree.json b/icons/list-tree.json
index a8343a82ca4..1182ceee635 100644
--- a/icons/list-tree.json
+++ b/icons/list-tree.json
@@ -13,4 +13,4 @@
     "text",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-video.json b/icons/list-video.json
index a873ba87a84..fa28df11452 100644
--- a/icons/list-video.json
+++ b/icons/list-video.json
@@ -11,4 +11,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list-x.json b/icons/list-x.json
index 0dbf084ac50..1e79444b197 100644
--- a/icons/list-x.json
+++ b/icons/list-x.json
@@ -14,4 +14,4 @@
     "multimedia",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/list.json b/icons/list.json
index 17f729b4059..ea5f72d7d24 100644
--- a/icons/list.json
+++ b/icons/list.json
@@ -10,4 +10,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/loader-2.json b/icons/loader-2.json
index 3e3a0262c09..3002402b577 100644
--- a/icons/loader-2.json
+++ b/icons/loader-2.json
@@ -13,4 +13,4 @@
     "multimedia",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/loader.json b/icons/loader.json
index cab04070e82..6c10f6b4403 100644
--- a/icons/loader.json
+++ b/icons/loader.json
@@ -12,4 +12,4 @@
     "multimedia",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/locate-fixed.json b/icons/locate-fixed.json
index fbb13013f2c..c24c3d4cf06 100644
--- a/icons/locate-fixed.json
+++ b/icons/locate-fixed.json
@@ -16,4 +16,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/locate-off.json b/icons/locate-off.json
index 151a9b77bbe..619c05aeb91 100644
--- a/icons/locate-off.json
+++ b/icons/locate-off.json
@@ -13,4 +13,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/locate.json b/icons/locate.json
index c8279998810..c979128a1a4 100644
--- a/icons/locate.json
+++ b/icons/locate.json
@@ -15,4 +15,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lock-keyhole.json b/icons/lock-keyhole.json
index 934e31ba1a0..a88e7da1933 100644
--- a/icons/lock-keyhole.json
+++ b/icons/lock-keyhole.json
@@ -1,12 +1,12 @@
-{
-  "$schema": "../icon.schema.json",
-  "tags": [
-    "security",
-    "password",
-    "secure",
-    "admin"
-  ],
-  "categories": [
-    "security"
-  ]
-}
+{
+  "$schema": "../icon.schema.json",
+  "tags": [
+    "security",
+    "password",
+    "secure",
+    "admin"
+  ],
+  "categories": [
+    "security"
+  ]
+}
diff --git a/icons/lock.json b/icons/lock.json
index 2d918ee69fa..a0baffbbc3d 100644
--- a/icons/lock.json
+++ b/icons/lock.json
@@ -14,4 +14,4 @@
   "categories": [
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/log-in.json b/icons/log-in.json
index 5864a0893d0..14822ad4faf 100644
--- a/icons/log-in.json
+++ b/icons/log-in.json
@@ -15,4 +15,4 @@
     "arrows",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/log-out.json b/icons/log-out.json
index 0dd4c5186f5..85424772e07 100644
--- a/icons/log-out.json
+++ b/icons/log-out.json
@@ -15,4 +15,4 @@
     "arrows",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/lollipop.json b/icons/lollipop.json
index e58379e55c4..6599c6a2971 100644
--- a/icons/lollipop.json
+++ b/icons/lollipop.json
@@ -15,4 +15,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/luggage.json b/icons/luggage.json
index 894cb1974e1..3a40912d2e3 100644
--- a/icons/luggage.json
+++ b/icons/luggage.json
@@ -13,4 +13,4 @@
     "travel",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/m-square.json b/icons/m-square.json
index afe9addd6fc..6a3e5923b77 100644
--- a/icons/m-square.json
+++ b/icons/m-square.json
@@ -15,4 +15,4 @@
     "maps",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/magnet.json b/icons/magnet.json
index bfac568bfc9..434b5efa7f3 100644
--- a/icons/magnet.json
+++ b/icons/magnet.json
@@ -13,4 +13,4 @@
   "categories": [
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-check.json b/icons/mail-check.json
index 9aabdb9dcba..1dfddbb8a77 100644
--- a/icons/mail-check.json
+++ b/icons/mail-check.json
@@ -21,4 +21,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-minus.json b/icons/mail-minus.json
index ac6228c87a0..8fe19ba0805 100644
--- a/icons/mail-minus.json
+++ b/icons/mail-minus.json
@@ -14,4 +14,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-open.json b/icons/mail-open.json
index d28de687d39..801fa530f2f 100644
--- a/icons/mail-open.json
+++ b/icons/mail-open.json
@@ -13,4 +13,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-plus.json b/icons/mail-plus.json
index 89859dfa0d0..56fa2eb6a1a 100644
--- a/icons/mail-plus.json
+++ b/icons/mail-plus.json
@@ -16,4 +16,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-question.json b/icons/mail-question.json
index 6f6ebbd3492..db54d4dc7bb 100644
--- a/icons/mail-question.json
+++ b/icons/mail-question.json
@@ -13,4 +13,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-search.json b/icons/mail-search.json
index 31c0d4d1d54..30af089da52 100644
--- a/icons/mail-search.json
+++ b/icons/mail-search.json
@@ -12,4 +12,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-warning.json b/icons/mail-warning.json
index 67b06c27978..bc4f435f590 100644
--- a/icons/mail-warning.json
+++ b/icons/mail-warning.json
@@ -14,4 +14,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail-x.json b/icons/mail-x.json
index d35db681bf2..b4bf2484018 100644
--- a/icons/mail-x.json
+++ b/icons/mail-x.json
@@ -14,4 +14,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mail.json b/icons/mail.json
index 86b9cd2f691..60143e71996 100644
--- a/icons/mail.json
+++ b/icons/mail.json
@@ -16,4 +16,4 @@
     "account",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mailbox.json b/icons/mailbox.json
index 1868f90a2d6..60bbe80b60c 100644
--- a/icons/mailbox.json
+++ b/icons/mailbox.json
@@ -15,4 +15,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mails.json b/icons/mails.json
index 16cd5b19628..2f5dab5b3a7 100644
--- a/icons/mails.json
+++ b/icons/mails.json
@@ -16,4 +16,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/map-pin-off.json b/icons/map-pin-off.json
index d6d42f91aa7..053b07fc11a 100644
--- a/icons/map-pin-off.json
+++ b/icons/map-pin-off.json
@@ -15,4 +15,4 @@
     "navigation",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/map-pin.json b/icons/map-pin.json
index 57aebd80805..3ca79e634c7 100644
--- a/icons/map-pin.json
+++ b/icons/map-pin.json
@@ -18,4 +18,4 @@
     "travel",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/map-pinned.json b/icons/map-pinned.json
index 7d0be2ed9be..ed1f7e75a0b 100644
--- a/icons/map-pinned.json
+++ b/icons/map-pinned.json
@@ -15,4 +15,4 @@
     "travel",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/map.json b/icons/map.json
index e7df5b515e5..b14c066cb40 100644
--- a/icons/map.json
+++ b/icons/map.json
@@ -14,4 +14,4 @@
     "text",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/martini.json b/icons/martini.json
index 5558247717d..7a30e5e3000 100644
--- a/icons/martini.json
+++ b/icons/martini.json
@@ -16,4 +16,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/maximize-2.json b/icons/maximize-2.json
index cb390b46b3e..b8a77c41fb8 100644
--- a/icons/maximize-2.json
+++ b/icons/maximize-2.json
@@ -14,4 +14,4 @@
     "layout",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/maximize.json b/icons/maximize.json
index 879f36618c8..3bd00ec07d5 100644
--- a/icons/maximize.json
+++ b/icons/maximize.json
@@ -15,4 +15,4 @@
     "layout",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/medal.json b/icons/medal.json
index 0043e8ba772..b4e7b450348 100644
--- a/icons/medal.json
+++ b/icons/medal.json
@@ -15,4 +15,4 @@
     "sports",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/megaphone-off.json b/icons/megaphone-off.json
index dc550d6abbe..f7054676f74 100644
--- a/icons/megaphone-off.json
+++ b/icons/megaphone-off.json
@@ -15,4 +15,4 @@
     "multimedia",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/megaphone.json b/icons/megaphone.json
index 5fabafa25aa..c1d7777a7ac 100644
--- a/icons/megaphone.json
+++ b/icons/megaphone.json
@@ -14,4 +14,4 @@
     "multimedia",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/meh.json b/icons/meh.json
index 055999dd63e..5feb2b9a054 100644
--- a/icons/meh.json
+++ b/icons/meh.json
@@ -15,4 +15,4 @@
   "categories": [
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/memory-stick.json b/icons/memory-stick.json
index 65bf6346fe1..6a1acefca77 100644
--- a/icons/memory-stick.json
+++ b/icons/memory-stick.json
@@ -21,4 +21,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/menu-square.json b/icons/menu-square.json
index 0ae44f4fb1d..85b8f37eda4 100644
--- a/icons/menu-square.json
+++ b/icons/menu-square.json
@@ -15,4 +15,4 @@
     "layout",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/menu.json b/icons/menu.json
index a8cf16fa1ed..1a065df489f 100644
--- a/icons/menu.json
+++ b/icons/menu.json
@@ -14,4 +14,4 @@
     "layout",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/merge.json b/icons/merge.json
index b32ed656283..08c3673c12f 100644
--- a/icons/merge.json
+++ b/icons/merge.json
@@ -13,4 +13,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-circle-dashed.json b/icons/message-circle-dashed.json
index 754b5de5702..d3d68baab7e 100644
--- a/icons/message-circle-dashed.json
+++ b/icons/message-circle-dashed.json
@@ -16,4 +16,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-circle-heart.json b/icons/message-circle-heart.json
index 1bb960b2731..af6ca8541ca 100644
--- a/icons/message-circle-heart.json
+++ b/icons/message-circle-heart.json
@@ -21,4 +21,4 @@
   "categories": [
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-circle-reply.json b/icons/message-circle-reply.json
index c50c83f6283..da7fc0984a0 100644
--- a/icons/message-circle-reply.json
+++ b/icons/message-circle-reply.json
@@ -17,4 +17,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-circle.json b/icons/message-circle.json
index cb5bcf3360d..7bae9223200 100644
--- a/icons/message-circle.json
+++ b/icons/message-circle.json
@@ -19,4 +19,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-square-dashed.json b/icons/message-square-dashed.json
index 754b5de5702..d3d68baab7e 100644
--- a/icons/message-square-dashed.json
+++ b/icons/message-square-dashed.json
@@ -16,4 +16,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-square-dot.json b/icons/message-square-dot.json
index 588b7f22592..b35d3dacc68 100644
--- a/icons/message-square-dot.json
+++ b/icons/message-square-dot.json
@@ -18,4 +18,4 @@
     "social",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-square-heart.json b/icons/message-square-heart.json
index 1bb960b2731..af6ca8541ca 100644
--- a/icons/message-square-heart.json
+++ b/icons/message-square-heart.json
@@ -21,4 +21,4 @@
   "categories": [
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-square-plus.json b/icons/message-square-plus.json
index 5376bfb6dc4..7d07795e9c9 100644
--- a/icons/message-square-plus.json
+++ b/icons/message-square-plus.json
@@ -16,4 +16,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-square-quote.json b/icons/message-square-quote.json
index 0f2f727d72c..2c32f5eea27 100644
--- a/icons/message-square-quote.json
+++ b/icons/message-square-quote.json
@@ -21,4 +21,4 @@
     "social",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-square-reply.json b/icons/message-square-reply.json
index c50c83f6283..da7fc0984a0 100644
--- a/icons/message-square-reply.json
+++ b/icons/message-square-reply.json
@@ -17,4 +17,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/message-square.json b/icons/message-square.json
index 47dd5ffb529..252f2e407b0 100644
--- a/icons/message-square.json
+++ b/icons/message-square.json
@@ -17,4 +17,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/messages-square.json b/icons/messages-square.json
index 6ed8bf6df1b..2582e280d6b 100644
--- a/icons/messages-square.json
+++ b/icons/messages-square.json
@@ -17,4 +17,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mic-2.json b/icons/mic-2.json
index bf9798efbdd..35beee34d46 100644
--- a/icons/mic-2.json
+++ b/icons/mic-2.json
@@ -21,4 +21,4 @@
     "devices",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mic-off.json b/icons/mic-off.json
index da7b15b8997..414e98231d2 100644
--- a/icons/mic-off.json
+++ b/icons/mic-off.json
@@ -18,4 +18,4 @@
     "connectivity",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mic.json b/icons/mic.json
index 115be6282a2..449f56d6711 100644
--- a/icons/mic.json
+++ b/icons/mic.json
@@ -20,4 +20,4 @@
     "connectivity",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/microscope.json b/icons/microscope.json
index 84942a8b3d0..055c8511011 100644
--- a/icons/microscope.json
+++ b/icons/microscope.json
@@ -15,4 +15,4 @@
     "science",
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/microwave.json b/icons/microwave.json
index 47831a3f47a..41a43ff2663 100644
--- a/icons/microwave.json
+++ b/icons/microwave.json
@@ -14,4 +14,4 @@
     "food-beverage",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/milestone.json b/icons/milestone.json
index 7faacff02da..4fa11e65dc6 100644
--- a/icons/milestone.json
+++ b/icons/milestone.json
@@ -17,4 +17,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/milk-off.json b/icons/milk-off.json
index 9ba4fe0af85..ba9d87afdcb 100644
--- a/icons/milk-off.json
+++ b/icons/milk-off.json
@@ -17,4 +17,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/milk.json b/icons/milk.json
index d2df5d5d57d..d5da6dce166 100644
--- a/icons/milk.json
+++ b/icons/milk.json
@@ -14,4 +14,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/minimize-2.json b/icons/minimize-2.json
index 56c4d2585f3..8e530357edc 100644
--- a/icons/minimize-2.json
+++ b/icons/minimize-2.json
@@ -15,4 +15,4 @@
     "layout",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/minimize.json b/icons/minimize.json
index 3b62e5a73bc..f955021b703 100644
--- a/icons/minimize.json
+++ b/icons/minimize.json
@@ -15,4 +15,4 @@
     "layout",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/minus-circle.json b/icons/minus-circle.json
index 14e3bf5e953..6d09867a956 100644
--- a/icons/minus-circle.json
+++ b/icons/minus-circle.json
@@ -22,4 +22,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/minus-square.json b/icons/minus-square.json
index 1d375077044..a462912478f 100644
--- a/icons/minus-square.json
+++ b/icons/minus-square.json
@@ -36,4 +36,4 @@
     "devices",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/minus.json b/icons/minus.json
index 4362cfe7af3..8c6253dfaad 100644
--- a/icons/minus.json
+++ b/icons/minus.json
@@ -35,4 +35,4 @@
     "tools",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-check.json b/icons/monitor-check.json
index 796752fc984..32dd7042ce2 100644
--- a/icons/monitor-check.json
+++ b/icons/monitor-check.json
@@ -20,4 +20,4 @@
     "devices",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-dot.json b/icons/monitor-dot.json
index 796752fc984..32dd7042ce2 100644
--- a/icons/monitor-dot.json
+++ b/icons/monitor-dot.json
@@ -20,4 +20,4 @@
     "devices",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-down.json b/icons/monitor-down.json
index f2b91480e2f..81832c32213 100644
--- a/icons/monitor-down.json
+++ b/icons/monitor-down.json
@@ -16,4 +16,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-off.json b/icons/monitor-off.json
index 17c4d2e6429..a3783dfe9f0 100644
--- a/icons/monitor-off.json
+++ b/icons/monitor-off.json
@@ -12,4 +12,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-pause.json b/icons/monitor-pause.json
index bfb8b1294b7..93de5b99a48 100644
--- a/icons/monitor-pause.json
+++ b/icons/monitor-pause.json
@@ -25,4 +25,4 @@
     "multimedia",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-play.json b/icons/monitor-play.json
index 33413aa2081..a4351fa993d 100644
--- a/icons/monitor-play.json
+++ b/icons/monitor-play.json
@@ -25,4 +25,4 @@
     "multimedia",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-smartphone.json b/icons/monitor-smartphone.json
index 14b4570c590..db4887b1cbb 100644
--- a/icons/monitor-smartphone.json
+++ b/icons/monitor-smartphone.json
@@ -21,4 +21,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-speaker.json b/icons/monitor-speaker.json
index 5f5535fafc6..a624f6c6ab9 100644
--- a/icons/monitor-speaker.json
+++ b/icons/monitor-speaker.json
@@ -13,4 +13,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-stop.json b/icons/monitor-stop.json
index b7b23ad737f..eaee4b976fa 100644
--- a/icons/monitor-stop.json
+++ b/icons/monitor-stop.json
@@ -24,4 +24,4 @@
     "multimedia",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-up.json b/icons/monitor-up.json
index 058cc30e5d0..caf00b0ecfb 100644
--- a/icons/monitor-up.json
+++ b/icons/monitor-up.json
@@ -18,4 +18,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor-x.json b/icons/monitor-x.json
index c7d699fd6e1..5a09254ae60 100644
--- a/icons/monitor-x.json
+++ b/icons/monitor-x.json
@@ -23,4 +23,4 @@
     "devices",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/monitor.json b/icons/monitor.json
index 6abda6bb16e..8713be1a343 100644
--- a/icons/monitor.json
+++ b/icons/monitor.json
@@ -19,4 +19,4 @@
     "devices",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/moon-star.json b/icons/moon-star.json
index 60d61292520..ca9ecdf3a12 100644
--- a/icons/moon-star.json
+++ b/icons/moon-star.json
@@ -12,4 +12,4 @@
     "accessibility",
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/moon.json b/icons/moon.json
index 3dd1ed72237..0e945264e8b 100644
--- a/icons/moon.json
+++ b/icons/moon.json
@@ -13,4 +13,4 @@
   "categories": [
     "accessibility"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/more-horizontal.json b/icons/more-horizontal.json
index e0ff2472945..4e96c6c822c 100644
--- a/icons/more-horizontal.json
+++ b/icons/more-horizontal.json
@@ -24,4 +24,4 @@
     "layout",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/more-vertical.json b/icons/more-vertical.json
index bda5ca5606c..3f3003ac1a6 100644
--- a/icons/more-vertical.json
+++ b/icons/more-vertical.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mountain-snow.json b/icons/mountain-snow.json
index c80438a7f22..a086888d73d 100644
--- a/icons/mountain-snow.json
+++ b/icons/mountain-snow.json
@@ -12,4 +12,4 @@
   "categories": [
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mountain.json b/icons/mountain.json
index 7fe3b9bcb09..4ae3fe57b69 100644
--- a/icons/mountain.json
+++ b/icons/mountain.json
@@ -15,4 +15,4 @@
     "nature",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mouse-pointer-2.json b/icons/mouse-pointer-2.json
index 989fa382da6..35fcc94f1be 100644
--- a/icons/mouse-pointer-2.json
+++ b/icons/mouse-pointer-2.json
@@ -13,4 +13,4 @@
     "arrows",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mouse-pointer-square-dashed.json b/icons/mouse-pointer-square-dashed.json
index 2b6722b97d2..2c7ca973813 100644
--- a/icons/mouse-pointer-square-dashed.json
+++ b/icons/mouse-pointer-square-dashed.json
@@ -22,4 +22,4 @@
     "development",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mouse-pointer-square.json b/icons/mouse-pointer-square.json
index 16ab2c4845d..a3936a165e1 100644
--- a/icons/mouse-pointer-square.json
+++ b/icons/mouse-pointer-square.json
@@ -27,4 +27,4 @@
   "aliases": [
     "inspect"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mouse-pointer.json b/icons/mouse-pointer.json
index db5d247d098..78c3a0e3119 100644
--- a/icons/mouse-pointer.json
+++ b/icons/mouse-pointer.json
@@ -13,4 +13,4 @@
     "arrows",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/mouse.json b/icons/mouse.json
index 22c83652091..ce57a20bc77 100644
--- a/icons/mouse.json
+++ b/icons/mouse.json
@@ -13,4 +13,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-3d.json b/icons/move-3d.json
index faab605319d..94bfe740765 100644
--- a/icons/move-3d.json
+++ b/icons/move-3d.json
@@ -18,4 +18,4 @@
   "aliases": [
     "move-3-d"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-diagonal-2.json b/icons/move-diagonal-2.json
index 35e2d7e1166..72cfc29157a 100644
--- a/icons/move-diagonal-2.json
+++ b/icons/move-diagonal-2.json
@@ -11,4 +11,4 @@
     "arrows",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-diagonal.json b/icons/move-diagonal.json
index 35e2d7e1166..72cfc29157a 100644
--- a/icons/move-diagonal.json
+++ b/icons/move-diagonal.json
@@ -11,4 +11,4 @@
     "arrows",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-down-left.json b/icons/move-down-left.json
index ced23df8a39..798551dbe80 100644
--- a/icons/move-down-left.json
+++ b/icons/move-down-left.json
@@ -13,4 +13,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-down-right.json b/icons/move-down-right.json
index f46184f5ad5..319d0de419f 100644
--- a/icons/move-down-right.json
+++ b/icons/move-down-right.json
@@ -10,4 +10,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-down.json b/icons/move-down.json
index 86f0a15dd52..23278fee925 100644
--- a/icons/move-down.json
+++ b/icons/move-down.json
@@ -12,4 +12,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-horizontal.json b/icons/move-horizontal.json
index 937f7a37883..fed6b14edd1 100644
--- a/icons/move-horizontal.json
+++ b/icons/move-horizontal.json
@@ -12,4 +12,4 @@
     "arrows",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-left.json b/icons/move-left.json
index aa2d0cc7eab..f6414767fe0 100644
--- a/icons/move-left.json
+++ b/icons/move-left.json
@@ -12,4 +12,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-right.json b/icons/move-right.json
index cff30406740..0f7a946b861 100644
--- a/icons/move-right.json
+++ b/icons/move-right.json
@@ -12,4 +12,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-up-left.json b/icons/move-up-left.json
index f46184f5ad5..319d0de419f 100644
--- a/icons/move-up-left.json
+++ b/icons/move-up-left.json
@@ -10,4 +10,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-up-right.json b/icons/move-up-right.json
index f46184f5ad5..319d0de419f 100644
--- a/icons/move-up-right.json
+++ b/icons/move-up-right.json
@@ -10,4 +10,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-up.json b/icons/move-up.json
index ce3ef01805e..8e8ced93e4e 100644
--- a/icons/move-up.json
+++ b/icons/move-up.json
@@ -12,4 +12,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move-vertical.json b/icons/move-vertical.json
index 35e2d7e1166..72cfc29157a 100644
--- a/icons/move-vertical.json
+++ b/icons/move-vertical.json
@@ -11,4 +11,4 @@
     "arrows",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/move.json b/icons/move.json
index 70e302d6f00..15f1cce3787 100644
--- a/icons/move.json
+++ b/icons/move.json
@@ -11,4 +11,4 @@
     "arrows",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/music-2.json b/icons/music-2.json
index 43ef797952d..7f395d899ef 100644
--- a/icons/music-2.json
+++ b/icons/music-2.json
@@ -14,4 +14,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/music-3.json b/icons/music-3.json
index 85e12ab2b98..aac2d00e669 100644
--- a/icons/music-3.json
+++ b/icons/music-3.json
@@ -16,4 +16,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/music-4.json b/icons/music-4.json
index 64e5e589db0..26e2f2be700 100644
--- a/icons/music-4.json
+++ b/icons/music-4.json
@@ -13,4 +13,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/music.json b/icons/music.json
index 6d839f4f1f2..7772d95bba3 100644
--- a/icons/music.json
+++ b/icons/music.json
@@ -15,4 +15,4 @@
     "multimedia",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/navigation-2-off.json b/icons/navigation-2-off.json
index 67274c8ac59..e203d294e4e 100644
--- a/icons/navigation-2-off.json
+++ b/icons/navigation-2-off.json
@@ -12,4 +12,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/navigation-2.json b/icons/navigation-2.json
index d4f81f052e8..eb8d3b5f3be 100644
--- a/icons/navigation-2.json
+++ b/icons/navigation-2.json
@@ -11,4 +11,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/navigation-off.json b/icons/navigation-off.json
index 67274c8ac59..e203d294e4e 100644
--- a/icons/navigation-off.json
+++ b/icons/navigation-off.json
@@ -12,4 +12,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/navigation.json b/icons/navigation.json
index d4f81f052e8..eb8d3b5f3be 100644
--- a/icons/navigation.json
+++ b/icons/navigation.json
@@ -11,4 +11,4 @@
     "navigation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/network.json b/icons/network.json
index ecab2bc482e..48819d0581c 100644
--- a/icons/network.json
+++ b/icons/network.json
@@ -12,4 +12,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/newspaper.json b/icons/newspaper.json
index 680b2ce54a9..f9c806b31d0 100644
--- a/icons/newspaper.json
+++ b/icons/newspaper.json
@@ -17,4 +17,4 @@
     "multimedia",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/nfc.json b/icons/nfc.json
index 94155abc8a1..a9ed27f8f2f 100644
--- a/icons/nfc.json
+++ b/icons/nfc.json
@@ -15,4 +15,4 @@
     "money",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/notebook-pen.json b/icons/notebook-pen.json
index 53b2455858f..559ac03786c 100644
--- a/icons/notebook-pen.json
+++ b/icons/notebook-pen.json
@@ -34,4 +34,4 @@
     "text",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/notebook-tabs.json b/icons/notebook-tabs.json
index 423031aacf2..45a03d67ba3 100644
--- a/icons/notebook-tabs.json
+++ b/icons/notebook-tabs.json
@@ -31,4 +31,4 @@
     "communication",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/notebook-text.json b/icons/notebook-text.json
index 053303996fc..e6ed485e0cb 100644
--- a/icons/notebook-text.json
+++ b/icons/notebook-text.json
@@ -34,4 +34,4 @@
     "text",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/notebook.json b/icons/notebook.json
index e088145bbef..49672e2ae1b 100644
--- a/icons/notebook.json
+++ b/icons/notebook.json
@@ -37,4 +37,4 @@
     "social",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/notepad-text-dashed.json b/icons/notepad-text-dashed.json
index e5e8160c6c1..05d19864fc3 100644
--- a/icons/notepad-text-dashed.json
+++ b/icons/notepad-text-dashed.json
@@ -22,4 +22,4 @@
     "text",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/notepad-text.json b/icons/notepad-text.json
index f10cf374306..724c9fa59df 100644
--- a/icons/notepad-text.json
+++ b/icons/notepad-text.json
@@ -34,4 +34,4 @@
     "text",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/nut-off.json b/icons/nut-off.json
index 3997668be81..b1425477290 100644
--- a/icons/nut-off.json
+++ b/icons/nut-off.json
@@ -15,4 +15,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/nut.json b/icons/nut.json
index 2149b496d05..cc763d6eafa 100644
--- a/icons/nut.json
+++ b/icons/nut.json
@@ -12,4 +12,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/octagon.json b/icons/octagon.json
index 0477a270105..a47f0bda1bd 100644
--- a/icons/octagon.json
+++ b/icons/octagon.json
@@ -10,4 +10,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/option.json b/icons/option.json
index 512b2a283ab..f588deefd7e 100644
--- a/icons/option.json
+++ b/icons/option.json
@@ -15,4 +15,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/outdent.json b/icons/outdent.json
index af348fff617..f2f8b5c7f60 100644
--- a/icons/outdent.json
+++ b/icons/outdent.json
@@ -12,4 +12,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package-2.json b/icons/package-2.json
index 96f7ab7f646..ed1db87e66b 100644
--- a/icons/package-2.json
+++ b/icons/package-2.json
@@ -19,4 +19,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package-check.json b/icons/package-check.json
index 0c55cd026ba..aac1b72cf0a 100644
--- a/icons/package-check.json
+++ b/icons/package-check.json
@@ -18,4 +18,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package-minus.json b/icons/package-minus.json
index 554703de147..a46b496162b 100644
--- a/icons/package-minus.json
+++ b/icons/package-minus.json
@@ -12,4 +12,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package-open.json b/icons/package-open.json
index f8c06f5f057..7ccab1c12c2 100644
--- a/icons/package-open.json
+++ b/icons/package-open.json
@@ -18,4 +18,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package-plus.json b/icons/package-plus.json
index 7a20349234c..f3d5345a0d6 100644
--- a/icons/package-plus.json
+++ b/icons/package-plus.json
@@ -13,4 +13,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package-search.json b/icons/package-search.json
index f6cb95189c7..a7316667335 100644
--- a/icons/package-search.json
+++ b/icons/package-search.json
@@ -13,4 +13,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package-x.json b/icons/package-x.json
index 554703de147..a46b496162b 100644
--- a/icons/package-x.json
+++ b/icons/package-x.json
@@ -12,4 +12,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/package.json b/icons/package.json
index 501e3df86c1..b727a165f3d 100644
--- a/icons/package.json
+++ b/icons/package.json
@@ -24,4 +24,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/paint-bucket.json b/icons/paint-bucket.json
index bfc9ef9c57b..d4ffad7f8c5 100644
--- a/icons/paint-bucket.json
+++ b/icons/paint-bucket.json
@@ -15,4 +15,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/paint-roller.json b/icons/paint-roller.json
index dd010262820..baf77033aff 100644
--- a/icons/paint-roller.json
+++ b/icons/paint-roller.json
@@ -16,4 +16,4 @@
     "home",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/paintbrush-2.json b/icons/paintbrush-2.json
index 654c7631595..1c30b57ba86 100644
--- a/icons/paintbrush-2.json
+++ b/icons/paintbrush-2.json
@@ -20,4 +20,4 @@
     "home",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/paintbrush.json b/icons/paintbrush.json
index 4a00848f4e8..80eec1997ab 100644
--- a/icons/paintbrush.json
+++ b/icons/paintbrush.json
@@ -19,4 +19,4 @@
     "home",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/palette.json b/icons/palette.json
index dd8c9932c67..4afc8f878c5 100644
--- a/icons/palette.json
+++ b/icons/palette.json
@@ -19,4 +19,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/palmtree.json b/icons/palmtree.json
index 34ccbcd7c76..aba31af18ae 100644
--- a/icons/palmtree.json
+++ b/icons/palmtree.json
@@ -11,4 +11,4 @@
   "categories": [
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-bottom-close.json b/icons/panel-bottom-close.json
index 9b403190a72..3ed9fc644eb 100644
--- a/icons/panel-bottom-close.json
+++ b/icons/panel-bottom-close.json
@@ -15,4 +15,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-bottom-dashed.json b/icons/panel-bottom-dashed.json
index ce1bed31df8..2940b7346eb 100644
--- a/icons/panel-bottom-dashed.json
+++ b/icons/panel-bottom-dashed.json
@@ -16,4 +16,4 @@
   "aliases": [
     "panel-bottom-inactive"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-bottom-open.json b/icons/panel-bottom-open.json
index cad5052528b..28a91abc45d 100644
--- a/icons/panel-bottom-open.json
+++ b/icons/panel-bottom-open.json
@@ -16,4 +16,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-bottom.json b/icons/panel-bottom.json
index fc89daf7c4c..84983083c60 100644
--- a/icons/panel-bottom.json
+++ b/icons/panel-bottom.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-left-close.json b/icons/panel-left-close.json
index 2874a0d5646..3e5b6c2d1d2 100644
--- a/icons/panel-left-close.json
+++ b/icons/panel-left-close.json
@@ -16,7 +16,7 @@
     "layout",
     "arrows"
   ],
-   "aliases": [
+  "aliases": [
     "sidebar-close"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-left-dashed.json b/icons/panel-left-dashed.json
index 65c1942d2e3..cfaef2e3076 100644
--- a/icons/panel-left-dashed.json
+++ b/icons/panel-left-dashed.json
@@ -17,4 +17,4 @@
   "aliases": [
     "panel-left-inactive"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-left-open.json b/icons/panel-left-open.json
index 09cba5d1a81..7693b6ea43a 100644
--- a/icons/panel-left-open.json
+++ b/icons/panel-left-open.json
@@ -18,7 +18,7 @@
     "layout",
     "arrows"
   ],
-   "aliases": [
+  "aliases": [
     "sidebar-open"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-left.json b/icons/panel-left.json
index 2af4cd3df6d..c407094d005 100644
--- a/icons/panel-left.json
+++ b/icons/panel-left.json
@@ -15,4 +15,4 @@
   "aliases": [
     "sidebar"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-right-close.json b/icons/panel-right-close.json
index 5e741d93a11..493ed47801c 100644
--- a/icons/panel-right-close.json
+++ b/icons/panel-right-close.json
@@ -16,4 +16,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-right-dashed.json b/icons/panel-right-dashed.json
index 7b1f4a89e2d..375725dcc8b 100644
--- a/icons/panel-right-dashed.json
+++ b/icons/panel-right-dashed.json
@@ -17,4 +17,4 @@
   "aliases": [
     "panel-right-inactive"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-right-open.json b/icons/panel-right-open.json
index 3cd8ecbe4dc..a9b6db8bcb0 100644
--- a/icons/panel-right-open.json
+++ b/icons/panel-right-open.json
@@ -18,4 +18,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-right.json b/icons/panel-right.json
index bfa0579bc55..02ce13882e7 100644
--- a/icons/panel-right.json
+++ b/icons/panel-right.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-top-close.json b/icons/panel-top-close.json
index 8035f45f067..02cb81a648a 100644
--- a/icons/panel-top-close.json
+++ b/icons/panel-top-close.json
@@ -15,4 +15,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-top-dashed.json b/icons/panel-top-dashed.json
index 23626619f97..93a6d669a5d 100644
--- a/icons/panel-top-dashed.json
+++ b/icons/panel-top-dashed.json
@@ -16,4 +16,4 @@
   "aliases": [
     "panel-top-inactive"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-top-open.json b/icons/panel-top-open.json
index 2dc5b62b2d3..e45457f1ab8 100644
--- a/icons/panel-top-open.json
+++ b/icons/panel-top-open.json
@@ -16,4 +16,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panel-top.json b/icons/panel-top.json
index f5566a18a3c..606dd480291 100644
--- a/icons/panel-top.json
+++ b/icons/panel-top.json
@@ -14,4 +14,4 @@
     "design",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panels-left-bottom.json b/icons/panels-left-bottom.json
index 6840b77e7f2..9e1f78c6847 100644
--- a/icons/panels-left-bottom.json
+++ b/icons/panels-left-bottom.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panels-right-bottom.json b/icons/panels-right-bottom.json
index ba0ebac57ea..eda18f76303 100644
--- a/icons/panels-right-bottom.json
+++ b/icons/panels-right-bottom.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/panels-top-left.json b/icons/panels-top-left.json
index 078b425be7e..3a937942978 100644
--- a/icons/panels-top-left.json
+++ b/icons/panels-top-left.json
@@ -23,4 +23,4 @@
   "aliases": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/paperclip.json b/icons/paperclip.json
index 6a8157fa920..cd54dfa0a78 100644
--- a/icons/paperclip.json
+++ b/icons/paperclip.json
@@ -16,4 +16,4 @@
     "files",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/parentheses.json b/icons/parentheses.json
index aef39456764..f844c7806eb 100644
--- a/icons/parentheses.json
+++ b/icons/parentheses.json
@@ -26,4 +26,4 @@
     "files",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/parking-circle-off.json b/icons/parking-circle-off.json
index 4e885929295..b4b53f8db2c 100644
--- a/icons/parking-circle-off.json
+++ b/icons/parking-circle-off.json
@@ -14,4 +14,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/parking-circle.json b/icons/parking-circle.json
index f350d4c1dec..d52c7c522a3 100644
--- a/icons/parking-circle.json
+++ b/icons/parking-circle.json
@@ -12,4 +12,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/parking-meter.json b/icons/parking-meter.json
index 6d4d6fef067..2f7760b9077 100644
--- a/icons/parking-meter.json
+++ b/icons/parking-meter.json
@@ -14,4 +14,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/parking-square-off.json b/icons/parking-square-off.json
index 525c3a46b6a..5babe6e58ee 100644
--- a/icons/parking-square-off.json
+++ b/icons/parking-square-off.json
@@ -14,4 +14,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/parking-square.json b/icons/parking-square.json
index e957030dabb..143948f4d48 100644
--- a/icons/parking-square.json
+++ b/icons/parking-square.json
@@ -13,4 +13,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pause-circle.json b/icons/pause-circle.json
index e109cd25bb0..6872528eb55 100644
--- a/icons/pause-circle.json
+++ b/icons/pause-circle.json
@@ -13,4 +13,4 @@
     "multimedia",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pause-octagon.json b/icons/pause-octagon.json
index 132b9b67a2f..3797b03cd66 100644
--- a/icons/pause-octagon.json
+++ b/icons/pause-octagon.json
@@ -12,4 +12,4 @@
     "multimedia",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pause.json b/icons/pause.json
index 337c6d1dc2e..e4d59076afd 100644
--- a/icons/pause.json
+++ b/icons/pause.json
@@ -11,4 +11,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/paw-print.json b/icons/paw-print.json
index 0876ec4e4b6..9babca2fea9 100644
--- a/icons/paw-print.json
+++ b/icons/paw-print.json
@@ -15,4 +15,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pc-case.json b/icons/pc-case.json
index caf8aa6ab0a..391b417885f 100644
--- a/icons/pc-case.json
+++ b/icons/pc-case.json
@@ -12,4 +12,4 @@
     "devices",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pen-line.json b/icons/pen-line.json
index f97bcad01e8..22b17bab539 100644
--- a/icons/pen-line.json
+++ b/icons/pen-line.json
@@ -28,4 +28,4 @@
   "aliases": [
     "edit-3"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pen-tool.json b/icons/pen-tool.json
index 0dff1df25f8..4f4919a84b2 100644
--- a/icons/pen-tool.json
+++ b/icons/pen-tool.json
@@ -15,4 +15,4 @@
     "design",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pen.json b/icons/pen.json
index 29c10261f2b..3a9929f12bf 100644
--- a/icons/pen.json
+++ b/icons/pen.json
@@ -28,4 +28,4 @@
   "aliases": [
     "edit-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pencil-line.json b/icons/pencil-line.json
index 6320ae3e409..dae13dacd01 100644
--- a/icons/pencil-line.json
+++ b/icons/pencil-line.json
@@ -28,4 +28,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pencil-ruler.json b/icons/pencil-ruler.json
index 64d591a4cb2..032994cc030 100644
--- a/icons/pencil-ruler.json
+++ b/icons/pencil-ruler.json
@@ -38,4 +38,4 @@
     "layout",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pencil.json b/icons/pencil.json
index dd1524c8ac6..d690c0d1bd1 100644
--- a/icons/pencil.json
+++ b/icons/pencil.json
@@ -24,4 +24,4 @@
     "tools",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pentagon.json b/icons/pentagon.json
index 92aea59bf82..37e5e2cb3e3 100644
--- a/icons/pentagon.json
+++ b/icons/pentagon.json
@@ -9,4 +9,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/percent-circle.json b/icons/percent-circle.json
index 812296368ec..d73f9d33144 100644
--- a/icons/percent-circle.json
+++ b/icons/percent-circle.json
@@ -21,4 +21,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/percent-diamond.json b/icons/percent-diamond.json
index 812296368ec..d73f9d33144 100644
--- a/icons/percent-diamond.json
+++ b/icons/percent-diamond.json
@@ -21,4 +21,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/percent-square.json b/icons/percent-square.json
index 812296368ec..d73f9d33144 100644
--- a/icons/percent-square.json
+++ b/icons/percent-square.json
@@ -21,4 +21,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/percent.json b/icons/percent.json
index d604f6d7477..291d964b471 100644
--- a/icons/percent.json
+++ b/icons/percent.json
@@ -21,4 +21,4 @@
     "money",
     "shopping"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/person-standing.json b/icons/person-standing.json
index a6e32222485..a14932468f9 100644
--- a/icons/person-standing.json
+++ b/icons/person-standing.json
@@ -14,4 +14,4 @@
     "accessibility",
     "people"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/phone-call.json b/icons/phone-call.json
index 75a48d90955..067d88cbfc1 100644
--- a/icons/phone-call.json
+++ b/icons/phone-call.json
@@ -14,4 +14,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/phone-forwarded.json b/icons/phone-forwarded.json
index 54a3f7e2834..30cec363871 100644
--- a/icons/phone-forwarded.json
+++ b/icons/phone-forwarded.json
@@ -14,4 +14,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/phone-incoming.json b/icons/phone-incoming.json
index 54a3f7e2834..30cec363871 100644
--- a/icons/phone-incoming.json
+++ b/icons/phone-incoming.json
@@ -14,4 +14,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/phone-missed.json b/icons/phone-missed.json
index c9ff660435b..2bc3506c81d 100644
--- a/icons/phone-missed.json
+++ b/icons/phone-missed.json
@@ -13,4 +13,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/phone-off.json b/icons/phone-off.json
index 436a7cc1798..23f52891348 100644
--- a/icons/phone-off.json
+++ b/icons/phone-off.json
@@ -14,4 +14,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/phone-outgoing.json b/icons/phone-outgoing.json
index 54a3f7e2834..30cec363871 100644
--- a/icons/phone-outgoing.json
+++ b/icons/phone-outgoing.json
@@ -14,4 +14,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/phone.json b/icons/phone.json
index 8f27cba1611..3e431d15ff3 100644
--- a/icons/phone.json
+++ b/icons/phone.json
@@ -14,4 +14,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pi-square.json b/icons/pi-square.json
index 1cb6325cecd..c0382208078 100644
--- a/icons/pi-square.json
+++ b/icons/pi-square.json
@@ -18,4 +18,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pi.json b/icons/pi.json
index dbbb1a6bbac..748fd6dd149 100644
--- a/icons/pi.json
+++ b/icons/pi.json
@@ -19,4 +19,4 @@
     "maths",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/piano.json b/icons/piano.json
index c4ac9959f39..ad3d16f050c 100644
--- a/icons/piano.json
+++ b/icons/piano.json
@@ -23,4 +23,4 @@
     "multimedia",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/picture-in-picture-2.json b/icons/picture-in-picture-2.json
index 1a6d0ee53be..79e03f4ed03 100644
--- a/icons/picture-in-picture-2.json
+++ b/icons/picture-in-picture-2.json
@@ -17,4 +17,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/picture-in-picture.json b/icons/picture-in-picture.json
index 1a6d0ee53be..79e03f4ed03 100644
--- a/icons/picture-in-picture.json
+++ b/icons/picture-in-picture.json
@@ -17,4 +17,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pie-chart.json b/icons/pie-chart.json
index f397016617e..cb28003255c 100644
--- a/icons/pie-chart.json
+++ b/icons/pie-chart.json
@@ -14,4 +14,4 @@
     "charts",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/piggy-bank.json b/icons/piggy-bank.json
index 6daa069f43c..f4a54949130 100644
--- a/icons/piggy-bank.json
+++ b/icons/piggy-bank.json
@@ -10,4 +10,4 @@
   "categories": [
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pilcrow-square.json b/icons/pilcrow-square.json
index 783714fbba8..f20e165e1d4 100644
--- a/icons/pilcrow-square.json
+++ b/icons/pilcrow-square.json
@@ -17,4 +17,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pilcrow.json b/icons/pilcrow.json
index 9de75147c21..44c8c6ae2a5 100644
--- a/icons/pilcrow.json
+++ b/icons/pilcrow.json
@@ -19,4 +19,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pill.json b/icons/pill.json
index 6466d3ef91f..8e7984b638c 100644
--- a/icons/pill.json
+++ b/icons/pill.json
@@ -15,4 +15,4 @@
   "categories": [
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pin-off.json b/icons/pin-off.json
index ddfeefeefa7..228f4d75f49 100644
--- a/icons/pin-off.json
+++ b/icons/pin-off.json
@@ -15,4 +15,4 @@
   "categories": [
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pin.json b/icons/pin.json
index fe02c1d96cb..f253c24e56f 100644
--- a/icons/pin.json
+++ b/icons/pin.json
@@ -15,4 +15,4 @@
     "maps",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pipette.json b/icons/pipette.json
index 01b620100db..1ad1da30606 100644
--- a/icons/pipette.json
+++ b/icons/pipette.json
@@ -16,4 +16,4 @@
     "design",
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pizza.json b/icons/pizza.json
index 50f10b02003..83c6190a9ec 100644
--- a/icons/pizza.json
+++ b/icons/pizza.json
@@ -13,4 +13,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/plane-landing.json b/icons/plane-landing.json
index 1e2f2f53077..6a77f24feb2 100644
--- a/icons/plane-landing.json
+++ b/icons/plane-landing.json
@@ -15,4 +15,4 @@
     "transportation",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/plane-takeoff.json b/icons/plane-takeoff.json
index 91d42f49295..aa75a531514 100644
--- a/icons/plane-takeoff.json
+++ b/icons/plane-takeoff.json
@@ -15,4 +15,4 @@
     "transportation",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/plane.json b/icons/plane.json
index b54bd7d6ece..0a260cdbdee 100644
--- a/icons/plane.json
+++ b/icons/plane.json
@@ -14,4 +14,4 @@
     "transportation",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/play-circle.json b/icons/play-circle.json
index 5efdeefd6b5..290625f0927 100644
--- a/icons/play-circle.json
+++ b/icons/play-circle.json
@@ -12,4 +12,4 @@
     "shapes",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/play-square.json b/icons/play-square.json
index 28d99fe75c2..93485d0da5b 100644
--- a/icons/play-square.json
+++ b/icons/play-square.json
@@ -15,4 +15,4 @@
     "arrows",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/play.json b/icons/play.json
index 5a349c12e05..b988a933a07 100644
--- a/icons/play.json
+++ b/icons/play.json
@@ -14,4 +14,4 @@
     "arrows",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/plus-circle.json b/icons/plus-circle.json
index c93dda5320d..67f75c3df86 100644
--- a/icons/plus-circle.json
+++ b/icons/plus-circle.json
@@ -34,4 +34,4 @@
     "cursors",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/plus-square.json b/icons/plus-square.json
index 4d37da2feba..560fd539224 100644
--- a/icons/plus-square.json
+++ b/icons/plus-square.json
@@ -32,4 +32,4 @@
     "text",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/plus.json b/icons/plus.json
index dd897814739..435362ec66e 100644
--- a/icons/plus.json
+++ b/icons/plus.json
@@ -31,4 +31,4 @@
     "cursors",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pocket-knife.json b/icons/pocket-knife.json
index c116b0283f7..9437184a892 100644
--- a/icons/pocket-knife.json
+++ b/icons/pocket-knife.json
@@ -16,4 +16,4 @@
   "categories": [
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/podcast.json b/icons/podcast.json
index f5091a78a0d..90dae2ea152 100644
--- a/icons/podcast.json
+++ b/icons/podcast.json
@@ -13,4 +13,4 @@
     "multimedia",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pointer.json b/icons/pointer.json
index 732fb38339d..d63b114cf17 100644
--- a/icons/pointer.json
+++ b/icons/pointer.json
@@ -9,4 +9,4 @@
   "categories": [
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/popcorn.json b/icons/popcorn.json
index 36054fcc7c6..e718d18093f 100644
--- a/icons/popcorn.json
+++ b/icons/popcorn.json
@@ -17,4 +17,4 @@
     "food-beverage",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/popsicle.json b/icons/popsicle.json
index c68f691d9a3..faed36283fb 100644
--- a/icons/popsicle.json
+++ b/icons/popsicle.json
@@ -12,4 +12,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pound-sterling.json b/icons/pound-sterling.json
index c70558d50cb..18aa12075b5 100644
--- a/icons/pound-sterling.json
+++ b/icons/pound-sterling.json
@@ -13,4 +13,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/power-circle.json b/icons/power-circle.json
index 14d8a5941b0..9df4c8948d1 100644
--- a/icons/power-circle.json
+++ b/icons/power-circle.json
@@ -20,4 +20,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/power-off.json b/icons/power-off.json
index 25e1b250b79..951c719d240 100644
--- a/icons/power-off.json
+++ b/icons/power-off.json
@@ -14,4 +14,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/power-square.json b/icons/power-square.json
index 14d8a5941b0..9df4c8948d1 100644
--- a/icons/power-square.json
+++ b/icons/power-square.json
@@ -20,4 +20,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/power.json b/icons/power.json
index 16318d81e9c..2d3fafe450f 100644
--- a/icons/power.json
+++ b/icons/power.json
@@ -22,4 +22,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/presentation.json b/icons/presentation.json
index cca01634e68..6e817a36ce6 100644
--- a/icons/presentation.json
+++ b/icons/presentation.json
@@ -26,4 +26,4 @@
     "communication",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/printer.json b/icons/printer.json
index 70a6468a771..3389414cc2c 100644
--- a/icons/printer.json
+++ b/icons/printer.json
@@ -14,4 +14,4 @@
     "devices",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/projector.json b/icons/projector.json
index 8ce6b42155c..b0a2cf99ab1 100644
--- a/icons/projector.json
+++ b/icons/projector.json
@@ -21,4 +21,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/puzzle.json b/icons/puzzle.json
index e99b25b7e6a..91536ef3539 100644
--- a/icons/puzzle.json
+++ b/icons/puzzle.json
@@ -14,4 +14,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/pyramid.json b/icons/pyramid.json
index 76c0ffe19c9..63967f72007 100644
--- a/icons/pyramid.json
+++ b/icons/pyramid.json
@@ -20,4 +20,4 @@
     "maths",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/qr-code.json b/icons/qr-code.json
index 9a25481bfcd..131f6224da6 100644
--- a/icons/qr-code.json
+++ b/icons/qr-code.json
@@ -17,4 +17,4 @@
     "development",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/quote.json b/icons/quote.json
index 8b6b466332d..974c911d8b5 100644
--- a/icons/quote.json
+++ b/icons/quote.json
@@ -9,4 +9,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rabbit.json b/icons/rabbit.json
index 280b167d2a3..2028e353746 100644
--- a/icons/rabbit.json
+++ b/icons/rabbit.json
@@ -17,4 +17,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/radar.json b/icons/radar.json
index 35943eab27a..7b81fd7c6ed 100644
--- a/icons/radar.json
+++ b/icons/radar.json
@@ -17,4 +17,4 @@
     "security",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/radiation.json b/icons/radiation.json
index 37227d5a5d0..0a8b41defbd 100644
--- a/icons/radiation.json
+++ b/icons/radiation.json
@@ -18,4 +18,4 @@
   "categories": [
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/radio-receiver.json b/icons/radio-receiver.json
index f649b348dd3..7d1ccc2c77a 100644
--- a/icons/radio-receiver.json
+++ b/icons/radio-receiver.json
@@ -11,4 +11,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/radio-tower.json b/icons/radio-tower.json
index a9bbedf479d..4ba98f8dddf 100644
--- a/icons/radio-tower.json
+++ b/icons/radio-tower.json
@@ -16,4 +16,4 @@
     "multimedia",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/radio.json b/icons/radio.json
index 34ef5c3217d..33202f90e71 100644
--- a/icons/radio.json
+++ b/icons/radio.json
@@ -19,4 +19,4 @@
     "multimedia",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/radius.json b/icons/radius.json
index d27120df5b7..4fae0981213 100644
--- a/icons/radius.json
+++ b/icons/radius.json
@@ -19,4 +19,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rail-symbol.json b/icons/rail-symbol.json
index 8ea043bae85..b2aa5d3b831 100644
--- a/icons/rail-symbol.json
+++ b/icons/rail-symbol.json
@@ -13,4 +13,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rainbow.json b/icons/rainbow.json
index 1b173d88329..75ae782ac34 100644
--- a/icons/rainbow.json
+++ b/icons/rainbow.json
@@ -16,4 +16,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rat.json b/icons/rat.json
index 95e3fabe4a6..eb73815973d 100644
--- a/icons/rat.json
+++ b/icons/rat.json
@@ -19,4 +19,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ratio.json b/icons/ratio.json
index 90f95c974ac..bcaaa3bb375 100644
--- a/icons/ratio.json
+++ b/icons/ratio.json
@@ -26,4 +26,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-cent.json b/icons/receipt-cent.json
index fb43d5c5be4..202a9f360a3 100644
--- a/icons/receipt-cent.json
+++ b/icons/receipt-cent.json
@@ -21,4 +21,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-euro.json b/icons/receipt-euro.json
index ef61a600a23..5638862c306 100644
--- a/icons/receipt-euro.json
+++ b/icons/receipt-euro.json
@@ -17,4 +17,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-indian-rupee.json b/icons/receipt-indian-rupee.json
index 4b6f1f49357..372049be8ff 100644
--- a/icons/receipt-indian-rupee.json
+++ b/icons/receipt-indian-rupee.json
@@ -17,4 +17,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-japanese-yen.json b/icons/receipt-japanese-yen.json
index 87d7feb6ac6..e2ada4d18cd 100644
--- a/icons/receipt-japanese-yen.json
+++ b/icons/receipt-japanese-yen.json
@@ -19,4 +19,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-pound-sterling.json b/icons/receipt-pound-sterling.json
index 3583bf56c69..1f171f35dbb 100644
--- a/icons/receipt-pound-sterling.json
+++ b/icons/receipt-pound-sterling.json
@@ -18,4 +18,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-russian-ruble.json b/icons/receipt-russian-ruble.json
index 957570acc18..f12c4cd5e42 100644
--- a/icons/receipt-russian-ruble.json
+++ b/icons/receipt-russian-ruble.json
@@ -17,4 +17,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-swiss-franc.json b/icons/receipt-swiss-franc.json
index 41da12a3e12..aba9b00956a 100644
--- a/icons/receipt-swiss-franc.json
+++ b/icons/receipt-swiss-franc.json
@@ -17,4 +17,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt-text.json b/icons/receipt-text.json
index 5e64448ec6e..e88c9ff3e4a 100644
--- a/icons/receipt-text.json
+++ b/icons/receipt-text.json
@@ -19,4 +19,4 @@
     "money",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/receipt.json b/icons/receipt.json
index f2db04d83e8..ffb5b538afd 100644
--- a/icons/receipt.json
+++ b/icons/receipt.json
@@ -21,4 +21,4 @@
     "currency",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rectangle-horizontal.json b/icons/rectangle-horizontal.json
index b33cf0b493c..ab9619cd32a 100644
--- a/icons/rectangle-horizontal.json
+++ b/icons/rectangle-horizontal.json
@@ -18,4 +18,4 @@
     "shapes",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rectangle-vertical.json b/icons/rectangle-vertical.json
index 09e4a580a43..4d4a7e271b8 100644
--- a/icons/rectangle-vertical.json
+++ b/icons/rectangle-vertical.json
@@ -18,4 +18,4 @@
     "shapes",
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/recycle.json b/icons/recycle.json
index 631133b89c7..8b3d04d2355 100644
--- a/icons/recycle.json
+++ b/icons/recycle.json
@@ -11,4 +11,4 @@
   "categories": [
     "sustainability"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/redo-2.json b/icons/redo-2.json
index 1ef4e190867..da95457eb0c 100644
--- a/icons/redo-2.json
+++ b/icons/redo-2.json
@@ -14,4 +14,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/redo-dot.json b/icons/redo-dot.json
index efc5e770dc7..e1787f0263a 100644
--- a/icons/redo-dot.json
+++ b/icons/redo-dot.json
@@ -15,4 +15,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/redo.json b/icons/redo.json
index ee3a1114ea8..3dc4b296269 100644
--- a/icons/redo.json
+++ b/icons/redo.json
@@ -14,4 +14,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/refresh-ccw-dot.json b/icons/refresh-ccw-dot.json
index 3cf63ee5fb6..309a06e4bc5 100644
--- a/icons/refresh-ccw-dot.json
+++ b/icons/refresh-ccw-dot.json
@@ -21,4 +21,4 @@
     "development",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/refresh-ccw.json b/icons/refresh-ccw.json
index 1ebd7babce1..fd39ee40fb9 100644
--- a/icons/refresh-ccw.json
+++ b/icons/refresh-ccw.json
@@ -21,4 +21,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/refresh-cw-off.json b/icons/refresh-cw-off.json
index 5111ee2e826..4af86aef4df 100644
--- a/icons/refresh-cw-off.json
+++ b/icons/refresh-cw-off.json
@@ -24,4 +24,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/refresh-cw.json b/icons/refresh-cw.json
index 1695d8b99f9..8b6bddcafae 100644
--- a/icons/refresh-cw.json
+++ b/icons/refresh-cw.json
@@ -21,4 +21,4 @@
   "categories": [
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/refrigerator.json b/icons/refrigerator.json
index c2348346faf..24fef807abd 100644
--- a/icons/refrigerator.json
+++ b/icons/refrigerator.json
@@ -16,4 +16,4 @@
     "food-beverage",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/regex.json b/icons/regex.json
index f0f62bc2a9f..cd9ea3fddcb 100644
--- a/icons/regex.json
+++ b/icons/regex.json
@@ -13,4 +13,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/remove-formatting.json b/icons/remove-formatting.json
index 8eae0dc7c1b..8f61c7a89f8 100644
--- a/icons/remove-formatting.json
+++ b/icons/remove-formatting.json
@@ -17,4 +17,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/repeat-1.json b/icons/repeat-1.json
index 841cb81873e..d8d8e869227 100644
--- a/icons/repeat-1.json
+++ b/icons/repeat-1.json
@@ -9,4 +9,4 @@
   "categories": [
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/repeat-2.json b/icons/repeat-2.json
index d7909417c43..cc54afa1fe4 100644
--- a/icons/repeat-2.json
+++ b/icons/repeat-2.json
@@ -17,4 +17,4 @@
     "social",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/repeat.json b/icons/repeat.json
index 79b4d55625a..8037d44c5ac 100644
--- a/icons/repeat.json
+++ b/icons/repeat.json
@@ -13,4 +13,4 @@
     "arrows",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/replace-all.json b/icons/replace-all.json
index 389d86d0ec9..f9b8b52b15a 100644
--- a/icons/replace-all.json
+++ b/icons/replace-all.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/replace.json b/icons/replace.json
index 389d86d0ec9..f9b8b52b15a 100644
--- a/icons/replace.json
+++ b/icons/replace.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/reply-all.json b/icons/reply-all.json
index c621851f280..2cd53dc3ea7 100644
--- a/icons/reply-all.json
+++ b/icons/reply-all.json
@@ -11,4 +11,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/reply.json b/icons/reply.json
index c621851f280..2cd53dc3ea7 100644
--- a/icons/reply.json
+++ b/icons/reply.json
@@ -11,4 +11,4 @@
   "categories": [
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rewind.json b/icons/rewind.json
index d0ffed2e36d..03976f99f73 100644
--- a/icons/rewind.json
+++ b/icons/rewind.json
@@ -10,4 +10,4 @@
     "arrows",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rocket.json b/icons/rocket.json
index d6a6e69141a..6990e7820fa 100644
--- a/icons/rocket.json
+++ b/icons/rocket.json
@@ -14,4 +14,4 @@
     "gaming",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rocking-chair.json b/icons/rocking-chair.json
index ca257127856..307a592ec5a 100644
--- a/icons/rocking-chair.json
+++ b/icons/rocking-chair.json
@@ -12,4 +12,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/roller-coaster.json b/icons/roller-coaster.json
index b601bf4ffbe..39f613a2a04 100644
--- a/icons/roller-coaster.json
+++ b/icons/roller-coaster.json
@@ -13,4 +13,4 @@
   "categories": [
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rotate-3d.json b/icons/rotate-3d.json
index 9761efba368..793e358d080 100644
--- a/icons/rotate-3d.json
+++ b/icons/rotate-3d.json
@@ -15,4 +15,4 @@
   "aliases": [
     "rotate-3-d"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rotate-ccw.json b/icons/rotate-ccw.json
index 19b0b05b34b..d01b6b25503 100644
--- a/icons/rotate-ccw.json
+++ b/icons/rotate-ccw.json
@@ -24,4 +24,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rotate-cw.json b/icons/rotate-cw.json
index 9dfacae179b..0b02c57c439 100644
--- a/icons/rotate-cw.json
+++ b/icons/rotate-cw.json
@@ -22,4 +22,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/route-off.json b/icons/route-off.json
index f6ad2a1801e..4c2c29ae7cb 100644
--- a/icons/route-off.json
+++ b/icons/route-off.json
@@ -20,4 +20,4 @@
     "maps",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/route.json b/icons/route.json
index 9bb5f709034..0641bf64824 100644
--- a/icons/route.json
+++ b/icons/route.json
@@ -15,4 +15,4 @@
     "maps",
     "navigation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/router.json b/icons/router.json
index daaceafacfe..a9b34518b69 100644
--- a/icons/router.json
+++ b/icons/router.json
@@ -16,4 +16,4 @@
     "connectivity",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rows-2.json b/icons/rows-2.json
index f9739df3321..a43a49bb522 100644
--- a/icons/rows-2.json
+++ b/icons/rows-2.json
@@ -29,4 +29,4 @@
   "aliases": [
     "rows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rows-3.json b/icons/rows-3.json
index b4ce2633a0c..8125af91e82 100644
--- a/icons/rows-3.json
+++ b/icons/rows-3.json
@@ -28,4 +28,4 @@
   "aliases": [
     "panels-top-bottom"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rows-4.json b/icons/rows-4.json
index ac31e5e2ab2..220b0d1f89b 100644
--- a/icons/rows-4.json
+++ b/icons/rows-4.json
@@ -26,4 +26,4 @@
     "design",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/rss.json b/icons/rss.json
index 6f0f4349aa5..6f612f0b51c 100644
--- a/icons/rss.json
+++ b/icons/rss.json
@@ -13,4 +13,4 @@
     "development",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ruler.json b/icons/ruler.json
index e85895f21b3..f012f1f026d 100644
--- a/icons/ruler.json
+++ b/icons/ruler.json
@@ -32,4 +32,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/russian-ruble.json b/icons/russian-ruble.json
index c70558d50cb..18aa12075b5 100644
--- a/icons/russian-ruble.json
+++ b/icons/russian-ruble.json
@@ -13,4 +13,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sailboat.json b/icons/sailboat.json
index 0fe6c27ba47..3cbf0a8e505 100644
--- a/icons/sailboat.json
+++ b/icons/sailboat.json
@@ -15,4 +15,4 @@
     "transportation",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/salad.json b/icons/salad.json
index 63603d8854f..5b50cba2ff5 100644
--- a/icons/salad.json
+++ b/icons/salad.json
@@ -18,4 +18,4 @@
     "food-beverage",
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sandwich.json b/icons/sandwich.json
index aaaef99f193..196eab28453 100644
--- a/icons/sandwich.json
+++ b/icons/sandwich.json
@@ -14,4 +14,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/satellite-dish.json b/icons/satellite-dish.json
index 9399f80d387..c5ab7a13ee2 100644
--- a/icons/satellite-dish.json
+++ b/icons/satellite-dish.json
@@ -15,4 +15,4 @@
     "devices",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/satellite.json b/icons/satellite.json
index 8cec9ced03c..8f048df2b7d 100644
--- a/icons/satellite.json
+++ b/icons/satellite.json
@@ -13,4 +13,4 @@
     "connectivity",
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/save-all.json b/icons/save-all.json
index 7f9bf8e69d7..4ad88dc2095 100644
--- a/icons/save-all.json
+++ b/icons/save-all.json
@@ -13,4 +13,4 @@
     "text",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/save.json b/icons/save.json
index 1f53d018700..a38bbf434f5 100644
--- a/icons/save.json
+++ b/icons/save.json
@@ -12,4 +12,4 @@
     "text",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scale-3d.json b/icons/scale-3d.json
index ad7892eaa6a..8846565bede 100644
--- a/icons/scale-3d.json
+++ b/icons/scale-3d.json
@@ -16,4 +16,4 @@
   "aliases": [
     "scale-3-d"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scale.json b/icons/scale.json
index cfdde264d10..494aaa8b400 100644
--- a/icons/scale.json
+++ b/icons/scale.json
@@ -16,4 +16,4 @@
   "categories": [
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scaling.json b/icons/scaling.json
index 142968cb56a..0331f3ddc6d 100644
--- a/icons/scaling.json
+++ b/icons/scaling.json
@@ -11,4 +11,4 @@
   "categories": [
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scan-barcode.json b/icons/scan-barcode.json
index 474d0c4ce6a..8069713fc42 100644
--- a/icons/scan-barcode.json
+++ b/icons/scan-barcode.json
@@ -19,4 +19,4 @@
     "shopping",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scan-eye.json b/icons/scan-eye.json
index 5fd594a3816..39df76fe7b6 100644
--- a/icons/scan-eye.json
+++ b/icons/scan-eye.json
@@ -31,4 +31,4 @@
     "devices",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scan-face.json b/icons/scan-face.json
index f568e1efe37..783586c9848 100644
--- a/icons/scan-face.json
+++ b/icons/scan-face.json
@@ -19,4 +19,4 @@
     "devices",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scan-line.json b/icons/scan-line.json
index 2da9ac5c13a..0436daee1b2 100644
--- a/icons/scan-line.json
+++ b/icons/scan-line.json
@@ -22,4 +22,4 @@
     "devices",
     "shopping"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scan-search.json b/icons/scan-search.json
index cb6be901d35..b95e41d5804 100644
--- a/icons/scan-search.json
+++ b/icons/scan-search.json
@@ -19,4 +19,4 @@
     "layout",
     "accessibility"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scan-text.json b/icons/scan-text.json
index b6c631b6b9b..932868814b5 100644
--- a/icons/scan-text.json
+++ b/icons/scan-text.json
@@ -14,4 +14,4 @@
     "text",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scan.json b/icons/scan.json
index 47f4948bc44..ab38963889d 100644
--- a/icons/scan.json
+++ b/icons/scan.json
@@ -31,4 +31,4 @@
     "social",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scatter-chart.json b/icons/scatter-chart.json
index 84730fc16e9..95e3c309027 100644
--- a/icons/scatter-chart.json
+++ b/icons/scatter-chart.json
@@ -12,4 +12,4 @@
   "categories": [
     "charts"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/school-2.json b/icons/school-2.json
index 491e5ab5167..e98cac803fd 100644
--- a/icons/school-2.json
+++ b/icons/school-2.json
@@ -13,4 +13,4 @@
     "buildings",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/school.json b/icons/school.json
index 491e5ab5167..e98cac803fd 100644
--- a/icons/school.json
+++ b/icons/school.json
@@ -13,4 +13,4 @@
     "buildings",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scissors-square-dashed-bottom.json b/icons/scissors-square-dashed-bottom.json
index 452c0975705..e12a70d428a 100644
--- a/icons/scissors-square-dashed-bottom.json
+++ b/icons/scissors-square-dashed-bottom.json
@@ -17,4 +17,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scissors-square.json b/icons/scissors-square.json
index b68ecb385fc..7a106cbae7a 100644
--- a/icons/scissors-square.json
+++ b/icons/scissors-square.json
@@ -19,4 +19,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scissors.json b/icons/scissors.json
index 5e5a93e05c7..b20b3b38322 100644
--- a/icons/scissors.json
+++ b/icons/scissors.json
@@ -16,4 +16,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/screen-share-off.json b/icons/screen-share-off.json
index 87c748ff0a7..2f3ac6e39a1 100644
--- a/icons/screen-share-off.json
+++ b/icons/screen-share-off.json
@@ -15,4 +15,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/screen-share.json b/icons/screen-share.json
index 23b015d2775..c3b67a0ddc0 100644
--- a/icons/screen-share.json
+++ b/icons/screen-share.json
@@ -15,4 +15,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scroll-text.json b/icons/scroll-text.json
index f53537cc738..3a1d46accbd 100644
--- a/icons/scroll-text.json
+++ b/icons/scroll-text.json
@@ -22,4 +22,4 @@
     "development",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/scroll.json b/icons/scroll.json
index 0e4f65a9249..b7a575d5c3c 100644
--- a/icons/scroll.json
+++ b/icons/scroll.json
@@ -24,4 +24,4 @@
     "development",
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/search-check.json b/icons/search-check.json
index 17283a2aa72..d2de3f7f8b4 100644
--- a/icons/search-check.json
+++ b/icons/search-check.json
@@ -18,4 +18,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/search-code.json b/icons/search-code.json
index 02289a2da5b..0c2b2491cec 100644
--- a/icons/search-code.json
+++ b/icons/search-code.json
@@ -18,4 +18,4 @@
     "social",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/search-slash.json b/icons/search-slash.json
index 8c765fcff29..93648bb4fa0 100644
--- a/icons/search-slash.json
+++ b/icons/search-slash.json
@@ -19,4 +19,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/search-x.json b/icons/search-x.json
index be6f9d03fc6..4eee7074129 100644
--- a/icons/search-x.json
+++ b/icons/search-x.json
@@ -18,4 +18,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/search.json b/icons/search.json
index 5347296a0bd..49beed21eca 100644
--- a/icons/search.json
+++ b/icons/search.json
@@ -15,4 +15,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/send-horizontal.json b/icons/send-horizontal.json
index 3d10eacf0db..35a8fd09776 100644
--- a/icons/send-horizontal.json
+++ b/icons/send-horizontal.json
@@ -19,4 +19,4 @@
   "aliases": [
     "send-horizonal"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/send-to-back.json b/icons/send-to-back.json
index c9f9bb12552..bd34826874d 100644
--- a/icons/send-to-back.json
+++ b/icons/send-to-back.json
@@ -19,4 +19,4 @@
     "design",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/send.json b/icons/send.json
index 58494794b95..b6522ea719f 100644
--- a/icons/send.json
+++ b/icons/send.json
@@ -17,4 +17,4 @@
     "communication",
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/separator-horizontal.json b/icons/separator-horizontal.json
index a957fdeb2b7..7f33eba52bc 100644
--- a/icons/separator-horizontal.json
+++ b/icons/separator-horizontal.json
@@ -12,4 +12,4 @@
     "arrows",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/separator-vertical.json b/icons/separator-vertical.json
index a957fdeb2b7..7f33eba52bc 100644
--- a/icons/separator-vertical.json
+++ b/icons/separator-vertical.json
@@ -12,4 +12,4 @@
     "arrows",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/server-cog.json b/icons/server-cog.json
index c69d75a85e3..bc009ff324d 100644
--- a/icons/server-cog.json
+++ b/icons/server-cog.json
@@ -14,4 +14,4 @@
     "development",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/server-crash.json b/icons/server-crash.json
index 34c08e84629..a0fe4fee68e 100644
--- a/icons/server-crash.json
+++ b/icons/server-crash.json
@@ -14,4 +14,4 @@
     "development",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/server-off.json b/icons/server-off.json
index 9b5022f3770..51b4bdb1f51 100644
--- a/icons/server-off.json
+++ b/icons/server-off.json
@@ -13,4 +13,4 @@
     "development",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/server.json b/icons/server.json
index f0ede4fb3f2..6dd0d4c6788 100644
--- a/icons/server.json
+++ b/icons/server.json
@@ -12,4 +12,4 @@
     "development",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/settings-2.json b/icons/settings-2.json
index 74b50ba1333..ec0c13473d5 100644
--- a/icons/settings-2.json
+++ b/icons/settings-2.json
@@ -13,4 +13,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/settings.json b/icons/settings.json
index d3b25c14931..3096088e087 100644
--- a/icons/settings.json
+++ b/icons/settings.json
@@ -15,4 +15,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shapes.json b/icons/shapes.json
index 2675416532f..bb1f51c357f 100644
--- a/icons/shapes.json
+++ b/icons/shapes.json
@@ -19,4 +19,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/share-2.json b/icons/share-2.json
index 6e1f389f3aa..4b82cd97b3e 100644
--- a/icons/share-2.json
+++ b/icons/share-2.json
@@ -12,4 +12,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/share.json b/icons/share.json
index 17cfc0ac21e..6d68e8d6113 100644
--- a/icons/share.json
+++ b/icons/share.json
@@ -13,4 +13,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sheet.json b/icons/sheet.json
index 8acfcb52f3d..bc20e5cbcfb 100644
--- a/icons/sheet.json
+++ b/icons/sheet.json
@@ -15,4 +15,4 @@
     "text",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shell.json b/icons/shell.json
index 48e005c6b36..18b8a88b901 100644
--- a/icons/shell.json
+++ b/icons/shell.json
@@ -40,4 +40,4 @@
     "food-beverage",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-alert.json b/icons/shield-alert.json
index 8eb18f325f1..44e9688fbf4 100644
--- a/icons/shield-alert.json
+++ b/icons/shield-alert.json
@@ -77,4 +77,4 @@
     "notifications",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-ban.json b/icons/shield-ban.json
index df167ef8587..11246d923fd 100644
--- a/icons/shield-ban.json
+++ b/icons/shield-ban.json
@@ -1,6 +1,8 @@
 {
   "$schema": "../icon.schema.json",
-  "contributors": ["danielbayley"],
+  "contributors": [
+    "danielbayley"
+  ],
   "tags": [
     "unshielded",
     "cybersecurity",
@@ -67,4 +69,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-check.json b/icons/shield-check.json
index 67f21d7b77b..26db56aa6a3 100644
--- a/icons/shield-check.json
+++ b/icons/shield-check.json
@@ -65,4 +65,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-ellipsis.json b/icons/shield-ellipsis.json
index aa833666f63..a39bbe1a2f0 100644
--- a/icons/shield-ellipsis.json
+++ b/icons/shield-ellipsis.json
@@ -38,4 +38,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-half.json b/icons/shield-half.json
index bdcae805664..d3f5e23a6ec 100644
--- a/icons/shield-half.json
+++ b/icons/shield-half.json
@@ -65,4 +65,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-minus.json b/icons/shield-minus.json
index e2be7f7a91a..9acad1e366d 100644
--- a/icons/shield-minus.json
+++ b/icons/shield-minus.json
@@ -39,4 +39,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-off.json b/icons/shield-off.json
index 7a39a698092..4d9ff230c6e 100644
--- a/icons/shield-off.json
+++ b/icons/shield-off.json
@@ -59,4 +59,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield-question.json b/icons/shield-question.json
index 71de718222a..f258f6f3679 100644
--- a/icons/shield-question.json
+++ b/icons/shield-question.json
@@ -56,4 +56,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shield.json b/icons/shield.json
index c6872642d7b..fbd486c6b1c 100644
--- a/icons/shield.json
+++ b/icons/shield.json
@@ -54,4 +54,4 @@
     "gaming",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ship-wheel.json b/icons/ship-wheel.json
index f15a359b958..0a3c189245e 100644
--- a/icons/ship-wheel.json
+++ b/icons/ship-wheel.json
@@ -24,4 +24,4 @@
     "travel",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ship.json b/icons/ship.json
index d7d93bdac6e..748f99d66d6 100644
--- a/icons/ship.json
+++ b/icons/ship.json
@@ -22,4 +22,4 @@
     "travel",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shirt.json b/icons/shirt.json
index 7d190e17b90..5dfd1b6d88e 100644
--- a/icons/shirt.json
+++ b/icons/shirt.json
@@ -15,4 +15,4 @@
   "categories": [
     "shopping"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shopping-bag.json b/icons/shopping-bag.json
index b390bbea156..590765739d7 100644
--- a/icons/shopping-bag.json
+++ b/icons/shopping-bag.json
@@ -14,4 +14,4 @@
   "categories": [
     "shopping"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shopping-basket.json b/icons/shopping-basket.json
index 268753f8fd6..f3233ddd1a4 100644
--- a/icons/shopping-basket.json
+++ b/icons/shopping-basket.json
@@ -15,4 +15,4 @@
   "categories": [
     "shopping"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shopping-cart.json b/icons/shopping-cart.json
index 6d8927c3e68..68ba56f4557 100644
--- a/icons/shopping-cart.json
+++ b/icons/shopping-cart.json
@@ -20,4 +20,4 @@
   "categories": [
     "shopping"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shovel.json b/icons/shovel.json
index 6753a335bc5..1d821fea785 100644
--- a/icons/shovel.json
+++ b/icons/shovel.json
@@ -14,4 +14,4 @@
     "tools",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shower-head.json b/icons/shower-head.json
index edde028b379..00eb7adfe1a 100644
--- a/icons/shower-head.json
+++ b/icons/shower-head.json
@@ -14,4 +14,4 @@
     "home",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shrink.json b/icons/shrink.json
index db2b3ff0d44..2f71ba5147e 100644
--- a/icons/shrink.json
+++ b/icons/shrink.json
@@ -12,4 +12,4 @@
     "layout",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shrub.json b/icons/shrub.json
index b7f8d4be827..d044c6f2b9e 100644
--- a/icons/shrub.json
+++ b/icons/shrub.json
@@ -13,4 +13,4 @@
   "categories": [
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/shuffle.json b/icons/shuffle.json
index db4ea5ee8a6..3cdd6484a03 100644
--- a/icons/shuffle.json
+++ b/icons/shuffle.json
@@ -15,4 +15,4 @@
     "multimedia",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sigma-square.json b/icons/sigma-square.json
index c17ff99448a..a3eb2002337 100644
--- a/icons/sigma-square.json
+++ b/icons/sigma-square.json
@@ -15,4 +15,4 @@
     "text",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sigma.json b/icons/sigma.json
index ce03f2a3148..3fe11786697 100644
--- a/icons/sigma.json
+++ b/icons/sigma.json
@@ -17,4 +17,4 @@
     "text",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/signal-high.json b/icons/signal-high.json
index 980f6f7e5b3..bcc9ffd26ad 100644
--- a/icons/signal-high.json
+++ b/icons/signal-high.json
@@ -16,4 +16,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/signal-low.json b/icons/signal-low.json
index 96901846bef..e5493fb03f9 100644
--- a/icons/signal-low.json
+++ b/icons/signal-low.json
@@ -18,4 +18,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/signal-medium.json b/icons/signal-medium.json
index 980f6f7e5b3..bcc9ffd26ad 100644
--- a/icons/signal-medium.json
+++ b/icons/signal-medium.json
@@ -16,4 +16,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/signal-zero.json b/icons/signal-zero.json
index 09e9d18da9e..2f431b5d3bc 100644
--- a/icons/signal-zero.json
+++ b/icons/signal-zero.json
@@ -20,4 +20,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/signal.json b/icons/signal.json
index 980f6f7e5b3..bcc9ffd26ad 100644
--- a/icons/signal.json
+++ b/icons/signal.json
@@ -16,4 +16,4 @@
   "categories": [
     "connectivity"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/signpost-big.json b/icons/signpost-big.json
index 17f39a33631..6ad77c237e7 100644
--- a/icons/signpost-big.json
+++ b/icons/signpost-big.json
@@ -16,4 +16,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/signpost.json b/icons/signpost.json
index 17f39a33631..6ad77c237e7 100644
--- a/icons/signpost.json
+++ b/icons/signpost.json
@@ -16,4 +16,4 @@
     "development",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/siren.json b/icons/siren.json
index e3037dd4942..5abc27bbb21 100644
--- a/icons/siren.json
+++ b/icons/siren.json
@@ -15,4 +15,4 @@
   "categories": [
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/skip-back.json b/icons/skip-back.json
index 68890531fa1..a214e5ed9f9 100644
--- a/icons/skip-back.json
+++ b/icons/skip-back.json
@@ -13,4 +13,4 @@
     "multimedia",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/skip-forward.json b/icons/skip-forward.json
index a2957c8800b..94faabec60f 100644
--- a/icons/skip-forward.json
+++ b/icons/skip-forward.json
@@ -14,4 +14,4 @@
     "multimedia",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/skull.json b/icons/skull.json
index 173cf556caf..3fa9220675b 100644
--- a/icons/skull.json
+++ b/icons/skull.json
@@ -11,4 +11,4 @@
   "categories": [
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/slash-square.json b/icons/slash-square.json
index 1d14f820c22..50fc743b4e8 100644
--- a/icons/slash-square.json
+++ b/icons/slash-square.json
@@ -13,7 +13,7 @@
     "division",
     "shortcut",
     "or",
-    "/"    
+    "/"
   ],
   "categories": [
     "shapes",
@@ -23,4 +23,4 @@
   "aliases": [
     "square-slash"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/slash.json b/icons/slash.json
index 902a30c39f3..b3ea3e9d6d4 100644
--- a/icons/slash.json
+++ b/icons/slash.json
@@ -13,4 +13,4 @@
     "development",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/slice.json b/icons/slice.json
index 7699253abb5..6b9051a6267 100644
--- a/icons/slice.json
+++ b/icons/slice.json
@@ -12,4 +12,4 @@
   "categories": [
     "design"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sliders-horizontal.json b/icons/sliders-horizontal.json
index c71c30a20f9..201a00c9ede 100644
--- a/icons/sliders-horizontal.json
+++ b/icons/sliders-horizontal.json
@@ -12,4 +12,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sliders.json b/icons/sliders.json
index 3497f573fff..4e9e759e364 100644
--- a/icons/sliders.json
+++ b/icons/sliders.json
@@ -12,4 +12,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/smartphone-charging.json b/icons/smartphone-charging.json
index f1f3c4e6d20..f123cbd773e 100644
--- a/icons/smartphone-charging.json
+++ b/icons/smartphone-charging.json
@@ -15,4 +15,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/smartphone-nfc.json b/icons/smartphone-nfc.json
index 8ad86ce7829..004fa55bf60 100644
--- a/icons/smartphone-nfc.json
+++ b/icons/smartphone-nfc.json
@@ -16,4 +16,4 @@
     "money",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/smartphone.json b/icons/smartphone.json
index f110e2aa9bc..de7c6a8bb4b 100644
--- a/icons/smartphone.json
+++ b/icons/smartphone.json
@@ -15,4 +15,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/smile-plus.json b/icons/smile-plus.json
index 026cca58989..bf49210fd99 100644
--- a/icons/smile-plus.json
+++ b/icons/smile-plus.json
@@ -20,4 +20,4 @@
     "notifications",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/smile.json b/icons/smile.json
index d3f039b754a..160d19cc8ea 100644
--- a/icons/smile.json
+++ b/icons/smile.json
@@ -17,4 +17,4 @@
     "emoji",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/snail.json b/icons/snail.json
index 4e867521c38..c9e981d71af 100644
--- a/icons/snail.json
+++ b/icons/snail.json
@@ -15,4 +15,4 @@
     "animals",
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/snowflake.json b/icons/snowflake.json
index 965344db2d0..1a96034e97d 100644
--- a/icons/snowflake.json
+++ b/icons/snowflake.json
@@ -15,4 +15,4 @@
     "weather",
     "seasons"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sofa.json b/icons/sofa.json
index e5698618248..db59285e4ce 100644
--- a/icons/sofa.json
+++ b/icons/sofa.json
@@ -14,4 +14,4 @@
   "categories": [
     "furniture"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/soup.json b/icons/soup.json
index a38b7148847..9b472af9721 100644
--- a/icons/soup.json
+++ b/icons/soup.json
@@ -15,4 +15,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/space.json b/icons/space.json
index 88ce2db6dce..d2be2abebdf 100644
--- a/icons/space.json
+++ b/icons/space.json
@@ -15,4 +15,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/spade.json b/icons/spade.json
index 43d20b7ed10..ed7230b16c4 100644
--- a/icons/spade.json
+++ b/icons/spade.json
@@ -14,4 +14,4 @@
     "shapes",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sparkle.json b/icons/sparkle.json
index 037c80f460b..20d14610a45 100644
--- a/icons/sparkle.json
+++ b/icons/sparkle.json
@@ -18,4 +18,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sparkles.json b/icons/sparkles.json
index 697c18238d2..02b4d6cb48d 100644
--- a/icons/sparkles.json
+++ b/icons/sparkles.json
@@ -3,7 +3,9 @@
   "contributors": [
     "karsa-mistmere"
   ],
-  "aliases": ["stars"],
+  "aliases": [
+    "stars"
+  ],
   "tags": [
     "stars",
     "effect",
diff --git a/icons/speaker.json b/icons/speaker.json
index 3d33ceb84d5..755953cc0f2 100644
--- a/icons/speaker.json
+++ b/icons/speaker.json
@@ -20,4 +20,4 @@
     "multimedia",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/spell-check-2.json b/icons/spell-check-2.json
index 340597f9050..251aedf4ba5 100644
--- a/icons/spell-check-2.json
+++ b/icons/spell-check-2.json
@@ -19,4 +19,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/spell-check.json b/icons/spell-check.json
index 340597f9050..251aedf4ba5 100644
--- a/icons/spell-check.json
+++ b/icons/spell-check.json
@@ -19,4 +19,4 @@
     "text",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/split-square-horizontal.json b/icons/split-square-horizontal.json
index 414814a2bf8..71ef530e204 100644
--- a/icons/split-square-horizontal.json
+++ b/icons/split-square-horizontal.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/split-square-vertical.json b/icons/split-square-vertical.json
index 414814a2bf8..71ef530e204 100644
--- a/icons/split-square-vertical.json
+++ b/icons/split-square-vertical.json
@@ -11,4 +11,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/split.json b/icons/split.json
index b760e430e68..b23a1fc7e71 100644
--- a/icons/split.json
+++ b/icons/split.json
@@ -16,4 +16,4 @@
     "development",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/spray-can.json b/icons/spray-can.json
index fea713fc8ad..6ddae08181f 100644
--- a/icons/spray-can.json
+++ b/icons/spray-can.json
@@ -17,4 +17,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sprout.json b/icons/sprout.json
index a1024ce4f14..3a119700ef5 100644
--- a/icons/sprout.json
+++ b/icons/sprout.json
@@ -13,4 +13,4 @@
     "nature",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/square-dashed-bottom-code.json b/icons/square-dashed-bottom-code.json
index a156a28bdde..0a33aeaae46 100644
--- a/icons/square-dashed-bottom-code.json
+++ b/icons/square-dashed-bottom-code.json
@@ -17,4 +17,4 @@
     "development",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/square-dashed-bottom.json b/icons/square-dashed-bottom.json
index a156a28bdde..0a33aeaae46 100644
--- a/icons/square-dashed-bottom.json
+++ b/icons/square-dashed-bottom.json
@@ -17,4 +17,4 @@
     "development",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/square-stack.json b/icons/square-stack.json
index f0ab00e89b3..e1a94307322 100644
--- a/icons/square-stack.json
+++ b/icons/square-stack.json
@@ -19,4 +19,4 @@
     "files",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/square-user-round.json b/icons/square-user-round.json
index 62828400608..54b8c259ecf 100644
--- a/icons/square-user-round.json
+++ b/icons/square-user-round.json
@@ -15,4 +15,4 @@
   "aliases": [
     "user-square-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/square.json b/icons/square.json
index 30428115a9b..a60a21742c5 100644
--- a/icons/square.json
+++ b/icons/square.json
@@ -13,4 +13,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/squirrel.json b/icons/squirrel.json
index 219aed3f044..127392253a9 100644
--- a/icons/squirrel.json
+++ b/icons/squirrel.json
@@ -18,4 +18,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/stamp.json b/icons/stamp.json
index b0aa423d015..2cbd6a40911 100644
--- a/icons/stamp.json
+++ b/icons/stamp.json
@@ -16,4 +16,4 @@
     "tools",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/star-half.json b/icons/star-half.json
index 51b57fe6049..bfe0945ee2b 100644
--- a/icons/star-half.json
+++ b/icons/star-half.json
@@ -17,4 +17,4 @@
     "social",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/star-off.json b/icons/star-off.json
index dd4bcb66f04..c06dacac615 100644
--- a/icons/star-off.json
+++ b/icons/star-off.json
@@ -14,4 +14,4 @@
     "multimedia",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/star.json b/icons/star.json
index 18e9a01ed4f..799c6ca0f21 100644
--- a/icons/star.json
+++ b/icons/star.json
@@ -19,4 +19,4 @@
     "emoji",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/step-back.json b/icons/step-back.json
index 39ae287a082..6d42a78a057 100644
--- a/icons/step-back.json
+++ b/icons/step-back.json
@@ -14,4 +14,4 @@
     "multimedia",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/step-forward.json b/icons/step-forward.json
index 9d3c8222192..5ed371df18b 100644
--- a/icons/step-forward.json
+++ b/icons/step-forward.json
@@ -15,4 +15,4 @@
     "multimedia",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/stethoscope.json b/icons/stethoscope.json
index 8bca7a1a620..b34f0a9eea3 100644
--- a/icons/stethoscope.json
+++ b/icons/stethoscope.json
@@ -14,4 +14,4 @@
     "science",
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sticker.json b/icons/sticker.json
index 77e9c209b10..80cbc1c9352 100644
--- a/icons/sticker.json
+++ b/icons/sticker.json
@@ -16,4 +16,4 @@
     "communication",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sticky-note.json b/icons/sticky-note.json
index 46a73dde26b..c35cf51edb0 100644
--- a/icons/sticky-note.json
+++ b/icons/sticky-note.json
@@ -28,4 +28,4 @@
     "text",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/stop-circle.json b/icons/stop-circle.json
index 7503505d5d8..ba9a4556dd4 100644
--- a/icons/stop-circle.json
+++ b/icons/stop-circle.json
@@ -12,4 +12,4 @@
     "multimedia",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/store.json b/icons/store.json
index 2af6d4f575f..f5e97bae0e9 100644
--- a/icons/store.json
+++ b/icons/store.json
@@ -14,4 +14,4 @@
     "buildings",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/stretch-horizontal.json b/icons/stretch-horizontal.json
index 3b52697f9fc..b58442d71a1 100644
--- a/icons/stretch-horizontal.json
+++ b/icons/stretch-horizontal.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/stretch-vertical.json b/icons/stretch-vertical.json
index 3b52697f9fc..b58442d71a1 100644
--- a/icons/stretch-vertical.json
+++ b/icons/stretch-vertical.json
@@ -12,4 +12,4 @@
   "categories": [
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/strikethrough.json b/icons/strikethrough.json
index 4da2c94218a..f4efa680d79 100644
--- a/icons/strikethrough.json
+++ b/icons/strikethrough.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/subscript.json b/icons/subscript.json
index 7de61350479..257fd31ce2f 100644
--- a/icons/subscript.json
+++ b/icons/subscript.json
@@ -11,4 +11,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/subtitles.json b/icons/subtitles.json
index 41033f7353e..ea390db9443 100644
--- a/icons/subtitles.json
+++ b/icons/subtitles.json
@@ -10,4 +10,4 @@
     "accessibility"
   ],
   "categories": []
-}
\ No newline at end of file
+}
diff --git a/icons/sun-dim.json b/icons/sun-dim.json
index 1ec6d356f7c..e71baee3319 100644
--- a/icons/sun-dim.json
+++ b/icons/sun-dim.json
@@ -15,4 +15,4 @@
     "accessibility",
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sun-medium.json b/icons/sun-medium.json
index 179fb269002..fca7bf3aeff 100644
--- a/icons/sun-medium.json
+++ b/icons/sun-medium.json
@@ -12,4 +12,4 @@
     "accessibility",
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sun-snow.json b/icons/sun-snow.json
index 9a2c44c8d27..42a7a972bf8 100644
--- a/icons/sun-snow.json
+++ b/icons/sun-snow.json
@@ -14,4 +14,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sun.json b/icons/sun.json
index b761a49d93c..2db6913a740 100644
--- a/icons/sun.json
+++ b/icons/sun.json
@@ -16,4 +16,4 @@
     "weather",
     "seasons"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sunrise.json b/icons/sunrise.json
index 1573d6bb820..df00ee9d42a 100644
--- a/icons/sunrise.json
+++ b/icons/sunrise.json
@@ -17,4 +17,4 @@
     "weather",
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sunset.json b/icons/sunset.json
index 09b69410777..c014fa50e86 100644
--- a/icons/sunset.json
+++ b/icons/sunset.json
@@ -16,4 +16,4 @@
     "arrows",
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/superscript.json b/icons/superscript.json
index 9511af6f8d7..09dfe5589ae 100644
--- a/icons/superscript.json
+++ b/icons/superscript.json
@@ -11,4 +11,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/swiss-franc.json b/icons/swiss-franc.json
index c70558d50cb..18aa12075b5 100644
--- a/icons/swiss-franc.json
+++ b/icons/swiss-franc.json
@@ -13,4 +13,4 @@
     "currency",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/switch-camera.json b/icons/switch-camera.json
index b6fd341c281..147416d8068 100644
--- a/icons/switch-camera.json
+++ b/icons/switch-camera.json
@@ -15,4 +15,4 @@
     "communication",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/sword.json b/icons/sword.json
index 920c315fb5e..b09a1bb93d1 100644
--- a/icons/sword.json
+++ b/icons/sword.json
@@ -16,4 +16,4 @@
     "gaming",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/swords.json b/icons/swords.json
index 80aa76ab515..8311ec9822d 100644
--- a/icons/swords.json
+++ b/icons/swords.json
@@ -15,4 +15,4 @@
     "gaming",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/syringe.json b/icons/syringe.json
index 5e2d3edd852..48176051dde 100644
--- a/icons/syringe.json
+++ b/icons/syringe.json
@@ -17,4 +17,4 @@
     "science",
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/table-2.json b/icons/table-2.json
index ea10fa85bdd..474a2c3ed2d 100644
--- a/icons/table-2.json
+++ b/icons/table-2.json
@@ -13,4 +13,4 @@
     "text",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/table-properties.json b/icons/table-properties.json
index 380457f12b6..c17ff99d107 100644
--- a/icons/table-properties.json
+++ b/icons/table-properties.json
@@ -17,4 +17,4 @@
     "development",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/table.json b/icons/table.json
index 03c667caf1c..9eaa721f164 100644
--- a/icons/table.json
+++ b/icons/table.json
@@ -15,4 +15,4 @@
     "text",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tablet-smartphone.json b/icons/tablet-smartphone.json
index 0901539649e..c5a70c5c936 100644
--- a/icons/tablet-smartphone.json
+++ b/icons/tablet-smartphone.json
@@ -16,4 +16,4 @@
     "development",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tablet.json b/icons/tablet.json
index 8692f39c7d0..e7f3c074e28 100644
--- a/icons/tablet.json
+++ b/icons/tablet.json
@@ -10,4 +10,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tablets.json b/icons/tablets.json
index 7f8e602395d..4890a7191d5 100644
--- a/icons/tablets.json
+++ b/icons/tablets.json
@@ -16,4 +16,4 @@
   "categories": [
     "medical"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tag.json b/icons/tag.json
index a7fe48e2681..a1efa5c7eac 100644
--- a/icons/tag.json
+++ b/icons/tag.json
@@ -16,4 +16,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tally-1.json b/icons/tally-1.json
index 8c67df21f7a..d59bc882d3a 100644
--- a/icons/tally-1.json
+++ b/icons/tally-1.json
@@ -20,4 +20,4 @@
     "maths",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tally-2.json b/icons/tally-2.json
index 5a329cef9d3..135f18a358d 100644
--- a/icons/tally-2.json
+++ b/icons/tally-2.json
@@ -21,4 +21,4 @@
     "maths",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tally-3.json b/icons/tally-3.json
index 304159a66ac..693b7470307 100644
--- a/icons/tally-3.json
+++ b/icons/tally-3.json
@@ -21,4 +21,4 @@
     "maths",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tally-4.json b/icons/tally-4.json
index 12b3afa12a5..2d7f80a727d 100644
--- a/icons/tally-4.json
+++ b/icons/tally-4.json
@@ -20,4 +20,4 @@
     "maths",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tally-5.json b/icons/tally-5.json
index cb4e0835e45..357c6a5e515 100644
--- a/icons/tally-5.json
+++ b/icons/tally-5.json
@@ -22,4 +22,4 @@
     "maths",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tangent.json b/icons/tangent.json
index 96481cef294..91d3e14362e 100644
--- a/icons/tangent.json
+++ b/icons/tangent.json
@@ -17,4 +17,4 @@
     "design",
     "tools"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/target.json b/icons/target.json
index bced49e5ee4..b7c914c1674 100644
--- a/icons/target.json
+++ b/icons/target.json
@@ -16,4 +16,4 @@
     "brands",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tent-tree.json b/icons/tent-tree.json
index bc9a1947045..81d75e52f98 100644
--- a/icons/tent-tree.json
+++ b/icons/tent-tree.json
@@ -16,4 +16,4 @@
     "travel",
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tent.json b/icons/tent.json
index d9d1362ff22..d3ad72864fd 100644
--- a/icons/tent.json
+++ b/icons/tent.json
@@ -25,4 +25,4 @@
     "nature",
     "sustainability"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/terminal-square.json b/icons/terminal-square.json
index 59d39d4fefb..5dd553b0bb6 100644
--- a/icons/terminal-square.json
+++ b/icons/terminal-square.json
@@ -14,4 +14,4 @@
     "development",
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/terminal.json b/icons/terminal.json
index b5a44332168..15a3bd621f7 100644
--- a/icons/terminal.json
+++ b/icons/terminal.json
@@ -13,4 +13,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/test-tube-2.json b/icons/test-tube-2.json
index 8977299edfc..52ae012ae47 100644
--- a/icons/test-tube-2.json
+++ b/icons/test-tube-2.json
@@ -18,4 +18,4 @@
   "categories": [
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/test-tube.json b/icons/test-tube.json
index 8977299edfc..52ae012ae47 100644
--- a/icons/test-tube.json
+++ b/icons/test-tube.json
@@ -18,4 +18,4 @@
   "categories": [
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/test-tubes.json b/icons/test-tubes.json
index eb98b06cb8a..e555bc152bd 100644
--- a/icons/test-tubes.json
+++ b/icons/test-tubes.json
@@ -18,4 +18,4 @@
   "categories": [
     "science"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/text-cursor-input.json b/icons/text-cursor-input.json
index 7ef8197dd68..3f58e284063 100644
--- a/icons/text-cursor-input.json
+++ b/icons/text-cursor-input.json
@@ -13,4 +13,4 @@
     "text",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/text-cursor.json b/icons/text-cursor.json
index d56c7b65759..7737c9ace19 100644
--- a/icons/text-cursor.json
+++ b/icons/text-cursor.json
@@ -10,4 +10,4 @@
     "text",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/text-quote.json b/icons/text-quote.json
index 17793d78735..3046bfe16ec 100644
--- a/icons/text-quote.json
+++ b/icons/text-quote.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/text-search.json b/icons/text-search.json
index 1c7b912b57c..a218bba562f 100644
--- a/icons/text-search.json
+++ b/icons/text-search.json
@@ -17,4 +17,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/text-select.json b/icons/text-select.json
index a79c673a194..389b833525d 100644
--- a/icons/text-select.json
+++ b/icons/text-select.json
@@ -16,4 +16,4 @@
   "aliases": [
     "text-selection"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/text.json b/icons/text.json
index eb25ddb4d0d..22214b172c3 100644
--- a/icons/text.json
+++ b/icons/text.json
@@ -17,4 +17,4 @@
     "files",
     "cursors"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/theater.json b/icons/theater.json
index 8247f07d9c1..27be7a5f428 100644
--- a/icons/theater.json
+++ b/icons/theater.json
@@ -1,18 +1,18 @@
 {
-    "$schema": "../icon.schema.json",
-    "contributors": [
-        "danielbayley"
-    ],
-    "tags": [
-        "theater",
-        "theatre",
-        "entertainment",
-        "podium",
-        "stage",
-        "musical"
-    ],
-    "categories": [
-        "buildings",
-        "social"
-    ]
-}
\ No newline at end of file
+  "$schema": "../icon.schema.json",
+  "contributors": [
+    "danielbayley"
+  ],
+  "tags": [
+    "theater",
+    "theatre",
+    "entertainment",
+    "podium",
+    "stage",
+    "musical"
+  ],
+  "categories": [
+    "buildings",
+    "social"
+  ]
+}
diff --git a/icons/thermometer-snowflake.json b/icons/thermometer-snowflake.json
index a706a530c0b..9dbb7cfdd83 100644
--- a/icons/thermometer-snowflake.json
+++ b/icons/thermometer-snowflake.json
@@ -16,4 +16,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/thermometer-sun.json b/icons/thermometer-sun.json
index 7e276f472f1..cbe8061c516 100644
--- a/icons/thermometer-sun.json
+++ b/icons/thermometer-sun.json
@@ -15,4 +15,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/thermometer.json b/icons/thermometer.json
index cb21f0e5c97..1a261153aba 100644
--- a/icons/thermometer.json
+++ b/icons/thermometer.json
@@ -15,4 +15,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/thumbs-down.json b/icons/thumbs-down.json
index 11c0c235428..8bb97cc97bc 100644
--- a/icons/thumbs-down.json
+++ b/icons/thumbs-down.json
@@ -16,4 +16,4 @@
     "social",
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/thumbs-up.json b/icons/thumbs-up.json
index b068dec9563..8f1f8f466c9 100644
--- a/icons/thumbs-up.json
+++ b/icons/thumbs-up.json
@@ -16,4 +16,4 @@
     "social",
     "emoji"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ticket-check.json b/icons/ticket-check.json
index 2402fd31c46..bceb113d467 100644
--- a/icons/ticket-check.json
+++ b/icons/ticket-check.json
@@ -24,4 +24,4 @@
     "account",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ticket-minus.json b/icons/ticket-minus.json
index 94af426cc3b..e3f65e94f08 100644
--- a/icons/ticket-minus.json
+++ b/icons/ticket-minus.json
@@ -21,4 +21,4 @@
     "account",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ticket-plus.json b/icons/ticket-plus.json
index 16133244495..aea2485513c 100644
--- a/icons/ticket-plus.json
+++ b/icons/ticket-plus.json
@@ -19,4 +19,4 @@
     "account",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ticket-slash.json b/icons/ticket-slash.json
index 1f4edbd031f..e3bdc8174be 100644
--- a/icons/ticket-slash.json
+++ b/icons/ticket-slash.json
@@ -36,4 +36,4 @@
     "account",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ticket-x.json b/icons/ticket-x.json
index 6b2aabb7a04..c2c42c7b77b 100644
--- a/icons/ticket-x.json
+++ b/icons/ticket-x.json
@@ -33,4 +33,4 @@
     "account",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ticket.json b/icons/ticket.json
index 1b1c3e05471..382c23d6685 100644
--- a/icons/ticket.json
+++ b/icons/ticket.json
@@ -19,4 +19,4 @@
     "account",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/timer-off.json b/icons/timer-off.json
index 40adb7498c4..7a0571860ff 100644
--- a/icons/timer-off.json
+++ b/icons/timer-off.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/timer-reset.json b/icons/timer-reset.json
index d7c3982f80f..533bb05d89f 100644
--- a/icons/timer-reset.json
+++ b/icons/timer-reset.json
@@ -12,4 +12,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/timer.json b/icons/timer.json
index 1e560dccaaf..4c1c59054dd 100644
--- a/icons/timer.json
+++ b/icons/timer.json
@@ -12,4 +12,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/toggle-left.json b/icons/toggle-left.json
index 64fd9d6a177..af041078608 100644
--- a/icons/toggle-left.json
+++ b/icons/toggle-left.json
@@ -16,4 +16,4 @@
     "account",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/toggle-right.json b/icons/toggle-right.json
index 64fd9d6a177..af041078608 100644
--- a/icons/toggle-right.json
+++ b/icons/toggle-right.json
@@ -16,4 +16,4 @@
     "account",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tornado.json b/icons/tornado.json
index bed432bdb06..a677cce41f4 100644
--- a/icons/tornado.json
+++ b/icons/tornado.json
@@ -12,4 +12,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/torus.json b/icons/torus.json
index a82934c6556..56414d0ff81 100644
--- a/icons/torus.json
+++ b/icons/torus.json
@@ -24,4 +24,4 @@
     "tools",
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/touchpad-off.json b/icons/touchpad-off.json
index f35feb98ca5..40d0ccf0d55 100644
--- a/icons/touchpad-off.json
+++ b/icons/touchpad-off.json
@@ -11,4 +11,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/touchpad.json b/icons/touchpad.json
index f35feb98ca5..40d0ccf0d55 100644
--- a/icons/touchpad.json
+++ b/icons/touchpad.json
@@ -11,4 +11,4 @@
   "categories": [
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tower-control.json b/icons/tower-control.json
index 1ec5ba9af2e..68fbc07b25d 100644
--- a/icons/tower-control.json
+++ b/icons/tower-control.json
@@ -15,4 +15,4 @@
     "travel",
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/toy-brick.json b/icons/toy-brick.json
index a1389a5a707..5e1371b8b6d 100644
--- a/icons/toy-brick.json
+++ b/icons/toy-brick.json
@@ -16,4 +16,4 @@
     "gaming",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tractor.json b/icons/tractor.json
index 9e7899d70cd..4d5fdf00e19 100644
--- a/icons/tractor.json
+++ b/icons/tractor.json
@@ -16,4 +16,4 @@
     "sustainability",
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/traffic-cone.json b/icons/traffic-cone.json
index 42f94237aba..73b490091f3 100644
--- a/icons/traffic-cone.json
+++ b/icons/traffic-cone.json
@@ -12,4 +12,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/train-front-tunnel.json b/icons/train-front-tunnel.json
index 18bbe574fc3..8904bd31e87 100644
--- a/icons/train-front-tunnel.json
+++ b/icons/train-front-tunnel.json
@@ -18,4 +18,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/train-front.json b/icons/train-front.json
index c5735d0cbda..c40400d2270 100644
--- a/icons/train-front.json
+++ b/icons/train-front.json
@@ -17,4 +17,4 @@
   "categories": [
     "transportation"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/train-track.json b/icons/train-track.json
index e8add0f27f3..ec2489ba806 100644
--- a/icons/train-track.json
+++ b/icons/train-track.json
@@ -11,4 +11,4 @@
     "transportation",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tram-front.json b/icons/tram-front.json
index 301165abd23..90174d199ff 100644
--- a/icons/tram-front.json
+++ b/icons/tram-front.json
@@ -19,4 +19,4 @@
   "aliases": [
     "train"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/trash-2.json b/icons/trash-2.json
index e2263f69c01..f38133f82f0 100644
--- a/icons/trash-2.json
+++ b/icons/trash-2.json
@@ -16,4 +16,4 @@
     "files",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/trash.json b/icons/trash.json
index e2263f69c01..f38133f82f0 100644
--- a/icons/trash.json
+++ b/icons/trash.json
@@ -16,4 +16,4 @@
     "files",
     "mail"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tree-deciduous.json b/icons/tree-deciduous.json
index cc1d925fd7e..ec27d58a296 100644
--- a/icons/tree-deciduous.json
+++ b/icons/tree-deciduous.json
@@ -13,4 +13,4 @@
   "categories": [
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tree-pine.json b/icons/tree-pine.json
index 97f667ad187..873370ddf2b 100644
--- a/icons/tree-pine.json
+++ b/icons/tree-pine.json
@@ -15,4 +15,4 @@
   "categories": [
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/trees.json b/icons/trees.json
index 52ef2652695..e4d61beba71 100644
--- a/icons/trees.json
+++ b/icons/trees.json
@@ -12,4 +12,4 @@
   "categories": [
     "nature"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/trending-down.json b/icons/trending-down.json
index c3d54929dbc..5c4a6cbc552 100644
--- a/icons/trending-down.json
+++ b/icons/trending-down.json
@@ -11,4 +11,4 @@
     "charts",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/trending-up.json b/icons/trending-up.json
index c3d54929dbc..5c4a6cbc552 100644
--- a/icons/trending-up.json
+++ b/icons/trending-up.json
@@ -11,4 +11,4 @@
     "charts",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/triangle-right.json b/icons/triangle-right.json
index 8d7852d95e2..7a070e0247b 100644
--- a/icons/triangle-right.json
+++ b/icons/triangle-right.json
@@ -19,4 +19,4 @@
     "shapes",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/triangle.json b/icons/triangle.json
index f7cc571c463..2d1e7792400 100644
--- a/icons/triangle.json
+++ b/icons/triangle.json
@@ -16,4 +16,4 @@
   "categories": [
     "shapes"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/trophy.json b/icons/trophy.json
index fb0c4687a0f..6a847f40bc7 100644
--- a/icons/trophy.json
+++ b/icons/trophy.json
@@ -14,4 +14,4 @@
     "sports",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/turtle.json b/icons/turtle.json
index b3b5368e1f3..17747e27747 100644
--- a/icons/turtle.json
+++ b/icons/turtle.json
@@ -13,4 +13,4 @@
   "categories": [
     "animals"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/tv.json b/icons/tv.json
index 830f2d90792..e005ac32503 100644
--- a/icons/tv.json
+++ b/icons/tv.json
@@ -40,4 +40,4 @@
     "multimedia",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/type.json b/icons/type.json
index 68a3bcc7792..fb1767de765 100644
--- a/icons/type.json
+++ b/icons/type.json
@@ -12,4 +12,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/umbrella.json b/icons/umbrella.json
index 482bb80a648..7f65087f382 100644
--- a/icons/umbrella.json
+++ b/icons/umbrella.json
@@ -14,4 +14,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/underline.json b/icons/underline.json
index 5c2e2f85721..8842783096d 100644
--- a/icons/underline.json
+++ b/icons/underline.json
@@ -13,4 +13,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/undo-2.json b/icons/undo-2.json
index 233e30cec80..7e4a2cd0045 100644
--- a/icons/undo-2.json
+++ b/icons/undo-2.json
@@ -20,4 +20,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/undo-dot.json b/icons/undo-dot.json
index 4b4adafb83f..38058fc6e6a 100644
--- a/icons/undo-dot.json
+++ b/icons/undo-dot.json
@@ -14,4 +14,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/undo.json b/icons/undo.json
index 608b4f94013..5462b324ef2 100644
--- a/icons/undo.json
+++ b/icons/undo.json
@@ -14,4 +14,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/unfold-horizontal.json b/icons/unfold-horizontal.json
index 647cefdd8fa..3a796795b43 100644
--- a/icons/unfold-horizontal.json
+++ b/icons/unfold-horizontal.json
@@ -15,4 +15,4 @@
     "arrows",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/unfold-vertical.json b/icons/unfold-vertical.json
index e0cd802297f..58eaa6b58f0 100644
--- a/icons/unfold-vertical.json
+++ b/icons/unfold-vertical.json
@@ -14,4 +14,4 @@
     "arrows",
     "layout"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/ungroup.json b/icons/ungroup.json
index 8cba1bca0ae..4ebf02fd4d9 100644
--- a/icons/ungroup.json
+++ b/icons/ungroup.json
@@ -16,4 +16,4 @@
     "shapes",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/unlink-2.json b/icons/unlink-2.json
index 5926a3e906a..c3ce080566e 100644
--- a/icons/unlink-2.json
+++ b/icons/unlink-2.json
@@ -11,4 +11,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/unlink.json b/icons/unlink.json
index 5926a3e906a..c3ce080566e 100644
--- a/icons/unlink.json
+++ b/icons/unlink.json
@@ -11,4 +11,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/unlock-keyhole.json b/icons/unlock-keyhole.json
index 630a2de41bc..b3350a90218 100644
--- a/icons/unlock-keyhole.json
+++ b/icons/unlock-keyhole.json
@@ -1,9 +1,9 @@
-{
-  "$schema": "../icon.schema.json",
-  "tags": [
-    "security"
-  ],
-  "categories": [
-    "security"
-  ]
-}
+{
+  "$schema": "../icon.schema.json",
+  "tags": [
+    "security"
+  ],
+  "categories": [
+    "security"
+  ]
+}
diff --git a/icons/unlock.json b/icons/unlock.json
index 4fb211fbe37..96577aed2cf 100644
--- a/icons/unlock.json
+++ b/icons/unlock.json
@@ -11,4 +11,4 @@
   "categories": [
     "security"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/upload-cloud.json b/icons/upload-cloud.json
index 2dcb619cc62..6c5e3c1e483 100644
--- a/icons/upload-cloud.json
+++ b/icons/upload-cloud.json
@@ -13,4 +13,4 @@
     "arrows",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/upload.json b/icons/upload.json
index 03c93028721..befc630d711 100644
--- a/icons/upload.json
+++ b/icons/upload.json
@@ -12,4 +12,4 @@
     "arrows",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/usb.json b/icons/usb.json
index 41c260db619..931cd6e511f 100644
--- a/icons/usb.json
+++ b/icons/usb.json
@@ -17,4 +17,4 @@
     "multimedia",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-check.json b/icons/user-check.json
index 61f8d2b085a..c01a805699c 100644
--- a/icons/user-check.json
+++ b/icons/user-check.json
@@ -18,4 +18,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-cog.json b/icons/user-cog.json
index 2f17aed1bb9..4b54277c1de 100644
--- a/icons/user-cog.json
+++ b/icons/user-cog.json
@@ -13,4 +13,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-minus.json b/icons/user-minus.json
index 13e0002636d..212343ec227 100644
--- a/icons/user-minus.json
+++ b/icons/user-minus.json
@@ -15,4 +15,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-plus.json b/icons/user-plus.json
index 827061d6e89..f3d2398cd51 100644
--- a/icons/user-plus.json
+++ b/icons/user-plus.json
@@ -16,4 +16,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-round-check.json b/icons/user-round-check.json
index 09b9fe2adbf..5cfc6b102b9 100644
--- a/icons/user-round-check.json
+++ b/icons/user-round-check.json
@@ -18,4 +18,4 @@
   "aliases": [
     "user-check-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-round-cog.json b/icons/user-round-cog.json
index 81da302622d..03c6ce6a34a 100644
--- a/icons/user-round-cog.json
+++ b/icons/user-round-cog.json
@@ -15,4 +15,4 @@
   "aliases": [
     "user-cog-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-round-minus.json b/icons/user-round-minus.json
index d5b43582be6..3a504685f64 100644
--- a/icons/user-round-minus.json
+++ b/icons/user-round-minus.json
@@ -15,4 +15,4 @@
   "aliases": [
     "user-minus-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-round-plus.json b/icons/user-round-plus.json
index 76b84100e3c..acad3e4cd7a 100644
--- a/icons/user-round-plus.json
+++ b/icons/user-round-plus.json
@@ -16,4 +16,4 @@
   "aliases": [
     "user-plus-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-round-search.json b/icons/user-round-search.json
index 6874110a5c7..03c68c4a75f 100644
--- a/icons/user-round-search.json
+++ b/icons/user-round-search.json
@@ -17,4 +17,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-round-x.json b/icons/user-round-x.json
index 4dff279fc2d..2a63f698df5 100644
--- a/icons/user-round-x.json
+++ b/icons/user-round-x.json
@@ -16,4 +16,4 @@
   "aliases": [
     "user-x-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-round.json b/icons/user-round.json
index 524b80b6e95..cd056c2dd3f 100644
--- a/icons/user-round.json
+++ b/icons/user-round.json
@@ -14,4 +14,4 @@
   "aliases": [
     "user-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-search.json b/icons/user-search.json
index 4e4daefd7b9..f257d2cd892 100644
--- a/icons/user-search.json
+++ b/icons/user-search.json
@@ -21,4 +21,4 @@
     "account",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user-x.json b/icons/user-x.json
index a4e27a9725f..47dde44e27d 100644
--- a/icons/user-x.json
+++ b/icons/user-x.json
@@ -16,4 +16,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/user.json b/icons/user.json
index 6e62a43f1c3..6561ab62716 100644
--- a/icons/user.json
+++ b/icons/user.json
@@ -14,4 +14,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/users-round.json b/icons/users-round.json
index 22823fd67b4..a8b824740a3 100644
--- a/icons/users-round.json
+++ b/icons/users-round.json
@@ -13,4 +13,4 @@
   "aliases": [
     "users-2"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/users.json b/icons/users.json
index 9ef98601177..2e0b03f4c74 100644
--- a/icons/users.json
+++ b/icons/users.json
@@ -13,4 +13,4 @@
   "categories": [
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/utensils-crossed.json b/icons/utensils-crossed.json
index 08cf78f4f17..c048b0db55e 100644
--- a/icons/utensils-crossed.json
+++ b/icons/utensils-crossed.json
@@ -17,4 +17,4 @@
     "travel",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/utensils.json b/icons/utensils.json
index 733169610e8..37a4721dbaf 100644
--- a/icons/utensils.json
+++ b/icons/utensils.json
@@ -18,4 +18,4 @@
     "travel",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/variable.json b/icons/variable.json
index aa754b05c6a..251854c72a4 100644
--- a/icons/variable.json
+++ b/icons/variable.json
@@ -23,4 +23,4 @@
     "development",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/vault.json b/icons/vault.json
index aa77032043f..3d26ce47044 100644
--- a/icons/vault.json
+++ b/icons/vault.json
@@ -21,4 +21,4 @@
     "travel",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/vegan.json b/icons/vegan.json
index f35d759cfce..313cf976c7e 100644
--- a/icons/vegan.json
+++ b/icons/vegan.json
@@ -15,4 +15,4 @@
     "food-beverage",
     "sustainability"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/venetian-mask.json b/icons/venetian-mask.json
index 4145e567cae..94179a04c52 100644
--- a/icons/venetian-mask.json
+++ b/icons/venetian-mask.json
@@ -15,4 +15,4 @@
     "account",
     "gaming"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/vibrate-off.json b/icons/vibrate-off.json
index fe60e0c614b..074a150e448 100644
--- a/icons/vibrate-off.json
+++ b/icons/vibrate-off.json
@@ -17,4 +17,4 @@
     "connectivity",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/vibrate.json b/icons/vibrate.json
index f00d9d128ea..a7bade69a16 100644
--- a/icons/vibrate.json
+++ b/icons/vibrate.json
@@ -16,4 +16,4 @@
     "account",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/video-off.json b/icons/video-off.json
index 2555ebf1bf1..7805b591945 100644
--- a/icons/video-off.json
+++ b/icons/video-off.json
@@ -17,4 +17,4 @@
     "connectivity",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/video.json b/icons/video.json
index 0ad2f8c7f26..970b63072c7 100644
--- a/icons/video.json
+++ b/icons/video.json
@@ -20,4 +20,4 @@
     "connectivity",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/videotape.json b/icons/videotape.json
index f0fe4c0e24f..509dc519ff4 100644
--- a/icons/videotape.json
+++ b/icons/videotape.json
@@ -19,4 +19,4 @@
     "photography",
     "files"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/view.json b/icons/view.json
index 33ae8ecf449..71c21161563 100644
--- a/icons/view.json
+++ b/icons/view.json
@@ -14,4 +14,4 @@
     "design",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/voicemail.json b/icons/voicemail.json
index 7ef0d5c7b34..eaf68d7be83 100644
--- a/icons/voicemail.json
+++ b/icons/voicemail.json
@@ -18,4 +18,4 @@
     "devices",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/volume-1.json b/icons/volume-1.json
index 5c064a5c043..3a08ba4d8be 100644
--- a/icons/volume-1.json
+++ b/icons/volume-1.json
@@ -15,4 +15,4 @@
     "communication",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/volume-2.json b/icons/volume-2.json
index a64942c5ae8..abf18209957 100644
--- a/icons/volume-2.json
+++ b/icons/volume-2.json
@@ -16,4 +16,4 @@
     "communication",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/volume-x.json b/icons/volume-x.json
index 837bf16ce70..7facb11259a 100644
--- a/icons/volume-x.json
+++ b/icons/volume-x.json
@@ -16,4 +16,4 @@
     "communication",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/volume.json b/icons/volume.json
index a891326c589..a45bba944a6 100644
--- a/icons/volume.json
+++ b/icons/volume.json
@@ -14,4 +14,4 @@
     "communication",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/vote.json b/icons/vote.json
index 1192e0764a9..f7f1295a951 100644
--- a/icons/vote.json
+++ b/icons/vote.json
@@ -16,4 +16,4 @@
   "categories": [
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wallet-2.json b/icons/wallet-2.json
index 14ed04a07d0..92dc68f17fe 100644
--- a/icons/wallet-2.json
+++ b/icons/wallet-2.json
@@ -11,4 +11,4 @@
     "account",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wallet-cards.json b/icons/wallet-cards.json
index 56999f46219..0adffc2dfe0 100644
--- a/icons/wallet-cards.json
+++ b/icons/wallet-cards.json
@@ -19,4 +19,4 @@
     "account",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wallet.json b/icons/wallet.json
index 857a3c38af9..cd432296d32 100644
--- a/icons/wallet.json
+++ b/icons/wallet.json
@@ -14,4 +14,4 @@
     "account",
     "money"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wallpaper.json b/icons/wallpaper.json
index c430fc00632..4adcca2cc0e 100644
--- a/icons/wallpaper.json
+++ b/icons/wallpaper.json
@@ -12,4 +12,4 @@
     "account",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wand-2.json b/icons/wand-2.json
index d2975c17a3c..bae6545c02a 100644
--- a/icons/wand-2.json
+++ b/icons/wand-2.json
@@ -13,4 +13,4 @@
     "cursors",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wand.json b/icons/wand.json
index 38fff257cae..c7076dd42f3 100644
--- a/icons/wand.json
+++ b/icons/wand.json
@@ -14,4 +14,4 @@
     "cursors",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/warehouse.json b/icons/warehouse.json
index 6f3e3dd1b7a..e6ea2fc314f 100644
--- a/icons/warehouse.json
+++ b/icons/warehouse.json
@@ -12,4 +12,4 @@
     "buildings",
     "maps"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/washing-machine.json b/icons/washing-machine.json
index 1b3ac184982..d78e4eef47a 100644
--- a/icons/washing-machine.json
+++ b/icons/washing-machine.json
@@ -18,4 +18,4 @@
     "devices",
     "travel"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/watch.json b/icons/watch.json
index d9f63456acf..d84ede6e563 100644
--- a/icons/watch.json
+++ b/icons/watch.json
@@ -13,4 +13,4 @@
   "categories": [
     "time"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/waves.json b/icons/waves.json
index b13e1abf028..dae75d054b4 100644
--- a/icons/waves.json
+++ b/icons/waves.json
@@ -17,4 +17,4 @@
     "maps",
     "multimedia"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/waypoints.json b/icons/waypoints.json
index e133c9f3c84..bd33a7ad724 100644
--- a/icons/waypoints.json
+++ b/icons/waypoints.json
@@ -28,4 +28,4 @@
     "development",
     "social"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/webcam.json b/icons/webcam.json
index da31c665180..4eb70531a72 100644
--- a/icons/webcam.json
+++ b/icons/webcam.json
@@ -14,4 +14,4 @@
     "devices",
     "communication"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/webhook.json b/icons/webhook.json
index 2d360be0a29..97e0e4e1a21 100644
--- a/icons/webhook.json
+++ b/icons/webhook.json
@@ -13,4 +13,4 @@
     "social",
     "account"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/weight.json b/icons/weight.json
index 00088d22dc1..4b13151012b 100644
--- a/icons/weight.json
+++ b/icons/weight.json
@@ -17,4 +17,4 @@
   "categories": [
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wheat-off.json b/icons/wheat-off.json
index b567f8fe849..d1dac3b8faa 100644
--- a/icons/wheat-off.json
+++ b/icons/wheat-off.json
@@ -16,4 +16,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wheat.json b/icons/wheat.json
index 193deb9276f..a21acb41117 100644
--- a/icons/wheat.json
+++ b/icons/wheat.json
@@ -12,4 +12,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/whole-word.json b/icons/whole-word.json
index af9366732e4..eca01518f51 100644
--- a/icons/whole-word.json
+++ b/icons/whole-word.json
@@ -14,4 +14,4 @@
   "categories": [
     "text"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wifi-off.json b/icons/wifi-off.json
index b5b413b536e..aad329a7e79 100644
--- a/icons/wifi-off.json
+++ b/icons/wifi-off.json
@@ -11,4 +11,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wifi.json b/icons/wifi.json
index 007a853fa0b..13514e0f7c0 100644
--- a/icons/wifi.json
+++ b/icons/wifi.json
@@ -13,4 +13,4 @@
     "connectivity",
     "devices"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wind.json b/icons/wind.json
index 0126b01e578..083933f7606 100644
--- a/icons/wind.json
+++ b/icons/wind.json
@@ -13,4 +13,4 @@
   "categories": [
     "weather"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wine-off.json b/icons/wine-off.json
index f84e9b6a347..828e7944fe1 100644
--- a/icons/wine-off.json
+++ b/icons/wine-off.json
@@ -19,4 +19,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wine.json b/icons/wine.json
index 4d9f3ffbf66..3d3355c90f4 100644
--- a/icons/wine.json
+++ b/icons/wine.json
@@ -17,4 +17,4 @@
   "categories": [
     "food-beverage"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/workflow.json b/icons/workflow.json
index deae201f8c4..d8fbb051345 100644
--- a/icons/workflow.json
+++ b/icons/workflow.json
@@ -17,4 +17,4 @@
   "categories": [
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wrap-text.json b/icons/wrap-text.json
index fb132d0eb67..24f771ea5d2 100644
--- a/icons/wrap-text.json
+++ b/icons/wrap-text.json
@@ -14,4 +14,4 @@
     "text",
     "arrows"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/wrench.json b/icons/wrench.json
index 1560f140bae..276d9e7731b 100644
--- a/icons/wrench.json
+++ b/icons/wrench.json
@@ -20,4 +20,4 @@
     "tools",
     "home"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/x-circle.json b/icons/x-circle.json
index 66037f158e9..6dc448b16a7 100644
--- a/icons/x-circle.json
+++ b/icons/x-circle.json
@@ -25,4 +25,4 @@
     "shapes",
     "development"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/x-octagon.json b/icons/x-octagon.json
index 584b9891977..de4494009a8 100644
--- a/icons/x-octagon.json
+++ b/icons/x-octagon.json
@@ -18,4 +18,4 @@
     "shapes",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/x-square.json b/icons/x-square.json
index 60616d42ef6..b804bf1ee38 100644
--- a/icons/x-square.json
+++ b/icons/x-square.json
@@ -20,4 +20,4 @@
     "shapes",
     "notifications"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/x.json b/icons/x.json
index 74d0af01b6a..28cf2b38d01 100644
--- a/icons/x.json
+++ b/icons/x.json
@@ -19,4 +19,4 @@
     "notifications",
     "maths"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/zoom-in.json b/icons/zoom-in.json
index bbd51be3687..1a33e5455a8 100644
--- a/icons/zoom-in.json
+++ b/icons/zoom-in.json
@@ -15,4 +15,4 @@
     "text",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/icons/zoom-out.json b/icons/zoom-out.json
index bbd51be3687..1a33e5455a8 100644
--- a/icons/zoom-out.json
+++ b/icons/zoom-out.json
@@ -15,4 +15,4 @@
     "text",
     "photography"
   ]
-}
\ No newline at end of file
+}
diff --git a/package.json b/package.json
index 4e75453fd87..ceb0afb5bf5 100644
--- a/package.json
+++ b/package.json
@@ -30,11 +30,12 @@
     "generate:nextJSAliases": "node ./scripts/generateNextJSAliases.mjs",
     "postinstall": "husky install",
     "lint:es": "eslint .",
-    "lint:format": "prettier \"**/*.{js,mjs,ts,jsx,tsx,html,css,scss,json,yml,yaml}\" --write",
+    "lint:format": "prettier \"**/*.{js,mjs,ts,jsx,tsx,html,css,scss,json,yml,yaml}\" --check",
     "lint:json:icons": "ajv --spec=draft2020 -s icon.schema.json -d 'icons/*.json' > /dev/null",
     "lint:json:categories": "ajv --spec=draft2020 -s category.schema.json -d 'categories/*.json' > /dev/null",
     "lint:json": "pnpm run lint:json:icons && pnpm run lint:json:categories",
     "lint": "pnpm lint:es && pnpm lint:format && pnpm lint:json",
+    "format": "prettier \"**/*.{js,mjs,ts,jsx,tsx,html,css,scss,json,yml,yaml}\" --write",
     "prepare": "husky install",
     "gi": "node ./scripts/generate/generateIcons.mjs"
   },
@@ -58,7 +59,7 @@
     "minimist": "^1.2.8",
     "node-fetch": "^3.3.2",
     "p-memoize": "^7.1.1",
-    "prettier": "3.1.1",
+    "prettier": "3.2.4",
     "semver": "^7.5.4",
     "simple-git": "^3.21.0",
     "svgo": "^3.1.0",
diff --git a/packages/lucide-angular/angular.json b/packages/lucide-angular/angular.json
index cbbf8de7ffc..f518cd3e5a2 100644
--- a/packages/lucide-angular/angular.json
+++ b/packages/lucide-angular/angular.json
@@ -35,10 +35,7 @@
         "lint": {
           "builder": "@angular-eslint/builder:lint",
           "options": {
-            "lintFilePatterns": [
-              "src/**/*.ts",
-              "src/**/*.html"
-            ]
+            "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
           }
         }
       }
diff --git a/packages/lucide-angular/karma.conf.js b/packages/lucide-angular/karma.conf.js
index 995319346bc..25c954c4fc1 100644
--- a/packages/lucide-angular/karma.conf.js
+++ b/packages/lucide-angular/karma.conf.js
@@ -3,7 +3,7 @@
 // https://karma-runner.github.io/1.0/config/configuration-file.html
 process.env.CHROME_BIN = require('puppeteer').executablePath();
 
-module.exports = function(config) {
+module.exports = function (config) {
   config.set({
     basePath: '',
     frameworks: ['jasmine', '@angular-devkit/build-angular'],
diff --git a/packages/lucide-angular/scripts/exportTemplate.mjs b/packages/lucide-angular/scripts/exportTemplate.mjs
index 064d70ecb14..a412a23fbeb 100644
--- a/packages/lucide-angular/scripts/exportTemplate.mjs
+++ b/packages/lucide-angular/scripts/exportTemplate.mjs
@@ -22,5 +22,5 @@ import { LucideIconData } from './types';
 const ${componentName}: LucideIconData = ${JSON.stringify(children)}; //eslint-disable-line no-shadow-restricted-names
 
 export default ${componentName};
-`
+`;
 };
diff --git a/packages/lucide-angular/src/lib/lucide-angular.component.spec.ts b/packages/lucide-angular/src/lib/lucide-angular.component.spec.ts
index d6ffedfdd32..33578a41da5 100644
--- a/packages/lucide-angular/src/lib/lucide-angular.component.spec.ts
+++ b/packages/lucide-angular/src/lib/lucide-angular.component.spec.ts
@@ -63,7 +63,7 @@ describe('LucideAngularComponent', () => {
     testHostComponent.setAbsoluteStrokeWidth(true);
     testHostFixture.detectChanges();
     expect(getSvgAttribute('stroke-width')).toBe(
-      formatFixed(strokeWidth / (size / defaultAttributes.height))
+      formatFixed(strokeWidth / (size / defaultAttributes.height)),
     );
   });
 
diff --git a/packages/lucide-angular/src/lib/lucide-angular.component.ts b/packages/lucide-angular/src/lib/lucide-angular.component.ts
index 194bbeaebda..a11e29e00c6 100644
--- a/packages/lucide-angular/src/lib/lucide-angular.component.ts
+++ b/packages/lucide-angular/src/lib/lucide-angular.component.ts
@@ -49,7 +49,7 @@ export class LucideAngularComponent implements OnChanges {
     @Inject(Renderer2) private renderer: Renderer2,
     @Inject(ChangeDetectorRef) private changeDetector: ChangeDetectorRef,
     @Inject(LUCIDE_ICONS) private iconProviders: LucideIconProviderInterface[],
-    @Inject(LucideIconConfig) private iconConfig: LucideIconConfig
+    @Inject(LucideIconConfig) private iconConfig: LucideIconConfig,
   ) {
     this.defaultSize = defaultAttributes.height;
   }
@@ -99,7 +99,7 @@ export class LucideAngularComponent implements OnChanges {
           this.replaceElement(icoOfName);
         } else {
           throw new Error(
-            `The "${name}" icon has not been provided by any available icon providers.`
+            `The "${name}" icon has not been provided by any available icon providers.`,
           );
         }
       } else if (Array.isArray(name)) {
@@ -132,7 +132,7 @@ export class LucideAngularComponent implements OnChanges {
         ...this.class
           .split(/ /)
           .map((a) => a.trim())
-          .filter((a) => a.length > 0)
+          .filter((a) => a.length > 0),
       );
     }
     const childElements = this.elem.nativeElement.childNodes;
@@ -145,7 +145,7 @@ export class LucideAngularComponent implements OnChanges {
   toPascalCase(str: string): string {
     return str.replace(
       /(\w)([a-z0-9]*)(_|-|\s*)/g,
-      (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()
+      (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase(),
     );
   }
 
@@ -174,7 +174,7 @@ export class LucideAngularComponent implements OnChanges {
   private createElement([tag, attrs, children = []]: readonly [
     string,
     SvgAttributes,
-    LucideIconData?
+    LucideIconData?,
   ]) {
     const element = this.renderer.createElement(tag, 'http://www.w3.org/2000/svg');
 
diff --git a/packages/lucide-angular/src/test.ts b/packages/lucide-angular/src/test.ts
index d52eb4c86fe..300199a996f 100644
--- a/packages/lucide-angular/src/test.ts
+++ b/packages/lucide-angular/src/test.ts
@@ -4,22 +4,23 @@ import 'zone.js';
 import 'zone.js/testing';
 import { getTestBed } from '@angular/core/testing';
 import {
-    BrowserDynamicTestingModule,
-    platformBrowserDynamicTesting
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting,
 } from '@angular/platform-browser-dynamic/testing';
 
 declare const require: {
-    context(path: string, deep?: boolean, filter?: RegExp): {
-        <T>(id: string): T;
-        keys(): string[];
-    };
+  context(
+    path: string,
+    deep?: boolean,
+    filter?: RegExp,
+  ): {
+    <T>(id: string): T;
+    keys(): string[];
+  };
 };
 
 // First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
-    BrowserDynamicTestingModule,
-    platformBrowserDynamicTesting(),
-);
+getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
 
 // Then we find all the tests.
 const context = require.context('./', true, /\.spec\.ts$/);
diff --git a/packages/lucide-angular/tsconfig.json b/packages/lucide-angular/tsconfig.json
index bbed6be0a54..46f053f70db 100644
--- a/packages/lucide-angular/tsconfig.json
+++ b/packages/lucide-angular/tsconfig.json
@@ -10,9 +10,7 @@
     "noPropertyAccessFromIndexSignature": true,
     "noImplicitReturns": true,
     "paths": {
-      "lucide-angular": [
-        "dist"
-      ]
+      "lucide-angular": ["dist"],
     },
     "noFallthroughCasesInSwitch": true,
     "sourceMap": true,
@@ -23,15 +21,12 @@
     "importHelpers": true,
     "target": "es2017",
     "module": "es2020",
-    "lib": [
-      "es2020",
-      "dom"
-    ]
+    "lib": ["es2020", "dom"],
   },
   "angularCompilerOptions": {
     "enableI18nLegacyMessageIdFormat": false,
     "strictInjectionParameters": true,
     "strictInputAccessModifiers": true,
-    "strictTemplates": true
-  }
+    "strictTemplates": true,
+  },
 }
diff --git a/packages/lucide-angular/tsconfig.lib.json b/packages/lucide-angular/tsconfig.lib.json
index 365a81272f0..d68f81e0264 100644
--- a/packages/lucide-angular/tsconfig.lib.json
+++ b/packages/lucide-angular/tsconfig.lib.json
@@ -8,8 +8,5 @@
     "inlineSources": true,
     "types": []
   },
-  "exclude": [
-    "src/test.ts",
-    "**/*.spec.ts"
-  ]
+  "exclude": ["src/test.ts", "**/*.spec.ts"]
 }
diff --git a/packages/lucide-angular/tsconfig.spec.json b/packages/lucide-angular/tsconfig.spec.json
index f37f94cdd3e..6df9f8b8431 100644
--- a/packages/lucide-angular/tsconfig.spec.json
+++ b/packages/lucide-angular/tsconfig.spec.json
@@ -3,15 +3,8 @@
   "extends": "./tsconfig.json",
   "compilerOptions": {
     "outDir": "./out-tsc/spec",
-    "types": [
-      "jasmine"
-    ]
+    "types": ["jasmine"]
   },
-  "files": [
-    "src/test.ts"
-  ],
-  "include": [
-    "**/*.spec.ts",
-    "**/*.d.ts"
-  ]
+  "files": ["src/test.ts"],
+  "include": ["**/*.spec.ts", "**/*.d.ts"]
 }
diff --git a/packages/lucide-figma/src/api/fetchIcons.ts b/packages/lucide-figma/src/api/fetchIcons.ts
index 1b5b0a82579..d7796dc675b 100644
--- a/packages/lucide-figma/src/api/fetchIcons.ts
+++ b/packages/lucide-figma/src/api/fetchIcons.ts
@@ -1,91 +1,95 @@
-import iconNodeToSvg from "../helpers/iconNodeToSvg"
+import iconNodeToSvg from '../helpers/iconNodeToSvg';
 
-export type IconNode = any[]
-export type IconName = string
+export type IconNode = any[];
+export type IconName = string;
 
-export type Tag = string[]
+export type Tag = string[];
 export interface Tags {
-  [key:string]: Tag
+  [key: string]: Tag;
 }
 
 export interface LucideIcons {
-  version: string
-  iconNodes: { [key: IconName]: IconNode }
-  tags: Tags,
-  svgs: { [key: IconName]: string }
+  version: string;
+  iconNodes: { [key: IconName]: IconNode };
+  tags: Tags;
+  svgs: { [key: IconName]: string };
 }
 
-export const fetchIcons = async (cachedIcons? : LucideIcons): Promise<LucideIcons> => {
-  const response = await fetch('https://unpkg.com/lucide-static@latest/package.json')
+export const fetchIcons = async (cachedIcons?: LucideIcons): Promise<LucideIcons> => {
+  const response = await fetch('https://unpkg.com/lucide-static@latest/package.json');
   const packageJson = await response.json();
 
-  if(cachedIcons && cachedIcons?.version === packageJson.version) {
-    return cachedIcons
+  if (cachedIcons && cachedIcons?.version === packageJson.version) {
+    return cachedIcons;
   }
 
   const [iconNodesResponse, tagsResponse] = await Promise.all([
     fetch('https://lucide.dev/api/icon-nodes'),
-    fetch('https://lucide.dev/api/tags')
-  ])
+    fetch('https://lucide.dev/api/tags'),
+  ]);
 
   const iconNodes = await iconNodesResponse.json();
   const tags = await tagsResponse.json();
-  const svgs = Object.keys(iconNodes).reduce((acc : { [key:string]: string}, iconName) => {
-    acc[iconName] = iconNodeToSvg(iconName, iconNodes[iconName])
-    return acc
-  }, {})
+  const svgs = Object.keys(iconNodes).reduce((acc: { [key: string]: string }, iconName) => {
+    acc[iconName] = iconNodeToSvg(iconName, iconNodes[iconName]);
+    return acc;
+  }, {});
 
   const lucideIcons: LucideIcons = {
     version: packageJson.version,
     tags,
     iconNodes,
-    svgs
-  }
-
-  parent.postMessage({
-    pluginMessage: {
-      type: "setCachedIcons",
-      lucideIcons
-    }
-  }, "*")
-
-  return lucideIcons
-}
-
-export const getIcons = () => new Promise<LucideIcons>(async (resolve, reject)=> {
-
-  parent.postMessage({
-    pluginMessage: {
-      type: "getCachedIcons",
-    }
-  }, "*")
-
-  window.onmessage = async (event) => {
-    if (event.type === 'message' && event?.data?.pluginMessage.type === 'cachedIcons') {
-
-      const lucideIcons = await fetchIcons(event?.data?.pluginMessage?.cachedIcons)
-      resolve(lucideIcons)
-    }
-  }
-});
-
-type EventCallback = (lucideIcons: LucideIcons) => void
+    svgs,
+  };
+
+  parent.postMessage(
+    {
+      pluginMessage: {
+        type: 'setCachedIcons',
+        lucideIcons,
+      },
+    },
+    '*',
+  );
+
+  return lucideIcons;
+};
+
+export const getIcons = () =>
+  new Promise<LucideIcons>(async (resolve, reject) => {
+    parent.postMessage(
+      {
+        pluginMessage: {
+          type: 'getCachedIcons',
+        },
+      },
+      '*',
+    );
+
+    window.onmessage = async (event) => {
+      if (event.type === 'message' && event?.data?.pluginMessage.type === 'cachedIcons') {
+        const lucideIcons = await fetchIcons(event?.data?.pluginMessage?.cachedIcons);
+        resolve(lucideIcons);
+      }
+    };
+  });
+
+type EventCallback = (lucideIcons: LucideIcons) => void;
 
 export const iconFetchListener = (callback: EventCallback) => {
-  fetchIcons()
+  fetchIcons();
 
   const handleEvent = (event: MessageEvent) => {
     if (event.type === 'message' && event?.data?.pluginMessage.type === 'cachedIcons') {
-
-      const lucideIcons = event?.data?.pluginMessage?.cachedIcons
-      callback(lucideIcons)
+      const lucideIcons = event?.data?.pluginMessage?.cachedIcons;
+      callback(lucideIcons);
     }
-  }
+  };
 
-  window.addEventListener('message', handleEvent)
+  window.addEventListener('message', handleEvent);
 
   const removeListener = () => {
-    window.removeEventListener('message', handleEvent)
-  }
-  return removeListener
-}
+    window.removeEventListener('message', handleEvent);
+  };
+  return removeListener;
+};
diff --git a/packages/lucide-figma/src/components/EditBar/EditBar.tsx b/packages/lucide-figma/src/components/EditBar/EditBar.tsx
index f29f0bd16a5..772c2555499 100644
--- a/packages/lucide-figma/src/components/EditBar/EditBar.tsx
+++ b/packages/lucide-figma/src/components/EditBar/EditBar.tsx
@@ -1,5 +1,3 @@
-const EditBar = () => {
+const EditBar = () => {};
 
-}
-
-export default EditBar
+export default EditBar;
diff --git a/packages/lucide-figma/src/components/IconButton/IconButton.tsx b/packages/lucide-figma/src/components/IconButton/IconButton.tsx
index a5b3d8398c7..32e0bdc40d4 100644
--- a/packages/lucide-figma/src/components/IconButton/IconButton.tsx
+++ b/packages/lucide-figma/src/components/IconButton/IconButton.tsx
@@ -1,32 +1,37 @@
-import { renderToString } from 'react-dom/server'
+import { renderToString } from 'react-dom/server';
 import { FC } from 'react';
-import './IconButton.scss'
+import './IconButton.scss';
 
 interface IconButtonProps {
-  name: string,
-  component: FC,
+  name: string;
+  component: FC;
 }
 
 function IconButton({ name, component: IconComponent }: IconButtonProps) {
   const onIconClick = () => {
-    const svg = renderToString(<IconComponent/>);
+    const svg = renderToString(<IconComponent />);
 
-    parent.postMessage({ pluginMessage: {
-      type: 'drawIcon',
-      icon: { name, svg }
-    }}, '*')
-  }
+    parent.postMessage(
+      {
+        pluginMessage: {
+          type: 'drawIcon',
+          icon: { name, svg },
+        },
+      },
+      '*',
+    );
+  };
 
   return (
     <button
       key={name}
       aria-label={name}
       onClick={onIconClick}
-      className='icon-button'
+      className="icon-button"
     >
       <IconComponent />
     </button>
-  )
+  );
 }
 
-export default IconButton
+export default IconButton;
diff --git a/packages/lucide-figma/src/components/IconButton/index.ts b/packages/lucide-figma/src/components/IconButton/index.ts
index 9de6d2c2d90..86c5e513af2 100644
--- a/packages/lucide-figma/src/components/IconButton/index.ts
+++ b/packages/lucide-figma/src/components/IconButton/index.ts
@@ -1 +1 @@
-export { default } from './IconButton'
+export { default } from './IconButton';
diff --git a/packages/lucide-figma/src/components/Menu/Menu.tsx b/packages/lucide-figma/src/components/Menu/Menu.tsx
index a5ccf321bc2..42431154321 100644
--- a/packages/lucide-figma/src/components/Menu/Menu.tsx
+++ b/packages/lucide-figma/src/components/Menu/Menu.tsx
@@ -1,23 +1,26 @@
-import { useState } from 'react'
-import './Menu.scss'
+import { useState } from 'react';
+import './Menu.scss';
 
 interface MenuProps {
-  page: string
-  setPage: (page:string) => void
+  page: string;
+  setPage: (page: string) => void;
 }
 
-const menuItems = ['icons', 'info']
+const menuItems = ['icons', 'info'];
 
-const Menu = ({page, setPage = (page) => {}}: MenuProps) => {
+const Menu = ({ page, setPage = (page) => {} }: MenuProps) => {
   return (
     <nav className="menu">
-      {  menuItems.map((menuItem) => (
-         <div className={`menu-item ${page === menuItem ? 'active' : null }`} onClick={() => setPage(menuItem)}>
+      {menuItems.map((menuItem) => (
+        <div
+          className={`menu-item ${page === menuItem ? 'active' : null}`}
+          onClick={() => setPage(menuItem)}
+        >
           {menuItem}
         </div>
-      )) }
+      ))}
     </nav>
-  )
-}
+  );
+};
 
-export default Menu
+export default Menu;
diff --git a/packages/lucide-figma/src/components/Menu/index.ts b/packages/lucide-figma/src/components/Menu/index.ts
index 51d857ad082..a6de24ca955 100644
--- a/packages/lucide-figma/src/components/Menu/index.ts
+++ b/packages/lucide-figma/src/components/Menu/index.ts
@@ -1 +1 @@
-export { default } from './Menu'
+export { default } from './Menu';
diff --git a/packages/lucide-figma/src/components/SearchInput/SearchInput.tsx b/packages/lucide-figma/src/components/SearchInput/SearchInput.tsx
index bd7ddbd4c74..d895c657cb2 100644
--- a/packages/lucide-figma/src/components/SearchInput/SearchInput.tsx
+++ b/packages/lucide-figma/src/components/SearchInput/SearchInput.tsx
@@ -1,12 +1,12 @@
-import "./SearchInput.scss"
-import { ChangeEvent } from "react"
-import SearchIcon from "../icons/SearchIcon"
+import './SearchInput.scss';
+import { ChangeEvent } from 'react';
+import SearchIcon from '../icons/SearchIcon';
 
 interface SearchInputProps extends React.HTMLProps<HTMLDivElement> {
-  value: string,
-  iconCount: number,
-  onChange: (event: ChangeEvent<HTMLInputElement>) => void
-  placeholder: string
+  value: string;
+  iconCount: number;
+  onChange: (event: ChangeEvent<HTMLInputElement>) => void;
+  placeholder: string;
 }
 
 function SearchInput({ value, onChange, placeholder, className, ...props }: SearchInputProps) {
@@ -15,7 +15,7 @@ function SearchInput({ value, onChange, placeholder, className, ...props }: Sear
       className="search-input"
       {...props}
     >
-      <SearchIcon className='icon'/>
+      <SearchIcon className="icon" />
       <input
         autoFocus
         type="search"
@@ -25,7 +25,7 @@ function SearchInput({ value, onChange, placeholder, className, ...props }: Sear
         className="input__field"
       />
     </div>
-  )
+  );
 }
 
-export default SearchInput
+export default SearchInput;
diff --git a/packages/lucide-figma/src/components/SearchInput/index.ts b/packages/lucide-figma/src/components/SearchInput/index.ts
index 5c19d6ebe61..7e9c713e80a 100644
--- a/packages/lucide-figma/src/components/SearchInput/index.ts
+++ b/packages/lucide-figma/src/components/SearchInput/index.ts
@@ -1 +1 @@
-export { default } from './SearchInput'
+export { default } from './SearchInput';
diff --git a/packages/lucide-figma/src/components/Skeleton/Skeleton.scss b/packages/lucide-figma/src/components/Skeleton/Skeleton.scss
index f4fd7a9b713..080e169a8ac 100644
--- a/packages/lucide-figma/src/components/Skeleton/Skeleton.scss
+++ b/packages/lucide-figma/src/components/Skeleton/Skeleton.scss
@@ -8,12 +8,8 @@
   --block: rgba(0, 0, 0, 0.06);
   --loader: hsl(0 0% 89%);
 
-  background: linear-gradient(
-    -75deg,
-    transparent 40%,
-    var(--loader),
-    transparent 60%
-  ) 0 0 / 200% 100%,
+  background:
+    linear-gradient(-75deg, transparent 40%, var(--loader), transparent 60%) 0 0 / 200% 100%,
     var(--block);
 
   border-radius: calc(var(--padding) * 0.5);
diff --git a/packages/lucide-figma/src/components/Skeleton/Skeleton.tsx b/packages/lucide-figma/src/components/Skeleton/Skeleton.tsx
index c12930022fa..e803b9adb26 100644
--- a/packages/lucide-figma/src/components/Skeleton/Skeleton.tsx
+++ b/packages/lucide-figma/src/components/Skeleton/Skeleton.tsx
@@ -1,13 +1,13 @@
-import './Skeleton.scss'
+import './Skeleton.scss';
 
 const Skeleton = () => {
   return (
     <>
-      {Array.from({length: 48 }, () => (
-        <div className="skeleton"/>
+      {Array.from({ length: 48 }, () => (
+        <div className="skeleton" />
       ))}
     </>
-  )
-}
+  );
+};
 
-export default Skeleton
+export default Skeleton;
diff --git a/packages/lucide-figma/src/components/icons/SearchIcon.tsx b/packages/lucide-figma/src/components/icons/SearchIcon.tsx
index b33ce94b26d..a072d05ad26 100644
--- a/packages/lucide-figma/src/components/icons/SearchIcon.tsx
+++ b/packages/lucide-figma/src/components/icons/SearchIcon.tsx
@@ -1,5 +1,4 @@
-import { createElement, forwardRef } from 'react'
-
+import { createElement, forwardRef } from 'react';
 
 const SearchIcon = (props: any) => (
   <svg
@@ -17,6 +16,6 @@ const SearchIcon = (props: any) => (
       stroke="none"
     />
   </svg>
-)
+);
 
-export default SearchIcon
+export default SearchIcon;
diff --git a/packages/lucide-figma/src/helpers/createIconComponent.ts b/packages/lucide-figma/src/helpers/createIconComponent.ts
index 51c8b351e4f..93840a99bef 100644
--- a/packages/lucide-figma/src/helpers/createIconComponent.ts
+++ b/packages/lucide-figma/src/helpers/createIconComponent.ts
@@ -13,9 +13,8 @@ const defaultAttributes = {
   strokeLinejoin: 'round',
 };
 
-
 export interface LucideProps extends Partial<SVGProps<SVGSVGElement>> {
-  size?: string | number
+  size?: string | number;
 }
 
 /**
@@ -26,7 +25,8 @@ export interface LucideProps extends Partial<SVGProps<SVGSVGElement>> {
  * @param {string} string
  * @returns {string} A kebabized string
  */
-export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
+export const toKebabCase = (string: string) =>
+  string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
 
 const createIconComponent = (iconName: string, iconNode: IconNode) => {
   const Component = forwardRef<SVGSVGElement, LucideProps>(
@@ -43,7 +43,12 @@ const createIconComponent = (iconName: string, iconNode: IconNode) => {
           className: `lucide lucide-${toKebabCase(iconName)}`,
           ...rest,
         },
-        [...iconNode.map(([tag, attrs]: [tag:string, attrs: SVGProps<SVGSVGElement>]) => createElement(tag, attrs)), ...([children] || [])],
+        [
+          ...iconNode.map(([tag, attrs]: [tag: string, attrs: SVGProps<SVGSVGElement>]) =>
+            createElement(tag, attrs),
+          ),
+          ...([children] || []),
+        ],
       ),
   );
 
@@ -52,4 +57,4 @@ const createIconComponent = (iconName: string, iconNode: IconNode) => {
   return Component;
 };
 
-export default createIconComponent
+export default createIconComponent;
diff --git a/packages/lucide-figma/src/helpers/filterIcons.ts b/packages/lucide-figma/src/helpers/filterIcons.ts
index 61eeaafd51b..b76504fad50 100644
--- a/packages/lucide-figma/src/helpers/filterIcons.ts
+++ b/packages/lucide-figma/src/helpers/filterIcons.ts
@@ -1,13 +1,9 @@
-import { Tags } from "../api/fetchIcons";
-import { Icon } from "../hooks/useSearch";
+import { Tags } from '../api/fetchIcons';
+import { Icon } from '../hooks/useSearch';
 
-export default (icons: Icon[], tags: Tags ,query:string) =>
+export default (icons: Icon[], tags: Tags, query: string) =>
   icons.filter(([name]: Icon) => {
-    const iconTags = tags && tags[name] ? tags[name] : []
+    const iconTags = tags && tags[name] ? tags[name] : [];
 
-    return [name, ...iconTags].some(
-      (item:string) => item
-        .toLowerCase()
-        .includes(query)
-      )
-  })
+    return [name, ...iconTags].some((item: string) => item.toLowerCase().includes(query));
+  });
diff --git a/packages/lucide-figma/src/helpers/iconNodeToSvg.ts b/packages/lucide-figma/src/helpers/iconNodeToSvg.ts
index b2def619b52..66a72f927c4 100644
--- a/packages/lucide-figma/src/helpers/iconNodeToSvg.ts
+++ b/packages/lucide-figma/src/helpers/iconNodeToSvg.ts
@@ -1,11 +1,11 @@
-import { createElement } from "react";
-import { renderToString } from "react-dom/server";
-import { IconNode } from "../api/fetchIcons";
-import createIconComponent from "./createIconComponent";
+import { createElement } from 'react';
+import { renderToString } from 'react-dom/server';
+import { IconNode } from '../api/fetchIcons';
+import createIconComponent from './createIconComponent';
 
-const iconNodeToSvg = (iconName: string, iconNode : IconNode) => {
-  const IconComponent = createIconComponent(iconName, iconNode)
-  return  renderToString(createElement(IconComponent));
-}
+const iconNodeToSvg = (iconName: string, iconNode: IconNode) => {
+  const IconComponent = createIconComponent(iconName, iconNode);
+  return renderToString(createElement(IconComponent));
+};
 
-export default iconNodeToSvg
+export default iconNodeToSvg;
diff --git a/packages/lucide-figma/src/helpers/naming.ts b/packages/lucide-figma/src/helpers/naming.ts
index 1aa9a0c75cb..b43bfe26e53 100644
--- a/packages/lucide-figma/src/helpers/naming.ts
+++ b/packages/lucide-figma/src/helpers/naming.ts
@@ -1,4 +1,3 @@
-
 /**
  * Converts string to camelcase
  *
diff --git a/packages/lucide-figma/src/hooks/useSearch.tsx b/packages/lucide-figma/src/hooks/useSearch.tsx
index b608e31b54f..109482f2dcc 100644
--- a/packages/lucide-figma/src/hooks/useSearch.tsx
+++ b/packages/lucide-figma/src/hooks/useSearch.tsx
@@ -1,15 +1,12 @@
-import { IconName, IconNode, Tags } from "../api/fetchIcons";
-import filterIcons from "../helpers/filterIcons";
+import { IconName, IconNode, Tags } from '../api/fetchIcons';
+import filterIcons from '../helpers/filterIcons';
 
-export type Icon = [
-  name: IconName,
-  iconNode: IconNode
-]
+export type Icon = [name: IconName, iconNode: IconNode];
 
-function useSearch(icons: Icon[], tags: Tags ,query: string) {
-  if(!query) return icons;
+function useSearch(icons: Icon[], tags: Tags, query: string) {
+  if (!query) return icons;
 
-  const searchString = query.toLowerCase()
+  const searchString = query.toLowerCase();
 
   return filterIcons(icons, tags, searchString);
 }
diff --git a/packages/lucide-figma/src/interface/interface.html b/packages/lucide-figma/src/interface/interface.html
index 44fbeda19d3..cf1e5d1e83e 100644
--- a/packages/lucide-figma/src/interface/interface.html
+++ b/packages/lucide-figma/src/interface/interface.html
@@ -1,3 +1,6 @@
-<script type="module" src="./interface.tsx"></script>
+<script
+  type="module"
+  src="./interface.tsx"
+></script>
 
 <div id="root"></div>
diff --git a/packages/lucide-figma/src/interface/interface.scss b/packages/lucide-figma/src/interface/interface.scss
index 532583da222..35ad229b9f9 100644
--- a/packages/lucide-figma/src/interface/interface.scss
+++ b/packages/lucide-figma/src/interface/interface.scss
@@ -3,10 +3,9 @@
   font-style: normal;
   font-weight: 400;
   font-display: swap;
-  src: url('https://rsms.me/inter/font-files/Inter-Regular.woff2?v=3.9')
-      format('woff2'),
-    url('https://rsms.me/inter/font-files/Inter-Regular.woff?v=3.9')
-      format('woff');
+  src:
+    url('https://rsms.me/inter/font-files/Inter-Regular.woff2?v=3.9') format('woff2'),
+    url('https://rsms.me/inter/font-files/Inter-Regular.woff?v=3.9') format('woff');
 }
 
 @font-face {
@@ -14,10 +13,9 @@
   font-style: normal;
   font-weight: 500;
   font-display: swap;
-  src: url('https://rsms.me/inter/font-files/Inter-Medium.woff2?v=3.9')
-      format('woff2'),
-    url('https://rsms.me/inter/font-files/Inter-Medium.woff?v=3.9')
-      format('woff');
+  src:
+    url('https://rsms.me/inter/font-files/Inter-Medium.woff2?v=3.9') format('woff2'),
+    url('https://rsms.me/inter/font-files/Inter-Medium.woff?v=3.9') format('woff');
 }
 
 :root {
diff --git a/packages/lucide-figma/src/interface/interface.tsx b/packages/lucide-figma/src/interface/interface.tsx
index cba8958d488..1271ea2f088 100644
--- a/packages/lucide-figma/src/interface/interface.tsx
+++ b/packages/lucide-figma/src/interface/interface.tsx
@@ -1,54 +1,57 @@
-import { useEffect, useMemo, useState } from 'react'
-import ReactDOM from 'react-dom'
-import * as views from '../views'
+import { useEffect, useMemo, useState } from 'react';
+import ReactDOM from 'react-dom';
+import * as views from '../views';
 
-type Views = typeof views
+type Views = typeof views;
 
-import useSearch, { Icon } from '../hooks/useSearch'
+import useSearch, { Icon } from '../hooks/useSearch';
 
-import { getIcons, iconFetchListener, LucideIcons } from '../api/fetchIcons'
-import './interface.scss'
-import Menu from '../components/Menu'
+import { getIcons, iconFetchListener, LucideIcons } from '../api/fetchIcons';
+import './interface.scss';
+import Menu from '../components/Menu';
 
 function App() {
-  const [page, setPage] = useState('icons')
-  const [query, setQuery] = useState('')
-  const [icons, setIcons] = useState<Icon[]>([])
-  const [tags, setTags] = useState({})
-  const [version, setVersion ] = useState('')
+  const [page, setPage] = useState('icons');
+  const [query, setQuery] = useState('');
+  const [icons, setIcons] = useState<Icon[]>([]);
+  const [tags, setTags] = useState({});
+  const [version, setVersion] = useState('');
 
-  const searchResults = useMemo(() => useSearch(icons, tags, query), [icons, query])
+  const searchResults = useMemo(() => useSearch(icons, tags, query), [icons, query]);
 
   const handleFetchResponse = async (lucideIcons: LucideIcons) => {
-    const icons = Object.entries(lucideIcons.iconNodes)
+    const icons = Object.entries(lucideIcons.iconNodes);
 
-    setIcons(icons)
-    setTags(lucideIcons.tags)
-    setVersion(lucideIcons.version)
-  }
+    setIcons(icons);
+    setTags(lucideIcons.tags);
+    setVersion(lucideIcons.version);
+  };
 
   useEffect(() => {
-    const removeListener = iconFetchListener(handleFetchResponse)
+    const removeListener = iconFetchListener(handleFetchResponse);
 
-    return removeListener
-  }, [])
+    return removeListener;
+  }, []);
 
-  const View = views?.[page as keyof Views] ?? views.icons
+  const View = views?.[page as keyof Views] ?? views.icons;
 
   return (
     <div>
-      <Menu page={page} setPage={setPage}/>
+      <Menu
+        page={page}
+        setPage={setPage}
+      />
       <View
         {...{
           query,
           setQuery,
           searchResults,
           icons,
-          version
+          version,
         }}
       />
     </div>
-  )
+  );
 }
 
-ReactDOM.render(<App />, document.getElementById('root'))
+ReactDOM.render(<App />, document.getElementById('root'));
diff --git a/packages/lucide-figma/src/main.ts b/packages/lucide-figma/src/main.ts
index 596bf35d465..7815642f194 100644
--- a/packages/lucide-figma/src/main.ts
+++ b/packages/lucide-figma/src/main.ts
@@ -1,26 +1,34 @@
-import type { LucideIcons } from "./api/fetchIcons";
-import filterIcons from "./helpers/filterIcons";
+import type { LucideIcons } from './api/fetchIcons';
+import filterIcons from './helpers/filterIcons';
 
-figma.showUI(__uiFiles__.worker, { visible: false })
+figma.showUI(__uiFiles__.worker, { visible: false });
 
-let cachedIcons: LucideIcons
+let cachedIcons: LucideIcons;
 
-type InsertableNodes = FrameNode | GroupNode
+type InsertableNodes = FrameNode | GroupNode;
 
-function isInsertableNode (node: SceneNode): node is InsertableNodes {
-  return ['FRAME', 'GROUP'].includes(node.type)
+function isInsertableNode(node: SceneNode): node is InsertableNodes {
+  return ['FRAME', 'GROUP'].includes(node.type);
 }
 
-const setResults = ({result, query, lucideIcons} : { result: SuggestionResults, query: string, lucideIcons: LucideIcons }) => {
+const setResults = ({
+  result,
+  query,
+  lucideIcons,
+}: {
+  result: SuggestionResults;
+  query: string;
+  lucideIcons: LucideIcons;
+}) => {
   const icons = Object.entries(lucideIcons.iconNodes);
 
   const suggestions = filterIcons(icons, lucideIcons.tags, query.toLowerCase()).map(([name]) => ({
     name,
-    icon: lucideIcons.svgs[name]
-  }))
+    icon: lucideIcons.svgs[name],
+  }));
 
-  result.setSuggestions(suggestions)
-}
+  result.setSuggestions(suggestions);
+};
 
 // const styles = figma.getLocalPaintStyles();
 // const styleNames = styles.map((style) => style.name);
@@ -28,112 +36,114 @@ const setResults = ({result, query, lucideIcons} : { result: SuggestionResults,
 
 figma.parameters.on('input', async ({ parameters, key, query, result }) => {
   if (key === 'icon-name') {
-    cachedIcons = await figma.clientStorage.getAsync(`lucide-icons`)
+    cachedIcons = await figma.clientStorage.getAsync(`lucide-icons`);
 
-    if(cachedIcons && cachedIcons.iconNodes && cachedIcons.tags) {
-      setResults({result, query, lucideIcons: cachedIcons})
+    if (cachedIcons && cachedIcons.iconNodes && cachedIcons.tags) {
+      setResults({ result, query, lucideIcons: cachedIcons });
     }
   }
-  if(key === 'size') {
-    const iconSizes = [24,36,48,72]
-    result.setSuggestions(iconSizes.map((size)=>({
-      name: size.toString(),
-      data: size
-    })))
+  if (key === 'size') {
+    const iconSizes = [24, 36, 48, 72];
+    result.setSuggestions(
+      iconSizes.map((size) => ({
+        name: size.toString(),
+        data: size,
+      })),
+    );
   }
-})
+});
 
-const drawIcon = ({icon: {name, svg, size }}: any) => {
-  const min = 0
-  const max = 100
-  const randomPosition = () => Math.floor(Math.random() * (max - min + 1) + min)
+const drawIcon = ({ icon: { name, svg, size } }: any) => {
+  const min = 0;
+  const max = 100;
+  const randomPosition = () => Math.floor(Math.random() * (max - min + 1) + min);
 
-  const icon = figma.createNodeFromSvg(svg)
-  icon.setPluginData('isLucideIcon', 'true')
-  icon.setPluginData('iconName', name)
+  const icon = figma.createNodeFromSvg(svg);
+  icon.setPluginData('isLucideIcon', 'true');
+  icon.setPluginData('iconName', name);
 
-  const pluginData = icon.getPluginData('isLucideIcon')
+  const pluginData = icon.getPluginData('isLucideIcon');
 
-  icon.name = name
-  icon.x = Math.round(figma.viewport.center.x + randomPosition())
-  icon.y = Math.round(figma.viewport.center.y + randomPosition())
+  icon.name = name;
+  icon.x = Math.round(figma.viewport.center.x + randomPosition());
+  icon.y = Math.round(figma.viewport.center.y + randomPosition());
 
-  if(figma.currentPage.selection.length) {
-    let currentSelection = figma.currentPage.selection[0]
-    const isLucideIcon = currentSelection.getPluginData('isLucideIcon')
+  if (figma.currentPage.selection.length) {
+    let currentSelection = figma.currentPage.selection[0];
+    const isLucideIcon = currentSelection.getPluginData('isLucideIcon');
 
     // if(isLucideIcon && currentSelection?.parent) {
     //   return
     //   // currentSelection = currentSelection.parent as SceneNode
     // }
 
-    if(!isLucideIcon && isInsertableNode(currentSelection)) {
-      icon.x = currentSelection.type === 'GROUP' ? currentSelection.x : 0
-      icon.y = currentSelection.type === 'GROUP' ? currentSelection.y : 0
+    if (!isLucideIcon && isInsertableNode(currentSelection)) {
+      icon.x = currentSelection.type === 'GROUP' ? currentSelection.x : 0;
+      icon.y = currentSelection.type === 'GROUP' ? currentSelection.y : 0;
 
-      currentSelection.appendChild(icon)
+      currentSelection.appendChild(icon);
     }
   }
 
-  figma.currentPage.selection = [icon]
+  figma.currentPage.selection = [icon];
 
   // lock children
   // icon.children.forEach((vectorNode, key) => {
   //   icon.children[key].locked = true
   // });
-}
+};
 
 const setCachedIcons = async (pluginMessage: any) => {
-  if(pluginMessage.lucideIcons) {
-    await figma.clientStorage.setAsync(`lucide-icons`, pluginMessage.lucideIcons)
+  if (pluginMessage.lucideIcons) {
+    await figma.clientStorage.setAsync(`lucide-icons`, pluginMessage.lucideIcons);
   }
-}
+};
 
 const getCachedIcons = async () => {
-  cachedIcons = await figma.clientStorage.getAsync(`lucide-icons`)
+  cachedIcons = await figma.clientStorage.getAsync(`lucide-icons`);
 
-  const response = { type: 'cachedIcons' }
+  const response = { type: 'cachedIcons' };
 
-  if(cachedIcons) {
-    Object.assign(response, { cachedIcons })
+  if (cachedIcons) {
+    Object.assign(response, { cachedIcons });
   }
 
-  figma.ui.postMessage(response)
-}
+  figma.ui.postMessage(response);
+};
 
-getCachedIcons()
+getCachedIcons();
 
 figma.ui.onmessage = (event) => {
   switch (event.type) {
-    case "drawIcon":
-      drawIcon(event)
+    case 'drawIcon':
+      drawIcon(event);
       break;
-    case "getCachedIcons":
-      getCachedIcons()
+    case 'getCachedIcons':
+      getCachedIcons();
       break;
 
-    case "setCachedIcons":
-      setCachedIcons(event)
+    case 'setCachedIcons':
+      setCachedIcons(event);
       break;
 
-    case "close":
-      figma.closePlugin()
+    case 'close':
+      figma.closePlugin();
       break;
 
     default:
       break;
   }
-}
+};
 
-figma.on('run', event => {
-  if(event.parameters) {
+figma.on('run', (event) => {
+  if (event.parameters) {
     figma.ui.postMessage({
       type: 'getSvg',
       iconName: event.parameters['icon-name'],
       size: event.parameters['size'],
-      cachedIcons
-    })
+      cachedIcons,
+    });
   } else {
-    figma.showUI(__uiFiles__.interface, { width: 300, height: 400 })
+    figma.showUI(__uiFiles__.interface, { width: 300, height: 400 });
   }
-})
+});
diff --git a/packages/lucide-figma/src/theme.ts b/packages/lucide-figma/src/theme.ts
index 8a3cb6ff27b..7363c7d19ed 100644
--- a/packages/lucide-figma/src/theme.ts
+++ b/packages/lucide-figma/src/theme.ts
@@ -5,4 +5,4 @@ export default {
     blue: '#18a0fb',
   },
   radii: [0, 2],
-}
+};
diff --git a/packages/lucide-figma/src/views/Icons.tsx b/packages/lucide-figma/src/views/Icons.tsx
index 9645ebdcdac..2248b68d3e5 100644
--- a/packages/lucide-figma/src/views/Icons.tsx
+++ b/packages/lucide-figma/src/views/Icons.tsx
@@ -1,59 +1,52 @@
-import IconButton from '../components/IconButton'
-import SearchInput from '../components/SearchInput'
-import createIconComponent from '../helpers/createIconComponent'
-import { Icon } from '../hooks/useSearch'
-import Skeleton from '../components/Skeleton/Skeleton'
+import IconButton from '../components/IconButton';
+import SearchInput from '../components/SearchInput';
+import createIconComponent from '../helpers/createIconComponent';
+import { Icon } from '../hooks/useSearch';
+import Skeleton from '../components/Skeleton/Skeleton';
 
 interface PageProps {
-  query: string
-  setQuery: (query:string) => void
-  searchResults: Icon[]
-  icons: Icon[]
-  version: string
+  query: string;
+  setQuery: (query: string) => void;
+  searchResults: Icon[];
+  icons: Icon[];
+  version: string;
 }
 
-const Icons = ({
-  query,
-  setQuery,
-  searchResults,
-  icons,
-  version
-}: PageProps) => {
+const Icons = ({ query, setQuery, searchResults, icons, version }: PageProps) => {
   return (
     <>
       <SearchInput
         value={query}
         iconCount={icons.length}
-        onChange={(event)  => setQuery(event.target.value)}
-        placeholder={icons.length ? `Search ${icons.length} icons`: 'Loading icons ..'}
+        onChange={(event) => setQuery(event.target.value)}
+        placeholder={icons.length ? `Search ${icons.length} icons` : 'Loading icons ..'}
       />
-        <main>
-          <div className='icon-grid'>
-            {icons.length ? (
-              searchResults.map(([name, iconNode]: any) => (
-                <IconButton
-                  name={name}
-                  key={name}
-                  component={createIconComponent(name, iconNode)}
-                />
-              ))
-            ) : (
-              <Skeleton />
-            )}
-
-          </div>
-          <footer>
-            <a
-              href="https://lucide.dev"
-              target="_blank"
-              className='footer-link'
-            >
-              Lucide v{version}
-            </a>
-          </footer>
-        </main>
+      <main>
+        <div className="icon-grid">
+          {icons.length ? (
+            searchResults.map(([name, iconNode]: any) => (
+              <IconButton
+                name={name}
+                key={name}
+                component={createIconComponent(name, iconNode)}
+              />
+            ))
+          ) : (
+            <Skeleton />
+          )}
+        </div>
+        <footer>
+          <a
+            href="https://lucide.dev"
+            target="_blank"
+            className="footer-link"
+          >
+            Lucide v{version}
+          </a>
+        </footer>
+      </main>
     </>
-  )
-}
+  );
+};
 
-export default Icons
+export default Icons;
diff --git a/packages/lucide-figma/src/views/Info.tsx b/packages/lucide-figma/src/views/Info.tsx
index 082d7b4db2b..fc41474a664 100644
--- a/packages/lucide-figma/src/views/Info.tsx
+++ b/packages/lucide-figma/src/views/Info.tsx
@@ -1,64 +1,70 @@
-import { SyntheticEvent } from "react"
+import { SyntheticEvent } from 'react';
 
 interface PageProps {
-  version: string
+  version: string;
 }
 
 const Info = ({ version }: PageProps) => {
   const menuItems = [
     {
       name: 'Report a bug',
-      url: 'https://github.com/lucide-icons/lucide/issues'
+      url: 'https://github.com/lucide-icons/lucide/issues',
     },
     {
       name: 'Contribute an icon',
-      url: 'https://github.com/lucide-icons/lucide/blob/main/CONTRIBUTING.md'
+      url: 'https://github.com/lucide-icons/lucide/blob/main/CONTRIBUTING.md',
     },
     {
       name: 'Website',
-      url: 'https://lucide.dev'
+      url: 'https://lucide.dev',
     },
     {
       name: 'Repository',
-      url: 'https://github.com/lucide-icons/lucide'
+      url: 'https://github.com/lucide-icons/lucide',
     },
     {
       name: 'License',
-      url: 'https://lucide.dev/license'
+      url: 'https://lucide.dev/license',
     },
     {
       name: 'Community Page',
-      url: 'https://www.figma.com/community/plugin/939567362549682242/Lucide-Icons'
+      url: 'https://www.figma.com/community/plugin/939567362549682242/Lucide-Icons',
     },
     {
       name: 'Supported Frameworks',
-      url: 'https://lucide.dev/packages'
-    }
-  ]
+      url: 'https://lucide.dev/packages',
+    },
+  ];
 
   const onClick = (url: string) => (event: SyntheticEvent) => {
-    event.preventDefault()
+    event.preventDefault();
 
-    window.open(url,'_blank')
-  }
+    window.open(url, '_blank');
+  };
 
   return (
     <div className="info-page">
-      <img src="https://lucide.dev/logo-text.svg" alt="Lucide Logo" className="lucide-logo"/>
-      <p className='version'>
-        v{version}
-      </p>
+      <img
+        src="https://lucide.dev/logo-text.svg"
+        alt="Lucide Logo"
+        className="lucide-logo"
+      />
+      <p className="version">v{version}</p>
       <section className="link-list">
-        {
-          menuItems.map(({ name, url }) => (
-            <a href={url} key={name} aria-label={name} className="info-link" onClick={onClick(url)}>
-              {name}
-            </a>
-          ))
-        }
+        {menuItems.map(({ name, url }) => (
+          <a
+            href={url}
+            key={name}
+            aria-label={name}
+            className="info-link"
+            onClick={onClick(url)}
+          >
+            {name}
+          </a>
+        ))}
       </section>
     </div>
-  )
-}
+  );
+};
 
-export default Info
+export default Info;
diff --git a/packages/lucide-figma/src/views/index.ts b/packages/lucide-figma/src/views/index.ts
index f880a75bb27..daed83c5eef 100644
--- a/packages/lucide-figma/src/views/index.ts
+++ b/packages/lucide-figma/src/views/index.ts
@@ -1,2 +1,2 @@
-export { default as icons } from './Icons'
-export { default as info } from './Info'
+export { default as icons } from './Icons';
+export { default as info } from './Info';
diff --git a/packages/lucide-figma/src/worker/worker.html b/packages/lucide-figma/src/worker/worker.html
index c848e9ef412..1a11e9f5cdb 100644
--- a/packages/lucide-figma/src/worker/worker.html
+++ b/packages/lucide-figma/src/worker/worker.html
@@ -1 +1,4 @@
-<script type="module" src="./worker.ts"></script>
\ No newline at end of file
+<script
+  type="module"
+  src="./worker.ts"
+></script>
diff --git a/packages/lucide-figma/src/worker/worker.ts b/packages/lucide-figma/src/worker/worker.ts
index 6f1e1f7c7a7..97ce86ea76f 100644
--- a/packages/lucide-figma/src/worker/worker.ts
+++ b/packages/lucide-figma/src/worker/worker.ts
@@ -1,64 +1,85 @@
-import { fetchIcons, LucideIcons } from "../api/fetchIcons"
-import createIconComponent from "../helpers/createIconComponent"
-import { renderToString } from 'react-dom/server'
-import { createElement } from "react"
+import { fetchIcons, LucideIcons } from '../api/fetchIcons';
+import createIconComponent from '../helpers/createIconComponent';
+import { renderToString } from 'react-dom/server';
+import { createElement } from 'react';
 
 const getLatestIcons = async ({ cachedIcons }: any) => {
-  const lucideIcons = await fetchIcons(cachedIcons)
+  const lucideIcons = await fetchIcons(cachedIcons);
 
-  parent.postMessage({
-    pluginMessage: {
-      type: "latestIcons",
-      lucideIcons,
-    }
-  }, "*")
-}
+  parent.postMessage(
+    {
+      pluginMessage: {
+        type: 'latestIcons',
+        lucideIcons,
+      },
+    },
+    '*',
+  );
+};
 
-const getSvg = async ({ cachedIcons, iconName, size = 24 }: { cachedIcons: LucideIcons, iconName: string, size: number }) => {
+const getSvg = async ({
+  cachedIcons,
+  iconName,
+  size = 24,
+}: {
+  cachedIcons: LucideIcons;
+  iconName: string;
+  size: number;
+}) => {
   if (!cachedIcons) {
     return;
   }
 
-  console.log( iconName, size)
+  console.log(iconName, size);
 
   const iconNode = cachedIcons.iconNodes[iconName];
 
   if (iconNode) {
-    const IconComponent = createIconComponent(iconName, iconNode)
+    const IconComponent = createIconComponent(iconName, iconNode);
     const svg = renderToString(createElement(IconComponent, { size }));
 
-    parent.postMessage({ pluginMessage: {
-      type: 'drawIcon',
-      icon: {
-        name: iconName,
-        svg,
-        size
-      }
-    }}, '*')
+    parent.postMessage(
+      {
+        pluginMessage: {
+          type: 'drawIcon',
+          icon: {
+            name: iconName,
+            svg,
+            size,
+          },
+        },
+      },
+      '*',
+    );
 
-    parent.postMessage({ pluginMessage: {
-      type: 'close',
-    }}, '*')
+    parent.postMessage(
+      {
+        pluginMessage: {
+          type: 'close',
+        },
+      },
+      '*',
+    );
   }
-}
+};
 
 window.onmessage = async (event) => {
   if (!event?.data?.pluginMessage) {
-    return
+    return;
   }
 
-  const { pluginMessage } = event.data
+  const { pluginMessage } = event.data;
 
   switch (pluginMessage.type) {
-    case "getLatestIcons":
-      getLatestIcons(pluginMessage)
+    case 'getLatestIcons':
+      getLatestIcons(pluginMessage);
       break;
 
-    case "getSvg":
-      getSvg(pluginMessage)
+    case 'getSvg':
+      getSvg(pluginMessage);
       break;
 
     default:
       break;
   }
-}
+};
diff --git a/packages/lucide-figma/tsconfig.json b/packages/lucide-figma/tsconfig.json
index 5f288ca6fb7..c03a4f8d61e 100644
--- a/packages/lucide-figma/tsconfig.json
+++ b/packages/lucide-figma/tsconfig.json
@@ -15,10 +15,7 @@
     "isolatedModules": false,
     "noEmit": true,
     "jsx": "react-jsx",
-    "typeRoots": [
-      "./node_modules/@types",
-      "./node_modules/@figma"
-    ],
+    "typeRoots": ["./node_modules/@types", "./node_modules/@figma"],
   },
-  "include": ["src"]
+  "include": ["src"],
 }
diff --git a/packages/lucide-figma/vite.config.ts b/packages/lucide-figma/vite.config.ts
index 26bee3b28a3..e590530739b 100644
--- a/packages/lucide-figma/vite.config.ts
+++ b/packages/lucide-figma/vite.config.ts
@@ -1,40 +1,40 @@
-import { defineConfig } from 'vite'
-import react from '@vitejs/plugin-react'
-import { viteSingleFile } from "vite-plugin-singlefile"
-import { resolve } from 'path'
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react';
+import { viteSingleFile } from 'vite-plugin-singlefile';
+import { resolve } from 'path';
 
 const entries = {
   main: resolve(__dirname, 'src/main.ts'),
   interface: resolve(__dirname, './src/interface/interface.html'),
   worker: resolve(__dirname, './src/worker/worker.html'),
-}
+};
 
 const input = {};
 
-if(process.env['INPUT']) {
+if (process.env['INPUT']) {
   const entry = process.env['INPUT'];
-  input[entry] = entries[entry]
+  input[entry] = entries[entry];
 }
 
 // https://vitejs.dev/config/
 export default defineConfig({
   plugins: [react(), viteSingleFile()],
-	build: {
-		target: "esnext",
-		assetsInlineLimit: 100000000,
-		chunkSizeWarningLimit: 100000000,
-		cssCodeSplit: false,
-		brotliSize: false,
+  build: {
+    target: 'esnext',
+    assetsInlineLimit: 100000000,
+    chunkSizeWarningLimit: 100000000,
+    cssCodeSplit: false,
+    brotliSize: false,
     emptyOutDir: false,
-		rollupOptions: {
+    rollupOptions: {
       input,
-			inlineDynamicImports: true,
-			output: {
-				manualChunks: (chunk) => "all.js",
+      inlineDynamicImports: true,
+      output: {
+        manualChunks: (chunk) => 'all.js',
         entryFileNames: `assets/[name].js`,
         chunkFileNames: `assets/[name].js`,
-        assetFileNames: `assets/[name].[ext]`
-			},
-		},
-	},
-})
+        assetFileNames: `assets/[name].[ext]`,
+      },
+    },
+  },
+});
diff --git a/packages/lucide-preact/rollup.config.mjs b/packages/lucide-preact/rollup.config.mjs
index 64c9876b605..f0ec4a71c12 100644
--- a/packages/lucide-preact/rollup.config.mjs
+++ b/packages/lucide-preact/rollup.config.mjs
@@ -1,6 +1,6 @@
 import plugins, { replace } from '@lucide/rollup-plugins';
-import dts from "rollup-plugin-dts";
-import pkg from './package.json' assert { type: "json" };
+import dts from 'rollup-plugin-dts';
+import pkg from './package.json' assert { type: 'json' };
 
 const packageName = 'LucidePreact';
 const outputFileName = 'lucide-preact';
@@ -33,7 +33,7 @@ const bundles = [
 
 const configs = bundles
   .map(({ inputs, outputDir, format, minify, preserveModules }) =>
-    inputs.map(input => ({
+    inputs.map((input) => ({
       input,
       plugins: plugins(pkg, minify),
       external: ['preact'],
@@ -57,13 +57,16 @@ const configs = bundles
   )
   .flat();
 
-  export default [
-    {
-      input: inputs[0],
-      output: [{
-        file: `dist/${outputFileName}.d.ts`, format: "es"
-      }],
-      plugins: [dts()],
-    },
-    ...configs
-  ];
+export default [
+  {
+    input: inputs[0],
+    output: [
+      {
+        file: `dist/${outputFileName}.d.ts`,
+        format: 'es',
+      },
+    ],
+    plugins: [dts()],
+  },
+  ...configs,
+];
diff --git a/packages/lucide-preact/src/createLucideIcon.ts b/packages/lucide-preact/src/createLucideIcon.ts
index b4238c95d88..080583eb426 100644
--- a/packages/lucide-preact/src/createLucideIcon.ts
+++ b/packages/lucide-preact/src/createLucideIcon.ts
@@ -1,16 +1,16 @@
 import { type FunctionComponent, h, type JSX, toChildArray } from 'preact';
 import defaultAttributes from './defaultAttributes';
 
-export type IconNode = [elementName: keyof JSX.IntrinsicElements, attrs: Record<string, string>][]
+export type IconNode = [elementName: keyof JSX.IntrinsicElements, attrs: Record<string, string>][];
 
-export interface LucideProps extends Partial<Omit<JSX.SVGAttributes, "ref" | "size">> {
-  color?: string
-  size?: string | number
-  strokeWidth?: string | number
-  absoluteStrokeWidth?: boolean
+export interface LucideProps extends Partial<Omit<JSX.SVGAttributes, 'ref' | 'size'>> {
+  color?: string;
+  size?: string | number;
+  strokeWidth?: string | number;
+  absoluteStrokeWidth?: boolean;
 }
 
-export type LucideIcon = FunctionComponent<LucideProps>
+export type LucideIcon = FunctionComponent<LucideProps>;
 
 /**
  * Converts string to KebabCase
@@ -20,20 +20,29 @@ export type LucideIcon = FunctionComponent<LucideProps>
  * @param {string} string
  * @returns {string} A kebabized string
  */
-export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
+export const toKebabCase = (string: string) =>
+  string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
 
 const createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {
-  const Component = (
-    { color = 'currentColor', size = 24, strokeWidth = 2, absoluteStrokeWidth, children, class: classes = '', ...rest }: LucideProps
-  ) =>
+  const Component = ({
+    color = 'currentColor',
+    size = 24,
+    strokeWidth = 2,
+    absoluteStrokeWidth,
+    children,
+    class: classes = '',
+    ...rest
+  }: LucideProps) =>
     h(
       'svg',
       {
         ...defaultAttributes,
-        width:  String(size),
+        width: String(size),
         height: size,
         stroke: color,
-        ['stroke-width' as 'strokeWidth']: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
+        ['stroke-width' as 'strokeWidth']: absoluteStrokeWidth
+          ? (Number(strokeWidth) * 24) / Number(size)
+          : strokeWidth,
         class: ['lucide', `lucide-${toKebabCase(iconName)}`, classes].join(' '),
         ...rest,
       },
@@ -45,4 +54,4 @@ const createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {
   return Component;
 };
 
-export default createLucideIcon
+export default createLucideIcon;
diff --git a/packages/lucide-preact/src/defaultAttributes.ts b/packages/lucide-preact/src/defaultAttributes.ts
index 9f1b78dbf9a..6e633a7c642 100644
--- a/packages/lucide-preact/src/defaultAttributes.ts
+++ b/packages/lucide-preact/src/defaultAttributes.ts
@@ -1,4 +1,4 @@
-import type { JSX } from 'preact'
+import type { JSX } from 'preact';
 
 export default {
   xmlns: 'http://www.w3.org/2000/svg',
diff --git a/packages/lucide-preact/tests/lucide-preact.spec.tsx b/packages/lucide-preact/tests/lucide-preact.spec.tsx
index 1341aad326b..c0e6d06eb95 100644
--- a/packages/lucide-preact/tests/lucide-preact.spec.tsx
+++ b/packages/lucide-preact/tests/lucide-preact.spec.tsx
@@ -1,14 +1,14 @@
 import { describe, it, expect } from 'vitest';
-import { render, cleanup } from '@testing-library/preact'
+import { render, cleanup } from '@testing-library/preact';
 import { Pen, Edit2, Grid, Droplet } from '../src/lucide-preact';
 
-type AttributesAssertion = { attributes: Record<string, { value: string }>}
+type AttributesAssertion = { attributes: Record<string, { value: string }> };
 
 describe('Using lucide icon components', () => {
   it('should render an component', () => {
-    const { container } = render( <Grid/> );
+    const { container } = render(<Grid />);
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should adjust the size, stroke color and stroke width', () => {
@@ -27,7 +27,7 @@ describe('Using lucide icon components', () => {
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('4');
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should render the alias icon', () => {
@@ -41,9 +41,9 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    const PenIconRenderedHTML = container.innerHTML
+    const PenIconRenderedHTML = container.innerHTML;
 
-    cleanup()
+    cleanup();
 
     const { container: Edit2Container } = render(
       <Edit2
@@ -54,7 +54,7 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML)
+    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML);
   });
 
   it('should not scale the strokeWidth when absoluteStrokeWidth is set', () => {
@@ -74,17 +74,15 @@ describe('Using lucide icon components', () => {
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('1');
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should apply all classes to the element', () => {
     const testClass = 'my-class';
-    const { container } = render(
-      <Droplet class={testClass} />,
-    );
+    const { container } = render(<Droplet class={testClass} />);
 
     expect(container.firstChild).toHaveClass(testClass);
     expect(container.firstChild).toHaveClass('lucide');
     expect(container.firstChild).toHaveClass('lucide-droplet');
   });
-})
+});
diff --git a/packages/lucide-preact/tests/setupVitest.js b/packages/lucide-preact/tests/setupVitest.js
index 7dfeb1c3b3f..ccd53195bb9 100644
--- a/packages/lucide-preact/tests/setupVitest.js
+++ b/packages/lucide-preact/tests/setupVitest.js
@@ -1,5 +1,5 @@
-import { expect } from 'vitest'
+import { expect } from 'vitest';
 import '@testing-library/jest-dom';
-import htmlSerializer from 'jest-serializer-html'
+import htmlSerializer from 'jest-serializer-html';
 
-expect.addSnapshotSerializer(htmlSerializer)
+expect.addSnapshotSerializer(htmlSerializer);
diff --git a/packages/lucide-preact/tsconfig.json b/packages/lucide-preact/tsconfig.json
index b59f7ee3a6a..61ae11e69be 100644
--- a/packages/lucide-preact/tsconfig.json
+++ b/packages/lucide-preact/tsconfig.json
@@ -21,5 +21,5 @@
     "jsxImportSource": "preact",
     "types": ["@testing-library/jest-dom"],
   },
-  "exclude": ["**/node_modules"]
+  "exclude": ["**/node_modules"],
 }
diff --git a/packages/lucide-react-native/__mocks__/react-native-svg/index.ts b/packages/lucide-react-native/__mocks__/react-native-svg/index.ts
index 942db0e5712..8ebb9b6dc48 100644
--- a/packages/lucide-react-native/__mocks__/react-native-svg/index.ts
+++ b/packages/lucide-react-native/__mocks__/react-native-svg/index.ts
@@ -3,14 +3,14 @@ import React from 'react';
 import type { LucideProps } from '../../src/createReactComponent';
 export type { SvgProps } from 'react-native-svg';
 
-const createComponent = function(name: string) {
+const createComponent = function (name: string) {
   const component = (props: LucideProps) => {
     return React.createElement(name, props, props.children);
-  }
+  };
 
   component.displayName = name;
 
-  return component
+  return component;
 };
 
 // Mock all react-native-svg exports
diff --git a/packages/lucide-react-native/lucide-react-native.d.ts b/packages/lucide-react-native/lucide-react-native.d.ts
index ec234923b3d..6d98426758d 100644
--- a/packages/lucide-react-native/lucide-react-native.d.ts
+++ b/packages/lucide-react-native/lucide-react-native.d.ts
@@ -1,13 +1,16 @@
 /// <reference types="react" />
 
-declare module 'lucide-react-native'
+declare module 'lucide-react-native';
 
 // Create interface extending SVGProps
 export interface LucideProps extends Partial<React.SVGProps<SVGSVGElement>> {
-    size?: string | number
+  size?: string | number;
 }
 
-export declare const createLucideIcon: (iconName: string, iconNode: any[]) => (props: LucideProps) => JSX.Element;
+export declare const createLucideIcon: (
+  iconName: string,
+  iconNode: any[],
+) => (props: LucideProps) => JSX.Element;
 
 export type Icon = React.FC<LucideProps>;
 
diff --git a/packages/lucide-react-native/rollup.config.mjs b/packages/lucide-react-native/rollup.config.mjs
index 948b21ae65d..9bde99da134 100644
--- a/packages/lucide-react-native/rollup.config.mjs
+++ b/packages/lucide-react-native/rollup.config.mjs
@@ -1,5 +1,5 @@
 import plugins from '@lucide/rollup-plugins';
-import dts from "rollup-plugin-dts";
+import dts from 'rollup-plugin-dts';
 import pkg from './package.json' assert { type: 'json' };
 
 const packageName = 'LucideReact';
@@ -23,7 +23,7 @@ const bundles = [
 
 const configs = bundles
   .map(({ inputs, outputDir, format, minify, preserveModules }) =>
-    inputs.map(input => ({
+    inputs.map((input) => ({
       input,
       plugins: plugins(pkg, minify),
       external: ['react', 'react-native-svg'],
@@ -49,13 +49,16 @@ const configs = bundles
   )
   .flat();
 
-  export default [
-    {
-      input: inputs[0],
-      output: [{
-        file: `dist/${outputFileName}.d.ts`, format: "es"
-      }],
-      plugins: [dts()],
-    },
-    ...configs
-  ];
+export default [
+  {
+    input: inputs[0],
+    output: [
+      {
+        file: `dist/${outputFileName}.d.ts`,
+        format: 'es',
+      },
+    ],
+    plugins: [dts()],
+  },
+  ...configs,
+];
diff --git a/packages/lucide-react-native/src/createLucideIcon.ts b/packages/lucide-react-native/src/createLucideIcon.ts
index 9a080895cac..e824659bdef 100644
--- a/packages/lucide-react-native/src/createLucideIcon.ts
+++ b/packages/lucide-react-native/src/createLucideIcon.ts
@@ -1,21 +1,38 @@
-import { forwardRef, createElement, ReactSVG, FunctionComponent, ForwardRefExoticComponent } from 'react';
+import {
+  forwardRef,
+  createElement,
+  ReactSVG,
+  FunctionComponent,
+  ForwardRefExoticComponent,
+} from 'react';
 import * as NativeSvg from 'react-native-svg';
 import defaultAttributes, { childDefaultAttributes } from './defaultAttributes';
 import type { SvgProps } from 'react-native-svg';
 
-export type IconNode = [elementName: keyof ReactSVG, attrs: Record<string, string>][]
+export type IconNode = [elementName: keyof ReactSVG, attrs: Record<string, string>][];
 
 export interface LucideProps extends SvgProps {
-  size?: string | number
-  absoluteStrokeWidth?: boolean
-  'data-testid'?: string
+  size?: string | number;
+  absoluteStrokeWidth?: boolean;
+  'data-testid'?: string;
 }
 
 export type LucideIcon = ForwardRefExoticComponent<LucideProps>;
 
 const createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {
   const Component = forwardRef(
-    ({ color = 'currentColor', size = 24, strokeWidth = 2, absoluteStrokeWidth, children, 'data-testid': dataTestId, ...rest }: LucideProps, ref) => {
+    (
+      {
+        color = 'currentColor',
+        size = 24,
+        strokeWidth = 2,
+        absoluteStrokeWidth,
+        children,
+        'data-testid': dataTestId,
+        ...rest
+      }: LucideProps,
+      ref,
+    ) => {
       const customAttrs = {
         stroke: color,
         strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,
@@ -42,12 +59,10 @@ const createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {
               { ...childDefaultAttributes, ...customAttrs, ...attrs } as LucideProps,
             );
           }),
-          ...(
-            (Array.isArray(children) ? children : [children]) || []
-          ),
+          ...((Array.isArray(children) ? children : [children]) || []),
         ],
       );
-    }
+    },
   );
 
   Component.displayName = `${iconName}`;
diff --git a/packages/lucide-react-native/tests/lucide-react-native.spec.tsx b/packages/lucide-react-native/tests/lucide-react-native.spec.tsx
index 1be83b74617..c86d0576de9 100644
--- a/packages/lucide-react-native/tests/lucide-react-native.spec.tsx
+++ b/packages/lucide-react-native/tests/lucide-react-native.spec.tsx
@@ -1,16 +1,16 @@
 import { describe, it, expect, vi, beforeEach } from 'vitest';
-import { cleanup, render } from '@testing-library/react'
-import { Edit2, Grid, Pen } from '../src/lucide-react-native'
+import { cleanup, render } from '@testing-library/react';
+import { Edit2, Grid, Pen } from '../src/lucide-react-native';
 
-vi.mock('react-native-svg')
+vi.mock('react-native-svg');
 
-type Attributes = Record<string, { value: unknown}>
+type Attributes = Record<string, { value: unknown }>;
 
 describe('Using lucide icon components', () => {
   it('should render an component', () => {
-    const { container } = render(<Grid /> );
+    const { container } = render(<Grid />);
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should adjust the size, stroke color and stroke width', () => {
@@ -30,7 +30,7 @@ describe('Using lucide icon components', () => {
     expect((attributes as unknown as Attributes).height.value).toBe('48');
     expect((attributes as unknown as Attributes)['stroke-width'].value).toBe('4');
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should render the alias icon', () => {
@@ -44,9 +44,9 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    const PenIconRenderedHTML = container.innerHTML
+    const PenIconRenderedHTML = container.innerHTML;
 
-    cleanup()
+    cleanup();
 
     const { container: Edit2Container } = render(
       <Edit2
@@ -57,10 +57,9 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML)
+    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML);
   });
 
-
   it('should not scale the strokeWidth when absoluteStrokeWidth is set', () => {
     const testId = 'grid-icon';
     const { container, getByTestId } = render(
@@ -72,50 +71,52 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    const { attributes } = getByTestId(testId) as unknown as{ attributes: Record<string, { value: string }>};
+    const { attributes } = getByTestId(testId) as unknown as {
+      attributes: Record<string, { value: string }>;
+    };
     expect(attributes.stroke.value).toBe('red');
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('1');
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should work with a single child component', () => {
-    const testId = "single-child";
-    const childId = "child";
+    const testId = 'single-child';
+    const childId = 'child';
 
     const { container, getByTestId } = render(
       <Grid data-testid={testId}>
-        <Grid data-testid={childId}/>
-      </Grid>
+        <Grid data-testid={childId} />
+      </Grid>,
     );
-    const { children} = getByTestId(testId) as unknown as{ children: HTMLCollection};
-    const lastChild = children[children.length -1];
+    const { children } = getByTestId(testId) as unknown as { children: HTMLCollection };
+    const lastChild = children[children.length - 1];
 
     expect(lastChild).toEqual(getByTestId(childId));
     expect(container.innerHTML).toMatchSnapshot();
-  })
+  });
 
   it('should work with several children components', () => {
-    const testId = "multiple-children";
-    const childId1 = "child1";
-    const childId2 = "child2";
+    const testId = 'multiple-children';
+    const childId1 = 'child1';
+    const childId2 = 'child2';
 
     const { container, getByTestId } = render(
       <Grid data-testid={testId}>
-        <Grid data-testid={childId1}/>
-        <Grid data-testid={childId2}/>
-      </Grid>
+        <Grid data-testid={childId1} />
+        <Grid data-testid={childId2} />
+      </Grid>,
     );
-    const {children} = getByTestId(testId) as unknown as{ children: HTMLCollection};
+    const { children } = getByTestId(testId) as unknown as { children: HTMLCollection };
     const child1 = children[children.length - 2];
     const child2 = children[children.length - 1];
 
     expect(child1).toEqual(getByTestId(childId1));
     expect(child2).toEqual(getByTestId(childId2));
     expect(container.innerHTML).toMatchSnapshot();
-  })
+  });
 
   it('should duplicate properties to children components', () => {
     const testId = 'multiple-children';
@@ -125,7 +126,12 @@ describe('Using lucide icon components', () => {
     const strokeWidth = 10;
 
     const { container, getByTestId } = render(
-      <Grid data-testid={testId} fill={fill} color={color} strokeWidth={strokeWidth} />
+      <Grid
+        data-testid={testId}
+        fill={fill}
+        color={color}
+        strokeWidth={strokeWidth}
+      />,
     );
     const { children = [] } = getByTestId(testId) as unknown as { children: HTMLCollection };
     for (let i = 0; i < children.length; i++) {
@@ -136,5 +142,5 @@ describe('Using lucide icon components', () => {
     }
 
     expect(container.innerHTML).toMatchSnapshot();
-  })
-})
+  });
+});
diff --git a/packages/lucide-react-native/tests/setupVitest.js b/packages/lucide-react-native/tests/setupVitest.js
index 4c913f79850..337c9211ec3 100644
--- a/packages/lucide-react-native/tests/setupVitest.js
+++ b/packages/lucide-react-native/tests/setupVitest.js
@@ -2,9 +2,9 @@ import '@testing-library/jest-dom';
 import { expect, afterEach } from 'vitest';
 import { cleanup } from '@testing-library/react';
 import '@testing-library/jest-dom/vitest';
-import htmlSerializer from 'jest-serializer-html'
+import htmlSerializer from 'jest-serializer-html';
 
-expect.addSnapshotSerializer(htmlSerializer)
+expect.addSnapshotSerializer(htmlSerializer);
 
 afterEach(() => {
   cleanup();
diff --git a/packages/lucide-react-native/tsconfig.json b/packages/lucide-react-native/tsconfig.json
index 5ef9e56f02f..757dfc8e461 100644
--- a/packages/lucide-react-native/tsconfig.json
+++ b/packages/lucide-react-native/tsconfig.json
@@ -2,10 +2,7 @@
   "compilerOptions": {
     "target": "esnext",
     "module": "ESNext",
-    "lib": [
-      "es2019",
-      "DOM"
-    ],
+    "lib": ["es2019", "DOM"],
     "allowJs": true,
     "jsx": "react-jsx",
     "noEmit": true,
@@ -16,9 +13,7 @@
     "allowSyntheticDefaultImports": true,
     "forceConsistentCasingInFileNames": true,
     "esModuleInterop": true,
-    "skipLibCheck": false
+    "skipLibCheck": false,
   },
-  "exclude": [
-    "node_modules",
-  ]
+  "exclude": ["node_modules"],
 }
diff --git a/packages/lucide-react/rollup.config.mjs b/packages/lucide-react/rollup.config.mjs
index e4a153f1311..650bde4c506 100644
--- a/packages/lucide-react/rollup.config.mjs
+++ b/packages/lucide-react/rollup.config.mjs
@@ -1,9 +1,9 @@
 import plugins, { replace } from '@lucide/rollup-plugins';
 import pkg from './package.json' assert { type: 'json' };
-import dts from "rollup-plugin-dts";
+import dts from 'rollup-plugin-dts';
 import getAliasesEntryNames from './scripts/getAliasesEntryNames.mjs';
 
-const aliasesEntries = await getAliasesEntryNames()
+const aliasesEntries = await getAliasesEntryNames();
 
 const packageName = 'LucideReact';
 const outputFileName = 'lucide-react';
@@ -28,10 +28,7 @@ const bundles = [
   },
   {
     format: 'esm',
-    inputs: [
-      ...inputs,
-      ...aliasesEntries
-    ],
+    inputs: [...inputs, ...aliasesEntries],
     outputDir,
     preserveModules: true,
   },
@@ -42,61 +39,76 @@ const bundles = [
     external: [/src/],
     paths: (id) => {
       if (id.match(/src/)) {
-        const [, modulePath] = id.match(/src\/(.*)\.ts/)
+        const [, modulePath] = id.match(/src\/(.*)\.ts/);
 
-        return `dist/esm/${modulePath}.js`
+        return `dist/esm/${modulePath}.js`;
       }
-    }
+    },
   },
 ];
 
 const configs = bundles
-  .map(({ inputs, outputDir, outputFile, format, minify, preserveModules, entryFileNames, external = [], paths }) =>
-    inputs.map(input => ({
-      input,
-      plugins: plugins(pkg, minify),
-      external: [
-        'react',
-        'prop-types',
-        ...external
-      ],
-      output: {
-        name: packageName,
-        ...(preserveModules
-          ? {
-              dir:`${outputDir}/${format}`,
-            }
-          : {
-              file: outputFile ?? `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
-            }),
-        paths,
-        entryFileNames,
-        format,
-        sourcemap: true,
-        preserveModules,
-        globals: {
-          react: 'react',
-          'prop-types': 'PropTypes'
+  .map(
+    ({
+      inputs,
+      outputDir,
+      outputFile,
+      format,
+      minify,
+      preserveModules,
+      entryFileNames,
+      external = [],
+      paths,
+    }) =>
+      inputs.map((input) => ({
+        input,
+        plugins: plugins(pkg, minify),
+        external: ['react', 'prop-types', ...external],
+        output: {
+          name: packageName,
+          ...(preserveModules
+            ? {
+                dir: `${outputDir}/${format}`,
+              }
+            : {
+                file:
+                  outputFile ??
+                  `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
+              }),
+          paths,
+          entryFileNames,
+          format,
+          sourcemap: true,
+          preserveModules,
+          globals: {
+            react: 'react',
+            'prop-types': 'PropTypes',
+          },
         },
-      },
-    })),
+      })),
   )
   .flat();
 
 export default [
   {
     input: 'src/dynamicIconImports.ts',
-    output: [{
-      file: `dynamicIconImports.d.ts`, format: "es"
-    }],
+    output: [
+      {
+        file: `dynamicIconImports.d.ts`,
+        format: 'es',
+      },
+    ],
     plugins: [dts()],
   },
   {
     input: inputs[0],
-    output: [{
-      file: `dist/${outputFileName}.d.ts`, format: "es"
-    }],
+    output: [
+      {
+        file: `dist/${outputFileName}.d.ts`,
+        format: 'es',
+      },
+    ],
     plugins: [dts()],
   },
-  ...configs
+  ...configs,
 ];
diff --git a/packages/lucide-react/src/createLucideIcon.ts b/packages/lucide-react/src/createLucideIcon.ts
index b7c2b7c1f6a..172a509f94e 100644
--- a/packages/lucide-react/src/createLucideIcon.ts
+++ b/packages/lucide-react/src/createLucideIcon.ts
@@ -35,8 +35,18 @@ export const toKebabCase = (string: string) =>
 
 const createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {
   const Component = forwardRef<SVGSVGElement, LucideProps>(
-    ({ color = 'currentColor', size = 24, strokeWidth = 2, absoluteStrokeWidth, className = '', children, ...rest }, ref) =>{
-
+    (
+      {
+        color = 'currentColor',
+        size = 24,
+        strokeWidth = 2,
+        absoluteStrokeWidth,
+        className = '',
+        children,
+        ...rest
+      },
+      ref,
+    ) => {
       return createElement(
         'svg',
         {
@@ -45,16 +55,18 @@ const createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {
           width: size,
           height: size,
           stroke: color,
-          strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
+          strokeWidth: absoluteStrokeWidth
+            ? (Number(strokeWidth) * 24) / Number(size)
+            : strokeWidth,
           className: ['lucide', `lucide-${toKebabCase(iconName)}`, className].join(' '),
           ...rest,
         },
         [
           ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
           ...(Array.isArray(children) ? children : [children]),
-        ]
-      )
-    }
+        ],
+      );
+    },
   );
 
   Component.displayName = `${iconName}`;
diff --git a/packages/lucide-react/tests/lucide-react.spec.tsx b/packages/lucide-react/tests/lucide-react.spec.tsx
index d5da181e414..5d282290a9e 100644
--- a/packages/lucide-react/tests/lucide-react.spec.tsx
+++ b/packages/lucide-react/tests/lucide-react.spec.tsx
@@ -1,14 +1,14 @@
 import { describe, it, expect } from 'vitest';
-import { render, cleanup, waitFor } from '@testing-library/react'
+import { render, cleanup, waitFor } from '@testing-library/react';
 import { Pen, Edit2, Grid, LucideProps, Droplet } from '../src/lucide-react';
 import { Suspense, lazy } from 'react';
 import dynamicIconImports from '../src/dynamicIconImports';
 
 describe('Using lucide icon components', () => {
   it('should render an component', () => {
-    const { container } = render( <Grid/> );
+    const { container } = render(<Grid />);
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should adjust the size, stroke color and stroke width', () => {
@@ -22,13 +22,15 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    const { attributes } = getByTestId(testId) as unknown as{ attributes: Record<string, { value: string }>};
+    const { attributes } = getByTestId(testId) as unknown as {
+      attributes: Record<string, { value: string }>;
+    };
     expect(attributes.stroke.value).toBe('red');
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('4');
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should render the alias icon', () => {
@@ -40,9 +42,9 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    const PenIconRenderedHTML = container.innerHTML
+    const PenIconRenderedHTML = container.innerHTML;
 
-    cleanup()
+    cleanup();
 
     const { container: Edit2Container } = render(
       <Edit2
@@ -52,10 +54,9 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML)
+    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML);
   });
 
-
   it('should not scale the strokeWidth when absoluteStrokeWidth is set', () => {
     const testId = 'grid-icon';
     const { container, getByTestId } = render(
@@ -67,20 +68,20 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    const { attributes } = getByTestId(testId) as unknown as{ attributes: Record<string, { value: string }>};
+    const { attributes } = getByTestId(testId) as unknown as {
+      attributes: Record<string, { value: string }>;
+    };
     expect(attributes.stroke.value).toBe('red');
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('1');
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should apply all classNames to the element', () => {
     const testClass = 'my-class';
-    const { container } = render(
-      <Droplet className={testClass} />,
-    );
+    const { container } = render(<Droplet className={testClass} />);
 
     expect(container.firstChild).toHaveClass(testClass);
     expect(container.firstChild).toHaveClass('lucide');
@@ -100,7 +101,7 @@ describe('Using lucide icon components', () => {
           <LucideIcon {...props} />
         </Suspense>
       );
-    }
+    };
 
     const { container, getByLabelText } = render(
       <Icon
@@ -112,9 +113,8 @@ describe('Using lucide icon components', () => {
       />,
     );
 
-    await waitFor(() => getByLabelText('smile'))
-
-    expect( container.innerHTML ).toMatchSnapshot();
+    await waitFor(() => getByLabelText('smile'));
 
+    expect(container.innerHTML).toMatchSnapshot();
   });
-})
+});
diff --git a/packages/lucide-react/tests/setupVitest.js b/packages/lucide-react/tests/setupVitest.js
index 24cc3a9bc01..a60463ed871 100644
--- a/packages/lucide-react/tests/setupVitest.js
+++ b/packages/lucide-react/tests/setupVitest.js
@@ -1,9 +1,9 @@
 import { expect, afterEach } from 'vitest';
 import { cleanup } from '@testing-library/react';
 import '@testing-library/jest-dom/vitest';
-import htmlSerializer from 'jest-serializer-html'
+import htmlSerializer from 'jest-serializer-html';
 
-expect.addSnapshotSerializer(htmlSerializer)
+expect.addSnapshotSerializer(htmlSerializer);
 
 afterEach(() => {
   cleanup();
diff --git a/packages/lucide-react/tsconfig.json b/packages/lucide-react/tsconfig.json
index f25a9a7eb49..61ee72b002d 100644
--- a/packages/lucide-react/tsconfig.json
+++ b/packages/lucide-react/tsconfig.json
@@ -20,5 +20,5 @@
     "jsx": "react-jsx",
     "types": ["@testing-library/jest-dom"],
   },
-  "exclude": ["**/node_modules"]
+  "exclude": ["**/node_modules"],
 }
diff --git a/packages/lucide-solid/scripts/replaceVersion.mjs b/packages/lucide-solid/scripts/replaceVersion.mjs
index eff6ddf4e6b..01fad2a8e72 100644
--- a/packages/lucide-solid/scripts/replaceVersion.mjs
+++ b/packages/lucide-solid/scripts/replaceVersion.mjs
@@ -1,18 +1,13 @@
-import fs from 'fs'
-import path from 'path'
+import fs from 'fs';
+import path from 'path';
 
 import pkg from '../package.json' assert { type: 'json' };
 
-const files = [
-  'dist/source/lucide-solid.js',
-  'dist/types/lucide-solid.d.ts'
-]
+const files = ['dist/source/lucide-solid.js', 'dist/types/lucide-solid.d.ts'];
 
 files.forEach((file) => {
   const fileContents = fs.readFileSync(path.resolve(file), 'utf-8');
-  const newFileContents = fileContents.replace('{{version}}', pkg.version)
-
-  fs.writeFileSync(path.resolve(file), newFileContents, 'utf-8')
-})
-
+  const newFileContents = fileContents.replace('{{version}}', pkg.version);
 
+  fs.writeFileSync(path.resolve(file), newFileContents, 'utf-8');
+});
diff --git a/packages/lucide-solid/src/Icon.tsx b/packages/lucide-solid/src/Icon.tsx
index 5d6f456ca8b..c017477659c 100644
--- a/packages/lucide-solid/src/Icon.tsx
+++ b/packages/lucide-solid/src/Icon.tsx
@@ -11,11 +11,12 @@ import { IconNode, LucideProps } from './types';
  * @param {string} string
  * @returns {string} A kebabized string
  */
-export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
+export const toKebabCase = (string: string) =>
+  string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
 
 interface IconProps {
-  name: string
-  iconNode: IconNode
+  name: string;
+  iconNode: IconNode;
 }
 
 const Icon = (props: LucideProps & IconProps) => {
@@ -27,34 +28,38 @@ const Icon = (props: LucideProps & IconProps) => {
     'class',
     'name',
     'iconNode',
-    'absoluteStrokeWidth'
+    'absoluteStrokeWidth',
   ]);
 
   return (
     <svg
       {...defaultAttributes}
       width={localProps.size ?? defaultAttributes.width}
-			height={localProps.size ?? defaultAttributes.height}
-			stroke={localProps.color ?? defaultAttributes.stroke}
-			stroke-width={
+      height={localProps.size ?? defaultAttributes.height}
+      stroke={localProps.color ?? defaultAttributes.stroke}
+      stroke-width={
         localProps.absoluteStrokeWidth
-        ? Number(localProps.strokeWidth ?? defaultAttributes['stroke-width']) * 24 / (Number(localProps.size))
-        : Number(localProps.strokeWidth ?? defaultAttributes['stroke-width'])
+          ? (Number(localProps.strokeWidth ?? defaultAttributes['stroke-width']) * 24) /
+            Number(localProps.size)
+          : Number(localProps.strokeWidth ?? defaultAttributes['stroke-width'])
       }
       class={`lucide lucide-${toKebabCase(localProps?.name ?? 'icon')} ${
-          localProps.class != null ? localProps.class : ''
+        localProps.class != null ? localProps.class : ''
       }`}
       {...rest}
     >
       <For each={localProps.iconNode}>
         {([elementName, attrs]) => {
           return (
-            <Dynamic component={elementName} {...attrs} />
+            <Dynamic
+              component={elementName}
+              {...attrs}
+            />
           );
         }}
       </For>
     </svg>
-  )
-}
+  );
+};
 
-export default Icon
+export default Icon;
diff --git a/packages/lucide-solid/src/defaultAttributes.ts b/packages/lucide-solid/src/defaultAttributes.ts
index 1a3542ad46a..0929945867b 100644
--- a/packages/lucide-solid/src/defaultAttributes.ts
+++ b/packages/lucide-solid/src/defaultAttributes.ts
@@ -1,5 +1,5 @@
-import { JSX } from "solid-js/jsx-runtime";
-import { SVGAttributes } from "./types";
+import { JSX } from 'solid-js/jsx-runtime';
+import { SVGAttributes } from './types';
 
 const defaultAttributes: SVGAttributes = {
   xmlns: 'http://www.w3.org/2000/svg',
@@ -13,4 +13,4 @@ const defaultAttributes: SVGAttributes = {
   'stroke-linejoin': 'round',
 };
 
-export default defaultAttributes
+export default defaultAttributes;
diff --git a/packages/lucide-solid/src/types.ts b/packages/lucide-solid/src/types.ts
index 3435c5a21e0..80ad93fe760 100644
--- a/packages/lucide-solid/src/types.ts
+++ b/packages/lucide-solid/src/types.ts
@@ -1,13 +1,13 @@
-import { JSX } from "solid-js/jsx-runtime";
+import { JSX } from 'solid-js/jsx-runtime';
 
-export type IconNode = [elementName: keyof JSX.IntrinsicElements, attrs: Record<string, string>][]
-export type SVGAttributes = Partial<JSX.SvgSVGAttributes<SVGSVGElement>>
+export type IconNode = [elementName: keyof JSX.IntrinsicElements, attrs: Record<string, string>][];
+export type SVGAttributes = Partial<JSX.SvgSVGAttributes<SVGSVGElement>>;
 
 export interface LucideProps extends SVGAttributes {
   key?: string | number;
-  color?: string
-  size?: string | number
-  strokeWidth?: string | number
-  class?: string
-  absoluteStrokeWidth?: boolean
+  color?: string;
+  size?: string | number;
+  strokeWidth?: string | number;
+  class?: string;
+  absoluteStrokeWidth?: boolean;
 }
diff --git a/packages/lucide-solid/tests/lucide-solid.spec.tsx b/packages/lucide-solid/tests/lucide-solid.spec.tsx
index 8e26bb5d1cf..3a01b8ac795 100644
--- a/packages/lucide-solid/tests/lucide-solid.spec.tsx
+++ b/packages/lucide-solid/tests/lucide-solid.spec.tsx
@@ -1,89 +1,90 @@
 import { describe, it, expect } from 'vitest';
-import { render, cleanup } from '@solidjs/testing-library'
-import { Edit2, Grid, Pen, Droplet } from '../src/lucide-solid'
+import { render, cleanup } from '@solidjs/testing-library';
+import { Edit2, Grid, Pen, Droplet } from '../src/lucide-solid';
 
 describe('Using lucide icon components', () => {
   it('should render a component', () => {
-    const { container } = render(() => <Grid /> );
+    const { container } = render(() => <Grid />);
 
     expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should adjust the size, stroke color and stroke width', async () => {
     const testId = 'grid-icon';
-    const { container, getByTestId } = render(() =>
+    const { container, getByTestId } = render(() => (
       <Grid
         data-testid={testId}
         size={48}
         color="red"
         strokeWidth={4}
-      />,
-    );
+      />
+    ));
 
-    const { attributes } = await getByTestId(testId) as unknown as{ attributes: Record<string, { value: string }>};
+    const { attributes } = (await getByTestId(testId)) as unknown as {
+      attributes: Record<string, { value: string }>;
+    };
     expect(attributes.stroke.value).toBe('red');
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('4');
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should render the alias icon', () => {
     const testId = 'pen-icon';
-    const { container } = render(() =>
+    const { container } = render(() => (
       <Pen
         data-testid={testId}
         size={48}
         stroke="red"
         strokeWidth={4}
-      />,
-    );
+      />
+    ));
 
-    const PenIconRenderedHTML = container.innerHTML
+    const PenIconRenderedHTML = container.innerHTML;
 
-    cleanup()
+    cleanup();
 
-    const { container: Edit2Container } = render(() =>
+    const { container: Edit2Container } = render(() => (
       <Edit2
         data-testid={testId}
         size={48}
         stroke="red"
         strokeWidth={4}
-      />,
-    );
+      />
+    ));
 
-    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML)
+    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML);
   });
 
-
   it('should not scale the strokeWidth when absoluteStrokeWidth is set', () => {
     const testId = 'grid-icon';
-    const { container, getByTestId } = render(() =>
+    const { container, getByTestId } = render(() => (
       <Grid
         data-testid={testId}
         size={48}
         color="red"
         absoluteStrokeWidth
-      />,
-    );
+      />
+    ));
 
-    const { attributes } = getByTestId(testId) as unknown as{ attributes: Record<string, { value: string }>};
+    const { attributes } = getByTestId(testId) as unknown as {
+      attributes: Record<string, { value: string }>;
+    };
     expect(attributes.stroke.value).toBe('red');
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('1');
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 
   it('should add all classes to the element', () => {
     const testClass = 'my-class';
-    const { container } = render(() =>
-      <Droplet class={testClass} />,
-    );
+    const { container } = render(() => <Droplet class={testClass} />);
 
     expect(container.firstChild).toHaveClass(testClass);
     expect(container.firstChild).toHaveClass('lucide');
     expect(container.firstChild).toHaveClass('lucide-droplet');
   });
-})
+});
diff --git a/packages/lucide-solid/tests/setupVitest.js b/packages/lucide-solid/tests/setupVitest.js
index f04cb95cea0..eee9d60f6d0 100644
--- a/packages/lucide-solid/tests/setupVitest.js
+++ b/packages/lucide-solid/tests/setupVitest.js
@@ -1,9 +1,9 @@
 import { expect, afterEach } from 'vitest';
 import { cleanup } from '@solidjs/testing-library';
 import '@testing-library/jest-dom/vitest';
-import htmlSerializer from 'jest-serializer-html'
+import htmlSerializer from 'jest-serializer-html';
 
-expect.addSnapshotSerializer(htmlSerializer)
+expect.addSnapshotSerializer(htmlSerializer);
 
 afterEach(() => {
   cleanup();
diff --git a/packages/lucide-solid/tsconfig.json b/packages/lucide-solid/tsconfig.json
index 67fa6ed9c59..a3de0786cee 100644
--- a/packages/lucide-solid/tsconfig.json
+++ b/packages/lucide-solid/tsconfig.json
@@ -11,6 +11,6 @@
     "types": ["vite/client", "@testing-library/jest-dom"],
     "noEmit": true,
     "isolatedModules": true,
-    "outDir": "dist"
-  }
+    "outDir": "dist",
+  },
 }
diff --git a/packages/lucide-static/rollup.config.mjs b/packages/lucide-static/rollup.config.mjs
index fd90a529979..18d82c7fbde 100644
--- a/packages/lucide-static/rollup.config.mjs
+++ b/packages/lucide-static/rollup.config.mjs
@@ -21,18 +21,18 @@ const bundles = [
 
 const configs = bundles
   .map(({ inputs, outputDir, format, minify, preserveModules }) =>
-    inputs.map(input => ({
+    inputs.map((input) => ({
       input,
       plugins: plugins(pkg, minify),
       output: {
         name: outputFileName,
         ...(preserveModules
           ? {
-            dir: `${outputDir}/${format}`,
-          }
+              dir: `${outputDir}/${format}`,
+            }
           : {
-            file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
-          }),
+              file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
+            }),
         format,
         sourcemap: true,
         preserveModules,
diff --git a/packages/lucide-static/scripts/buildLib.mjs b/packages/lucide-static/scripts/buildLib.mjs
index 7c5beb08b50..3c74df19fd0 100644
--- a/packages/lucide-static/scripts/buildLib.mjs
+++ b/packages/lucide-static/scripts/buildLib.mjs
@@ -4,10 +4,7 @@ import path from 'path';
 import getArgumentOptions from 'minimist';
 import { parseSync } from 'svgson';
 
-import {
-  readSvgDirectory,
-  getCurrentDirPath,
-} from '../../../scripts/helpers.mjs';
+import { readSvgDirectory, getCurrentDirPath } from '../../../scripts/helpers.mjs';
 import readSvgs from './readSvgs.mjs';
 import generateSprite from './generateSprite.mjs';
 import generateIconNodes from './generateIconNodes.mjs';
diff --git a/packages/lucide-static/src/lucide-static.ts b/packages/lucide-static/src/lucide-static.ts
index 4ce404ebe0c..098bba46977 100644
--- a/packages/lucide-static/src/lucide-static.ts
+++ b/packages/lucide-static/src/lucide-static.ts
@@ -1,2 +1,2 @@
-export * from './icons'
+export * from './icons';
 export * from './aliases';
diff --git a/packages/lucide-static/tsconfig.json b/packages/lucide-static/tsconfig.json
index dac74896960..7fdaedbf61b 100644
--- a/packages/lucide-static/tsconfig.json
+++ b/packages/lucide-static/tsconfig.json
@@ -13,5 +13,5 @@
     "resolveJsonModule": true,
     "sourceMap": true,
     "outDir": "./dist",
-  }
+  },
 }
diff --git a/packages/lucide-svelte/scripts/appendBlockComments.mjs b/packages/lucide-svelte/scripts/appendBlockComments.mjs
index d6d6e3ae1a3..a9666cc73b2 100644
--- a/packages/lucide-svelte/scripts/appendBlockComments.mjs
+++ b/packages/lucide-svelte/scripts/appendBlockComments.mjs
@@ -47,7 +47,7 @@ for (const file of files) {
       if (exportClassRegex.test(newContents)) {
         newContents = newContents.replace(
           exportClassRegex,
-          `${blockComment}\nexport default class $1 extends SvelteComponentTyped<$2> {`
+          `${blockComment}\nexport default class $1 extends SvelteComponentTyped<$2> {`,
         );
       }
     }
diff --git a/packages/lucide-svelte/tests/lucide-svelte.spec.ts b/packages/lucide-svelte/tests/lucide-svelte.spec.ts
index 667a32946f1..643d3e153f7 100644
--- a/packages/lucide-svelte/tests/lucide-svelte.spec.ts
+++ b/packages/lucide-svelte/tests/lucide-svelte.spec.ts
@@ -1,10 +1,10 @@
 import { describe, it, expect, afterEach } from 'vitest';
 import { render, cleanup } from '@testing-library/svelte';
-import { Smile, Pen, Edit2 } from '../src/lucide-svelte'
-import TestSlots from './TestSlots.svelte'
+import { Smile, Pen, Edit2 } from '../src/lucide-svelte';
+import TestSlots from './TestSlots.svelte';
 
 describe('Using lucide icon components', () => {
-  afterEach(() => cleanup())
+  afterEach(() => cleanup());
   it('should render an component', () => {
     const { container } = render(Smile);
     expect(container).toMatchSnapshot();
@@ -15,8 +15,8 @@ describe('Using lucide icon components', () => {
       props: {
         size: 48,
         color: 'red',
-        strokeWidth: 4
-      }
+        strokeWidth: 4,
+      },
     });
 
     expect(container).toMatchSnapshot();
@@ -26,8 +26,8 @@ describe('Using lucide icon components', () => {
     const testClass = 'my-icon';
     render(Smile, {
       props: {
-        class: testClass
-      }
+        class: testClass,
+      },
     });
 
     const [icon] = document.getElementsByClassName(testClass);
@@ -42,8 +42,8 @@ describe('Using lucide icon components', () => {
   it('should add a style attribute to the element', () => {
     render(Smile, {
       props: {
-        style: "position: absolute;"
-      }
+        style: 'position: absolute;',
+      },
     });
     const [icon] = document.getElementsByClassName('lucide');
 
@@ -61,30 +61,32 @@ describe('Using lucide icon components', () => {
   it('should render the alias icon', () => {
     const { container } = render(Pen);
 
-    const PenIconRenderedHTML = container.innerHTML
+    const PenIconRenderedHTML = container.innerHTML;
 
-    cleanup()
+    cleanup();
 
     const { container: Edit2Container } = render(Edit2);
 
-    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML)
+    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML);
   });
 
   it('should not scale the strokeWidth when absoluteStrokeWidth is set', () => {
     const testId = 'smile-icon';
     const { container, getByTestId } = render(Smile, {
-      'data-testid':testId,
+      'data-testid': testId,
       color: 'red',
       size: 48,
-      absoluteStrokeWidth: true
+      absoluteStrokeWidth: true,
     });
 
-    const { attributes } = getByTestId(testId) as unknown as{ attributes: Record<string, { value: string }>};
+    const { attributes } = getByTestId(testId) as unknown as {
+      attributes: Record<string, { value: string }>;
+    };
     expect(attributes.stroke.value).toBe('red');
     expect(attributes.width.value).toBe('48');
     expect(attributes.height.value).toBe('48');
     expect(attributes['stroke-width'].value).toBe('1');
 
-    expect( container.innerHTML ).toMatchSnapshot();
+    expect(container.innerHTML).toMatchSnapshot();
   });
 });
diff --git a/packages/lucide-svelte/tests/setupVitest.ts b/packages/lucide-svelte/tests/setupVitest.ts
index fe9e03b670e..03a0244af39 100644
--- a/packages/lucide-svelte/tests/setupVitest.ts
+++ b/packages/lucide-svelte/tests/setupVitest.ts
@@ -1,5 +1,5 @@
 import { expect } from 'vitest';
 import '@testing-library/jest-dom/vitest';
-import htmlSerializer from 'jest-serializer-html'
+import htmlSerializer from 'jest-serializer-html';
 
-expect.addSnapshotSerializer(htmlSerializer)
+expect.addSnapshotSerializer(htmlSerializer);
diff --git a/packages/lucide-svelte/tsconfig.json b/packages/lucide-svelte/tsconfig.json
index e7e0c7acdf9..068c3322f13 100644
--- a/packages/lucide-svelte/tsconfig.json
+++ b/packages/lucide-svelte/tsconfig.json
@@ -10,11 +10,5 @@
     "isolatedModules": true,
     "types": ["@testing-library/jest-dom"],
   },
-  "include": [
-    "src/**/*.d.ts",
-    "src/**/*.ts",
-    "src/**/*.js",
-    "src/**/*.svelte",
-    "tests/**/*.ts"
-  ],
+  "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte", "tests/**/*.ts"],
 }
diff --git a/packages/lucide-svelte/vitest.config.ts b/packages/lucide-svelte/vitest.config.ts
index 397d447e246..0763e391228 100644
--- a/packages/lucide-svelte/vitest.config.ts
+++ b/packages/lucide-svelte/vitest.config.ts
@@ -1,18 +1,16 @@
-import { defineConfig } from 'vitest/config'
-import { svelte } from '@sveltejs/vite-plugin-svelte'
+import { defineConfig } from 'vitest/config';
+import { svelte } from '@sveltejs/vite-plugin-svelte';
 
 export default defineConfig({
   plugins: [
     svelte({
       hot: false,
-    })
+    }),
   ],
   test: {
     globals: true,
     environment: 'jsdom',
     setupFiles: './tests/setupVitest.ts',
-    alias: [
-      { find: /^svelte$/, replacement: "svelte/internal" }
-    ]
+    alias: [{ find: /^svelte$/, replacement: 'svelte/internal' }],
   },
 });
diff --git a/packages/lucide-vue-next/rollup.config.mjs b/packages/lucide-vue-next/rollup.config.mjs
index 030d2f3b33a..e458bf44033 100644
--- a/packages/lucide-vue-next/rollup.config.mjs
+++ b/packages/lucide-vue-next/rollup.config.mjs
@@ -1,6 +1,6 @@
 import plugins, { replace } from '@lucide/rollup-plugins';
 import pkg from './package.json' assert { type: 'json' };
-import dts from "rollup-plugin-dts";
+import dts from 'rollup-plugin-dts';
 
 const packageName = 'LucideVueNext';
 const outputFileName = 'lucide-vue-next';
@@ -33,7 +33,7 @@ const bundles = [
 
 const configs = bundles
   .map(({ inputs, outputDir, format, minify, preserveModules }) =>
-    inputs.map(input => ({
+    inputs.map((input) => ({
       input,
       plugins: plugins(pkg, minify),
       external: ['vue'],
@@ -57,19 +57,22 @@ const configs = bundles
   )
   .flat();
 
-  export default [
-    {
-      input: inputs[0],
-      output: [{
-        file: `dist/${outputFileName}.d.ts`, format: "es"
-      }],
-      plugins: [
-        dts({
-          compilerOptions: {
-            preserveSymlinks: false
-          }
-        })
-      ],
-    },
-    ...configs
-  ];
+export default [
+  {
+    input: inputs[0],
+    output: [
+      {
+        file: `dist/${outputFileName}.d.ts`,
+        format: 'es',
+      },
+    ],
+    plugins: [
+      dts({
+        compilerOptions: {
+          preserveSymlinks: false,
+        },
+      }),
+    ],
+  },
+  ...configs,
+];
diff --git a/packages/lucide-vue-next/src/createLucideIcon.ts b/packages/lucide-vue-next/src/createLucideIcon.ts
index 13bbf3e92bb..dd042f51862 100644
--- a/packages/lucide-vue-next/src/createLucideIcon.ts
+++ b/packages/lucide-vue-next/src/createLucideIcon.ts
@@ -4,14 +4,13 @@ import defaultAttributes from './defaultAttributes';
 
 // Create interface extending SVGAttributes
 export interface SVGProps extends Partial<SVGAttributes> {
-  size?: 24 | number
-  strokeWidth?: number | string
-  absoluteStrokeWidth?: boolean
+  size?: 24 | number;
+  strokeWidth?: number | string;
+  absoluteStrokeWidth?: boolean;
 }
 
-
-export type IconNode = [elementName: string, attrs: Record<string, string>][]
-export type Icon = FunctionalComponent<SVGProps>
+export type IconNode = [elementName: string, attrs: Record<string, string>][];
+export type Icon = FunctionalComponent<SVGProps>;
 /**
  * Converts string to KebabCase
  * Copied from scripts/helper. If anyone knows how to properly import it here
@@ -20,29 +19,31 @@ export type Icon = FunctionalComponent<SVGProps>
  * @param {string} string
  * @returns {string} A kebabized string
  */
-export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
+export const toKebabCase = (string: string) =>
+  string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
 
-const createLucideIcon = (iconName: string, iconNode: IconNode): Icon => (
-  { size, strokeWidth = 2, absoluteStrokeWidth, color, class: classes, ...props }, // props
-  { attrs, slots } // context
+const createLucideIcon =
+  (iconName: string, iconNode: IconNode): Icon =>
+  (
+    { size, strokeWidth = 2, absoluteStrokeWidth, color, class: classes, ...props }, // props
+    { attrs, slots }, // context
   ) => {
-  return h(
-    'svg',
-    {
-      ...defaultAttributes,
-      width: size || defaultAttributes.width,
-      height: size || defaultAttributes.height,
-      stroke: color || defaultAttributes.stroke,
-      'stroke-width': absoluteStrokeWidth ?  Number(strokeWidth) * 24 / Number(size) : strokeWidth,
-      ...attrs,
-      class: ['lucide', `lucide-${toKebabCase(iconName)}`],
-      ...props,
-    },
-    [
-      ...iconNode.map(child => h(...child)),
-      ...(slots.default ? [slots.default()] : [])
-    ],
-  );
-};
+    return h(
+      'svg',
+      {
+        ...defaultAttributes,
+        width: size || defaultAttributes.width,
+        height: size || defaultAttributes.height,
+        stroke: color || defaultAttributes.stroke,
+        'stroke-width': absoluteStrokeWidth
+          ? (Number(strokeWidth) * 24) / Number(size)
+          : strokeWidth,
+        ...attrs,
+        class: ['lucide', `lucide-${toKebabCase(iconName)}`],
+        ...props,
+      },
+      [...iconNode.map((child) => h(...child)), ...(slots.default ? [slots.default()] : [])],
+    );
+  };
 
 export default createLucideIcon;
diff --git a/packages/lucide-vue-next/tests/lucide-vue-next.spec.ts b/packages/lucide-vue-next/tests/lucide-vue-next.spec.ts
index 483965a6122..130b5d7847b 100644
--- a/packages/lucide-vue-next/tests/lucide-vue-next.spec.ts
+++ b/packages/lucide-vue-next/tests/lucide-vue-next.spec.ts
@@ -1,94 +1,93 @@
 import { describe, it, expect, vi, afterEach } from 'vitest';
-import {render, fireEvent, cleanup } from '@testing-library/vue'
-import { Smile, Edit2, Pen } from '../src/lucide-vue-next'
+import { render, fireEvent, cleanup } from '@testing-library/vue';
+import { Smile, Edit2, Pen } from '../src/lucide-vue-next';
 
 describe('Using lucide icon components', () => {
-  afterEach(() => cleanup())
+  afterEach(() => cleanup());
 
   it('should render an component', () => {
-    const { container } = render(Smile)
+    const { container } = render(Smile);
     expect(container).toMatchSnapshot();
   });
 
   it('should adjust the size, stroke color and stroke width', () => {
-    const {container} = render(Smile, {
+    const { container } = render(Smile, {
       props: {
         size: 48,
         color: 'red',
-        'stroke-width': 4
-      }
-    })
+        'stroke-width': 4,
+      },
+    });
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    expect(icon.getAttribute('width')).toBe('48')
-    expect(icon.getAttribute('stroke')).toBe('red')
-    expect(icon.getAttribute('stroke-width')).toBe('4')
+    expect(icon.getAttribute('width')).toBe('48');
+    expect(icon.getAttribute('stroke')).toBe('red');
+    expect(icon.getAttribute('stroke-width')).toBe('4');
 
     expect(container).toMatchSnapshot();
   });
 
-
   it('should add a class to the element', () => {
-    const {container} = render(Smile, {
+    const { container } = render(Smile, {
       attrs: {
-        class: "my-icon"
-      }
-    })
+        class: 'my-icon',
+      },
+    });
 
     expect(container).toMatchSnapshot();
 
     const [icon] = document.getElementsByClassName('my-icon');
 
-    expect(icon).toHaveClass('my-icon')
-    expect(icon).toHaveClass('lucide')
-    expect(icon).toHaveClass('lucide-smile-icon')
+    expect(icon).toHaveClass('my-icon');
+    expect(icon).toHaveClass('lucide');
+    expect(icon).toHaveClass('lucide-smile-icon');
   });
 
   it('should add a style attribute to the element', () => {
-    const {container} = render(Smile, {
+    const { container } = render(Smile, {
       attrs: {
         style: 'position: absolute',
-      }
-    })
+      },
+    });
 
     expect(container).toMatchSnapshot();
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    expect(icon).toHaveStyle({ position: 'absolute' })
+    expect(icon).toHaveStyle({ position: 'absolute' });
   });
 
   it('should call the onClick event', async () => {
-    const onClick = vi.fn()
+    const onClick = vi.fn();
     render(Smile, {
       attrs: {
         onClick,
-      }
-    })
+      },
+    });
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    await fireEvent.click(icon)
+    await fireEvent.click(icon);
 
-    expect(onClick).toHaveBeenCalled()
+    expect(onClick).toHaveBeenCalled();
   });
 
   it('should pass children to the icon slot', () => {
-    const testText = 'Hello World'
+    const testText = 'Hello World';
     const template = {
       name: 'Stub',
-      template: `<text>${testText}</text>`
-    }
+      template: `<text>${testText}</text>`,
+    };
     const { getByText, container } = render(Smile, {
       slots: {
-        default: template
-      }
-    })
+        default: template,
+      },
+    });
 
-    const textElement = getByText(testText)
+    const textElement = getByText(testText);
 
-    expect(textElement).toBeInTheDocument()
+    expect(textElement).toBeInTheDocument();
     expect(container).toMatchSnapshot();
   });
 
@@ -97,38 +96,38 @@ describe('Using lucide icon components', () => {
       props: {
         size: 48,
         color: 'red',
-        'stroke-width': 4
-      }
-    })
+        'stroke-width': 4,
+      },
+    });
 
-    const PenIconRenderedHTML = container.innerHTML
+    const PenIconRenderedHTML = container.innerHTML;
 
-    cleanup()
+    cleanup();
 
     const { container: Edit2Container } = render(Edit2, {
       props: {
         size: 48,
         color: 'red',
-        'stroke-width': 4
-      }
-    })
+        'stroke-width': 4,
+      },
+    });
 
-    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML)
-  })
+    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML);
+  });
 
   it('should not scale the strokeWidth when absoluteStrokeWidth is set', () => {
     render(Pen, {
       props: {
         size: 48,
         color: 'red',
-        absoluteStrokeWidth: true
-      }
-    })
+        absoluteStrokeWidth: true,
+      },
+    });
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    expect(icon.getAttribute('width')).toBe('48')
-    expect(icon.getAttribute('stroke')).toBe('red')
-    expect(icon.getAttribute('stroke-width')).toBe('1')
-  })
+    expect(icon.getAttribute('width')).toBe('48');
+    expect(icon.getAttribute('stroke')).toBe('red');
+    expect(icon.getAttribute('stroke-width')).toBe('1');
+  });
 });
diff --git a/packages/lucide-vue-next/tsconfig.json b/packages/lucide-vue-next/tsconfig.json
index e605a4cde5b..baaea96017a 100644
--- a/packages/lucide-vue-next/tsconfig.json
+++ b/packages/lucide-vue-next/tsconfig.json
@@ -12,5 +12,5 @@
     "lib": ["ESNext", "DOM"],
     "skipLibCheck": true,
     "noEmit": true,
-  }
+  },
 }
diff --git a/packages/lucide-vue/rollup.config.mjs b/packages/lucide-vue/rollup.config.mjs
index 911bacfe363..ad83bbd4d23 100644
--- a/packages/lucide-vue/rollup.config.mjs
+++ b/packages/lucide-vue/rollup.config.mjs
@@ -32,7 +32,7 @@ const bundles = [
 
 const configs = bundles
   .map(({ inputs, outputDir, format, minify, preserveModules }) =>
-    inputs.map(input => ({
+    inputs.map((input) => ({
       input,
       plugins: plugins(pkg, minify),
       external: ['vue'],
diff --git a/packages/lucide-vue/src/createLucideIcon.ts b/packages/lucide-vue/src/createLucideIcon.ts
index 694c2c8ee74..6392ae6f579 100644
--- a/packages/lucide-vue/src/createLucideIcon.ts
+++ b/packages/lucide-vue/src/createLucideIcon.ts
@@ -4,7 +4,7 @@ import defaultAttributes from './defaultAttributes';
 
 var showDeprecationWarning = true;
 
-type IconNode = [elementName: string, attrs: Record<string, string>][]
+type IconNode = [elementName: string, attrs: Record<string, string>][];
 
 /**
  * Converts string to KebabCase
@@ -14,7 +14,8 @@ type IconNode = [elementName: string, attrs: Record<string, string>][]
  * @param {string} string
  * @returns {string} A kebabized string
  */
-export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
+export const toKebabCase = (string: string) =>
+  string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
 
 export default (iconName: string, iconNode: IconNode): Component => ({
   name: iconName,
@@ -43,11 +44,7 @@ export default (iconName: string, iconNode: IconNode): Component => ({
   },
   render(
     createElement,
-    {
-      props: { color, size, strokeWidth, absoluteStrokeWidth, defaultClass },
-      data,
-      children = [],
-    },
+    { props: { color, size, strokeWidth, absoluteStrokeWidth, defaultClass }, data, children = [] },
   ) {
     if (showDeprecationWarning) {
       console.warn(
@@ -67,18 +64,14 @@ export default (iconName: string, iconNode: IconNode): Component => ({
           width: size,
           height: size,
           stroke: color,
-          'stroke-width':
-            absoluteStrokeWidth
-              ? Number(strokeWidth) * 24 / Number(size)
-              : strokeWidth,
+          'stroke-width': absoluteStrokeWidth
+            ? (Number(strokeWidth) * 24) / Number(size)
+            : strokeWidth,
           ...data.attrs,
         },
-        on: data?.on || {}
+        on: data?.on || {},
       },
-      [
-        ...iconNode.map(([tag, attrs]) => createElement(String(tag), { attrs })),
-        ...children
-      ],
+      [...iconNode.map(([tag, attrs]) => createElement(String(tag), { attrs })), ...children],
     );
   },
 });
diff --git a/packages/lucide-vue/src/defaultAttributes.ts b/packages/lucide-vue/src/defaultAttributes.ts
index 989a5aa8915..f25994ae790 100644
--- a/packages/lucide-vue/src/defaultAttributes.ts
+++ b/packages/lucide-vue/src/defaultAttributes.ts
@@ -10,4 +10,4 @@ const defaultAttributes = {
   'stroke-linejoin': 'round',
 };
 
-export default defaultAttributes
+export default defaultAttributes;
diff --git a/packages/lucide-vue/tests/lucide-vue.spec.ts b/packages/lucide-vue/tests/lucide-vue.spec.ts
index 53ea689b023..61b15463624 100644
--- a/packages/lucide-vue/tests/lucide-vue.spec.ts
+++ b/packages/lucide-vue/tests/lucide-vue.spec.ts
@@ -1,93 +1,92 @@
 import { describe, it, expect, vi } from 'vitest';
-import { render, fireEvent, cleanup } from '@testing-library/vue'
-import { Smile, Pen, Edit2 } from '../src/lucide-vue'
+import { render, fireEvent, cleanup } from '@testing-library/vue';
+import { Smile, Pen, Edit2 } from '../src/lucide-vue';
 import { afterEach } from 'vitest';
 import { VueClass } from '@vue/test-utils';
 
 describe('Using lucide icon components', () => {
-  afterEach(() => cleanup())
+  afterEach(() => cleanup());
 
   it('should render an component', () => {
-    const {container} = render(Smile as VueClass<any>)
+    const { container } = render(Smile as VueClass<any>);
     expect(container).toMatchSnapshot();
   });
 
   it('should adjust the size, stroke color and stroke width', () => {
-    const {container} = render(Smile as VueClass<any>, {
+    const { container } = render(Smile as VueClass<any>, {
       props: {
         size: 48,
         color: 'red',
-        strokeWidth: 4
-      }
-    })
+        strokeWidth: 4,
+      },
+    });
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    expect(icon.getAttribute('width')).toBe('48')
-    expect(icon.getAttribute('stroke')).toBe('red')
-    expect(icon.getAttribute('stroke-width')).toBe('4')
+    expect(icon.getAttribute('width')).toBe('48');
+    expect(icon.getAttribute('stroke')).toBe('red');
+    expect(icon.getAttribute('stroke-width')).toBe('4');
 
     expect(container).toMatchSnapshot();
   });
 
-
   it('should add a class to the element', () => {
-    const {container} = render(Smile as VueClass<any>, {
+    const { container } = render(Smile as VueClass<any>, {
       attrs: {
-        class: "my-icon"
-      }
-    })
+        class: 'my-icon',
+      },
+    });
 
     expect(container).toMatchSnapshot();
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    expect(icon).toHaveClass('my-icon')
-    expect(icon).toHaveClass('lucide-smile')
-    expect(icon).toHaveClass('lucide')
+    expect(icon).toHaveClass('my-icon');
+    expect(icon).toHaveClass('lucide-smile');
+    expect(icon).toHaveClass('lucide');
   });
 
   it('should add a style attribute to the element', () => {
-    const {container} = render(Smile as VueClass<any>, {
+    const { container } = render(Smile as VueClass<any>, {
       attrs: {
         style: 'position: absolute',
-      }
-    })
+      },
+    });
 
     expect(container).toMatchSnapshot();
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    expect(icon).toHaveStyle({ position: 'absolute' })
+    expect(icon).toHaveStyle({ position: 'absolute' });
   });
 
   it('should call the onClick event', async () => {
-    const onClick = vi.fn()
-    render(Smile  as VueClass<any>, {
+    const onClick = vi.fn();
+    render(Smile as VueClass<any>, {
       listeners: {
-        click: onClick
-      }
-    })
+        click: onClick,
+      },
+    });
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    await fireEvent.click(icon)
+    await fireEvent.click(icon);
 
-    expect(onClick).toHaveBeenCalled()
+    expect(onClick).toHaveBeenCalled();
   });
 
   it('should pass children to the icon slot', () => {
-    const testText = 'Hello World'
-    const template = `<text>${testText}</text>`
+    const testText = 'Hello World';
+    const template = `<text>${testText}</text>`;
     const { getByText, container } = render(Smile as VueClass<any>, {
       slots: {
-        default: { template }
-      }
-    })
+        default: { template },
+      },
+    });
 
-    const textElement = getByText(testText)
+    const textElement = getByText(testText);
 
-    expect(textElement).toBeInTheDocument()
+    expect(textElement).toBeInTheDocument();
     expect(container).toMatchSnapshot();
   });
 
@@ -96,38 +95,38 @@ describe('Using lucide icon components', () => {
       props: {
         size: '48',
         color: 'red',
-        strokeWidth: '4'
-      }
-    })
+        strokeWidth: '4',
+      },
+    });
 
-    const PenIconRenderedHTML = container.innerHTML
+    const PenIconRenderedHTML = container.innerHTML;
 
-    cleanup()
+    cleanup();
 
     const { container: Edit2Container } = render(Edit2 as VueClass<any>, {
       props: {
         size: '48',
         color: 'red',
-        strokeWidth: '4'
-      }
-    })
+        strokeWidth: '4',
+      },
+    });
 
-    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML)
-  })
+    expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML);
+  });
 
   it('should not scale the strokeWidth when absoluteStrokeWidth is set', () => {
     const { getByText, container } = render(Pen as VueClass<any>, {
       props: {
         size: '48',
         color: 'red',
-        absoluteStrokeWidth: true
-      }
-    })
+        absoluteStrokeWidth: true,
+      },
+    });
 
     const [icon] = document.getElementsByClassName('lucide');
 
-    expect(icon.getAttribute('width')).toBe('48')
-    expect(icon.getAttribute('stroke')).toBe('red')
-    expect(icon.getAttribute('stroke-width')).toBe('1')
-  })
+    expect(icon.getAttribute('width')).toBe('48');
+    expect(icon.getAttribute('stroke')).toBe('red');
+    expect(icon.getAttribute('stroke-width')).toBe('1');
+  });
 });
diff --git a/packages/lucide-vue/tsconfig.json b/packages/lucide-vue/tsconfig.json
index e683b6c9113..27a4a97988e 100644
--- a/packages/lucide-vue/tsconfig.json
+++ b/packages/lucide-vue/tsconfig.json
@@ -11,7 +11,7 @@
     "esModuleInterop": true,
     "lib": ["ESNext", "DOM"],
     "skipLibCheck": true,
-    "noEmit": true
+    "noEmit": true,
   },
   "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
 }
diff --git a/packages/lucide-vue/vitest.config.ts b/packages/lucide-vue/vitest.config.ts
index 50a97331777..33e1e069e3b 100644
--- a/packages/lucide-vue/vitest.config.ts
+++ b/packages/lucide-vue/vitest.config.ts
@@ -1,5 +1,5 @@
-import { defineConfig } from 'vitest/config'
-import vue from '@vitejs/plugin-vue2'
+import { defineConfig } from 'vitest/config';
+import vue from '@vitejs/plugin-vue2';
 
 export default defineConfig({
   plugins: [vue()],
diff --git a/packages/lucide/rollup.config.mjs b/packages/lucide/rollup.config.mjs
index 5d77520b8be..2ca645642a9 100644
--- a/packages/lucide/rollup.config.mjs
+++ b/packages/lucide/rollup.config.mjs
@@ -33,30 +33,30 @@ const bundles = [
 
 const configs = bundles
   .map(({ inputs, outputDir, format, minify, preserveModules }) =>
-    inputs.map(input => ({
+    inputs.map((input) => ({
       input,
       plugins: [
         // This is for lucide plugin to replace an argument in createIcons so it is easier to use with UMD.
-        ...(
-          format === 'umd' ? [
-            replace({
-              'icons = {}': 'icons = iconAndAliases',
-              delimiters: ['', ''],
-              preventAssignment: false,
-            }),
-          ] : []
-        ),
-        ...plugins(pkg, minify)
+        ...(format === 'umd'
+          ? [
+              replace({
+                'icons = {}': 'icons = iconAndAliases',
+                delimiters: ['', ''],
+                preventAssignment: false,
+              }),
+            ]
+          : []),
+        ...plugins(pkg, minify),
       ],
       output: {
         name: outputFileName,
         ...(preserveModules
           ? {
-            dir: `${outputDir}/${format}`,
-          }
+              dir: `${outputDir}/${format}`,
+            }
           : {
-            file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
-          }),
+              file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
+            }),
         format,
         sourcemap: true,
         preserveModules,
diff --git a/packages/lucide/src/attributeTypes.ts b/packages/lucide/src/attributeTypes.ts
index 99eced1118b..d64bbed2c2b 100644
--- a/packages/lucide/src/attributeTypes.ts
+++ b/packages/lucide/src/attributeTypes.ts
@@ -10,7 +10,16 @@ interface AriaAttributes {
   'aria-colindex'?: number | undefined;
   'aria-colspan'?: number | undefined;
   'aria-controls'?: string | undefined;
-  'aria-current'?: boolean | 'false' | 'true' | 'page' | 'step' | 'location' | 'date' | 'time' | undefined;
+  'aria-current'?:
+    | boolean
+    | 'false'
+    | 'true'
+    | 'page'
+    | 'step'
+    | 'location'
+    | 'date'
+    | 'time'
+    | undefined;
   'aria-describedby'?: string | undefined;
   'aria-details'?: string | undefined;
   'aria-disabled'?: Booleanish | undefined;
@@ -19,7 +28,16 @@ interface AriaAttributes {
   'aria-expanded'?: Booleanish | undefined;
   'aria-flowto'?: string | undefined;
   'aria-grabbed'?: Booleanish | undefined;
-  'aria-haspopup'?: boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | undefined;
+  'aria-haspopup'?:
+    | boolean
+    | 'false'
+    | 'true'
+    | 'menu'
+    | 'listbox'
+    | 'tree'
+    | 'grid'
+    | 'dialog'
+    | undefined;
   'aria-hidden'?: Booleanish | undefined;
   'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling' | undefined;
   'aria-keyshortcuts'?: string | undefined;
@@ -36,7 +54,18 @@ interface AriaAttributes {
   'aria-posinset'?: number | undefined;
   'aria-pressed'?: boolean | 'false' | 'mixed' | 'true' | undefined;
   'aria-readonly'?: Booleanish | undefined;
-  'aria-relevant'?: 'additions' | 'additions removals' | 'additions text' | 'all' | 'removals' | 'removals additions' | 'removals text' | 'text' | 'text additions' | 'text removals' | undefined;
+  'aria-relevant'?:
+    | 'additions'
+    | 'additions removals'
+    | 'additions text'
+    | 'all'
+    | 'removals'
+    | 'removals additions'
+    | 'removals text'
+    | 'text'
+    | 'text additions'
+    | 'text removals'
+    | undefined;
   'aria-required'?: Booleanish | undefined;
   'aria-roledescription'?: string | undefined;
   'aria-rowcount'?: number | undefined;
diff --git a/packages/lucide/src/createElement.ts b/packages/lucide/src/createElement.ts
index f29d0eab3d1..fcb4a4da3a4 100644
--- a/packages/lucide/src/createElement.ts
+++ b/packages/lucide/src/createElement.ts
@@ -1,5 +1,4 @@
-import { IconNode, IconNodeChild, SVGProps } from "./types";
-
+import { IconNode, IconNodeChild, SVGProps } from './types';
 
 /**
  * Creates a new HTMLElement from icon node
@@ -16,7 +15,7 @@ const createElement = (tag: string, attrs: SVGProps, children: IconNodeChild[] =
   });
 
   if (children.length) {
-    children.forEach(child => {
+    children.forEach((child) => {
       const childElement = createElement(...child);
 
       element.appendChild(childElement);
diff --git a/packages/lucide/src/defaultAttributes.ts b/packages/lucide/src/defaultAttributes.ts
index 5ed81b30b0f..a24d5fdf6c5 100644
--- a/packages/lucide/src/defaultAttributes.ts
+++ b/packages/lucide/src/defaultAttributes.ts
@@ -1,4 +1,4 @@
-import { SVGProps } from "./types";
+import { SVGProps } from './types';
 
 const defaultAttributes: SVGProps = {
   xmlns: 'http://www.w3.org/2000/svg',
@@ -12,4 +12,4 @@ const defaultAttributes: SVGProps = {
   'stroke-linejoin': 'round',
 };
 
-export default defaultAttributes
+export default defaultAttributes;
diff --git a/packages/lucide/src/iconsAndAliases.ts b/packages/lucide/src/iconsAndAliases.ts
index 9ace9e4cedd..098bba46977 100644
--- a/packages/lucide/src/iconsAndAliases.ts
+++ b/packages/lucide/src/iconsAndAliases.ts
@@ -1,2 +1,2 @@
-export * from './icons'
-export * from './aliases'
+export * from './icons';
+export * from './aliases';
diff --git a/packages/lucide/src/lucide.ts b/packages/lucide/src/lucide.ts
index 922a77c81c4..cdd8ec87eec 100644
--- a/packages/lucide/src/lucide.ts
+++ b/packages/lucide/src/lucide.ts
@@ -8,7 +8,7 @@ import * as iconAndAliases from './iconsAndAliases';
 const createIcons = ({ icons = {}, nameAttr = 'data-lucide', attrs = {} } = {}) => {
   if (!Object.values(icons).length) {
     throw new Error(
-      "Please provide an icons object.\nIf you want to use all the icons you can import it like:\n `import { createIcons, icons } from 'lucide';\nlucide.createIcons({icons});`"
+      "Please provide an icons object.\nIf you want to use all the icons you can import it like:\n `import { createIcons, icons } from 'lucide';\nlucide.createIcons({icons});`",
     );
   }
 
@@ -18,7 +18,7 @@ const createIcons = ({ icons = {}, nameAttr = 'data-lucide', attrs = {} } = {})
 
   const elementsToReplace = document.querySelectorAll(`[${nameAttr}]`);
   Array.from(elementsToReplace).forEach((element) =>
-    replaceElement(element, { nameAttr, icons, attrs })
+    replaceElement(element, { nameAttr, icons, attrs }),
   );
 
   /** @todo: remove this block in v1.0 */
@@ -26,10 +26,10 @@ const createIcons = ({ icons = {}, nameAttr = 'data-lucide', attrs = {} } = {})
     const deprecatedElements = document.querySelectorAll('[icon-name]');
     if (deprecatedElements.length > 0) {
       console.warn(
-        '[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide'
+        '[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide',
       );
       Array.from(deprecatedElements).forEach((element) =>
-        replaceElement(element, { nameAttr: 'icon-name', icons, attrs })
+        replaceElement(element, { nameAttr: 'icon-name', icons, attrs }),
       );
     }
   }
diff --git a/packages/lucide/src/replaceElement.ts b/packages/lucide/src/replaceElement.ts
index 6b585bf5a9a..75aabb2e20e 100644
--- a/packages/lucide/src/replaceElement.ts
+++ b/packages/lucide/src/replaceElement.ts
@@ -1,7 +1,7 @@
 import createElement from './createElement';
 import { Icons } from './types';
 
-export type CustomAttrs = { [attr:string]: any }
+export type CustomAttrs = { [attr: string]: any };
 
 /**
  * Get the attributes of an HTML element.
@@ -36,9 +36,7 @@ export const getClassNames = (attrs: Record<string, string> | string): string |
  * @param {array} arrayOfClassnames
  * @returns {string}
  */
-export const combineClassNames = (
-  arrayOfClassnames: (string | Record<string, string>)[]
-) => {
+export const combineClassNames = (arrayOfClassnames: (string | Record<string, string>)[]) => {
   const classNameArray = arrayOfClassnames.flatMap(getClassNames);
 
   return classNameArray
@@ -52,9 +50,9 @@ const toPascalCase = (string: string): string =>
   string.replace(/(\w)(\w*)(_|-|\s*)/g, (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase());
 
 interface ReplaceElementOptions {
-  nameAttr: string
-  icons: Icons,
-  attrs: Record<string, string>
+  nameAttr: string;
+  icons: Icons;
+  attrs: Record<string, string>;
 }
 
 /**
@@ -66,7 +64,7 @@ interface ReplaceElementOptions {
 const replaceElement = (element: Element, { nameAttr, icons, attrs }: ReplaceElementOptions) => {
   const iconName = element.getAttribute(nameAttr);
 
-  if (iconName == null) return
+  if (iconName == null) return;
 
   const ComponentName = toPascalCase(iconName);
 
@@ -92,8 +90,8 @@ const replaceElement = (element: Element, { nameAttr, icons, attrs }: ReplaceEle
 
   if (classNames) {
     Object.assign(iconAttrs, {
-      class: classNames
-    })
+      class: classNames,
+    });
   }
 
   const svgElement = createElement([tag, iconAttrs, children]);
@@ -101,4 +99,4 @@ const replaceElement = (element: Element, { nameAttr, icons, attrs }: ReplaceEle
   return element.parentNode?.replaceChild(svgElement, element);
 };
 
-export default replaceElement
+export default replaceElement;
diff --git a/packages/lucide/src/types.ts b/packages/lucide/src/types.ts
index 6048c93469e..3b040d604d2 100644
--- a/packages/lucide/src/types.ts
+++ b/packages/lucide/src/types.ts
@@ -1,7 +1,6 @@
-
 // className is not supported in svg elements
-export type SVGProps = Record<string, string | number>
+export type SVGProps = Record<string, string | number>;
 
 export type IconNodeChild = readonly [tag: string, attrs: SVGProps];
 export type IconNode = readonly [tag: string, attrs: SVGProps, children?: IconNodeChild[]];
-export type Icons = { [key: string]: IconNode }
+export type Icons = { [key: string]: IconNode };
diff --git a/packages/lucide/tests/lucide.spec.js b/packages/lucide/tests/lucide.spec.js
index b9bc241084d..4d4a263940f 100644
--- a/packages/lucide/tests/lucide.spec.js
+++ b/packages/lucide/tests/lucide.spec.js
@@ -20,12 +20,12 @@ describe('createIcons', () => {
   it('should read elements from DOM and replace it with icons', () => {
     document.body.innerHTML = `<i data-lucide="volume-2"></i>`;
 
-    createIcons({icons});
+    createIcons({ icons });
 
     const svg = getOriginalSvg('volume-2');
 
-    expect(document.body.innerHTML).toBe(svg)
-    expect(document.body.innerHTML).toMatchSnapshot()
+    expect(document.body.innerHTML).toBe(svg);
+    expect(document.body.innerHTML).toMatchSnapshot();
   });
 
   it('should customize the name attribute', () => {
@@ -33,12 +33,12 @@ describe('createIcons', () => {
 
     createIcons({
       icons,
-      nameAttr: 'data-custom-name'
+      nameAttr: 'data-custom-name',
     });
 
     const hasSvg = !!document.querySelector('svg');
 
-    expect(hasSvg).toBeTruthy()
+    expect(hasSvg).toBeTruthy();
   });
 
   it('should add custom attributes', () => {
@@ -58,7 +58,7 @@ describe('createIcons', () => {
       acc[item] = element.getAttribute(item);
 
       return acc;
-    },{})
+    }, {});
 
     expect(document.body.innerHTML).toMatchSnapshot();
 
@@ -69,7 +69,7 @@ describe('createIcons', () => {
     document.body.innerHTML = `<i data-lucide="sun" data-theme-switcher="light"></i>`;
 
     const attrs = {
-      'data-theme-switcher':'light',
+      'data-theme-switcher': 'light',
     };
 
     createIcons({ icons });
@@ -81,7 +81,7 @@ describe('createIcons', () => {
       acc[item] = element.getAttribute(item);
 
       return acc;
-    },{})
+    }, {});
 
     expect(attributesAndValues).toEqual(expect.objectContaining(attrs));
   });
@@ -93,7 +93,7 @@ describe('createIcons', () => {
 
     const svg = getOriginalSvg('grid-3x3', 'grid');
 
-    expect(document.body.innerHTML).toBe(svg)
-    expect(document.body.innerHTML).toMatchSnapshot()
+    expect(document.body.innerHTML).toBe(svg);
+    expect(document.body.innerHTML).toMatchSnapshot();
   });
 });
diff --git a/packages/lucide/tests/replaceElement.spec.js b/packages/lucide/tests/replaceElement.spec.js
index e664f6f8cb3..654b716d715 100644
--- a/packages/lucide/tests/replaceElement.spec.js
+++ b/packages/lucide/tests/replaceElement.spec.js
@@ -25,20 +25,20 @@ describe('getAtts', () => {
 describe('getClassNames', () => {
   it('should returns an array when giving class property of string', () => {
     const elementAttrs = {
-      class: 'item1 item2 item3'
+      class: 'item1 item2 item3',
     };
 
     const attrs = getClassNames(elementAttrs);
-    expect(JSON.stringify(attrs)).toBe(JSON.stringify(['item1','item2','item3']));
+    expect(JSON.stringify(attrs)).toBe(JSON.stringify(['item1', 'item2', 'item3']));
   });
 
   it('should returns an array when givind class property with an array', () => {
     const elementAttrs = {
-      class: ['item1','item2','item3']
+      class: ['item1', 'item2', 'item3'],
     };
 
     const attrs = getClassNames(elementAttrs);
-    expect(JSON.stringify(attrs)).toBe(JSON.stringify(['item1','item2','item3']));
+    expect(JSON.stringify(attrs)).toBe(JSON.stringify(['item1', 'item2', 'item3']));
   });
 });
 
@@ -47,14 +47,14 @@ describe('combineClassNames', () => {
     const arrayOfClassnames = [
       'item',
       {
-        class: ['item1','item2','item3']
+        class: ['item1', 'item2', 'item3'],
       },
       {
-        class: ['item4','item5','item6']
+        class: ['item4', 'item5', 'item6'],
       },
       {
-        class: ['item7','item8','item9']
-      }
+        class: ['item7', 'item8', 'item9'],
+      },
     ];
 
     const combinedClassNames = combineClassNames(arrayOfClassnames);
diff --git a/packages/lucide/tests/setupVitest.js b/packages/lucide/tests/setupVitest.js
index b407e0fd20a..03a0244af39 100644
--- a/packages/lucide/tests/setupVitest.js
+++ b/packages/lucide/tests/setupVitest.js
@@ -1,6 +1,5 @@
-import { expect } from 'vitest'
+import { expect } from 'vitest';
 import '@testing-library/jest-dom/vitest';
-import htmlSerializer from 'jest-serializer-html'
+import htmlSerializer from 'jest-serializer-html';
 
-
-expect.addSnapshotSerializer(htmlSerializer)
+expect.addSnapshotSerializer(htmlSerializer);
diff --git a/packages/lucide/tsconfig.json b/packages/lucide/tsconfig.json
index dac74896960..7fdaedbf61b 100644
--- a/packages/lucide/tsconfig.json
+++ b/packages/lucide/tsconfig.json
@@ -13,5 +13,5 @@
     "resolveJsonModule": true,
     "sourceMap": true,
     "outDir": "./dist",
-  }
+  },
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c55942ce1fd..7644f246fb1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -68,8 +68,8 @@ importers:
         specifier: ^7.1.1
         version: 7.1.1
       prettier:
-        specifier: 3.1.1
-        version: 3.1.1
+        specifier: 3.2.4
+        version: 3.2.4
       semver:
         specifier: ^7.5.4
         version: 7.5.4
@@ -18161,8 +18161,8 @@ packages:
     hasBin: true
     dev: true
 
-  /prettier@3.1.1:
-    resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==}
+  /prettier@3.2.4:
+    resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
     engines: {node: '>=14'}
     hasBin: true
     dev: true
diff --git a/prettier.config.mjs b/prettier.config.mjs
index ca4c7087866..ecdf22fcdd3 100644
--- a/prettier.config.mjs
+++ b/prettier.config.mjs
@@ -3,6 +3,7 @@ const config = {
   singleQuote: true,
   trailingComma: 'all',
   printWidth: 100,
+  singleAttributePerLine: true,
   overrides: [
     {
       files: ['icons/*.json', 'categories/*.json'],
diff --git a/scripts/addMissingIconJsonFiles.mjs b/scripts/addMissingIconJsonFiles.mjs
index c0ac7cfd7fd..910b1fab2b4 100644
--- a/scripts/addMissingIconJsonFiles.mjs
+++ b/scripts/addMissingIconJsonFiles.mjs
@@ -1,5 +1,5 @@
 import path from 'path';
-import {getCurrentDirPath, readAllMetadata, readSvgDirectory, writeFile} from './helpers.mjs';
+import { getCurrentDirPath, readAllMetadata, readSvgDirectory, writeFile } from './helpers.mjs';
 
 const currentDir = getCurrentDirPath(import.meta.url);
 const ICONS_DIR = path.resolve(currentDir, '../icons');
@@ -9,13 +9,17 @@ const svgFiles = readSvgDirectory(ICONS_DIR);
 
 const iconNames = svgFiles.map((icon) => icon.split('.')[0]);
 
-iconNames.forEach(iconName => {
+iconNames.forEach((iconName) => {
   if (typeof icons[iconName] === 'undefined') {
-    const iconContent = JSON.stringify({
-      "$schema": "../icon.schema.json",
-      "tags": [],
-      "categories": []
-    }, null, 2);
+    const iconContent = JSON.stringify(
+      {
+        $schema: '../icon.schema.json',
+        tags: [],
+        categories: [],
+      },
+      null,
+      2,
+    );
     writeFile(iconContent, `${iconName}.json`, path.resolve(currentDir, '..'));
   }
 });
diff --git a/scripts/checkIconsAndCategories.mjs b/scripts/checkIconsAndCategories.mjs
index ff7018b5ccb..39b237e8e8d 100644
--- a/scripts/checkIconsAndCategories.mjs
+++ b/scripts/checkIconsAndCategories.mjs
@@ -1,33 +1,33 @@
 import path from 'path';
 import { readSvgDirectory, getCurrentDirPath, readAllMetadata } from './helpers.mjs';
 
-const currentDir = getCurrentDirPath(import.meta.url)
+const currentDir = getCurrentDirPath(import.meta.url);
 const ICONS_DIR = path.resolve(currentDir, '../icons');
 const icons = readAllMetadata(ICONS_DIR);
 const CATEGORIES_DIR = path.resolve(currentDir, '../categories');
 const categories = readAllMetadata(CATEGORIES_DIR);
 
-console.log('Reading all icons')
+console.log('Reading all icons');
 
 const svgFiles = readSvgDirectory(ICONS_DIR);
-const iconNames = svgFiles.map(icon => icon.split('.')[0]);
+const iconNames = svgFiles.map((icon) => icon.split('.')[0]);
 
 let error = false;
 
-iconNames.forEach(iconName => {
+iconNames.forEach((iconName) => {
   if (typeof icons[iconName] === 'undefined') {
     console.error(`'${iconName}.svg' does not have a matching JSON file.`);
     error = true;
   }
 });
 
-Object.keys(icons).forEach(iconName => {
+Object.keys(icons).forEach((iconName) => {
   const icon = icons[iconName];
   if (iconNames.indexOf(iconName) === -1) {
     console.error(`'${iconName}.svg' does not exist.`);
     error = true;
   }
-  icon.categories.forEach(categoryName => {
+  icon.categories.forEach((categoryName) => {
     if (typeof categories[categoryName] === 'undefined') {
       console.error(`Icon '${iconName}' refers to the non-existing category '${categoryName}'.`);
       error = true;
@@ -35,7 +35,7 @@ Object.keys(icons).forEach(iconName => {
   });
 });
 
-Object.keys(categories).forEach(categoryName => {
+Object.keys(categories).forEach((categoryName) => {
   const category = categories[categoryName];
   if (!category.icon) {
     console.error(`Category '${categoryName}' does not use an icon '${category.icon}'.`);
diff --git a/scripts/generate/generateIcons.mjs b/scripts/generate/generateIcons.mjs
index 30882b8d097..672c2d30bb6 100644
--- a/scripts/generate/generateIcons.mjs
+++ b/scripts/generate/generateIcons.mjs
@@ -1,5 +1,5 @@
 import path from 'path';
-import {getCurrentDirPath, writeFileIfNotExists} from "../helpers.mjs";
+import { getCurrentDirPath, writeFileIfNotExists } from '../helpers.mjs';
 
 const currentDir = getCurrentDirPath(import.meta.url);
 const ICONS_DIR = path.resolve(currentDir, '../../icons');
@@ -29,7 +29,7 @@ const iconJsonTemplate = `{
 }
 `;
 
-iconNames.forEach(iconName => {
+iconNames.forEach((iconName) => {
   writeFileIfNotExists(iconSvgTemplate, `${iconName}.svg`, ICONS_DIR);
   writeFileIfNotExists(iconJsonTemplate, `${iconName}.json`, ICONS_DIR);
 });
diff --git a/scripts/generateChangedIconsCommentMarkup.mjs b/scripts/generateChangedIconsCommentMarkup.mjs
index 179c74fec1c..db44a5b60bc 100644
--- a/scripts/generateChangedIconsCommentMarkup.mjs
+++ b/scripts/generateChangedIconsCommentMarkup.mjs
@@ -17,8 +17,8 @@ const getImageTagsByFiles = (files, getBaseUrl, width) =>
   files
     .map((file) => {
       const svgContent = fs.readFileSync(path.join(process.cwd(), file), 'utf-8');
-      const strippedAttrsSVG = svgContent.replace(/<svg[^>]*>/, '<svg>')
-      const minifiedSvg = minifySvg(strippedAttrsSVG)
+      const strippedAttrsSVG = svgContent.replace(/<svg[^>]*>/, '<svg>');
+      const minifiedSvg = minifySvg(strippedAttrsSVG);
 
       const base64 = Buffer.from(minifiedSvg).toString('base64');
       const url = getBaseUrl(file);
diff --git a/scripts/generateSuperSVG.mjs b/scripts/generateSuperSVG.mjs
index 78b5730f12a..5c0f4f44dbc 100644
--- a/scripts/generateSuperSVG.mjs
+++ b/scripts/generateSuperSVG.mjs
@@ -37,7 +37,10 @@ async function generateSprite(svgs, packageDir) {
   };
 
   const spriteSvg = stringify(spriteSvgObject);
-  const prettifiedSprite = (await prettier.format(spriteSvg, { parser: 'babel' })).replace(/;/g, '');
+  const prettifiedSprite = (await prettier.format(spriteSvg, { parser: 'babel' })).replace(
+    /;/g,
+    '',
+  );
 
   const xmlMeta = `<?xml version="1.0" encoding="utf-8"?>\n`;
 
diff --git a/scripts/helpers.mjs b/scripts/helpers.mjs
index 14ac3a42818..146ac3af58c 100644
--- a/scripts/helpers.mjs
+++ b/scripts/helpers.mjs
@@ -215,10 +215,11 @@ export const shuffle = (array) => {
  * @param {string} string
  * @returns string
  */
-export function minifySvg(string){
-  return string ? string
-    .replace(/\>[\r\n ]+</g, "><")
-    .replace(/(<.*?>)|\s+/g, (m, $1) => $1 || ' ')
-    .trim()
-    : ""
+export function minifySvg(string) {
+  return string
+    ? string
+        .replace(/\>[\r\n ]+</g, '><')
+        .replace(/(<.*?>)|\s+/g, (m, $1) => $1 || ' ')
+        .trim()
+    : '';
 }
diff --git a/scripts/migrateCategoriesToIcons.mjs b/scripts/migrateCategoriesToIcons.mjs
index 99cf9ea6301..30b9e96713a 100644
--- a/scripts/migrateCategoriesToIcons.mjs
+++ b/scripts/migrateCategoriesToIcons.mjs
@@ -2,18 +2,17 @@ import path from 'path';
 import categories from '../categories.json' assert { type: 'json' };
 import { mergeArrays, writeFile, readAllMetadata, getCurrentDirPath } from './helpers.mjs';
 
-const currentDir = getCurrentDirPath(import.meta.url)
+const currentDir = getCurrentDirPath(import.meta.url);
 const ICONS_DIR = path.resolve(currentDir, '../icons');
 const icons = readAllMetadata(ICONS_DIR);
 
-Object.keys(categories).forEach(categoryName => {
-  categories[categoryName].forEach(iconName => {
+Object.keys(categories).forEach((categoryName) => {
+  categories[categoryName].forEach((iconName) => {
     icons[iconName].categories = mergeArrays(icons[iconName].categories, [categoryName]);
   });
 });
 
-Object.keys(icons).forEach(iconName => {
+Object.keys(icons).forEach((iconName) => {
   const iconContent = JSON.stringify(icons[iconName], null, 2);
   writeFile(iconContent, `${iconName}.json`, path.resolve(currentDir, '../icons'));
-})
-
+});
diff --git a/scripts/migrateIconsToCategories.mjs b/scripts/migrateIconsToCategories.mjs
index 86103ff3227..f2bab1d73e7 100644
--- a/scripts/migrateIconsToCategories.mjs
+++ b/scripts/migrateIconsToCategories.mjs
@@ -1,25 +1,24 @@
 import path from 'path';
 import { writeFile, getCurrentDirPath, readAllMetadata } from './helpers.mjs';
 
-const currentDir = getCurrentDirPath(import.meta.url)
+const currentDir = getCurrentDirPath(import.meta.url);
 const ICONS_DIR = path.resolve(currentDir, '../icons');
 const icons = readAllMetadata(ICONS_DIR);
 
 const newCategories = {};
-Object.keys(icons).forEach(iconName => {
-  icons[iconName].categories.forEach(categoryName => {
+Object.keys(icons).forEach((iconName) => {
+  icons[iconName].categories.forEach((categoryName) => {
     newCategories[categoryName] = newCategories[categoryName] || [];
     newCategories[categoryName].push(iconName);
   });
 });
 
-const ordered = Object.keys(newCategories).sort().reduce(
-  (obj, key) => {
+const ordered = Object.keys(newCategories)
+  .sort()
+  .reduce((obj, key) => {
     obj[key] = newCategories[key];
     return obj;
-  },
-  {}
-);
+  }, {});
 
 const categoriesContent = JSON.stringify(ordered, null, 2);
 
diff --git a/scripts/migrateTagsToIcons.mjs b/scripts/migrateTagsToIcons.mjs
index 56ad77ace7f..a632da06b8c 100644
--- a/scripts/migrateTagsToIcons.mjs
+++ b/scripts/migrateTagsToIcons.mjs
@@ -1,21 +1,27 @@
 import path from 'path';
 import tags from '../tags.json' assert { type: 'json' };
-import { readSvgDirectory, readAllMetadata, writeFile, mergeArrays, getCurrentDirPath } from './helpers.mjs';
+import {
+  readSvgDirectory,
+  readAllMetadata,
+  writeFile,
+  mergeArrays,
+  getCurrentDirPath,
+} from './helpers.mjs';
 
-const currentDir = getCurrentDirPath(import.meta.url)
+const currentDir = getCurrentDirPath(import.meta.url);
 const ICONS_DIR = path.resolve(currentDir, '../icons');
 const icons = readAllMetadata(ICONS_DIR);
 const svgFiles = readSvgDirectory(ICONS_DIR);
 
 const iconNames = svgFiles.map((icon) => icon.split('.')[0]);
 
-iconNames.forEach(iconName => {
+iconNames.forEach((iconName) => {
   icons[iconName] = icons[iconName] || {
-    "$schema": "../icon.schema.json",
-    "tags": [],
-    "categories": []
+    $schema: '../icon.schema.json',
+    tags: [],
+    categories: [],
   };
   icons[iconName].tags = mergeArrays(icons[iconName].tags, tags[iconName]);
   const iconContent = JSON.stringify(icons[iconName], null, 2);
   writeFile(iconContent, `${iconName}.json`, path.resolve(currentDir, '../icons'));
-})
+});
diff --git a/scripts/optimizeStagedSvgs.mjs b/scripts/optimizeStagedSvgs.mjs
index 265acdb6c98..f9c719d1492 100644
--- a/scripts/optimizeStagedSvgs.mjs
+++ b/scripts/optimizeStagedSvgs.mjs
@@ -4,7 +4,7 @@ import processSvg from './render/processSvg.mjs';
 const svgFiles = process.argv.slice(2);
 
 svgFiles.forEach(async (svgFile) => {
-  console.log('Optimizing staged SVG file:', svgFile)
+  console.log('Optimizing staged SVG file:', svgFile);
   const content = fs.readFileSync(svgFile);
   const svg = await processSvg(content, svgFile);
   fs.writeFileSync(svgFile, svg, 'utf-8');
diff --git a/scripts/render/processSvg.mjs b/scripts/render/processSvg.mjs
index f404eb3b6de..293dc870497 100644
--- a/scripts/render/processSvg.mjs
+++ b/scripts/render/processSvg.mjs
@@ -1,6 +1,6 @@
-import {optimize} from 'svgo';
+import { optimize } from 'svgo';
 import * as prettier from 'prettier';
-import {parseSync, stringify} from 'svgson';
+import { parseSync, stringify } from 'svgson';
 import DEFAULT_ATTRS from './default-attrs.json' assert { type: 'json' };
 
 /**
@@ -25,8 +25,8 @@ async function optimizeSvg(svg, path) {
         name: 'removeAttrs',
         params: {
           attrs: '(fill|stroke.*)',
-        }
-      }
+        },
+      },
     ],
   });
 
@@ -55,9 +55,7 @@ function processSvg(svg, path) {
   return (
     optimizeSvg(svg, path)
       .then(setAttrs)
-      .then((optimizedSvg) =>
-        prettier.format(optimizedSvg, {parser: 'babel'}),
-      )
+      .then((optimizedSvg) => prettier.format(optimizedSvg, { parser: 'babel' }))
       // remove semicolon inserted by prettier
       // because prettier thinks it's formatting JSX not HTML
       .then((svg) => svg.replace(/;/g, ''))
diff --git a/scripts/writeIconRelatedIcons.mjs b/scripts/writeIconRelatedIcons.mjs
index 6a1c9e69815..0fca01f1911 100644
--- a/scripts/writeIconRelatedIcons.mjs
+++ b/scripts/writeIconRelatedIcons.mjs
@@ -16,7 +16,7 @@ const nameWeight = 5;
 const tagWeight = 4;
 const categoryWeight = 3;
 
-const MAX_RELATED_ICONS = 4 * 17 // grid of 4x17 icons, = 68 icons
+const MAX_RELATED_ICONS = 4 * 17; // grid of 4x17 icons, = 68 icons
 
 const arrayMatches = (a, b) => {
   // let matches = 0;
@@ -26,49 +26,48 @@ const arrayMatches = (a, b) => {
   //   }
   // }
   // return matches;
-  return a.filter(item => b.includes(item)).length;
-}
+  return a.filter((item) => b.includes(item)).length;
+};
 
-const nameParts = (icon) => [icon.name, ...icon.aliases ?? []]
+const nameParts = (icon) =>
+  [icon.name, ...(icon.aliases ?? [])]
     .join('-')
     .split('-')
-    .filter(word => word.length > 2)
+    .filter((word) => word.length > 2);
 
 const getRelatedIcons = (currentIcon, icons) => {
   const iconSimilarity = (item) =>
-    nameWeight * arrayMatches(nameParts(item), nameParts(currentIcon))
-    + categoryWeight * arrayMatches(item.categories, currentIcon.categories)
-    + tagWeight * arrayMatches(item.tags, currentIcon.tags)
-  ;
+    nameWeight * arrayMatches(nameParts(item), nameParts(currentIcon)) +
+    categoryWeight * arrayMatches(item.categories, currentIcon.categories) +
+    tagWeight * arrayMatches(item.tags, currentIcon.tags);
   return icons
-    .filter(i => i.name !== currentIcon.name)
-    .map(icon => ({icon, similarity: iconSimilarity(icon)}))
-    .filter(a => a.similarity > 0) // @todo: maybe require a minimal non-zero similarity
+    .filter((i) => i.name !== currentIcon.name)
+    .map((icon) => ({ icon, similarity: iconSimilarity(icon) }))
+    .filter((a) => a.similarity > 0) // @todo: maybe require a minimal non-zero similarity
     .sort((a, b) => b.similarity - a.similarity)
-    .map(i => i.icon)
-    .slice(0, MAX_RELATED_ICONS)
-    ;
-}
+    .map((i) => i.icon)
+    .slice(0, MAX_RELATED_ICONS);
+};
 
 const iconsMetaDataPromises = svgFiles.map(async (iconName) => {
   // eslint-disable-next-line import/no-dynamic-require, global-require
   const metaData = await import(`../icons/${iconName}`, {
-    assert: { type: 'json' }
+    assert: { type: 'json' },
   });
 
   const name = iconName.replace('.json', '');
 
   return {
     name,
-    ...metaData.default
+    ...metaData.default,
   };
 });
 
 const iconsMetaData = await Promise.all(iconsMetaDataPromises);
 
-const relatedIcons = iconsMetaData.map(icon => {
+const relatedIcons = iconsMetaData.map((icon) => {
   const iconRelatedIcons = getRelatedIcons(icon, iconsMetaData);
-  return [icon.name, iconRelatedIcons.map(i => i.name)];
+  return [icon.name, iconRelatedIcons.map((i) => i.name)];
 });
 
 fs.promises
diff --git a/tools/build-icons/package.json b/tools/build-icons/package.json
index e9ad967e21e..56e70c0cd25 100644
--- a/tools/build-icons/package.json
+++ b/tools/build-icons/package.json
@@ -4,7 +4,7 @@
   "version": "1.0.0",
   "description": "",
   "main": "index.mjs",
-  "type":"module",
+  "type": "module",
   "scripts": {
     "start": "node ./main.mjs"
   },
diff --git a/tools/build-icons/utils/getIconMetaData.mjs b/tools/build-icons/utils/getIconMetaData.mjs
index e1ae610b0f0..2ad8fb4e997 100644
--- a/tools/build-icons/utils/getIconMetaData.mjs
+++ b/tools/build-icons/utils/getIconMetaData.mjs
@@ -5,12 +5,12 @@ async function getIconMetaData(iconDirectory) {
   const iconJsons = readSvgDirectory(iconDirectory, '.json');
   const aliasesEntries = await Promise.all(
     iconJsons.map(async (jsonFile) => {
-      const file = await import( path.join(iconDirectory, jsonFile), { assert: { type: 'json' } });
-      return [path.basename(jsonFile, '.json'), file.default]
-    })
-  )
+      const file = await import(path.join(iconDirectory, jsonFile), { assert: { type: 'json' } });
+      return [path.basename(jsonFile, '.json'), file.default];
+    }),
+  );
 
   return Object.fromEntries(aliasesEntries);
 }
 
-export default getIconMetaData
+export default getIconMetaData;
diff --git a/tsconfig.json b/tsconfig.json
index 887645cc853..292f2263259 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -16,5 +16,5 @@
     "allowSyntheticDefaultImports": true,
     "downlevelIteration": true,
     "sourceMap": true,
-  }
+  },
 }