Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(inlineStyles): remove redundant presentation attrs #1829

Merged
merged 3 commits into from
Nov 11, 2023

Conversation

SethFalco
Copy link
Member

@SethFalco SethFalco commented Nov 10, 2023

SVGs can have the same presentation attribute declared redundantly in both the node attributes and <style> tag.

This wouldn't break anything, but we can shave off a few more bytes by dropping the attribute in this case.

We drop the attribute instead of the style because the style has more priority. If we dropped the style, it could be the style of another selector with a lower specificity would be used instead, affecting rendering.

Chores

  • Refactors parts of the inlineStyles plugin.
  • Creates the includesAttrSelector utility, so we don't remove an attribute if that's used as part of a CSS selector elsewhere.
  • Adds a test for @-webkit-keyframes which was missed on a previous PR.
  • Revise some of the documentation.

@SethFalco SethFalco force-pushed the feat/inline-styles/redundant-attrs branch 2 times, most recently from 61550ad to ad200ad Compare November 10, 2023 23:40
@SethFalco SethFalco force-pushed the feat/inline-styles/redundant-attrs branch from ad200ad to 50ac834 Compare November 11, 2023 12:41
@SethFalco SethFalco merged commit 4c2cc1b into svg:main Nov 11, 2023
6 checks passed
@SethFalco SethFalco deleted the feat/inline-styles/redundant-attrs branch November 18, 2023 18:18
nono referenced this pull request in cozy/cozy-stack Nov 20, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.3` -> `3.0.4`](https://renovatebot.com/diffs/npm/svgo/3.0.3/3.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>svg/svgo (svgo)</summary>

### [`v3.0.4`](https://togithub.com/svg/svgo/releases/tag/v3.0.4)

[Compare Source](https://togithub.com/svg/svgo/compare/v3.0.3...v3.0.4)

Includes various bug fixes for existing plugins and a new optimization.
Also splits `removeXMLNS`, which removed XLink, into two separate
plugins, `removeXMLNS` and `removeXlink`.

#### What's Changed

##### Default Behavior

- **Remove XML Namespace**, no longer removes the XLink (`xmlns:xlink`)
namespace. If that is desirable, you should enable the new [Remove
XLink](https://svgo.dev/docs/plugins/remove-xlink/) (`removeXlink`)
plugin, which does more while being safer. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

##### Bug Fixes

- **Convert Path Commands**, ignore instances where transform applied
via style tag. By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1830](https://togithub.com/svg/svgo/pull/1830)
- **Inline Styles**, inline properties with the same specificity in the
order that they appear in the stylesheet. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1831](https://togithub.com/svg/svgo/pull/1831)
- **Inline Styles**, don't remove class or id from node if it's
traversed in another CSS selector. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1832](https://togithub.com/svg/svgo/pull/1832)
and
[https://github.com/svg/svgo/pull/1836](https://togithub.com/svg/svgo/pull/1836)
- Don't trim
[`pre`](https://developer.mozilla.org/docs/Web/HTML/Element/pre)
elements in
[`foreignObject`](https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject).
By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1796](https://togithub.com/svg/svgo/pull/1796)
- Don't crash when encountering
[`@-webkit-keyframes`](https://webkit.org/blog/324/css-animation-2/) in
`<style>` node. By [@&#8203;SethFalco](https://togithub.com/SethFalco)
in
[https://github.com/svg/svgo/pull/1826](https://togithub.com/svg/svgo/pull/1826)

##### SVG Optimization

- **Convert Path Commands**, convert to `z` command if going back to
initial position, or drop `z` if redundant. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1822](https://togithub.com/svg/svgo/pull/1822)
- **Inline Styles**, when inlining a CSS property that's already
declared in a presentation attribute of the node, drop the attribute. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1829](https://togithub.com/svg/svgo/pull/1829)
- **Remove XLink**, new plugin that removes the XLink (`xmlns:xlink`)
namespace and migrates from XLink attributes to the SVG 2 equivalent.
Disabled by default. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

#### Metrics

Before and after using vectors from various sources, with the default
preset of each respective version:

| SVG | Original | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.738 KiB
| 4.735 KiB | ⬇️ 0.003 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.699 KiB | 550.593 KiB | ⬇️ 0.106 KiB |
| [tldr-pages
Banner](https://togithub.com/tldr-pages/tldr/blob/main/images/banner.svg)
| 2.071 KiB | 1.07 KiB | 1.07 KiB | |
| [Wikipedia
Logo](https://en.wikipedia.org/wiki/File:Wikipedia-logo-v2.svg) |
161.552 KiB | 118.441 KiB | 117.152 KiB | ⬇️ 1.289 KiB |

Before and after of the browser bundle of each respective version:

| | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|
| svgo.browser.js | 651.7 kB | 656.9 kB | ⬆️  5.2 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 6am on Monday" in timezone
Europe/Paris, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cozy/cozy-stack).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->
gfellerph referenced this pull request in swisspost/design-system Nov 20, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@changesets/parse](https://togithub.com/changesets/changesets/tree/main#readme)
([source](https://togithub.com/changesets/changesets)) | [`0.1.0` ->
`0.3.16`](https://renovatebot.com/diffs/npm/@changesets%2fparse/0.1.0/0.3.16)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@changesets%2fparse/0.3.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@changesets%2fparse/0.3.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@changesets%2fparse/0.1.0/0.3.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@changesets%2fparse/0.1.0/0.3.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.18.9` ->
`18.18.10`](https://renovatebot.com/diffs/npm/@types%2fnode/18.18.9/18.18.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.18.9/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.18.9/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.17.19` ->
`18.18.10`](https://renovatebot.com/diffs/npm/@types%2fnode/18.17.19/18.18.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.17.19/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.17.19/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
| [`6.11.0` ->
`6.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.11.0/6.12.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
| [`6.11.0` ->
`6.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.11.0/6.12.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [core-js](https://togithub.com/zloirock/core-js) | [`3.33.2` ->
`3.33.3`](https://renovatebot.com/diffs/npm/core-js/3.33.2/3.33.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/core-js/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/core-js/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/core-js/3.33.2/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/core-js/3.33.2/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.53.0` ->
`8.54.0`](https://renovatebot.com/diffs/npm/eslint/8.53.0/8.54.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.53.0/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.53.0/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[start-server-and-test](https://togithub.com/bahmutov/start-server-and-test)
| [`2.0.2` ->
`2.0.3`](https://renovatebot.com/diffs/npm/start-server-and-test/2.0.2/2.0.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/start-server-and-test/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/start-server-and-test/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/start-server-and-test/2.0.2/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/start-server-and-test/2.0.2/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.3` -> `3.0.4`](https://renovatebot.com/diffs/npm/svgo/3.0.3/3.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>changesets/changesets (@&#8203;changesets/parse)</summary>

###
[`v0.3.16`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.16)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.15...@changesets/parse@0.3.16)

##### Patch Changes

- Updated dependencies
\[[`521205d`](https://togithub.com/changesets/changesets/commit/521205dc8c70fe71b181bd3c4bb7c9c6d2e721d2)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).2.1

###
[`v0.3.15`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.15)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.14...@changesets/parse@0.3.15)

##### Patch Changes

- Updated dependencies
\[[`8c08469`](https://togithub.com/changesets/changesets/commit/8c0846977597ddaf51aaeb35f1f0f9428bf8ba14)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).2.0

###
[`v0.3.14`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.14)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.13...@changesets/parse@0.3.14)

##### Patch Changes

- Updated dependencies
\[[`dd9b76f`](https://togithub.com/changesets/changesets/commit/dd9b76f162a546ae8b412e0cb10277f971f3585e)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).1.0

###
[`v0.3.13`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.13)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.12...@changesets/parse@0.3.13)

##### Patch Changes

- Updated dependencies
\[[`c87eba6`](https://togithub.com/changesets/changesets/commit/c87eba6f80a34563b7382f87472c29f6dafb546c)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).0.0

###
[`v0.3.12`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.12)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.11...@changesets/parse@0.3.12)

##### Patch Changes

- Updated dependencies
\[[`27a5a82`](https://togithub.com/changesets/changesets/commit/27a5a82188914570d192162f9d045dfd082a3c15)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).1.0

###
[`v0.3.11`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.11)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.10...@changesets/parse@0.3.11)

##### Patch Changes

- [#&#8203;740](https://togithub.com/changesets/changesets/pull/740)
[`957e39c`](https://togithub.com/changesets/changesets/commit/957e39c21549dd91e03faa5cd30e44e4c3d7331f)
Thanks [@&#8203;akphi](https://togithub.com/akphi)! - Fixed an issue
with failing to parse changesets containing a completely empty summary.

###
[`v0.3.10`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.10)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.9...@changesets/parse@0.3.10)

##### Patch Changes

- Updated dependencies
\[[`9a993ba`](https://togithub.com/atlassian/changesets/commit/9a993ba09629c1620d749432520470cec49d3a96)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).0.2

###
[`v0.3.9`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.9)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.8...@changesets/parse@0.3.9)

##### Patch Changes

- Updated dependencies
\[[`e89e28a`](https://togithub.com/atlassian/changesets/commit/e89e28a05f5fa43307db73812a6bcd269b62ddee)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).0.1

###
[`v0.3.8`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.8)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.7...@changesets/parse@0.3.8)

##### Patch Changes

- Updated dependencies
\[[`de2b4a5`](https://togithub.com/atlassian/changesets/commit/de2b4a5a7b244a37d94625bcb70ecde9dde5b612)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).0.0

###
[`v0.3.7`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.7)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.6...@changesets/parse@0.3.7)

##### Patch Changes

-
[`5b6005e`](https://togithub.com/atlassian/changesets/commit/5b6005e0349a105b3d138fccdb22d13de8949862)
[#&#8203;462](https://togithub.com/atlassian/changesets/pull/462) Thanks
[@&#8203;Andarist](https://togithub.com/Andarist)! - Fixed an issue with
failing to parse changesets containing Windows newlines.

###
[`v0.3.6`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.6)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.5...@changesets/parse@0.3.6)

##### Patch Changes

- Updated dependencies
\[[`2b49d66`](https://togithub.com/atlassian/changesets/commit/2b49d668ecaa1333bc5c7c5be4648dda1b11528d)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;3](https://togithub.com/3).0.0

###
[`v0.3.5`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.5)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.4...@changesets/parse@0.3.5)

##### Patch Changes

-
[`1706fb7`](https://togithub.com/atlassian/changesets/commit/1706fb751ecc2f5a792c42f467b2063078d58716)
[#&#8203;321](https://togithub.com/atlassian/changesets/pull/321) Thanks
[@&#8203;mitchellhamilton](https://togithub.com/mitchellhamilton)! - Fix
TypeScript declarations

- Updated dependencies
\[[`1706fb7`](https://togithub.com/atlassian/changesets/commit/1706fb751ecc2f5a792c42f467b2063078d58716)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;2](https://togithub.com/2).0.1

###
[`v0.3.4`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.4)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.3...@changesets/parse@0.3.4)

##### Patch Changes

- Updated dependencies
\[[`011d57f`](https://togithub.com/atlassian/changesets/commit/011d57f1edf9e37f75a8bef4f918e72166af096e)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;2](https://togithub.com/2).0.0

###
[`v0.3.3`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.3)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.2...@changesets/parse@0.3.3)

##### Patch Changes

-
[`04ddfd7`](https://togithub.com/atlassian/changesets/commit/04ddfd7c3acbfb84ef9c92873fe7f9dea1f5145c)
[#&#8203;305](https://togithub.com/atlassian/changesets/pull/305) Thanks
[@&#8203;Noviny](https://togithub.com/Noviny)! - Add link to changelog
in readme

- Updated dependencies
\[[`04ddfd7`](https://togithub.com/atlassian/changesets/commit/04ddfd7c3acbfb84ef9c92873fe7f9dea1f5145c),
[`e56928b`](https://togithub.com/atlassian/changesets/commit/e56928bbd6f9096def06ac37487bdbf28efec9d1)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;1](https://togithub.com/1).0.1

###
[`v0.3.2`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.2)

##### Patch Changes

-
[`41e2e3d`](https://togithub.com/atlassian/changesets/commit/41e2e3dd1053ff2f35a1a07e60793c9099f26997)
[#&#8203;292](https://togithub.com/atlassian/changesets/pull/292) Thanks
[@&#8203;acheronfail](https://togithub.com/acheronfail)! - Fix
`repository` field in package.json

- Updated dependencies
\[[`41e2e3d`](https://togithub.com/atlassian/changesets/commit/41e2e3dd1053ff2f35a1a07e60793c9099f26997),
[`cc8c921`](https://togithub.com/atlassian/changesets/commit/cc8c92143d4c4b7cca8b9917dfc830a40b5cda20),
[`cc8c921`](https://togithub.com/atlassian/changesets/commit/cc8c92143d4c4b7cca8b9917dfc830a40b5cda20),
[`2363366`](https://togithub.com/atlassian/changesets/commit/2363366756d1b15bddf6d803911baccfca03cbdf)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;1](https://togithub.com/1).0.0

###
[`v0.3.0`](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.2.1...@changesets/parse@0.3.0)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.2.1...@changesets/parse@0.3.0)

###
[`v0.2.1`](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.2.0...@changesets/parse@0.2.1)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.2.0...@changesets/parse@0.2.1)

###
[`v0.2.0`](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.2...@changesets/parse@0.2.0)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.2...@changesets/parse@0.2.0)

###
[`v0.1.2`](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.0...@changesets/parse@0.1.2)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.0...@changesets/parse@0.1.2)

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6120-2023-11-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.11.0...v6.12.0)

##### Bug Fixes

- **eslint-plugin:** \[class-methods-use-this] detect a problematic case
for private/protected members if `ignoreClassesThatImplementAnInterface`
is set
([#&#8203;7705](https://togithub.com/typescript-eslint/typescript-eslint/issues/7705))
([155aa1f](https://togithub.com/typescript-eslint/typescript-eslint/commit/155aa1f533d1fe23da3c66f9832343faf4866d85))
- **eslint-plugin:** \[no-unnecessary-condition] fix false positive with
computed member access and branded key type
([#&#8203;7706](https://togithub.com/typescript-eslint/typescript-eslint/issues/7706))
([f151b26](https://togithub.com/typescript-eslint/typescript-eslint/commit/f151b26d2178a617e82ad6a0279e3145e303f4f8))
- **eslint-plugin:** \[switch-exhaustiveness-check] enum members with
new line or single quotes are not being fixed correctly
([#&#8203;7806](https://togithub.com/typescript-eslint/typescript-eslint/issues/7806))
([a034d0a](https://togithub.com/typescript-eslint/typescript-eslint/commit/a034d0a3856aa07bd2d52b557fa33c7a88e9e511)),
closes
[#&#8203;7768](https://togithub.com/typescript-eslint/typescript-eslint/issues/7768)

##### Features

- \[member-ordering] add accessor support for member-ordering
([#&#8203;7927](https://togithub.com/typescript-eslint/typescript-eslint/issues/7927))
([3c8312d](https://togithub.com/typescript-eslint/typescript-eslint/commit/3c8312d1e135dc65fa41f629993cd03ed82e3255))
- **eslint-plugin:** \[switch-exhaustiveness-check] add
requireDefaultForNonUnion option
([#&#8203;7880](https://togithub.com/typescript-eslint/typescript-eslint/issues/7880))
([4cfcd45](https://togithub.com/typescript-eslint/typescript-eslint/commit/4cfcd451efb2563130896e42b45252909932c679))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6120-2023-11-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.11.0...v6.12.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>zloirock/core-js (core-js)</summary>

###
[`v3.33.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3333---20231120)

[Compare
Source](https://togithub.com/zloirock/core-js/compare/v3.33.2...v3.33.3)

- Fixed an issue getting the global object on Duktape,
[#&#8203;1303](https://togithub.com/zloirock/core-js/issues/1303)
- Avoid sharing internal `[[DedentMap]]` from [`String.dedent`
proposal](https://togithub.com/tc39/proposal-string-dedent) between
`core-js` instances before stabilization of the proposal
-   Some internal untangling
-   Compat data improvements:
- Added [Deno 1.38](https://deno.com/blog/v1.38) compat data mapping
-
[`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async)
marked as [supported from Deno
1.38](https://togithub.com/denoland/deno/pull/21048)
- [`Symbol.{ dispose, asyncDispose
}`](https://togithub.com/tc39/proposal-explicit-resource-management)
marked as [supported from Deno
1.38](https://togithub.com/denoland/deno/pull/20845)
    -   Added Opera Android 79 compat data mapping
    -   Added Oculus Quest Browser 30 compat data mapping
    -   Updated Electron 28 and 29 compat data mapping

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.54.0`](https://togithub.com/eslint/eslint/releases/tag/v8.54.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.53.0...v8.54.0)

#### Features

-
[`a7a883b`](https://togithub.com/eslint/eslint/commit/a7a883bd6ba4f140b60cbbb2be5b53d750f6c8db)
feat: for-direction rule add check for condition in reverse order
([#&#8203;17755](https://togithub.com/eslint/eslint/issues/17755))
(Angelo Annunziata)
-
[`1452dc9`](https://togithub.com/eslint/eslint/commit/1452dc9f12c45c05d7c569f737221f0d988ecef1)
feat: Add suggestions to no-console
([#&#8203;17680](https://togithub.com/eslint/eslint/issues/17680)) (Joel
Mathew Koshy)
-
[`21ebf8a`](https://togithub.com/eslint/eslint/commit/21ebf8a811be9f4b009cf70a10be5062d4fdc736)
feat: update `no-array-constructor` rule
([#&#8203;17711](https://togithub.com/eslint/eslint/issues/17711))
(Francesco Trotta)

#### Bug Fixes

-
[`98926e6`](https://togithub.com/eslint/eslint/commit/98926e6e7323e5dd12a9f016cb558144296665af)
fix: Ensure that extra data is not accidentally stored in the cache file
([#&#8203;17760](https://togithub.com/eslint/eslint/issues/17760))
(Milos Djermanovic)
-
[`e8cf9f6`](https://togithub.com/eslint/eslint/commit/e8cf9f6a524332293f8b2c90a2db4a532e47d919)
fix: Make dark scroll bar in dark theme
([#&#8203;17753](https://togithub.com/eslint/eslint/issues/17753))
(Pavel)
-
[`3cbeaad`](https://togithub.com/eslint/eslint/commit/3cbeaad7b943c153937ce34365cec2c406f2b98b)
fix: Use `cwd` constructor option as config `basePath` in Linter
([#&#8203;17705](https://togithub.com/eslint/eslint/issues/17705))
(Milos Djermanovic)

#### Documentation

-
[`becfdd3`](https://togithub.com/eslint/eslint/commit/becfdd39b25d795e56c9a13eb3e77af6b9c86e8a)
docs: Make clear when rules are removed
([#&#8203;17728](https://togithub.com/eslint/eslint/issues/17728))
(Nicholas C. Zakas)
-
[`05d6e99`](https://togithub.com/eslint/eslint/commit/05d6e99153ed6d94eb30f46c57609371918a41f3)
docs: update "Submit a Pull Request" page
([#&#8203;17712](https://togithub.com/eslint/eslint/issues/17712))
(Francesco Trotta)
-
[`eb2279e`](https://togithub.com/eslint/eslint/commit/eb2279e5148cee8fdea7dae614f4f8af7a2d06c3)
docs: display info about deprecated rules
([#&#8203;17749](https://togithub.com/eslint/eslint/issues/17749))
(Percy Ma)
-
[`d245326`](https://togithub.com/eslint/eslint/commit/d24532601e64714ac5d08507e05aa5c14ecd1d5a)
docs: Correct working in migrating plugin docs
([#&#8203;17722](https://togithub.com/eslint/eslint/issues/17722))
(Filip Tammergård)

#### Chores

-
[`d644de9`](https://togithub.com/eslint/eslint/commit/d644de9a4b593b565617303a095bc9aa69e7b768)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).54.0
([#&#8203;17773](https://togithub.com/eslint/eslint/issues/17773))
(Milos Djermanovic)
-
[`1e6e314`](https://togithub.com/eslint/eslint/commit/1e6e31415cc429a3a9fc64b2ec03df0e0ec0c91b)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-
[`6fb8805`](https://togithub.com/eslint/eslint/commit/6fb8805310afe7476d6c404f172177a6d15fcf11)
chore: Fixed grammar in issue_templates/rule_change
([#&#8203;17770](https://togithub.com/eslint/eslint/issues/17770)) (Joel
Mathew Koshy)
-
[`85db724`](https://togithub.com/eslint/eslint/commit/85db7243ddb8706ed60ab64a7ddf604d0d7de493)
chore: upgrade `markdownlint` to 0.31.1
([#&#8203;17754](https://togithub.com/eslint/eslint/issues/17754))
(Nitin Kumar)
-
[`6d470d2`](https://togithub.com/eslint/eslint/commit/6d470d2e74535761bd56dcb1c021b463ef9e8a9c)
chore: update dependency recast to ^0.23.0
([#&#8203;17736](https://togithub.com/eslint/eslint/issues/17736))
(renovate\[bot])
-
[`b7121b5`](https://togithub.com/eslint/eslint/commit/b7121b590d578c9c9b38ee481313317f30e54817)
chore: update dependency markdownlint-cli to ^0.37.0
([#&#8203;17735](https://togithub.com/eslint/eslint/issues/17735))
(renovate\[bot])
-
[`633b9a1`](https://togithub.com/eslint/eslint/commit/633b9a19752b6a22ab4d6c824f27a75ac0e4151b)
chore: update dependency regenerator-runtime to ^0.14.0
([#&#8203;17739](https://togithub.com/eslint/eslint/issues/17739))
(renovate\[bot])
-
[`acac16f`](https://togithub.com/eslint/eslint/commit/acac16fdf8540f7ba86cf637e3c1b253bd35a268)
chore: update dependency vite-plugin-commonjs to ^0.10.0
([#&#8203;17740](https://togithub.com/eslint/eslint/issues/17740))
(renovate\[bot])
-
[`ba8ca7e`](https://togithub.com/eslint/eslint/commit/ba8ca7e3debcba68ee7015b9221cf5acd7870206)
chore: add .github/renovate.json5
([#&#8203;17567](https://togithub.com/eslint/eslint/issues/17567)) (Josh
Goldberg ✨)

</details>

<details>
<summary>bahmutov/start-server-and-test
(start-server-and-test)</summary>

###
[`v2.0.3`](https://togithub.com/bahmutov/start-server-and-test/releases/tag/v2.0.3)

[Compare
Source](https://togithub.com/bahmutov/start-server-and-test/compare/v2.0.2...v2.0.3)

##### Bug Fixes

- **deps:** update dependency wait-on to v7.2.0
([#&#8203;374](https://togithub.com/bahmutov/start-server-and-test/issues/374))
([ad35c2e](https://togithub.com/bahmutov/start-server-and-test/commit/ad35c2e4128615d7bc6e84d09761ae5d1fbc8da2))

</details>

<details>
<summary>svg/svgo (svgo)</summary>

### [`v3.0.4`](https://togithub.com/svg/svgo/releases/tag/v3.0.4)

[Compare Source](https://togithub.com/svg/svgo/compare/v3.0.3...v3.0.4)

Includes various bug fixes for existing plugins and a new optimization.
Also splits `removeXMLNS`, which removed XLink, into two separate
plugins, `removeXMLNS` and `removeXlink`.

#### What's Changed

##### Default Behavior

- **Remove XML Namespace**, no longer removes the XLink (`xmlns:xlink`)
namespace. If that is desirable, you should enable the new [Remove
XLink](https://svgo.dev/docs/plugins/remove-xlink/) (`removeXlink`)
plugin, which does more while being safer. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

##### Bug Fixes

- **Convert Path Commands**, ignore instances where transform applied
via style tag. By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1830](https://togithub.com/svg/svgo/pull/1830)
- **Inline Styles**, inline properties with the same specificity in the
order that they appear in the stylesheet. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1831](https://togithub.com/svg/svgo/pull/1831)
- **Inline Styles**, don't remove class or id from node if it's
traversed in another CSS selector. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1832](https://togithub.com/svg/svgo/pull/1832)
and
[https://github.com/svg/svgo/pull/1836](https://togithub.com/svg/svgo/pull/1836)
- Don't trim
[`pre`](https://developer.mozilla.org/docs/Web/HTML/Element/pre)
elements in
[`foreignObject`](https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject).
By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1796](https://togithub.com/svg/svgo/pull/1796)
- Don't crash when encountering
[`@-webkit-keyframes`](https://webkit.org/blog/324/css-animation-2/) in
`<style>` node. By [@&#8203;SethFalco](https://togithub.com/SethFalco)
in
[https://github.com/svg/svgo/pull/1826](https://togithub.com/svg/svgo/pull/1826)

##### SVG Optimization

- **Convert Path Commands**, convert to `z` command if going back to
initial position, or drop `z` if redundant. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1822](https://togithub.com/svg/svgo/pull/1822)
- **Inline Styles**, when inlining a CSS property that's already
declared in a presentation attribute of the node, drop the attribute. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1829](https://togithub.com/svg/svgo/pull/1829)
- **Remove XLink**, new plugin that removes the XLink (`xmlns:xlink`)
namespace and migrates from XLink attributes to the SVG 2 equivalent.
Disabled by default. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

#### Metrics

Before and after using vectors from various sources, with the default
preset of each respective version:

| SVG | Original | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.738 KiB
| 4.735 KiB | ⬇️ 0.003 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.699 KiB | 550.593 KiB | ⬇️ 0.106 KiB |
| [tldr-pages
Banner](https://togithub.com/tldr-pages/tldr/blob/main/images/banner.svg)
| 2.071 KiB | 1.07 KiB | 1.07 KiB | |
| [Wikipedia
Logo](https://en.wikipedia.org/wiki/File:Wikipedia-logo-v2.svg) |
161.552 KiB | 118.441 KiB | 117.152 KiB | ⬇️ 1.289 KiB |

Before and after of the browser bundle of each respective version:

| | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|
| svgo.browser.js | 651.7 kB | 656.9 kB | ⬆️  5.2 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" in timezone
Europe/Zurich, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/swisspost/design-system).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Philipp Gfeller <philipp.gfeller@post.ch>
sungik-choi referenced this pull request in channel-io/bezier-react Nov 22, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.3` -> `3.0.4`](https://renovatebot.com/diffs/npm/svgo/3.0.3/3.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>svg/svgo (svgo)</summary>

### [`v3.0.4`](https://togithub.com/svg/svgo/releases/tag/v3.0.4)

[Compare Source](https://togithub.com/svg/svgo/compare/v3.0.3...v3.0.4)

Includes various bug fixes for existing plugins and a new optimization.
Also splits `removeXMLNS`, which removed XLink, into two separate
plugins, `removeXMLNS` and `removeXlink`.

#### What's Changed

##### Default Behavior

- **Remove XML Namespace**, no longer removes the XLink (`xmlns:xlink`)
namespace. If that is desirable, you should enable the new [Remove
XLink](https://svgo.dev/docs/plugins/remove-xlink/) (`removeXlink`)
plugin, which does more while being safer. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

##### Bug Fixes

- **Convert Path Commands**, ignore instances where transform applied
via style tag. By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1830](https://togithub.com/svg/svgo/pull/1830)
- **Inline Styles**, inline properties with the same specificity in the
order that they appear in the stylesheet. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1831](https://togithub.com/svg/svgo/pull/1831)
- **Inline Styles**, don't remove class or id from node if it's
traversed in another CSS selector. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1832](https://togithub.com/svg/svgo/pull/1832)
and
[https://github.com/svg/svgo/pull/1836](https://togithub.com/svg/svgo/pull/1836)
- Don't trim
[`pre`](https://developer.mozilla.org/docs/Web/HTML/Element/pre)
elements in
[`foreignObject`](https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject).
By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1796](https://togithub.com/svg/svgo/pull/1796)
- Don't crash when encountering
[`@-webkit-keyframes`](https://webkit.org/blog/324/css-animation-2/) in
`<style>` node. By [@&#8203;SethFalco](https://togithub.com/SethFalco)
in
[https://github.com/svg/svgo/pull/1826](https://togithub.com/svg/svgo/pull/1826)

##### SVG Optimization

- **Convert Path Commands**, convert to `z` command if going back to
initial position, or drop `z` if redundant. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1822](https://togithub.com/svg/svgo/pull/1822)
- **Inline Styles**, when inlining a CSS property that's already
declared in a presentation attribute of the node, drop the attribute. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1829](https://togithub.com/svg/svgo/pull/1829)
- **Remove XLink**, new plugin that removes the XLink (`xmlns:xlink`)
namespace and migrates from XLink attributes to the SVG 2 equivalent.
Disabled by default. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

#### Metrics

Before and after using vectors from various sources, with the default
preset of each respective version:

| SVG | Original | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.738 KiB
| 4.735 KiB | ⬇️ 0.003 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.699 KiB | 550.593 KiB | ⬇️ 0.106 KiB |
| [tldr-pages
Banner](https://togithub.com/tldr-pages/tldr/blob/main/images/banner.svg)
| 2.071 KiB | 1.07 KiB | 1.07 KiB | |
| [Wikipedia
Logo](https://en.wikipedia.org/wiki/File:Wikipedia-logo-v2.svg) |
161.552 KiB | 118.441 KiB | 117.152 KiB | ⬇️ 1.289 KiB |

Before and after of the browser bundle of each respective version:

| | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|
| svgo.browser.js | 651.7 kB | 656.9 kB | ⬆️  5.2 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on Monday after 10am before 7pm" in
timezone Asia/Seoul, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/channel-io/bezier-react).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ed Sungik Choi <sungik.dev@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant