diff --git a/.lintstagedrc b/.lintstagedrc index 91ccd2c739..551e8daa54 100644 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,4 +1,5 @@ { "*.{ts,tsx}": ["pnpm exec eslint --fix", "bash -c 'pnpm exec tsc --noEmit'"], - "*.{ts,tsx,jsonc,md}": ["pnpm exec prettier --write"] + "*.{ts,tsx,jsonc,md}": ["pnpm exec prettier --write"], + "**/*.svg": "tsx scripts/svgo-optimize.ts" } diff --git a/assets/core/ts/components/icon.ts b/assets/core/ts/components/icon.ts index 0060acbb66..f8d1edc829 100644 --- a/assets/core/ts/components/icon.ts +++ b/assets/core/ts/components/icon.ts @@ -87,12 +87,22 @@ function fetchSVG( return promise; } +let instanceCounter = 0; + +const namespaceSvgIds = (svgContent: string, suffix: string) => { + return svgContent + .replace(/\bid="([a-zA-Z0-9_-]+)"/g, `id="$1${suffix}"`) + .replace(/url\(#([a-zA-Z0-9_-]+)\)/g, `url(#$1${suffix})`) + .replace(/(xlink:href|href)="#([a-zA-Z0-9_-]+)"/g, `$1="#$2${suffix}"`); +}; + export const icon = (props: IconProps) => ({ name: props.name, width: props.width || 16, height: props.height || 16, from: props.from || 'php', ignoreKids: props.ignoreKids || false, + instanceId: `icon-${instanceCounter++}`, async init() { // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -105,8 +115,7 @@ export const icon = (props: IconProps) => ({ } const svg = await fetchSVG(this.name, this.width, this.height, this.from, this.ignoreKids); - - $el.innerHTML = svg; + $el.innerHTML = namespaceSvgIds(svg, `-${this.instanceId}`); }, async updateIcon(newName: string) { @@ -117,7 +126,7 @@ export const icon = (props: IconProps) => ({ $el.innerHTML = createSvg({ width: this.width, height: this.height }); const svg = await fetchSVG(this.name, this.width, this.height, this.from, this.ignoreKids); - $el.innerHTML = svg; + $el.innerHTML = namespaceSvgIds(svg, `-${this.instanceId}`); }, }); diff --git a/assets/icons/active.svg b/assets/icons/active.svg index 3c69d42858..3506261f58 100644 --- a/assets/icons/active.svg +++ b/assets/icons/active.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/add-image.svg b/assets/icons/add-image.svg index 340b2a302b..71578d259f 100644 --- a/assets/icons/add-image.svg +++ b/assets/icons/add-image.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/add.svg b/assets/icons/add.svg index 8ab865f19e..fefedd9815 100644 --- a/assets/icons/add.svg +++ b/assets/icons/add.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/addons.svg b/assets/icons/addons.svg index e7f4f99196..2695b9af51 100644 --- a/assets/icons/addons.svg +++ b/assets/icons/addons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/ai.svg b/assets/icons/ai.svg index eef6137a4a..afc142f32e 100644 --- a/assets/icons/ai.svg +++ b/assets/icons/ai.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/air-delivery.svg b/assets/icons/air-delivery.svg index 65062ce24c..859e25ee68 100644 --- a/assets/icons/air-delivery.svg +++ b/assets/icons/air-delivery.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/alarm.svg b/assets/icons/alarm.svg index ec2546d697..69dbc06a92 100644 --- a/assets/icons/alarm.svg +++ b/assets/icons/alarm.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/alert.svg b/assets/icons/alert.svg index d9d35e31f8..4c62122b73 100644 --- a/assets/icons/alert.svg +++ b/assets/icons/alert.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/all.svg b/assets/icons/all.svg index be8d29f9b2..56dee2951e 100644 --- a/assets/icons/all.svg +++ b/assets/icons/all.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/analytics-fill.svg b/assets/icons/analytics-fill.svg index ad385643d1..9186479851 100644 --- a/assets/icons/analytics-fill.svg +++ b/assets/icons/analytics-fill.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/analytics.svg b/assets/icons/analytics.svg index e26a8ceee8..19637bc5d4 100644 --- a/assets/icons/analytics.svg +++ b/assets/icons/analytics.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/android-phone.svg b/assets/icons/android-phone.svg index 1a4f728806..9b59f1b3bc 100644 --- a/assets/icons/android-phone.svg +++ b/assets/icons/android-phone.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/angles-right.svg b/assets/icons/angles-right.svg index ffc7a02dd9..369d2a6519 100644 --- a/assets/icons/angles-right.svg +++ b/assets/icons/angles-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/animation.svg b/assets/icons/animation.svg index 227c86f50f..e6263c77d8 100644 --- a/assets/icons/animation.svg +++ b/assets/icons/animation.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/announcement-fill.svg b/assets/icons/announcement-fill.svg index 3596a6abb5..5a24ed1d8c 100644 --- a/assets/icons/announcement-fill.svg +++ b/assets/icons/announcement-fill.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/announcement.svg b/assets/icons/announcement.svg index 64f5574711..9c472b9a6d 100644 --- a/assets/icons/announcement.svg +++ b/assets/icons/announcement.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/archive.svg b/assets/icons/archive.svg index 28e1a2593c..984e9830b8 100644 --- a/assets/icons/archive.svg +++ b/assets/icons/archive.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/arrow-down.svg b/assets/icons/arrow-down.svg index 6cd9acf402..7c5d9c80f5 100644 --- a/assets/icons/arrow-down.svg +++ b/assets/icons/arrow-down.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/arrow-left-2.svg b/assets/icons/arrow-left-2.svg index 571a302566..f91c0db25b 100644 --- a/assets/icons/arrow-left-2.svg +++ b/assets/icons/arrow-left-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/arrow-left-alt.svg b/assets/icons/arrow-left-alt.svg index 68dfd95f1b..b974d2961c 100644 --- a/assets/icons/arrow-left-alt.svg +++ b/assets/icons/arrow-left-alt.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/arrow-left.svg b/assets/icons/arrow-left.svg index 401481c5ad..bc373cb6f7 100644 --- a/assets/icons/arrow-left.svg +++ b/assets/icons/arrow-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/arrow-right-2.svg b/assets/icons/arrow-right-2.svg index dbdc314f72..aa0544ec20 100644 --- a/assets/icons/arrow-right-2.svg +++ b/assets/icons/arrow-right-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/arrow-up.svg b/assets/icons/arrow-up.svg index 5816ce1ff2..1587f69fd2 100644 --- a/assets/icons/arrow-up.svg +++ b/assets/icons/arrow-up.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/arrows-in.svg b/assets/icons/arrows-in.svg index 9d4d50842d..d7ba9b7279 100644 --- a/assets/icons/arrows-in.svg +++ b/assets/icons/arrows-in.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/arrows-out.svg b/assets/icons/arrows-out.svg index a7aeca76bf..f50ad6f940 100644 --- a/assets/icons/arrows-out.svg +++ b/assets/icons/arrows-out.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/assignment.svg b/assets/icons/assignment.svg index 8db1d9908e..61882642b3 100644 --- a/assets/icons/assignment.svg +++ b/assets/icons/assignment.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/attach.svg b/assets/icons/attach.svg index ff0e5f73d4..6b06f3ce79 100644 --- a/assets/icons/attach.svg +++ b/assets/icons/attach.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/attachment-line.svg b/assets/icons/attachment-line.svg index 28dbfc8381..7a0664d235 100644 --- a/assets/icons/attachment-line.svg +++ b/assets/icons/attachment-line.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/audience.svg b/assets/icons/audience.svg index c4b4795923..95e8874df2 100644 --- a/assets/icons/audience.svg +++ b/assets/icons/audience.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/audio.svg b/assets/icons/audio.svg index edd86ae2db..ddb4e3d5ab 100644 --- a/assets/icons/audio.svg +++ b/assets/icons/audio.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/avi.svg b/assets/icons/avi.svg index 0f18007b25..4e6a0d98fa 100644 --- a/assets/icons/avi.svg +++ b/assets/icons/avi.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/back.svg b/assets/icons/back.svg index f4c286f94e..47859e147f 100644 --- a/assets/icons/back.svg +++ b/assets/icons/back.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/badge-check.svg b/assets/icons/badge-check.svg index 6129238fde..41e595cde4 100644 --- a/assets/icons/badge-check.svg +++ b/assets/icons/badge-check.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/badge-info.svg b/assets/icons/badge-info.svg index 01fdeaf1cb..119616f0d1 100644 --- a/assets/icons/badge-info.svg +++ b/assets/icons/badge-info.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/badge.svg b/assets/icons/badge.svg index ac505ab555..d5c3efd336 100644 --- a/assets/icons/badge.svg +++ b/assets/icons/badge.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/bar-legend.svg b/assets/icons/bar-legend.svg index 53529883ec..afd102bc58 100644 --- a/assets/icons/bar-legend.svg +++ b/assets/icons/bar-legend.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/bars.svg b/assets/icons/bars.svg index fe8eb5fe8d..fe30132644 100644 --- a/assets/icons/bars.svg +++ b/assets/icons/bars.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/billing.svg b/assets/icons/billing.svg index eaa9dd22ca..78752638c7 100644 --- a/assets/icons/billing.svg +++ b/assets/icons/billing.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/assets/icons/book-2.svg b/assets/icons/book-2.svg index f259ed6356..d4a491ec53 100644 --- a/assets/icons/book-2.svg +++ b/assets/icons/book-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/book.svg b/assets/icons/book.svg index 17abea459b..ab5cc61b6c 100644 --- a/assets/icons/book.svg +++ b/assets/icons/book.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/book_2_fill.svg b/assets/icons/book_2_fill.svg index 267434be3b..2242f7fba2 100644 --- a/assets/icons/book_2_fill.svg +++ b/assets/icons/book_2_fill.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/bookmark-fill.svg b/assets/icons/bookmark-fill.svg index c56a0c70c8..f309ee2da0 100644 --- a/assets/icons/bookmark-fill.svg +++ b/assets/icons/bookmark-fill.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/bookmark.svg b/assets/icons/bookmark.svg index 035c621f1d..4eb18b9afb 100644 --- a/assets/icons/bookmark.svg +++ b/assets/icons/bookmark.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/box-price.svg b/assets/icons/box-price.svg index bda3d10114..1e84162c19 100644 --- a/assets/icons/box-price.svg +++ b/assets/icons/box-price.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/buddy-press.svg b/assets/icons/buddy-press.svg index bfb0a0c15a..f603f49d47 100644 --- a/assets/icons/buddy-press.svg +++ b/assets/icons/buddy-press.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/bulb-2.svg b/assets/icons/bulb-2.svg index 66b728a07a..822db8e550 100644 --- a/assets/icons/bulb-2.svg +++ b/assets/icons/bulb-2.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/bulb-line.svg b/assets/icons/bulb-line.svg index 00ce5eee89..114c8cf4c4 100644 --- a/assets/icons/bulb-line.svg +++ b/assets/icons/bulb-line.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/bulb.svg b/assets/icons/bulb.svg index 0eccc06334..6975c256a9 100644 --- a/assets/icons/bulb.svg +++ b/assets/icons/bulb.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/bundle.svg b/assets/icons/bundle.svg index 4c3f2faf52..94db8e9f11 100644 --- a/assets/icons/bundle.svg +++ b/assets/icons/bundle.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/buy-get-type.svg b/assets/icons/buy-get-type.svg index 7fd1ca6b90..97927e2e93 100644 --- a/assets/icons/buy-get-type.svg +++ b/assets/icons/buy-get-type.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/calendar-2-fill.svg b/assets/icons/calendar-2-fill.svg index 186845cdfc..b775109e89 100644 --- a/assets/icons/calendar-2-fill.svg +++ b/assets/icons/calendar-2-fill.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/calendar-2.svg b/assets/icons/calendar-2.svg index eb5626c2b7..041b752bc4 100644 --- a/assets/icons/calendar-2.svg +++ b/assets/icons/calendar-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/calendar-check.svg b/assets/icons/calendar-check.svg index 9f558dd270..e38abcfbfb 100644 --- a/assets/icons/calendar-check.svg +++ b/assets/icons/calendar-check.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/calendar-line.svg b/assets/icons/calendar-line.svg index b25dd0e54e..ecbd71ea0d 100644 --- a/assets/icons/calendar-line.svg +++ b/assets/icons/calendar-line.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/calendar-lines.svg b/assets/icons/calendar-lines.svg index dbae64b839..0a3e39a4c9 100644 --- a/assets/icons/calendar-lines.svg +++ b/assets/icons/calendar-lines.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/calendar.svg b/assets/icons/calendar.svg index a84e1f906d..efaaa8b59c 100644 --- a/assets/icons/calendar.svg +++ b/assets/icons/calendar.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/call-end.svg b/assets/icons/call-end.svg index 90f44063cb..b9414061e8 100644 --- a/assets/icons/call-end.svg +++ b/assets/icons/call-end.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/cart.svg b/assets/icons/cart.svg index 9baf52f03f..c420c59e62 100644 --- a/assets/icons/cart.svg +++ b/assets/icons/cart.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/categories.svg b/assets/icons/categories.svg index db5e9fee44..b04862844f 100644 --- a/assets/icons/categories.svg +++ b/assets/icons/categories.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/certificate-2.svg b/assets/icons/certificate-2.svg index e9a6f87adb..3f185dcbc0 100644 --- a/assets/icons/certificate-2.svg +++ b/assets/icons/certificate-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/certificate.svg b/assets/icons/certificate.svg index aab2ce2bf2..0b888b5401 100644 --- a/assets/icons/certificate.svg +++ b/assets/icons/certificate.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/certificate_2_fill.svg b/assets/icons/certificate_2_fill.svg index 391680462a..2eba09cc84 100644 --- a/assets/icons/certificate_2_fill.svg +++ b/assets/icons/certificate_2_fill.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/change.svg b/assets/icons/change.svg index 64c80e3a99..b6064408b5 100644 --- a/assets/icons/change.svg +++ b/assets/icons/change.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/check-2.svg b/assets/icons/check-2.svg index ecd4996ea4..a31ac7d18e 100644 --- a/assets/icons/check-2.svg +++ b/assets/icons/check-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/check-filled-white.svg b/assets/icons/check-filled-white.svg index d464ba5c43..17ea90f1e9 100644 --- a/assets/icons/check-filled-white.svg +++ b/assets/icons/check-filled-white.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/check-filled.svg b/assets/icons/check-filled.svg index d575679fd9..8caf0d946b 100644 --- a/assets/icons/check-filled.svg +++ b/assets/icons/check-filled.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/check-mark.svg b/assets/icons/check-mark.svg index 4516c369f2..b1476b2984 100644 --- a/assets/icons/check-mark.svg +++ b/assets/icons/check-mark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/check-square-filled.svg b/assets/icons/check-square-filled.svg index d6e64472cc..647b4c378f 100644 --- a/assets/icons/check-square-filled.svg +++ b/assets/icons/check-square-filled.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/check-square.svg b/assets/icons/check-square.svg index f1e134e309..7d3f67902a 100644 --- a/assets/icons/check-square.svg +++ b/assets/icons/check-square.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/check-stroke.svg b/assets/icons/check-stroke.svg index 33de2011a0..9532ed0bb1 100644 --- a/assets/icons/check-stroke.svg +++ b/assets/icons/check-stroke.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/check.svg b/assets/icons/check.svg index ff78d4c073..dcc4a0f8c3 100644 --- a/assets/icons/check.svg +++ b/assets/icons/check.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/chevron-down-2.svg b/assets/icons/chevron-down-2.svg index 48b44a7f82..0c62551e83 100644 --- a/assets/icons/chevron-down-2.svg +++ b/assets/icons/chevron-down-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/chevron-down.svg b/assets/icons/chevron-down.svg index 1eb5a3ee1f..7fe91b6b3a 100644 --- a/assets/icons/chevron-down.svg +++ b/assets/icons/chevron-down.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/chevron-left-2.svg b/assets/icons/chevron-left-2.svg index 2c98bb6512..bd08d87099 100644 --- a/assets/icons/chevron-left-2.svg +++ b/assets/icons/chevron-left-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/chevron-left.svg b/assets/icons/chevron-left.svg index 9f104d3207..ed90037a0b 100644 --- a/assets/icons/chevron-left.svg +++ b/assets/icons/chevron-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/chevron-right-2.svg b/assets/icons/chevron-right-2.svg index 1dae1c42d7..eadbda5407 100644 --- a/assets/icons/chevron-right-2.svg +++ b/assets/icons/chevron-right-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/chevron-right.svg b/assets/icons/chevron-right.svg index 3515fbc2d0..10177bdc33 100644 --- a/assets/icons/chevron-right.svg +++ b/assets/icons/chevron-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/chevron-up-2.svg b/assets/icons/chevron-up-2.svg index 0160f6d77e..55b93d7809 100644 --- a/assets/icons/chevron-up-2.svg +++ b/assets/icons/chevron-up-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/chevron-up.svg b/assets/icons/chevron-up.svg index b99fae8eef..8b5e7b271c 100644 --- a/assets/icons/chevron-up.svg +++ b/assets/icons/chevron-up.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/circled-plus.svg b/assets/icons/circled-plus.svg index 3c29d2c2bd..a44b121328 100644 --- a/assets/icons/circled-plus.svg +++ b/assets/icons/circled-plus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/circum-lock.svg b/assets/icons/circum-lock.svg index bfa922f4a5..01538b1587 100644 --- a/assets/icons/circum-lock.svg +++ b/assets/icons/circum-lock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/clock-2.svg b/assets/icons/clock-2.svg index 98b9f3d4f3..a19f98ebca 100644 --- a/assets/icons/clock-2.svg +++ b/assets/icons/clock-2.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/clock-frame.svg b/assets/icons/clock-frame.svg index 0e1cd6bdc5..3cd97b34d3 100644 --- a/assets/icons/clock-frame.svg +++ b/assets/icons/clock-frame.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/clock.svg b/assets/icons/clock.svg index 269249d40d..15f43ce673 100644 --- a/assets/icons/clock.svg +++ b/assets/icons/clock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/coding.svg b/assets/icons/coding.svg index f7c07a512b..a9e43354ff 100644 --- a/assets/icons/coding.svg +++ b/assets/icons/coding.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/collapsed.svg b/assets/icons/collapsed.svg index 15ffca205f..cb33d74ea3 100644 --- a/assets/icons/collapsed.svg +++ b/assets/icons/collapsed.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/color-option.svg b/assets/icons/color-option.svg index 9b6f32cac9..da0ed7cb37 100644 --- a/assets/icons/color-option.svg +++ b/assets/icons/color-option.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/command.svg b/assets/icons/command.svg index b57fcac054..6c2ba28c21 100644 --- a/assets/icons/command.svg +++ b/assets/icons/command.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/comments.svg b/assets/icons/comments.svg index 5e56dbb9e7..fa7697e135 100644 --- a/assets/icons/comments.svg +++ b/assets/icons/comments.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/commission.svg b/assets/icons/commission.svg index 1b3fb72e59..2b4a06d000 100644 --- a/assets/icons/commission.svg +++ b/assets/icons/commission.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/completed-circle.svg b/assets/icons/completed-circle.svg index d02c9d228c..7772a7ec11 100644 --- a/assets/icons/completed-circle.svg +++ b/assets/icons/completed-circle.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/completed-colorize.svg b/assets/icons/completed-colorize.svg index 1b5cb9a884..5dc84c8609 100644 --- a/assets/icons/completed-colorize.svg +++ b/assets/icons/completed-colorize.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/completed-fill.svg b/assets/icons/completed-fill.svg index 1b3f900eeb..3fc51c71a2 100644 --- a/assets/icons/completed-fill.svg +++ b/assets/icons/completed-fill.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/completed.svg b/assets/icons/completed.svg index 9e0d031dfa..5567e01ec4 100644 --- a/assets/icons/completed.svg +++ b/assets/icons/completed.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/compress.svg b/assets/icons/compress.svg index ba11f6564e..0c1476dfee 100644 --- a/assets/icons/compress.svg +++ b/assets/icons/compress.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/confetti.svg b/assets/icons/confetti.svg index 655c911bea..6780679a22 100644 --- a/assets/icons/confetti.svg +++ b/assets/icons/confetti.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/content-bank.svg b/assets/icons/content-bank.svg index b8dd59c40e..ddfa6565a2 100644 --- a/assets/icons/content-bank.svg +++ b/assets/icons/content-bank.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/content-drip.svg b/assets/icons/content-drip.svg index 50b74ef674..52b13f2421 100644 --- a/assets/icons/content-drip.svg +++ b/assets/icons/content-drip.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/contrast.svg b/assets/icons/contrast.svg index 98b5e43620..5e2ea24e22 100644 --- a/assets/icons/contrast.svg +++ b/assets/icons/contrast.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/copy-2.svg b/assets/icons/copy-2.svg index d66532b8e5..b2a8de8f23 100644 --- a/assets/icons/copy-2.svg +++ b/assets/icons/copy-2.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/copy-paste.svg b/assets/icons/copy-paste.svg index 4deeecddb5..bcf687f6c0 100644 --- a/assets/icons/copy-paste.svg +++ b/assets/icons/copy-paste.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/copy.svg b/assets/icons/copy.svg index b0c66af9a5..c15d1f532e 100644 --- a/assets/icons/copy.svg +++ b/assets/icons/copy.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/coupon.svg b/assets/icons/coupon.svg index 71d9be5280..9d8f599c11 100644 --- a/assets/icons/coupon.svg +++ b/assets/icons/coupon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/course.svg b/assets/icons/course.svg index 8ae60bd585..aa21ff1221 100644 --- a/assets/icons/course.svg +++ b/assets/icons/course.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/courses-fill.svg b/assets/icons/courses-fill.svg index 0e7de1acd0..708f50ff29 100644 --- a/assets/icons/courses-fill.svg +++ b/assets/icons/courses-fill.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/courses.svg b/assets/icons/courses.svg index 35d6868493..fb833b53f7 100644 --- a/assets/icons/courses.svg +++ b/assets/icons/courses.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/cross-2.svg b/assets/icons/cross-2.svg index 6f5cbdaad0..24272f484b 100644 --- a/assets/icons/cross-2.svg +++ b/assets/icons/cross-2.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/cross-circle-line.svg b/assets/icons/cross-circle-line.svg index fe599b6641..9558d419bb 100644 --- a/assets/icons/cross-circle-line.svg +++ b/assets/icons/cross-circle-line.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/cross-circle.svg b/assets/icons/cross-circle.svg index a102faf237..651569e7b0 100644 --- a/assets/icons/cross-circle.svg +++ b/assets/icons/cross-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/cross.svg b/assets/icons/cross.svg index e2e1a03151..d2cd9a6b4a 100644 --- a/assets/icons/cross.svg +++ b/assets/icons/cross.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/crown-outlined.svg b/assets/icons/crown-outlined.svg index c978a4fba3..129f1eda11 100644 --- a/assets/icons/crown-outlined.svg +++ b/assets/icons/crown-outlined.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/crown-rounded-small.svg b/assets/icons/crown-rounded-small.svg index 20b9f3c8bb..94339a2b71 100644 --- a/assets/icons/crown-rounded-small.svg +++ b/assets/icons/crown-rounded-small.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/crown-rounded.svg b/assets/icons/crown-rounded.svg index a137d21130..13b748c056 100644 --- a/assets/icons/crown-rounded.svg +++ b/assets/icons/crown-rounded.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/crown.svg b/assets/icons/crown.svg index 43f4cf66b3..3b915f65e4 100644 --- a/assets/icons/crown.svg +++ b/assets/icons/crown.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/css.svg b/assets/icons/css.svg index 3a0c16d50a..8721a65942 100644 --- a/assets/icons/css.svg +++ b/assets/icons/css.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/csv.svg b/assets/icons/csv.svg index 3e192c4aaf..e965155775 100644 --- a/assets/icons/csv.svg +++ b/assets/icons/csv.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/currency.svg b/assets/icons/currency.svg index db1aa9335f..d8ff83131f 100644 --- a/assets/icons/currency.svg +++ b/assets/icons/currency.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/dbf.svg b/assets/icons/dbf.svg index 8a0b06094b..34dfa3dc02 100644 --- a/assets/icons/dbf.svg +++ b/assets/icons/dbf.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/delete-2.svg b/assets/icons/delete-2.svg index b46422e4b7..d2e954c1c6 100644 --- a/assets/icons/delete-2.svg +++ b/assets/icons/delete-2.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/delete.svg b/assets/icons/delete.svg index 2702798ed1..60bb8aa0f4 100644 --- a/assets/icons/delete.svg +++ b/assets/icons/delete.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/devices.svg b/assets/icons/devices.svg index f6dbb67f5c..72dc263aa3 100644 --- a/assets/icons/devices.svg +++ b/assets/icons/devices.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/discount-type.svg b/assets/icons/discount-type.svg index 18b0a04e69..69a0fd9da0 100644 --- a/assets/icons/discount-type.svg +++ b/assets/icons/discount-type.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/divi-colorized.svg b/assets/icons/divi-colorized.svg index 79e0b34e22..77ef4ed8bc 100644 --- a/assets/icons/divi-colorized.svg +++ b/assets/icons/divi-colorized.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/doc.svg b/assets/icons/doc.svg index ad47ae88a1..644b055c3e 100644 --- a/assets/icons/doc.svg +++ b/assets/icons/doc.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/document.svg b/assets/icons/document.svg index cd4f56eaa1..c95dac330a 100644 --- a/assets/icons/document.svg +++ b/assets/icons/document.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/dollar-recurring.svg b/assets/icons/dollar-recurring.svg index d7cb4d532d..83abb7adcb 100644 --- a/assets/icons/dollar-recurring.svg +++ b/assets/icons/dollar-recurring.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/dollar.svg b/assets/icons/dollar.svg index c54f8d2792..38fa22553e 100644 --- a/assets/icons/dollar.svg +++ b/assets/icons/dollar.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/dot.svg b/assets/icons/dot.svg index 1fd14ee6d8..d544a37a52 100644 --- a/assets/icons/dot.svg +++ b/assets/icons/dot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/download-2.svg b/assets/icons/download-2.svg index b05237b423..7e6b222c1d 100644 --- a/assets/icons/download-2.svg +++ b/assets/icons/download-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/download-3.svg b/assets/icons/download-3.svg index 8995e7f1ba..b55767e641 100644 --- a/assets/icons/download-3.svg +++ b/assets/icons/download-3.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/download-colorize.svg b/assets/icons/download-colorize.svg index b63916e869..a418fc4fe0 100644 --- a/assets/icons/download-colorize.svg +++ b/assets/icons/download-colorize.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/download.svg b/assets/icons/download.svg index f6fb1f7312..9d4ef89385 100644 --- a/assets/icons/download.svg +++ b/assets/icons/download.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/drag-vertical.svg b/assets/icons/drag-vertical.svg index 50e44aba91..e02f33c828 100644 --- a/assets/icons/drag-vertical.svg +++ b/assets/icons/drag-vertical.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/drag.svg b/assets/icons/drag.svg index bc050efe2c..00744648a7 100644 --- a/assets/icons/drag.svg +++ b/assets/icons/drag.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/droip-colorized.svg b/assets/icons/droip-colorized.svg index 8c83c4b847..c1adb0d3ec 100644 --- a/assets/icons/droip-colorized.svg +++ b/assets/icons/droip-colorized.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/droip.svg b/assets/icons/droip.svg index 12c9f604e8..ba059ab515 100644 --- a/assets/icons/droip.svg +++ b/assets/icons/droip.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/drop.svg b/assets/icons/drop.svg index c81c432612..edd54a1ac7 100644 --- a/assets/icons/drop.svg +++ b/assets/icons/drop.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/duplicate.svg b/assets/icons/duplicate.svg index 0415d03c02..11aef8161c 100644 --- a/assets/icons/duplicate.svg +++ b/assets/icons/duplicate.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/dwg.svg b/assets/icons/dwg.svg index 6868bc372e..563a2a1327 100644 --- a/assets/icons/dwg.svg +++ b/assets/icons/dwg.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/earning-fill.svg b/assets/icons/earning-fill.svg index 2e6f69614b..cd487cb8b5 100644 --- a/assets/icons/earning-fill.svg +++ b/assets/icons/earning-fill.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/earning.svg b/assets/icons/earning.svg index 25b12277cd..f27b7f01eb 100644 --- a/assets/icons/earning.svg +++ b/assets/icons/earning.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/edit-2.svg b/assets/icons/edit-2.svg index e9e11aa45d..ad3585091c 100644 --- a/assets/icons/edit-2.svg +++ b/assets/icons/edit-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/edit.svg b/assets/icons/edit.svg index 4c33270d6a..731d1a9908 100644 --- a/assets/icons/edit.svg +++ b/assets/icons/edit.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/elementor-colorized.svg b/assets/icons/elementor-colorized.svg index 70756efae7..b1a945fb90 100644 --- a/assets/icons/elementor-colorized.svg +++ b/assets/icons/elementor-colorized.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/ellipses.svg b/assets/icons/ellipses.svg index 72e6daa072..11c7f380ce 100644 --- a/assets/icons/ellipses.svg +++ b/assets/icons/ellipses.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/email-notification.svg b/assets/icons/email-notification.svg index 507ccf6209..85233288f7 100644 --- a/assets/icons/email-notification.svg +++ b/assets/icons/email-notification.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/email.svg b/assets/icons/email.svg index 59da140c8b..52954d7a88 100644 --- a/assets/icons/email.svg +++ b/assets/icons/email.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/energy.svg b/assets/icons/energy.svg index 0f59b013fc..b39080e3ce 100644 --- a/assets/icons/energy.svg +++ b/assets/icons/energy.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/enrolled.svg b/assets/icons/enrolled.svg index 55572c78ae..471b408a4b 100644 --- a/assets/icons/enrolled.svg +++ b/assets/icons/enrolled.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/enter.svg b/assets/icons/enter.svg index 4c6e4f08d8..ffdbeb5ccb 100644 --- a/assets/icons/enter.svg +++ b/assets/icons/enter.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/eraser.svg b/assets/icons/eraser.svg index 95a429dd7f..96a7c6a9ba 100644 --- a/assets/icons/eraser.svg +++ b/assets/icons/eraser.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/exe.svg b/assets/icons/exe.svg index 8086bad5f5..188334873f 100644 --- a/assets/icons/exe.svg +++ b/assets/icons/exe.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/expand.svg b/assets/icons/expand.svg index 962f8f19f5..21108304f3 100644 --- a/assets/icons/expand.svg +++ b/assets/icons/expand.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/explore-fill.svg b/assets/icons/explore-fill.svg index e5e71effdd..357fc6cc0b 100644 --- a/assets/icons/explore-fill.svg +++ b/assets/icons/explore-fill.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/explore.svg b/assets/icons/explore.svg index f5c3894fff..33da0cf315 100644 --- a/assets/icons/explore.svg +++ b/assets/icons/explore.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/export.svg b/assets/icons/export.svg index 7140b86052..8e601f1ddc 100644 --- a/assets/icons/export.svg +++ b/assets/icons/export.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/eye-line.svg b/assets/icons/eye-line.svg index 9c4d7d643b..1480195b1f 100644 --- a/assets/icons/eye-line.svg +++ b/assets/icons/eye-line.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/eye-off.svg b/assets/icons/eye-off.svg index 81db8ef721..2dd40c2022 100644 --- a/assets/icons/eye-off.svg +++ b/assets/icons/eye-off.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/eye.svg b/assets/icons/eye.svg index 43d3c0dde9..5d60d04e3a 100644 --- a/assets/icons/eye.svg +++ b/assets/icons/eye.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/facebook.svg b/assets/icons/facebook.svg index 060e4d1d45..1b3c1b9e82 100644 --- a/assets/icons/facebook.svg +++ b/assets/icons/facebook.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/feather.svg b/assets/icons/feather.svg index f7620783d6..a7769461da 100644 --- a/assets/icons/feather.svg +++ b/assets/icons/feather.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/fees.svg b/assets/icons/fees.svg index 2a329397dd..16d20b8dd5 100644 --- a/assets/icons/fees.svg +++ b/assets/icons/fees.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/file-attachement.svg b/assets/icons/file-attachement.svg index 2b4da3f1bb..78700ec472 100644 --- a/assets/icons/file-attachement.svg +++ b/assets/icons/file-attachement.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/file.svg b/assets/icons/file.svg index b8545ef050..aa79ff6045 100644 --- a/assets/icons/file.svg +++ b/assets/icons/file.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/filter-2.svg b/assets/icons/filter-2.svg index 88f879d3d0..d647f30b48 100644 --- a/assets/icons/filter-2.svg +++ b/assets/icons/filter-2.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/filter.svg b/assets/icons/filter.svg index 8386b3018c..41f4b9cb76 100644 --- a/assets/icons/filter.svg +++ b/assets/icons/filter.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/fire-disabled.svg b/assets/icons/fire-disabled.svg index 29b8ca401d..0667838c70 100644 --- a/assets/icons/fire-disabled.svg +++ b/assets/icons/fire-disabled.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/fla.svg b/assets/icons/fla.svg index 26d4650ac7..6c8279ab4d 100644 --- a/assets/icons/fla.svg +++ b/assets/icons/fla.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/font.svg b/assets/icons/font.svg index ecc52bc6c9..8f79a5e229 100644 --- a/assets/icons/font.svg +++ b/assets/icons/font.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/free-shipping-type.svg b/assets/icons/free-shipping-type.svg index 82d735ba4e..dd29398e6e 100644 --- a/assets/icons/free-shipping-type.svg +++ b/assets/icons/free-shipping-type.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/gift-card.svg b/assets/icons/gift-card.svg index 219502ef57..89c2b65653 100644 --- a/assets/icons/gift-card.svg +++ b/assets/icons/gift-card.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/gift.svg b/assets/icons/gift.svg index 248b334a9a..2e375ae066 100644 --- a/assets/icons/gift.svg +++ b/assets/icons/gift.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/github.svg b/assets/icons/github.svg index b897e0c219..65e587ac2c 100644 --- a/assets/icons/github.svg +++ b/assets/icons/github.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/globe.svg b/assets/icons/globe.svg index 19507171a3..7b16c6d1a1 100644 --- a/assets/icons/globe.svg +++ b/assets/icons/globe.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/google-calender-colorize.svg b/assets/icons/google-calender-colorize.svg index a5ae81bc3f..0fd067bf75 100644 --- a/assets/icons/google-calender-colorize.svg +++ b/assets/icons/google-calender-colorize.svg @@ -1,18 +1 @@ - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/google-meet-colorize.svg b/assets/icons/google-meet-colorize.svg index 763437298e..e48b8d71a4 100644 --- a/assets/icons/google-meet-colorize.svg +++ b/assets/icons/google-meet-colorize.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/google-meet.svg b/assets/icons/google-meet.svg index 792a6a1775..a7ee40325b 100644 --- a/assets/icons/google-meet.svg +++ b/assets/icons/google-meet.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/grab-handle.svg b/assets/icons/grab-handle.svg index 97f95492b6..e4df84b36d 100644 --- a/assets/icons/grab-handle.svg +++ b/assets/icons/grab-handle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/graph-marker-correct.svg b/assets/icons/graph-marker-correct.svg index e30b910e76..0e9dccf06d 100644 --- a/assets/icons/graph-marker-correct.svg +++ b/assets/icons/graph-marker-correct.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/graph-marker-hover.svg b/assets/icons/graph-marker-hover.svg index 068f402d3d..a4750082fc 100644 --- a/assets/icons/graph-marker-hover.svg +++ b/assets/icons/graph-marker-hover.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/graph-marker-selected.svg b/assets/icons/graph-marker-selected.svg index 7c3e01ead1..71c8b0704f 100644 --- a/assets/icons/graph-marker-selected.svg +++ b/assets/icons/graph-marker-selected.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/graph-marker-wrong.svg b/assets/icons/graph-marker-wrong.svg index c6d2e5bc93..4f40eb00a2 100644 --- a/assets/icons/graph-marker-wrong.svg +++ b/assets/icons/graph-marker-wrong.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/gutenberg-colorized.svg b/assets/icons/gutenberg-colorized.svg index 560e29f786..b6d8529060 100644 --- a/assets/icons/gutenberg-colorized.svg +++ b/assets/icons/gutenberg-colorized.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/hand-coin.svg b/assets/icons/hand-coin.svg index d2334ff260..864e28649c 100644 --- a/assets/icons/hand-coin.svg +++ b/assets/icons/hand-coin.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/hand-swipe-right.svg b/assets/icons/hand-swipe-right.svg index ef2b599369..53100dab2c 100644 --- a/assets/icons/hand-swipe-right.svg +++ b/assets/icons/hand-swipe-right.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/happy.svg b/assets/icons/happy.svg index 366a3082c5..0670d7b03c 100644 --- a/assets/icons/happy.svg +++ b/assets/icons/happy.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/heart.svg b/assets/icons/heart.svg index d8cbafb6c5..3d91d77f73 100644 --- a/assets/icons/heart.svg +++ b/assets/icons/heart.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/highlighter.svg b/assets/icons/highlighter.svg index 666f9caf37..5b65bf1e6c 100644 --- a/assets/icons/highlighter.svg +++ b/assets/icons/highlighter.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/history.svg b/assets/icons/history.svg index aa4b00b29c..ee0ee840a9 100644 --- a/assets/icons/history.svg +++ b/assets/icons/history.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/home-fill.svg b/assets/icons/home-fill.svg index d2754de927..5a5e01171e 100644 --- a/assets/icons/home-fill.svg +++ b/assets/icons/home-fill.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/home.svg b/assets/icons/home.svg index ec8d26c9a1..e949111387 100644 --- a/assets/icons/home.svg +++ b/assets/icons/home.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/html.svg b/assets/icons/html.svg index 45c82709a9..56acf0591b 100644 --- a/assets/icons/html.svg +++ b/assets/icons/html.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/image-plus.svg b/assets/icons/image-plus.svg index 8184faaf17..ab542e3622 100644 --- a/assets/icons/image-plus.svg +++ b/assets/icons/image-plus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/image-preview-line.svg b/assets/icons/image-preview-line.svg index aac605e3f1..ef7f278ecb 100644 --- a/assets/icons/image-preview-line.svg +++ b/assets/icons/image-preview-line.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/image-preview.svg b/assets/icons/image-preview.svg index 37b4979c9c..a767558d28 100644 --- a/assets/icons/image-preview.svg +++ b/assets/icons/image-preview.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/image.svg b/assets/icons/image.svg index 9d78289362..59e9f69aa8 100644 --- a/assets/icons/image.svg +++ b/assets/icons/image.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/import-colorized.svg b/assets/icons/import-colorized.svg index 557ba25759..8ff8cb7edc 100644 --- a/assets/icons/import-colorized.svg +++ b/assets/icons/import-colorized.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/import.svg b/assets/icons/import.svg index d87a967dd2..43116b70fd 100644 --- a/assets/icons/import.svg +++ b/assets/icons/import.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/inactive.svg b/assets/icons/inactive.svg index c6812460af..acab214fc2 100644 --- a/assets/icons/inactive.svg +++ b/assets/icons/inactive.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/info-2.svg b/assets/icons/info-2.svg index 723fd590c0..1e628f315b 100644 --- a/assets/icons/info-2.svg +++ b/assets/icons/info-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/info-colorize.svg b/assets/icons/info-colorize.svg index 1e7770ca49..690693cdaa 100644 --- a/assets/icons/info-colorize.svg +++ b/assets/icons/info-colorize.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/info-fill.svg b/assets/icons/info-fill.svg index 0ba44fe884..2a95638b10 100644 --- a/assets/icons/info-fill.svg +++ b/assets/icons/info-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/info-octagon-fill.svg b/assets/icons/info-octagon-fill.svg index 94d69821a3..1162cef9dc 100644 --- a/assets/icons/info-octagon-fill.svg +++ b/assets/icons/info-octagon-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/info-octagon.svg b/assets/icons/info-octagon.svg index 791b5606b4..11c1514179 100644 --- a/assets/icons/info-octagon.svg +++ b/assets/icons/info-octagon.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/info.svg b/assets/icons/info.svg index ab787f229b..5bdacf549f 100644 --- a/assets/icons/info.svg +++ b/assets/icons/info.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/instructor.svg b/assets/icons/instructor.svg index 0ba4525145..18e862cedb 100644 --- a/assets/icons/instructor.svg +++ b/assets/icons/instructor.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/interactive-quiz.svg b/assets/icons/interactive-quiz.svg index eee2db1395..a6b92865dc 100644 --- a/assets/icons/interactive-quiz.svg +++ b/assets/icons/interactive-quiz.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/ios-phone.svg b/assets/icons/ios-phone.svg index de8ecede46..f4eb7efb2a 100644 --- a/assets/icons/ios-phone.svg +++ b/assets/icons/ios-phone.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/ipad-tablet.svg b/assets/icons/ipad-tablet.svg index 77e088d7b2..b94152c0d4 100644 --- a/assets/icons/ipad-tablet.svg +++ b/assets/icons/ipad-tablet.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/iso.svg b/assets/icons/iso.svg index 95e2659a4a..7d1c37f568 100644 --- a/assets/icons/iso.svg +++ b/assets/icons/iso.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/javascript.svg b/assets/icons/javascript.svg index c1aa1a1079..6164a50fbf 100644 --- a/assets/icons/javascript.svg +++ b/assets/icons/javascript.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/jpg.svg b/assets/icons/jpg.svg index dae2f856aa..4917935d3b 100644 --- a/assets/icons/jpg.svg +++ b/assets/icons/jpg.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/json-file.svg b/assets/icons/json-file.svg index 81b4d8fa32..d5ab2b8aee 100644 --- a/assets/icons/json-file.svg +++ b/assets/icons/json-file.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/json.svg b/assets/icons/json.svg index 528f9c6961..d08f348940 100644 --- a/assets/icons/json.svg +++ b/assets/icons/json.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/key.svg b/assets/icons/key.svg index 247a9ac7fc..a80e74827e 100644 --- a/assets/icons/key.svg +++ b/assets/icons/key.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/all.svg b/assets/icons/kids/all.svg index 4c6b7216bf..2aec8ee6f6 100644 --- a/assets/icons/kids/all.svg +++ b/assets/icons/kids/all.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/kids/billing.svg b/assets/icons/kids/billing.svg index 8e928b2bd9..e3b21074be 100644 --- a/assets/icons/kids/billing.svg +++ b/assets/icons/kids/billing.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/bundle.svg b/assets/icons/kids/bundle.svg index de261386b1..150a16192b 100644 --- a/assets/icons/kids/bundle.svg +++ b/assets/icons/kids/bundle.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/calendar-2.svg b/assets/icons/kids/calendar-2.svg index cc5949542c..c28017ccf5 100644 --- a/assets/icons/kids/calendar-2.svg +++ b/assets/icons/kids/calendar-2.svg @@ -1,39 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/calendar.svg b/assets/icons/kids/calendar.svg index 56a7f4edcd..af57b16014 100644 --- a/assets/icons/kids/calendar.svg +++ b/assets/icons/kids/calendar.svg @@ -1,39 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/call-end.svg b/assets/icons/kids/call-end.svg index 3d4a57c719..9f863980f7 100644 --- a/assets/icons/kids/call-end.svg +++ b/assets/icons/kids/call-end.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/categories.svg b/assets/icons/kids/categories.svg index 16e1cb3c62..1d8dcbe703 100644 --- a/assets/icons/kids/categories.svg +++ b/assets/icons/kids/categories.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/certificate-2.svg b/assets/icons/kids/certificate-2.svg index 5373e378a7..c65267347b 100644 --- a/assets/icons/kids/certificate-2.svg +++ b/assets/icons/kids/certificate-2.svg @@ -1,29 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/clock-2.svg b/assets/icons/kids/clock-2.svg index 5fb88685fb..78792c9d6e 100644 --- a/assets/icons/kids/clock-2.svg +++ b/assets/icons/kids/clock-2.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/completed-circle.svg b/assets/icons/kids/completed-circle.svg index 1b5cb9a884..5dc84c8609 100644 --- a/assets/icons/kids/completed-circle.svg +++ b/assets/icons/kids/completed-circle.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/completed-fill.svg b/assets/icons/kids/completed-fill.svg index 1b5cb9a884..5dc84c8609 100644 --- a/assets/icons/kids/completed-fill.svg +++ b/assets/icons/kids/completed-fill.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/courses.svg b/assets/icons/kids/courses.svg index 9074a58575..419d55bfe0 100644 --- a/assets/icons/kids/courses.svg +++ b/assets/icons/kids/courses.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/devices.svg b/assets/icons/kids/devices.svg index 046ee103d6..ec858bd57a 100644 --- a/assets/icons/kids/devices.svg +++ b/assets/icons/kids/devices.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/edit-2.svg b/assets/icons/kids/edit-2.svg index 398d55bbf0..7ccf21638d 100644 --- a/assets/icons/kids/edit-2.svg +++ b/assets/icons/kids/edit-2.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/explore.svg b/assets/icons/kids/explore.svg index 06f8536161..c6e9b4bb93 100644 --- a/assets/icons/kids/explore.svg +++ b/assets/icons/kids/explore.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/file-attachement.svg b/assets/icons/kids/file-attachement.svg index 8efd5c41c6..9e30754aac 100644 --- a/assets/icons/kids/file-attachement.svg +++ b/assets/icons/kids/file-attachement.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/gradebook.svg b/assets/icons/kids/gradebook.svg index d23e0d598c..b28de38d25 100644 --- a/assets/icons/kids/gradebook.svg +++ b/assets/icons/kids/gradebook.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/home.svg b/assets/icons/kids/home.svg index 0f0ef493fb..a8b3b45884 100644 --- a/assets/icons/kids/home.svg +++ b/assets/icons/kids/home.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/info-octagon.svg b/assets/icons/kids/info-octagon.svg index ce35b73a68..e19b1b1749 100644 --- a/assets/icons/kids/info-octagon.svg +++ b/assets/icons/kids/info-octagon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/level.svg b/assets/icons/kids/level.svg index 5cd7618196..b5aae5341d 100644 --- a/assets/icons/kids/level.svg +++ b/assets/icons/kids/level.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/light.svg b/assets/icons/kids/light.svg index d7e7b46c7b..e2c414d898 100644 --- a/assets/icons/kids/light.svg +++ b/assets/icons/kids/light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/list.svg b/assets/icons/kids/list.svg index 51427bda6b..a4b44b0079 100644 --- a/assets/icons/kids/list.svg +++ b/assets/icons/kids/list.svg @@ -1,26 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/logout.svg b/assets/icons/kids/logout.svg index fbd62f1a56..c47b0e5fb8 100644 --- a/assets/icons/kids/logout.svg +++ b/assets/icons/kids/logout.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/member.svg b/assets/icons/kids/member.svg index fd700c4232..cd2b0bad1c 100644 --- a/assets/icons/kids/member.svg +++ b/assets/icons/kids/member.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/notebook.svg b/assets/icons/kids/notebook.svg index ad7a4b1ff4..b0b778ae6c 100644 --- a/assets/icons/kids/notebook.svg +++ b/assets/icons/kids/notebook.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/kids/notes.svg b/assets/icons/kids/notes.svg index 847955a3a4..c1b558e563 100644 --- a/assets/icons/kids/notes.svg +++ b/assets/icons/kids/notes.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/passed.svg b/assets/icons/kids/passed.svg index f96e6aecd7..014b7ac7d9 100644 --- a/assets/icons/kids/passed.svg +++ b/assets/icons/kids/passed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/prime-check-circle.svg b/assets/icons/kids/prime-check-circle.svg index 1b5cb9a884..5dc84c8609 100644 --- a/assets/icons/kids/prime-check-circle.svg +++ b/assets/icons/kids/prime-check-circle.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/qa.svg b/assets/icons/kids/qa.svg index 9286236271..ca1d6fd074 100644 --- a/assets/icons/kids/qa.svg +++ b/assets/icons/kids/qa.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/ratings.svg b/assets/icons/kids/ratings.svg index 71fe0f3cdc..f92a46e4dc 100644 --- a/assets/icons/kids/ratings.svg +++ b/assets/icons/kids/ratings.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/reload-2.svg b/assets/icons/kids/reload-2.svg index 0c0e0b7497..9ea26e2942 100644 --- a/assets/icons/kids/reload-2.svg +++ b/assets/icons/kids/reload-2.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/star.svg b/assets/icons/kids/star.svg index e8566d4abb..5c6f50ed91 100644 --- a/assets/icons/kids/star.svg +++ b/assets/icons/kids/star.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/stopwatch.svg b/assets/icons/kids/stopwatch.svg index fef2c4e504..880cc34a15 100644 --- a/assets/icons/kids/stopwatch.svg +++ b/assets/icons/kids/stopwatch.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/time.svg b/assets/icons/kids/time.svg index 57472d6cec..c9a26d5114 100644 --- a/assets/icons/kids/time.svg +++ b/assets/icons/kids/time.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/kids/unread.svg b/assets/icons/kids/unread.svg index f32f75a0a0..b152e5f8f1 100644 --- a/assets/icons/kids/unread.svg +++ b/assets/icons/kids/unread.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/user-circle.svg b/assets/icons/kids/user-circle.svg index 3787c956cb..ac5e1dec3b 100644 --- a/assets/icons/kids/user-circle.svg +++ b/assets/icons/kids/user-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/kids/video-camera-2.svg b/assets/icons/kids/video-camera-2.svg index 7f85098233..e3e4996d1f 100644 --- a/assets/icons/kids/video-camera-2.svg +++ b/assets/icons/kids/video-camera-2.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/kids/wishlist.svg b/assets/icons/kids/wishlist.svg index d8472a3d07..852ec21600 100644 --- a/assets/icons/kids/wishlist.svg +++ b/assets/icons/kids/wishlist.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/landscape-filled.svg b/assets/icons/landscape-filled.svg index f0be240b04..2fd62c43f1 100644 --- a/assets/icons/landscape-filled.svg +++ b/assets/icons/landscape-filled.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/landscape.svg b/assets/icons/landscape.svg index ac6565c69e..94f6cdd677 100644 --- a/assets/icons/landscape.svg +++ b/assets/icons/landscape.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/league.svg b/assets/icons/league.svg index fcb46919d1..af6e778730 100644 --- a/assets/icons/league.svg +++ b/assets/icons/league.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/left.svg b/assets/icons/left.svg index 48af594ca7..bb07d2f2ad 100644 --- a/assets/icons/left.svg +++ b/assets/icons/left.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/lesson-completed.svg b/assets/icons/lesson-completed.svg index fe47f2ccee..3b1c735c15 100644 --- a/assets/icons/lesson-completed.svg +++ b/assets/icons/lesson-completed.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/lesson.svg b/assets/icons/lesson.svg index 9528a1886b..30207c8738 100644 --- a/assets/icons/lesson.svg +++ b/assets/icons/lesson.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/level.svg b/assets/icons/level.svg index 0c7ee351bc..de16876eb6 100644 --- a/assets/icons/level.svg +++ b/assets/icons/level.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/light.svg b/assets/icons/light.svg index 5cb73aa21f..07c2db46d3 100644 --- a/assets/icons/light.svg +++ b/assets/icons/light.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/line-cross.svg b/assets/icons/line-cross.svg index b3f4399fa7..2a0f1610a2 100644 --- a/assets/icons/line-cross.svg +++ b/assets/icons/line-cross.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/link-external.svg b/assets/icons/link-external.svg index 1f65592a6f..4c053ae1a8 100644 --- a/assets/icons/link-external.svg +++ b/assets/icons/link-external.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/link.svg b/assets/icons/link.svg index 44ae403b22..286262ce6d 100644 --- a/assets/icons/link.svg +++ b/assets/icons/link.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/linkedin.svg b/assets/icons/linkedin.svg index 887dd11d07..fe13386687 100644 --- a/assets/icons/linkedin.svg +++ b/assets/icons/linkedin.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/list-option.svg b/assets/icons/list-option.svg index 9ac7d7ff38..9f56d8966e 100644 --- a/assets/icons/list-option.svg +++ b/assets/icons/list-option.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/list.svg b/assets/icons/list.svg index 7d95143dde..654fb30039 100644 --- a/assets/icons/list.svg +++ b/assets/icons/list.svg @@ -1,8 +1 @@ - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/loading.svg b/assets/icons/loading.svg index 5dde5b6908..e19d9c90e4 100644 --- a/assets/icons/loading.svg +++ b/assets/icons/loading.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/lock-fill.svg b/assets/icons/lock-fill.svg index c1c1a06a60..003294bbed 100644 --- a/assets/icons/lock-fill.svg +++ b/assets/icons/lock-fill.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/lock-stroke-2.svg b/assets/icons/lock-stroke-2.svg index 1b737dedd8..93e16b173c 100644 --- a/assets/icons/lock-stroke-2.svg +++ b/assets/icons/lock-stroke-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/lock-stroke.svg b/assets/icons/lock-stroke.svg index cf567fd383..78f686d25e 100644 --- a/assets/icons/lock-stroke.svg +++ b/assets/icons/lock-stroke.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/lock.svg b/assets/icons/lock.svg index 7fafbe1ec7..a98fe223ea 100644 --- a/assets/icons/lock.svg +++ b/assets/icons/lock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/logout.svg b/assets/icons/logout.svg index 1a46d0ec9b..9a358f3d1a 100644 --- a/assets/icons/logout.svg +++ b/assets/icons/logout.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/mac.svg b/assets/icons/mac.svg index 29a2f028bd..909642701c 100644 --- a/assets/icons/mac.svg +++ b/assets/icons/mac.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/mage-filter.svg b/assets/icons/mage-filter.svg index 0f4cc805be..13f9d18704 100644 --- a/assets/icons/mage-filter.svg +++ b/assets/icons/mage-filter.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/magic-ai-colorize.svg b/assets/icons/magic-ai-colorize.svg index e4f31bc12b..cd05a96671 100644 --- a/assets/icons/magic-ai-colorize.svg +++ b/assets/icons/magic-ai-colorize.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/magic-ai-placeholder.svg b/assets/icons/magic-ai-placeholder.svg index a48f795659..777fd258ea 100644 --- a/assets/icons/magic-ai-placeholder.svg +++ b/assets/icons/magic-ai-placeholder.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/magic-ai.svg b/assets/icons/magic-ai.svg index 7af562b209..750f0fee32 100644 --- a/assets/icons/magic-ai.svg +++ b/assets/icons/magic-ai.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/magic-eraser.svg b/assets/icons/magic-eraser.svg index eafc51d039..4ee0da9270 100644 --- a/assets/icons/magic-eraser.svg +++ b/assets/icons/magic-eraser.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/magic-variation.svg b/assets/icons/magic-variation.svg index 60f2b8ab05..929d00e270 100644 --- a/assets/icons/magic-variation.svg +++ b/assets/icons/magic-variation.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/magic-wand.svg b/assets/icons/magic-wand.svg index 9cf75e377e..80eb358b1d 100644 --- a/assets/icons/magic-wand.svg +++ b/assets/icons/magic-wand.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/mark-circle.svg b/assets/icons/mark-circle.svg index 97e36940de..924a5a80e8 100644 --- a/assets/icons/mark-circle.svg +++ b/assets/icons/mark-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/marker-tick.svg b/assets/icons/marker-tick.svg index 32e401b767..5b1255c0d4 100644 --- a/assets/icons/marker-tick.svg +++ b/assets/icons/marker-tick.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/marks-total.svg b/assets/icons/marks-total.svg index 1ee239e12d..f9e0b9fb1b 100644 --- a/assets/icons/marks-total.svg +++ b/assets/icons/marks-total.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/material-check.svg b/assets/icons/material-check.svg index 95d2a6e724..90c278c87b 100644 --- a/assets/icons/material-check.svg +++ b/assets/icons/material-check.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/material.svg b/assets/icons/material.svg index c082fd1f80..e7d3de14ae 100644 --- a/assets/icons/material.svg +++ b/assets/icons/material.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/member.svg b/assets/icons/member.svg index 57277a1ddd..d88f16343b 100644 --- a/assets/icons/member.svg +++ b/assets/icons/member.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/menu.svg b/assets/icons/menu.svg index f46c2dc458..55255cac66 100644 --- a/assets/icons/menu.svg +++ b/assets/icons/menu.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/minus-square.svg b/assets/icons/minus-square.svg index a866fb0e9e..5a4b41afa9 100644 --- a/assets/icons/minus-square.svg +++ b/assets/icons/minus-square.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/minus.svg b/assets/icons/minus.svg index 3beadaccb0..021635c7bd 100644 --- a/assets/icons/minus.svg +++ b/assets/icons/minus.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/monitor-play.svg b/assets/icons/monitor-play.svg index 64ccce1254..47a60cbb95 100644 --- a/assets/icons/monitor-play.svg +++ b/assets/icons/monitor-play.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/move.svg b/assets/icons/move.svg index 0f0401dbf2..9ece0c8908 100644 --- a/assets/icons/move.svg +++ b/assets/icons/move.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/mp-3.svg b/assets/icons/mp-3.svg index e49c6c1f2d..11790c1bb8 100644 --- a/assets/icons/mp-3.svg +++ b/assets/icons/mp-3.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/mp-4.svg b/assets/icons/mp-4.svg index e57b5bb41e..7adb94ea29 100644 --- a/assets/icons/mp-4.svg +++ b/assets/icons/mp-4.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/multiple-instructors.svg b/assets/icons/multiple-instructors.svg index 5f417590f0..72fd26e3f8 100644 --- a/assets/icons/multiple-instructors.svg +++ b/assets/icons/multiple-instructors.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/music.svg b/assets/icons/music.svg index 1f45a87d91..480b526bfd 100644 --- a/assets/icons/music.svg +++ b/assets/icons/music.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/note.svg b/assets/icons/note.svg index de581ac915..a65c5e4433 100644 --- a/assets/icons/note.svg +++ b/assets/icons/note.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/notebook.svg b/assets/icons/notebook.svg index fdc2f7c9e2..9dd9463d81 100644 --- a/assets/icons/notebook.svg +++ b/assets/icons/notebook.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/notes-fill.svg b/assets/icons/notes-fill.svg index 5f3208b64a..6cddfa1793 100644 --- a/assets/icons/notes-fill.svg +++ b/assets/icons/notes-fill.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/notes.svg b/assets/icons/notes.svg index 9d1ae0949e..1d41f4ee02 100644 --- a/assets/icons/notes.svg +++ b/assets/icons/notes.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/notification-2.svg b/assets/icons/notification-2.svg index bb7d82abdd..b12b43285f 100644 --- a/assets/icons/notification-2.svg +++ b/assets/icons/notification-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/notification.svg b/assets/icons/notification.svg index 4d2fb40bc6..84a801d943 100644 --- a/assets/icons/notification.svg +++ b/assets/icons/notification.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/open.svg b/assets/icons/open.svg index 6e4bf0af81..5b79355fd2 100644 --- a/assets/icons/open.svg +++ b/assets/icons/open.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/outline-none.svg b/assets/icons/outline-none.svg index 2e3d15523a..0101a94d3a 100644 --- a/assets/icons/outline-none.svg +++ b/assets/icons/outline-none.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/passed-fill.svg b/assets/icons/passed-fill.svg index 981f4ff733..b3f132db5e 100644 --- a/assets/icons/passed-fill.svg +++ b/assets/icons/passed-fill.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/passed.svg b/assets/icons/passed.svg index f5ad558aef..e79380e06d 100644 --- a/assets/icons/passed.svg +++ b/assets/icons/passed.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/passing.svg b/assets/icons/passing.svg index 49b501d67d..e8738a5ede 100644 --- a/assets/icons/passing.svg +++ b/assets/icons/passing.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/pause-circle.svg b/assets/icons/pause-circle.svg index 2f3994c1eb..e8fb90acd3 100644 --- a/assets/icons/pause-circle.svg +++ b/assets/icons/pause-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/pdf.svg b/assets/icons/pdf.svg index f82878d384..74afdd81a1 100644 --- a/assets/icons/pdf.svg +++ b/assets/icons/pdf.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/pen-to-square.svg b/assets/icons/pen-to-square.svg index 7becece523..bda4650e34 100644 --- a/assets/icons/pen-to-square.svg +++ b/assets/icons/pen-to-square.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/pen.svg b/assets/icons/pen.svg index 1b44bbd2db..d934a34688 100644 --- a/assets/icons/pen.svg +++ b/assets/icons/pen.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/play-2.svg b/assets/icons/play-2.svg index fe429b013f..e03be7af2c 100644 --- a/assets/icons/play-2.svg +++ b/assets/icons/play-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/play-fill.svg b/assets/icons/play-fill.svg index 6fe7b6f8cd..751faaf81c 100644 --- a/assets/icons/play-fill.svg +++ b/assets/icons/play-fill.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/play-line.svg b/assets/icons/play-line.svg index 42abd75c8a..2d1a72c3e4 100644 --- a/assets/icons/play-line.svg +++ b/assets/icons/play-line.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/play.svg b/assets/icons/play.svg index e6657ec7f2..ce5e08f3dd 100644 --- a/assets/icons/play.svg +++ b/assets/icons/play.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/plus-minus.svg b/assets/icons/plus-minus.svg index d0ee0d6e2e..a5117e30ad 100644 --- a/assets/icons/plus-minus.svg +++ b/assets/icons/plus-minus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/plus-square-brand.svg b/assets/icons/plus-square-brand.svg index 63d02336b3..cb75015b35 100644 --- a/assets/icons/plus-square-brand.svg +++ b/assets/icons/plus-square-brand.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/plus-square.svg b/assets/icons/plus-square.svg index cab6456a6c..5c2736e6ab 100644 --- a/assets/icons/plus-square.svg +++ b/assets/icons/plus-square.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/plus.svg b/assets/icons/plus.svg index a28c409037..af68b29a06 100644 --- a/assets/icons/plus.svg +++ b/assets/icons/plus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/png.svg b/assets/icons/png.svg index fc9503d9f8..60634fb6c5 100644 --- a/assets/icons/png.svg +++ b/assets/icons/png.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/portrait-filled.svg b/assets/icons/portrait-filled.svg index 3bb06b24d6..e969534b83 100644 --- a/assets/icons/portrait-filled.svg +++ b/assets/icons/portrait-filled.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/portrait.svg b/assets/icons/portrait.svg index e78248114f..c9cb9aafa9 100644 --- a/assets/icons/portrait.svg +++ b/assets/icons/portrait.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/ppt.svg b/assets/icons/ppt.svg index 9fec8b0a19..66ac3b3a70 100644 --- a/assets/icons/ppt.svg +++ b/assets/icons/ppt.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/preview-2.svg b/assets/icons/preview-2.svg index 429c1804e3..6225156ca0 100644 --- a/assets/icons/preview-2.svg +++ b/assets/icons/preview-2.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/preview.svg b/assets/icons/preview.svg index 75ac41897a..40caef7713 100644 --- a/assets/icons/preview.svg +++ b/assets/icons/preview.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/price-tag.svg b/assets/icons/price-tag.svg index b4a76a991d..e521fc3f46 100644 --- a/assets/icons/price-tag.svg +++ b/assets/icons/price-tag.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/prime-check-circle.svg b/assets/icons/prime-check-circle.svg index c6e5faa4fa..b50f535ee6 100644 --- a/assets/icons/prime-check-circle.svg +++ b/assets/icons/prime-check-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/printer.svg b/assets/icons/printer.svg index 75cd5d3ba4..7babd0199e 100644 --- a/assets/icons/printer.svg +++ b/assets/icons/printer.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/profile.svg b/assets/icons/profile.svg index 9dd8a1ddcd..4b01bc45d0 100644 --- a/assets/icons/profile.svg +++ b/assets/icons/profile.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/progress.svg b/assets/icons/progress.svg index eae3c8831e..421fee19ad 100644 --- a/assets/icons/progress.svg +++ b/assets/icons/progress.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/psd.svg b/assets/icons/psd.svg index 4733821769..3e95ac8574 100644 --- a/assets/icons/psd.svg +++ b/assets/icons/psd.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/qa-fill.svg b/assets/icons/qa-fill.svg index bed7cce878..a90bae506d 100644 --- a/assets/icons/qa-fill.svg +++ b/assets/icons/qa-fill.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/qa.svg b/assets/icons/qa.svg index 9235082005..7e660cc611 100644 --- a/assets/icons/qa.svg +++ b/assets/icons/qa.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/question-circle.svg b/assets/icons/question-circle.svg index 909aefec9e..880b88471f 100644 --- a/assets/icons/question-circle.svg +++ b/assets/icons/question-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/question.svg b/assets/icons/question.svg index dfea438858..477ae3686c 100644 --- a/assets/icons/question.svg +++ b/assets/icons/question.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/quill.svg b/assets/icons/quill.svg index b42584ea27..2af717adfb 100644 --- a/assets/icons/quill.svg +++ b/assets/icons/quill.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/quiz-2-fill.svg b/assets/icons/quiz-2-fill.svg index 33fc761f68..fd31812773 100644 --- a/assets/icons/quiz-2-fill.svg +++ b/assets/icons/quiz-2-fill.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/quiz-2.svg b/assets/icons/quiz-2.svg index b357cadc00..f37cc4a9b0 100644 --- a/assets/icons/quiz-2.svg +++ b/assets/icons/quiz-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/quiz-essay.svg b/assets/icons/quiz-essay.svg index 73897db99e..06e98fac85 100644 --- a/assets/icons/quiz-essay.svg +++ b/assets/icons/quiz-essay.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-fill-in-the-blanks.svg b/assets/icons/quiz-fill-in-the-blanks.svg index d249cbfc97..83259b3606 100644 --- a/assets/icons/quiz-fill-in-the-blanks.svg +++ b/assets/icons/quiz-fill-in-the-blanks.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-graph.svg b/assets/icons/quiz-graph.svg index 9bf9c45593..66dd34c4a9 100644 --- a/assets/icons/quiz-graph.svg +++ b/assets/icons/quiz-graph.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-h5p.svg b/assets/icons/quiz-h5p.svg index a50ebf2875..7eaa90bdc2 100644 --- a/assets/icons/quiz-h5p.svg +++ b/assets/icons/quiz-h5p.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-image-answer.svg b/assets/icons/quiz-image-answer.svg index 3b30c7694b..6822032058 100644 --- a/assets/icons/quiz-image-answer.svg +++ b/assets/icons/quiz-image-answer.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-image-matching.svg b/assets/icons/quiz-image-matching.svg index a8ebf8f5bf..fb0a1225cf 100644 --- a/assets/icons/quiz-image-matching.svg +++ b/assets/icons/quiz-image-matching.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-mark-in-the-image.svg b/assets/icons/quiz-mark-in-the-image.svg index f5acf8e785..56d203c65c 100644 --- a/assets/icons/quiz-mark-in-the-image.svg +++ b/assets/icons/quiz-mark-in-the-image.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-multi-choice.svg b/assets/icons/quiz-multi-choice.svg index ca7ed41f74..197a85f5e3 100644 --- a/assets/icons/quiz-multi-choice.svg +++ b/assets/icons/quiz-multi-choice.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-ordering.svg b/assets/icons/quiz-ordering.svg index e0cb6358c4..16c622aaf1 100644 --- a/assets/icons/quiz-ordering.svg +++ b/assets/icons/quiz-ordering.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-pin.svg b/assets/icons/quiz-pin.svg index 651c44cfe5..85bb45cea3 100644 --- a/assets/icons/quiz-pin.svg +++ b/assets/icons/quiz-pin.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-puzzle.svg b/assets/icons/quiz-puzzle.svg index 2151f3400a..2ad246061d 100644 --- a/assets/icons/quiz-puzzle.svg +++ b/assets/icons/quiz-puzzle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-range.svg b/assets/icons/quiz-range.svg index 56885e5452..291e83e465 100644 --- a/assets/icons/quiz-range.svg +++ b/assets/icons/quiz-range.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-shape.svg b/assets/icons/quiz-shape.svg index 9ad804cc77..89be842722 100644 --- a/assets/icons/quiz-shape.svg +++ b/assets/icons/quiz-shape.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-short-answer.svg b/assets/icons/quiz-short-answer.svg index ebf159f0e5..466492ce78 100644 --- a/assets/icons/quiz-short-answer.svg +++ b/assets/icons/quiz-short-answer.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz-true-false.svg b/assets/icons/quiz-true-false.svg index 3f3b1bf7ba..7dd2194310 100644 --- a/assets/icons/quiz-true-false.svg +++ b/assets/icons/quiz-true-false.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/quiz.svg b/assets/icons/quiz.svg index 69c90efa64..c4f7385d69 100644 --- a/assets/icons/quiz.svg +++ b/assets/icons/quiz.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/ratings.svg b/assets/icons/ratings.svg index 9858792999..bf614830e9 100644 --- a/assets/icons/ratings.svg +++ b/assets/icons/ratings.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/read.svg b/assets/icons/read.svg index 69a02a2132..bddc6f11b6 100644 --- a/assets/icons/read.svg +++ b/assets/icons/read.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/receipt-percent.svg b/assets/icons/receipt-percent.svg index 26cd5d355d..6086981d36 100644 --- a/assets/icons/receipt-percent.svg +++ b/assets/icons/receipt-percent.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/redo.svg b/assets/icons/redo.svg index 6d26cb4942..e83f998dad 100644 --- a/assets/icons/redo.svg +++ b/assets/icons/redo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/refresh.svg b/assets/icons/refresh.svg index 79f6ee6e1c..a4b81b6c5b 100644 --- a/assets/icons/refresh.svg +++ b/assets/icons/refresh.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/reload-2.svg b/assets/icons/reload-2.svg index 37732bf63d..f92aace33e 100644 --- a/assets/icons/reload-2.svg +++ b/assets/icons/reload-2.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/reload-3.svg b/assets/icons/reload-3.svg index 26120d4715..fc095f5c5a 100644 --- a/assets/icons/reload-3.svg +++ b/assets/icons/reload-3.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/reload-4.svg b/assets/icons/reload-4.svg index 26120d4715..fc095f5c5a 100644 --- a/assets/icons/reload-4.svg +++ b/assets/icons/reload-4.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/reload.svg b/assets/icons/reload.svg index f35a666a5c..e7c1654afa 100644 --- a/assets/icons/reload.svg +++ b/assets/icons/reload.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/remove-image.svg b/assets/icons/remove-image.svg index f4f933ef2b..3df480f60f 100644 --- a/assets/icons/remove-image.svg +++ b/assets/icons/remove-image.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/report.svg b/assets/icons/report.svg index 49b2b04e7f..c7c81e8723 100644 --- a/assets/icons/report.svg +++ b/assets/icons/report.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/requirements.svg b/assets/icons/requirements.svg index 2f4006ccb2..393b7bde81 100644 --- a/assets/icons/requirements.svg +++ b/assets/icons/requirements.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/resources.svg b/assets/icons/resources.svg index 4d2243ab5c..bbe5b49e42 100644 --- a/assets/icons/resources.svg +++ b/assets/icons/resources.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/right-arrow-up.svg b/assets/icons/right-arrow-up.svg index 65f3a94b4f..aa71536dc4 100644 --- a/assets/icons/right-arrow-up.svg +++ b/assets/icons/right-arrow-up.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/rotate.svg b/assets/icons/rotate.svg index 99c2479b9f..20f9239c59 100644 --- a/assets/icons/rotate.svg +++ b/assets/icons/rotate.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/rtf.svg b/assets/icons/rtf.svg index 6f5186355a..844f2ec99f 100644 --- a/assets/icons/rtf.svg +++ b/assets/icons/rtf.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/sale-type.svg b/assets/icons/sale-type.svg index 85a976973a..1db312f8e5 100644 --- a/assets/icons/sale-type.svg +++ b/assets/icons/sale-type.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/sale.svg b/assets/icons/sale.svg index 0d5c91cfec..e95a34e081 100644 --- a/assets/icons/sale.svg +++ b/assets/icons/sale.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/save.svg b/assets/icons/save.svg index f3feeae6f6..0744545d32 100644 --- a/assets/icons/save.svg +++ b/assets/icons/save.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/search-2.svg b/assets/icons/search-2.svg index b6f6163a99..3b42cd8e78 100644 --- a/assets/icons/search-2.svg +++ b/assets/icons/search-2.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/search.svg b/assets/icons/search.svg index 1e410b5ba7..135e822a7b 100644 --- a/assets/icons/search.svg +++ b/assets/icons/search.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/security.svg b/assets/icons/security.svg index 29fbc49ac7..6e6ae03a1c 100644 --- a/assets/icons/security.svg +++ b/assets/icons/security.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/seeds.svg b/assets/icons/seeds.svg index 123f5d6227..c8924287c7 100644 --- a/assets/icons/seeds.svg +++ b/assets/icons/seeds.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/seo.svg b/assets/icons/seo.svg index dfd3006f91..d26700ff60 100644 --- a/assets/icons/seo.svg +++ b/assets/icons/seo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/setting.svg b/assets/icons/setting.svg index c3f68e7f10..efd58a1589 100644 --- a/assets/icons/setting.svg +++ b/assets/icons/setting.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/settings-advance.svg b/assets/icons/settings-advance.svg index 3100f9896a..d48573e7c7 100644 --- a/assets/icons/settings-advance.svg +++ b/assets/icons/settings-advance.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-email.svg b/assets/icons/settings-email.svg index cb67bba14e..c9917ec108 100644 --- a/assets/icons/settings-email.svg +++ b/assets/icons/settings-email.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-error.svg b/assets/icons/settings-error.svg index c79fd7edbe..da85553431 100644 --- a/assets/icons/settings-error.svg +++ b/assets/icons/settings-error.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-general.svg b/assets/icons/settings-general.svg index 80acf25bff..ad170e6a5e 100644 --- a/assets/icons/settings-general.svg +++ b/assets/icons/settings-general.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-integration.svg b/assets/icons/settings-integration.svg index 3f74b24b07..daf3f18839 100644 --- a/assets/icons/settings-integration.svg +++ b/assets/icons/settings-integration.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-privacy.svg b/assets/icons/settings-privacy.svg index bd67ecbea6..87ac9ed831 100644 --- a/assets/icons/settings-privacy.svg +++ b/assets/icons/settings-privacy.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-product.svg b/assets/icons/settings-product.svg index 6912b4a8ee..0922ee0e54 100644 --- a/assets/icons/settings-product.svg +++ b/assets/icons/settings-product.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-shipping.svg b/assets/icons/settings-shipping.svg index 2acf793952..a55fe6bb9e 100644 --- a/assets/icons/settings-shipping.svg +++ b/assets/icons/settings-shipping.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings-tax.svg b/assets/icons/settings-tax.svg index 20b780663d..b8d743904c 100644 --- a/assets/icons/settings-tax.svg +++ b/assets/icons/settings-tax.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/settings.svg b/assets/icons/settings.svg index 0d3e50ffa3..d61667a69b 100644 --- a/assets/icons/settings.svg +++ b/assets/icons/settings.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/share.svg b/assets/icons/share.svg index d3a90e0985..06cbfd6c95 100644 --- a/assets/icons/share.svg +++ b/assets/icons/share.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/assets/icons/shortcode.svg b/assets/icons/shortcode.svg index 41b3b00dff..4209d9f923 100644 --- a/assets/icons/shortcode.svg +++ b/assets/icons/shortcode.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/signature-upload.svg b/assets/icons/signature-upload.svg index 2c7ca5e397..63c7236a6a 100644 --- a/assets/icons/signature-upload.svg +++ b/assets/icons/signature-upload.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/sort-a-s-c.svg b/assets/icons/sort-a-s-c.svg index 150f6e97bc..14f9a34149 100644 --- a/assets/icons/sort-a-s-c.svg +++ b/assets/icons/sort-a-s-c.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/sort-by.svg b/assets/icons/sort-by.svg index 859fb3af1e..62017b2d4c 100644 --- a/assets/icons/sort-by.svg +++ b/assets/icons/sort-by.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/sort-d-e-s-c.svg b/assets/icons/sort-d-e-s-c.svg index e863c3e617..48705e8549 100644 --- a/assets/icons/sort-d-e-s-c.svg +++ b/assets/icons/sort-d-e-s-c.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/sort-minor.svg b/assets/icons/sort-minor.svg index 7585921423..b126c3245d 100644 --- a/assets/icons/sort-minor.svg +++ b/assets/icons/sort-minor.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/sort.svg b/assets/icons/sort.svg index 6702f196af..ce16862606 100644 --- a/assets/icons/sort.svg +++ b/assets/icons/sort.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/spinner.svg b/assets/icons/spinner.svg index 954fbe77cb..e8d02be23c 100644 --- a/assets/icons/spinner.svg +++ b/assets/icons/spinner.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/spreadsheet.svg b/assets/icons/spreadsheet.svg index b14fa3b0cb..f53ce8dc9f 100644 --- a/assets/icons/spreadsheet.svg +++ b/assets/icons/spreadsheet.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/star-fill.svg b/assets/icons/star-fill.svg index 488d526fe9..c2f5caa710 100644 --- a/assets/icons/star-fill.svg +++ b/assets/icons/star-fill.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/star-half.svg b/assets/icons/star-half.svg index 1796dd0d41..aeb68c232a 100644 --- a/assets/icons/star-half.svg +++ b/assets/icons/star-half.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/star-line.svg b/assets/icons/star-line.svg index 2ff5fbdc10..70463d3370 100644 --- a/assets/icons/star-line.svg +++ b/assets/icons/star-line.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/stopwatch.svg b/assets/icons/stopwatch.svg index bc059de82e..6429bfbf60 100644 --- a/assets/icons/stopwatch.svg +++ b/assets/icons/stopwatch.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/store-eye-slash.svg b/assets/icons/store-eye-slash.svg index cd99318aa5..3e7a03ebc5 100644 --- a/assets/icons/store-eye-slash.svg +++ b/assets/icons/store-eye-slash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/store-eye.svg b/assets/icons/store-eye.svg index 6f802d60c2..9d0eaeb9cb 100644 --- a/assets/icons/store-eye.svg +++ b/assets/icons/store-eye.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/store-image.svg b/assets/icons/store-image.svg index 2cb3c805e0..05fb3aeac4 100644 --- a/assets/icons/store-image.svg +++ b/assets/icons/store-image.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/student.svg b/assets/icons/student.svg index 2f734ffda4..be910fbfc0 100644 --- a/assets/icons/student.svg +++ b/assets/icons/student.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/style-none.svg b/assets/icons/style-none.svg index fab4814659..4cefa26f8d 100644 --- a/assets/icons/style-none.svg +++ b/assets/icons/style-none.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/subscription.svg b/assets/icons/subscription.svg index b50f812642..f48ace6707 100644 --- a/assets/icons/subscription.svg +++ b/assets/icons/subscription.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/subtitle.svg b/assets/icons/subtitle.svg index ce63bd3795..9a0c4f565f 100644 --- a/assets/icons/subtitle.svg +++ b/assets/icons/subtitle.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/svg.svg b/assets/icons/svg.svg index 9ea6ae3cd0..471f2fec60 100644 --- a/assets/icons/svg.svg +++ b/assets/icons/svg.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/tag-outline.svg b/assets/icons/tag-outline.svg index 551a512fbd..b546cd8203 100644 --- a/assets/icons/tag-outline.svg +++ b/assets/icons/tag-outline.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/tag.svg b/assets/icons/tag.svg index f9a79822b3..201878e7a9 100644 --- a/assets/icons/tag.svg +++ b/assets/icons/tag.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/text-field-expand.svg b/assets/icons/text-field-expand.svg index 7fbb2a16a8..03a465e7dc 100644 --- a/assets/icons/text-field-expand.svg +++ b/assets/icons/text-field-expand.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/text.svg b/assets/icons/text.svg index 6f9a07e697..7bdd589d21 100644 --- a/assets/icons/text.svg +++ b/assets/icons/text.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/three-dots-vertical-double.svg b/assets/icons/three-dots-vertical-double.svg index 50e44aba91..e02f33c828 100644 --- a/assets/icons/three-dots-vertical-double.svg +++ b/assets/icons/three-dots-vertical-double.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/three-dots-vertical.svg b/assets/icons/three-dots-vertical.svg index d66c457847..adf001f372 100644 --- a/assets/icons/three-dots-vertical.svg +++ b/assets/icons/three-dots-vertical.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/three-dots.svg b/assets/icons/three-dots.svg index 56bad5051b..5168ec9a55 100644 --- a/assets/icons/three-dots.svg +++ b/assets/icons/three-dots.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/thumb-fill.svg b/assets/icons/thumb-fill.svg index b30fb1a4fb..41d532a44c 100644 --- a/assets/icons/thumb-fill.svg +++ b/assets/icons/thumb-fill.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/thumb.svg b/assets/icons/thumb.svg index 0dab98b0be..eb346e94bf 100644 --- a/assets/icons/thumb.svg +++ b/assets/icons/thumb.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/tick-mark-green.svg b/assets/icons/tick-mark-green.svg index 968cc089aa..8f957335d3 100644 --- a/assets/icons/tick-mark-green.svg +++ b/assets/icons/tick-mark-green.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/tick-mark.svg b/assets/icons/tick-mark.svg index ff50cdad17..a3970e90ad 100644 --- a/assets/icons/tick-mark.svg +++ b/assets/icons/tick-mark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/time.svg b/assets/icons/time.svg index 09f7a97f83..78be050b3b 100644 --- a/assets/icons/time.svg +++ b/assets/icons/time.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/times-alt.svg b/assets/icons/times-alt.svg index 54e141d44a..27ebf05159 100644 --- a/assets/icons/times-alt.svg +++ b/assets/icons/times-alt.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/times-thin.svg b/assets/icons/times-thin.svg index 1ea736cae6..a06e7588c3 100644 --- a/assets/icons/times-thin.svg +++ b/assets/icons/times-thin.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/times.svg b/assets/icons/times.svg index 2e358a4d83..94f15e1365 100644 --- a/assets/icons/times.svg +++ b/assets/icons/times.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/try-again.svg b/assets/icons/try-again.svg index d30d97e172..3e41ae010e 100644 --- a/assets/icons/try-again.svg +++ b/assets/icons/try-again.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/txt.svg b/assets/icons/txt.svg index d991f6d36b..9476987438 100644 --- a/assets/icons/txt.svg +++ b/assets/icons/txt.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/undo.svg b/assets/icons/undo.svg index e03000108a..69ca163dad 100644 --- a/assets/icons/undo.svg +++ b/assets/icons/undo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/unit-10.svg b/assets/icons/unit-10.svg index 7c3bfb5a54..1bc3425934 100644 --- a/assets/icons/unit-10.svg +++ b/assets/icons/unit-10.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/unit-20.svg b/assets/icons/unit-20.svg index 9b7da86cd9..5bf94697fd 100644 --- a/assets/icons/unit-20.svg +++ b/assets/icons/unit-20.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/update.svg b/assets/icons/update.svg index 80bd36b920..25291dff76 100644 --- a/assets/icons/update.svg +++ b/assets/icons/update.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/upload-2.svg b/assets/icons/upload-2.svg index 3aea1e8cf3..02507bcc77 100644 --- a/assets/icons/upload-2.svg +++ b/assets/icons/upload-2.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/upload-file.svg b/assets/icons/upload-file.svg index 2c7af9e59b..6b9ac81d1c 100644 --- a/assets/icons/upload-file.svg +++ b/assets/icons/upload-file.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/upload.svg b/assets/icons/upload.svg index 29458830ed..fc7c1e324a 100644 --- a/assets/icons/upload.svg +++ b/assets/icons/upload.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/user-circle-fill.svg b/assets/icons/user-circle-fill.svg index 65d9117164..05188f761b 100644 --- a/assets/icons/user-circle-fill.svg +++ b/assets/icons/user-circle-fill.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/assets/icons/user-circle.svg b/assets/icons/user-circle.svg index 57cd962dda..bd7c063931 100644 --- a/assets/icons/user-circle.svg +++ b/assets/icons/user-circle.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/assets/icons/user.svg b/assets/icons/user.svg index 2c584b3ad2..84d469c0d4 100644 --- a/assets/icons/user.svg +++ b/assets/icons/user.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/video-camera-2.svg b/assets/icons/video-camera-2.svg index 7cbade353e..35ce193312 100644 --- a/assets/icons/video-camera-2.svg +++ b/assets/icons/video-camera-2.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/video-camera-fill.svg b/assets/icons/video-camera-fill.svg index de59a5aea4..e505c62020 100644 --- a/assets/icons/video-camera-fill.svg +++ b/assets/icons/video-camera-fill.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/video-camera.svg b/assets/icons/video-camera.svg index af49b091c0..f15d756687 100644 --- a/assets/icons/video-camera.svg +++ b/assets/icons/video-camera.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/video-file.svg b/assets/icons/video-file.svg index ab4e867cfc..c21792de98 100644 --- a/assets/icons/video-file.svg +++ b/assets/icons/video-file.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/video-fill.svg b/assets/icons/video-fill.svg index c1facbd29d..4fe71e6f48 100644 --- a/assets/icons/video-fill.svg +++ b/assets/icons/video-fill.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/video-quality.svg b/assets/icons/video-quality.svg index bae1de74fa..434a398373 100644 --- a/assets/icons/video-quality.svg +++ b/assets/icons/video-quality.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/assets/icons/video.svg b/assets/icons/video.svg index b2cf4c940c..94793b4382 100644 --- a/assets/icons/video.svg +++ b/assets/icons/video.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/vimeo.svg b/assets/icons/vimeo.svg index 3d465ee9be..61d1ce6a13 100644 --- a/assets/icons/vimeo.svg +++ b/assets/icons/vimeo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/visited.svg b/assets/icons/visited.svg index c6812460af..acab214fc2 100644 --- a/assets/icons/visited.svg +++ b/assets/icons/visited.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/warning.svg b/assets/icons/warning.svg index ca49a6f595..6c0e3463b9 100644 --- a/assets/icons/warning.svg +++ b/assets/icons/warning.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/weight-box.svg b/assets/icons/weight-box.svg index e28444bf41..a5c5bcd3f0 100644 --- a/assets/icons/weight-box.svg +++ b/assets/icons/weight-box.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/wifi.svg b/assets/icons/wifi.svg index 9306f97357..fea5c1c15e 100644 --- a/assets/icons/wifi.svg +++ b/assets/icons/wifi.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/assets/icons/windows.svg b/assets/icons/windows.svg index 2a911749ca..1bd35ee887 100644 --- a/assets/icons/windows.svg +++ b/assets/icons/windows.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/wishlist.svg b/assets/icons/wishlist.svg index caf06e8be0..5e69283fe1 100644 --- a/assets/icons/wishlist.svg +++ b/assets/icons/wishlist.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/assets/icons/withdraw.svg b/assets/icons/withdraw.svg index 64ee448f06..4e3611b4cb 100644 --- a/assets/icons/withdraw.svg +++ b/assets/icons/withdraw.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/assets/icons/x.svg b/assets/icons/x.svg index 89f85920af..b7c6117870 100644 --- a/assets/icons/x.svg +++ b/assets/icons/x.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/xls.svg b/assets/icons/xls.svg index 7af5698959..2d508835c9 100644 --- a/assets/icons/xls.svg +++ b/assets/icons/xls.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/xml.svg b/assets/icons/xml.svg index 51ea41564b..1f30145c92 100644 --- a/assets/icons/xml.svg +++ b/assets/icons/xml.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/youtube.svg b/assets/icons/youtube.svg index 00c48748c4..96b4e16af9 100644 --- a/assets/icons/youtube.svg +++ b/assets/icons/youtube.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/zip.svg b/assets/icons/zip.svg index 26f7336601..0939c5f415 100644 --- a/assets/icons/zip.svg +++ b/assets/icons/zip.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/zoom-colorize.svg b/assets/icons/zoom-colorize.svg index 822a9fadbc..04be683f03 100644 --- a/assets/icons/zoom-colorize.svg +++ b/assets/icons/zoom-colorize.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/zoom.svg b/assets/icons/zoom.svg index 179b6f8d44..1264f71fe9 100644 --- a/assets/icons/zoom.svg +++ b/assets/icons/zoom.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/src/js/v3/shared/atoms/SVGIcon.tsx b/assets/src/js/v3/shared/atoms/SVGIcon.tsx index 1a9caa9ff9..fadf822037 100644 --- a/assets/src/js/v3/shared/atoms/SVGIcon.tsx +++ b/assets/src/js/v3/shared/atoms/SVGIcon.tsx @@ -1,4 +1,4 @@ -import { memo, useEffect, useState } from 'react'; +import { memo, useEffect, useId, useMemo, useState } from 'react'; import { css, type SerializedStyles } from '@emotion/react'; import { tutorConfig } from '@TutorShared/config/config'; @@ -28,6 +28,13 @@ interface IconCacheEntry { error?: any; } +const namespaceSvgIds = (svgContent: string, suffix: string) => { + return svgContent + .replace(/\bid="([a-zA-Z0-9_-]+)"/g, `id="$1${suffix}"`) + .replace(/url\(#([a-zA-Z0-9_-]+)\)/g, `url(#$1${suffix})`) + .replace(/(xlink:href|href)="#([a-zA-Z0-9_-]+)"/g, `$1="#$2${suffix}"`); +}; + const iconCache: Record = {}; const SVGIcon = ({ name, width = 16, height = 16, style, isColorIcon = false, ignoreKids, ...rest }: SVGIconProps) => { @@ -36,6 +43,8 @@ const SVGIcon = ({ name, width = 16, height = 16, style, isColorIcon = false, ig const cacheKey = shouldIgnoreKids ? `${name}-ignoreKids` : name; const [icon, setIcon] = useState(iconCache[cacheKey]?.icon || null); const [isLoading, setIsLoading] = useState(!iconCache[cacheKey]?.icon); + const rawId = useId(); // e.g. ":r0:" + const suffix = `-${rawId.replace(/[^a-zA-Z0-9]/g, '')}`; useEffect(() => { if (iconCache[cacheKey]?.icon) { @@ -66,7 +75,14 @@ const SVGIcon = ({ name, width = 16, height = 16, style, isColorIcon = false, ig const viewBox = icon ? icon.viewBox : `0 0 ${width} ${height}`; const fill = icon ? icon.fill : 'none'; - if (!icon && !isLoading) { + const processedIcon = useMemo(() => { + if (!icon) { + return ''; + } + return namespaceSvgIds(icon.icon, suffix); + }, [icon, suffix]); + + if (!processedIcon && !isLoading) { return ( @@ -83,7 +99,7 @@ const SVGIcon = ({ name, width = 16, height = 16, style, isColorIcon = false, ig {...additionalAttributes} role="presentation" aria-hidden={true} - dangerouslySetInnerHTML={{ __html: icon ? icon.icon : '' }} + dangerouslySetInnerHTML={{ __html: processedIcon }} /> ); }; diff --git a/components/SvgIcon.php b/components/SvgIcon.php index 3bcd8f187a..d8bcdbbd62 100644 --- a/components/SvgIcon.php +++ b/components/SvgIcon.php @@ -273,6 +273,29 @@ public function get(): string { $attributes = $this->get_attributes_string(); + $unique_suffix = '-' . substr( md5( uniqid( '', true ) ), 0, 8 ); + + // Rewrite id="foo" -> id="foo-abc123". + $inner_svg = preg_replace( + '/\bid="([a-zA-Z0-9_-]+)"/', + 'id="$1' . $unique_suffix . '"', + $inner_svg + ); + + // Rewrite url(#foo) -> url(#foo-abc123). + $inner_svg = preg_replace( + '/url\(#([a-zA-Z0-9_-]+)\)/', + 'url(#$1' . $unique_suffix . ')', + $inner_svg + ); + + // Rewrite href="#foo" / xlink:href="#foo" -> ...#foo-abc123. + $inner_svg = preg_replace( + '/(xlink:href|href)="#([a-zA-Z0-9_-]+)"/', + '$1="#$2' . $unique_suffix . '"', + $inner_svg + ); + $this->component_string = sprintf( '%s', $attributes, diff --git a/package.json b/package.json index 6156e6bf8a..0622406851 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,9 @@ "prepare": "husky", "storybook": "storybook dev -p 6006 --no-open", "build-storybook": "storybook build", - "replace-svg-colors": "tsx ./assets/core/ts/utils/replace-svg-colors.ts ./assets/images/illustrations ../tutor-pro/assets/images/illustrations", - "replace-svg-colors:dry": "tsx ./assets/core/ts/utils/replace-svg-colors.ts --dry-run ./assets/images/illustrations ../tutor-pro/assets/images/illustrations" + "replace-svg-colors": "tsx scripts/replace-svg-colors.ts ./assets/images/illustrations ../tutor-pro/assets/images/illustrations", + "replace-svg-colors:dry": "tsx scripts/replace-svg-colors.ts --dry-run ./assets/images/illustrations ../tutor-pro/assets/images/illustrations", + "svgo-optimize": "tsx scripts/svgo-optimize.ts" }, "keywords": [ "lms", @@ -88,6 +89,7 @@ "storybook": "^10.4.2", "storybook-react-rsbuild": "^3.0.0", "style-loader": "^4.0.0", + "svgo": "^4.0.1", "tsx": "^4.20.3", "typescript-eslint": "^8.37.0", "webpack-node-externals": "^3.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8232af2062..d5ddaafb77 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -264,6 +264,9 @@ importers: style-loader: specifier: ^4.0.0 version: 4.0.0(webpack@5.103.0(esbuild@0.27.0)(postcss@8.5.6)) + svgo: + specifier: ^4.0.1 + version: 4.0.1 tsx: specifier: ^4.20.3 version: 4.21.0 @@ -3427,6 +3430,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -3569,6 +3576,10 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.2.2: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} @@ -5172,6 +5183,9 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -5995,6 +6009,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} + engines: {node: '>=11.0.0'} + scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -6366,6 +6384,11 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + svgo@4.0.1: + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} + engines: {node: '>=16'} + hasBin: true + synckit@0.11.11: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -9984,10 +10007,10 @@ snapshots: '@types/node': 25.9.2 optional: true - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/type-utils': 6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) '@typescript-eslint/utils': 6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) @@ -10390,19 +10413,19 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/eslint-parser': 7.25.7(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.7.0)) - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) '@typescript-eslint/parser': 6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) '@wordpress/babel-preset-default': 8.36.0 '@wordpress/prettier-config': 4.36.0(prettier@3.8.1) cosmiconfig: 7.1.0 eslint: 9.39.1(jiti@2.7.0) eslint-config-prettier: 8.10.2(eslint@9.39.1(jiti@2.7.0)) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.7.0)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) eslint-plugin-jsdoc: 46.10.1(eslint@9.39.1(jiti@2.7.0)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1(jiti@2.7.0)) - eslint-plugin-playwright: 0.15.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)) + eslint-plugin-playwright: 0.15.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)) eslint-plugin-prettier: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@8.10.2(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0))(prettier@3.8.1) eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@2.7.0)) eslint-plugin-react-hooks: 4.6.2(eslint@9.39.1(jiti@2.7.0)) @@ -10989,6 +11012,8 @@ snapshots: commander@10.0.1: {} + commander@11.1.0: {} + commander@12.1.0: {} commander@14.0.2: {} @@ -11127,6 +11152,11 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + css-what@6.2.2: {} css.escape@1.5.1: {} @@ -11613,7 +11643,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.7.0)): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)): dependencies: debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.1(jiti@2.7.0) @@ -11624,22 +11654,22 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.1(jiti@2.7.0)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) eslint: 9.39.1(jiti@2.7.0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.7.0)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -11650,7 +11680,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.1(jiti@2.7.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.1(jiti@2.7.0)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11662,18 +11692,18 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) eslint: 9.39.1(jiti@2.7.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) transitivePeerDependencies: - supports-color - typescript @@ -11712,11 +11742,11 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-playwright@0.15.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)): + eslint-plugin-playwright@0.15.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0)): dependencies: eslint: 9.39.1(jiti@2.7.0) optionalDependencies: - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3))(eslint@9.39.1(jiti@2.7.0))(typescript@5.8.3) eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@8.10.2(eslint@9.39.1(jiti@2.7.0)))(eslint@9.39.1(jiti@2.7.0))(prettier@3.8.1): dependencies: @@ -12970,6 +13000,8 @@ snapshots: mdn-data@2.0.30: {} + mdn-data@2.27.1: {} + media-typer@0.3.0: {} memfs@4.51.1: @@ -13780,6 +13812,8 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.1 + sax@1.6.0: {} + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -14290,6 +14324,16 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 + svgo@4.0.1: + dependencies: + commander: 11.1.0 + css-select: 5.2.2 + css-tree: 3.2.1 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.6.0 + synckit@0.11.11: dependencies: '@pkgr/core': 0.2.9 diff --git a/scripts/replace-svg-colors.ts b/scripts/replace-svg-colors.ts new file mode 100644 index 0000000000..9a741bc8b6 --- /dev/null +++ b/scripts/replace-svg-colors.ts @@ -0,0 +1,357 @@ +/* eslint-disable no-console */ + +/** + * Scans one or more directories for SVG files and replaces hex color values + * with CSS custom properties, using the Tutor visual token map. + * + * All paths are resolved relative to the project root (where package.json + * lives), regardless of where this script is located. + * + * Usage (via package.json script): + * tsx assets/core/ts/utils/replace-hex-colors.ts [options] [dir2 ...] + * + * Options: + * --dry-run Preview changes without writing files + * --mapping JSON file to override/extend the built-in color map + * --exts Comma-separated extensions to scan (default: .svg) + * --no-vars-block Skip the :root { } summary at the end + */ + +import fs from 'fs'; +import path from 'path'; + +// --------------------------------------------------------------------------- +// Types +// --------------------------------------------------------------------------- + +type ColorMap = Record; // { "#hex": "--var-name" } + +interface ProcessResult { + changed: boolean; + original: string; + updated: string; +} + +interface DirSummary { + dir: string; + total: number; + modified: number; +} + +// --------------------------------------------------------------------------- +// Resolve project root — walk up from __dirname until we find package.json +// --------------------------------------------------------------------------- + +const findProjectRoot = (startDir: string): string => { + let dir = startDir; + while (true) { + if (fs.existsSync(path.join(dir, 'package.json'))) return dir; + const parent = path.dirname(dir); + if (parent === dir) return process.cwd(); // filesystem root fallback + dir = parent; + } +}; + +const PROJECT_ROOT = findProjectRoot(__dirname); + +// --------------------------------------------------------------------------- +// CLI argument parsing +// --------------------------------------------------------------------------- + +const args = process.argv.slice(2); + +if (!args.length || args.includes('--help')) { + console.log( + [ + '', + 'Usage: tsx assets/core/ts/utils/replace-hex-colors.ts [options] [dir2 ...]', + '', + 'Options:', + ' --dry-run Preview changes, do not write files', + ' --mapping JSON file { "#hex": "--var-name" } to override/extend defaults', + ' --exts Comma-separated extensions (default: .svg)', + ' --no-vars-block Skip the :root { } summary', + '', + `Paths are relative to the project root: ${PROJECT_ROOT}`, + '', + ].join('\n'), + ); + process.exit(0); +} + +const dryRun = args.includes('--dry-run'); +const noVarsBlock = args.includes('--no-vars-block'); + +const getFlag = (name: string): string | null => { + const idx = args.indexOf(name); + return idx !== -1 ? (args[idx + 1] ?? null) : null; +}; + +const extArg = getFlag('--exts'); +const extensions = extArg ? extArg.split(',').map((e) => e.trim()) : ['.svg']; +const mappingFile = getFlag('--mapping'); + +// Collect positional arguments (skip flags and their values) +const FLAGS_WITH_VALUES = new Set(['--mapping', '--exts']); +const targetDirs: string[] = []; + +for (let i = 0; i < args.length; i++) { + if (args[i].startsWith('--')) { + if (FLAGS_WITH_VALUES.has(args[i])) i++; // skip flag value + continue; + } + targetDirs.push(args[i]); +} + +if (!targetDirs.length) { + console.error('Error: at least one target directory is required.'); + process.exit(1); +} + +// --------------------------------------------------------------------------- +// Color map — sourced from UrlHelper::get_default_color_map() (keys flipped) +// --------------------------------------------------------------------------- + +const DEFAULT_COLOR_MAP: ColorMap = { + '#ffffff': '--tutor-visual-gray-1', + '#ececed': '--tutor-visual-gray-2', + '#cecfd2': '--tutor-visual-gray-3', + '#2d3039': '--tutor-visual-gray-4', + '#4979e8': '--tutor-visual-brand-1', + '#a4bcf4': '--tutor-visual-brand-2', + '#dbe4fa': '--tutor-visual-brand-3', + '#28a745': '--tutor-visual-success-1', + '#1d0d0c': '--tutor-visual-critical-1', + '#fee4e2': '--tutor-visual-critical-2', + '#fde272': '--tutor-visual-caution-1', + '#a15c07': '--tutor-visual-caution-2', + '#542c0d': '--tutor-visual-caution-3', + '#ff8904': '--tutor-visual-orange-1', + '#cbfd78': '--tutor-visual-exception-1', + '#f4f433': '--tutor-visual-exception-2', + '#ede9fe': '--tutor-visual-exception-3', +}; + +const loadColorMap = (): ColorMap => { + let map: ColorMap = { ...DEFAULT_COLOR_MAP }; + + if (!mappingFile) return map; + + const mappingPath = path.resolve(PROJECT_ROOT, mappingFile); + + try { + const parsed = JSON.parse(fs.readFileSync(mappingPath, 'utf8')) as ColorMap; + const normalised = Object.fromEntries(Object.entries(parsed).map(([k, v]) => [k.toLowerCase(), v])); + map = { ...map, ...normalised }; + console.log(`Merged ${Object.keys(parsed).length} override(s) from "${mappingFile}"`); + } catch (err) { + console.error(`Failed to read mapping file "${mappingPath}": ${(err as Error).message}`); + process.exit(1); + } + + return map; +}; + +const colorMap = loadColorMap(); + +// --------------------------------------------------------------------------- +// Hex utilities +// --------------------------------------------------------------------------- + +// Matches 3- and 6-digit hex colours. +const HEX_RE = /(? { + const raw = hex.slice(1).toLowerCase(); + if (raw.length === 3) { + return '#' + raw[0] + raw[0] + raw[1] + raw[1] + raw[2] + raw[2]; + } + return '#' + raw; +}; + +// --------------------------------------------------------------------------- +// Directory walker +// --------------------------------------------------------------------------- + +const walkDir = (dir: string, exts: string[]): string[] => { + const results: string[] = []; + + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + if (entry.name.startsWith('.') || entry.name === 'node_modules') continue; + + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + results.push(...walkDir(fullPath, exts)); + } else if (exts.includes(path.extname(entry.name))) { + results.push(fullPath); + } + } + + return results; +}; + +// --------------------------------------------------------------------------- +// Core replacement +// --------------------------------------------------------------------------- + +interface UnmappedEntry { + file: string; // path relative to PROJECT_ROOT + line: number; + hex: string; // normalised 6-digit form +} + +const unmappedEntries: UnmappedEntry[] = []; +const colorRegistry = new Map(); // accumulated across all dirs + +const processFile = (filePath: string): ProcessResult => { + const original = fs.readFileSync(filePath, 'utf8'); + const lines = original.split('\n'); + let changed = false; + + // Build character-offset index for line-number lookup. + const lineOffsets: number[] = []; + let offset = 0; + for (const line of lines) { + lineOffsets.push(offset); + offset += line.length + 1; // +1 for the \n + } + + const rel = path.relative(PROJECT_ROOT, filePath); + + const updated = original.replace(HEX_RE, (match, _hex, matchOffset: number) => { + // Skip hex values that are already sitting inside a var() fallback + // e.g. var(--some-var, #ececed) — the #ececed should not be re-wrapped. + const before = original.slice(Math.max(0, matchOffset - 10), matchOffset); + if (/,\s*$/.test(before)) return match; + + const norm = normaliseHex(match); + const varName = colorMap[norm]; + + if (!varName) { + // Binary-search lineOffsets to find which line this match is on. + let lo = 0, + hi = lineOffsets.length - 1; + while (lo < hi) { + const mid = (lo + hi + 1) >> 1; + if (lineOffsets[mid] <= matchOffset) lo = mid; + else hi = mid - 1; + } + unmappedEntries.push({ file: rel, line: lo + 1, hex: norm }); + return match; + } + + colorRegistry.set(norm, varName); + changed = true; + // Always use the normalised 6-digit form as the fallback so that + // #fff and #ffffff in source files both produce the same output. + return `var(${varName}, ${norm})`; + }); + + return { changed, original, updated }; +}; + +// --------------------------------------------------------------------------- +// :root block +// --------------------------------------------------------------------------- + +const generateVarsBlock = (registry: Map): string => { + const lines = [':root {']; + + for (const [hex, varName] of [...registry.entries()].sort((a, b) => a[1].localeCompare(b[1]))) { + lines.push(` ${varName}: ${hex};`); + } + + lines.push('}'); + return lines.join('\n'); +}; + +// --------------------------------------------------------------------------- +// Process a single directory +// --------------------------------------------------------------------------- + +const processDir = (rawDir: string): DirSummary => { + const absDir = path.resolve(PROJECT_ROOT, rawDir); + + if (!fs.existsSync(absDir)) { + console.warn(`⚠ Directory not found, skipping: ${rawDir}`); + return { dir: rawDir, total: 0, modified: 0 }; + } + + const files = walkDir(absDir, extensions); + console.log(`šŸ“‚ ${rawDir} (${files.length} file(s))`); + + let modified = 0; + + for (const filePath of files) { + const { changed, original, updated } = processFile(filePath); + if (!changed) continue; + + modified++; + const rel = path.relative(PROJECT_ROOT, filePath); + console.log(` āœ ${rel}`); + + if (dryRun) { + const origLines = original.split('\n'); + const updtLines = updated.split('\n'); + for (let i = 0; i < origLines.length; i++) { + if (origLines[i] !== updtLines[i]) { + console.log(` line ${i + 1}:`); + console.log(` - ${origLines[i].trim()}`); + console.log(` + ${updtLines[i].trim()}`); + } + } + } else { + fs.writeFileSync(filePath, updated, 'utf8'); + } + } + + return { dir: rawDir, total: files.length, modified }; +}; + +// --------------------------------------------------------------------------- +// Main +// --------------------------------------------------------------------------- + +const main = (): void => { + console.log(`\nProject root: ${PROJECT_ROOT}`); + console.log(`Color map: ${Object.keys(colorMap).length} entries`); + console.log(`Dry run: ${dryRun ? 'yes' : 'no'}\n`); + + const summaries = targetDirs.map(processDir); + + const totalFiles = summaries.reduce((n, s) => n + s.total, 0); + const totalModified = summaries.reduce((n, s) => n + s.modified, 0); + const dirWord = targetDirs.length === 1 ? 'directory' : 'directories'; + + console.log( + `\n${dryRun ? '[DRY RUN] ' : ''}Modified ${totalModified} / ${totalFiles} file(s) across ${targetDirs.length} ${dirWord}`, + ); + + if (unmappedEntries.length) { + // Group by hex so each unknown colour is reported once with all its locations. + const byHex = new Map(); + for (const entry of unmappedEntries) { + const list = byHex.get(entry.hex) ?? []; + list.push(entry); + byHex.set(entry.hex, list); + } + + console.log(`\nāŒ ${byHex.size} unmapped colour(s) — left unchanged:`); + for (const [hex, entries] of [...byHex.entries()].sort()) { + console.log(`\n ${hex}`); + for (const { file, line } of entries) { + console.log(` ${file}:${line}`); + } + } + console.log(`\n Add them via --mapping or extend DEFAULT_COLOR_MAP in the script.`); + } + + if (colorRegistry.size && !noVarsBlock) { + console.log('\n── :root block (for reference) ──────────────────────────────'); + console.log(generateVarsBlock(colorRegistry)); + console.log('─────────────────────────────────────────────────────────────\n'); + } +}; + +main(); diff --git a/scripts/svgo-optimize.ts b/scripts/svgo-optimize.ts new file mode 100644 index 0000000000..3349d79dfd --- /dev/null +++ b/scripts/svgo-optimize.ts @@ -0,0 +1,27 @@ +import { execFileSync } from 'child_process'; +import { readFileSync } from 'fs'; +import { globSync } from 'fs'; +import { dirname, resolve } from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const SVGO_IGNORE = ''; +const CONFIG = resolve(__dirname, '../svgo.config.ts'); + +// Called from lint-staged (files passed as args) +// Called from npm script (no args, scan folder) +let files: string[] = process.argv.slice(2); + +if (files.length === 0) { + // npm run svgo — scan the folder + files = globSync('assets/icons/**/*.svg'); +} + +const filtered = files.filter((f) => { + const content = readFileSync(f, 'utf-8'); + return !content.includes(SVGO_IGNORE); +}); + +if (filtered.length === 0) process.exit(0); + +execFileSync('svgo', ['--config', CONFIG, ...filtered], { stdio: 'inherit' }); diff --git a/svgo.config.ts b/svgo.config.ts new file mode 100644 index 0000000000..fb622c6649 --- /dev/null +++ b/svgo.config.ts @@ -0,0 +1,15 @@ +import type { Config } from 'svgo'; + +const config: Config = { + multipass: false, + js2svg: { + pretty: false, + }, + plugins: [ + { + name: 'preset-default', + }, + ], +}; + +export default config;