From a311272aea3830ecb57685f3678feecc0d01cfe3 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 17 Oct 2023 15:37:04 -0500 Subject: [PATCH 1/4] fix(Link): update underline={false} to disable underline --- e2e/components/Link.test.ts | 56 ++++++++++++++++++++++++++++++ src/Link/Link.features.stories.tsx | 6 ++++ src/Link/Link.tsx | 23 +++++++----- 3 files changed, 76 insertions(+), 9 deletions(-) diff --git a/e2e/components/Link.test.ts b/e2e/components/Link.test.ts index d556729b83f..773ba5abd62 100644 --- a/e2e/components/Link.test.ts +++ b/e2e/components/Link.test.ts @@ -170,4 +170,60 @@ test.describe('Link', () => { }) }) }) + + test.describe('No Underline', () => { + for (const theme of themes) { + test.describe(theme, () => { + test('default @vrt', async ({page}) => { + await visit(page, { + id: 'components-link-features--no-underline', + globals: { + colorScheme: theme, + }, + }) + + // Default state + expect(await page.screenshot()).toMatchSnapshot(`Link.NoUnderline.${theme}.png`) + + // Hover state + await page.getByRole('link').hover() + expect(await page.screenshot()).toMatchSnapshot(`Link.NoUnderline.${theme}.hover.png`) + + // Focus state + await page.keyboard.press('Tab') + expect(await page.screenshot()).toMatchSnapshot(`Link.NoUnderline.${theme}.focus.png`) + }) + + test('axe @aat', async ({page}) => { + await visit(page, { + id: 'components-link-features--no-underline', + globals: { + colorScheme: theme, + }, + }) + await expect(page).toHaveNoViolations({ + rules: { + 'color-contrast': { + enabled: theme !== 'dark_dimmed', + }, + }, + }) + }) + }) + } + + test.describe('with forced underlines', () => { + test('default @vrt', async ({page}) => { + await visit(page, { + id: 'components-link-features--underline', + globals: { + colorScheme: 'light', + prefersLinkUnderlines: 'true', + }, + }) + + expect(await page.screenshot()).toMatchSnapshot('Link.NoUnderline.light.forcedUnderlines.png') + }) + }) + }) }) diff --git a/src/Link/Link.features.stories.tsx b/src/Link/Link.features.stories.tsx index 22fe440c73b..84b7a8b87fa 100644 --- a/src/Link/Link.features.stories.tsx +++ b/src/Link/Link.features.stories.tsx @@ -19,3 +19,9 @@ export const Underline = () => ( Link ) + +export const NoUnderline = () => ( + + Link + +) diff --git a/src/Link/Link.tsx b/src/Link/Link.tsx index fc6f3a73643..b1890a8b936 100644 --- a/src/Link/Link.tsx +++ b/src/Link/Link.tsx @@ -22,11 +22,23 @@ const hoverColor = system({ const StyledLink = styled.a` color: ${props => (props.muted ? get('colors.fg.muted')(props) : get('colors.accent.fg')(props))}; - text-decoration: ${props => (props.underline ? 'underline' : 'var(--prefers-link-underlines, underline)')}; + text-decoration: ${props => { + if (props.underline === undefined) { + return 'var(--prefers-link-underlines, underline)' + } + + if (props.underline) { + return 'underline' + } + + return 'none' + }}; + &:hover { text-decoration: ${props => (props.muted ? 'var(--prefers-link-underlines, underline)' : 'underline')}; ${props => (props.hoverColor ? hoverColor : props.muted ? `color: ${get('colors.accent.fg')(props)}` : '')}; } + &:is(button) { display: inline-block; padding: 0; @@ -69,14 +81,7 @@ const Link = forwardRef(({as: Component = 'a', ...props}, forwardedRef) => { }, [innerRef]) } - return ( - - ) + return }) as PolymorphicForwardRefComponent<'a', StyledLinkProps> Link.displayName = 'Link' From 812424530cf90b8dd19550ff49769ad6b9a97ce8 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 17 Oct 2023 15:37:37 -0500 Subject: [PATCH 2/4] chore: add changeset --- .changeset/little-buttons-accept.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/little-buttons-accept.md diff --git a/.changeset/little-buttons-accept.md b/.changeset/little-buttons-accept.md new file mode 100644 index 00000000000..e48277eb3a3 --- /dev/null +++ b/.changeset/little-buttons-accept.md @@ -0,0 +1,5 @@ +--- +'@primer/react': patch +--- + +Update Link to respect underline={false} even if underline flag is enabled From 64e1a3b5c0da8796d4e839176d3617e0b9682b37 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 17 Oct 2023 15:37:45 -0500 Subject: [PATCH 3/4] test(e2e): add snapshots for no underline --- ...k-NoUnderline-dark-colorblind-focus-linux.png | Bin 0 -> 5855 bytes ...k-NoUnderline-dark-colorblind-hover-linux.png | Bin 0 -> 5370 bytes .../Link-NoUnderline-dark-colorblind-linux.png | Bin 0 -> 5345 bytes .../Link-NoUnderline-dark-dimmed-focus-linux.png | Bin 0 -> 5883 bytes .../Link-NoUnderline-dark-dimmed-hover-linux.png | Bin 0 -> 5362 bytes .../Link-NoUnderline-dark-dimmed-linux.png | Bin 0 -> 5337 bytes .../Link-NoUnderline-dark-focus-linux.png | Bin 0 -> 5841 bytes ...oUnderline-dark-high-contrast-focus-linux.png | Bin 0 -> 5858 bytes ...oUnderline-dark-high-contrast-hover-linux.png | Bin 0 -> 5366 bytes ...Link-NoUnderline-dark-high-contrast-linux.png | Bin 0 -> 5342 bytes .../Link-NoUnderline-dark-hover-linux.png | Bin 0 -> 5355 bytes .../Link-NoUnderline-dark-linux.png | Bin 0 -> 5332 bytes ...k-NoUnderline-dark-tritanopia-focus-linux.png | Bin 0 -> 5855 bytes ...k-NoUnderline-dark-tritanopia-hover-linux.png | Bin 0 -> 5370 bytes .../Link-NoUnderline-dark-tritanopia-linux.png | Bin 0 -> 5345 bytes ...-NoUnderline-light-colorblind-focus-linux.png | Bin 0 -> 5648 bytes ...-NoUnderline-light-colorblind-hover-linux.png | Bin 0 -> 5341 bytes .../Link-NoUnderline-light-colorblind-linux.png | Bin 0 -> 5315 bytes .../Link-NoUnderline-light-focus-linux.png | Bin 0 -> 5648 bytes ...-NoUnderline-light-forcedUnderlines-linux.png | Bin 0 -> 5341 bytes ...Underline-light-high-contrast-focus-linux.png | Bin 0 -> 5665 bytes ...Underline-light-high-contrast-hover-linux.png | Bin 0 -> 5354 bytes ...ink-NoUnderline-light-high-contrast-linux.png | Bin 0 -> 5328 bytes .../Link-NoUnderline-light-hover-linux.png | Bin 0 -> 5341 bytes .../Link-NoUnderline-light-linux.png | Bin 0 -> 5315 bytes ...-NoUnderline-light-tritanopia-focus-linux.png | Bin 0 -> 5648 bytes ...-NoUnderline-light-tritanopia-hover-linux.png | Bin 0 -> 5341 bytes .../Link-NoUnderline-light-tritanopia-linux.png | Bin 0 -> 5315 bytes 28 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-dimmed-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-dimmed-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-dimmed-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-colorblind-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-colorblind-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-colorblind-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-forcedUnderlines-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-high-contrast-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-high-contrast-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-tritanopia-focus-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-tritanopia-hover-linux.png create mode 100644 .playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-tritanopia-linux.png diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-focus-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-focus-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..c99c4dd86eeeef3bebc713178468d9255975694d GIT binary patch literal 5855 zcmeHL`%@EF6ke+>R*E<}f-NtnsEk#_no1gkq$ms`0v&6yJY$ENXc2G>uQVZBLB=9e zky4arptWEvZ=*pWWP?fs^TI&`0g|9d0wyFt5(4D0-PC_TM}O%|e%O0!>iNHJ_{j0Kh5yV8{^wSgA)IVD$&c%*AaxQxUU*bR=v)&?0o71^}0e@Q~o6 zIn^^#{4WG!EN6~LKo>sNs1I-9;!f5#R7Luh$CM5%J2<9E;|}>9deB>R^mo~+NT->C zO~K)QU!;EOyA|zH7&oSN(f_%wvSG!k?Z5TrZ7h|BI2JHJ|4jO^PlNxqu8GjUHZdC{ z{hEC`r&`fd-m_{QB@NP&McTxXj;yC*0GsSoCZ#%SBl$Dh^Vg`#w z#>T2kuX|QGOD)gH{oqDZt9dp)YAQXmjG29083 zVqz5IJ^7^3)DD4<#nxwrkMhjcDQWbgQVuJ8T#C zuwQ?B@PBre95B<`7R*q5tBXuExc@0_LYnh2@3U2kyu?38^=*C#uJIBg#7vH znl4Re$|YI0ycfU0hWI1(+r^E?ngrg(fqPIWqU%N-3KhW z$%h@0ZCZDZ$|kMU8grw(R^Su0>qiVSnG+iS-2iBKHc=F3E3%|H7yZ1+5j+cf<0v}w zJumA-lXc2XDbRL-vgIDIvKG$Ypu3;G3}*|VjLAo2o(G5?>Ne3sfBgu7cZu)iS>XVR z;;w|U^eDl?l+*pF>LKMhBb3Enn4KeATE{R~n`tmc>4%?B)P18}Vk~hXkj!3m?a*)@ zAR*ei)CUJde6@r!O`Seh%tyJwdm>P}GRVSO0E5KqEfdHv@}o zH{9&P+%D@NDIkcf>8Y#VsTp98}n(p6d$5)2fP~uwZ6K4yzUUzvMiQ;LFNT$F z5~GZlwD%ZWrA#99$!%00Ig%ZPA>%ZB(bdy zrtiQ9p~ueZt0(YgUA(f<*^44E!t+EpgRM1OP&lE%46KQQo4ct+2nC#oFo|160^~*h z(Kt*>N(u@^B23?O#6HQsNmMP(%!!AFh?5sdaEFa?Nz+Wrd0J*>roX?xLP;~G6XedG ztjnnGzpvB3+*=ECstAbl`;_-=NnkYB;kwyahqdnI8+@YpO6=?)V=skp#ib3Bi6ya> zC`KU4<{VV1T){{r`fvf$P-=3(8Tw;!76az&i@x6S>8%)=d9g{2uQ_l*-kyv?mT{sa z;$%aY#@gqOrRH4n3G*OI-K-lFBU6Ua^=JAv#3LVD&mxTxDz!>$^3)v&9E jT{YhQPtgC9wk~^ZnqRHj?cFtlR00ql8WqyA|9IZN=s=}I literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-hover-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-hover-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a55ed886d51ac5511e6a7b2cc784fee2db3bec58 GIT binary patch literal 5370 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu+Z)JN$g}u04Cc zSJvHrUwQBIysg^bW42lX9pP|lTPi=0X4q5IBnPCLSZskL3uhIOot;4<>Efu%Q0e2j}ivpkUUkh-^t2HzrUZkC6oq?)P~SaTejbc-?lHg&;C=dW$mZ_&1S~_e?PHr&aM6Z zrt0$U_@evI&b+ZM_#d>&Heu>7k&oD#DP^&H@rW_o!hy8?ye7yZrRJPxL^B~ z_w%moyjh>q{m%dDn_FDfxEZ8SEBY1Z-}>TzZ&v<1TD$!m_xXQy-|iM>T-&Dm^)oOU z86qULWxq(DmzmwWyv}%k-G_HOAN5{8XS)6F?l%*G(g~_DTa@2_J-vR$-s^X34u0(w zKK|^>$@J}8zQzA5sj2%uxw-i6asG3~?(%adAMek}1SOmmyE7dB&)OS){@?EUii2O( z_m!Wwsr}&|9ryp_{Mzcc`oFrxhZ}!Ce;)ty!W`SLho)U;0S4VFaBAH7MiFR0LwMS0 z^)K6Ni?jPL|F^IEI(PT8Bgy>wHSr+#iu!?*V#d<@MW6(@$A)U@koGBk)CQUqAfv%L z8m!c+j7HPaXj&RgOTdbiZq2{Z95LRQ{6v&1g0zoPgg&ebxsLQ0Q+-!y#N3J literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-colorblind-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..30307a7702372a0469595be9f3cea793a5d1600c GIT binary patch literal 5345 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAufI3$G*(GD;v>S`WEGj)Hv6W}=c3!0M&FdmEuPo3pHDBX_%Z+g z=i7DXKNnqFcdPj9GoTX~G;dF{1<@a#aaI8-4k4f`83a^bFfuSGcwAs+U~rhQfSrM% zLBWw9DB;*72PB(VKw4O+py9)E$_*}32ApK1U9KF_@V<;R=< zpUUT#ngH$Ep|V#0mCNzEPhW3Z6y^jj2fC}l`_`eRf31i8^JzJ9^mvTyK0uh2H(YecadbZ`U2I zc{1<)Iqmw|ym^2B)o$L_G81ILRGqiF->0vAKjX2#t<`e>f0@_Pp8bsfo3L$d{`}bY zzdpRamV55ZKIZEG>-cy5art-ie*{^LBlBa4XyV%KLramR0`# zy8YZweAVTbAzq|8M%^&%fu(&5^dNFZfsU<)vlipA*x*f#PIWx7e5byVY;s?El^_E>r)l z`ukb#_WCVP|IYvYv;5gB>HPV#`E1PgSG<^9{O!u==zGFIcdUXW#!c-&Hp9I+Q|sD5 zX{;id%1Mp(iFwopnv@Zv!8#hO)T(br)6!^K8cj>U>XmLSywMytn&U=u+-Q!YaYu5r pm>Df*MvIxzVrI0Mp}`=F1Z)N}h literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-dimmed-focus-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-dimmed-focus-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d528eba6435d886a346d1264b0c3292b7e489f GIT binary patch literal 5883 zcmeHLX;4#F6n+-03q$GDiFAab9b2@rbp{nEkd(zi%9ONPMMQ~?N~)LuMgk!uaj2G2 zMii_p0!ge@Tfsz#5I_P_iwtCAClNweLKayfCgf#(>5HBAx3>Q2On$t3-`sc3nRCzm zzHiQb7r#l2b6>k*EdT)S@w;R90Dy}get^~Q!Yh}2{c-TLg0Lqp8eoaMH2|=_F+Mix zyWHvp8SYn1;o-+in1QOMlXU#t_(9cp>Fs#wDa6gQiCa?|AF|fQNQ;>2JF=^Y&a&U< zy#lrtM3;z?>&`M`KKr&1?Y}GkX!y!xjPac7vm3q~g&*W|(D>JQ+|f%iXAuK<8e zyZc-K;LEGbRj~D@C=d8URDlmX7QBuF^TO@aT%89k6Paa+Q$4Q<$MVaB{FcG=Jjk?8 zr(N})z{P_~gckdQSdv3<&;to03lfS#DHem!2Fg+Bh^0TgQB-U6 zJh&}|i?2y%wWKY!&aql%%TkmoWL9^Cp^Mf$Nr00+azA-bpI!5W7K))5{5V)K-K~Cb zt|3P|LE`7MXCoU_*d!dhA>cqjLf$O3+mIuS?6Ce;St-rzc`9utjrsc@YO5=v1YaUv1#kq2huNBH3@<)I?8mRWxf{_u^4&Zw}YN`;)HHVEJln%5^fvy=paHjam8+G z)5UB~WZW?iA`9w^sC(A)Ed5RhT<~3lBU1bjnGKFO;_#9gk89Ty$u62ZYkXEN*(w1Hf5?)HTsQTK;ssXJ8 znZ&ajhEpBKJ#zj8S;2#*`DuIuSVOROv5^!}(wulyvso;lp$w07vJl&VH_CX0pparG z`fRWd6E7`*2D-Rn5yQGbD7JTR?${Y;(2}2kC~FXHXNuewqZ5r$Pe3|`-Rv%Rq|y5i z{54yk?7$A|%gV}@X`GxhpFj!6kfZJ61hMcD+tiL=ILvEtJ!rM3r>9EYe~Yk;ws)Rx zKLegw)Za+VpY1UXP(p;$)6%0GAI&;$Rik} zNigYec9^$L2n1ilj7OT>xZ>gP9FbC3RYqoKXe3KBgvrO9q{+@gWq&tB?Na`Q5`{yM zfc@gq)RtE-<^N8g-dNF`4zHv8&MG;p^tO5kCzhO8a$@N}G~rGHISJ$>kdr`gzx)PQ ucc*GNRl}(oPStR##@qib`hV3{wH;V!MtoQldp-+>1rWb0F_sm5q~K3Go6m>< literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-dimmed-hover-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-dimmed-hover-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..01fd7cc89e6ae7d443c54584f4712a1146f1bf11 GIT binary patch literal 5362 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuy;x33w)ccu5$4`S`@0$H90_MTeoY0z>;oW z4c6F}rrF)D=11)>v^`oBe9?2_BF5WS7PVFxuJH9Js-FCMiHgh8hi%2@%xml}KYVI= z{&)2L=auJomp!;JaV{g!4MEqY+X5+uf~PDXnuW6pNOA}P-O3=K@&c$r!Q%om1B1ha z1?&tA4GNC@KncetIUw0Y1q~&kO?Cg9@6U1OxBXjxU8e5MjXj_Do!|e{*8b}gnLlrW zcgykuZCd9k-M#DL>ird2=W_OKS#cZasspCEiH`N3T9dnXi2_x`d=~pA|EpVmXZ`Qr z_O|W&f1J5f@!J+?RBidYzn9KGf9GCrvR&@qlmCDI9rN9O&bI$w#k*feF5Zm1asjA& z!y>UVr}~ZD&$mC{C7n0#w*8k6bAG&hyty>1_}kt8C+_^*xc=O0^*Yo1IrsLY{JnLI zxA?)q{IfUf|5V0RzLVa(t!E+7MG37sZ*{-Fz8-78{_n4sm5;AHTXXiz{krd)Bk$js zvG=`2#mQZBXI7p+K7Yp6Ufa)~{N?7){e0VdrZ~|4u#-W4FaEzh^GyE#=bwLWUQbU; zt39tfeNE+cce&ZK-&q(P-~a!^ocmT=FZ=|mP6*XCeW9N-fA^bPw_N$JyuVxieb3i( z{O4NVu8rJX_g={z7+nohw{3BMcfV)u+v4Is?C~>-)#K;=<(HWo8UN}%C40J-|y;EZYqNU*K0?X`@PrsI}7vf)!$FOe*WLrqo?mh)i2%V zx6i2l=hO0McjfL%(UuTY=ZC~?#;m!@ERoAPTfQjnrtwv|}vT3#~Km!U=%W9qeH?Fs- zH+{B4NqwHBRsH|J#oYV#fpTlO)WHdI%ccCCz+}kq&zj2VkoGBk)CQUqAfv%L8m!c+ zj7HPaXj&RgOTg-tZq2{Z95<7gkuEizTp-0*9OUlAu5H&7IO4YGJnT{`+DZx#jxu_wIjx zURqoCZ|z&_f{b*a0~)4$P2~sD3^7)YAlk7>4oEh!*aArw&MF|uAp~?agMi8lMg|52 zj|b2}^6A*8QE8{d}#xt^NBsH|A`e`SW>vz3FRd>CL~D zf9pqVH#V04f5>?AwvE|we~(_?TwGSI`I(7<;eb};DcN7;b8r2*UA_POyt?YNv}@&e zYYxupul;s%=fiEz#b1v1pS`(On0qcLio&i2HUGQwZDx1h+PU8y{=T#Qex|p)ChJ^o z{@GhwcZ*wse6(iEQrn{cb#HR!&s=Q(^VS^8f3M!uKKO9vSI~NUp!9)L5ib|m@BR5{ zPSxudGSv@1y!mzE-p%6wk59{Sf^0Y>y8G$ge~qu7FWdV)w&c$j`?!5CR)3wI_4-Hl z=VR~d4Yt?6oBjEH_&)>n`+rWSz6GWRhSG4I7v;4dw%zh}mHFsXU@BwqboFyt=akR{05H67i~s-t literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-focus-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-focus-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c42dd96e483a8f10ae93a9424ad677f2d85ede GIT binary patch literal 5841 zcmeHL`%@EF6kdxXDkF4shS*j?(aKCAP>lsKp(zvx83tmlEmDX<(4-O`(j6Z1ND3Xs zQd+2`JVFTI*oX{}pj0rtLQ4@^LI5oUBq1P}1QK3`B!o?}z3KE1(AHl%lOOh;oxSHf zd+wRGOCtjq&rkYWY3zi3&%Omg_YAL_PJYI>Prf0-S&Qb^co255ps$bu6 zzJJgG(?<^YIpn)SH}coqQdWU8W^CjzHZaupqv-R2RJYUQpg6XO!#eT<>yo1V%ugw? zBB`j;!01)BwC@x9328_UQ(4t9A!J;ogN(lXv6SNiEcD=uJgd#y>JP@PJ2JtzeK%MD z^!j1d76>|Udc+QbKKQ=Y9$*dxIDv_P7Xge+FJ0KM)W|C2#wK|c-bsG6p`jrHzAZ^z zmI|&d&et2~zj7M7Rh)C}iuyGO>PfoSR4dAmhWoMVvrGE+=iZK$hhgkX8bkJhGwJY(7-H5B55R4&Hf!u1v_7L-cW=q*X? zZQuFd3iiM;i8)0H(vCPB$iF9ia@^7E)Q!mCbyYu&s(92W8rQHQJ!ex*O`$Cng)PU* z6}k2<6>!^x_x|-^@#wFz~ULdsQ z*p$~AhLW8^r8*au`em%p6j{Xe0d+MK3AS8xl#9Jubyn&dB&u0Z@ ziG{)I(Df^_7)HKAPeC6_^&S+qnYjK7nl+LxCCCj8lp40L%V*;Q0NqT-VpYPa@xBP^ z-Q?8qWsAy$$W0HkwIoKyg^Wc9_%VqYtMAl~4|-1^dVy|wSmZ%NFL#?K%!96bL4Y*Y z{vDevR%sWa(8zN#y}DO5o>T>%R9(?m-8R(CUd|r77KMWc{hh?ID|p4E&@v$6mZx93 z0I(BbWqL<5-4B)ijvA3ip)?wm`mB8{f&05=L{wTYSZzucwYi!nG#zUrjY4G{-hVfk*X)c)9L!p4O&9Ch&_6Ht zdlQ)P)`hX#4TEfyP$$$Q@LU!%*)qpw;`s!v&Nr0^V0Sv=1BA&-h>|Q^og6G;sz(uJ zex2ocm>ks*8EHH;*D!=NWXD@{B<9mFxiynNoDqpr5_#d2GMtE4tJQ!?DJil~To=(6 zn%X21B_t(@7kBa3m};=B8En!New|LI!wL~gu+&>D2IYNFiR_KS<~hpd z(}ZdUqsYZS6HCqf(1o!v8|mNd6YR4ryZZ)ki>XVXN11c&(F`9SAH~GoI9NhXAF`Mc zzCN12(35Ki8)WIj1$*2T12+z7?U@_(+(rk0>lkWHQ_-kC%YMfUa>Ep?oW++puj6nu zaTTYeE_}${HT!dyER#oQ6b5*wl_c6*<);}gTYVc3Zf4^5{C5d@Y0a_$UPRe#RkBs- zRqYaNT(WV=#wGBv|F_$0TLak|$ksr%270-lbDL_|RKunkHr24H#;ZU0{6A@{+1>xd W*1Y36RZ-x~1qwM89>fcb$@>d0ilL?e literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-focus-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-focus-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..10df4a06682fab081b8038b51f56e4e62efac540 GIT binary patch literal 5858 zcmeHL=~Giz6n_>gE_E4oU@Cz)4kKDXbkHbEh#(GH22ix47-Cpz(y|0FASMt(Vbr0t zP^-WoVR1=aLP1RhBaq;VKo%<4BnA=@O+o@h$iDDiU;GPd$4CEFdSwL;-C=#3TTCF!o1B9zM;O z9*h0ys4A&+JSY6#g$H-g9WBY%4*1^4+u+-J;AUw`Wb&KilEVkT;+(lPeWjuH;@L%4 zN?ZJo-jDa(%}iWXcPkFD;}6#2>lM`0$cx|XzF!bm(c7|N6aR}U#9F_qq-$l-q}4@f zBEA<|l##D=sGtsA2vHc2#Uo5QV26OsSQOPMU%y!5l#5rxJ_Dx*wrg+3?nMI zG_owaQ$TAD3(etKz4g6r`0h9M&j6s8z`i|yiK(x9puX&0Ezk_iAwu)jU-R=1R{5Yq z!wLfhKkW1#z5OLTRm#=Y$tCl0F{Fl`Iygk3h(jb0Jhn_64SMScAk`<0-rX8gg{be+ zaf#lhg>VQ2#5m+r8Jj3VU`mP!1n+cEN^2U+QNHcJ05{GQyz+#tqUv_g-+}!4V1@Pj z)D?2Do@0HF=c%na@B*FTMFOAi#Y3JXyPhJ;p^tYtl+p%w7K`Oc3xst~Gn4d3W`bTm zrq5#8#TpAW8;(5C{+-st;Kw^@re=Tcte(y+c?Tw<%{6u{iK=kSA)&{`IxYRA9PC;t zECQ#RRYS<|P>e~hqdqjs3VTk;trffmubla-#&ynhqkb<~W>baIXKr#b>_X1CQl^sh z$`El844zG@=Dqm$GS zgMnr#X;v(IYp|b>%@DxN&=!ldB@T+JvANz0W9d)o*1XjBj^i&8n@TeFDB%^93cei! z&w^c)nV7kzaQ)N~ZD$W*lA`LK#UUGYGV?R*U>J$PPGB4tTj9x4*sq3K=(c`{^IG!g z5dH6f^0vBw)1aFt0%|{m zZ}6*yrcdDPJf2ZNu?+KqF?zY8;ZSwNE`LR_s&kQT++32QCP7F;+A8X3PV8*LN=gJTtg*O!M{Bgogqs$))C@puj+ZMx*JTXyet7iD$YP!96!>=pozi7GrZ0lgX@$ zaQ@okm;YL87##Fx7wY7cx94M&+-k=Nqlhrh^u&3nht$Tw{B)}Tyo_Syifky^STQ_E&#az16jgM}NN-6sr!cVb~ literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-hover-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-hover-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..536374a808ff598d47bd86d73f7cadf31f86171d GIT binary patch literal 5366 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAubLx3xKc+c@K?h@@HM6@|8d$&$T3>2J39NOHFu?|J`QzHa~1!+-Cc z-}-m|`OkNLwH1GYsr`DhM zo&T4ydoj@71C=kET<^X(QEqRn-eiKRbN?&$pld>D$iUXSKloEd_6ro z&>85b16@(47FI-`&po%UH~h@K=Iv*l<9F5VD?R+Q_)WU~jB>eM#b$9ocNt$>|9(#a zU(Kg|mCsh%pHnWsYmx0eLlS6z*vU(NJLB(fEbg0A-{u$oU4OjZSl$0m zWpwrbzbB7BKe2cI?DCo~-Nk=i9R7SI*?rqqd7!2%b2l&8|6^;xJZS-k5Ae+I$`gWbu z|Bt`_m+3vT&~D#flOgy2=wI&r`arogT>juBn6cD^rCZ}~G{=qRxX~Opn&W8P#~dwYMvIxzVrI0M87*e0Iezz# Z*?d+17P-ZRkAW$R!PC{xWt~$(695>TeD44N literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-high-contrast-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..eaf143952e96f73fcc4d0112a24d2f24646a0111 GIT binary patch literal 5342 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAujW+eB;ZEcgDrcFyuxsfulS;C1g&BSQ##>+;jI#Z1Iy#Fm z{cHdJvrV@2?(aFgKo?B-v@Mk%NHgpyZIT00O)R!Rl7+JhNOA}P9n2u0@`90pLBZn! zGXsOegazyj3=Im7AT5qm&|szOSpVSL{BsAb=l|GWz3%_R`DyPD-oE!`W_aC4_2R47 z>o(rK2(;=!Psz1KdL=LRtv|PMvA^!CBA{4-TXe()`JZ3Ui5XYcNxTf4okew&!7 z2~hi*6-#SG@?T#)dvj~yyEnEKzimFfef`|sJjTSm?(^rLM|#W89<#n*e(K-Xx#{N{ z^=%FG_kWmP`RCp2v|LVOV8|TMio6y6?t1x~Ifwc0n;!4Cwa+&G{3ZGO`CpON&tk=E zpOpUImX>z^?DsRj))haSULI%u-)`s5DV4yWO_-_!bh-JbTm4Vw{&?RO z&p&1FH+;YI%csg0eYKz0Ki1bTu>(3ZBGjAr*JSlL%hcT5xBL08%>UoG_wzsgc*FI1 z^Jd8IJ{S2U1E^}lrD@+z{GDA`^!bR*pQnF6Un;Jj@pt<@>+ILwd;bIF8MKp^HvhYE zarv|S`nn>y-{*Qi_i^jZJ-u#U@=ax+n+|wc+?@ls{|9O1dc@|(=TD7(JZuPclwm>$+hihxTScB5s z0cl~HCq3FH?ok_PQf7<>>u9i2tNs~HOQUING%W#ZT)MURMswU~jvLK!qdAVo9m~;T pX0(_YEoMfGnbBf~(m}ibjJvZs`ZP}D9ss5$22WQ%mvv4FO#t>GV&MP) literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-hover-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-hover-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..48792bc8d5741b25f46774f34f3c049815b47d70 GIT binary patch literal 5355 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu^CWlstZC&B3yU9W0V5@d{ z)9N@gp?5JHY@RH86J{%9PTk^>B-J!SA^FNhi9JW}SQkIv#+|Ao^RD3CPrmu*Uw!y6 z=l}ohf9>+So!k50^8uYOVbiwz%s`qU-2VcQc9^h$oq?f2!I2**SMUF`|M{Gn2mGJc_1pgFyKeJsr~0!a z)92lLodLA5AT}!gn%nxn-!|T~E3b;Y4YdA1X>O+D{>oQ3Q*&8?Dz5Kcy4U&tGxvA= zcmHm+{CQUV*@4dfGrRYHx@`G#t@!hE>+S8^?S4G{Z~Nk``}4i`f83SX`@Vhi?llX6 zMkTnuJ?;LntX%JG(&KA8-#+F)cY6PiZ*zWLY)|`qWpnZGbh+8md6tDw<*((>68>&) zIsM%K+_=AA4{wh6cLHejhM;e6wZCV-mM;GH-T%zFXE!6yoRO~o^-(8pN1<8X{{zwI zZqJ>W{Jkz;?6vv%oAd1rihn-ZcZM6Nb9GAQ`wRQ$t}U+r_x}B9@pI?ToVnE)eZT13 zM1LD2^Sd7}R=%8h{`|XZ(%y4H@ey`)AKTxj-Qw#iYU(~NQ)ch0ui(2^dHzk@tyx>Y zHgDd1=Oa*2Lh9Sw%HQ9gIM)i)tbgX)>-w3CzyD20%Z*=e50pM|D&pmW`&Q*u+u|z= z<7(e6ylL_2pJmN?=ijzMKw>p%bc z+<$(ezpd4OyU(+4{yNTG9R+gMt96kV^6z}xxASqge{A8Osn6x+oej3X`T5uL|39wC z?0J2;_|3id=kL$|_vTGr{<}(Fpq3R;GFCM;<@?)#Y+(AI_x{5DuXl~FC-trV^lAM* z<7gkuEizTp-0*9OUlAuR^aTYC5_StU00Vm zX|L^Vu@-M~ytItzHjC%#C9Xo31zH@BEm>?>(Ydqy*|}WxQyCiN7SC(i&!?AGRGk0( zZ`=Lid(UHKEUSv@flg?c(i_STq#5?qH^~91CKg*D$--F$BsqkDE@lu=dBMoQpx|+V znSsG!!UA@n9tB5`7Dp;**rn!J|LLFlbLad2&i>!~>59a?Z^0WW(=+4i(&!3;Td%xzpW4@i8{J(qh&wkX}&;6Uq%L_Cr zJ4;pn=DmK{j{G4q&+n?f9L%hcV=Wf%<|_I@2^UDc53O=Gu%LpuTwy7K6&ov{(V1xo;u2HY`nSf#kK9R#czu3=gfZh zz`gax>|02{GQaO7f$-0duaWB=HJuSn>SWge4Azs zioi8%r`i_%pZ6wq&h+^|Z@t;~Z@XpPeg8DGuwTD{0m-nYcPrnoxu4V1zfTo^e)YNB zytT>lvloB2+4E{5P&Pp~X7m0%;^y~^+WqVQt@?WR`nhxWzU^dwTl>HGTud&8}>*FVWj;Q{Mgf6&${H|ED|3n`@tmv)}uFX#V_Jhvol1 znzQ5k$DhwH$IttF_bu~#PM|%Z-OBF%@77mw0ND@zM!q%%CA0(9!Zc5Bv`^8aHqfM? z7!B6ZV5L^2Gn$r0)6!^K0@k>6YvzsSxX~Opn&U=u9F2REqs7c}!twvgF=eU}|FUboFyt=akR{00~261poj5 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-focus-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-focus-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..c99c4dd86eeeef3bebc713178468d9255975694d GIT binary patch literal 5855 zcmeHL`%@EF6ke+>R*E<}f-NtnsEk#_no1gkq$ms`0v&6yJY$ENXc2G>uQVZBLB=9e zky4arptWEvZ=*pWWP?fs^TI&`0g|9d0wyFt5(4D0-PC_TM}O%|e%O0!>iNHJ_{j0Kh5yV8{^wSgA)IVD$&c%*AaxQxUU*bR=v)&?0o71^}0e@Q~o6 zIn^^#{4WG!EN6~LKo>sNs1I-9;!f5#R7Luh$CM5%J2<9E;|}>9deB>R^mo~+NT->C zO~K)QU!;EOyA|zH7&oSN(f_%wvSG!k?Z5TrZ7h|BI2JHJ|4jO^PlNxqu8GjUHZdC{ z{hEC`r&`fd-m_{QB@NP&McTxXj;yC*0GsSoCZ#%SBl$Dh^Vg`#w z#>T2kuX|QGOD)gH{oqDZt9dp)YAQXmjG29083 zVqz5IJ^7^3)DD4<#nxwrkMhjcDQWbgQVuJ8T#C zuwQ?B@PBre95B<`7R*q5tBXuExc@0_LYnh2@3U2kyu?38^=*C#uJIBg#7vH znl4Re$|YI0ycfU0hWI1(+r^E?ngrg(fqPIWqU%N-3KhW z$%h@0ZCZDZ$|kMU8grw(R^Su0>qiVSnG+iS-2iBKHc=F3E3%|H7yZ1+5j+cf<0v}w zJumA-lXc2XDbRL-vgIDIvKG$Ypu3;G3}*|VjLAo2o(G5?>Ne3sfBgu7cZu)iS>XVR z;;w|U^eDl?l+*pF>LKMhBb3Enn4KeATE{R~n`tmc>4%?B)P18}Vk~hXkj!3m?a*)@ zAR*ei)CUJde6@r!O`Seh%tyJwdm>P}GRVSO0E5KqEfdHv@}o zH{9&P+%D@NDIkcf>8Y#VsTp98}n(p6d$5)2fP~uwZ6K4yzUUzvMiQ;LFNT$F z5~GZlwD%ZWrA#99$!%00Ig%ZPA>%ZB(bdy zrtiQ9p~ueZt0(YgUA(f<*^44E!t+EpgRM1OP&lE%46KQQo4ct+2nC#oFo|160^~*h z(Kt*>N(u@^B23?O#6HQsNmMP(%!!AFh?5sdaEFa?Nz+Wrd0J*>roX?xLP;~G6XedG ztjnnGzpvB3+*=ECstAbl`;_-=NnkYB;kwyahqdnI8+@YpO6=?)V=skp#ib3Bi6ya> zC`KU4<{VV1T){{r`fvf$P-=3(8Tw;!76az&i@x6S>8%)=d9g{2uQ_l*-kyv?mT{sa z;$%aY#@gqOrRH4n3G*OI-K-lFBU6Ua^=JAv#3LVD&mxTxDz!>$^3)v&9E jT{YhQPtgC9wk~^ZnqRHj?cFtlR00ql8WqyA|9IZN=s=}I literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-hover-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-hover-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a55ed886d51ac5511e6a7b2cc784fee2db3bec58 GIT binary patch literal 5370 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu+Z)JN$g}u04Cc zSJvHrUwQBIysg^bW42lX9pP|lTPi=0X4q5IBnPCLSZskL3uhIOot;4<>Efu%Q0e2j}ivpkUUkh-^t2HzrUZkC6oq?)P~SaTejbc-?lHg&;C=dW$mZ_&1S~_e?PHr&aM6Z zrt0$U_@evI&b+ZM_#d>&Heu>7k&oD#DP^&H@rW_o!hy8?ye7yZrRJPxL^B~ z_w%moyjh>q{m%dDn_FDfxEZ8SEBY1Z-}>TzZ&v<1TD$!m_xXQy-|iM>T-&Dm^)oOU z86qULWxq(DmzmwWyv}%k-G_HOAN5{8XS)6F?l%*G(g~_DTa@2_J-vR$-s^X34u0(w zKK|^>$@J}8zQzA5sj2%uxw-i6asG3~?(%adAMek}1SOmmyE7dB&)OS){@?EUii2O( z_m!Wwsr}&|9ryp_{Mzcc`oFrxhZ}!Ce;)ty!W`SLho)U;0S4VFaBAH7MiFR0LwMS0 z^)K6Ni?jPL|F^IEI(PT8Bgy>wHSr+#iu!?*V#d<@MW6(@$A)U@koGBk)CQUqAfv%L z8m!c+j7HPaXj&RgOTdbiZq2{Z95LRQ{6v&1g0zoPgg&ebxsLQ0Q+-!y#N3J literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-dark-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..30307a7702372a0469595be9f3cea793a5d1600c GIT binary patch literal 5345 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAufI3$G*(GD;v>S`WEGj)Hv6W}=c3!0M&FdmEuPo3pHDBX_%Z+g z=i7DXKNnqFcdPj9GoTX~G;dF{1<@a#aaI8-4k4f`83a^bFfuSGcwAs+U~rhQfSrM% zLBWw9DB;*72PB(VKw4O+py9)E$_*}32ApK1U9KF_@V<;R=< zpUUT#ngH$Ep|V#0mCNzEPhW3Z6y^jj2fC}l`_`eRf31i8^JzJ9^mvTyK0uh2H(YecadbZ`U2I zc{1<)Iqmw|ym^2B)o$L_G81ILRGqiF->0vAKjX2#t<`e>f0@_Pp8bsfo3L$d{`}bY zzdpRamV55ZKIZEG>-cy5art-ie*{^LBlBa4XyV%KLramR0`# zy8YZweAVTbAzq|8M%^&%fu(&5^dNFZfsU<)vlipA*x*f#PIWx7e5byVY;s?El^_E>r)l z`ukb#_WCVP|IYvYv;5gB>HPV#`E1PgSG<^9{O!u==zGFIcdUXW#!c-&Hp9I+Q|sD5 zX{;id%1Mp(iFwopnv@Zv!8#hO)T(br)6!^K8cj>U>XmLSywMytn&U=u+-Q!YaYu5r pm>Df*MvIxzVrI0Mp}`=F1Z)N}h literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-colorblind-focus-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-colorblind-focus-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..102f2d47a756e6721cfb4a70178a3789e255fd3d GIT binary patch literal 5648 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 E0LPUl9smFU literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-high-contrast-hover-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-high-contrast-hover-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ca87dd71798248be69c4217c2621415668372d GIT binary patch literal 5354 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAui+Z@&C_F_wRXcUi@~h ze}0Jx&@Kz*xm(xtzT5fr($5>~=AORA2NXM(;m!SPeQjB7WHivp2PE?|(_i@id-8AJ zU;Xp!`##-}srdJy=2x`;xu5Y>DSG>!UN8Q?c>SN__xJz$b@AtgdGTj`%jIVsO^OT# zdi6lotts9gx8>e7s{ea@^OW!RZGNr) zc_^0s`C<7xhW7WXkFHspd*}ktIUAhJ-cI|Sd|dqVTWS4yU%9uPzjf=(_4T_m`sPQR zc^~)dcJ#eyowRRviZl9TYz_DSc^6vz%}o3=$ns0)F6^Is+JBeI`#;6o&z?E+aKC)@ zY3uTP|Nq$h{C)lTf&TLImDXmZF+f`)BxgsRcyE>dTJyZ0o&5hZ-0jalrvEp3o^#vC zy>DK`qZE)!ZiW5&{q=2n{@mqtTdMW;W<0-B^L?RZ*`3@9psc~>M~?MB*Uc?{>V9rE z`@0`cY`%YzF21fGcjL`Opmc)joNfN^?pJ(1VpH?Mf4R;7A3&uKS#O(f`KJ2X`WgHE zA1~hgeOdhZ=jwaryY;Kzw_OAJpkdc#u`l|2t5WiQ+%pF1xp_}J?fmm==6n9VHGebf zFZ(}>>bf7dElb{~KeK&b<_Jnj|My=L>uzlZrh5i~%@6nQJin{%|H~PVWh)=_`JV}2 zzpvosZzf>StopzYPH}6$=za$(J#c#mdK II;Vst03Eq<%m4rY literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-high-contrast-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-high-contrast-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..73a4ea23071ff5908567c9ba7a9fbe7a1c4ad074 GIT binary patch literal 5328 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu9Q7 zkcv5P@A$vCUn+axV`r4G}ofTq1JD!)3xOon;-0RRWxjTT1?AT5bFK)@o+!rjNh>&ink)qOPL;-u&xd zIp=?`&fFNG19FB(k^LSUdI@J4Qpe)nBI;*5TtRsOW|H!QrpjqUfon`2o}V5qvz*e`&fcqK4=*qR zs)@LL?aTky(*5!F^*`TU+xcP6+2Yf+yVL(OZhr{0?Z6o+{$JkPbLMHEvoDp~{n`5S zt7!T2w*C9}-BJcg&nmc5xAXsx%gvv^tozPaU3YTY+2U`K()}6l^Y!y*Ro9mt%=!O! z_2<9Z`wgS@t^Rg=115!rU5mxO(r8)&*1mLW@{Q)W(Hu9L<3@8FjeC}(#ms0iGg{1y7Bi#83>l+#U*h$T W_Fb~tnaTuAKn$L)elF{r5}E+>M^{Av literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-hover-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-NoUnderline-light-hover-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae2582026233774d69a8b3095b43e4192bbe8e1 GIT binary patch literal 5341 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 KxvX Date: Tue, 17 Oct 2023 17:14:52 -0400 Subject: [PATCH 4/4] updates Link props documentation --- src/Link/Link.docs.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Link/Link.docs.json b/src/Link/Link.docs.json index 3563203ff67..1c44ebd094b 100644 --- a/src/Link/Link.docs.json +++ b/src/Link/Link.docs.json @@ -20,8 +20,8 @@ { "name": "underline", "type": "boolean", - "defaultValue": "false", - "description": "Adds underline to the Link" + "defaultValue": "undefined", + "description": "When `true`, adds underline to the Link. When `false`, an underline is only rendered on hover. When `undefined`, an underline is only rendered if the underline flag is enabled (a parent element will have this data attribute: `[data-a11y-link-underlines='true']`)." }, { "name": "hoverColor",