From db360809f1627d255879f3096f4ebcd12fd124fc Mon Sep 17 00:00:00 2001 From: Katie Langerman <18661030+langermank@users.noreply.github.com> Date: Thu, 31 Jul 2025 19:22:53 -0700 Subject: [PATCH 01/11] setup high contrast --- .../ProgressBar/ProgressBar.dev.stories.tsx | 19 ---- .../ProgressBar.features.stories.tsx | 4 +- .../src/ProgressBar/ProgressBar.module.css | 5 +- .../src/ProgressBar/ProgressBar.stories.tsx | 2 +- .../src/ProgressBar/ProgressBar.test.tsx | 76 +++++++++++++- .../react/src/ProgressBar/ProgressBar.tsx | 3 +- .../__snapshots__/ProgressBar.test.tsx.snap | 98 ------------------- 7 files changed, 80 insertions(+), 127 deletions(-) delete mode 100644 packages/react/src/ProgressBar/ProgressBar.dev.stories.tsx delete mode 100644 packages/react/src/ProgressBar/__snapshots__/ProgressBar.test.tsx.snap diff --git a/packages/react/src/ProgressBar/ProgressBar.dev.stories.tsx b/packages/react/src/ProgressBar/ProgressBar.dev.stories.tsx deleted file mode 100644 index 13d81215b61..00000000000 --- a/packages/react/src/ProgressBar/ProgressBar.dev.stories.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import {ProgressBar} from '.' - -export default { - title: 'Components/ProgressBar/Dev', - component: ProgressBar, -} - -export const Default = () => ( - -) diff --git a/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx b/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx index ddf4cc63736..7dcdc589682 100644 --- a/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx @@ -13,13 +13,13 @@ export const ProgressDone = () => export const SizeLarge = () => -export const Inline = () => +export const Inline = () => export const Color = () => export const MultipleItems = () => ( - + diff --git a/packages/react/src/ProgressBar/ProgressBar.module.css b/packages/react/src/ProgressBar/ProgressBar.module.css index e9f3badcd38..ceb2fd85b1f 100644 --- a/packages/react/src/ProgressBar/ProgressBar.module.css +++ b/packages/react/src/ProgressBar/ProgressBar.module.css @@ -27,10 +27,11 @@ .ProgressBarContainer { display: flex; overflow: hidden; - /* stylelint-disable-next-line primer/colors */ - background-color: var(--borderColor-default); + background-color: var(--progressBar-track-bgColor); border-radius: var(--borderRadius-small); gap: 2px; + outline: solid 1px var(--progressBar-track-borderColor); + outline-offset: -1px; &:where([data-progress-display='inline']) { display: inline-flex; diff --git a/packages/react/src/ProgressBar/ProgressBar.stories.tsx b/packages/react/src/ProgressBar/ProgressBar.stories.tsx index 5b61aa2e095..19291d4528b 100644 --- a/packages/react/src/ProgressBar/ProgressBar.stories.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.stories.tsx @@ -28,7 +28,7 @@ export const Playground = ({sections, ...args}: ProgressBarProps & {sections: nu }, [args.bg]) if (sections === 1) { - return + return } else { return ( diff --git a/packages/react/src/ProgressBar/ProgressBar.test.tsx b/packages/react/src/ProgressBar/ProgressBar.test.tsx index f08158f228a..32abbf69e55 100644 --- a/packages/react/src/ProgressBar/ProgressBar.test.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.test.tsx @@ -27,10 +27,6 @@ describe('ProgressBar', () => { expect(container.firstChild).toHaveAttribute('data-progress-display', 'inline') }) - it('respects the "progress" prop', () => { - expect(render()).toMatchSnapshot() - }) - it('passed the `aria-label` down to the progress bar', () => { const {getByRole, getByLabelText} = render() expect(getByRole('progressbar')).toHaveAttribute('aria-label', 'Upload test.png') @@ -76,4 +72,76 @@ describe('ProgressBar', () => { expect(getByRole('progressbar')).toHaveAttribute('aria-valuenow', '0') }) + + describe('bg prop', () => { + it('applies default success bg color when no bg prop is provided', () => { + const {getByRole} = render() + const progressBar = getByRole('progressbar') as HTMLElement + + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-success)') + }) + + it('applies custom bg color when bg prop is provided', () => { + const {getByRole} = render() + const progressBar = getByRole('progressbar') as HTMLElement + + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-danger)') + }) + + it('handles different color variants correctly', () => { + const colorVariants = [ + {input: 'danger.emphasis', expected: 'var(--progressBar-bgColor-danger)'}, + {input: 'severe.emphasis', expected: 'var(--progressBar-bgColor-severe)'}, + {input: 'sponsor.emphasis', expected: 'var(--progressBar-bgColor-sponsor)'}, + {input: 'done.emphasis', expected: 'var(--progressBar-bgColor-done)'}, + {input: 'accent.emphasis', expected: 'var(--progressBar-bgColor-accent)'}, + {input: 'success.emphasis', expected: 'var(--progressBar-bgColor-success)'}, + {input: 'neutral.emphasis', expected: 'var(--progressBar-bgColor-neutral)'}, + {input: 'attention.emphasis', expected: 'var(--progressBar-bgColor-attention)'}, + ] + + for (const {input, expected} of colorVariants) { + const {getByRole, unmount} = render() + const progressBar = getByRole('progressbar') as HTMLElement + + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe(expected) + + // Clean up after each test to avoid multiple elements + unmount() + } + }) + + it('applies bg color to ProgressBar.Item when used in multi-item setup', () => { + const {container} = render( + + + + , + ) + + const progressBars = container.querySelectorAll('[role="progressbar"]') + + expect((progressBars[0] as HTMLElement).style.getPropertyValue('--progress-bg')).toBe( + 'var(--progressBar-bgColor-danger)', + ) + expect((progressBars[1] as HTMLElement).style.getPropertyValue('--progress-bg')).toBe( + 'var(--progressBar-bgColor-success)', + ) + }) + + it('handles bg values without emphasis gracefully', () => { + const {getByRole} = render() + const progressBar = getByRole('progressbar') as HTMLElement + + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-danger)') + }) + + it('preserves progress width regardless of bg color', () => { + const {getByRole} = render() + const progressBar = getByRole('progressbar') as HTMLElement + + expect(progressBar.style.getPropertyValue('--progress-width')).toBe('75%') + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-danger)') + }) + }) }) diff --git a/packages/react/src/ProgressBar/ProgressBar.tsx b/packages/react/src/ProgressBar/ProgressBar.tsx index 69bfa985333..9b69e87a9b2 100644 --- a/packages/react/src/ProgressBar/ProgressBar.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.tsx @@ -53,7 +53,8 @@ export const Item = forwardRef( const bgType = rest.bg && rest.bg.split('.') styles[progressBarWidth] = progress ? `${progress}%` : '0%' - styles[progressBarBg] = (bgType && `var(--bgColor-${bgType[0]}-${bgType[1]})`) || 'var(--bgColor-success-emphasis)' + styles[progressBarBg] = + (bgType && `var(--progressBar-bgColor-${bgType[0]})`) || 'var(--progressBar-bgColor-success)' return ( respects the "progress" prop 1`] = ` -{ - "asFragment": [Function], - "baseElement": - - - - -
- - - -
- , - "container":
- - - -
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; From a55ba2191cb437aefa2456d467c626b42e742887 Mon Sep 17 00:00:00 2001 From: Katie Langerman <18661030+langermank@users.noreply.github.com> Date: Fri, 1 Aug 2025 07:55:28 -0700 Subject: [PATCH 02/11] test colors --- package-lock.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 272c4abfb2d..efea5554000 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31346,7 +31346,7 @@ "@primer/behaviors": "^1.8.0", "@primer/live-region-element": "^0.7.1", "@primer/octicons-react": "^19.13.0", - "@primer/primitives": "10.x || 11.x", + "@primer/primitives": "0.0.0-20250801025622", "@styled-system/css": "^5.1.5", "@styled-system/props": "^5.1.5", "@styled-system/theme-get": "^5.1.2", @@ -31525,6 +31525,12 @@ "integrity": "sha512-iFrvar5SOMtKFOSjYvs4z9UlLqDdJbMx0mgISLcPedv+g0ac5sgeETLGtipHCVIae6HJPclNEH5aCyD1RZaEHw==", "license": "BSD-3-Clause" }, + "packages/react/node_modules/@primer/primitives": { + "version": "0.0.0-20250801025622", + "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-0.0.0-20250801025622.tgz", + "integrity": "sha512-gSv5tJou/7NYA/ksCqofsaFhWUTVT1+1UKwZ3WDwKCPEE7QVklYyAmxnojBk0VTwC7ne0r7wtpP7fC30OaLOCA==", + "license": "MIT" + }, "packages/react/node_modules/@storybook/addon-docs": { "version": "9.0.12", "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.0.12.tgz", From 557680ddb4f8d8fac9aeba93e636b11b62a745cd Mon Sep 17 00:00:00 2001 From: Katie Langerman <18661030+langermank@users.noreply.github.com> Date: Fri, 1 Aug 2025 08:15:44 -0700 Subject: [PATCH 03/11] fix sx prop --- packages/react/src/ProgressBar/ProgressBar.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react/src/ProgressBar/ProgressBar.tsx b/packages/react/src/ProgressBar/ProgressBar.tsx index 9b69e87a9b2..811dd2dae48 100644 --- a/packages/react/src/ProgressBar/ProgressBar.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.tsx @@ -33,6 +33,7 @@ export const Item = forwardRef( 'aria-valuetext': ariaValueText, className, style, + bg, ...rest }, forwardRef, @@ -51,7 +52,7 @@ export const Item = forwardRef( const progressBarBg = '--progress-bg' const styles: {[key: string]: string} = {} - const bgType = rest.bg && rest.bg.split('.') + const bgType = bg && bg.split('.') styles[progressBarWidth] = progress ? `${progress}%` : '0%' styles[progressBarBg] = (bgType && `var(--progressBar-bgColor-${bgType[0]})`) || 'var(--progressBar-bgColor-success)' From 229650daecd7f829b479f24d0120641af7926366 Mon Sep 17 00:00:00 2001 From: Katie Langerman <18661030+langermank@users.noreply.github.com> Date: Fri, 1 Aug 2025 10:20:16 -0700 Subject: [PATCH 04/11] cleanup --- .../ProgressBar-Color-dark-colorblind-linux.png | Bin 5002 -> 0 bytes .../ProgressBar-Color-dark-dimmed-linux.png | Bin 5000 -> 0 bytes ...rogressBar-Color-dark-high-contrast-linux.png | Bin 5005 -> 0 bytes .../ProgressBar-Color-dark-linux.png | Bin 5002 -> 0 bytes .../ProgressBar-Color-dark-tritanopia-linux.png | Bin 5002 -> 0 bytes .../ProgressBar-Color-light-colorblind-linux.png | Bin 4992 -> 0 bytes ...ogressBar-Color-light-high-contrast-linux.png | Bin 5005 -> 0 bytes .../ProgressBar-Color-light-linux.png | Bin 4992 -> 0 bytes .../ProgressBar-Color-light-tritanopia-linux.png | Bin 4992 -> 0 bytes ...essBar-Dev-SX-Props-dark-colorblind-linux.png | Bin 4249 -> 0 bytes ...rogressBar-Dev-SX-Props-dark-dimmed-linux.png | Bin 4236 -> 0 bytes ...Bar-Dev-SX-Props-dark-high-contrast-linux.png | Bin 4257 -> 0 bytes .../ProgressBar-Dev-SX-Props-dark-linux.png | Bin 4230 -> 0 bytes ...essBar-Dev-SX-Props-dark-tritanopia-linux.png | Bin 4249 -> 0 bytes ...ssBar-Dev-SX-Props-light-colorblind-linux.png | Bin 4252 -> 0 bytes ...ar-Dev-SX-Props-light-high-contrast-linux.png | Bin 4266 -> 0 bytes .../ProgressBar-Dev-SX-Props-light-linux.png | Bin 4256 -> 0 bytes ...ssBar-Dev-SX-Props-light-tritanopia-linux.png | Bin 4252 -> 0 bytes e2e/components/ProgressBar.test.ts | 8 ++------ package-lock.json | 8 ++++---- .../ProgressBar/ProgressBar.features.stories.tsx | 12 +++++++++++- 21 files changed, 17 insertions(+), 11 deletions(-) delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-colorblind-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-dimmed-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-high-contrast-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-tritanopia-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-colorblind-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-high-contrast-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-tritanopia-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-colorblind-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-dimmed-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-high-contrast-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-tritanopia-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-colorblind-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-high-contrast-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-linux.png delete mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-tritanopia-linux.png diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-colorblind-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-colorblind-linux.png deleted file mode 100644 index faf3a67e8f37256cc70afe1cf15fd0e181dd902f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5002 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu-_2ht4x<}F}nU}#Wq1o0f3jDH*Bx9m}gsODfdRM_wCVtrFU2u9Injv z*U$UK((wOQ)?TUU&!0d3@+4)=_17!czFbiM@5$AQE&of(K>p9$yY}d{h1dMS-iN_9KsLuLzF+rW ze}26K=vIbzJvaG39^28j;D61xx?dbXksaQ8dV0&umo@);+kXA=1 zX$e@@kz3!7W}wjwG@5}%GZ1OLgwaxCwA2_aHAYK~(Ncr@BQT?7D`wgHk0D9l{FrcZ RJZRL7!PC{xWt~$(697`$kzfD- diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-dimmed-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-dimmed-linux.png deleted file mode 100644 index ac3b4e9855143cd152824685f138354302001713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5000 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAumR5AB_7Cs(gcM7aegN`utqh|Bn^%R>u9i2t2`S`OQUIN zG%ZokAQ;U+qZw#41C3@N(z+3&rN(HfF<7gkuEizTp-0*9OUlAuYH{5^?-?Xr!I%SMifOxZaNNtp|aFC02m7!eWaaz)aD@gir&maV?3 z9Fw{Q94|<;D?DU*Y?jUY;Bmfrd$oA?)~|;-ffjf~TE1ik(hZA+ftE7}sJvigU{LV5 z02FhWuz(#Xq2S05lyGd41CmWFwm_1FvkFLZ2oa;`y!}RZcYe!=`dL)@Yooml zJA=cGx9RczzgQaTZ`qu`-2VOjGV$}(d+&)5Y`sLo) z+m}^;m*>gnW&iu|x%XjrpzQ}TH*GDgtw^?b!N2b}k33MM@6nxO$3C=4fwV1nxFFv4 z_v;Ehpl2F_AKm`<@58Zz3;KFBQg%#0rGAs=&fR`k`mp2wPmd30mKK*=ZT?vNLjoxC zWB%FCHhU}oW>xL_n^KXzF(TUDX4-0?M8p1L{vUxf6@!N4upHGuOo|%~rO{BLR_QgG zmPXUkXj%eRd*oLCqZw#41C3^&(F{adr(v|z7%eqMOO4S|W3<$u{(#JgFI#`{?mK2C U9o4!7RK_xRy85}Sb4q9e06^G}=l}o! diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-linux.png deleted file mode 100644 index faf3a67e8f37256cc70afe1cf15fd0e181dd902f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5002 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu-_2ht4x<}F}nU}#Wq1o0f3jDH*Bx9m}gsODfdRM_wCVtrFU2u9Injv z*U$UK((wOQ)?TUU&!0d3@+4)=_17!czFbiM@5$AQE&of(K>p9$yY}d{h1dMS-iN_9KsLuLzF+rW ze}26K=vIbzJvaG39^28j;D61xx?dbXksaQ8dV0&umo@);+kXA=1 zX$e@@kz3!7W}wjwG@5}%GZ1OLgwaxCwA2_aHAYK~(Ncr@BQT?7D`wgHk0D9l{FrcZ RJZRL7!PC{xWt~$(697`$kzfD- diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-tritanopia-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-dark-tritanopia-linux.png deleted file mode 100644 index faf3a67e8f37256cc70afe1cf15fd0e181dd902f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5002 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu-_2ht4x<}F}nU}#Wq1o0f3jDH*Bx9m}gsODfdRM_wCVtrFU2u9Injv z*U$UK((wOQ)?TUU&!0d3@+4)=_17!czFbiM@5$AQE&of(K>p9$yY}d{h1dMS-iN_9KsLuLzF+rW ze}26K=vIbzJvaG39^28j;D61xx?dbXksaQ8dV0&umo@);+kXA=1 zX$e@@kz3!7W}wjwG@5}%GZ1OLgwaxCwA2_aHAYK~(Ncr@BQT?7D`wgHk0D9l{FrcZ RJZRL7!PC{xWt~$(697`$kzfD- diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-colorblind-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-colorblind-linux.png deleted file mode 100644 index d8ed75e00b3d4334e2ff081517ce0a23911aaf4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4992 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu<7gkuEizTp-0*9OUlAuy*?M98iF z`U2yJ#-DA(KfK-k_sYvPI;S`B0L@i+dSJgDkY@N%+$0C2npkXsBnxL1kmL{oI)gz# z9oyP@c1_p--3)mSL8WbG)ffA0yXt?m|&4J(L^2ZiSOFzE-taIZonY+ES85laM zzW#l--;VLY{%!lVnd!~3H-C3`pQ+#6sQI^M@%?JQZhmb2TI0{oKwCB(uf20m?tJ_n z8Eb3%PG5NCeWyks-UzWdA1_~wE?=1QF=gYB@3-@cwDrKy8Tb70G z^OFbql%e|OuUofvlzlx_QSkrVmusgs>73TP12X@QtKCtc0#X8ji4W-dg zqE(r8+uprRkmK%*IGGy{!hpwX5w^*d3cW$S3!I$E}lmaU^@D>cj37v}LT XmdrbsXWR#l>M(e^`njxgN@xNAWmlCX diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Color-light-linux.png deleted file mode 100644 index d8ed75e00b3d4334e2ff081517ce0a23911aaf4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4992 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu<7gkuEizTp-0*9OUlAu-{A5muMoRzQleILO_JVcj{ImkbO7!JaOT zAr*7p-ahLUnkdosaOsZV!?F^s7MzNk4)85oFh5XGHq!JByVZ<2FH+9W@o;I&uzDd- zC>ecCa%va1`=0FbF=9V_;A^ zV#~nb(oxO8&>`?0XszNqMg|2Z{0bv>9Z4&Fe)QG1&xyNC+ksji>@PR5zFA$r=Xc(l zyplWX-|d-WS7GFH?c8xa#vNAWW%2P}IT>QE-2C+H`tJU=#D^8%->!K0BHeQJ?elFX zdp~DyKgP$%(9k_&j@%uaKYNP)zr6AAN4n)@-TQAC84}j1EoVP`>qYv9x)rRHx?Dp3 zyZh#)^V^GevNAA8v?WTMn`YiFzj@>8i-q-@z9)YCvwI&fbSy2S@BJzJ{qg0$%-pJN-m2|Zf9UP@Lu+;-#2@?`by)n@|nQ!WccSq1;-H`{-X-1la5Ej zaWovsF9k>H{JYD@<);T3K0RZAjSi}GT diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-dimmed-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-dimmed-linux.png deleted file mode 100644 index 1aa04d731a107deee7127ce01a8dd06d5f5e09a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4236 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7Zk{fV zAr*7p-m=XTPLy!FxN&3WS$}s<)`*E3nK$bX%Jq1-dWs9FZz{auw2vdX&~kabNq%Lz z$>#6!_Pz`Z2lnUJy<=uzXs~y_!_45&vV)zWfuoS0fkE(*90P;W5nBcZmyT)%h7N)6 zK)V#*F)}DP;a3=8lel?b%sR8~pRa}I08ReC_wm<~?{7E!-X$-~cl__KqMu2{hS7F5 zKF2TWGCbe(@6)q8>I@$uj(>f4^Y-jav$xxlYwiC;pUc`jLswod>=e)yeo6bHZT|l& z+A8@^z}{xY{&_W%G|L@W-ns-vNfqpHgz23-*_x%=hE3Gs~V&1qQC)iyd|{ z^?d8wjQ_rSW$-rr7sv%qcG$hSfA>!OUnyBVH}>6c>&$$`<;6ZEV0tS{Yh_nmwD;X-@g%Wup6x2Q8RFsMI$FGWfK5*^Z`3aOJ~N5gS69LX>5MpMsd z>KRQvq_q)7^UP?T8O<}Jd4_OrVzi_fEh$Dz3YwP`kIa4iTz_me4(kE-fEhep{an^L HB{Ts5BSK2F diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-high-contrast-linux.png deleted file mode 100644 index ea3000d0cfda60b87dd7f2c4efb5946162e10bfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4257 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7(Vi}j zAr*7p-Zsn%31n!yIP=GaBPx6>2bCH_%vRou`s13u|^TDD3|n- zmLoe@Y7Z(t`#k4gdvx9VPwz^sa(oyV8dm4O-NX;H;*abjIR*x$Beo0-E*;ej3>^aB zfp#grV`NZpy2H%i(6WP_p@E|is8kTY!XpKZXTMfkA3m64s1sfQH1o&(+ z`RenHhc9;QFU(K>{_pP3o7<1Z++mK9JTGsv_l+{chvj{Kee!SZDs3w*x4n1&Kh0R? z%(L|ScIWJSWr0CapH#o?`-cw)3k;;KWonD<<);;we`8?S;Prd+-u2h_`Ma;PS;0!2 z3vqizLiT&~^4I0t^432yU|=|qVl-1`u1x;?+@9FpzTcm>cSm2}{uLNNYffA|`SEf1 z`D^$7OIXkGYriPZGP}L}-1~bmJf}B0GcY{ZZsvde`n}ru`+pdeRZIki9K%0HxhqU0 zgd%P?k{d6hCQ>JTkA~xDIFesFj;5Z`)H9lTNNZ7y=9$qvGn!{c^9

$7o40T2hRb f6l9ka`x!K*yQv-cI`uPfK!Cy1)z4*}Q$iB}^zT@R diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-linux.png deleted file mode 100644 index b272c909a6f420a1011a4e18580c5197772228fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4230 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO74xTQK zAr*7p-tzSe36yZXSj8d5rMcpU!p8LLZH~?|`Uhy3xgM!l?W(J3r z9qbGZ9EJQ041)L-9(l%WX6;`6`S8&#Ukn%+8jf$bi;b0!kEyknm*qSD_uR#Mk1o%? zdHU<$9MfH_4|eYPTlC@1e1-$}cg?*&cYnR@2@vs9qmCwwUqJUso%=HT@#&Y}+x7v?S1+>Ozq_LR=j$g~B^JQYb2DFW|31I|#@uPYfFUP$ z|5r(AanaAuuW!Eipa=@5Kg}`sNe(^S4kR}|Mopwnx*iS3(QqWcR2)q`qp4>!^^n$* z7|k=Id1f@vjOH1_eU8zRVzi_fEh)$-DLU+(0v&i&L^kXM4goNDy85}Sb4q9e0Jc6( AZU6uP diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-tritanopia-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-dark-tritanopia-linux.png deleted file mode 100644 index 6fe55fca51d278dad48e58f957e41fd655b6927e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4249 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7!JaOT zAr*7p-ahLUnkdosaOsZV!?F^s7MzNk4)85oFh5XGHq!JByVZ<2FH+9W@o;I&uzDd- zC>ecCa%va1`=0FbF=9V_;A^ zV#~nb(oxO8&>`?0XszNqMg|2Z{0bv>9Z4&Fe)QG1&xyNC+ksji>@PR5zFA$r=Xc(l zyplWX-|d-WS7GFH?c8xa#vNAWW%2P}IT>QE-2C+H`tJU=#D^8%->!K0BHeQJ?elFX zdp~DyKgP$%(9k_&j@%uaKYNP)zr6AAN4n)@-TQAC84}j1EoVP`>qYv9x)rRHx?Dp3 zyZh#)^V^GevNAA8v?WTMn`YiFzj@>8i-q-@z9)YCvwI&fbSy2S@BJzJ{qg0$%-pJN-m2|Zf9UP@Lu+;-#2@?`by)n@|nQ!WccSq1;-H`{-X-1la5Ej zaWovsF9k>H{JYD@<);T3K0RZAjSi}GT diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-colorblind-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-colorblind-linux.png deleted file mode 100644 index 1fcdfa55c724bb73b97c8a2561e22696b0d054bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4252 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7VV*9I zAr*7p-nPyPO_XT6SnMN^vxk*=nx+wlVc07Nk%OmBhaAyb(Dd0LbkEs`BATrpdR-l^ zCDtr|n-zcU2>X91+%D&v{rqK_Yzz#4exIB3jgf)jz{I%3Pf;L=gez|bM^9cVoPg*x)dpG&g;-~6`x=(~%YK=T;>@BVuAX|=hY z&5p{-5(}B{{@cIB@3Z{z>Fx0s0u8}m{(Zc8*^aT{{?^Urx%;eVEW3F)I=R;VPxQIX zZx1)Gx3{a2y9;#S{?y#my8pK>eSUlR;=>Qqe;b@TqGWX=JFj4Aq zp5uRiy}ESuvwAT%(BRo;(>BlDoB8+Dr59Ni@80Le>?z4x_nwjALCc#rzO(cD-{r(e z$evrCDRtMTa_j#`UqRk|A;7@!V=2(LyRV?NinEOijMgjh29%BBr|dV QhZ`6?UHx3vIVCg!0Gu3LzyJUM diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-high-contrast-linux.png deleted file mode 100644 index d828f979366cbab67160326a293b4f50b9f7ad46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4266 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7DV{El zAr*7p-nP&8E0k$}xcsa7EVpo}uX<-LxttLb?39pTY3@Cmm#AE+!^1O8N+SD15YN>s zYFfVDi;jCgFqu`fd)?p3HOH;@&oMUUIn2Vq@ZAovtJ&b`tsbn?I#y*3})av^Xa)Udo2^g{_NMMzfGR{{BX*S z@`vA6JbZD!XxaO?cW>%$TYjm1BLH-)?C0IZ-m}%0t=2!z=f3|={hd1>(tsBH&Z;ZV z`}=zNMs52mOq9C6r|dT6XlBmYy!lpjMQ^f7?%cO1e|n-I;yyFO z0lS;C?*22_UibFR(v62_CQ2O3liO4G=gr^MThI1xbY@_9FdgXYxcGfF{~yiWcz7=; z5I=~2a@Hj!EQt>EQH9h=yrbbb8jj=_eWR&oH1&+89@3f%qj_dD&y41o(L6)AV=-D% kjFuFmB?Zk(ijTsgy1tv{F{R7}4n8n=y85}Sb4q9e06^4Z4FCWD diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Dev-SX-Props-light-linux.png deleted file mode 100644 index baf2d5630f7db4d6643b4fae713cc52042f28606..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4256 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7QJyZ2 zAr*7p-rnyutx%@@;dPEC1@8{AO4j4c=DgByY3ew#ZP8?|Flf5y<6w5-P_N;yZ~s_pZCww zk9`-PCU<9#b%}+=yYTp2o7=S?zdrxI(3#=fg>P@w(`%U+j&H3m+3_#0*htD&=EnEt z`A^sEz4`0UyzIGnN&Z;gzTZ<@m!1~adkG8)3)SE5?b-R} z)5XQw`IZAi@xs~1)6dU;m-oKbM#74PfuSzDE^SXu^2dv7tDW1`JAqmr=s#(XA|(uo z4(w5d)Je3X;W!$O-{A5muMoRzQleILO_JVcj{ImkbO7VV*9I zAr*7p-nPyPO_XT6SnMN^vxk*=nx+wlVc07Nk%OmBhaAyb(Dd0LbkEs`BATrpdR-l^ zCDtr|n-zcU2>X91+%D&v{rqK_Yzz#4exIB3jgf)jz{I%3Pf;L=gez|bM^9cVoPg*x)dpG&g;-~6`x=(~%YK=T;>@BVuAX|=hY z&5p{-5(}B{{@cIB@3Z{z>Fx0s0u8}m{(Zc8*^aT{{?^Urx%;eVEW3F)I=R;VPxQIX zZx1)Gx3{a2y9;#S{?y#my8pK>eSUlR;=>Qqe;b@TqGWX=JFj4Aq zp5uRiy}ESuvwAT%(BRo;(>BlDoB8+Dr59Ni@80Le>?z4x_nwjALCc#rzO(cD-{r(e z$evrCDRtMTa_j#`UqRk|A;7@!V=2(LyRV?NinEOijMgjh29%BBr|dV QhZ`6?UHx3vIVCg!0Gu3LzyJUM diff --git a/e2e/components/ProgressBar.test.ts b/e2e/components/ProgressBar.test.ts index 9a7c2eb17ff..5bd3f7ea8b8 100644 --- a/e2e/components/ProgressBar.test.ts +++ b/e2e/components/ProgressBar.test.ts @@ -32,12 +32,8 @@ const stories = [ id: 'components-progressbar-features--inline', }, { - title: 'Color', - id: 'components-progressbar-features--color', - }, - { - title: 'Dev SX Props', - id: 'components-progressbar-dev--default', + title: 'All Colors', + id: 'components-progressbar-features--all-colors', }, ] as const diff --git a/package-lock.json b/package-lock.json index efea5554000..8138c2589c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31346,7 +31346,7 @@ "@primer/behaviors": "^1.8.0", "@primer/live-region-element": "^0.7.1", "@primer/octicons-react": "^19.13.0", - "@primer/primitives": "0.0.0-20250801025622", + "@primer/primitives": "0.0.0-20250801171606", "@styled-system/css": "^5.1.5", "@styled-system/props": "^5.1.5", "@styled-system/theme-get": "^5.1.2", @@ -31526,9 +31526,9 @@ "license": "BSD-3-Clause" }, "packages/react/node_modules/@primer/primitives": { - "version": "0.0.0-20250801025622", - "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-0.0.0-20250801025622.tgz", - "integrity": "sha512-gSv5tJou/7NYA/ksCqofsaFhWUTVT1+1UKwZ3WDwKCPEE7QVklYyAmxnojBk0VTwC7ne0r7wtpP7fC30OaLOCA==", + "version": "0.0.0-20250801171606", + "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-0.0.0-20250801171606.tgz", + "integrity": "sha512-jQsPQOr/I7Rsjw99i5k19JTgelO2jW4xRs/23XmNd3KApKvG1FPmr9J24Y31H3vYITYXvIQodyzGJa0JZkV2jA==", "license": "MIT" }, "packages/react/node_modules/@storybook/addon-docs": { diff --git a/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx b/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx index 7dcdc589682..f457b54dcb5 100644 --- a/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.features.stories.tsx @@ -15,7 +15,17 @@ export const SizeLarge = () => -export const Color = () => +export const AllColors = () => ( + + + + + + + + + +) export const MultipleItems = () => ( From cc158704563d6b2c45d2313f81a574069dfdf524 Mon Sep 17 00:00:00 2001 From: Katie Langerman <18661030+langermank@users.noreply.github.com> Date: Fri, 1 Aug 2025 10:44:50 -0700 Subject: [PATCH 05/11] lint --- packages/react/src/ProgressBar/ProgressBar.module.css | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react/src/ProgressBar/ProgressBar.module.css b/packages/react/src/ProgressBar/ProgressBar.module.css index ceb2fd85b1f..21fdc407afb 100644 --- a/packages/react/src/ProgressBar/ProgressBar.module.css +++ b/packages/react/src/ProgressBar/ProgressBar.module.css @@ -27,6 +27,7 @@ .ProgressBarContainer { display: flex; overflow: hidden; + /* stylelint-disable-next-line primer/colors */ background-color: var(--progressBar-track-bgColor); border-radius: var(--borderRadius-small); gap: 2px; From cb5c240a26bf8fbb369e5386a27e2d3cfbe37f05 Mon Sep 17 00:00:00 2001 From: Katie Langerman <18661030+langermank@users.noreply.github.com> Date: Fri, 1 Aug 2025 10:46:09 -0700 Subject: [PATCH 06/11] fix docs --- packages/react/src/ProgressBar/ProgressBar.docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/ProgressBar/ProgressBar.docs.json b/packages/react/src/ProgressBar/ProgressBar.docs.json index 3e7ee956fc2..6bbbb98c974 100644 --- a/packages/react/src/ProgressBar/ProgressBar.docs.json +++ b/packages/react/src/ProgressBar/ProgressBar.docs.json @@ -26,7 +26,7 @@ "id": "components-progressbar-features--inline" }, { - "id": "components-progressbar-features--color" + "id": "components-progressbar-features--all-colors" }, { "id": "components-progressbar-features--multiple-items" From 1e27122bde68178dfa14692977caab9daf21b695 Mon Sep 17 00:00:00 2001 From: Katie Langerman <18661030+langermank@users.noreply.github.com> Date: Mon, 11 Aug 2025 18:14:08 -0700 Subject: [PATCH 07/11] use regular emphasis bgcolors --- packages/react/src/ProgressBar/ProgressBar.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react/src/ProgressBar/ProgressBar.tsx b/packages/react/src/ProgressBar/ProgressBar.tsx index 811dd2dae48..07e3775f59a 100644 --- a/packages/react/src/ProgressBar/ProgressBar.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.tsx @@ -54,8 +54,7 @@ export const Item = forwardRef( const bgType = bg && bg.split('.') styles[progressBarWidth] = progress ? `${progress}%` : '0%' - styles[progressBarBg] = - (bgType && `var(--progressBar-bgColor-${bgType[0]})`) || 'var(--progressBar-bgColor-success)' + styles[progressBarBg] = (bgType && `var(--bgColor-${bgType[0]}-${bgType[1]})`) || 'var(--bgColor-success-emphasis)' return ( Date: Tue, 12 Aug 2025 10:50:18 -0700 Subject: [PATCH 08/11] fix tests --- .../src/ProgressBar/ProgressBar.test.tsx | 28 +++++++++---------- .../react/src/ProgressBar/ProgressBar.tsx | 3 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/react/src/ProgressBar/ProgressBar.test.tsx b/packages/react/src/ProgressBar/ProgressBar.test.tsx index 32abbf69e55..11a6f1f4c5c 100644 --- a/packages/react/src/ProgressBar/ProgressBar.test.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.test.tsx @@ -78,26 +78,26 @@ describe('ProgressBar', () => { const {getByRole} = render() const progressBar = getByRole('progressbar') as HTMLElement - expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-success)') + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--bgColor-success-emphasis)') }) it('applies custom bg color when bg prop is provided', () => { const {getByRole} = render() const progressBar = getByRole('progressbar') as HTMLElement - expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-danger)') + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--bgColor-danger-emphasis)') }) it('handles different color variants correctly', () => { const colorVariants = [ - {input: 'danger.emphasis', expected: 'var(--progressBar-bgColor-danger)'}, - {input: 'severe.emphasis', expected: 'var(--progressBar-bgColor-severe)'}, - {input: 'sponsor.emphasis', expected: 'var(--progressBar-bgColor-sponsor)'}, - {input: 'done.emphasis', expected: 'var(--progressBar-bgColor-done)'}, - {input: 'accent.emphasis', expected: 'var(--progressBar-bgColor-accent)'}, - {input: 'success.emphasis', expected: 'var(--progressBar-bgColor-success)'}, - {input: 'neutral.emphasis', expected: 'var(--progressBar-bgColor-neutral)'}, - {input: 'attention.emphasis', expected: 'var(--progressBar-bgColor-attention)'}, + {input: 'danger.emphasis', expected: 'var(--bgColor-danger-emphasis)'}, + {input: 'severe.emphasis', expected: 'var(--bgColor-severe-emphasis)'}, + {input: 'sponsor.emphasis', expected: 'var(--bgColor-sponsor-emphasis)'}, + {input: 'done.emphasis', expected: 'var(--bgColor-done-emphasis)'}, + {input: 'accent.emphasis', expected: 'var(--bgColor-accent-emphasis)'}, + {input: 'success.emphasis', expected: 'var(--bgColor-success-emphasis)'}, + {input: 'neutral.emphasis', expected: 'var(--bgColor-neutral-emphasis)'}, + {input: 'attention.emphasis', expected: 'var(--bgColor-attention-emphasis)'}, ] for (const {input, expected} of colorVariants) { @@ -122,10 +122,10 @@ describe('ProgressBar', () => { const progressBars = container.querySelectorAll('[role="progressbar"]') expect((progressBars[0] as HTMLElement).style.getPropertyValue('--progress-bg')).toBe( - 'var(--progressBar-bgColor-danger)', + 'var(--bgColor-danger-emphasis)', ) expect((progressBars[1] as HTMLElement).style.getPropertyValue('--progress-bg')).toBe( - 'var(--progressBar-bgColor-success)', + 'var(--bgColor-success-emphasis)', ) }) @@ -133,7 +133,7 @@ describe('ProgressBar', () => { const {getByRole} = render() const progressBar = getByRole('progressbar') as HTMLElement - expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-danger)') + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--bgColor-danger-emphasis)') }) it('preserves progress width regardless of bg color', () => { @@ -141,7 +141,7 @@ describe('ProgressBar', () => { const progressBar = getByRole('progressbar') as HTMLElement expect(progressBar.style.getPropertyValue('--progress-width')).toBe('75%') - expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--progressBar-bgColor-danger)') + expect(progressBar.style.getPropertyValue('--progress-bg')).toBe('var(--bgColor-danger-emphasis)') }) }) }) diff --git a/packages/react/src/ProgressBar/ProgressBar.tsx b/packages/react/src/ProgressBar/ProgressBar.tsx index 07e3775f59a..79f22c70688 100644 --- a/packages/react/src/ProgressBar/ProgressBar.tsx +++ b/packages/react/src/ProgressBar/ProgressBar.tsx @@ -54,7 +54,8 @@ export const Item = forwardRef( const bgType = bg && bg.split('.') styles[progressBarWidth] = progress ? `${progress}%` : '0%' - styles[progressBarBg] = (bgType && `var(--bgColor-${bgType[0]}-${bgType[1]})`) || 'var(--bgColor-success-emphasis)' + styles[progressBarBg] = + (bgType && `var(--bgColor-${bgType[0]}-${bgType[1] || 'emphasis'})`) || 'var(--bgColor-success-emphasis)' return ( Date: Tue, 12 Aug 2025 12:01:05 -0700 Subject: [PATCH 09/11] Improve contrast support in `ProgressBar` --- .changeset/lovely-vans-burn.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/lovely-vans-burn.md diff --git a/.changeset/lovely-vans-burn.md b/.changeset/lovely-vans-burn.md new file mode 100644 index 00000000000..3622b0bbbbc --- /dev/null +++ b/.changeset/lovely-vans-burn.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Add `border` and `background-color` tokens to `ProgressBar` CSS, which increases contrast for high contrast themes From 8a6dcac26221ed4e67197e69b845aaa728642cc0 Mon Sep 17 00:00:00 2001 From: langermank <18661030+langermank@users.noreply.github.com> Date: Tue, 12 Aug 2025 19:08:08 +0000 Subject: [PATCH 10/11] test(vrt): update snapshots --- ...Keybinding-Hint-light-tritanopia-linux.png | Bin 6050 -> 5623 bytes ...ssBar-All-Colors-dark-colorblind-linux.png | Bin 0 -> 4310 bytes ...ogressBar-All-Colors-dark-dimmed-linux.png | Bin 0 -> 4295 bytes ...ar-All-Colors-dark-high-contrast-linux.png | Bin 0 -> 4330 bytes .../ProgressBar-All-Colors-dark-linux.png | Bin 0 -> 4316 bytes ...ssBar-All-Colors-dark-tritanopia-linux.png | Bin 0 -> 4310 bytes ...sBar-All-Colors-light-colorblind-linux.png | Bin 0 -> 4295 bytes ...r-All-Colors-light-high-contrast-linux.png | Bin 0 -> 4352 bytes .../ProgressBar-All-Colors-light-linux.png | Bin 0 -> 4309 bytes ...sBar-All-Colors-light-tritanopia-linux.png | Bin 0 -> 4305 bytes ...ssBar-Default-dark-high-contrast-linux.png | Bin 4998 -> 4192 bytes ...sBar-Default-light-high-contrast-linux.png | Bin 4961 -> 4222 bytes ...essBar-Inline-dark-high-contrast-linux.png | Bin 5015 -> 4259 bytes ...ssBar-Inline-light-high-contrast-linux.png | Bin 5020 -> 4261 bytes ...Progress-Done-dark-high-contrast-linux.png | Bin 4937 -> 4294 bytes ...Progress-Half-dark-high-contrast-linux.png | Bin 5009 -> 4242 bytes ...rogress-Half-light-high-contrast-linux.png | Bin 5010 -> 4250 bytes ...Progress-Zero-dark-high-contrast-linux.png | Bin 4998 -> 4192 bytes ...rogress-Zero-light-high-contrast-linux.png | Bin 4961 -> 4222 bytes ...ar-Size-Large-dark-high-contrast-linux.png | Bin 5009 -> 4242 bytes ...r-Size-Large-light-high-contrast-linux.png | Bin 5011 -> 4251 bytes ...ar-Size-Small-dark-high-contrast-linux.png | Bin 4965 -> 4215 bytes ...r-Size-Small-light-high-contrast-linux.png | Bin 4972 -> 4201 bytes ...Panel-Default-forced-colors-dark-linux.png | Bin 28993 -> 28987 bytes 24 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-dimmed-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-linux.png create mode 100644 .playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-tritanopia-linux.png diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Keybinding-Hint-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Keybinding-Hint-light-tritanopia-linux.png index d9daf3707d6f16146c0761757933d24b9423baef..9d9f2864ab866f8a66f08db335ac364f3c6ba353 100644 GIT binary patch literal 5623 zcmeHLYfzI{8a_%DYX!7e$v|S%9kp9sP{~Lj=x3EJ>lJGi98^+t8$^RixFy^YDr=&} zg0pT*1%$P%&{iQ(Rv_dCMj9(7Q6iT>NYn_C2ErvIA%rj4<92p-c6Mgl?d*^JkssfD zGv|Bfobx{K^E~f4-=%{GqJ0(zE(QSj?EYQUAppFl;R6=Uha(H3gc0yHFYQqDPEe=B zjsWmh!|tee53|b022b4nDDK_1NwG>`+?P~+^nA*NEAP#&e)I&a6Rm2fUUQOl1#@c6 zJ@2cfZ=ND7>^y;0mu$6hs0r(K}U2>_fGn9-D&*G#`ynFi58J>w{NGU{G#y=l-)H!_R zuYvpzhTdjyR5>f>jJ#OHg&Nt8il78*S4W`=hf-BlF;vM!cY!_cd5|5MxEFM8(0NZt z+ctF&0Qv)5gjw&NjMkww#gd`AG|sdoY@Cjxxu42j#nRl=4~8Bw z+*Wx_BBl-rHD}^N!jT~EvpvDOdGMQZ+rQ#=@3H=%b4+B+lUgo>ut&ar-8Re@p-o}Z z5p%CL!>BYurUVb5N>ts+#&EmOpltz?8JFLjuD~zvBV*b;07}N#Mz(3!IA`1@yYNN; zG8e$HHb@;j#Ce}AF_oA})sR^Er;s#`Z8U?H*IC9*oUwc3Bg_Jr3V~#6L5|jLw~nZM zWOU~SiM<7`n6DmfDH_r`3#GQpdV#@qtT;Is27i-q!SUFMOx_G3UGoA!KGcW*DsSpq zf3eQpAayzQZUf>_=vl)>+X1Nek2_^_jcQD~*;B}tC9<0Z-ABIgg}Bz-T4wjY)h*2( zCi4=B9GCVV!}c9xo0cHfrskFEbjU-q!F5E>bcQAzB2}trc^$vua|X|vbBA!GN;pkl zf1cJo%b&Zegp>dk>Tcm;e*lQF|0F3k!Yp;p5tqo^+a;Q@h$b%`i``r`AGG~C^<|6H za?_HCkxWmtpX+VFP1Kd(db`U3xWatd;ueI7PGh+G*_p6RVUe9Z`Zy6|7CO0uzEBl4 z@*4&h4q+Mm1{+%3AFtQB+IfiMsVgk__+v*oACWj-6gUyf$NaoGOMq_fhmIJDYi-yrs1-TTJB@mER_5QAdcdZE}i{I$`flQW1+v({!I>^E6wNs-yYqZ=uW434`?&9P_& zjR7GEb3KF8G%-JQdnN9N8wp_v^8r0@bmqi?fZ*eO)M^d&_{J559Vf-Q?=!Bt`3j@O zLG+aoBMpC15Q{p8PUfVziA5#_C8IvOXBhyiMvf*tY1QmAS+g6CMuy9Exz4Q8>b)ht z6)ub^cl)v667{sGG6lzDU}H^IU9RgkbBx@YUXRuv52jc&>lkO(0}zRqr(*K3Jh51u z!dFoYsRB{@NEg&+uStO)KRV6cmIeeLj#g$^15dD7E4GX<`2L%dZ2l{w}L;Y)p>lJnvg!8HEeH zMLvw=2}=^LBOLRC_ZEWufKUAC@1PI-dWjWYpe>m`|2aD}r8>EkTeW{|gkyAr$4(lTCy*Uo;Hu|DdN#Xp+UQ?!#R@Tbh zqhA036u>JL(b$oNf^TfL;eisve6U0IzVhbAl1@gXrlwoY&`Jma0BrF^x&587x4N^% zI_lOk#igw1C)BMy?wVSc|XExEF-EBRA|C>{b2S*Q%zx>SWVULGB z9`^iq_e76oJeu)n#-o{^{-fk^3XfC#pE$)FJ~C!cbbj0}9K2?O-M>8$Rk!oQ^M33GW1R^O(!5u6AaA&c9iUA9vlm_Br>S zv%md)d+&2I4<8Cyv)Xkv0AS7jZ-T=CSUC@0;N7=i%c@|mKYUw(4-W|ftX}sC0Gvk7oN13kDRnQ3TUghowE3>DH-=%P$3y+%MI++g z22$8wPu2bW8o3Y#Xm4oQm{n{j4exrrE=}CKgV>+KWR$ecd;q}vse1f>Lim$SaG1L( zI?jj|?P{59v8zI`l}IvzChxOD5aLxrm>t81ExC|yKE;#CC1bVTBE^NVt=-YJwdSJ$ zJaDTPTvTeu-B=pR&zJGS5~G}CyN0qExl`@aJgJYrI}GJqpz+|r>@C#M*6^;m?&y9K z{Nm>f@h&}=!!0}7dXLd4dgUPb&6*U`drTeoi^3bydo%Yft^dw^)NNF008MI790y=` zUBB7Bxt>;O5aOq3FYm_C=5b2iCCJMJkNxSL(Jo3v#8~DQ_n1)Wb8#TZSP8zpdv4<> zzlIBSer-Dv>f)313b?~qq*r_g1toi`9MFCZ``~GyItQ}QaAi8`J>uZcCnGka{m+{^ z?DQ=-)zavdBM2jn+~Jp74+oxC{vFq8GwfQ#s0RQ+H^>0I+ox_-CPc=1CdNYSB=zgq z3-YR@=v8pI@4?}I`S>K0k%;9~mz0w_t{G~@b$%E~U{7$RJx`xS+ zhWJKvKZ9enfkKBw2tR!S^ySlJif+D0^4Za0Df@DzLCqWDCwI*DiWG}oJZ4c2>dwfE zjBG`L7=ZXc*JvjuCbVawaB|ZVw`k;SP;LPJ^rT{1gelxfHU2?d{y+~35*J@D%B$5J z=iawvAW)o?AxMKpo|-=vlB2bK3Wv9MNo+rdrIsyu_^}?|^AD|d;M=tpTVItQNfC$} zzLvFq`>`fsGINvo*XdC`})EBy2uV>y_4B7IS>z1dIgs{$xmPx&y*`UOPHW%dwg}v@HH?c?RuN2o5Ij?^4f!*d3 zqe{^Fy56Sw<%OVi4l5b(<-HLd6Fxob(FEOAgy75z6}~7GKQRZ(T7*=#rbZSk<>6wU zkk&R0wOF+5WZ5tWb~m`XlU?kLIq~KJnr0w5#|}d3_nPS3mu5V-B}F&+nm6C*bv)ln z%y=rK7p8VT!B`e54%#e{+Ns8i5o0&TcW`Y&^my5&hYc;tv?*eJivG3P zjv1S=;fu5m$1JZvZvY0)*JWNj> zDaQ2e#i^&mx?9<7_HeXJCJXTQ7h1=)bqPW~=|#nWv4=z?5(xzT zt3DY%|d&5SSp`gj^IvW`Wd(jFF*$MvrY;lh>jms`nxOh$+Y<*Frp4ei2Why*wI zdBx=eQ@6_ZWhb3?Z%7hrxrvgx7-j#wDXMtgrhPlVq*rNPmz2b;-_>?Xv&Sy7c_RRm zrX(jLtSSG*S-Ucf;h`K-ql-*;_oA+Thq;?oBQAvu27{ZxcnwzCr_2*%3yH-wb&>9%i8`KbJ8dEVc7P1Yrbr1c)}4b zX{2lpKW@8n%2+8rf4jxkGVKy@x!k1Jv%a?Xpvv+~lhf)CzEkCL%${8uqq2IRl0>oOqAfc)NSEt6rH49jGI&m7A_SQf&v5SE4T+y9p3=6Sh! g{{K8)J+`d?D`^yPq2xpO91He;eJGd}6#xA{0oP-ZH~;_u diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-colorblind-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-colorblind-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9126dc77c6b351134cd5d1b067253ce2dc9e71 GIT binary patch literal 4310 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO76FglU zLn`LHy}dtcZmG=ikLv$LyqG=vOlBv0nhUB2>O1V=wEil`we6eMu1evh$tM1ik~Ep!klFLBZ(`GlN45euW#YY6@zrKY!l6K7Iba zsM|Ycc>am6`Sba0=B#)5f496)oOAT=VSlyy`$wyP&)GlIHs;HO)o(8zoSQjIuI9(n zMeQ;3-pAR@U6z^t{Mw@SIkWHHjbE1e>)W%(uKbq%_J4kTU8MfuzG=N>echk)^M6+_ zS66p#KU}!~>(RZFrQ>_!7#SGeXTELTdh^ZVrLlCIa2yRs@(aDu)H9lTMpF-I4TaG>Gn!{c^UP?TA>5@HEh$DziqVo{ e@RSrsq-U;opJ#UAX(MppfWgz%&t;ucLK6Th!+Gog literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-dimmed-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-dimmed-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..17e54170119b3716e7795396bdd2a47dbb270987 GIT binary patch literal 4295 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7jh-%! zAr*7p-r1jZHC^WTNA>zPuyt7yUUhH0f{a@qzA98i)^Iu>4Q~PXOhroBBwTkZ;85ErEFf%x`>|keT;J~jisl05%R*M_^e;3Hyk=$**@0{nK z_?Y@)lVd-!zvf+T|DgIW;*ZU-ijvP)m+^O2*A&(Fe0+U&v9J86SH5WKynVGBUJC!HTdRL<_5SeX>C6Ae#QE_q ze_Z$f-uuVP58o7JVE8bztgQT7+4pV7EPfUkna=sI^E|=QmXU!$O?O@F?73%-|2>yf z1q@`LTlePWmGWl+y_aP7?)vKWMI1oQ^3x};&)l!^&cA=TIs?OjC0CdGZ=U>ehkfC#fByV>3+uVEd3U3Jtyg7W5UB{@rb-YJ9oC}?sgq_$!*Mhm z$uIFnQ_pDX8BIN;wGu}2%xIn&%`>BUhH!skw4@j4mTsBc<|9{|s O0fVQjpUXO@geCw31a52q literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-high-contrast-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ca12eae991e48a529c920e4373e9cf396e623a96 GIT binary patch literal 4330 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7OFUg1 zLn`LHy`#8hYN<^7$NvxS9byaQ5x*hu&P|ZZ`Is83Mw@l1*&^QVvrdhH962JUk_l{+ zlUceKJ6t^UH0y$|`t0N!^K6^&6Gx^O+I;x%^UM8jzUlrJ@9WK?@7gjjG+e*GE|ni> zYaCx8kP>_($H1U;1SsLsQO&^6A@CjO2E})b3<^$nm>C>ecCa%vaNt*%RQl@RzO7$R zU(cUsUHat1t$9a%m>3$&Z`Ih{zjNo-j~A2QzJ2T2zWL^>cb@F=_1`ZyZr#4F_V;c1 z{{M3=gywyI^6i+!`(lvAE&RwZK`SHJZ=ll2VCbZZ!3brk>H%Ls|=A zG|!CYnbABmnr8_2B}Pk%(UM}cq!{ESMFrcPzk#OO$Bd={hY=V&UHx3vIVCg!03O(i A?f?J) literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..61fd3df9b8a0b127c97112122858a5e9126794af GIT binary patch literal 4316 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7(>z@q zLn`LHy}dDSTB=O@!{xeHj|4dVU!*YAs|`Iq$h z%SWF_wI5H)haZ!$x7)Y>mExYxeE+%9$uahyf3Ipk5_^BY!Lc7{g~eB$@8#ORuQfmR zFVdQ&MBb@06jx@S^xk5 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-tritanopia-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-dark-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..79189b274301421819ccc571a48f7cead9ee1d67 GIT binary patch literal 4310 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO76FglU zLn`LHy}dDOYPrnuhvt^YoD7p}mNK%tUktSp{mOJ?_J-Ih{#LQQT;eZ%MULy0zKPP3 z^_nUmVPgme+}ga+Sk{%gPoy) zqY%gzd?d%fpmfBRfx)Gtnt`E1;5*O>itiX16rAobGdQ&1S6G<#DeCkNnN~c=`n=1B1b< zulMe~I9YIKe@#vPw?E6jKK-B%RQEplXWGt)JvVMvnpN%CwsUK(&143K2H~g8Q6z^N z(ZM^akUGh9G#p36k^Dk#H1&+8p3&4pTEk#8&y41o(L6JnX9#y8MoWs(l47)^7`!FL bKgRcW-RHT)i!KHZ958sg`njxgN@xNA5sZL< literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-colorblind-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-colorblind-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d82ca4f6409a802475ca495fd543a5b65e9218f6 GIT binary patch literal 4295 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7jh-%! zAr*7p-rm^P6DZN}us;2|n$9FqmDK{RVQY&yr*QRp3$RRYXxYKi+YkvL3J(#X z))toloiY)wwaun`<}Lqk6rVO}viX1e^h~??{tOHU_UCVV!OFnUaNqe3GlN6R4t9nH zjzWG02Ej*i3=B#~Y#A6_I;t5MIt0E0U7+}mkwL);zrqMf*@~ZKpC8=~@1Iv+^|^4L zt@g+L6*YOKvzA>K@6)LgtUJ~yt^cQ{{=oM4KmVmZf2(gG$7W zzHAb^x32hN_aC!xy}9$3y*zpL%FN<-`tdi8MO{_4`qYBNR#hJCZowjHjvc;_#3*AT4j*6wZDB`Fr~^5@>P zsLUz7uXp}EBSS*;8lCgkzOR$D+F@t4!({$$1)wpkdRLgJ5`shr^{7JXB-zn$91TbE z3%t?PGn#rvQx9p4gwZ@RnrBAy%xIn=+?^OLDMm|*(UM|NloTID<2JgizR-{A5muMoRzQleILO_JVcj{ImkbO7yF6VS zLn`LHy>q^6YN^D5kM}cr)~@vxDDLZ?7T2(aM@5Z|cg-}`wx_HtuCWdmSihu8Y$(+h zjN#Bd%grGkWsvT4#`Wbj!Pi@Ie|IfkeBW;VU*_|#p6;%gfB#s~P8kM<1E1fY*d-3M zbRJ(JKLdl{BRK{Jr6aZs3@#nj3=ACt-+@k0e8 zlZpG0^!?r1`DXI}cg~v1!0@0x*Y38}?#+MS?cBbc&#&({zy0mMU%#ETo}F)ZrzZ22 z&Y#7ttyF`KJ4G`yDk;UtKwPvatTm`roI3-Vb|qq-LANkK9*N znxlY0Fhk~hyLhRZx3N~6 zH`|sLB=4M4wzBs9!H2Eq%irJoCZfi`um)&kXH%Gn#rxYe$UcnbABmnrBAy4B;NfXh|_zQjC@qgRP|a&meIz Wd0p{8mwMpn0)wZkpUXO@geCy75}4co literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7a923ba191c898c757e65a35b4191c93bcc3a97a GIT binary patch literal 4309 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7{hlt4 zAr*7p-rm?18ZOfC(6;;-qpYZ#iGf&B;_O>`dwVs5mwXgVnWEA^fupNGL3xIe<`#aj zliW+Z4k#rkYIGzUzKS`$<>sr3ujjvi?cTiV?0L)d^}5qfGcqvL{1aOp2ej{p!4X>q z2A7U%28IrS??5{h-!U>MINf1paA?`V&d|V7$j`ta_(+a{K?%RYj^3M%_4D4w@BjYe z;r;dV_QlAZ^ZFD2r>?ZPr?BAVr&Zz)V|C>ISRJb)3=PiZ1qQPB^sX>5I2J-NeR_#Cl7T^^ zV4)bnP$D`wM-@^hS&oL|XgHEzsEwwc(bO}VdPr*sjOLlqJTsbSM)M5eF2iU^FFVdQ&MBb@04{`k^Z)<= literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-tritanopia-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-All-Colors-light-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..c785f048b4d84ece1784b5e12ce2f027c9e5c18a GIT binary patch literal 4305 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7-JULv zAr*7p-rkrcnkmun@T8~Nf{P9*u^p`uH==Ieyq&T0s980q(xWQQEWtf2(g$_Rx!)dj z%1_W{-rF+kdkvzI?6x)&JR$xqbS~pVOax{>j3?Q1d^nI}T`}h0G&4 z1_q@gwhRm|9n}mB9RlBhHY>hkWKeLr!_45&vV)zWfuoS0fk6=f%xm_VVYoov!*tGxXx>x4sblQMOj+yx%(6+ctYQ zZrWpGX7S7Wx?GO^uk`#9V2J*hf3M!6;&WNK-TZTT|7=Vw{zRUeEdG13G6Tbb729{e zcXMxh{O`VPemf(>gA=kcJnh?=w*viXDDz!CY+j<^{&(+vv-L3%wxxGI1H;EcNc;5W-mhDY_viHR>79MfcY=w*p%H8t8G%N0 z=#DC+PAVM@$I);kzl%fjNgQu&X%Q~loCICUcZ!!P? literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Default-dark-high-contrast-linux.png index ef2a10aeb1212688b760380e76c1e9fa07bf732d..1d5a114fc9f757e2d4799c1b019d6a01393a296b 100644 GIT binary patch literal 4192 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7Ql2i3 zAr*7p-m%RJNt9?yJZ{;f8Fbz#r72=ZYl6b0RIaA#4HJCk_{1E&V#au$(fjld*82Q) ztLq==zJFAczIB%0JfMmH_b;#i4Wu7j7x)e|Q}G=mgM!l?W(J3r9qbGZ9EJQ041$m3 z7#Ng}*fKDum7#I@HY|=SDZ$6)I+y0&5 z-xwG^u-ho@v0cH+(9rR4NBp#>-(!Hm^5;Xx2f4oAhacvZ0C_!DcWNc)0!{gO^!Dq! zXKl_eb_V(@{mkc@y}K>zi!H5W{zdZvP0IhYK#UX*5$*F)h15wwqv1Fjj^vj=qp4>! z^^B$-((3HdJTsbSM)S;Qo*~@2A1x_HON!BwVsMuf9q-*9m@e&jc|ii$v1jmf^>bP0 Hl+XkKXkR)~ literal 4998 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu}e%{Nudn&_M&wW`0G?zj1`oHfW`oVk7Dj>xn1hkq#K;;D^1A~Ic1!e{Y zhY1VV85kNA9QlC~j!kkvvWdkONU{*6!P=XD&G+xeAFKNxpS%0}v8uiI&S(KO?`V2f zDR+N=t?c{zd*wdgytyd)dieFcJuyWOZhjVjeDJV)@~ma9&On6^R?S|PDI<4Jj-7q` zv5(97yYqDGit0;B>R)mKWp8NB&Uks$vA(#x{38d5uQod)bN(Zs;~g$MTJXQJZr@B* zpzsD&vx}FyoBus|a{7@Vi0=#H*YC8q{cHH`+qLAq_r6~SdFjtVoAZx9e?0#2+u7A0 zUq4E^xb|vR`mQ@SjDT_v=6}!xd7e0LlN?T?8fcRIMuT-USgBQ%ji#m1v^1KQC}<0e zW}wjwG@5}%GZ1M#h|yAGwA2_aHAYK~(Ncr@qcbD2Y~9azEz;QfmGRUGz~LMQPgg&e IbxsLQ0Ho%XOaK4? diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Default-light-high-contrast-linux.png index b283bd048caca19f638ae78cc7fd12c492a66c69..5b2dd5327eac92fa45b3da34162068a29620adad 100644 GIT binary patch literal 4222 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO77M?DS zAr*7p-f_$d4rFM%7!u=t?{yi|LeV3B++25CgxU2DB`pm0R@80Pb3VeW^3rV{v$(=~ zi7V%epV{AeXujjSobTl=Ktuo4>i_$~$iUEW-}w$RgG0*>c7_IyLVgAY!AEio3`$3A z85mqTsu>tM1ik}pReZp!*_HU7(RI4zWeX;)vsG3=A3==`{wnccXD$2_vUH?ZMB&2 zxNt{Bb>06D7UdS!@5+CxrvjbEUTVX4eh1roN1$exGkw1cBl60BAC_TbV2Jp$r_7%3 z^v=~c3+s2q#n$b+26T0S0?_t^Ygy*IXQ$sjyB9tKC?oNBgH7c6XLVCQ zp8H%Ls~sQnrBAy%xIn&%`=31 n1fwOzXh|_zQVfcc;v=(mpZ8&<<1+t&eSZc|S3j3^P6<7gkuEizTp-0*9OUlAuIf^t~?EF)<(QA`rXNIJ}b|sA!5*x%sMDBPA=!iDY_6(Z&Z>g`kQU8hO z*6EDXZ`T=|xf?w#RT5~V!>PUXdx12=hwm)5K#GO43P^GY0qtfGP%h6V*kexQV7lN^w2B1Xf4yKfr0yH9`ocX;{7&wsA(*t07tSskePhrXmR>(@!^#T-m=C2Bao$#Vf8}(&HMEmfo^5UIVPoREBnP?PTpT1 zY}h6@Z~ysgtIL0-y(#-XcP-FY4fZ=~x8+^?a?=W^{=vJSA|T%p1X^Dcmdo%-$W}wjwG@5~cZDJBy{G+ADXsIz;YK)c|qooG*M^i@2 eR$|K51=4TMSX>e+eQg3vgAAUoelF{r5}E+=R(gH_ diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Inline-dark-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Inline-dark-high-contrast-linux.png index ec11285ccb73cd4e1261706f67d36a20faad80df..7296c25b60bce6ea3d85914120cbafbd3b6ab42a 100644 GIT binary patch literal 4259 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7v7RoD zAr*7p-Z9KSlgMzqaQW013E4ruCPFGVq?TydoE?*(Bw{4wUenYnD!3Et* zUsmtnjy9j@9do|+{pXwiE9)MY|FA!wuwhRTBLl;Xdhv8ypglj#j{qr`j%o&m4uS7L zyA*}=}xz){H0z##ZYj)6gmstQj}uG_F{ti|F>ViW?TQ>ec!LnC->@=zg6`%Z8bW*J5~mUb3T90|DF4F_UE{7 z&yzDVGp`9VFhuC+U14HyIC7-$|KBG+-u+tpvd2@h|M=#43=9X7W?Hnx z)Q^Bs6X~4dM+1B`!0Ax1jwZ9wWHy@2Xw+&M&0M3IYcz9>X0CzgF^!fzqh${b%AQB& ZO2=H+tTEqu0XQ1K;OXk;vd$@?2>`#NX6*m~ literal 5015 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuX}8d%pbY$U`aO=H}1m0mTl? zvgiW(n!yn$b*L!W)O*I8+Z(MxA@#req+|WlH|Ibm96b0MVZw)-?GJDLTz&YO<^TNi zsWQhOUOg>-c=6x%Vt-&zCiseVKRtHxjxx}MhRcN_ps=J{DAGQjMr{}z`DHX7M&n_? z3hU9tH=6iH6W?gXPUAM=XfZQd%#0Q@qs7czopr0ApI7?*IS* diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Inline-light-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Inline-light-high-contrast-linux.png index c2b339efe8b2a28205541c339974c5546df8e606..3f140bd2912efbcb875cae163dedfd320c2dd6a5 100644 GIT binary patch literal 4261 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7@t!V@ zAr*7p-Z|(sC6J*laqX6AfxB7K@04jaMF?!=Rmzclclfl1z!K|@1=gAzT&5C&DkoxJ zCGBeJYCLwbd|rBe-M**0f1Hn$=|9fRz;NJddG0l428M=u=R3>{4lO&_85%eW`571l zAIUK=C>^n7U~uWEW?<+L_ztvN@f{*%GulrJP&6$B=hQ9Fezn{bP_t*Th+V%PG^GiQV)MDE{Z~uMy_m6)EAHKf3_v4{M z!nOPi2UKVM*gj{m|Kf{pSI2(4yvX0CzgGL4o!qh$}x c%AP+=SJwotJbWS-H2lEe>FVdQ&MBb@06fB2$N&HU literal 5020 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuo9X>_JPx`ajuN13IbUX->~$3%{KQzPfL3TO5D9`0dFk z;}`#}c9fS_eExOymNC!^5eJ@xzuW)!kKJ*;v=9FdAK$7D6x=Z3q~rhU;!DhRX|6U!Ip=jNW-*en@yC+@#>9Z+nVq2-J9aXV~)Mie~%_V1Q3P%Pra zlLhtVKgxEL{X4axbeH9ExqpY>ojdp8!M}qa9{t?BbvaNC(3<^gf$n6O_B_A_NDWA! z(mvWoZ5SNcXEYv0<6*$c?$N|In)pT&A3a-3qd9Ig$BpK=(HuwPPT6QNGg{1y7Bi#8 f%KXo-n9ZIbB>M?CF2msI>gTe~DWM4fN(7-{A5muMoRzQleILO_JVcj{ImkbO74W2HJ zAr*7p-Z9J$4`*mke1D&1QC(9*!a)lcmh^)MkKT1y5G<<|!gBGLZ@717gZUrktL&w7%@%8&Q?%A=$xSf%Kp=|H&X`BDm zB$sTho^`gLm+#H*PfwoL=h;>MJiq#4KTrY4;*!$TxBr^&%l-Rz{6fKxbAN$;c(m0! ze(tYB!7~^bHV9ucH?RBkb-KKMz5OqdX9d83VUSn1zrsXn_z)eCqY9~$AV<7gkuEizTp-0*9OUlAuc(PI*K@4%=#-4-NAifp*6?N|6E66UocH-47_meK&SD8}(;53`#jRSg zU8lWN8fcQksgvRIK$_u)jUzvha%_?Vl1(hOK$3;C3P^GY0j*~cP%h6V*}&D;2ZVs@YEa_=rl zwOn)W49Fin{vUyYq-{A5muMoRzQleILO_JVcj{ImkbO7KAtX) zAr*7p-r1PfTPV|B=&pV7;I$>QGE_V^n6n8>doO;Z)#H|GT)sjg);WB!^n)$45-uFQ z^hNF*XSehZb-z{p=hOeI?f)ow@4xj-o%Jz59;`F4A1zaC5SV`6Cd ze=EmqwjclYZS&{Oo5#niKKbd?g$LjLyZ!q0^|Ei}`{(|Vun}r7{`~sy$H@5%2WFhV z+qX3ni3|yXgHEz zNR6hR(bO}VdPu9-NAt{Ro*B(Eqj`pK7htrc7%eGAONzl=QXI*@o9DVl(mVt-$iU#~ L>gTe~DWM4fcm!1( literal 5009 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuA{efi#;!{)QkUhh)_ny>KmNFhIvX81R60XqXjgMuT7=h!3% zB%4@lfg}rO6_Df*0y>RBK;;D^P>;t2W(Ed_3B+hHk+KJNM^`v9mjGZ`*$%|L%=>arL#@&w!Ra;5Rcj zU#=a#-gkT6eaU^MGGE^Bd(YnwbWB6&rp?8bKaLe#sQ>pdwSomGv}V%g*RKzo+jIfF z!r*w=u|93zwmGUm_68+8*}nbG<}zQz{qlIBy0?F?0qK5kUu7I?RaYg?mmp(e6!|lhURLZL___t#T7uB^k5)4+(tDJle$JjX*86mRZ@+n zrO~uBnwEgI8@W~eXa*Y1K%*IGGy{>=K^QGHMoW#+Qe(8#7%erZKln0Qw&E&V|1y<{ WTSzMla)ZXe7(8A5T-G@yGywo$5{#b! diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Progress-Half-light-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Progress-Half-light-high-contrast-linux.png index dec0af37bf70de84596855f252ee5230d28faa7b..9727f58fae5a4ae6d59b92bf6e244ae20c5d420d 100644 GIT binary patch literal 4250 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7A)YRd zAr*7p-Z|(sC6J-*;l@i*Zf}Lsj^$2Q>R=7Lt#IhtL%TgaOpd#nId)BMS`g4I=-6~; zsopYI^9%C4*KU7)V{dV~yzpG)tn<&685kbiFMqm;A85xP$wzVw3`$3A85mqTsu>tM z1ik|;Q+&tBpx|_enZcoD2RlOpM3dG)`3RF=Jd{r&0Zh0zRpr+>cwd)khPVSm>D2OplkyH{gU zWwPNtd;Dq3Uk0=9hJ0gS*r1Vp`Q)|9$Mf&)leUtP`F{QU^r=9{>Rh>1QdICG^~I^? zD4?q)WWJ|si<|3(i4{vQFeH5WeCuzCk=!mRneXNA)~&1Cz4kpLLxSTse!lp(?{f3j z@XP9*eg4@I* zI2w-R7h0pKXEgPUrXJEN`q4ZynrBAy%xIn=+$9(-DMm|*(UM~DmJ~l2ADIWPJi}cz R8#oZa;OXk;vd$@?2>@YxSh@fJ literal 5010 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuHh zeZ(ijqWJN~tyAK?+lynlD=Kc!mfW}5?EGgNMxYIvub0;XDTWWfS!{t63uhIO%1yF^8#|35v28Rg?*clia6dd`15{^xBK(dJ#4GYd*Y~-JB=l6Y{?F_zY?Uye; z`{;Rxg<;Nw&+oVU{bpf!Abz|1Xi4t(S6lwSc(`TrX4@@WK`t{Yc>3?_%Ll(7UJztB zFkkTnLuiEwzLR=!mdWv$wx*GjD7Dcl_7|{y#vG4MqF( zrXQA;I|_7l!-9tk;_c(CJFS5d38`~#OVvM5vv{FDcdtPW3s7jyq}k?W?I7J>|E+%c zX=eB3XBUrsFa*kcu)iIrvut$mX%MSuLZ=>i4=DFHxoh>dC>CS8q& z(r74AtBe{=OQUING%Zn3$&Y5B(F`=2fkrdXXv>)T9jMW=b+l|9En7#+*3q(+nq}(+ Z|4mJ1v#)A@SO^SP22WQ%mvv4FO#oOJmihny diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Progress-Zero-dark-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Progress-Zero-dark-high-contrast-linux.png index ef2a10aeb1212688b760380e76c1e9fa07bf732d..1d5a114fc9f757e2d4799c1b019d6a01393a296b 100644 GIT binary patch literal 4192 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7Ql2i3 zAr*7p-m%RJNt9?yJZ{;f8Fbz#r72=ZYl6b0RIaA#4HJCk_{1E&V#au$(fjld*82Q) ztLq==zJFAczIB%0JfMmH_b;#i4Wu7j7x)e|Q}G=mgM!l?W(J3r9qbGZ9EJQ041$m3 z7#Ng}*fKDum7#I@HY|=SDZ$6)I+y0&5 z-xwG^u-ho@v0cH+(9rR4NBp#>-(!Hm^5;Xx2f4oAhacvZ0C_!DcWNc)0!{gO^!Dq! zXKl_eb_V(@{mkc@y}K>zi!H5W{zdZvP0IhYK#UX*5$*F)h15wwqv1Fjj^vj=qp4>! z^^B$-((3HdJTsbSM)S;Qo*~@2A1x_HON!BwVsMuf9q-*9m@e&jc|ii$v1jmf^>bP0 Hl+XkKXkR)~ literal 4998 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu}e%{Nudn&_M&wW`0G?zj1`oHfW`oVk7Dj>xn1hkq#K;;D^1A~Ic1!e{Y zhY1VV85kNA9QlC~j!kkvvWdkONU{*6!P=XD&G+xeAFKNxpS%0}v8uiI&S(KO?`V2f zDR+N=t?c{zd*wdgytyd)dieFcJuyWOZhjVjeDJV)@~ma9&On6^R?S|PDI<4Jj-7q` zv5(97yYqDGit0;B>R)mKWp8NB&Uks$vA(#x{38d5uQod)bN(Zs;~g$MTJXQJZr@B* zpzsD&vx}FyoBus|a{7@Vi0=#H*YC8q{cHH`+qLAq_r6~SdFjtVoAZx9e?0#2+u7A0 zUq4E^xb|vR`mQ@SjDT_v=6}!xd7e0LlN?T?8fcRIMuT-USgBQ%ji#m1v^1KQC}<0e zW}wjwG@5}%GZ1M#h|yAGwA2_aHAYK~(Ncr@qcbD2Y~9azEz;QfmGRUGz~LMQPgg&e IbxsLQ0Ho%XOaK4? diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Progress-Zero-light-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Progress-Zero-light-high-contrast-linux.png index b283bd048caca19f638ae78cc7fd12c492a66c69..5b2dd5327eac92fa45b3da34162068a29620adad 100644 GIT binary patch literal 4222 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO77M?DS zAr*7p-f_$d4rFM%7!u=t?{yi|LeV3B++25CgxU2DB`pm0R@80Pb3VeW^3rV{v$(=~ zi7V%epV{AeXujjSobTl=Ktuo4>i_$~$iUEW-}w$RgG0*>c7_IyLVgAY!AEio3`$3A z85mqTsu>tM1ik}pReZp!*_HU7(RI4zWeX;)vsG3=A3==`{wnccXD$2_vUH?ZMB&2 zxNt{Bb>06D7UdS!@5+CxrvjbEUTVX4eh1roN1$exGkw1cBl60BAC_TbV2Jp$r_7%3 z^v=~c3+s2q#n$b+26T0S0?_t^Ygy*IXQ$sjyB9tKC?oNBgH7c6XLVCQ zp8H%Ls~sQnrBAy%xIn&%`=31 n1fwOzXh|_zQVfcc;v=(mpZ8&<<1+t&eSZc|S3j3^P6<7gkuEizTp-0*9OUlAuIf^t~?EF)<(QA`rXNIJ}b|sA!5*x%sMDBPA=!iDY_6(Z&Z>g`kQU8hO z*6EDXZ`T=|xf?w#RT5~V!>PUXdx12=hwm)5K#GO43P^GY0qtfGP%h6V*kexQV7lN^w2B1Xf4yKfr0yH9`ocX;{7&wsA(*t07tSskePhrXmR>(@!^#T-m=C2Bao$#Vf8}(&HMEmfo^5UIVPoREBnP?PTpT1 zY}h6@Z~ysgtIL0-y(#-XcP-FY4fZ=~x8+^?a?=W^{=vJSA|T%p1X^Dcmdo%-$W}wjwG@5~cZDJBy{G+ADXsIz;YK)c|qooG*M^i@2 eR$|K51=4TMSX>e+eQg3vgAAUoelF{r5}E+=R(gH_ diff --git a/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Size-Large-dark-high-contrast-linux.png b/.playwright/snapshots/components/ProgressBar.test.ts-snapshots/ProgressBar-Size-Large-dark-high-contrast-linux.png index 5e63ea9b9d826583f5cbb61718d58c353cd718e8..0417600cee5ecacd4ce0fa5b6659f8b6fe25e2d8 100644 GIT binary patch literal 4242 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3>-{A5muMoRzQleILO_JVcj{ImkbO7KAtX) zAr*7p-rb*fwovAHqPzCRgV&bK%24sxV9q8i?Y;PsR*ze%arp{~Sm*G?(hs)GO1NJmlr-v*|f*Ve|1z&i#A0eX@MBI}=0t%j>@%f3{8ZB!TYmdq>Gcf!yoPXY39Vqtj@^SOq`d@$^)VcC-`r?ZxKP)#0 zH@{Z)EzbT{%>(r?pm`jdZ{}1L?D(4U(S9Q^9{%~otzaeSYodc^R3UYe*=RV9h9mif z)M)A%O+BNjhqQ`)G|!CYnbABmnr8@i0Y*!T(UM}cq!{ES#Sh-o4z6o{EZ$N9?EN!% My85}Sb4q9e0E&fL_W%F@ literal 5009 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuOmSIF`Gj^44tT`!mlz%WfA2nm?iF(GGSX%~0=mfti89VZs6+uR+0) zA1LJ5BnKp$SZskL3uhIOD@1tSB4f(J1gX7$V6xM5>HcmF=qz5jnE{`&Fu zK}HxO!-OwCo*jNXkKu!VwBGc~tEcNPWB*>h?CHOM7uG)1|1#Tr+p_EN_q!^Ami_2G znq(NevnqF2>F;wN);?TN|GhT9f(0nEX42cYrw^OAHUInEuYXt>D3UOBPHepVzK4M} zKn{vqGb~=5KXbh=jT5A=!=L?eeU~)fFK%`7c6Xr20j-;NYwc>1Ena+=+dETl?mmm$ zIa2itL1FMO{q)nKs&8LTmgGNw_hIeLoPA{#DyxAK4f~HRt^m@c1O~~WH>!b{G&UMa zqoG8t@@h0Kji#m1v;?fz$gS{4Gtg)T8qGkX8ECX+O#RN(XxTbiwvLvqqh;%8*-B~I ax}RZ=x`nizo;YZvh{4m<&t;ucLK6T-{A5muMoRzQleILO_JVcj{ImkbO7p`I>| zAr*7p-aY6wC6J-*;l@i*Zf}Lsj^$2Q>R=7Lt#IhtL%TgaOpd#nId)BMS`g4I=-6~; zsopZz@DJ_HU%%P>=0Eo-_RsS_-k*QgurM(E`MoaoD{I%3Pf;L=gez|bM^9q0lA3hzi*S=iZDZrp79+alU-_r4j*j0^|r zbFC!pZ$#ApdGYYV!v{O+|Gj!T{d|0S`M&=#cJjMe8T2mxy#05z9n%JZ-|X${%fCNc zd~tGPt^JS9a~At=zL}c}bW8Upv$;98)xX~TZC`l!U}62|n#h~X3%#s!|2=^L!%(j-o<*HNB04lj6^;ft z`FU|P^^B&T(bPj){WY3rM)S;Qo*B(Egj>3!CB<7gkuEizTp-0*9OUlAu+HmKTyJv7!4PWy*TiEef%S< z3=e7qzA)6MfB(1l<=NNa&eDh1->Luov$li@=!URUzxn0c&D)y)egAcVxeh22VQJsj z*JfTL0&*gXZ>0EsZJm5H^A6BA4BC$`J^K;w2-J7$sP~-70DJa?!VnX zcU}Art6Z7&{PI9gGd#a}t;o{0W`p(Kihns3*@ovg|33#b#G$AE5r`r=Ohz>jlX6Bw zX*86mRSJ!!rO~uBnwBW2#z!;IXa*Y1K%*Imw8sBvsWDn=jFuXsrN(Hffi@IDg@KjP fvX!E;^)I9KLbKV@CSB6N0UicVS3j3^P6-{A5muMoRzQleILO_JVcj{ImkbO7hMq2t zAr*7p-r3malPJ@kSbS!}+Z@F}4VR^pGF((uq|6rxbj}XQ)y{}%@KDJLcWCmy@WO2i z*Y3rUoPjdy9(tE;+B0vt-To)>`;JcE9HCS02ejb-zLz`rfplNn4t9nHjzSgTe~DWM4fN1Q*L literal 4965 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu1WL3$G&W~eTO!7G@sN_{RofKFcTNI#S{1mOYPUTw3o)5GweJDj5htTU z?o*t{rdQ5mt@-oz^v;6t)n6}O1sco{G;OvWi2hOCBnPCLSZskL3uhIOSmQY-kFEjtHGoW1$_-!kGWY|>x%Bf1%dNKWJLe1}=wZAxk zR^CuoS6`kS$+ygGSySEi-7>Qe-wp;kh~dD#n|b^D?!GI^O8zzZ_hJA2$NoOvz1bKj zvq4->&#upWeZ24cHDRw8ug=~HGUrG7pKW|Vn%cf4Ie11j5R-^TLuoXWs8t}1rlrxe zG@6zusL@9=&}ar4%|N3Wh_rsdXsIz;YK)c|qou}ZsWCe0K$U?doE6Gnw(<$uGs?fZ SJOU2zFnGH9xvX-{A5muMoRzQleILO_JVcj{ImkbO7%APKc zAr*7p-m%RJ4U}jLR1Q;o5_9m9;gjWM9N+jHxgED`4^V8)Rd9_up7>lOCufUbQ{c{> z8wD=QEPv1zBP@UYRs1=<`HvpwocUbC%)s#D``taS*nyTzcfP~S;Lx&zouPrFke`7; z@R1w?gVGUO1_qaoY6gZ5f$u=e72h#3C^+F)xWm-yN5Q9$4>vErKmGLE_}Q;3g%}wA zT>tjHOzd*WhfhCW6eQ1kzVP5)_V506^Xm5f&HdudaNy~#iq9`s&1YD1`r*Zo(=V@I zTx(x5t+?)=^G#-k15vh>e_rHlm5Sv({`cCoXLp~@y(r4S@ZmXMf1mhelU-7Frz?N| zyW1VU{(P9WInbFK_<7gkuEizTp-0*9OUlAuYuB}CJ3zFz|<@1VZvqHn^Km*E7i)oB4m+@*un{# zSJaP-`NSFK6~}V_c$)eCNzI$w+uL}7W-FxrU&Ifj8P54%U}j)&n6QAIfuTXc5hUi= zBnKp$SZskL3uhIO1tUvYKKzAOftoivXcg<_7t%jmsPH*aYef#Q4pfJOOO*=PROPt>1lj~D2 z^8Uxk&xOUi4Xr^k(+@TOc7Ocj>gktrUzUU1-?0CD{%fEFasD9LQ`njxgN@xNAIn#qR diff --git a/.playwright/snapshots/components/SelectPanel.test.ts-snapshots/SelectPanel-Default-forced-colors-dark-linux.png b/.playwright/snapshots/components/SelectPanel.test.ts-snapshots/SelectPanel-Default-forced-colors-dark-linux.png index 5cb9463c515bc3ca36f9a7db9c4c7613b8ad69a5..06967705847498873ddd7972c568b528eac35b1d 100644 GIT binary patch delta 23590 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 MvU9VV7OmU$7dMNCApigX delta 23592 zcmZs@2RN2}|39v~K|_>E5mK6xWMxM~LX^ELWoAV7I7>!L?g-gQ_N>UJD6(&RuaLd7 z*Z+08pXc~}|KH<#9mjJ&D%W+L=V!d%uk|^ze{J~oYeP!#&W#eVY*t<4k^wniT!Bh^$@d93zQ3>CDs z33G5H#>P`nP{>hBc{7+us;Q~X2v zfLwdm*iwK|1(+=7cbHrJb&xSlPy~f7F_ALAGCfh~c z`H-bET3HVVYx-tKTXXGa0tGC8|9pLaG0H)T}({u(4ns#9opJrhBY6$y1L%Kf8UyJHr|oj+SD|^GS``J zKNClLXLWgDNPp(fXlr9@s}LvWcx8x?!`v9}xpOy7;$mXvtB6(0xv}<ht5fXk(lRo^yv7amI*vEw<^Q22{3$|d zEyp%ceBEdzy=D4$g~BOcZ??X^zRjCAGhu#xRkU|WsH&^``TOhNy=!1>yq#5abzWD> z`*(SOfrBUo|{1a9S%% z(ffl@e_OmuMnFJw(??xOY6dpffws)gY*HUTevC5@d;9i8<8-|W?lRT5@eHq3T+v8p zemluFHgwH(X3bH9lml*vNyfMKHlQQVDsnb#Kc6}!>p|0R5vs= zmlubV8}mZT%Vn_qXhi4V88;@WtE*2XFxEH3#Kb&*zKzv2cwWe6?7oS~%1^;3E-n%h z5?glcr)6PbIe2iSr)PSGXw(r~jr|L2U?_>JAeXkFlYHrDul{<$>Bp&)XHfmVN^DJ& z3cEzmtV39-?9H1uaqUiyj@Dysv5S+XzU*tu{bFvkzWt?*9SLfm`OG>F($R6-P2F{J zTEPNqi1J?)^u5*>b0Z>e{?`kC9p}u89y{5U6W$8jee&^9AjHMRnNDpYzyIAgmY9|K z9y@>CDzCvGpOHQ9979Y1{dFehiSWq+k_f7|fjVC07n zSG`lMM_cg8{e68}nHHC+s`H7psVR%do5bMYpxsd2$$Ede+@-N>Z?^V4CymfoIsrz` z%kI>SY*O2H>n$eiINdh_CPNzM-hdCRKw1Q(qU$py15+ z6??RzVl;QIL;Bja(vlJ`e*WZqOPackzuPuaJfa-(+YuZb?7X_rKQeM(itsKiE5khJ z-1_#HozKUQlNh2GFJ2s#+D1de!gv3zkz|~WnxLRysE|z(YEVwjGM2*|g*4hbi+={U zZr$q5c5=`2m8H3|@dlo=XXl5L^WR*Hbo9zUr$n2cmWJ`W?~JdS?msRY$V03y)BO{||ypKcuAxfj*jx_t3 zAsu2RtwnYt<<6W3Jy%S&lvGuvfBvk{S%e{aZNd;37S@?#H_e>h_&4iCBRl56e}?Mg z$u;8f3U85-lGPQ>Rcp&t#49Etd_(}Z zeqhd2|F^eXy4Yp^kd2H&IN@Yr?vp1^qNDpU4EUkHGK4*Oc_=>l4qm#txj8v9va<1` z=dDLn31V$vVBqh+|9(byJg&jP*0#65zqq(qE>u`;#Q+;XY~@caKIF*Z!)PK=@$vC3 zsds)nUtL)u%$h&lD}8fP;wehx_a8qlOG-M}+cO+EAfhN$pO}}IC$>CsQBAG64kIrY z7W($>erD!8=aog2IxMN}tot~%9cPB>@%Lh4`6&I{Se28tS31{L=YIWo;m@fvJ2yAp zm>f1#xq_0

$5SXb0kuVvTm^udO7v-AKD{ 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 Date: Tue, 12 Aug 2025 16:05:15 -0700 Subject: [PATCH 11/11] sigh --- ...Keybinding-Hint-light-tritanopia-linux.png | Bin 5623 -> 6050 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Keybinding-Hint-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Keybinding-Hint-light-tritanopia-linux.png index 9d9f2864ab866f8a66f08db335ac364f3c6ba353..d9daf3707d6f16146c0761757933d24b9423baef 100644 GIT binary patch literal 6050 zcmeHLYgAKL7CzQmTB$|LLdrv8mmM8S)mo$!kVKJ61vL&Js0hJ9d=MdGLZZebZLJ^+ z2{Sc-ytNoW9-%-9kc32hGy@0`C4rEH2pA#>3GW1R^O(!5u6AaA&c9iUA9vlm_Br>S zv%md)d+&2I4<8Cyv)Xkv0AS7jZ-T=CSUC@0;N7=i%c@|mKYUw(4-W|ftX}sC0Gvk7oN13kDRnQ3TUghowE3>DH-=%P$3y+%MI++g z22$8wPu2bW8o3Y#Xm4oQm{n{j4exrrE=}CKgV>+KWR$ecd;q}vse1f>Lim$SaG1L( zI?jj|?P{59v8zI`l}IvzChxOD5aLxrm>t81ExC|yKE;#CC1bVTBE^NVt=-YJwdSJ$ zJaDTPTvTeu-B=pR&zJGS5~G}CyN0qExl`@aJgJYrI}GJqpz+|r>@C#M*6^;m?&y9K z{Nm>f@h&}=!!0}7dXLd4dgUPb&6*U`drTeoi^3bydo%Yft^dw^)NNF008MI790y=` zUBB7Bxt>;O5aOq3FYm_C=5b2iCCJMJkNxSL(Jo3v#8~DQ_n1)Wb8#TZSP8zpdv4<> zzlIBSer-Dv>f)313b?~qq*r_g1toi`9MFCZ``~GyItQ}QaAi8`J>uZcCnGka{m+{^ z?DQ=-)zavdBM2jn+~Jp74+oxC{vFq8GwfQ#s0RQ+H^>0I+ox_-CPc=1CdNYSB=zgq z3-YR@=v8pI@4?}I`S>K0k%;9~mz0w_t{G~@b$%E~U{7$RJx`xS+ zhWJKvKZ9enfkKBw2tR!S^ySlJif+D0^4Za0Df@DzLCqWDCwI*DiWG}oJZ4c2>dwfE zjBG`L7=ZXc*JvjuCbVawaB|ZVw`k;SP;LPJ^rT{1gelxfHU2?d{y+~35*J@D%B$5J z=iawvAW)o?AxMKpo|-=vlB2bK3Wv9MNo+rdrIsyu_^}?|^AD|d;M=tpTVItQNfC$} zzLvFq`>`fsGINvo*XdC`})EBy2uV>y_4B7IS>z1dIgs{$xmPx&y*`UOPHW%dwg}v@HH?c?RuN2o5Ij?^4f!*d3 zqe{^Fy56Sw<%OVi4l5b(<-HLd6Fxob(FEOAgy75z6}~7GKQRZ(T7*=#rbZSk<>6wU zkk&R0wOF+5WZ5tWb~m`XlU?kLIq~KJnr0w5#|}d3_nPS3mu5V-B}F&+nm6C*bv)ln z%y=rK7p8VT!B`e54%#e{+Ns8i5o0&TcW`Y&^my5&hYc;tv?*eJivG3P zjv1S=;fu5m$1JZvZvY0)*JWNj> zDaQ2e#i^&mx?9<7_HeXJCJXTQ7h1=)bqPW~=|#nWv4=z?5(xzT zt3DY%|d&5SSp`gj^IvW`Wd(jFF*$MvrY;lh>jms`nxOh$+Y<*Frp4ei2Why*wI zdBx=eQ@6_ZWhb3?Z%7hrxrvgx7-j#wDXMtgrhPlVq*rNPmz2b;-_>?Xv&Sy7c_RRm zrX(jLtSSG*S-Ucf;h`K-ql-*;_oA+Thq;?oBQAvu27{ZxcnwzCr_2*%3yH-wb&>9%i8`KbJ8dEVc7P1Yrbr1c)}4b zX{2lpKW@8n%2+8rf4jxkGVKy@x!k1Jv%a?Xpvv+~lhf)CzEkCL%${8uqq2IRl0>oOqAfc)NSEt6rH49jGI&m7A_SQf&v5SE4T+y9p3=6Sh! g{{K8)J+`d?D`^yPq2xpO91He;eJGd}6#xA{0oP-ZH~;_u literal 5623 zcmeHLYfzI{8a_%DYX!7e$v|S%9kp9sP{~Lj=x3EJ>lJGi98^+t8$^RixFy^YDr=&} zg0pT*1%$P%&{iQ(Rv_dCMj9(7Q6iT>NYn_C2ErvIA%rj4<92p-c6Mgl?d*^JkssfD zGv|Bfobx{K^E~f4-=%{GqJ0(zE(QSj?EYQUAppFl;R6=Uha(H3gc0yHFYQqDPEe=B zjsWmh!|tee53|b022b4nDDK_1NwG>`+?P~+^nA*NEAP#&e)I&a6Rm2fUUQOl1#@c6 zJ@2cfZ=ND7>^y;0mu$6hs0r(K}U2>_fGn9-D&*G#`ynFi58J>w{NGU{G#y=l-)H!_R zuYvpzhTdjyR5>f>jJ#OHg&Nt8il78*S4W`=hf-BlF;vM!cY!_cd5|5MxEFM8(0NZt z+ctF&0Qv)5gjw&NjMkww#gd`AG|sdoY@Cjxxu42j#nRl=4~8Bw z+*Wx_BBl-rHD}^N!jT~EvpvDOdGMQZ+rQ#=@3H=%b4+B+lUgo>ut&ar-8Re@p-o}Z z5p%CL!>BYurUVb5N>ts+#&EmOpltz?8JFLjuD~zvBV*b;07}N#Mz(3!IA`1@yYNN; zG8e$HHb@;j#Ce}AF_oA})sR^Er;s#`Z8U?H*IC9*oUwc3Bg_Jr3V~#6L5|jLw~nZM zWOU~SiM<7`n6DmfDH_r`3#GQpdV#@qtT;Is27i-q!SUFMOx_G3UGoA!KGcW*DsSpq zf3eQpAayzQZUf>_=vl)>+X1Nek2_^_jcQD~*;B}tC9<0Z-ABIgg}Bz-T4wjY)h*2( zCi4=B9GCVV!}c9xo0cHfrskFEbjU-q!F5E>bcQAzB2}trc^$vua|X|vbBA!GN;pkl zf1cJo%b&Zegp>dk>Tcm;e*lQF|0F3k!Yp;p5tqo^+a;Q@h$b%`i``r`AGG~C^<|6H za?_HCkxWmtpX+VFP1Kd(db`U3xWatd;ueI7PGh+G*_p6RVUe9Z`Zy6|7CO0uzEBl4 z@*4&h4q+Mm1{+%3AFtQB+IfiMsVgk__+v*oACWj-6gUyf$NaoGOMq_fhmIJDYi-yrs1-TTJB@mER_5QAdcdZE}i{I$`flQW1+v({!I>^E6wNs-yYqZ=uW434`?&9P_& zjR7GEb3KF8G%-JQdnN9N8wp_v^8r0@bmqi?fZ*eO)M^d&_{J559Vf-Q?=!Bt`3j@O zLG+aoBMpC15Q{p8PUfVziA5#_C8IvOXBhyiMvf*tY1QmAS+g6CMuy9Exz4Q8>b)ht z6)ub^cl)v667{sGG6lzDU}H^IU9RgkbBx@YUXRuv52jc&>lkO(0}zRqr(*K3Jh51u z!dFoYsRB{@NEg&+uStO)KRV6cmIeeLj#g$^15dD7E4GX<`2L%dZ2l{w}L;Y)p>lJnvg!8HEeH zMLvw=2}=^LBOLRC_ZEWufKUAC@1PI-dWjWYpe>m`|2aD}r8>EkTeW{|gkyAr$4(lTCy*Uo;Hu|DdN#Xp+UQ?!#R@Tbh zqhA036u>JL(b$oNf^TfL;eisve6U0IzVhbAl1@gXrlwoY&`Jma0BrF^x&587x4N^% zI_lOk#igw1C)BMy?wVSc|XExEF-EBRA|C>{b2S*Q%zx>SWVULGB z9`^iq_e76oJeu)n#-o{^{-fk^3XfC#pE$)FJ~C!cbbj0}9K2?O-M>8$Rk!oQ^M3