From 76fdfc1cac0ae67da0ab18d8cfd4e7889d54656f Mon Sep 17 00:00:00 2001 From: Dani Sandoval Date: Wed, 27 May 2026 11:26:24 -0600 Subject: [PATCH 1/5] test(Icon): add visual regression baseline before CSS Modules migration --- src/components/Icon/Icon.stories.tsx | 87 +++- tests/utils/icon.spec.ts | 438 ++++++++++++++++++ .../icon-custom-color-dark-chromium-linux.png | Bin 0 -> 728 bytes ...icon-custom-color-light-chromium-linux.png | Bin 0 -> 728 bytes ...ustom-width-height-dark-chromium-linux.png | Bin 0 -> 735 bytes ...stom-width-height-light-chromium-linux.png | Bin 0 -> 792 bytes .../icon-default-md-dark-chromium-linux.png | Bin 0 -> 678 bytes .../icon-default-md-light-chromium-linux.png | Bin 0 -> 719 bytes .../icon-flag-asset-dark-chromium-linux.png | Bin 0 -> 709 bytes .../icon-flag-asset-light-chromium-linux.png | Bin 0 -> 709 bytes .../icon-logo-asset-dark-chromium-linux.png | Bin 0 -> 346 bytes .../icon-logo-asset-light-chromium-linux.png | Bin 0 -> 401 bytes ...icon-payment-asset-dark-chromium-linux.png | Bin 0 -> 532 bytes ...con-payment-asset-light-chromium-linux.png | Bin 0 -> 532 bytes .../icon-size-lg-dark-chromium-linux.png | Bin 0 -> 744 bytes .../icon-size-lg-light-chromium-linux.png | Bin 0 -> 796 bytes .../icon-size-md-dark-chromium-linux.png | Bin 0 -> 678 bytes .../icon-size-md-light-chromium-linux.png | Bin 0 -> 719 bytes .../icon-size-sm-dark-chromium-linux.png | Bin 0 -> 538 bytes .../icon-size-sm-light-chromium-linux.png | Bin 0 -> 551 bytes .../icon-size-xl-dark-chromium-linux.png | Bin 0 -> 978 bytes .../icon-size-xl-light-chromium-linux.png | Bin 0 -> 1059 bytes .../icon-size-xs-dark-chromium-linux.png | Bin 0 -> 434 bytes .../icon-size-xs-light-chromium-linux.png | Bin 0 -> 457 bytes .../icon-size-xxl-dark-chromium-linux.png | Bin 0 -> 1904 bytes .../icon-size-xxl-light-chromium-linux.png | Bin 0 -> 2054 bytes .../icon-state-danger-dark-chromium-linux.png | Bin 0 -> 1185 bytes ...icon-state-danger-light-chromium-linux.png | Bin 0 -> 1187 bytes .../icon-state-info-dark-chromium-linux.png | Bin 0 -> 1222 bytes .../icon-state-info-light-chromium-linux.png | Bin 0 -> 1140 bytes ...icon-state-success-dark-chromium-linux.png | Bin 0 -> 1216 bytes ...con-state-success-light-chromium-linux.png | Bin 0 -> 1209 bytes ...n-state-success-sm-dark-chromium-linux.png | Bin 0 -> 893 bytes ...-state-success-sm-light-chromium-linux.png | Bin 0 -> 898 bytes ...n-state-success-xl-dark-chromium-linux.png | Bin 0 -> 2033 bytes ...-state-success-xl-light-chromium-linux.png | Bin 0 -> 1989 bytes ...icon-state-warning-dark-chromium-linux.png | Bin 0 -> 1181 bytes ...con-state-warning-light-chromium-linux.png | Bin 0 -> 1177 bytes 38 files changed, 524 insertions(+), 1 deletion(-) create mode 100644 tests/utils/icon.spec.ts create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-default-md-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-flag-asset-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-flag-asset-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-logo-asset-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-sm-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-xxl-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-size-xxl-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-danger-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-success-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-warning-dark-chromium-linux.png create mode 100644 tests/utils/icon.spec.ts-snapshots/icon-state-warning-light-chromium-linux.png diff --git a/src/components/Icon/Icon.stories.tsx b/src/components/Icon/Icon.stories.tsx index 51335939f..cfabcd136 100644 --- a/src/components/Icon/Icon.stories.tsx +++ b/src/components/Icon/Icon.stories.tsx @@ -3,7 +3,7 @@ import LogosLight from '@/components/Assets/Logos/system/LogosLight'; import FlagsLight from '@/components/Assets/Flags/system/FlagsLight'; import PaymentsLight from '@/components/Assets/Payments/system/PaymentsLight'; import { Icon } from '@/components/Icon'; -import { IconName, IconProps } from '@/components/Icon/Icon.types'; +import { IconName, IconProps, ImageType } from '@/components/Icon/Icon.types'; import { ICONS_MAP } from '@/components/Icon/IconCommon'; import { Container } from '@/components/Container'; import { styled } from 'styled-components'; @@ -55,6 +55,91 @@ export const Playground: Story = { render: args => , }; +const IconHarness = (props: ImageType) => ( +
+ +
+); + +export const DefaultMd: Story = { + render: () => , +}; + +export const SizeXs: Story = { + render: () => , +}; + +export const SizeSm: Story = { + render: () => , +}; + +export const SizeMd: Story = { + render: () => , +}; + +export const SizeLg: Story = { + render: () => , +}; + +export const SizeXl: Story = { + render: () => , +}; + +export const SizeXxl: Story = { + render: () => , +}; + +export const StateSuccess: Story = { + render: () => , +}; + +export const StateWarning: Story = { + render: () => , +}; + +export const StateDanger: Story = { + render: () => , +}; + +export const StateInfo: Story = { + render: () => , +}; + +export const StateSuccessSm: Story = { + render: () => , +}; + +export const StateSuccessXl: Story = { + render: () => , +}; + +export const CustomColor: Story = { + render: () => , +}; + +export const CustomWidthHeight: Story = { + render: () => , +}; + +export const FlagAsset: Story = { + render: () => , +}; + +export const LogoAsset: Story = { + render: () => , +}; + +export const PaymentAsset: Story = { + render: () => , +}; + type IconGalleryProps = { name: IconName; }; diff --git a/tests/utils/icon.spec.ts b/tests/utils/icon.spec.ts new file mode 100644 index 000000000..8ca1ca3c1 --- /dev/null +++ b/tests/utils/icon.spec.ts @@ -0,0 +1,438 @@ +import { test as it, expect } from '@playwright/test'; +import { getStoryUrl } from './index'; + +const { describe, use } = it; + +const harnessLocator = '[data-testid="icon-harness"]'; + +describe('Icon Visual Regression', () => { + describe('Light Theme (Storybook Global)', () => { + describe('Size Variants', () => { + it('default size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--default-md', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-default-md-light.png', { + maxDiffPixels: 100, + }); + }); + + it('xs size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-xs', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-xs-light.png', { + maxDiffPixels: 100, + }); + }); + + it('sm size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-sm', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-sm-light.png', { + maxDiffPixels: 100, + }); + }); + + it('md size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-md', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-md-light.png', { + maxDiffPixels: 100, + }); + }); + + it('lg size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-lg', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-lg-light.png', { + maxDiffPixels: 100, + }); + }); + + it('xl size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-xl', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-xl-light.png', { + maxDiffPixels: 100, + }); + }); + + it('xxl size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-xxl', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-xxl-light.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('State Variants', () => { + it('success state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-success', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-success-light.png', { + maxDiffPixels: 100, + }); + }); + + it('warning state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-warning', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-warning-light.png', { + maxDiffPixels: 100, + }); + }); + + it('danger state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-danger', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-danger-light.png', { + maxDiffPixels: 100, + }); + }); + + it('info state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-info', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-info-light.png', { + maxDiffPixels: 100, + }); + }); + + it('success state with sm size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-success-sm', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-success-sm-light.png', { + maxDiffPixels: 100, + }); + }); + + it('success state with xl size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-success-xl', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-success-xl-light.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Custom Overrides', () => { + it('custom color matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--custom-color', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-custom-color-light.png', { + maxDiffPixels: 100, + }); + }); + + it('custom width/height matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--custom-width-height', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-custom-width-height-light.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Asset Variants', () => { + it('flag asset matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--flag-asset', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-flag-asset-light.png', { + maxDiffPixels: 100, + }); + }); + + it('logo asset matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--logo-asset', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-logo-asset-light.png', { + maxDiffPixels: 100, + }); + }); + + it('payment asset matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--payment-asset', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-payment-asset-light.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Accessibility', () => { + it('glyph icon exposes accessible name', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--default-md', 'light'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + const img = harness.getByRole('img'); + await expect(img).toHaveAttribute('aria-label', 'users'); + }); + }); + }); + + describe('Dark Theme (System prefers-color-scheme)', () => { + use({ colorScheme: 'dark' }); + + describe('Size Variants', () => { + it('default size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--default-md'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-default-md-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('xs size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-xs'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-xs-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('sm size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-sm'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-sm-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('md size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-md'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-md-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('lg size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-lg'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-lg-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('xl size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-xl'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-xl-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('xxl size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--size-xxl'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-size-xxl-dark.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('State Variants', () => { + it('success state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-success'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-success-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('warning state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-warning'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-warning-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('danger state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-danger'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-danger-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('info state matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-info'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-info-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('success state with sm size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-success-sm'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-success-sm-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('success state with xl size matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--state-success-xl'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-state-success-xl-dark.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Custom Overrides', () => { + it('custom color matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--custom-color'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-custom-color-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('custom width/height matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--custom-width-height'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-custom-width-height-dark.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Asset Variants', () => { + it('flag asset matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--flag-asset'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-flag-asset-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('logo asset matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--logo-asset'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-logo-asset-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('payment asset matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('assets-icon--payment-asset'), { + waitUntil: 'networkidle', + }); + const harness = page.locator(harnessLocator).first(); + await expect(harness).toBeVisible({ timeout: 10000 }); + await expect(harness).toHaveScreenshot('icon-payment-asset-dark.png', { + maxDiffPixels: 100, + }); + }); + }); + }); +}); diff --git a/tests/utils/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce85b94c118fd28b66f0d97b305b340a3e33cea GIT binary patch literal 728 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAVCwaBaSW-L^Je;aZ>2z)1NUG2 zP*&G<{_LLjaM|pXcaxqhRC@7Xt#?Sh)A4@-`E$8;xs`11bCjsubm+7ci|P!`=%&^0 zdKT|qyqQ1!;|BYr&hHNt@AJpE{oH46@cE(jd+YokE=rATtg=!H4sD?X5t~<=d&z~Z zx7Ya`n|8jua-SSWh?rQ&Ub~8#H4!>fGeYLfaS>S%I`hKAhr2g#K6gRjc;Uav!u3X- z?9z4nzkW2_v_D^0M1XZg$gzmky*4&awr!VgWbm6C9{zsv$v?-AeSW0W_u*jU=U=~W zUlCE_oq9?lMN)ot-1=!=aqIm8zwC9?HT4i$#2`BJ+6xUkt4)!*vio=bROI+E)p_q$ zlWC_<^06;sn0lSZzPvK^Xnj@I{@unMivskXU%&ow$MZ*rrhBcF`JS4|8Q2hJuDxb$ z=(FeU1?I*QuP$F+8>d;as%rnvNPf26YQl>cbS1Au8~;sR92gbrYNDurcze{lk|>R- zKgxF7ci8JMI{tajo;5Sh3O|4TENiQk`FB$hCzp%I9~Zjt#Z9t%`z~t!JeB$WWxH>e z?G~G}$YS%&k3P$Ux(n~VyYcp|i`LbWohj3~CpH(P+DxA=JNf13bA0O#VU;qFB literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce85b94c118fd28b66f0d97b305b340a3e33cea GIT binary patch literal 728 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAVCwaBaSW-L^Je;aZ>2z)1NUG2 zP*&G<{_LLjaM|pXcaxqhRC@7Xt#?Sh)A4@-`E$8;xs`11bCjsubm+7ci|P!`=%&^0 zdKT|qyqQ1!;|BYr&hHNt@AJpE{oH46@cE(jd+YokE=rATtg=!H4sD?X5t~<=d&z~Z zx7Ya`n|8jua-SSWh?rQ&Ub~8#H4!>fGeYLfaS>S%I`hKAhr2g#K6gRjc;Uav!u3X- z?9z4nzkW2_v_D^0M1XZg$gzmky*4&awr!VgWbm6C9{zsv$v?-AeSW0W_u*jU=U=~W zUlCE_oq9?lMN)ot-1=!=aqIm8zwC9?HT4i$#2`BJ+6xUkt4)!*vio=bROI+E)p_q$ zlWC_<^06;sn0lSZzPvK^Xnj@I{@unMivskXU%&ow$MZ*rrhBcF`JS4|8Q2hJuDxb$ z=(FeU1?I*QuP$F+8>d;as%rnvNPf26YQl>cbS1Au8~;sR92gbrYNDurcze{lk|>R- zKgxF7ci8JMI{tajo;5Sh3O|4TENiQk`FB$hCzp%I9~Zjt#Z9t%`z~t!JeB$WWxH>e z?G~G}$YS%&k3P$Ux(n~VyYcp|i`LbWohj3~CpH(P+DxA=JNf13bA0O#VU;qFB literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..e24eef010328fb9a8ecf050842dab62fc8dcaa91 GIT binary patch literal 735 zcmeAS@N?(olHy`uVBq!ia0vp^9zg8L!2~1)FMr?4z`!)c)5S5QV$PeHmf5QuMcUlY zx(RI(0s;<2Z^20pPC^@lxw)&gH-6gxL-~*LqVSL{0xVmF#dY-JzVn8NZ2z6)pyIk^ zhNho|zoErp&3(s>pPzZL{aMk@Bl#}cb(%VEykd*lx&xb!t~i)64k zkl|xrbLwf4)!eoxhYuhA__0uH>Z|X+qt=SePqdKgg!D*RKyAEV!EWcV^=D+h40{O{7G*0z#8F9O`&$9)B`zvxL8&pIEq=xp{e6SqqcM zHHnD$_;{&iUu}^ETFEbXB{qJ4rd?iMF0uORt4Ca~)?R+e!Mfs9gx>V#+d%O5udUgW zqeqXve5tvMgDa=L{{P>yaHc0Z{J>CTH2~N-$$+1?tY5V z&b@n0C3rkSRD?Q@COPp+)v^2XsG645)#Vw@yzuejS@G-a&5mos4s(X-h#h^Ca#%7} zYbsMCgPWr0Pt!J`O*eBg$}N_C`uXQR>jldT26p!L+Ecw2Uv%I(6WFM)ug~$WY`2r# zB;&TQ#H~?(>;Ch{K79O`*)VVW@B2NA7b`En{PWMBH(#q-ZB(w`xO`by>cRQFeB~=% zmUNw1uNl<-x6|0c!?ozxxpU`coqcx6;D|zz-P^BK($dmST9b}`sIgc%t?gmZ{;gY8 zLzE(Us&hm)<{QrN+HdG3#@*`l_+!P?4M#Qg!mQ@{dAM%6(Y0UdB9Hj;OZz`e~ vn-m}^sv)}crTlLiUm(FgfSlPTbUxetxsfyFX>+$BVxm`0@5m@j2rOYHDgXe2<*U(@<&S6*|n;nb>?}gJaSS z1;d;P5@sGe(x}1{W*GEoAOBckGyV4J5Uq7#;SQG%J>2kjn(bdzTl4St9)JD9-n@`q zvHR#DmW1x3Nj?l)qjIx8@kW%Elw>fz{qm$FIeBx0&X>Edv$L{{vePz3oJlb%^9&Mc z<#Y%+wr%_VL*erMz3oolUr%gp`RwX9FEw12sVx^1pWY_NYslEKYGcwu zhVsy_=1Qyne}8>=@nW|l&%cMS4y_27$-r_=qM)qo*gxS#MrzeI1^(;Qd@rwYH`^S! zV|(@9UfbxKx+~0=Up~pApp{&=-+$WEr%y#+NUmD;?)}^6pDTTX7as6ZwVmkk=FOWI zsh*?>OcAfRy}B9KDB!K`pGLpbj;5EIJooJwV>>> z-6f5p4CxxHug>yYe|`EV`BPOh3tNkiefoJgZ2Rv=wioW-&HMhnx!G;W(xt7xC0jSo zNR*iL_S5;6jcF30YC`9d4C>cjJI(%X=R%(RRabqEiJnWkm~o_tb)$z#QC?dZiiD$`_1gP!uYbOOYB|wkgS+D~IgUvOxlSgurfhIBicpkXGl3_}gH2ndSrkdQ zQe$SiTHEyL;=AwW8AzOa{yD)Q!$fNOX;l#}S-$qP&6aZgGZ|dg`ltwf{8?jAn!(Q0 zm|(!sdog3l_1B9pYQ)TBcv822{ztck0SC@63tH*5^itmT?YGxnf2}LlJ^AF4u+@^i zZcBr1zAcl?Z&`EZ_iyW%^vyG`%=KGdwDZr`uV3%|{qZA#NkD1y&722W8zYviJDYa< z{rBUKC*I9EnPav-Ok0gXk&)rE-t^NOF8iome*S!U)Y@}tn+xtgEvmGc_xfwp+AyH= zmPXpm&)*sqG>f=>I{z`ryUkr%kcHO zeg5{XY(J+db1DCB?lOfpCR4pwHLt(^DiLnsZp?Ayap7D)_Tc&FpU=MUFw2qWK>C)r z_4c;5j%+*b=2ax@j4`S!h?CSPtoVL1CFs<;^-qd+M(8{%vEpuZ+JB$F{czaot(RXK z)D`rlMF>}XzwdiP_tArZ#aFYI>K$RIiIxnvSkIGV{F39dd)aPTm91CW8ruFI+i@t8 zZ5apqsrhdD=Kr3a{NKFU$7*id uFt%-`oY4m+vj6{gs;&78WUzsf88ZXtG3GU^Sc}AfA`G6celF{r5}E+H@ipWC literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..94a872aa5a41b603ec77b22ec28e40a1c656785f GIT binary patch literal 719 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAU~2JnaSW-L^XB^5V4*~r10T~< zlf_+nFR~g&3tez);wh+knKaoY-8!sZ;D4L!mE=TO=3Pr13pR-BS(rI7RWeQ4?o<`k zm1$&ad;U!RjQi;`=H9Kl}D04ZgtQ8{JC-FY~$u-2VInQZrNgyCp~}m z?%IkOtHW0NO`p8sSZdm=UNze&9k1_~k~VI+{nl;q#ocSJXSXox89Ezl}VVwmJN4+9Ag2tPOSV9S+F%@3pk}5w!Yh-+tNk>+UW8KDkrn?_SQP z2cPdM%6y1A8}@GPnO*6{JNIaGt*W}a#@BWEWzJT)8~HcBR@pvm2^6OZ%6)zx-v% zAL%RN*5~KsT=Ia9B%k+&}lQvdohF_gL zIrxys&)dDlgEL5IvkBK^NtYu%uYw=0P_X~8bl;VB52arL@;O3vCn80@u$ywQDsoI* z5Yoi5cH=dB5v^$@J5M>TleNA(CC)bD_Xd`imX#9c`=@`OSN(2h^ZmQO_m!uAsM@O& zePOdsQ_2P>qX)3&Yf@3YyIcq;Sdl;YE}F3q?vGgHF4{!>hJ{ZI4GmnEP6?1~mm zIyrIg+q%pjcUP;PYn{X>oi-`(#ofqYqxC%7uB@KfxXkL~nUCi_dVDFj*?XxtgFWAe z`M^A%$2ZmPo$mHkz4y80`@5q*iVAaAefoT4ir?~NDF!v=yL%2*?+z94wJgeJ@9$l1 z8@##r;fhTKKW<$Pd75FcgzYQ)>UsTjbN(2fZD5d2o7dj>o=~PdG1=<7sh9=CAeyP4J;1i_52J8*E+|)`gUvOd#i`uPw(>DrK%ld{^#&* z_coilZ*7f>u6hS=Nsq{V?B&FpmNxl;nh&?+!70_de@1Lyzj4o&32Sve7`=8q{qB_S z?bBvCdSxj(8U^c~_GU6XNm^v|O|$0jzlO6(uio;f=oGxyeEfIsyhJwMJv`6-zIUtk zWi4FDq!zsWw2kihjZY8Tn@9>Ih_AZ4?4(JA*q7oq%*e!u&)dDlgEL5IvkBK^NtYu%uYw=0P_X~8bl;VB52arL@;O3vCn80@u$ywQDsoI* z5Yoi5cH=dB5v^$@J5M>TleNA(CC)bD_Xd`imX#9c`=@`OSN(2h^ZmQO_m!uAsM@O& zePOdsQ_2P>qX)3&Yf@3YyIcq;Sdl;YE}F3q?vGgHF4{!>hJ{ZI4GmnEP6?1~mm zIyrIg+q%pjcUP;PYn{X>oi-`(#ofqYqxC%7uB@KfxXkL~nUCi_dVDFj*?XxtgFWAe z`M^A%$2ZmPo$mHkz4y80`@5q*iVAaAefoT4ir?~NDF!v=yL%2*?+z94wJgeJ@9$l1 z8@##r;fhTKKW<$Pd75FcgzYQ)>UsTjbN(2fZD5d2o7dj>o=~PdG1=<7sh9=CAeyP4J;1i_52J8*E+|)`gUvOd#i`uPw(>DrK%ld{^#&* z_coilZ*7f>u6hS=Nsq{V?B&FpmNxl;nh&?+!70_de@1Lyzj4o&32Sve7`=8q{qB_S z?bBvCdSxj(8U^c~_GU6XNm^v|O|$0jzlO6(uio;f=oGxyeEfIsyhJwMJv`6-zIUtk zWi4FDq!zsWw2kihjZY8Tn@9>Ih_AZ4?4(JA*q7oq%*e!u5f{bOWc`2YX4<}E&82(f{JhMD1;mz%$a(!55X2!p4qpUXO@geCy@kC;aQ literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..2dae240b36f3b8a80584a4d1c3e82d8bc04e00b0 GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAV080zaSW-L^X8VX*I@^VV;>9e z31}@`_r^#x=#^&?%U7SB&bPOoU6i-#uJqlT%ukp~MK_2tnZ{f2a_PmK^pHFCIeHJv zCXV_OJ`x?mt`n`qqGSb+ElA?g!cI&w;F-$1`Q;nUN;%fX=anauH$~ieS}E7l^!9d{ z(ad%6*QP%%e7|LTRfO*J@1=Kn^xICExkqlgy?1tG*wmT6muKv}Uq54|>-5x2y(5Cg zufK)GhQE?8I19G##^#%Q(ju4Xyfjkty<8!8K0i6NbL;yv@?U#$9 zdaLZuWzPR|89}PRO0f|0f#Lc8|C_W;7k~^lP>3=!MCQ9z)fu%|0!0`+UHx3vIVCg! E02G_BX8-^I literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..5a65d2c87b99cc33b4e2a6bbb04c8b63f14093f0 GIT binary patch literal 532 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAU_9yR;uumf=grOY+RcSB2R@$9 z>3`HTB$>pGIk?(}wnh~|+?M)up^ zwBOuxfA-PB<+io+YNF8p3l49>S_TPAx= zP*EyPRI@v)@^ZyRDQ!~)^*<7h6K}lUyth}5%d53IH(}ZCV@B7vnq1jnnHnXR7s3#u z`!&aRrUTm#!;Mpl4&7Q~?%TKhwcflxx11iHlU#9Kytei6=iAqt*DmGDUvXKXi6`Y| z+Ch&;e{OFuy0oqESH>ExjXRsTthG>hJnvjEigD>uCyn zTR+G5>CyB1J{-(h9(CgO-Wv0;%xnE`uCe>OuNB*%x#69O_*-2C&#JDl*LjT0@@GR9 z9?h5{^k3XHRAj;eSxwSObO;;2%3T>H@RhqHu5aa)@^fs-&gmdKI;Vst0OH~81poj5 literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..5a65d2c87b99cc33b4e2a6bbb04c8b63f14093f0 GIT binary patch literal 532 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAU_9yR;uumf=grOY+RcSB2R@$9 z>3`HTB$>pGIk?(}wnh~|+?M)up^ zwBOuxfA-PB<+io+YNF8p3l49>S_TPAx= zP*EyPRI@v)@^ZyRDQ!~)^*<7h6K}lUyth}5%d53IH(}ZCV@B7vnq1jnnHnXR7s3#u z`!&aRrUTm#!;Mpl4&7Q~?%TKhwcflxx11iHlU#9Kytei6=iAqt*DmGDUvXKXi6`Y| z+Ch&;e{OFuy0oqESH>ExjXRsTthG>hJnvjEigD>uCyn zTR+G5>CyB1J{-(h9(CgO-Wv0;%xnE`uCe>OuNB*%x#69O_*-2C&#JDl*LjT0@@GR9 z9?h5{^k3XHRAj;eSxwSObO;;2%3T>H@RhqHu5aa)@^fs-&gmdKI;Vst0OH~81poj5 literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..2cfbaa96fff2d753db709bca9b279055196a5d4c GIT binary patch literal 744 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|YYKFwOOJaSW-L^JbQ1c2c0o@qCjd zC-@Xkswir!WKPmb(H3%L*%9`6H|^fhtD&XUwdjnzyvK}0 zqu@Q!GM4)v9kjj2{?F$0?nSTp+MU-ZNo`!TLBcemM@q+yS8Op`cVP3;6$g{9Bp7C) z3Ma>UIIq51S5tH6{{8pw-hKQ1*GEm5hi&=gm$z@<{{6dp^;ND`r=v-MCmgd)q*`Ti z%x=GZn`<<)$8GWBk3SwheE8@QledSNRPWxswsZZ$S6|(Acin`BH9d;n8=U+OJv5lM zGlnmZt@+`D2Mg}zeXrVEVwJo7_Wb$txm%ln%H*7#3UsHRKJBqG z{P^@~)6Sipok~wOsJ$2Woig)kmaVOA=rjq5xb@RiCtDx=a@t#bBh zk*vHt&=o-UR_$GPWb@581r{#r4E$P5RJt_(#C$Nl6s4e|?EU6=)7!Ui*B`u?!J?XK z!(?*r*fBOW^&;&nZncIo7Cvg1A3uJ4-|WDV#~&Sp&azdS%)bBLUq#3%^osal!&mR# z=?QQ=`TX;K(8jG>Tk9^r{wmge^lh2-+;f{ZZ$5wCfAh_rbSWwS744_a8~S{>em#5+ zXY$4y^I6-r_c6Dhf4+O)zBWZA2`!6R878w9FIHZtrPZCt)^&8^quI7oy;99)&z&v8woxxNXU_42>%FBs3r|6lXz*yE2+e@eVOs=Fg_ z#VM)(o;?x-k_0fNY}}NzADB%4|8Lw7w+zT&10_^u2D^Pyh8;`KvI9jJJYD@<);T3K F0RRmfR;2&{ literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..b4cdb481910968ffff313e399bc8c10e2730d992 GIT binary patch literal 796 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|YYKFkSR?aSW-L^X8VLzm%iMfsc$L zS^Km3epX%Cqt=Dn>f0I(iQKF-(yRj@KCAaI)hJ^+>8a&cmhud&5Unbm% ziH%(v^s>e-J~->{-MbG9JSHviD}J7q_BmVaanUZ7m#GR82{kh&om6?8{PXaqiw`IM z@R5=3jz073?%usg8znkj-t@oC`#!m9@x)sml{WM4-HSWMxPIjdjZ+UFUVQQS;>nYp z0UA?gcpOREc&Kn;)LJVUzCe-Z&+bL#Udz9IyN5q6@oSZAUz5QNsgJ)|Ev{vmzP*xQ z!1AZ=X-s0x2d>RGa|(3Cy4DKrh+SJ)P+VMG6SLv=TcECP_A}e}?b|nZ?)$lEn>Flg ze^gF5ooiVoMxRJG$kDtH1wA3)qqAk;= z{9XT!cLwJwTBmv~^?JHy<*M)Oy8SwS%e4hQWH0~y`}g$e)0-Z&SD*f}tX?9=;@Wll zxBqVZz0KOBaAx1k#;1nU?@mg+nPKARufAA0aGCbs!ZYefH`SdrEH< zAGpPF-bABi>k;!8()EUQwY9MmwSB^^+Cx($`}p&7YwhNrOqq0gQ`xQi^}8p;#KaiH zzO)hD`aOMPgxo%!X}{eTAFNn(KKXz80c(Lyw|_sM$Vzrr)!Mx^jp6zK=xf!?bv$2` z4O8%^AYc-^W%foKn6&@@uhfpd3S_W>5;rr$qTe@;T`uQy28u9vy85}Sb4q9e0Pw7U Ax&QzG literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e1ae04732790a19d7e02c602910c1046942123 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAV2bv1aSW-L^Jcp5>dZiiD$`_1gP!uYbOOYB|wkgS+D~IgUvOxlSgurfhIBicpkXGl3_}gH2ndSrkdQ zQe$SiTHEyL;=AwW8AzOa{yD)Q!$fNOX;l#}S-$qP&6aZgGZ|dg`ltwf{8?jAn!(Q0 zm|(!sdog3l_1B9pYQ)TBcv822{ztck0SC@63tH*5^itmT?YGxnf2}LlJ^AF4u+@^i zZcBr1zAcl?Z&`EZ_iyW%^vyG`%=KGdwDZr`uV3%|{qZA#NkD1y&722W8zYviJDYa< z{rBUKC*I9EnPav-Ok0gXk&)rE-t^NOF8iome*S!U)Y@}tn+xtgEvmGc_xfwp+AyH= zmPXpm&)*sqG>f=>I{z`ryUkr%kcHO zeg5{XY(J+db1DCB?lOfpCR4pwHLt(^DiLnsZp?Ayap7D)_Tc&FpU=MUFw2qWK>C)r z_4c;5j%+*b=2ax@j4`S!h?CSPtoVL1CFs<;^-qd+M(8{%vEpuZ+JB$F{czaot(RXK z)D`rlMF>}XzwdiP_tArZ#aFYI>K$RIiIxnvSkIGV{F39dd)aPTm91CW8ruFI+i@t8 zZ5apqsrhdD=Kr3a{NKFU$7*id uFt%-`oY4m+vj6{gs;&78WUzsf88ZXtG3GU^Sc}AfA`G6celF{r5}E+H@ipWC literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..94a872aa5a41b603ec77b22ec28e40a1c656785f GIT binary patch literal 719 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAU~2JnaSW-L^XB^5V4*~r10T~< zlf_+nFR~g&3tez);wh+knKaoY-8!sZ;D4L!mE=TO=3Pr13pR-BS(rI7RWeQ4?o<`k zm1$&ad;U!RjQi;`=H9Kl}D04ZgtQ8{JC-FY~$u-2VInQZrNgyCp~}m z?%IkOtHW0NO`p8sSZdm=UNze&9k1_~k~VI+{nl;q#ocSJXSXox89Ezl}VVwmJN4+9Ag2tPOSV9S+F%@3pk}5w!Yh-+tNk>+UW8KDkrn?_SQP z2cPdM%6y1A8}@GPnO*6{JNIaGt*W}a#@BWEWzJT)8~HcBR@pvm2^6OZ%6)zx-v% zAL%RN*5~KsT=Ia9B%k+&}lQvdohF_gL zIrxysZh2baOn8f@ znac0nG_|8yy>8AmM)8jhCo*P5G)RdpXk%T0of)Vq(CK0{v*&DD^Nsi4)hBx{WK(5& zSYR>xY}MX-QESt--(DM*tu#?%s+SYv4<@;O_4((^ci(+kVkOnP>gubq-Lib`&p%sE zKh2r*fmI=Q$&|D|HFjrpnATliy)2VS`j7g%vfWRMBK4*x9@`j^V<55P?z<4Jsea3E zzuk7g&6D@c^UsezO7tK9{rBI)0uB}?zvY`RzvN)`aQ)3J*3H`2miS`Vzt3u#4?_}~ z=Q~aHVy)8H;@6S*?fdUqqnSEl-ANlcYFA!=Z7av$$i9i;%c;vRujH65tU0UA*Umge z0ch?7@2^#RuV(FayU)Ivt?6KbiPYS)Y5Sj-?~GY6Q;dt%W8vRAepNZHRu;J#OnTF~ zr~QBb_4Zq~&F%LkkJ!zBe>ElWfRAFto3m-3-(SeuYGi-9YH!e~PS literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..8360de56fa925d8b5435d13dc04155142f08979e GIT binary patch literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLH@YFy8TWaSW-L^X8_f{~-sF10P=s zMZN5lGSN%-HK{7@Rdb5vdv#FtVE>Wnfs5y{rgY9qxWa7iFeS)u%GnK(2LgqX7MU-v zRIJ?3TsbrD$6=r96)(R3KB@5dWW!;G3<(Ba<^_oiCOi#oj28?Tq}Uvg1a~u)#QLiU zolTp3?r4(XTtDIJ8$t;Z$1XoE-ukPqvhZq#iO%U$ds37hYHVcu-B7f%ro4Lp_Wir} z?0NDrhh-ge-uBz8D^(-Aj>~gozhS=hwru(3muH(aOrqD`)3IE#EmiQE%b{7TRs~-U zKA7M!Nkw`3Ws|jGtCvn%nPOB~QsWV^`6QcVdKWpY~IBe8#FIQyw=kL1?KU^?>?KSqFbzTC?BJva?<)kEK z|9-yoVif;s1Z$X4B8W=w<`OGc!Z|zS%po Tz6H1gMHoC?{an^LB{Ts5j(qU# literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..2255d0627b45d6b7172e693db11d85ba06d2e41b GIT binary patch literal 978 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-3iqFt>ZUIEGZrc{BT__S!&+W7p+U zPE1JIHt~jr*P) z>fihOPcLkK`TG9%KddO6%$+}9Uq?qrSNHAPx0W(|FSg%)+uq*Z=YyYArPo8Yq zvgJf(-TwcdJ{46}S;_E~mzHwQeIXhX6x8(b*DtA{-jAzSYxhJ1C4cz+`}gP1#`gC1 z%F50e&g&nnS)SyLmk^oAJg!~_Eid;9)b zD(YXpd~&}Q zEIWA6@kJysNkm55^&`+I3(FY`^KT?cd;r3TVbzgiZx$I4t!+0U>K<4EA zsmaOAM^FB!X1deIV{dCKy2|k5e;a{z)?i}Lb8}#Z{QqBX%C9aUgAJ4=nHhd=Y)e@; S&E^GAgu&C*&t;ucLK6VQOxN=O literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..406a021164b0b2954c7d8a23dcbb24f01bb57e91 GIT binary patch literal 1059 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-3iqFyHWWaSW-L^JaFWf3Ty-@#U#6 zTfM?t?robmB`C1a(Is9aG)vfoR-4_Q=^)i?yEiJWfb%@r>Yd2opxN~Pu*z&yr z(b*fLI8s+|FTecq-#^Cpi@t}S;5~ViHJ9g}NR}_1=mu>Y?p~(I-=g&@` zHf@%VniKCX%Q+q@$BwIC$tpem*gb7?L`cYz%de&K&CJa1bsT>jJURH1iB5j>*0(1o zALnXKN_nEakTdq-)~%*JVXL=p_^|zsWq7GxwRyMO;)^d!PJAxW@?GKhn^XPdL1vwE z-P}%`$10R2itB3%8oWDF&SCmOY;DnE!N=FGg~in**UCP=`RUW02mk*4J9bQMQ`G9K zLRlAT51qJi>Xg^|>(9Uc-h41bOI05)<45(ukKd+toL=d|30kM zH@ca!>dw7?@4i+Ao|!dkcEB+MMG2l=={AiC38s6p3?$y&+wGm<6dSSp^1hm{i~c`$ zP+(SKWo69>eBpVi<)QvzZ|~DPR;=8p+^6cBvB+X(zpkQv^2P|0UAi1vA&>7YlI?Wa zVCg6zJLAIhmTl8AHl!QL>`Of(vQ4;IUhavq*zLldG2RCgG(_&*y?b_d_uJ_jv)+_h zZ<`jxa`*Mw*V`lBE{ZI%k`IV_xTU4g=GUK0gPA^Zri_}sZ%yjd)YRm+ZC7mH_@@4t z?dH?or_awTzm#zzq)Tj7-uc~fF)@3qo<`N~J-EO<_1tXcjRh7x=B(A8bHo-b57GMm z?VHlX(m6{vFq=o8nLF2iX}P1@6MNmnuiw6YTX^~2zT(|GcY3bXYd!feGsC`WuiWdK zkG~}ZuN7k1lKLXCZtGsD$OoT)u3ELqWR{VV_9t=OKVN6ho-HaWx;^jipVujKCf}0V z_UO>#vggNqA06a0l;INGIWb;>zdhxg^YNJ8MH-JX*RN^WFmJP?jEbRJu%?pvCvIg+ z!+#r}%CTyhQ6j-#J z$^2Kbf02`#_kXsN`#d@oEY4Y{+^^I4Q7$KeGv}a7`~l|h|Nr+a{eJ++U<2iGW`@LD W-mKRcHP-`07(8A5T-G@yGywpmKLjcO literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ab4afdb6a020565d3dd4752836b4aa42906a1238 GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HXJDU`+RPaSW-L^XA&_uI2!NhKJ5c z98Z`OCx|q*Olh2;G(jy_OaAP3A$^XnsLWJlu_gsGt$VZPs=g5t+ji?_o4i5$#)c=wgV)EH3xphZ$NjzO9Q_7Qh65ozB`S)oXX(X8!r3_7hmP z9e!9~Be(qW%2lhj-(I^e`+6y>))W1`H*>!I-n;JgyyuP^mt_jn+RX=wzF4&?ZL?$# z`;x<^J;$r|>YWZ+;MA8l>zDygMf}fuM`Vv;`2G_k1H=FSkpiV3fFaKY3UX!!j(cUja%-!?fFcZ@u6{1-oD!M< DIF-V; literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..63d82d0e6245b8ee94e7b454d77acb4f7623bdb0 GIT binary patch literal 457 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 literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e00fc46710b37c29c81b694fd73b8f27c08a0b GIT binary patch literal 1185 zcmV;S1YY}zP)gU;BPnxs|kdV;O+G=#G zprt94P&ZA2k%C1>3KktHSahUd(UF2hM+z1lMotILb>C0BE(-#Ma~g*G=TtSKG+@lp zbyw2}r6hS07fhpQ!nRGvp`5>eDGVXNpbOHD!zs1X=~t%7m1Ki1Nx__h&Wvq?<`3Qr z-7(SWn6BG4O;Dbkw-XZ_Mfp}M<#{7Dg09K7+t8|!&5~qXorqC249_GW^Lu-0H!Y0~G|xAi^khZ`f-RVHh-4MxLH9McTI5KoJ0Zw|A@OLwPmlmp zV344KDHtLUDiA>h4B`ehW|q!&Iy624nW}zXDqSoV!!X?1+4-+l@=IbuRD;*RW-#}|7*H?!+6F=0!=U*`b@7J2mbcF3Ve3?vJ1i8 z9a_MK$=8)iX==*Q^+Gm#cVz|6e>FQhfAuP4ua))n zv5k)ep5PA^kNb}vK{mcvC_t8eW?4O#QcC|?T7sk<3~jF9Ri@LL4|lOzE%+Qh^UveQ zVqG%W3TGzk~8?HJd9N8-5T#RA)_deS3SeUXL?QkU&dXQOpb$ z^7AjZZ+~&+O2>7dTUP($`Tm#X^3S(!K`%h|&Y9*9H*c0NTo}pt7@&DL&@^q(gzoz6 zEco!Zd-wb!SMRT`{#31k^Z#C3tG#^r-HjX9W@f<81C0|T&^+wMJk!+Vyv7P-bn{jcc;;;zhmD=pDn`+duBZ zyJiUvgzEWx zn1EW6+~fgVWKB*&($3npa_j|~NKs&`rGuK5-y_-C5|mKb8O+3NrX8lYnFeafC%l=~ z1Dux0K(ak6+of-y)J>&aybdfyzSZPan-%$P+v^o|^H&8g_nWD&rqYngjK{mCnzrfGUE8_T!K`rOywa@$~0ssmfo#n|JCe^>PyHZiy*cr9*=`>=g= zZ{o(ZtPa-MeaRPgvM%$P$4XK>x0hzK#05IMU) zKMyk7i(-PNl5cV}&4#xy03oaoCP1}ztMub=bm*)xB6`+s$BrE0owPrSZf z`}_O#u{$>z+V^Mw`u29BdHyV6;m+Jdv16>uUuw;4uYBcW9HqNw+wtR%Z(sXiv5EUy zUU^>S=9}9;&QlOR6ZHGZ6t4c@xa#~=Hwe187)`F2O=y?p=k=f2+WEOQeq6it7}?k`zc z_RAz~Q~s=Ibw7)V-WRi;zPh^hWv0C;-|PDe+rKkED@d0*{-^R`lUc+G7WSS}=?b^q zw!5~3M8uot?EZW~TSQ>B*}1ugolL(y@mv@7+sZtA{@k}|G0KM`A|ftmaIBW}Y!a+X z&%dLwZmp@d=AaXrl0Ic@RA z+U6-*Cz;N4y$>+h^;-4nB7yuMr*r50ch_E4)-4Rw^EP|#@ufWVN<`Y;hY$07U#a_V z>yz!iUvFEw>hnJ4JK4pj{3fkC+_Uh(j%@Fq1G6tNajLERVe9tq-of`uiiuNZmp$rY z?^@He?v{o`u|;8)OYG%KU&HMDC$T?rS;YE1NIctkMU)ZS+50ozJXUWOyme4!vS+N+ z*4b^ToprlkzpT2viD{bWeWTkp2hLABx_I%lzvXxO7d3o$mfPyG;Pr{d!_JHUTPJey zU-mKP3AF!`7}c@vaORGH>5t|eU$ptsk2?jwcZf(c9~P)_kiL5GZTmzyzBd9EtY4?I w6U@GInbm*91523y|HIRCE&~~CpfZM;VS3*Ba1I><4WI~vr>mdKI;Vst0O<@nHvj+t literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..6907ba0514e52c383cc4a6bd43cfd2a0872a06a8 GIT binary patch literal 1222 zcmV;%1UdVOP)jddJ7OG5eg=+I*=f>O@F?pG6)+JF2qf! zny?q0x1$mqAnf584~;Hci5jLnVI*Kji$-%KK`TJLiv8WHeS?Q)1^a!Bpl4_i*x+C<`0oOgfR*KU+;m)<=Gcje+Y^(wsc>VXkjZ4G?oOvOgJBKHETfazJnYve zq0q-lCR0P_&j0fB{f)vpU1oEaCnj$_nEiceVV;if?%d0cUfSAx5z<Vt4(B-^~qj^=8$n(Nk` zMq_(;_~Vx^caCkmE7-a;Lc3=oZI9+2-kiMk(S_l7Jbt!6P5qh5Ke;-7ZTwT3Y!~Mr z9ou+Uun7*}J#poqzaBh!ygW2?t`VizcN;F%gqZ!~x5D}}&+|@VymNZAA8t}E73nx! zGWY*~&|BC9Yk*;XFbret%C-K1^qVL}ICia6DlW{=xvqQl`i;KS2dnv~&)4!{#(@ca zYHA8NaM5fz(k#omH~m9;V6ar&+AfzVdNmJC(?+tn+~u*Ar3E3h3&R&_FjIw{o$aGW zH1JH#1`gOfOqm+L)qZg7%DCq`Ki&V4Jo(No!!*CYJ53cH{`>d(^R>^v{PtpYG{5?! zrEy?_ZCawFRLk;oIu z{^6~soBi|GYPAy9WG(-6bAJh)Up+WK1d>_cgHtd$+0tw~cxzR>T`sk0VmD}>JC04q zI~7c^$D6oi&Ul!x%NS8(!i$S4u)-{ua;r(Pt%(3mj4pzND6=Q1`LmX!mNbi#t&N00 zQX55TI+ENk_3A#YNF5T6MNGJTqNsCplNQDy8puT{QFa2WR!?+w`daDR8Vy=gt3hN$ zyIZ0Ka13qAJi3^`wp%L1e}QX=0Tl7NJ$#<5Ci8ZYE?sR6bw&F9i4B*p-T z4(N%hHmILG$c_>$J4&$ZD8aI$1j~*REIUfD>?pyqqXf&25-dAPuV!LI-S0RR8j ko&n1M000I_L_t&o0Kh@nhUHc|+yDRo07*qoM6N<$g3>8S4*&oF literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..2a584f790db24d292431889cec509ed03b8f100a GIT binary patch literal 1140 zcmZ`(dpr{e9A7NmJhJ8y=0mZj9{YHO9zel(uy|5y60vvXkYjY5!?iZ%%=*p zn5h;(ND%zeja8}!Vz>oF{L9b0P{jY5wQO;4^hx``M+@gqBkz)9+cH1Ng&gs#%Ca&8 zmmn*b(+Fm*-p&G~zNu>n=Is}PhUJxS1zt@WJyKq)DX z?>Dpx{3)RL;kr>;#fU!iof@85P0MYd#~l6pC}YURcA`37WZw_hy}ifq7dH3|I4|(A z7uYA%uEaBvmFzb`750?p5MaaQ27RH;r^v9dlf=#kFqy0pu8Q9(CkpRv;87ySmIc9q z2vgt{uoTn5q&{Ijt?ZT-T^hu23&*dy$%}s6n0vsRk!oF_%W<3VFmGr745Xo+&Y2>u5{)psoDoL)}(g$DKv3%U$S`e5UYmMa}p`RpweqDYcKt| zKF*!orF5;wVtgI$Z*;ne6~3%qPrK=`b2pZVu}iM3_s>dds_szi2-#~}>Yd8Oj0;GQ zr{wOzB5B@+1mo7QBTyo#66TT(X9eK4}klyQiFwOB|pZ_l4Yw6kt*(_5TBL3Y0u{{u*9! z-8mmsh?4&HJ@K-72jB9JKu0zY8;824~(vN zr3GFHC8PTIN8aoJB@vVL4tol3+wmh-dpL7W<@vY{0!yWgVW-+$&j9c#Zdp|aC6NB_ z^5gJXcMHxIW4vB9^Hg%QNjMZ@^>JZxirPRy2(Z?+kH)apC4`9M22=j64jnlaLAhfi zbVgE;Gftgj{NeK5f9-BdH(@W CbUK9q literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..c6c86afc6d2fd47b31d9d4ac4c272094f72fce2c GIT binary patch literal 1216 zcmV;x1V8(UP)+6ie03W@}MD5)Y<6;z5;^`ZZY-_yRejZ~>fNVrH%DP2HwG)mn<)RN+@3VG^P+WEDJ(xYf<)JHAYP z_+6~1qc>DA4=>wc346qAjvBV=3|5PJtwg(4tg1`lv@f9qb(vQmZw+dDf~`4F-C-^X z0eoSXdX3Q*IFkzi)tjTQTza7(fglURbKAa9hH#->X9!48K^BIF$5GI3MF<4}2`ZSv zZl?z#s6as68ymBgHWJqP&i3>#$@0yan-kYlp6e9%4szQ$-}e{4UbIXr|2$tVl>=+F zyQ_p1tLX#@v1!oj>pN+IZ+xkSo4WueS8^)$v4dic+7myhpksFI0fgA_x;oTvp`tHDK5-z zNw2Hz_lGyHZGAOsv|7EY6#gw7zJ5 zcD&!=tuN>;m7z}DBF}h0He?5_fst(%X=nr$WMP>V}@=S2@_V&-nW)V z^@fHuiVP&&wHkXxPwQV-VU@$G#R@>T2y+9unVo@qq!51HV5Cs2~`~|*9pF{)^6dzPj z6vWVYshE_AT9D8-HsC|ilI+gRx%9WYO}aF*+wS%^3q3g>hRK<;Ip3Y{oXec^J1b{r zXJI?RVVe;Q`%W^s4*?*zlX6Ab%KFzh?QuxA+ za12ijPs{c&NM>Ysp3#S;deE;d@BS ze$DTr=BM8kb1B65Ouo#&`6BxoGpG3EWxH}F`|y&v+^ZnUqBsyiX4nYJSkLP5_-D}MT+n8#V<)9R_A#Rr1Su*GFw-}^eLUN|fc zE}M&zsYm$3JNbjq8tUw;@k@KfR0MHtSg3RXnb(ApI+n2H`~2)xclChS|ES#COB{$0Gcz+lftIFp1YCFP?={c- zV^{a^i8|lCgWcab3^R*n>DOZ6s62#E>Q8fFPX9R0ckSl8wu)ePk(y?aOjpB}8&NW^ zJX`!6L;Ozi7S`k~A2nR#{pJVr`j_X`iG5=Fw9QFBJ!>`vfAmE+4U0?3JVP z@K(1-%F-j^i4}9Db2-hYuGwp)B0`f5({z2qaOX<;aKkkdNP3mJkJs=m)k(8fRIfw< zWrZON`j8pMcaqey>gF4~DB9<9JK zT?l{~CUfGDEwN$j$x%a*gedUc8#U1GgYX7sumAeIY}cbq;7@v?)<4*z)q`lg-e=hS4(*7I0r`0xXE;z&gcL~cyxPj zZ>B+e7{j3(4~$D0X>d)|*)DbMJyV=n;XIjZE=`3SXx)r%J&beDk!=F^A^haQcY7iH5 literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..208381181207333c3ec4fadfdbee76e1fe07f159 GIT binary patch literal 893 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 JdUO9j{s%lq(#!w= literal 0 HcmV?d00001 diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png b/tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4a80c3b816a9483b9372c948018521a68327b756 GIT binary patch literal 1989 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 literal 0 HcmV?d00001 From 8e04300d11f5e7cfbf49ace5ae838a5713091e85 Mon Sep 17 00:00:00 2001 From: Dani Sandoval Date: Wed, 27 May 2026 11:36:23 -0600 Subject: [PATCH 2/5] chore(Icon): migrate styling from styled-components to CSS Modules --- .changeset/migrate-icon-to-css-modules.md | 5 + src/components/Assets/Flags/system/Flag.tsx | 2 +- src/components/Assets/Icons/system/Icon.tsx | 2 +- src/components/Assets/Logos/system/Logo.tsx | 2 +- .../Assets/Payments/system/Payment.tsx | 2 +- src/components/Icon/Icon.module.css | 134 ++++++++++++++++++ src/components/Icon/Icon.stories.module.css | 36 +++++ src/components/Icon/Icon.stories.tsx | 25 +--- src/components/Icon/Icon.tsx | 82 +++++------ src/components/Icon/SvgImageElement.tsx | 59 +++++--- 10 files changed, 266 insertions(+), 83 deletions(-) create mode 100644 .changeset/migrate-icon-to-css-modules.md create mode 100644 src/components/Icon/Icon.module.css create mode 100644 src/components/Icon/Icon.stories.module.css diff --git a/.changeset/migrate-icon-to-css-modules.md b/.changeset/migrate-icon-to-css-modules.md new file mode 100644 index 000000000..ead70ff6c --- /dev/null +++ b/.changeset/migrate-icon-to-css-modules.md @@ -0,0 +1,5 @@ +--- +'@clickhouse/click-ui': patch +--- + +Migrate Icon from styled-components to css modules with no change in behavior diff --git a/src/components/Assets/Flags/system/Flag.tsx b/src/components/Assets/Flags/system/Flag.tsx index ed67b35c1..0d8556762 100644 --- a/src/components/Assets/Flags/system/Flag.tsx +++ b/src/components/Assets/Flags/system/Flag.tsx @@ -40,7 +40,7 @@ const Flag = ({ name, theme, size, ...props }: FlagPropsWithAliases) => { return ( { return ( { return ( { return ( ( ); -const ResponsiveGridContainer = styled(GridContainer)` - grid-template-columns: repeat(6, 1fr); - gap: 1em; - - @media (max-width: 1400px) { - grid-template-columns: repeat(4, 1fr); - } - @media (max-width: 1100px) { - grid-template-columns: repeat(3, 1fr); - } - @media (max-width: 800px) { - grid-template-columns: repeat(2, 1fr); - } - @media (max-width: 500px) { - grid-template-columns: 1fr; - } -`; +const ResponsiveGridContainer = (props: { children: React.ReactNode }) => ( + +); export const Icons: Story = { render: () => { diff --git a/src/components/Icon/Icon.tsx b/src/components/Icon/Icon.tsx index d1f9e008b..c328f4b28 100644 --- a/src/components/Icon/Icon.tsx +++ b/src/components/Icon/Icon.tsx @@ -1,6 +1,6 @@ -import { styled } from 'styled-components'; -import type { AssetSize } from '@/types'; -import { IconName, IconProps, IconState, ImageType } from './Icon.types'; +import { CSSProperties } from 'react'; +import { cn, cva } from '@/lib/cva'; +import { IconName, IconProps, ImageType } from './Icon.types'; import { ICONS_MAP } from '@/components/Icon/IconCommon'; import { Flag } from '@/components/Assets/Flags/system/Flag'; import FlagsLight from '@/components/Assets/Flags/system/FlagsLight'; @@ -11,6 +11,31 @@ import { LogoName } from '@/components/Assets/Logos/system/types'; import { Payment } from '@/components/Assets/Payments/system/Payment'; import { PaymentName } from '@/components/Assets/Payments/system/types'; import PaymentsLight from '@/components/Assets/Payments/system/PaymentsLight'; +import styles from './Icon.module.css'; + +const svgWrapperVariants = cva(styles['svg-wrapper'], { + variants: { + size: { + xs: styles['svg-wrapper_size_xs'], + sm: styles['svg-wrapper_size_sm'], + md: styles['svg-wrapper_size_md'], + lg: styles['svg-wrapper_size_lg'], + xl: styles['svg-wrapper_size_xl'], + xxl: styles['svg-wrapper_size_xxl'], + }, + state: { + default: '', + success: styles['svg-wrapper_state_success'], + warning: styles['svg-wrapper_state_warning'], + danger: styles['svg-wrapper_state_danger'], + info: styles['svg-wrapper_state_info'], + }, + }, + defaultVariants: { + size: 'md', + state: 'default', + }, +}); const SVGIcon = ({ name, @@ -28,53 +53,22 @@ const SVGIcon = ({ return null; } + const wrapperStyle = { + ...(color !== undefined ? { '--svg-icon-color': color } : {}), + ...(width !== undefined ? { '--svg-width': String(width) } : {}), + ...(height !== undefined ? { '--svg-height': String(height) } : {}), + } as CSSProperties; + return ( - - + ); }; -const SvgWrapper = styled.div<{ - $color?: string; - $width?: number | string; - $height?: number | string; - $size?: AssetSize; - state?: IconState; -}>` - display: flex; - align-items: center; - - ${({ theme, $color = 'currentColor', $width, $height, $size }) => ` - & path[stroke], & svg[stroke]:not([stroke="none"]), & rect[stroke], & circle[fill] { - stroke: ${$color}; - } - - & path[fill], & svg[fill]:not([fill="none"]), & rect[fill], & circle[fill] { - fill: ${$color}; - } - - & svg { - width: ${$width || theme.click.image[$size || 'md'].size.width || '24px'}; - height: ${$height || theme.click.image[$size || 'md'].size.height || '24px'}; - } - `} - - ${({ theme, $color = 'currentColor', state = 'default', $size = 'md' }) => ` - background: ${theme.click.icon.color.background[state]}; - border-radius: ${theme.border.radii.full}; - padding: ${state === 'default' ? 'none' : theme.click.icon.space[$size].all}; - color: ${state === 'default' ? $color : theme.click.icon.color.text[state]}; - `} -`; - const SvgImage = ({ name, size, theme, ...props }: ImageType) => { if (Object.keys(FlagsLight).includes(name)) { return ( diff --git a/src/components/Icon/SvgImageElement.tsx b/src/components/Icon/SvgImageElement.tsx index 0937172a3..006fdc2cf 100644 --- a/src/components/Icon/SvgImageElement.tsx +++ b/src/components/Icon/SvgImageElement.tsx @@ -1,20 +1,45 @@ -import { styled } from 'styled-components'; +import { ComponentType, SVGAttributes } from 'react'; +import { cn, cva } from '@/lib/cva'; import type { AssetSize } from '@/types'; +import styles from './Icon.module.css'; -export const SvgImageElement = styled.svg<{ - $size?: AssetSize; -}>` - display: flex; - align-items: center; +const svgImageVariants = cva(styles['svg-image'], { + variants: { + size: { + xs: styles['svg-image_size_xs'], + sm: styles['svg-image_size_sm'], + md: styles['svg-image_size_md'], + lg: styles['svg-image_size_lg'], + xl: styles['svg-image_size_xl'], + xxl: styles['svg-image_size_xxl'], + }, + }, +}); - ${({ theme, $size }) => ` - ${ - $size - ? ` - width: ${theme.click.image[$size].size.width}; - height: ${theme.click.image[$size].size.height}; - ` - : '' - } - `} -`; +export interface SvgImageElementProps extends SVGAttributes { + as?: ComponentType>; + size?: AssetSize; +} + +export const SvgImageElement = ({ + as: Component, + size, + className, + ...props +}: SvgImageElementProps) => { + const mergedClassName = cn(svgImageVariants({ size }), className); + if (Component) { + return ( + + ); + } + return ( + + ); +}; From 9f430ead40f66e4e0d51178fce8adb02b21bffec Mon Sep 17 00:00:00 2001 From: Dani Sandoval Date: Wed, 27 May 2026 11:43:26 -0600 Subject: [PATCH 3/5] chore(Icon): move spec from tests/utils/ to tests/display/ Address Copilot's standing review feedback on the migration PRs: tests/utils/ is reserved for shared helpers like getStoryUrl; component specs belong in component-family folders. Migration skill updated in PR #1049 to codify this for future migrations. Visual regression remains byte-for-byte: 37/37 snapshots match without regeneration. --- tests/{utils => display}/icon.spec.ts | 2 +- .../icon-custom-color-dark-chromium-linux.png | Bin .../icon-custom-color-light-chromium-linux.png | Bin ...icon-custom-width-height-dark-chromium-linux.png | Bin ...con-custom-width-height-light-chromium-linux.png | Bin .../icon-default-md-dark-chromium-linux.png | Bin .../icon-default-md-light-chromium-linux.png | Bin .../icon-flag-asset-dark-chromium-linux.png | Bin .../icon-flag-asset-light-chromium-linux.png | Bin .../icon-logo-asset-dark-chromium-linux.png | Bin .../icon-logo-asset-light-chromium-linux.png | Bin .../icon-payment-asset-dark-chromium-linux.png | Bin .../icon-payment-asset-light-chromium-linux.png | Bin .../icon-size-lg-dark-chromium-linux.png | Bin .../icon-size-lg-light-chromium-linux.png | Bin .../icon-size-md-dark-chromium-linux.png | Bin .../icon-size-md-light-chromium-linux.png | Bin .../icon-size-sm-dark-chromium-linux.png | Bin .../icon-size-sm-light-chromium-linux.png | Bin .../icon-size-xl-dark-chromium-linux.png | Bin .../icon-size-xl-light-chromium-linux.png | Bin .../icon-size-xs-dark-chromium-linux.png | Bin .../icon-size-xs-light-chromium-linux.png | Bin .../icon-size-xxl-dark-chromium-linux.png | Bin .../icon-size-xxl-light-chromium-linux.png | Bin .../icon-state-danger-dark-chromium-linux.png | Bin .../icon-state-danger-light-chromium-linux.png | Bin .../icon-state-info-dark-chromium-linux.png | Bin .../icon-state-info-light-chromium-linux.png | Bin .../icon-state-success-dark-chromium-linux.png | Bin .../icon-state-success-light-chromium-linux.png | Bin .../icon-state-success-sm-dark-chromium-linux.png | Bin .../icon-state-success-sm-light-chromium-linux.png | Bin .../icon-state-success-xl-dark-chromium-linux.png | Bin .../icon-state-success-xl-light-chromium-linux.png | Bin .../icon-state-warning-dark-chromium-linux.png | Bin .../icon-state-warning-light-chromium-linux.png | Bin 37 files changed, 1 insertion(+), 1 deletion(-) rename tests/{utils => display}/icon.spec.ts (99%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-custom-width-height-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-default-md-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-flag-asset-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-flag-asset-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-logo-asset-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-sm-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-xxl-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-size-xxl-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-danger-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-success-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-success-sm-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-success-xl-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-warning-dark-chromium-linux.png (100%) rename tests/{utils => display}/icon.spec.ts-snapshots/icon-state-warning-light-chromium-linux.png (100%) diff --git a/tests/utils/icon.spec.ts b/tests/display/icon.spec.ts similarity index 99% rename from tests/utils/icon.spec.ts rename to tests/display/icon.spec.ts index 8ca1ca3c1..5c71d3cd2 100644 --- a/tests/utils/icon.spec.ts +++ b/tests/display/icon.spec.ts @@ -1,5 +1,5 @@ import { test as it, expect } from '@playwright/test'; -import { getStoryUrl } from './index'; +import { getStoryUrl } from '../utils'; const { describe, use } = it; diff --git a/tests/utils/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-custom-width-height-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-custom-width-height-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-custom-width-height-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-default-md-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-default-md-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-default-md-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-default-md-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-flag-asset-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-flag-asset-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-flag-asset-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-flag-asset-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-flag-asset-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-flag-asset-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-flag-asset-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-flag-asset-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-logo-asset-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-logo-asset-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-logo-asset-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-logo-asset-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-sm-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-sm-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-sm-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-sm-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xxl-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xxl-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-xxl-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-xxl-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-size-xxl-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xxl-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-size-xxl-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-size-xxl-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-danger-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-danger-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-danger-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-danger-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-success-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-success-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-sm-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-success-sm-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-success-sm-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-xl-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-success-xl-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-warning-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-warning-dark-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-warning-dark-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-warning-dark-chromium-linux.png diff --git a/tests/utils/icon.spec.ts-snapshots/icon-state-warning-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-warning-light-chromium-linux.png similarity index 100% rename from tests/utils/icon.spec.ts-snapshots/icon-state-warning-light-chromium-linux.png rename to tests/display/icon.spec.ts-snapshots/icon-state-warning-light-chromium-linux.png From 513025633022544a107933c33eb16276295f778c Mon Sep 17 00:00:00 2001 From: Dani Sandoval Date: Wed, 27 May 2026 11:51:58 -0600 Subject: [PATCH 4/5] chore(Icon stories): tighten ResponsiveGridContainer typing and apply prettier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address Copilot review feedback on PR #1050: type ResponsiveGridContainer as `ComponentProps` and merge className via `cn` so callers can extend the wrapper without losing the responsive-grid class. Also runs prettier on the file to clear pre-existing code-quality CI failures from the migration commit (one-line JSX expressions that prettier wants on multiple lines). Auto-format, no behavior change. The unaddressed Copilot point — `circle[fill]` appearing in both the stroke and fill rules of Icon.module.css — is a pre-existing bug that the migration deliberately preserved per the byte-for-byte parity rule (`circle[stroke]` was missing from the original styled-components source too). Fix in a separate PR after this lands. --- src/components/Icon/Icon.stories.tsx | 132 +++++++++++++++++++++++---- 1 file changed, 112 insertions(+), 20 deletions(-) diff --git a/src/components/Icon/Icon.stories.tsx b/src/components/Icon/Icon.stories.tsx index f778e86f8..85be162c7 100644 --- a/src/components/Icon/Icon.stories.tsx +++ b/src/components/Icon/Icon.stories.tsx @@ -6,7 +6,8 @@ import { Icon } from '@/components/Icon'; import { IconName, IconProps, ImageType } from '@/components/Icon/Icon.types'; import { ICONS_MAP } from '@/components/Icon/IconCommon'; import { Container } from '@/components/Container'; -import { useState } from 'react'; +import { ComponentProps, useState } from 'react'; +import { cn } from '@/lib/cva'; import { SearchField } from '@/components/SearchField'; import { Title } from '@/components/Title'; import { Panel } from '@/components/Panel'; @@ -73,71 +74,159 @@ export const DefaultMd: Story = { }; export const SizeXs: Story = { - render: () => , + render: () => ( + + ), }; export const SizeSm: Story = { - render: () => , + render: () => ( + + ), }; export const SizeMd: Story = { - render: () => , + render: () => ( + + ), }; export const SizeLg: Story = { - render: () => , + render: () => ( + + ), }; export const SizeXl: Story = { - render: () => , + render: () => ( + + ), }; export const SizeXxl: Story = { - render: () => , + render: () => ( + + ), }; export const StateSuccess: Story = { - render: () => , + render: () => ( + + ), }; export const StateWarning: Story = { - render: () => , + render: () => ( + + ), }; export const StateDanger: Story = { - render: () => , + render: () => ( + + ), }; export const StateInfo: Story = { - render: () => , + render: () => ( + + ), }; export const StateSuccessSm: Story = { - render: () => , + render: () => ( + + ), }; export const StateSuccessXl: Story = { - render: () => , + render: () => ( + + ), }; export const CustomColor: Story = { - render: () => , + render: () => ( + + ), }; export const CustomWidthHeight: Story = { - render: () => , + render: () => ( + + ), }; export const FlagAsset: Story = { - render: () => , + render: () => ( + + ), }; export const LogoAsset: Story = { - render: () => , + render: () => ( + + ), }; export const PaymentAsset: Story = { - render: () => , + render: () => ( + + ), }; type IconGalleryProps = { @@ -164,9 +253,12 @@ const IconGallery = ({ name }: IconGalleryProps) => ( ); -const ResponsiveGridContainer = (props: { children: React.ReactNode }) => ( +const ResponsiveGridContainer = ({ + className, + ...props +}: ComponentProps) => ( ); From 714f8dd4d1a2b1a9c47a062c0dc7f927295bf4bf Mon Sep 17 00:00:00 2001 From: Dani Sandoval Date: Wed, 27 May 2026 15:10:06 -0600 Subject: [PATCH 5/5] chore(Icon stories): drop #888 backdrop from IconHarness MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The IconHarness wrapper applied a hardcoded grey #888 background that made sense for Spacer/Separator (where you need contrast against an otherwise invisible primitive) but hurt Icon's stories — it muddied the state pills (success/warning/danger/info badges) and washed out glyphs whose visibility doesn't need any artificial contrast against Storybook's page background. Drop the backdrop and the 24px padding; keep the wrapper as a testid-only inline-flex container so the Playwright locator still attaches. All 36 Icon snapshots regenerated. No component code changes; stories/spec layout only. --- src/components/Icon/Icon.stories.tsx | 6 +----- .../icon-custom-color-dark-chromium-linux.png | Bin 728 -> 577 bytes ...icon-custom-color-light-chromium-linux.png | Bin 728 -> 590 bytes ...ustom-width-height-dark-chromium-linux.png | Bin 735 -> 719 bytes ...stom-width-height-light-chromium-linux.png | Bin 792 -> 712 bytes .../icon-default-md-dark-chromium-linux.png | Bin 678 -> 615 bytes .../icon-default-md-light-chromium-linux.png | Bin 719 -> 617 bytes .../icon-flag-asset-dark-chromium-linux.png | Bin 709 -> 538 bytes .../icon-flag-asset-light-chromium-linux.png | Bin 709 -> 532 bytes .../icon-logo-asset-dark-chromium-linux.png | Bin 346 -> 283 bytes .../icon-logo-asset-light-chromium-linux.png | Bin 401 -> 286 bytes ...icon-payment-asset-dark-chromium-linux.png | Bin 532 -> 410 bytes ...con-payment-asset-light-chromium-linux.png | Bin 532 -> 415 bytes .../icon-size-lg-dark-chromium-linux.png | Bin 744 -> 708 bytes .../icon-size-lg-light-chromium-linux.png | Bin 796 -> 699 bytes .../icon-size-md-dark-chromium-linux.png | Bin 678 -> 615 bytes .../icon-size-md-light-chromium-linux.png | Bin 719 -> 617 bytes .../icon-size-sm-dark-chromium-linux.png | Bin 538 -> 460 bytes .../icon-size-sm-light-chromium-linux.png | Bin 551 -> 465 bytes .../icon-size-xl-dark-chromium-linux.png | Bin 978 -> 977 bytes .../icon-size-xl-light-chromium-linux.png | Bin 1059 -> 965 bytes .../icon-size-xs-dark-chromium-linux.png | Bin 434 -> 375 bytes .../icon-size-xs-light-chromium-linux.png | Bin 457 -> 386 bytes .../icon-size-xxl-dark-chromium-linux.png | Bin 1904 -> 1875 bytes .../icon-size-xxl-light-chromium-linux.png | Bin 2054 -> 1841 bytes .../icon-state-danger-dark-chromium-linux.png | Bin 1185 -> 1047 bytes ...icon-state-danger-light-chromium-linux.png | Bin 1187 -> 942 bytes .../icon-state-info-dark-chromium-linux.png | Bin 1222 -> 1120 bytes .../icon-state-info-light-chromium-linux.png | Bin 1140 -> 931 bytes ...icon-state-success-dark-chromium-linux.png | Bin 1216 -> 1100 bytes ...con-state-success-light-chromium-linux.png | Bin 1209 -> 1004 bytes ...n-state-success-sm-dark-chromium-linux.png | Bin 893 -> 815 bytes ...-state-success-sm-light-chromium-linux.png | Bin 898 -> 760 bytes ...n-state-success-xl-dark-chromium-linux.png | Bin 2033 -> 1881 bytes ...-state-success-xl-light-chromium-linux.png | Bin 1989 -> 1693 bytes ...icon-state-warning-dark-chromium-linux.png | Bin 1181 -> 1095 bytes ...con-state-warning-light-chromium-linux.png | Bin 1177 -> 985 bytes 37 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/components/Icon/Icon.stories.tsx b/src/components/Icon/Icon.stories.tsx index 85be162c7..893ce98d1 100644 --- a/src/components/Icon/Icon.stories.tsx +++ b/src/components/Icon/Icon.stories.tsx @@ -59,11 +59,7 @@ export const Playground: Story = { const IconHarness = (props: ImageType) => (
diff --git a/tests/display/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-custom-color-dark-chromium-linux.png index 4ce85b94c118fd28b66f0d97b305b340a3e33cea..927913f642ad1e6c4b01135603011456955d543e 100644 GIT binary patch literal 577 zcmV-H0>1r;P)qn5;&_Qt3xEruXlga*IDuBPX>wJF z56u37@p$mAZuk1e`rSQyAJ>A{uKUxnTAV)&>I;-T^Zl7L+pX0*#~I&qO>6UBqNH>e z38etI{b0|fBv87VKLTFuZ|PJNm+sj(;t0hEm0X-mlJ6K#B+TSJ@@v;N)=#8qU8_TR ze!tN)@k@fYxF{fa;``NnxLqU%r97Tx62f`LR!Faf%bb5B_#?A3g#G~jd;7g@L(KV5 z9G224ieWHBXpxYoe$8}rh4ZOy_pRg1Z4y2hm9Nyj_R3Ky7bsmOq=Rw!kOG*o8`&7O zAW+OENh=gzF!|bVXHfZKC{l!OPwk7*R>68&-)XmvU>*eZ_qKC$t#dk#-?%Oqj_R0{ z&pmHD(pZGhOV2$bW$Df{yQ$Pj&*t|LoOnnCvKpHJ-78p(fE9q|089ca2!>yEWjz?x zbe2z)1NUG2 zP*&G<{_LLjaM|pXcaxqhRC@7Xt#?Sh)A4@-`E$8;xs`11bCjsubm+7ci|P!`=%&^0 zdKT|qyqQ1!;|BYr&hHNt@AJpE{oH46@cE(jd+YokE=rATtg=!H4sD?X5t~<=d&z~Z zx7Ya`n|8jua-SSWh?rQ&Ub~8#H4!>fGeYLfaS>S%I`hKAhr2g#K6gRjc;Uav!u3X- z?9z4nzkW2_v_D^0M1XZg$gzmky*4&awr!VgWbm6C9{zsv$v?-AeSW0W_u*jU=U=~W zUlCE_oq9?lMN)ot-1=!=aqIm8zwC9?HT4i$#2`BJ+6xUkt4)!*vio=bROI+E)p_q$ zlWC_<^06;sn0lSZzPvK^Xnj@I{@unMivskXU%&ow$MZ*rrhBcF`JS4|8Q2hJuDxb$ z=(FeU1?I*QuP$F+8>d;as%rnvNPf26YQl>cbS1Au8~;sR92gbrYNDurcze{lk|>R- zKgxF7ci8JMI{tajo;5Sh3O|4TENiQk`FB$hCzp%I9~Zjt#Z9t%`z~t!JeB$WWxH>e z?G~G}$YS%&k3P$Ux(n~VyYcp|i`LbWohj3~CpH(P+DxA=JNf13bA0O#VU;qFB diff --git a/tests/display/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-custom-color-light-chromium-linux.png index 4ce85b94c118fd28b66f0d97b305b340a3e33cea..50f4233efdf0a8626ebc6639c863dfc6a074d0db 100644 GIT binary patch literal 590 zcmV-U0y}f*J5K}6TdwU6;&e-2y(%AT2W~Qs_d~#ArQ5c4ux?CqCBXFr{X^HLc z(@jmWy}is}EVE&WK)_Q~RkyvZZEFJbdK%%l$>oyOELxnVIp{V?f^yPgc_+`zkk!>xM~6bK{(<~^OPBq^ zaaVJ5ai5RpIO$TU*B9IEm7}8yjpowre)RiGolae6XI5tZ_V%E*7QMdeySr5t6%rYS z7v9{2g>f(pjQYauj_vN&tgafI&NTUKVj{e@*5LI*hMd~?yE~u5VeIQOPfYgf@9 z-nOxUq*2{_Jmo_}pPBE%D9Si65c7IP2s@j&zRuDNzlR_sV+Cbp&n%k)I1cKv$Vj2U z2ttkwF3F2!M5Z)9FpSD%l1mQlOol>5HXHg_;bbr2z)1NUG2 zP*&G<{_LLjaM|pXcaxqhRC@7Xt#?Sh)A4@-`E$8;xs`11bCjsubm+7ci|P!`=%&^0 zdKT|qyqQ1!;|BYr&hHNt@AJpE{oH46@cE(jd+YokE=rATtg=!H4sD?X5t~<=d&z~Z zx7Ya`n|8jua-SSWh?rQ&Ub~8#H4!>fGeYLfaS>S%I`hKAhr2g#K6gRjc;Uav!u3X- z?9z4nzkW2_v_D^0M1XZg$gzmky*4&awr!VgWbm6C9{zsv$v?-AeSW0W_u*jU=U=~W zUlCE_oq9?lMN)ot-1=!=aqIm8zwC9?HT4i$#2`BJ+6xUkt4)!*vio=bROI+E)p_q$ zlWC_<^06;sn0lSZzPvK^Xnj@I{@unMivskXU%&ow$MZ*rrhBcF`JS4|8Q2hJuDxb$ z=(FeU1?I*QuP$F+8>d;as%rnvNPf26YQl>cbS1Au8~;sR92gbrYNDurcze{lk|>R- zKgxF7ci8JMI{tajo;5Sh3O|4TENiQk`FB$hCzp%I9~Zjt#Z9t%`z~t!JeB$WWxH>e z?G~G}$YS%&k3P$Ux(n~VyYcp|i`LbWohj3~CpH(P+DxA=JNf13bA0O#VU;qFB diff --git a/tests/display/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-custom-width-height-dark-chromium-linux.png index e24eef010328fb9a8ecf050842dab62fc8dcaa91..cdb00a52efb95a7b9699b226e822eb7c8b82f4c3 100644 GIT binary patch literal 719 zcmV;=0xX0ssI2q)B-S0007nNkla`hjN4 zNmmJEhzDBfMX~{#B_KZ`R2Q)223N2+KwmoykPI&J!k%;X?!3?W-sk(?pASCVM1}SO zRnQ*czYs!Ebb9)sZS7-dE4aG4qEad;6bj&_Qfcr@z`SJY>%07C6d6J4b_iEhy)hb2 zc6Pd4E|Y1g9<7&1#0&<*Xf(#-aTtafboxc9G?7f$?e^k8Qc2eY0>N{wW^C-%%egs% zQLFD<85lTy=4?0|CK!W$flj9%JI*YZ8rTrnWem$R7-j*swe@J8u~@7Kf;2QV6bHi4 zZm6!NK$Souk;eAbx5J;KG%Juxp`vZUP)kS*Rt8{;^JErt#52>?CLs|OeW`by4&O9 zIF1X2!qL&2(MV)!>VZb9EfFH^@4Lp~a0~{$$L;$5?Q8Mt+W4$rc-`L4CYIe*tKF`R zSGsu?iON(OY8irwDzy5wXpT`4NMlmAY4G4sC1ld+Vi!-P$Ye6{ohvq%%f<23`ueBxLZDy3I-O3!WwTi@ ze8AywK>L2O{{_DQ00960-b~DM00006NklpPzZL{aMk@Bl#}cb(%VEykd*lx&xb!t~i)64k zkl|xrbLwf4)!eoxhYuhA__0uH>Z|X+qt=SePqdKgg!D*RKyAEV!EWcV^=D+h40{O{7G*0z#8F9O`&$9)B`zvxL8&pIEq=xp{e6SqqcM zHHnD$_;{&iUu}^ETFEbXB{qJ4rd?iMF0uORt4Ca~)?R+e!Mfs9gx>V#+d%O5udUgW zqeqXve5tvMgDa=L{{P>yaHc0Z{J>CTH2~N-$$+1?tY5V z&b@n0C3rkSRD?Q@COPp+)v^2XsG645)#Vw@yzuejS@G-a&5mos4s(X-h#h^Ca#%7} zYbsMCgPWr0Pt!J`O*eBg$}N_C`uXQR>jldT26p!L+Ecw2Uv%I(6WFM)ug~$WY`2r# zB;&TQ#H~?(>;Ch{K79O`*)VVW@B2NA7b`En{PWMBH(#q-ZB(w`xO`by>cRQFeB~=% zmUNw1uNl<-x6|0c!?ozxxpU`coqcx6;D|zz-P^BK($dmST9b}`sIgc%t?gmZ{;gY8 zLzE(Us&hm)<{QrN+HdG3#@*`l_+!P?4M#Qg!mQ@{dAM%6(Y0UdB9Hj;OZz`e~ vn-m}^X0ssI2q)B-S0007gNkl{l; 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 diff --git a/tests/display/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-default-md-light-chromium-linux.png index 94a872aa5a41b603ec77b22ec28e40a1c656785f..ddd58a4ce7f84b2d43122cc2c2afe3a01ca47018 100644 GIT binary patch literal 617 zcmV-v0+#)WP)p$E4qx8q{obeV`@Bs)Op+vI zzd(@#;6P$*4{tV`iNxbpQ`+tmm{RpUdwq*6dyw$8pDx^)Szw{{EAYCX>nOsnF*ypXA$fXU~%) zc|UUR&z*(308ffKDpRM^*=n^KjfO%uH@~Zn-F>7Ro(#jt^y!mlX0w?f2zeK&RLVw@ zh}yzn-NeL=+qdqlti0xVeyy|?4$r~-{Db*eERLdRATX}#Sw^W;%4D*7y&gKZ*=#Tq zkHzhFyX%z8U@-hc{QuY)TNK5GhYQ7GQ51hDNt4+`QB*J(FdB`KNVHrod%YgF+uhN* zR;$spOKM9)LxWbURS|RC*K|6KS;@R1|%P*GGuU^6q zdu9^^VPIhJ!tn6q)Fh;1W8*)!ww4l0i1Mon9}1(Rmws15008`ce_?f1rY@S^*!b4r z8GfDs08xR(V&SX&woepox7!_JtyYU+S~W4e!Z4*0RpM>W>+2u8x~xE@Ib3J8T6H)a zFs|3@l}bg9HHY?+`~m;~|Nrvy&l>;$00v1!K~w_(N@vcU)RY^m00000NkvXXu0mjf D+qEW7 literal 719 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAU~2JnaSW-L^XB^5V4*~r10T~< zlf_+nFR~g&3tez);wh+knKaoY-8!sZ;D4L!mE=TO=3Pr13pR-BS(rI7RWeQ4?o<`k zm1$&ad;U!RjQi;`=H9Kl}D04ZgtQ8{JC-FY~$u-2VInQZrNgyCp~}m z?%IkOtHW0NO`p8sSZdm=UNze&9k1_~k~VI+{nl;q#ocSJXSXox89Ezl}VVwmJN4+9Ag2tPOSV9S+F%@3pk}5w!Yh-+tNk>+UW8KDkrn?_SQP z2cPdM%6y1A8}@GPnO*6{JNIaGt*W}a#@BWEWzJT)8~HcBR@pvm2^6OZ%6)zx-v% zAL%RN*5~KsT=Ia9B%k+&}lQvdohF_gL zIrxysKe$#r%FO#Qf(cHzeFyzTCK=#0@Da*K$E_5J@RgC{kRA{6wK) z{+E>UJ7g2)XCE_jw3@~IUwC@!yyxk8-uLu&&cUUm4Ez=t_yhiA#*5PE**nYpqE_I+ zZHrYPs(3+rWxUM@4@~u!RS!;n)E5!@WO>5TZ z?uPb0>5S>zc>{4t)RSqdjSP<&EbCQq^Fu@Sxy zLiOtIt6AMLfEGf;lW{va)2q7jGHR^$oB-{>9lYb1jP7Jk6u za@ZX;dDQS2(YK96)4dfL1x?Jo`OOg^l$U_7z;SamF)vQkFg-bRcw*hTSweW6>W$!g zc)ejfF1xKZzptq%jFSG?OiF}_QT~w%S&&@pRO;;|K;g)^Kw*q6GhE!5&6cH&{r28j zr)E`_GQd~7qCK=T-x}CQ!1<3_3*>;G&)dDlgEL5IvkBK^NtYu%uYw=0P_X~8bl;VB52arL@;O3vCn80@u$ywQDsoI* z5Yoi5cH=dB5v^$@J5M>TleNA(CC)bD_Xd`imX#9c`=@`OSN(2h^ZmQO_m!uAsM@O& zePOdsQ_2P>qX)3&Yf@3YyIcq;Sdl;YE}F3q?vGgHF4{!>hJ{ZI4GmnEP6?1~mm zIyrIg+q%pjcUP;PYn{X>oi-`(#ofqYqxC%7uB@KfxXkL~nUCi_dVDFj*?XxtgFWAe z`M^A%$2ZmPo$mHkz4y80`@5q*iVAaAefoT4ir?~NDF!v=yL%2*?+z94wJgeJ@9$l1 z8@##r;fhTKKW<$Pd75FcgzYQ)>UsTjbN(2fZD5d2o7dj>o=~PdG1=<7sh9=CAeyP4J;1i_52J8*E+|)`gUvOd#i`uPw(>DrK%ld{^#&* z_coilZ*7f>u6hS=Nsq{V?B&FpmNxl;nh&?+!70_de@1Lyzj4o&32Sve7`=8q{qB_S z?bBvCdSxj(8U^c~_GU6XNm^v|O|$0jzlO6(uio;f=oGxyeEfIsyhJwMJv`6-zIUtk zWi4FDq!zsWw2kihjZY8Tn@9>Ih_AZ4?4(JA*q7oq%*e!unkS6%;3UkehAdsqrBY zLh;tA*(~lDMGL{CvuWh#);`2Nss+l|_iL3F@$}}|pB2lBl9twv<+qQRU~uy-KFWJz zPqZb+2nNPt3Kf9CA*j+T{(!`o9UQ=zwFIc!EoVrW84U<8+CHPzqG8-=Cf1{oE73O&wGYe zteW|SNns(Z&3&m!acE$+09(3er1E>&)dDlgEL5IvkBK^NtYu%uYw=0P_X~8bl;VB52arL@;O3vCn80@u$ywQDsoI* z5Yoi5cH=dB5v^$@J5M>TleNA(CC)bD_Xd`imX#9c`=@`OSN(2h^ZmQO_m!uAsM@O& zePOdsQ_2P>qX)3&Yf@3YyIcq;Sdl;YE}F3q?vGgHF4{!>hJ{ZI4GmnEP6?1~mm zIyrIg+q%pjcUP;PYn{X>oi-`(#ofqYqxC%7uB@KfxXkL~nUCi_dVDFj*?XxtgFWAe z`M^A%$2ZmPo$mHkz4y80`@5q*iVAaAefoT4ir?~NDF!v=yL%2*?+z94wJgeJ@9$l1 z8@##r;fhTKKW<$Pd75FcgzYQ)>UsTjbN(2fZD5d2o7dj>o=~PdG1=<7sh9=CAeyP4J;1i_52J8*E+|)`gUvOd#i`uPw(>DrK%ld{^#&* z_coilZ*7f>u6hS=Nsq{V?B&FpmNxl;nh&?+!70_de@1Lyzj4o&32Sve7`=8q{qB_S z?bBvCdSxj(8U^c~_GU6XNm^v|O|$0jzlO6(uio;f=oGxyeEfIsyhJwMJv`6-zIUtk zWi4FDq!zsWw2kihjZY8Tn@9>Ih_AZ4?4(JA*q7oq%*e!ur(E-GaxpL*a>;jac5w9$_b#~z{SZWh5bEmB zxj)}Mmmkh>Ig9mX%MH~WXC;ch@4>;Us-9ez=XvnKvQPkA(Zo|n*fdSw^9;iP9~~zM z&O2EKhv5YUP!t7C$F@7dqsE@Xf28Yr6kXv%!m=doH4V;<9DBj_R88uy_YTML4fWya zlk^lX2+Nuf%4m|@DW!yvvMe82*0wG9nde1OFvgl!lcs4^Rlnicm^JhU00960QGnW~ h00006Nkl5f{bOWc`2YX4<}E&82(f{JhMD1;mz%$a(!55X2!p4qpUXO@geCy@kC;aQ diff --git a/tests/display/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-logo-asset-light-chromium-linux.png index 2dae240b36f3b8a80584a4d1c3e82d8bc04e00b0..01ac270f7b58ab9e9abd45bd9434c482fe0928c9 100644 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQlI%bqTdAr*7pOxeiSWFX?&y|8t{ zfn|J$7Q9ee?NcMLqt)t{#rnJs_D!y{vRy?OQ9H1~LwWiMG3OSHWcE}I?gjgDv z=R|&X-l0C@!xT~1LK*hI>A(LPDdq&8*wk|4Qo@ud|0QOPhTI7g|8m#0S=$1A_5c5j ip9w303^tJWm>Irjy9w<%{i6yf!r9e z31}@`_r^#x=#^&?%U7SB&bPOoU6i-#uJqlT%ukp~MK_2tnZ{f2a_PmK^pHFCIeHJv zCXV_OJ`x?mt`n`qqGSb+ElA?g!cI&w;F-$1`Q;nUN;%fX=anauH$~ieS}E7l^!9d{ z(ad%6*QP%%e7|LTRfO*J@1=Kn^xICExkqlgy?1tG*wmT6muKv}Uq54|>-5x2y(5Cg zufK)GhQE?8I19G##^#%Q(ju4Xyfjkty<8!8K0i6NbL;yv@?U#$9 zdaLZuWzPR|89}PRO0f|0f#Lc8|C_W;7k~^lP>3=!MCQ9z)fu%|0!0`+UHx3vIVCg! E02G_BX8-^I diff --git a/tests/display/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-payment-asset-dark-chromium-linux.png index 5a65d2c87b99cc33b4e2a6bbb04c8b63f14093f0..f86b04334bb97d9f7ddcdb591150ef51e39f1347 100644 GIT binary patch literal 410 zcmV;L0cHM)P)5a)7#98gK);}Jlw=syZiW7aN3A${?+fPd66qKYo`OP z4L3z8!nm|!mH4h4m6`ci+w$QxOF42+;_Uj_eMw#z4JEo6X&W7WYq?;wd( zCLe69y?d6o6A>$6**JM*Df`m?Rr<0J_BnqpV_-4`j6vv+NA+85kxIZ2yv$>smQEoU z`+mGW$dTQ|{%skUioXB=0RR6k2XKY}000I_L_t&o0ES6pwe-MCp#T5?07*qoM6N<$ Ef;Y#lbN~PV literal 532 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAU_9yR;uumf=grOY+RcSB2R@$9 z>3`HTB$>pGIk?(}wnh~|+?M)up^ zwBOuxfA-PB<+io+YNF8p3l49>S_TPAx= zP*EyPRI@v)@^ZyRDQ!~)^*<7h6K}lUyth}5%d53IH(}ZCV@B7vnq1jnnHnXR7s3#u z`!&aRrUTm#!;Mpl4&7Q~?%TKhwcflxx11iHlU#9Kytei6=iAqt*DmGDUvXKXi6`Y| z+Ch&;e{OFuy0oqESH>ExjXRsTthG>hJnvjEigD>uCyn zTR+G5>CyB1J{-(h9(CgO-Wv0;%xnE`uCe>OuNB*%x#69O_*-2C&#JDl*LjT0@@GR9 z9?h5{^k3XHRAj;eSxwSObO;;2%3T>H@RhqHu5aa)@^fs-&gmdKI;Vst0OH~81poj5 diff --git a/tests/display/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-payment-asset-light-chromium-linux.png index 5a65d2c87b99cc33b4e2a6bbb04c8b63f14093f0..7ac6a296d4e751aebed0f48364f4e5f273465179 100644 GIT binary patch literal 415 zcmV;Q0bu@#P)^%iJJFp>Q~oeVaH& z^^o2iogefh7Y3q1?@pLp4Rt{P($S&aFexAZi29k7&q2;k_qSfYFjfX{jv@gAsyn!PC*0<(lc!X!=*O&omm!!-09ByIzpX9qurvWxaJvbf zKbDr`8KpxFA=sGef&aD)G{wIF009608_mcz00006Nkl3`HTB$>pGIk?(}wnh~|+?M)up^ zwBOuxfA-PB<+io+YNF8p3l49>S_TPAx= zP*EyPRI@v)@^ZyRDQ!~)^*<7h6K}lUyth}5%d53IH(}ZCV@B7vnq1jnnHnXR7s3#u z`!&aRrUTm#!;Mpl4&7Q~?%TKhwcflxx11iHlU#9Kytei6=iAqt*DmGDUvXKXi6`Y| z+Ch&;e{OFuy0oqESH>ExjXRsTthG>hJnvjEigD>uCyn zTR+G5>CyB1J{-(h9(CgO-Wv0;%xnE`uCe>OuNB*%x#69O_*-2C&#JDl*LjT0@@GR9 z9?h5{^k3XHRAj;eSxwSObO;;2%3T>H@RhqHu5aa)@^fs-&gmdKI;Vst0OH~81poj5 diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-lg-dark-chromium-linux.png index 2cfbaa96fff2d753db709bca9b279055196a5d4c..acd97ba2ba399ca5665a4cd405117964f74a2a2b 100644 GIT binary patch literal 708 zcmV;#0z3VQP)9ChPNgl-TraOj^WYolKnY^@vE0&bDi?6G0}Vls@}?3hfUV8CMDkxG|ZT3P_l=kX4H?(1|~27^)k>M{;@rGk3*_RYx1L$yYu zR4CKw^u+i$?KVxVR!1U{y}ch0bX_bGI$h3C=vVnGY{k?d2->w-Wvi=eYp+m-!{JDm zp543u!0-2?jMMSW>)mHhP1XA}A`t@CYPFRZv)K%6H+-7UXfkzo!{_uU8jS)=r_)Ld zgK-Dg-~V_NcZY||T@+0f{^4QR=kq<8o<2VQqt$9hM;|@qaDt%_Ai-&G?+q@OOCS*B z^7V>`*lK0NFuX2*JuonUx*pH>*}1u3FgVNSi$uagp`cJGU&>_X2SR}$$k5=R!{Knb z-6+%3)6?I7ORv`_ld078xpqF1fXEK?!a+)ocnHgRpk@&i~3G(Ih`FVj*rBYP}l1RjC7HfHBWoye&o(iC& zqk~GNO2nc-Ajo2~0YfH}1%i1BnLIc|jm2W8f$(^|$L(5JT-?}rU#lVtg`!b^o|v4p z*>*8St-82ZxQa*JlV%g}1YnPn zNlabD9`6H|^fhtD&XUwdjnzyvK}0 zqu@Q!GM4)v9kjj2{?F$0?nSTp+MU-ZNo`!TLBcemM@q+yS8Op`cVP3;6$g{9Bp7C) z3Ma>UIIq51S5tH6{{8pw-hKQ1*GEm5hi&=gm$z@<{{6dp^;ND`r=v-MCmgd)q*`Ti z%x=GZn`<<)$8GWBk3SwheE8@QledSNRPWxswsZZ$S6|(Acin`BH9d;n8=U+OJv5lM zGlnmZt@+`D2Mg}zeXrVEVwJo7_Wb$txm%ln%H*7#3UsHRKJBqG z{P^@~)6Sipok~wOsJ$2Woig)kmaVOA=rjq5xb@RiCtDx=a@t#bBh zk*vHt&=o-UR_$GPWb@581r{#r4E$P5RJt_(#C$Nl6s4e|?EU6=)7!Ui*B`u?!J?XK z!(?*r*fBOW^&;&nZncIo7Cvg1A3uJ4-|WDV#~&Sp&azdS%)bBLUq#3%^osal!&mR# z=?QQ=`TX;K(8jG>Tk9^r{wmge^lh2-+;f{ZZ$5wCfAh_rbSWwS744_a8~S{>em#5+ zXY$4y^I6-r_c6Dhf4+O)zBWZA2`!6R878w9FIHZtrPZCt)^&8^quI7oy;99)&z&v8woxxNXU_42>%FBs3r|6lXz*yE2+e@eVOs=Fg_ z#VM)(o;?x-k_0fNY}}NzADB%4|8Lw7w+zT&10_^u2D^Pyh8;`KvI9jJJYD@<);T3K F0RRmfR;2&{ diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-lg-light-chromium-linux.png index b4cdb481910968ffff313e399bc8c10e2730d992..eee1221e05e7495c092e2235f2e1466393f1bc2a 100644 GIT binary patch literal 699 zcmV;s0!00ZP)Hym`xyA=Omkc=PkZy0ecN6dMJye5-@`ty*Vp@? zS1yi7HC*KM0WH&<3HYK^*DqF5{jU4iw_^~1x@Fpt^1IPrSI z;j{~dLO{X#rlw0`vDj)|t=3vR9tRdd6u3vJYy}pSli!(0RJFIGQIt@9Mr<}4*d6B% z?s3>1xF4%%Yik>)ILJku!{G=7f~BQTXY1-ZI__=!*Z{3Ha2v3`4i0`T%+IG%siCJs zMS*389gU)o2L|@`{1}x;B<95hKA&$gnP#SqBob+G@X6?lQPAT*5@861Lc6(&(~G8m?oKQE7sy;N&7g}gWY7{pbjWhj^`YToBcDwJ~zWeR_ zSB2t4t`3K@^L{6OSMq|~4~KzOT~!e(Lnf0^D3o9zh*7av1Z+B;#%O-nKw~FErBVr1 z!DKQMiA337HG7Zp6+tl6rRyrIv_kasbjw>>ux~n@4nklU#whXhKK_3I00960b&Q>@ h00006NklKm3epX%Cqt=Dn>f0I(iQKF-(yRj@KCAaI)hJ^+>8a&cmhud&5Unbm% ziH%(v^s>e-J~->{-MbG9JSHviD}J7q_BmVaanUZ7m#GR82{kh&om6?8{PXaqiw`IM z@R5=3jz073?%usg8znkj-t@oC`#!m9@x)sml{WM4-HSWMxPIjdjZ+UFUVQQS;>nYp z0UA?gcpOREc&Kn;)LJVUzCe-Z&+bL#Udz9IyN5q6@oSZAUz5QNsgJ)|Ev{vmzP*xQ z!1AZ=X-s0x2d>RGa|(3Cy4DKrh+SJ)P+VMG6SLv=TcECP_A}e}?b|nZ?)$lEn>Flg ze^gF5ooiVoMxRJG$kDtH1wA3)qqAk;= z{9XT!cLwJwTBmv~^?JHy<*M)Oy8SwS%e4hQWH0~y`}g$e)0-Z&SD*f}tX?9=;@Wll zxBqVZz0KOBaAx1k#;1nU?@mg+nPKARufAA0aGCbs!ZYefH`SdrEH< zAGpPF-bABi>k;!8()EUQwY9MmwSB^^+Cx($`}p&7YwhNrOqq0gQ`xQi^}8p;#KaiH zzO)hD`aOMPgxo%!X}{eTAFNn(KKXz80c(Lyw|_sM$Vzrr)!Mx^jp6zK=xf!?bv$2` z4O8%^AYc-^W%foKn6&@@uhfpd3S_W>5;rr$qTe@;T`uQy28u9vy85}Sb4q9e0Pw7U Ax&QzG diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-md-dark-chromium-linux.png index d8e1ae04732790a19d7e02c602910c1046942123..99e0142c78c5423c5acd293032d8bb0312b0274c 100644 GIT binary patch literal 615 zcmV-t0+{`YP)l_2LvLd<-l&{uJ>(Yj$R<-K&`Slgw=jCNmuk@i_m~^b zmNQ%~c~EgtuUu?wo<8I{wuBBg1{-(Rcb(#)qD~+DJpA_k{C?lhegE!M7cX5_oD_)S z6gZW*4Mj0I*Jv~zk0;>w-RbMYFf5zR3WD(V&1;9lQ7jgJv+QA!DJu5#$zzV=L{XfW z2uC6>;PP8KO_JTSv!6(klshZs4Ko^zKfb5k?uV(>RiJLS>t!TzEL#x$l6h*fwooPSc-ZJf9o11VB-XD~x%k`j8D3nSisTa@%hGFFX zDmekaX!LzJ{M_ku>h(IS)jB@@4DLrqNBlm&C<-x(YFV=ci^X!Ir>9!2rc$Z(jSaZ* zjg74_YfDSZl}hCZ@$s>nwpOe4dWWuec4~Jz1c2GnG#!gk<#PE^AYd|?5{blOGT9Uv z$MNLiR|G-6EG*>n`G&Z|*wNd2yH=|?Z{C7YgWhhp4-bzd=I3|Cp-^z3zklHFJ&3R; zH`ue!b8|BvXC^0K0gXoAsoGRSUaz7ts_w3?4^vb7l>peb_;lQ6vq^MidBtEbG}R2B z=l*hv7TEf;rPt{s8&(}blucru7wSCUN?hmbjaOda8}@e1X0w@PS;+7}F|?B)h+HoB z-^K{yf@CYt>`(F!00960<;cuV00006NkldZiiD$`_1gP!uYbOOYB|wkgS+D~IgUvOxlSgurfhIBicpkXGl3_}gH2ndSrkdQ zQe$SiTHEyL;=AwW8AzOa{yD)Q!$fNOX;l#}S-$qP&6aZgGZ|dg`ltwf{8?jAn!(Q0 zm|(!sdog3l_1B9pYQ)TBcv822{ztck0SC@63tH*5^itmT?YGxnf2}LlJ^AF4u+@^i zZcBr1zAcl?Z&`EZ_iyW%^vyG`%=KGdwDZr`uV3%|{qZA#NkD1y&722W8zYviJDYa< z{rBUKC*I9EnPav-Ok0gXk&)rE-t^NOF8iome*S!U)Y@}tn+xtgEvmGc_xfwp+AyH= zmPXpm&)*sqG>f=>I{z`ryUkr%kcHO zeg5{XY(J+db1DCB?lOfpCR4pwHLt(^DiLnsZp?Ayap7D)_Tc&FpU=MUFw2qWK>C)r z_4c;5j%+*b=2ax@j4`S!h?CSPtoVL1CFs<;^-qd+M(8{%vEpuZ+JB$F{czaot(RXK z)D`rlMF>}XzwdiP_tArZ#aFYI>K$RIiIxnvSkIGV{F39dd)aPTm91CW8ruFI+i@t8 zZ5apqsrhdD=Kr3a{NKFU$7*id uFt%-`oY4m+vj6{gs;&78WUzsf88ZXtG3GU^Sc}AfA`G6celF{r5}E+H@ipWC diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-md-light-chromium-linux.png index 94a872aa5a41b603ec77b22ec28e40a1c656785f..ddd58a4ce7f84b2d43122cc2c2afe3a01ca47018 100644 GIT binary patch literal 617 zcmV-v0+#)WP)p$E4qx8q{obeV`@Bs)Op+vI zzd(@#;6P$*4{tV`iNxbpQ`+tmm{RpUdwq*6dyw$8pDx^)Szw{{EAYCX>nOsnF*ypXA$fXU~%) zc|UUR&z*(308ffKDpRM^*=n^KjfO%uH@~Zn-F>7Ro(#jt^y!mlX0w?f2zeK&RLVw@ zh}yzn-NeL=+qdqlti0xVeyy|?4$r~-{Db*eERLdRATX}#Sw^W;%4D*7y&gKZ*=#Tq zkHzhFyX%z8U@-hc{QuY)TNK5GhYQ7GQ51hDNt4+`QB*J(FdB`KNVHrod%YgF+uhN* zR;$spOKM9)LxWbURS|RC*K|6KS;@R1|%P*GGuU^6q zdu9^^VPIhJ!tn6q)Fh;1W8*)!ww4l0i1Mon9}1(Rmws15008`ce_?f1rY@S^*!b4r z8GfDs08xR(V&SX&woepox7!_JtyYU+S~W4e!Z4*0RpM>W>+2u8x~xE@Ib3J8T6H)a zFs|3@l}bg9HHY?+`~m;~|Nrvy&l>;$00v1!K~w_(N@vcU)RY^m00000NkvXXu0mjf D+qEW7 literal 719 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1SGc?vOHyAU~2JnaSW-L^XB^5V4*~r10T~< zlf_+nFR~g&3tez);wh+knKaoY-8!sZ;D4L!mE=TO=3Pr13pR-BS(rI7RWeQ4?o<`k zm1$&ad;U!RjQi;`=H9Kl}D04ZgtQ8{JC-FY~$u-2VInQZrNgyCp~}m z?%IkOtHW0NO`p8sSZdm=UNze&9k1_~k~VI+{nl;q#ocSJXSXox89Ezl}VVwmJN4+9Ag2tPOSV9S+F%@3pk}5w!Yh-+tNk>+UW8KDkrn?_SQP z2cPdM%6y1A8}@GPnO*6{JNIaGt*W}a#@BWEWzJT)8~HcBR@pvm2^6OZ%6)zx-v% zAL%RN*5~KsT=Ia9B%k+&}lQvdohF_gL zIrxysGVAk4&9c@ zZw!NBr*@ldzofDQK(E(B-R*X;w=`0t*>1P8Kqs>*O$YHH>hSj!!zGdc0000Zh2baOn8f@ znac0nG_|8yy>8AmM)8jhCo*P5G)RdpXk%T0of)Vq(CK0{v*&DD^Nsi4)hBx{WK(5& zSYR>xY}MX-QESt--(DM*tu#?%s+SYv4<@;O_4((^ci(+kVkOnP>gubq-Lib`&p%sE zKh2r*fmI=Q$&|D|HFjrpnATliy)2VS`j7g%vfWRMBK4*x9@`j^V<55P?z<4Jsea3E zzuk7g&6D@c^UsezO7tK9{rBI)0uB}?zvY`RzvN)`aQ)3J*3H`2miS`Vzt3u#4?_}~ z=Q~aHVy)8H;@6S*?fdUqqnSEl-ANlcYFA!=Z7av$$i9i;%c;vRujH65tU0UA*Umge z0ch?7@2^#RuV(FayU)Ivt?6KbiPYS)Y5Sj-?~GY6Q;dt%W8vRAepNZHRu;J#OnTF~ zr~QBb_4Zq~&F%LkkJ!zBe>ElWfRAFto3m-3-(SeuYGi-9YH!e~PS diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-sm-light-chromium-linux.png index 8360de56fa925d8b5435d13dc04155142f08979e..a956b76cb616ddf0f7febb5638faa04c9d449c28 100644 GIT binary patch literal 465 zcmV;?0WSWDP)i{)LTwn#dqc?r6TT`1Ur zgBU6rBBH%^pU27T!B8%jzeBfLErK9Kzo1Ykpn5R)0N!Xc__XM2*!qUiC=!C% zyoJyjkWG^bJeRlhAFTXaKLG#$|Njrn@t^Wnfs5y{rgY9qxWa7iFeS)u%GnK(2LgqX7MU-v zRIJ?3TsbrD$6=r96)(R3KB@5dWW!;G3<(Ba<^_oiCOi#oj28?Tq}Uvg1a~u)#QLiU zolTp3?r4(XTtDIJ8$t;Z$1XoE-ukPqvhZq#iO%U$ds37hYHVcu-B7f%ro4Lp_Wir} z?0NDrhh-ge-uBz8D^(-Aj>~gozhS=hwru(3muH(aOrqD`)3IE#EmiQE%b{7TRs~-U zKA7M!Nkw`3Ws|jGtCvn%nPOB~QsWV^`6QcVdKWpY~IBe8#FIQyw=kL1?KU^?>?KSqFbzTC?BJva?<)kEK z|9-yoVif;s1Z$X4B8W=w<`OGc!Z|zS%po Tz6H1gMHoC?{an^LB{Ts5j(qU# diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xl-dark-chromium-linux.png index 2255d0627b45d6b7172e693db11d85ba06d2e41b..b95eceb00f53035da6f5447db47e1f4bf5b0458c 100644 GIT binary patch literal 977 zcmV;?11|iDP)si^4(R58sjqK=Xl&`C=FDfdwnaA!Gm6Q}i_Wu5U9xwT7z%@4K zW@%a3<;(atwKZN|Uf__L`jAEsO5^iqW@a8`WbpZX#PJj0@%SGz-xZ2AHixsfw}TSc?8vta%F{H*vZ{#US7OZfZyZ*Ole zEiEAqo?vltQ7WC{a=9#46h^wax#i^K92^{oL?TP)tjtW<`=^c$o2l%|luD&`b&3cC z!Z)#aN;>81>&xZd^6>C@URqjRT>}mg5fKRq@zE?+aB#3pCW}u<)a&)9D1aQw14PMS zFwj@M{#QXkK}%~Z`r6jo5*{8758d58g1o$)ot@L20E3T@51B+#Ycz7Xe1Cr*;{yT$ z;L?CZzpy>v&i((uhD<>c+1Xi9k&z)Gj7yhXtX84DB@#(*Ute=`Gs=+3~-auUYI#-HToLK}k?dV6}%kX3~uCFSn&^0Ms$H^Rc& z+uLwBTth>{+jsBh=H?6rgH>K4k;r6*!X{ugNTkx_gp=$Z~n+M8Vx#rdV2a*WhHVF;J1@25WquXVuB?vkx0RYhB7e5 zTmWUi4h~ z5v;*za6H&>7-BRU%}Gpuo=rxxI?O6ksnuIsTb-RZUIEGZrc{BT__S!&+W7p+U zPE1JIHt~jr*P) z>fihOPcLkK`TG9%KddO6%$+}9Uq?qrSNHAPx0W(|FSg%)+uq*Z=YyYArPo8Yq zvgJf(-TwcdJ{46}S;_E~mzHwQeIXhX6x8(b*DtA{-jAzSYxhJ1C4cz+`}gP1#`gC1 z%F50e&g&nnS)SyLmk^oAJg!~_Eid;9)b zD(YXpd~&}Q zEIWA6@kJysNkm55^&`+I3(FY`^KT?cd;r3TVbzgiZx$I4t!+0U>K<4EA zsmaOAM^FB!X1deIV{dCKy2|k5e;a{z)?i}Lb8}#Z{QqBX%C9aUgAJ4=nHhd=Y)e@; S&E^GAgu&C*&t;ucLK6VQOxN=O diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xl-light-chromium-linux.png index 406a021164b0b2954c7d8a23dcbb24f01bb57e91..c98881f6196aeda6e785b711f39b0d98bf29be2c 100644 GIT binary patch literal 965 zcmV;$13LVPP)v zJA;gRL2amjLZJjpBwA?k*48AjviW%}obMu{LfC9WTGcyv&l$Dhw zl-StV7;_B|53AK`M@L5+8yh_laC`oLprcLa=A;!B6~gxR-rl~Yr6nydTyGkU8WeYjPe?d)=%A62kyc!(R4NjQ;3FU|g+k#rbMScl>gwvy z(D!NP6agfW`}B2h0` z-?P40cKSi3Qepn|^n8W-U?h5(l`54E0k}}eMw1{00~SMJVSeaY^AGO=juij^00v1!K~w_(ZdYrU> literal 1059 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-3iqFyHWWaSW-L^JaFWf3Ty-@#U#6 zTfM?t?robmB`C1a(Is9aG)vfoR-4_Q=^)i?yEiJWfb%@r>Yd2opxN~Pu*z&yr z(b*fLI8s+|FTecq-#^Cpi@t}S;5~ViHJ9g}NR}_1=mu>Y?p~(I-=g&@` zHf@%VniKCX%Q+q@$BwIC$tpem*gb7?L`cYz%de&K&CJa1bsT>jJURH1iB5j>*0(1o zALnXKN_nEakTdq-)~%*JVXL=p_^|zsWq7GxwRyMO;)^d!PJAxW@?GKhn^XPdL1vwE z-P}%`$10R2itB3%8oWDF&SCmOY;DnE!N=FGg~in**UCP=`RUW02mk*4J9bQMQ`G9K zLRlAT51qJi>Xg^|>(9Uc-h41bOI05)<45(ukKd+toL=d|30kM zH@ca!>dw7?@4i+Ao|!dkcEB+MMG2l=={AiC38s6p3?$y&+wGm<6dSSp^1hm{i~c`$ zP+(SKWo69>eBpVi<)QvzZ|~DPR;=8p+^6cBvB+X(zpkQv^2P|0UAi1vA&>7YlI?Wa zVCg6zJLAIhmTl8AHl!QL>`Of(vQ4;IUhavq*zLldG2RCgG(_&*y?b_d_uJ_jv)+_h zZ<`jxa`*Mw*V`lBE{ZI%k`IV_xTU4g=GUK0gPA^Zri_}sZ%yjd)YRm+ZC7mH_@@4t z?dH?or_awTzm#zzq)Tj7-uc~fF)@3qo<`N~J-EO<_1tXcjRh7x=B(A8bHo-b57GMm z?VHlX(m6{vFq=o8nLF2iX}P1@6MNmnuiw6YTX^~2zT(|GcY3bXYd!feGsC`WuiWdK zkG~}ZuN7k1lKLXCZtGsD$OoT)u3ELqWR{VV_9t=OKVN6ho-HaWx;^jipVujKCf}0V z_UO>#vggNqA06a0l;INGIWb;>zdhxg^YNJ8MH-JX*RN^WFmJP?jEbRJu%?pvCvIg+ z!+#r}%CTyhQ6j-#J z$^2Kbf02`#_kXsN`#d@oEY4Y{+^^I4Q7$KeGv}a7`~l|h|Nr+a{eJ++U<2iGW`@LD W-mKRcHP-`07(8A5T-G@yGywpmKLjcO diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xs-dark-chromium-linux.png index ab4afdb6a020565d3dd4752836b4aa42906a1238..2025d8aa3296206e5e03fc991d611f0270f4352c 100644 GIT binary patch literal 375 zcmV--0f_#IP)-Oi>gJJIHk$$ByHQqOe$`5W=++j^j^{4_TJ6 z$85PwN|Hp8{3J=1PKIH;_4}UhZ)VOTwrz)D*l1jtW_Q_mrNVy2ad9zu zH9;IA2*S|J8aJPR20@VHib-HPjiTsdHUkhMyPV}000960IXD0_00006Nkl0 Vcu7nmQ!M}h002ovPDHLkV1gPzpYs3! literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HXJDU`+RPaSW-L^XA&_uI2!NhKJ5c z98Z`OCx|q*Olh2;G(jy_OaAP3A$^XnsLWJlu_gsGt$VZPs=g5t+ji?_o4i5$#)c=wgV)EH3xphZ$NjzO9Q_7Qh65ozB`S)oXX(X8!r3_7hmP z9e!9~Be(qW%2lhj-(I^e`+6y>))W1`H*>!I-n;JgyyuP^mt_jn+RX=wzF4&?ZL?$# z`;x<^J;$r|>YWZ+;MA8l>zDygMf}fuM`Vv;`2G_k1H=FSkpiV3fFaKY3UX!!j(cUja%-!?fFcZ@u6{1-oD!M< DIF-V; diff --git a/tests/display/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-size-xs-light-chromium-linux.png index 63d82d0e6245b8ee94e7b454d77acb4f7623bdb0..f768fb13c12b4f6602e0a5e9155cbe62f954fea9 100644 GIT binary patch literal 386 zcmV-|0e$|7P)5o)z)?W@!^T0C?Kb6 z21SxnOduS`DHhi@H`e()e{y`9U*TDnodWs3-)gl3-v>21i*g)inkEdx}yX!&_Nfgg=xn+i7;&rNGbt#)A2%=uU7KFXA@qYgW z!?4N2peXt_8bOJKJsf;{>a;sFO(Q50gEUP;5Cq5ZZudEpS%m)cmJa{`0RR6F%{@l| g000I_L_t&o0R9PzT9w%OUH||907*qoM6N<$g3I}%o&W#< literal 457 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 diff --git a/tests/display/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-danger-dark-chromium-linux.png index a6e00fc46710b37c29c81b694fd73b8f27c08a0b..2d5393a0a54a7c38d9cfd01b58da87a8ea095fea 100644 GIT binary patch literal 1047 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
wx5cTfOG zy>*p}zR%j3fPG+p31Etfr!9)6siYK^K#Vq)GNJGBq|FBR_tj-(Qis432%nwhS5@)f z7Z+idOZZNK!GOcXb8;Z?!YKg`81q3o(HA{tc2FuGN|?9+EP>mgX_7l&IYh&F@sh*{ zc4$ZxXitSelC;r`!b>P#vMT^^GuV6THAs|>@NHyN*+`xOkiv>$&t10o#k)d#wD^TR z(VkcQCIdMYc^eT|DBtmap?t@yLotdbi~j%s0RR7>yaA8^000I_L_t&o040`s6N!Ex Qf&c&j07*qoM6N<$f_&$(+W-In literal 1187 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-3iquta#eIEGZrc{A&Dp0KA#+wRq? z-)=K@dfyzSZPan-%$P+v^o|^H&8g_nWD&rqYngjK{mCnzrfGUE8_T!K`rOywa@$~0ssmfo#n|JCe^>PyHZiy*cr9*=`>=g= zZ{o(ZtPa-MeaRPgvM%$P$4XK>x0hzK#05IMU) zKMyk7i(-PNl5cV}&4#xy03oaoCP1}ztMub=bm*)xB6`+s$BrE0owPrSZf z`}_O#u{$>z+V^Mw`u29BdHyV6;m+Jdv16>uUuw;4uYBcW9HqNw+wtR%Z(sXiv5EUy zUU^>S=9}9;&QlOR6ZHGZ6t4c@xa#~=Hwe187)`F2O=y?p=k=f2+WEOQeq6it7}?k`zc z_RAz~Q~s=Ibw7)V-WRi;zPh^hWv0C;-|PDe+rKkED@d0*{-^R`lUc+G7WSS}=?b^q zw!5~3M8uot?EZW~TSQ>B*}1ugolL(y@mv@7+sZtA{@k}|G0KM`A|ftmaIBW}Y!a+X z&%dLwZmp@d=AaXrl0Ic@RA z+U6-*Cz;N4y$>+h^;-4nB7yuMr*r50ch_E4)-4Rw^EP|#@ufWVN<`Y;hY$07U#a_V z>yz!iUvFEw>hnJ4JK4pj{3fkC+_Uh(j%@Fq1G6tNajLERVe9tq-of`uiiuNZmp$rY z?^@He?v{o`u|;8)OYG%KU&HMDC$T?rS;YE1NIctkMU)ZS+50ozJXUWOyme4!vS+N+ z*4b^ToprlkzpT2viD{bWeWTkp2hLABx_I%lzvXxO7d3o$mfPyG;Pr{d!_JHUTPJey zU-mKP3AF!`7}c@vaORGH>5t|eU$ptsk2?jwcZf(c9~P)_kiL5GZTmzyzBd9EtY4?I w6U@GInbm*91523y|HIRCE&~~CpfZM;VS3*Ba1I><4WI~vr>mdKI;Vst0O<@nHvj+t diff --git a/tests/display/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-info-dark-chromium-linux.png index 6907ba0514e52c383cc4a6bd43cfd2a0872a06a8..1dfdd56cf2bf81704b0412b329eaacf1501b8d7f 100644 GIT binary patch literal 1120 zcmV-m1fTnfP)TdpN4ypUA1C29NE#Kvjjs&?YUm-S^Yvpv2vb)4N*o8;4KwL3HC`{v9!Gjq6} z-acdv!$4FJiNlMj0~3lc*J#xYrW<-quN9b5!q|oYahBAG@U9?n`0BhJzyc;<>ZA?{ zlvr&|Ew5n2o>ZVdYp0)g1`)B8f2>6)bp}C6t*q#k+*WV6EfdFrw~q)SdMXf(cRx#b zw_04nz|r2bc{+ka8hmQ@N1%d7kOnaoECev&z5NhOv;z?8;5~f^(@p_cciz+AA-+A} zx<;>IY!=|00Z1COOMqYiVVeN1X9C())Cn64MZMl`>e@pEx7EWUunIw`4 zaK*+P$O+-PY(`|V8F)vdhnv4gj=q}D=gYE;8nGFU45!n}Hs(Oi!S=El0bCb<`tj{k zr(ZgBNa~gb28X^m|24FajZefTAXX1fgtzdEG`>(rviA2s2PY-0hN%FgfaLSvTTG$GapLp0zT2m-tlfnu<7QpN!HMk* zpxuL3$?D}S+PKlwat0!fb_q-^YjU>v-4cLWLoFuzWb4IS+O z2Gf*63bmyr=@5s=fP-jTfI3xKn}-EzZ>-f{Y literal 1222 zcmV;%1UdVOP)jddJ7OG5eg=+I*=f>O@F?pG6)+JF2qf! zny?q0x1$mqAnf584~;Hci5jLnVI*Kji$-%KK`TJLiv8WHeS?Q)1^a!Bpl4_i*x+C<`0oOgfR*KU+;m)<=Gcje+Y^(wsc>VXkjZ4G?oOvOgJBKHETfazJnYve zq0q-lCR0P_&j0fB{f)vpU1oEaCnj$_nEiceVV;if?%d0cUfSAx5z<Vt4(B-^~qj^=8$n(Nk` zMq_(;_~Vx^caCkmE7-a;Lc3=oZI9+2-kiMk(S_l7Jbt!6P5qh5Ke;-7ZTwT3Y!~Mr z9ou+Uun7*}J#poqzaBh!ygW2?t`VizcN;F%gqZ!~x5D}}&+|@VymNZAA8t}E73nx! zGWY*~&|BC9Yk*;XFbret%C-K1^qVL}ICia6DlW{=xvqQl`i;KS2dnv~&)4!{#(@ca zYHA8NaM5fz(k#omH~m9;V6ar&+AfzVdNmJC(?+tn+~u*Ar3E3h3&R&_FjIw{o$aGW zH1JH#1`gOfOqm+L)qZg7%DCq`Ki&V4Jo(No!!*CYJ53cH{`>d(^R>^v{PtpYG{5?! zrEy?_ZCawFRLk;oIu z{^6~soBi|GYPAy9WG(-6bAJh)Up+WK1d>_cgHtd$+0tw~cxzR>T`sk0VmD}>JC04q zI~7c^$D6oi&Ul!x%NS8(!i$S4u)-{ua;r(Pt%(3mj4pzND6=Q1`LmX!mNbi#t&N00 zQX55TI+ENk_3A#YNF5T6MNGJTqNsCplNQDy8puT{QFa2WR!?+w`daDR8Vy=gt3hN$ zyIZ0Ka13qAJi3^`wp%L1e}QX=0Tl7NJ$#<5Ci8ZYE?sR6bw&F9i4B*p-T z4(N%hHmILG$c_>$J4&$ZD8aI$1j~*REIUfD>?pyqqXf&25-dAPuV!LI-S0RR8j ko&n1M000I_L_t&o0Kh@nhUHc|+yDRo07*qoM6N<$g3>8S4*&oF diff --git a/tests/display/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-info-light-chromium-linux.png index 2a584f790db24d292431889cec509ed03b8f100a..b267a1c0d81317ee65c6a0a26022965b29b516c1 100644 GIT binary patch literal 931 zcmV;U16=%xP){(*4gDku?K zDt$tt6ja)WhM}Y=Ryxkid-J|-zc(|@jN_X(I^$V9?z`Oc`<-*{x#t`%gdo0RSi-P~ zWxEF*K`5n+;!7k(0-Va+Uz^ZU1lUd*B4w5_089ayh7|B_g+Mn1(98L@js_e-g_bA4 z-<(~p#y zwjcU(Oia#Nx6X&I^{Us;hOYFeuO>|FpXyZZT?)7Eh#C10xnxfe_ z9EidolF+j@?T@mU=BEyDW;uQy?5=UM;LR5^^ZW9%xkIIhEJ@$Z*tA(+OMTP<&V|5< zk{rM~)1~x{=pSaR)r9!DWMA!3u|GIw42-5ge!4T@LjZ8P94nvyGfVd5oQ>jqs8MRD zb$tSQLmlgAl2xUQ?xqN;5st!Sm$-(cE}p+PW)>Y}bZ#@E(xxcu?NmZR`t)6Dam6{> z!jCk|o(KS^D+$}PNT4*`?299jyAJZ&NWNtKjydB$EHttQmm}Zj?PsH@ufOaY=hR~@ zvX}XUb4D$%r!X{bs0zJ%F&qjO=Sf@>xBC-t?!xiF;b#7DP8l-N*Q__Zh-`4uU^XB zxuKLWMsi(CDp(gv2G(tvNTRcSM!@FYMAtR%#~U94zbC`b)=z{ynVL`vw} z+7gf;p@3^#mKH;YPe8UR$j;mg&!XZcYC?=rQoX=X6vW*0k~f>BIcRkp(63QhAxiP! zh2aI4R@nd`OYRdXva!VIXbRLHXVbS1@6`bHPIsT-7n6a$iQyNx>Q;x}LP6V0S;BTm zW_-u_%=peFs&MzM`m6r~00960*DE^I00006Nkl literal 1140 zcmZ`(dpr{e9A7NmJhJ8y=0mZj9{YHO9zel(uy|5y60vvXkYjY5!?iZ%%=*p zn5h;(ND%zeja8}!Vz>oF{L9b0P{jY5wQO;4^hx``M+@gqBkz)9+cH1Ng&gs#%Ca&8 zmmn*b(+Fm*-p&G~zNu>n=Is}PhUJxS1zt@WJyKq)DX z?>Dpx{3)RL;kr>;#fU!iof@85P0MYd#~l6pC}YURcA`37WZw_hy}ifq7dH3|I4|(A z7uYA%uEaBvmFzb`750?p5MaaQ27RH;r^v9dlf=#kFqy0pu8Q9(CkpRv;87ySmIc9q z2vgt{uoTn5q&{Ijt?ZT-T^hu23&*dy$%}s6n0vsRk!oF_%W<3VFmGr745Xo+&Y2>u5{)psoDoL)}(g$DKv3%U$S`e5UYmMa}p`RpweqDYcKt| zKF*!orF5;wVtgI$Z*;ne6~3%qPrK=`b2pZVu}iM3_s>dds_szi2-#~}>Yd8Oj0;GQ zr{wOzB5B@+1mo7QBTyo#66TT(X9eK4}klyQiFwOB|pZ_l4Yw6kt*(_5TBL3Y0u{{u*9! z-8mmsh?4&HJ@K-72jB9JKu0zY8;824~(vN zr3GFHC8PTIN8aoJB@vVL4tol3+wmh-dpL7W<@vY{0!yWgVW-+$&j9c#Zdp|aC6NB_ z^5gJXcMHxIW4vB9^Hg%QNjMZ@^>JZxirPRy2(Z?+kH)apC4`9M22=j64jnlaLAhfi zbVgE;Gftgj{NeK5f9-BdH(@W CbUK9q diff --git a/tests/display/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-dark-chromium-linux.png index c6c86afc6d2fd47b31d9d4ac4c272094f72fce2c..50540b20bb6126c06c0a4432120ffdd4b962cba7 100644 GIT binary patch literal 1100 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 diff --git a/tests/display/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-sm-dark-chromium-linux.png index 208381181207333c3ec4fadfdbee76e1fe07f159..c641b8719b9c4a843c276ddbae48b3d2d1f5645e 100644 GIT binary patch literal 815 zcmV+~1JL}5P)~@ zh%mH4mI%9w#}bZ&qx+&(t5uw9ectAs%|+u9<~oUJlc=#75!xI)aH!4Yah*DS(q^+- z6s38`_Kxl&MYx2ygovZQ5<84T;Br^Tj>azbUYZ!6csD)M(cLlpVEE~iXAQxIU}Ny@ zn<+z3JjF0LiP?#)SXPtOGMTcnvOnj8P_qX9wv z{-8OcY=W|0JI;}&Y1tGoW{jDUoN@^Xj4A8bvCb`#u-E4mXG&Q*mAZBF_M?%p_Rhm@ zkE`!;e>$BmFwi&zS{uYg&sT~bt8w+-(0!_9@1?EW*45KB{`}?G=;PYD+T$mBde59& z{VPPQ1kBZfP+`4CP-CzlH8W9VrE}rO0y0T5 znG|0|5vv5bYdm6}3y4&Pkyuypobz~Gotd6N#pLyiSCr~ipPHOf_KYzA#ebiH9QF@_eOnfry0ZhYYf6xSW6$kR|sV>24C7sT3u+ tnf*5a00960yQk6T00006Nkl9kYb`C#Y97j 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 TO&lWb00000NkvXXu0mjf-d=?` literal 2033 zcmbuA_d6Si1IDRC%v30ea9U#TQhStI5u^4@X*r`!Yc~3bsgjruR>$5$iA%aXjfRCSNQ3k@wAc=oKF&CbQM~LmlCSP3 zSIkUFxWOq#0I5mH`s&%f3(pB(QdsJB>P;+9;IroWKMv{a{q9^N>nN=LmZj-MQr!mq z9TQ)s4j^9UDr552s3M3KbB{&&JSLTw+=U79#~30V(FrWg*{I5Wt4hhbGh9Qv!|5aE z>lXFKm6mG^67v08*>3wGPXex9TT_?e{_(<+1kG}=Gy}y={F-Z^+~h;ky;d=|4xIS3 zf7x9&!0;(zCjMYywCJLPdT7&Rd(XVlk`f%cjDOD&ON#1FM8|r`*q1_jIn8g5c^0tS zjMDKvuxu5%gzJ|zg(=}FO185fPK~{7w)TEDm3U7J4QA-29xNjJmC=RvF83);WXQ7t z1>frzv;t_$GjdO?sDgZ488azP?;@*cE1gq-A{|3j5Hx}(SzqLeTBu?xqnjTDBmt7E z1-#fpIs6Cav&dKwK0HY2))|OcRAS$M)qj>RS?H+&cPP}~&h58NZ7^T5=k)0NRrlAV ztLrCR0ZS_7b6G!^7hgW&>;t%X1_{14@rK79b0w$m?(e}|;PdsOx=$w^t0aRlDUyZ} z>s$VQ)q!Ij1=OywZ02RCiz??er(Qr_FS!X{YFj1)pD5%DJ~}!U2NKc<3vIYswMqIG zz2^ouDJm{HFgEh&^d}Z11ZKdAOs(VgiGI8oj|{5Mj9^)|bC_R65R~$YYtf5{x=_|$ zjPp|TIO00uBJBTVRI=wA!`~oJ}C?j z?lM4&u4Cg7=`3fok{$r3d5QA@-%=}AS(@F!qKs-YYUp( zyz`?5`8-(Le*R&*=yw=Mn-h`rf-qZ9HHPA4L1!u_h9w7G3bk9IJ`FlqW3P(uw)kF! zM}sT1VovoHMt%&IJd?g%R8kmbbof(Vs%M+pQ7rFz6H0~# z8LMS5@3-x+Uf{p@8Juk#PLDK9yHBUR8ppg7d$QXT2HX~rkCs~h6)euwkJiAvY;JUV zq#>j)QQfDZ7c94cLz!1mj+WJf)r&0~-P5Nv{v><>mtZx0OqW)~cr&jEhBekYT+FnAY?H%vOInT1!7ky$hA0a9tu|Y3&n*=b$*Aq_ivy?9J zr7sTR6Qysnr@_+vr(z(L@!R7Bat)macC^X#HaFZ}Oa1=&JIX^8!XkKNI;=#o@C~9F zk+gL1@XEBQZzK|^KhQBB!y?_%mVxxB#nhepa9V%%6pOb@qvYIT73DVU7(cI zfG@kLO>2AnZRWsud_A$Aq#O`Lwkv}SbH&rn2nC_a&Qw0BZQQd z;~-WYdbgFr+V!Z)2w3%)9;o;2(|-rcrb<91&5|f>O$Pfro=hEhuj@1FFSps7zX5D@ zmW0L4F8+m$63m=i{vu`Eb}-YrPgE8{=jb4`Cbdp(aLl6QK}m7-qEk!%R2)`})vuTK zbqxKZ93&e^si_`Pd!DF2+E)L~0=y?VYiE#c6&mtmykyfDvTFDK!3+c}jxy@ZtIhpJ zmw<FD93;IN97cOC zMVB)|_W5T&b2*4w!pB|B`Q}@mt0dl|)l6hGB3p*v4(dA(C5FaJq3+ATuH#O!=u}x8 z79^No*R9dYx&~=TN952nM%2U@3`_X?Q5$ou!!5-cIfp%}JSKap6R&_v0|)H5AfOi&c^C_S)*45#DafX;!`NG$V`x zd$`&Bps{T{=GYjy*4H)ur=ZEJto-|RcjXm5!lw?uEPCIn%0td5eN%9wJ=C72wQC?! zZ~lG#1q9fiSMf3z5`lk$vHP6|VUJo3W@77CI3wwBlV4|g%z7@t9N%*oHpyR`#CJSL zAAS*PT4kTN&OhiqTTA-y#5-r?O4vEC&(6|VfjQ@e>tAAXuss%0LfymYmYpwba7zb^ JdUO9j{s%lq(#!w= diff --git a/tests/display/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png b/tests/display/icon.spec.ts-snapshots/icon-state-success-xl-light-chromium-linux.png index 4a80c3b816a9483b9372c948018521a68327b756..87fe27e5f78e39d836ad4a61f03d7920aa4f8692 100644 GIT binary patch literal 1693 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 N002ovPDHLkV1l0S39bMD literal 1181 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51SA=YQ-3iqumpL!IEGZrc{A&NzO<{r@$zpq z{|cXbKl)RoykIJa;14MWnk%{l zSbuD?YLIf;=or2v!G-;>72A@ZTc2Ml*`ZaS@XGmYdsg8+Js*QrZLg*p&de0>?QL&1 zQjv`mKe}U=z+$mwt6!yrZA}j`SoUz5R2S0&aUQMQ73)mByo;R=OW$Z-EqSsv+8~Mf zx7hL4v{|9^dAP!6um(GAd*1t`dxEBsM#MuAA3=|qVH=#-Dw$^+dsl}v9y!9H<5^LD zcJI@v!L96jUwq`Azv%1a?a~(o=F9L#HUHV6(44Z3yYwK-?Dmz5LP9N`ww&KK&A#Gr zcl*trnlINb9p66v#o7CNGxo;)d-U#C)ZKX|6VAjfn-ni(b}*!6*&ES0o9=vAb>G(R zU*h_|f92n{`&-Y}=9B%u^=bX)-*Zy(*Y28p?9hoF2~EBRxl@oSb5l84bR6W-1$+r%csrBGnjMxhtCF8 zT}}(jM9xd!J}16Ee7ieeFDz@@);Bl!zuzwT^LJTweRAWmx7&Ut?J89J!Lol{g-zA9 z+9H`dpR_W&>c1|^n_|h!Aope~|BL2Bt0nf^Trah^d33}7#n)F8=kxu3RFx>a=D@5i zi?`_B$h#Jvwe7E0n$rA9Kkh#Nt8(5+L-@1ZJ^Y8wB6*qZV^Q3Q1OTYZQc51F$soLY>1J52V)VW!?b4tx@jjwO@ z*Q(g=_mYqNbb5F8ZQu9Do8Qg9`{MH1RIPJQp2s|H;xyw=_g!go?arrs{XgAVuG4m1 zeeeEnm9<>O1zuTe`x56sF`o^beFx8--7L!e=;4vx#2G7Yc~7+Px+Q-8;6$L?W+!Cr zYc)z|U6sS?C$n^dgg^V=qkC+N)5QK&XU}-y*!!#hx!&7@amV}B!!9mYPs}#Bm;bK3 zY4i8=2Pf7%Xbv{`I+HoF_+PE}9nNLB%_}Wj^_l0DB^OrNz5N;ac-mSu&ToC}mCaJG zn>tzE>?>i>zGJI9A@}9RH^M<1Zk60We|N#N_feCgF7-U}67RZsM0ddxo@c>aFTI09 zwy$wB%GX_}bY+sa=7-gyNAKE9=YWeEFdsY5Gc)geJd7xcNF6>e z@_SLhk3@ld6on{EK1?Hx7BQ@PZ%R=B>b;Z5=SJ!y06mQkaj_(`2m#(j*yo+xbQ#cK zV-_F)MVAc)d?*5FIHWbqn#xQ8SZKE$2>}!_XohG&8Umhb6NG5lQD}&;7i0vYXO{pZ zF8dq-2x(;NE(@Rn!YKim5p0{K1rP=oDi{sb9qD&Zes8!x()E^RwaMA}sYM4cqj_`X zD5p1?x9v+z-yq*jI!0POCOO`Xl+kkO(5DAixi}-7;P#v6KinvX%9WY9maiR+r;9B; z?TS5la!4tW_mJ=^z-1YJe0Y7~<@%)T%~0%bdf0Zoy!6SC)Y^1*x4~r2Jz1%!p^L{T zz$0aN9X3c4QZuCDGIOTj^YV`W14=Mwckur6M%}KQsMM%mr|*-E*wt)`j8rW{=G>KG2iL~@t%wTtHX$ve^jmCKBg6w&SfXP^v2Y}{noxt zshE_V@3M}_k|2g-lwNJ#X=me%NC8@7qQ`EL@)Q^Vq_Ec+7Lyl_)y-|9C>ql=QUC?f z!%QfT!}%Eq(gvSQIBO2;tXA7#Z_M&!SPfYL*aDvMKk;kQ5edn-du&w7&wxG=#6xeg z$GOB$0+*x+X)B;){VD`j1%58Tw^9%cmn1lJuFT@kR#hKsf@bk#$ zAvdmM-{F7BzJotxIO0cD@ecq1|NnwZlnwv@00v1!K~w_(ij#VWZQs0S00000NkvXX Hu0mjf_mIg3 literal 1177 zcmV;K1ZMk*P)lAv1qpEmZirSu zQ6r#I0f|y=A)&NV6Gd&-yY_fq->#cgn%dj$_IagF<|Aigd)MFiyEA@o=1u(N;|$x5Gi*CPObX9vA99IC0MZ6R z&<||}gcg1-JeUae8%7K;Q=mn0xZ_vPHXs>Qm?J_4ekv4w5l|=f8djK*+lO&Lp9w%K z)G4TpY}ZC@h7lvv@u|;_0@)5RlbCl!SW{Ei610TL8#uDt0SZiv9TI^WsKKx?F{Bd4 zbX(v7k_eyyZukv9y4wO0i7^Fkm<=nFdcf8!Bt?S23aeo>6lsB#o*-+-=8V$eAla57 zbQ=7#;@!N8zMs!5rt>F3dhst`fr`^3C-MXH94oiuYHi5e6RiL z`^n3vgSFr2e0ucM?YBSD2aX1-zgAsKvLp^nuo?En&?hZR=*3LW6-Rn{u9s%hPH~vi zVcH&Fd=%IW%b}sgMEmJg{dciAq~=A{fFOeYv+ZC1(@f2bEj|)#K}!tJy+PDnd?Wt- zTmQyo+1>JP{oj7+G@TCr{vo__j^<41!m07aM}f~UHNw!*Z)fS;!I3#K1}5M=4jh_ru*DmFj?3PqmWe{Ph_2-b>7>&CMcn9V^mBr zEM0h=5>;^dtk>SiW|#Eru_|$3f=vjaygyU;ZGQi8aP@)-oB7PbU;`C}t)H7`KcTO~ z>^m%PuTQOfuCDztlK2>~wXhM=D|^y{D?gzhZoT;-wdAh1I$1Jx?$fY!zH{sy{p9nF zl`qxW#q97>sW>pfCZw@k%G+F}QRMw@2~=@5|BBpLD-N?mi=uO@TpZXcUTlV`3WsF_ zK6&N(~ps~Fl z=fUpIpUD6O=cJvv;z5Pw9NAJx4l?B)8gbXOgh*s)I7YrSQcY;y&t0sop=v24d45F8 zl+Y6@O-ugUtEDcD!rOuhHb|gwjF2KcJ`d% rI{*Lx|Nq>GRi^*|00v1!K~w_(HhYAH`MY6400000NkvXXu0mjft7tZg