From 0e173504ea5a73f2822c7a322d7a23a9ddfd1fa1 Mon Sep 17 00:00:00 2001 From: Daniel Leroux Date: Mon, 16 Dec 2024 10:55:09 +0100 Subject: [PATCH] fix(core/toggle): update styling and don't emit click events if disabled (#1587) Co-authored-by: Andreas Berliner Co-authored-by: AndreasBerliner <41509230+AndreasBerliner@users.noreply.github.com> Co-authored-by: Lukas Maurer --- .changeset/config.json | 3 +- .changeset/cyan-mugs-travel.md | 5 + .changeset/fresh-suns-cry.md | 5 + .changeset/small-games-act.md | 5 + .changeset/thin-frogs-relax.md | 5 + packages/core/component-doc.json | 14 +- .../core/src/components/toggle/toggle.scss | 170 +++++++++--------- .../core/src/components/toggle/toggle.tsx | 70 +++++--- ...-1-chromium---theme-classic-dark-linux.png | Bin 10222 -> 10181 bytes ...1-chromium---theme-classic-light-linux.png | Bin 10045 -> 10170 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 9959 -> 9956 bytes ...1-chromium---theme-classic-light-linux.png | Bin 9813 -> 9824 bytes packages/core/stencil.config.ts | 2 +- packages/storybook-docs/package.json | 1 + .../src/stories/toggle.stories.ts | 104 +++++++++++ .../src/stories/utils/generic-render.ts | 16 +- pnpm-lock.yaml | 3 + 17 files changed, 284 insertions(+), 119 deletions(-) create mode 100644 .changeset/cyan-mugs-travel.md create mode 100644 .changeset/fresh-suns-cry.md create mode 100644 .changeset/small-games-act.md create mode 100644 .changeset/thin-frogs-relax.md create mode 100644 packages/storybook-docs/src/stories/toggle.stories.ts diff --git a/.changeset/config.json b/.changeset/config.json index 6e84596498..fd51e1bc7d 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -21,6 +21,7 @@ "html-test-app", "ionic-test-app", "figma-plugin", - "documentation" + "documentation", + "storybook-docs" ] } diff --git a/.changeset/cyan-mugs-travel.md b/.changeset/cyan-mugs-travel.md new file mode 100644 index 0000000000..f4a19667b2 --- /dev/null +++ b/.changeset/cyan-mugs-travel.md @@ -0,0 +1,5 @@ +--- +'@siemens/ix': patch +--- + +Adjust the spacing of the toggle diff --git a/.changeset/fresh-suns-cry.md b/.changeset/fresh-suns-cry.md new file mode 100644 index 0000000000..6b9bc7077d --- /dev/null +++ b/.changeset/fresh-suns-cry.md @@ -0,0 +1,5 @@ +--- +'@siemens/ix': patch +--- + +Align label overflow behavior of **ix-toggle** to wrap diff --git a/.changeset/small-games-act.md b/.changeset/small-games-act.md new file mode 100644 index 0000000000..70cf0f5ab6 --- /dev/null +++ b/.changeset/small-games-act.md @@ -0,0 +1,5 @@ +--- +'@siemens/ix': patch +--- + +Increase gap between switch and label of **ix-toggle** diff --git a/.changeset/thin-frogs-relax.md b/.changeset/thin-frogs-relax.md new file mode 100644 index 0000000000..d3e9bfe348 --- /dev/null +++ b/.changeset/thin-frogs-relax.md @@ -0,0 +1,5 @@ +--- +'@siemens/ix': patch +--- + +Make **ix-toggle** not clickable if disabled property is present (Fixes #1585) diff --git a/packages/core/component-doc.json b/packages/core/component-doc.json index dc886825fa..ada4ed96bf 100644 --- a/packages/core/component-doc.json +++ b/packages/core/component-doc.json @@ -19600,8 +19600,14 @@ ], "encapsulation": "shadow", "dependents": [], - "dependencies": [], - "dependencyGraph": {}, + "dependencies": [ + "ix-typography" + ], + "dependencyGraph": { + "ix-toggle": [ + "ix-typography" + ] + }, "props": [ { "name": "checked", @@ -20635,6 +20641,7 @@ "ix-slider", "ix-textarea", "ix-time-picker", + "ix-toggle", "ix-tooltip" ], "dependencies": [], @@ -20711,6 +20718,9 @@ "ix-time-picker": [ "ix-typography" ], + "ix-toggle": [ + "ix-typography" + ], "ix-tooltip": [ "ix-typography" ] diff --git a/packages/core/src/components/toggle/toggle.scss b/packages/core/src/components/toggle/toggle.scss index 1618ef8d03..f71888870c 100644 --- a/packages/core/src/components/toggle/toggle.scss +++ b/packages/core/src/components/toggle/toggle.scss @@ -13,33 +13,44 @@ :host { @include ix-component; display: inline-flex; + flex-direction: row; position: relative; - height: 2rem; - justify-content: flex-start; - align-items: center; - margin-right: 0.25rem; + height: 1.5rem; + margin-block-start: 0.25rem; + margin-block-end: 0.25rem; - cursor: pointer; + input[type='checkbox'] { + display: none; + } + + .wrapper { + display: flex; + align-items: flex-start; + width: 100%; + height: 100%; + } + + .label { + display: inline-block; + white-space: normal; + overflow: hidden; + text-overflow: ellipsis; + margin-block-start: 0.125rem; + margin-inline-start: 0.5625rem; + } .switch { + all: unset; position: relative; display: inline-block; width: 3rem; min-width: 3rem; max-width: 3rem; height: 1.5rem; - margin-right: 0.25rem; - } - - .switch input { - opacity: 0; - width: 0; - height: 0; } .slider { position: absolute; - cursor: pointer; top: 0; left: 0; right: 0; @@ -47,7 +58,7 @@ background-color: var(--theme-switch-off--background); transition: var(--theme-default-time); border-radius: 1.5rem; - border: 1px solid transparent; + border: 0.0625rem solid transparent; } .slider:before { @@ -55,116 +66,103 @@ content: ''; height: 1.125rem; width: 1.125rem; - left: 4px; - bottom: 2px; + left: 0.125rem; + bottom: 0.125rem; background-color: var(--theme-switch-thumb-off--background); transition: var(--theme-default-time); border-radius: 50%; } - input { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; - } - - input:focus-visible + .switch > .slider { - outline: 1px solid var(--theme-color-focus-bdr); - outline-offset: 1px; - } - - input:checked + .switch > .slider::before { + .switch.checked > .slider::before { background-color: var(--theme-switch-thumb-on--background); - transform: translateX(1.35rem); + transform: translateX(1.5rem); } - // Toggle NOT checked - input + .switch > .slider { + .switch > .slider { border-color: var(--theme-switch-off--border-color); } - input + .switch:hover > .slider { + .switch:hover > .slider { background-color: var(--theme-switch-off--background--hover); border-color: var(--theme-switch-off--border-color--hover); } - input + .switch:hover > .slider:before { + .switch:hover > .slider:before { background-color: var(--theme-switch-thumb-off--background--hover); } - input + .switch:active > .slider { + .switch:active > .slider { background-color: var(--theme-switch-off--background--active); border-color: var(--theme-switch-off--border-color--active); } - input + .switch:active > .slider:before { + .switch:active > .slider:before { background-color: var(--theme-switch-thumb-off--background--active); } - // Toggle checked - input:checked + .switch > .slider { + .switch.checked > .slider { background-color: var(--theme-switch-on--background); border-color: var(--theme-switch-on--border-color); } - input:checked + .switch:hover > .slider { + .switch.checked:hover > .slider { background-color: var(--theme-switch-on--background--hover); border-color: var(--theme-switch-on--border-color--hover); } - input:checked + .switch:hover > .slider:before { + .switch.checked:hover > .slider:before { background-color: var(--theme-switch-thumb-on--background--hover); } - input:checked + .switch:active > .slider { + .switch.checked:active > .slider { background-color: var(--theme-switch-on--background--active); border-color: var(--theme-switch-on--border-color--active); } - input:checked + .switch:active > .slider:before { + .switch.checked:active > .slider:before { background-color: var(--theme-switch-thumb-on--background--active); } - input:indeterminate + .switch > .slider::before { - transform: translateX(0.7rem); + .switch.indeterminate > .slider::before { + transform: translateX(0.75rem); } +} - .toggle-text { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; +:host(:not(.disabled)) { + .wrapper { + cursor: pointer; + } + + .switch:focus-visible > .slider { + outline: 0.0625rem solid var(--theme-color-focus-bdr); + outline-offset: 0.0625rem; } } :host(.disabled) { pointer-events: none; - input + .switch { + .switch { opacity: 0.5; } - input + .switch > .slider { + .switch > .slider { background-color: var(--theme-switch-off--background--disabled); } - input + .switch > .slider:before { + .switch > .slider:before { background-color: var(--theme-switch-thumb-off--background--disabled); } - input:checked + .switch > .slider { + .switch.checked > .slider { background-color: var(--theme-switch-on--background--disabled); } - input:checked + .switch > .slider:before { + .switch.checked > .slider:before { background-color: var(--theme-switch-thumb-on--background--disabled); } - .toggle-text { + .label { color: var(--theme-color-weak-text); } } @@ -178,46 +176,56 @@ } @mixin define-toggle-vars($state, $type) { - --theme-switch-#{$state}--background: var(--theme-switch-#{$state}--background--#{$type}); - --theme-switch-#{$state}--background--hover: var(--theme-switch-#{$state}--background--#{$type}--hover); - --theme-switch-#{$state}--background--active: var(--theme-switch-#{$state}--background--#{$type}--active); - - --theme-switch-thumb-#{$state}--background: var(--theme-switch-thumb-#{$state}--background--#{$type}); - --theme-switch-thumb-#{$state}--background--hover: var(--theme-switch-thumb-#{$state}--background--#{$type}--hover); - --theme-switch-thumb-#{$state}--background--active: var(--theme-switch-thumb-#{$state}--background--#{$type}--active); - - --theme-switch-#{$state}--border-color: var(--theme-switch-#{$state}--border-color--#{$type}); - --theme-switch-#{$state}--border-color--hover: var(--theme-switch-#{$state}--border-color--#{$type}--hover); - --theme-switch-#{$state}--border-color--active: var(--theme-switch-#{$state}--border-color--#{$type}--active); + --theme-switch-#{$state}--background: var( + --theme-switch-#{$state}--background--#{$type} + ); + --theme-switch-#{$state}--background--hover: var( + --theme-switch-#{$state}--background--#{$type}--hover + ); + --theme-switch-#{$state}--background--active: var( + --theme-switch-#{$state}--background--#{$type}--active + ); + + --theme-switch-thumb-#{$state}--background: var( + --theme-switch-thumb-#{$state}--background--#{$type} + ); + --theme-switch-thumb-#{$state}--background--hover: var( + --theme-switch-thumb-#{$state}--background--#{$type}--hover + ); + --theme-switch-thumb-#{$state}--background--active: var( + --theme-switch-thumb-#{$state}--background--#{$type}--active + ); + + --theme-switch-#{$state}--border-color: var( + --theme-switch-#{$state}--border-color--#{$type} + ); + --theme-switch-#{$state}--border-color--hover: var( + --theme-switch-#{$state}--border-color--#{$type}--hover + ); + --theme-switch-#{$state}--border-color--active: var( + --theme-switch-#{$state}--border-color--#{$type}--active + ); } -@include toggle-variant( - $selector: '.ix-info', -) { +@include toggle-variant($selector: '.ix-info') { @include define-toggle-vars('off', 'info'); @include define-toggle-vars('on', 'info'); @include define-toggle-vars('mixed', 'info'); } -@include toggle-variant( - $selector: '.ix-warning', -) { +@include toggle-variant($selector: '.ix-warning') { @include define-toggle-vars('off', 'warning'); @include define-toggle-vars('on', 'warning'); @include define-toggle-vars('mixed', 'warning'); } -@include toggle-variant( - $selector: '.ix-invalid--required', -) { +@include toggle-variant($selector: '.ix-invalid--required') { @include define-toggle-vars('off', 'invalid'); @include define-toggle-vars('on', 'invalid'); @include define-toggle-vars('mixed', 'invalid'); } -@include toggle-variant( - $selector: '.ix-invalid', -) { +@include toggle-variant($selector: '.ix-invalid') { @include define-toggle-vars('off', 'invalid'); @include define-toggle-vars('on', 'invalid'); @include define-toggle-vars('mixed', 'invalid'); diff --git a/packages/core/src/components/toggle/toggle.tsx b/packages/core/src/components/toggle/toggle.tsx index 04cb8035c6..450f09b985 100644 --- a/packages/core/src/components/toggle/toggle.tsx +++ b/packages/core/src/components/toggle/toggle.tsx @@ -13,7 +13,6 @@ import { Element, Event, EventEmitter, - Fragment, h, Host, Method, @@ -98,6 +97,10 @@ export class Toggle implements IxFormComponent { @Event() valueChange!: EventEmitter; onCheckedChange(newChecked: boolean) { + if (this.disabled) { + return; + } + if (this.indeterminate) { this.indeterminate = false; } @@ -135,41 +138,50 @@ export class Toggle implements IxFormComponent { } render() { + let toggleText = this.textOff; + + if (this.checked) { + toggleText = this.textOn; + } + + if (this.indeterminate) { + toggleText = this.textIndeterminate; + } return ( this.onCheckedChange(!this.checked)} > - - this.onCheckedChange((event.target as HTMLInputElement).checked) - } - > - ); } diff --git a/packages/core/src/tests/toggle/toggle.e2e.ts-snapshots/toggle-basic-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/toggle/toggle.e2e.ts-snapshots/toggle-basic-1-chromium---theme-classic-dark-linux.png index 134ae91640a436e90a2b1dae8620225a0af93bf7..9c5abb662d4a30b4ceab128fe3c887cdc11e25d6 100644 GIT binary patch literal 10181 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%0Ae@FA+wIM4Wili_T-(>EFtpU8xzo3E?0SG0 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 literal 10222 zcmeHNc~q0vwvSS!j+6o-0-@?vpcIfIf`kxTA{0>~3I=3SP(cu4m`wVgjt+DWDhR1;Y=u7!Yd@NirbJ52Kd%Qh`$2V^>Sv!RW?a3IakE{gZ0hrc z+Z{tg-RwSI-7o_{X-2Yn@!_ zbp$A9s@zKjqN|0AiXMHh;Y2d$dOJ8cwC3SarO{U8nBW0Kna2~f` zZ+i;W0kp(MCcIE=GT|PLxHHW*C_#tw&egZ1TWeBFy?RtAf=f@%lT3Vd`3pn8+ut7} z4`Nakw$pXXX%i0Ekvo&j)<9~?VY1bs8*Q0t6uZN4|t#7Ih_I=d$HP z)60CAAKSsWQ8nEgdncVskcv~>DsM1L0{d8g*3u8lZ^~*|CTuNDZEZnCRgwPoC7my1 zt1hP(tAns>LUwv|4CuuL1F1^vT^_GK+G|h&H78=g#jJN9n@J7LfT$jZ^?g=f5?`s<<|899Qjqg z`e#jD{RmFL?36!|9jc~wFVad~x$}ctFUCs&=rC{OB!;{yt1W7od~Gws`S`Z6PeszN zIhdIlVOj0NOeB#kKE1Pvti3VDNT_IRgkPe1dH#dwz7cU6=OgCM!5=DcV^BO-)MqXT zyTwdYs|fq>;uZfzON1rb%}pcSBgDQn%iK6KD@(#Afrd4-q`@KOgj(MH+s#S`dIWee z=qm%`#+NNzQ@{3PZYs!iAeYEMrO96sjg6@B$iYa`zAjRcIh*jYVb@s*W#O(OOSFn1`y;o;$DVchKfuI}}H z65vy_yWPT%&Y+9Q;;6MJif3p_pw2M#_3(3o))1x6fft6ES(!dd%R(p8_ekXK!lHy7 z@!HBMStm|&jl8ObmsFJCR?l*vNR#8jIRV8R9OO6YiA3Z2CiFUTxjqraTBW&+}yM?b);f|~jR8;u~g$oIQTQ|?<^ z7}}<4d(S!@I^;8+WX$;KPAKIjkJk7A1VG5!GW7N)^W8B2Ysve2zOaeklREHSxXG2# zrm4Z2;@|PXoRNKP=gw6;6^dLXGXt)bxHOIwjLXrEOVquwpoCKr=l>bFZa~p=skZ7M z;`reKM6_*Ka@PJFoA}dyZB4(;y7>q>K7Ee|Be;1~OyB4MuacvEI&E}<7*iFXcy7E9v7-h9yZn`R)_daBaXA@6=0{e3S zR2pozG_D?=AC|p9kN;uk+k~bjCZ?n5T(g|2yZI}1S^2W&g1NAAIU@RCaSRr(Z?`c; zXs5x}E7DIzolDJmwoCdln0+y3`SMb|fFoXA6%=IeYwH_+FS^+z81!wLG)koHf*QU4 z8PxeM^y|0qQ%EH5UfzJQklI0@4-_l|IYqMWZ6}h@R;uq3C<407MadDY+aOP!#JUi9 z)aWn$-(u{ii4shx@9s>KBRkzss8>bv3=yg1H@fsYk1I_B5MgJXZ@JdA@N~~+e34hn zH^q)6=-Li%2^S8;^^JXu*CEfzN2L`&`p>@sN{%JC0HSO1LRMn{IEf{`DxL!DFc}4K z1%6(SA--uEaYyj4Ac+xfFDS2H{W@{$ZC+GwE>4NF}P*cG+($de;A7*2*+;H8GTh@j|+%Dj}!%uLspx379& z$J4Mvrn()0KsX*Wd;skodhQ!Y{QEC@Aht7K?%Ozua$!IFRlc;g%gS za8tOp%b1~t_UIJ2fhlPt`xnlj7Ys+Bvx&40o!n{M74=H<<7?Br#uoW=p6>EPL-&1Y zYHB7SpZ?Tl&t{kzR0j?21Cp4!QL>QBmi*ZOI_CU3WO=f*Or(u+aptc_?t#HLYZIcn za18B-->a(3ilu4RiQshRXU~fvuKmwxpYTBVI(H0B{!;FZ9_i7HMVGoND=Wuq;iin{ zOt52&{*e)A37R^B<(HX!0jj`V_@HnFMSw>}TH2W*Cz}R>Ig^5e6=U~u=o9q-4!PFd za`TAza2=LYQd*kqU{w2;iMA~Dwzjt6+>Oj7{+++&c?U+FpH3Li%^NBc5v}~MrJF1H20X`2dF(aj6Hu=c4p4=MX)_0`8X%{sHc?&Y!t z#io^dvOm0RMUykrdoi|+vz(qo77^kh%kM9um~4bl=s!?r7Q8x%VP&7J%4E(@S`P*s@>QiO`IWl-dsGcCCNxrik(#Bsbf@kWM6a_8ySQg$8g7 z4Y2zITk7YrK)su~?oGcz=l6uP_4$I^3IRPHQqvc{w>0G$My8iZmvM92MR_Yv3!{4a zqQK~wlHr)>SkAkJT6#)vhfJ{k;Z~@xvuuo97+?Vq30I)AYXzN_t=ldB}axfEyewVb2U>G$z)=VVQ4S{Mo(u9xPe4f!h? zPltPN*+@V*GURjcS;CH3u=yq9KfQI$3sHIwb8&I$JQm}VoO8@%uf-_5lm6^zaq((e zSOtaF-N=43j%Sgpg(-QE44Q3KZ$8^yui=f0zm$<}G(K@S8#-N>IV@Od-0 z@3cc`sGHx0m4qJN)+^2ZSfP41%6R2|jI_9{%nVv5F|P<=E{;PtU|oEfx-<6v(Y*ca z?Aty-<(@xRQCng1&=`N>M6j!lW*;@Fy0;pnFn8nMvwyUi;f^+^ezQ7~lao^s_3!~hgW_~{RJ1io$lSIU^I`x*OjU0uHTAL&Z~ z9309={S$pTKLpSh^AjxU`r>4T&x(#XO3-VV<-5}5M*${p@jPbAdd`LPeewa=iC(Iw ziu(!keWpemvdo!kHPDDS(? zwXg~k`BuMxK}oghIxNA}D?+2bYPaAf|2CuvNQ*@%0VSYJaW@HI6{?Nv)4J;H0koG< zfM88JtB>OV-y-FinVz}QanDGm3d%}3{O)!^*zC)0$0WbJJ4eeK7T%Ibt_@Mx==Ft` zq+GD}fJ7AVx7==hm2jHAE)!@^lHub1<>9#)b%60CkVy9( zE%jr>-FYmGx?$oSrPd^R-KXEQ`v5{=P80V~nLpX-q<~*9A|hhKBE*T3deD;dwt$lW zUXtWhFRa=#JVNBgjm?>aEzd_poi_qL)crZ$r{3b-&AJxL{PoQVrrka z4qF?4tARN4UQczWFpV00geGZ}s~MnasubIl#JT867mi5Sw@zG8Ts;G7QR3{N!ImpQeaLA=gVtt%opr@p+kqE5* zt>ABFgJ|_x1ozO3Lqz$I1+UaJQVYf_t@LTGa`+*FZWSZ0%wyVFFZ>G77}5KSzU`i&WB1g(ND~ti%e^%; zH5Woj;_8Nn{-gl-VO}`XM=cBoC|*4rffwgs+doVqk&O9|&Awwl?+}jKC!qZm zRA9SV`Rf~7U_ozPSPy+sR;wSN*rQezv0NCJ&w;GP6&Dv5mX`y;Tm9_Wa4s?I^-oiX z$4AMQ3xye0*Uzl2=5iRoN=Mc|L*-eU-0FYse={hd)7O?=Nhh8-bm+4C+4S9 z^_B4!@ON$Eb|?I(5GWR*z+&L5M*!8YGNu~g1fvISD8~MG=^R7~Rl5U>ImuPQ7I1<^KYpOfL<8fc0 zh?d1ACBC2j{8e~&j)<@py+NHuGMbeTT9erXN3H1j*G_1(I@&Yb1Q1q#4f&Gbi(i)+ZXO4^Ff`s$>UJ>u2kh zKL`*><1OiSNQTJVL&x+PDz!*APm9_pz8t;2n3t+ydV}G+Yab)1W_Vw!k?R+ThLw0_ zWg!N!>eNcS7Bht7m6=G}VZLvEI|5d%g?bNUL=(`U>&_t44DCoy>n-vl{^bBG8L(nl zE+OZ~?3&NsWt4nSWRoVW6!>2~34e>+k-NQx28kZw22<9&gD_N#XUeS$lZ-WmRU| z0ZRVbCXO|_x@z%h{&0P`{NHJ1gS!N@Bv$qmy{(A^@^glwV~(H$HwvdG zx)_)1{r#-Y6Ov3S)Ns|*CEUK84298#D8L4MtL{zOwm4zi-D~(aOth!&j>YVcc=zXi zlj4JMdo`g|cV~Q>nttr8!MNBl&T-t%ltC;Pns<~6bAo!*|7N(bm6~NVr}|r(^s3J5(@^wX3qIXB* z=C4u)fhcB!{{`60sGESY2`HO&_`h`0`+vTiXp&>td#`~t!S)q*4%Z+#)?~{@^!skz z_)UfN*;nAh~$aXxC;AZFUH-7YFYI>@&wk(M zeV@I)WG4qZg`FBZArOed*?(AHfIzkbkDvAYWe3o7$4y=W8o96wc4r_}U9edQWIyDr z_34Yzj~6Cm!t){;Is79x7Je)a>(9EN8)Vjd!OZE@sr#p)7oQY*U9|XC*o>(+_aX?E;-!HV;0uI^Tb`yO2T9RoSasThwzP&%^9=W^vIM=WBS{Fr7OWGV>0b zTg0LRA}Sa1ghFZlbT<#1RDI^D(_etaK=v1Xyr2j^K*Hg2d%^avN)S1q*>CXw?3Hxy zg5s};&dyHKRrYi=mR&qT^|d=`Y}~duNj8t@hNH071?Xl%SqM|zpu)^{H!=O*y$~%kTtPeRkIXHI68a$!-o$B;wR1q!3!MDU^(Wj9|&&Z z>RhDUEp~CIL5NhTcVgo5ob#%avoo~6#33E}D(N9s8R!J@uL)LxWDiy0+w22`qAG7! zrurq+$sK!OdvEX9gU915BLt-9RcPaoslO_WM}^O(CON>gjeKpRX7fRFr;1=D$Z#cd z@A5PvP;%MJ3$8>@OUp4J5GpDHi2*zBoEfNcQ%T7lvc*V|#ahOudo+xyJ65*=rinfg zDUgN_Kl`y?B+WdxrAQ@ZKGQ3&fX!da9U2Y^z%$g2-wRSu$TPiOUR_;nGKZgaMuq<) zdqEzYxa}B10D(gFE>+%0OF&^CFe>)-kHKU*Iy+W)YBkqk(lX4>#gIE^4qU488ox2q zB10(Bp^QA3omRqE$~*6v$TDRpy2Hm$`rQt35c!(4%>BqsM zxB?{Iz)pK#OUrzg+Y+s?VL6{k_iT}_NnzUHwuh5{l5bT&Bqx9X8xR!r#h2N1c%QiN z$Eu~iQCWTq`b&gEZd{}V`MEw-$kk)jhXtqW>61;S5to%qy3ppADlQLV7wYcbePlvC zTvjHwjf=BdSr|1ud>+Q!Cj-d<@{``0A!G(Ex&;oRqjTLMSL2|f`qb0qN>5?9McvzE ziNP4t6+jb)3ZOGlRZhCJ1+}N#aB&D)hh4w6vLXY4qA=HE+AW^gVArF+OclSqEEkxd;8Rl>T_*E zIMWz9wBDVTmTTNr7HS)rHwQ}2S^{G6#BGuVnivHP zGuXRis{Ho$b|01~r*xm88SuE;RP3Z{&AsPJioOv<{{E`n`2w>;wpyGlPtdrj1>m29 zI$6g(;PzQ3m~3*qYaF2o>%UvWWd9BY*j^~qV}6cM1rS)!?*yjA7^aDG3_P2TfCDI( zdu#_LSI|VZ`R-D+2@4B*W;beOV`KBiB=)P_+Lt`%oWX8SI-5KpsrZq`8Uxki*kizG z7v`LGbbQW^p zt#F{tIN`l^bevC5tDHgjZ*SEt{I8TOegRtN6?w>?0w13Ew%en?2S`uM=cmB-ALk&S z15G0B&tH#yg=(b^Sk@Z`<5ox_!K-D~vl1jt+|=anA2>IFS{E#;$nVim&fKF8_3O-m z`n`Fiy6xC{_}nI&_qewMjQw=LiZVeL2ZgR_MKK~08W0*$M%m$6Qz51JT@Ds#>Pl6= zk0?=kC~uQ$#>&UHx0+^jW`t1_;sOH#j|+5h940wxBKn0L>&?&o_9)P$AhquGUnBx_ zT=gi-F?J18A2~}+(lYtdAve+uhKf8#37r@LV(rT4$LJ@KF%yQeWVeQ337p{_vx;La z^Gu5D{Wf>+6OjuMWi~3(EibRX(jO-ZHIK0ZcxV(lVeDuxA(qEGGdkJ#S7y^PGW7L{ zC|cDd*`r1FE@p;qmu^{CZVRqBu@J~RqIDa`wsGP{@X7kx@YnJEdo)yJ($~wrEV+YY z;Tsg!ayDf?BsHdd$l98wiCw{)%VrCs$FF9Zhn)j=!}+z@TRhZO)g%;ps>;Nx3;U1> zVs=n^0u*X!s|{T` zF<%fYv;Y^9=c!r_E>S|J&1`mnXN^#L8w6O4(H`Gd=> zT7b}NJmy(ACRHcid}g|VRh{B1eQ6Uqw@~BT*6wQ4y?Lg@;`ee(#q!dzYq&V^gG>UY zqJks%aP3;C^ox*SN$mW=pk3fuQkOmu+xQ`7hvQcX0qjnOmXZ>EnC9V#wV&XZ7uX7V z4)7m#P@z!hcs&n)-zceVQYf{1gI<3X`X;%g?Wi9G0c3e*Xtl#+csc40=s@pdoO{Wt(@wS3uq5xZd8*6P)2X=(I3)7zGf zv)TM*ZBNaFwQjO+Z0Cq*NG7$^%GUyhP8==(2$JqeZVDt?-Q6?0Wa^~>88=%m8$?i0 z(S1LJ;v|yyXO##=MTdqeJcq@TNmH^ZPJfA`wKWX4a-UQi8ACbenC3`_2Ov%V{O=$V%7piFx5O{xBSyW}%^`JypTB3{ zq|+Z*9ih8oyw&c!%*V(XBaw{f!%X#($FXOC1RNQS1`VU10ozpClQ(h=H+hRW;XgKb zc||;vo68nkPBF!61FuSIW4QlXW+|NcRB{5|I+Bkca!x@8rs^$HN;rb-4RN|#Q>e@Q zjEkaWMQ4Ct*CW-iV5$4cJVr$=b}lTG^{j>+Ci^(}D3(KOSRcw|wceLkMyY`dq~uh; z?BJa}@tq40cpKN>73zV2Y%J+rFykQPp##|&*axRGElv{-1pA3FEWg_UOH%T8m{ZLMkBI&$%=_S6TuK(*0WFXUJGmcV7>2VigLXFaNE=^?5%oLSH$`lw6o^@| z2W7iDI3fr3*?zG7+hGXk0H=KZ{8gn0e#JW{H`n(Sy_3H}KTnEdr27X3-kT&x0h6Er z-bBY??Od5u10T1DRCO;c6_rVGH%R0VVp)ZguJTtXT8EL5QCszga-YGR=e>P>7y8`W zJ34$U10!ot(SLY-pAJlMgzih6&5 zcMPKMLH#oS>*@-t84hL;dDm4j?YnLAv?t$f1M+o%XIx-qc}8b$z4fbAEiE(IQzeF7 z=c8UNvrSbI{_wx#%yDd7Oiau2la_a^=W zzZDLHyy4HP_Dtgl(kY)q7gJ-{gdf%Ds+?gn({wYs3aQ2aK~8 zaS3WJ*PEZYbfK015*SO_6IxLR69Zg~Qvg=A92>wzb zKrISd_&+oYR?M$r@HBp#NEa0}h^9HSaeBWV8C z2FOzLLm|4@AUhT_#a8=d8RxmCaUB9eT^m8tJL{)NjHrkRfr0S57W#cdAPWlnJQ5Kb zZ`4=>ZCUs{4~`Y}mj3*uUKY`99~3H-tReVaHR!$UVz`Q7x~W0c+KY^@GbW!0U^Y71 zyfa?g!PLN?<3BEYtHzBRf=eKt2bM6dQK!~i2P`*9NG!X#UbD?Rc-|{`W->d|(E_b% z!T$!(4OIfNX%tg4#B7y=X--@7My!2nv9d(qC#^4L0O~{3UX;zSj1wyvM7}vd!gh{{ zI7iS*GkG|NS(_tEDr+zVMBKpQ&!C=( z4$_N(1OoaU8+5H;N^7d6EQAjwHP;9$D^gvUkry_^b*7a}3GkOcHCoa#m-FJbeA{q~ zxTrx?9YRw~*yz{Q(@WXaWscO*38qFkoHGsgc^olKF0{*l8(fV&{}|Ub8rn|`28wrb z{4zPZd!gU=a_6Jcii%W3oYatu4gMrW;s9W@NaSt&TM3T|6pAE)D$I+pors;^C3j2G zuj%u;ddy^v#uheCPx?`S>c--je)C4Vs36-Ll!8zw>07~^2q-RmzUjPLDbsKHXkLj? zM>k*fg`K?l&3w!b1r2qpySsyhZ@^=qM7ln}CVDkv>0NngHkFfgl?Td__RRK3$Loxg zo9i&de6H8>G&?<6s~e@3(e14+v|Ms}EKRSs>&{nw-gQ!MeU#BW`rq+ zt=|G-`*8%_+_!5|NIy}}+{YVba9a@KDI-g~oMfFb$XvS=`=PJHcYde|k5>=-?FIim zs|W`p$1Gqzw*F0>b7<^M_7;xkqqDi7Fzk5-934W%Fcb zclQl@M{p_8+@mp&3iySM6O`X&Ay)EJ(Q^{JG0%pmZ5;0JJbyTqnEcc#iRSJ{4J%-% z?7Sn|$ktB|>ozq%?4Yg&g?h{8vRUcmcqPEuBnIJ}9~<7~l>2m{g!HF|87YRcaZ4H> zsQL=1OB;B+=>2x>G^KP){VB3!ubr=! zTW{eqF!tY7<=2>&$^+7q!WV_BsnPFN#}4{A=wUZCQ1~6-0M(%e*ZO`aoGR7izYL-* ztD*OCXCDDYDBSzk(o%_zS9Cga;C1Fbug!}_&mxb@fCYe3^yzwPJTI0@b6> z!U6dx4h%%T$F<27)QZ1`x>(d*aXyJeW&^4I;>C-!)K?|6rK^KQ@K4IA0#HtPe4e?c z?~B3`pZ@6+Mesv9I$*+jmU+YmxCs1RJK5LoPDEfM13Uv`rbkD<#%OnQC-$YKohRXh ziw=`DK*0Bsqll#o{YOB}3*0NDzqq|4@_(jz$^e)m0GVmGnfU*imi%+2x%FQF$$wFm zZ(+5C)t0OLEB9Ahk+KyjTamIADgX4Mdy6RkEuwhK3!*_F^8Vnr0RNWZR_84`+M=T^ zI{H7ww;~yL3#G`&>F~XesJXb+2&V9^w0MLT_CAnoB|tlr9`m# w`{B(`kFK2Cyy0%$GCT#MvIWlnuIFqoT{z9sYBvWjAR%XM9IUI(T>1V#0ECAZ=>Px# literal 10045 zcmeHNX;f3$mJU*-uN1+E2nd7{+Mxu*h>U??37S$AL}ZZBBE=*~3L}sZ5~#9}$Ply~ zKt=(TK_EtiFea2TD99v3m_Z^l0YVZ8Bq4n-&(+;yD2*h{EWkdij_83^Qi$XV+j zFXPhZhY7gM(8pt3#Eeba(+f6f&-G$1O+SA0QTF?{KR(IPP1q9C`J+$z@AAsO=T_vl zC6wfhdFHbzIz{o(T4UQ^QGU9&B`(%}&*!0&rezOK+3_RK@Bi+?eTnS*RM;ue*2o1Oitss?mGTYEp;F5h&$o2>?(SYA#IJDmn&BU+l6XRhdq3# zL?}a9S)t9>tv!N@M|(Zcj43Gl9P+4|Ez@x-@Xm`%+0GGv^6($b#r6CNs_Qs3?}lA_N#%K z&cPsQsj1$r1ECzs1xxQ{WCPRK(aEX)!P|p3d;B$Af%Q6JXvpF6PV3jGXo@~tHoZpM z#&s&@HQ67kF+lPv^&6X=oyri4RcZ{)CK&dncs�{g**|yzu?B> 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 b~r?Ct#!$%tH1v{eKR4V diff --git a/packages/core/src/tests/toggle/toggle.e2e.ts-snapshots/toggle-disabled-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/toggle/toggle.e2e.ts-snapshots/toggle-disabled-1-chromium---theme-classic-dark-linux.png index 617f4fd770b9914c59814dcf4132affa5ddab221..08738244d88eb7f1d6eb03b80ac260553da52c69 100644 GIT binary patch literal 9956 zcmeHN`CF3d-lv(G7N^Br%dJznlv|9cf0p}t?*Df2 z-0ocmcY#2l-ERMMz61ho13rG&z2gVq!bA=G0GBOsm(HC9RdwmkfIx>pZq7e@CqJDV zzMdMiQZzDJ{_5!E>yORbRkTkG%w2_^%{TgWdST!6fwvc?kH$^3bTDSzzO*=Qs!F)iv$NTM z9lw`jb={^IY;CRKrN(E4pX^%>>ieVUX==w-V2EE%oCPTHVLJ=*#wnXtyZa!tH~b_l zYW!wLhj;(FcbA>jX>s9B;K4V3Q{JGth56it67H!;H^OgORaFZFvWHJ8Aqe|Ez#RUn zx3Izo77;u4oLKZk6%2OL^ioqp2!8D6%)q~JS*p0_o2aW zx~m6n6&io-lxya_ybZ>2dmiFT_N5B-VvG6{LqlwWUr@5%pKT)1sravFPR_0v>P@8; zDOdhf&~+a)!1cr?WMm-bKU16UBvePsuBdCqNv~OjM#Uf9V_=sY^&kUYbKuCmd$2?} zynq=$Z+0>t8+$s_<_2~Zi*=btB*KmMEbz#)!d{6(zRyGVvVpYGJ{Kk_gv59zlZHmb zzMX*K_F4hhzfH=xYpFPmX=tD@12%~93AFXyI+|LF!-sdNqQ3v0mGswTUtn2wlm_3K zA3c!meV8#w`tryzbjbCk&gZ|G(CM9lntFMMv0Gbmi^;Fo4{Hz|^W6~$PMlCCk|{R) z(+Ei3A}jC<(~u~+1(3+?p6dW)O*Aoxc}oH95;)T)I^av4ppTR{Q_%+V zwJI!}`ZlY11R_Pr1K8`Y9hMX8q!mNEonc0+DDsIT;Z%{o!MBlDHV0 z_H|7X65m!A9*N9j$ay4!PjRjQ*=)FHj%PrkZuA3akqiic5u&+#bWWQ_x_sC@?P5b} z3V~8yJ~6+GcJ{{`L%Ptkb+>kQon8K&m5dl>lbA-JN-ld7iPV383VRGyHAw#|_xFFF zYzQHhT{>pLP4u6Wj5KKs8UR3fUn$YJJ>fp(PgzIa42L}&dNkmma(CcOOi#7x;I5c) zj#i{BbGHbWD#WbDo(@SLl_W1#^JoG~h4l}8m3gTPO%PxOQ^v>>E38WM;?NOx`jZF!`KxA@O^2{KjG=xMWD^@5mA6>NY%R_DV zMTI!reE^m7dU{|RyZv!-wfU=qQ8xS$Im#1X99Ussdiasz^s(An+DJD&OqaU9NhUK# z_Rn7EdI2=PpO+@Mj?bw7!)I~H?$k+jcH*4h0~CPIfAgL|xA-kM*vI_oXJ&EiE$$`2 z0I_BJdkI9sBYS&TN<<9Pl_IIL59Mh=TcIVXlLP&9hAWJxg=aYOD3Iv-iN55~qVm$p zN=NH}m-(bChuC792?^uBrKCha^%3pmSCUA*anonvKrpwx0ZjfV^ChI5H zbqFLXB%(H;Q6U}{ad}Dj*eU?_$Sa2)UH)^IYLg5F_6lDA{1)R`<*n(MA4#Hu-ODa* zh?4f=)#vu;IqZugchY_(qpVg@a{r)P^9eDu-hSt2`$QiyAi1;4@xbP2UH|y8K3<9) zSQ+YqvFpf5t%?m1ny!}TwBIW~pJ~nH~9u4ZMBWTSVgt#CDBJRpB0uo%}L^>3!cwY8YukCz-Y`$hEC~k zW^@ETO&y)OQji6=k~0)3C$edw97T%(L&qMP>uAuZ#U?c#w_wM(#3v-t##^t=4N2VR zcv2T<=b)q>a~6xG3beU8y(M$41!<5igsk)Y7%VYRLgc`P`)jMI?vLT0wgk*-S#K=Zi6vdLq-NSk62cYzG+d31#7 zA9*s5lU;v9icOYR81qFuCv`r75Yw4p`*c+sF;qpQ7%$Wd7S=|Flg7x@br%Qm-}%+D zY~tA1c}x2+=#ngGejbC4=A88jH88!Eqhi@`N-kQkUka%di^<%qMbYu`FpX3gt(+a91r%Xky zguGUJWRr$1ceNA7qmK3g3S!a<+bgpxNnLLns6$EJ*gVO+uyuUg*N} zzs&H5b*(?vp(bdP^Lrb7wC!2%)y!i9WdzTqKc?u_ei4fZQ?0YFckS8G&WOgOR*;#jh zie!Y>Ql0ON*%OUTW!J6n$+ve1qSV#Q&qc4*xb!l3rD?<7K6pQ?)k+=LU$; zL(>9n9lav4w8zT}Y;Rxl95IRNjp%%?VY|`2mgfk)7G?EWSR9!tlMj|`9bS3hy zA2V1zY+E7o^6`SPVKNV!b%bcX7cdHQNqoMeBFk7Gb=1g+P5^*#F4ZY3_Wgdxr65|6 ziTcTVF|jDBRg%Gbe5$iIEl@SX5T62xoA z>6oNmHO*}m{Q}S91)2#tck2WT^Y=eK%M}suvW@5cmaCc{;e_{dL7b?S-GN`g0jaXV z9o31v-5%u@>=)_!6G%~h>KqDK~ zlUv@f!p-cW%^8o0VvGL!;6JNBy<7`>IIZKS)v{#vT{j!DFW2>mkummOPMJ;q-8y2w zKqN6X033v4Djn5fn?E>MG#zDc{p4L}8T_Ul2G5eB44Tnm-+ zl?w89M59vaDS3Sxnj-;~iIZBDw_Tg`SKd!Rx1F+2bqMV=|0y#kFOT+VbhLhPC~`_B zp8%v0nzlNVP0~#*1^g*cgQPG0p9|d8r|!EibzUp$NbwDR#x$I(6 z{rb?$iyn-RGO5qv^2N8DqIaR@Q~jSW1b~ApU26t&suuX<>-c2Kd~0iRJP-f|6VkR6 z0J^U?vDhdr);7qKlR5}BMCqJk`N&qmz05I!qwrk9?5EPxg6+0uYePj5)FDRNzhxz^ukNoDQRO&+19UYshqi>#wZkA!|=N8*xQ&4CQopo2=rzI9(@QRAI zmz`ZDlDp;A4>fKd@v+>nnO!+mkA?=Nuk^A!tDKXPl7i~^i!h#nql0eCy*>05Tb@3k zsH{G&zAZN;l_RgD96pSdWt{PVLLUwdg)*f=x(mCG_QG7t`Ppw-%I!uH%NS1_&LJa0 z5BDLpv$L|~34*aNdcMvCR#q2*_;bHt<)t?^s4T!tlW!oTYWbr14by-~0b%d)LcPO+ zgeyCr0zU%4L-Ja}+k+rlsV+f|plP|fPP)U6P3HslJsS*feMWLPFKFK`v!svya&K$~ zB6q5i(^tOHHXymmmUEd94Ans#s&+aDa97!aD}8O(A(eY@@YXI%uh$tJ=pQi!t?5o-kLbzrtpjPorc# zGN$JS`P}<22fXstl)6hy(U?BVO-3O&>z(%eI|hoQuC99+U5`U@hN7&SC6$!1_vQGU zCLme>(D{`k&M=_IdB~0>3fBYQk!u-b#XQB+Oam5w?Pv*l(u0_|VhGe5YI#?l8|Z@$ z%e2z=gJ@4|i*66R4uI3p<=>+j+e4$q*EIgs8)5CbcQ0wY0_Qb}b9=Tg(4x`gb3q^6 z+TKbHk6v$^bugRXIyG@2;N8`p7u$Txg8xYf$zwW6lHJHJ5qM>gOw)TUG5?@?F528d z$F$Ye8R!qJlosfT07Pf*Uu=WoPI!(ndO+R?jA5anhmRL@ncyZ5_{Y@- zD9xg-Q~YA(pD@A^#0}9OwLr`QWH<+_i#2h6Xo^#*%Il7D&B@ip0@bT~g(*(E9u4pARGnU?hvn)xR-6&xkI-F~?h-=VWs|`996jG|34yV2NvXr;MYw$S)-! zk;}`=B~9OJ?qc=!>U}%Qa0gfh>`Qd14agmgur@L_E|nCx9HKMmk2cKSkqA{KCDXwp zk61v$n|4^2qYjk4>Wu(SAz&%763j)jM@448R(mVG3ydnIo&5(K4i9}{r`OZd1Fp%L zx>SPv7MPf1>k{ifMb-D zt!I?ie_jA7k6&)LZr*NIV-pOUdts9bHkojf2{)N=lLxFLV`XYiskt)8R3`T=X#%xmQgeyiH5Y1nOL1d*9j#pO zBuC9m9YS1DY!qn`%?xn^RB}Z`LO?~~eVF%;IG^|P`qONd&ar5s7kN)&a(E~k))O*h?AB|IQ(8t(ZHKI|(sATM5|8?ZKH!l13 z=6zdq_E*2i>cQtP>!TErN2BWC{;hU#3Be1C2EGiqIFJ*JUQEGBGbgvKQPIkEfPVA8 zLDEr9Kxd8i9953TG(dZR;aki9XP1ORMo7=IW)jJ@-5(QQt#4>(=og8?I>RSlcSjHz zx#4*Ak&zKgD_iw|qN3p_Qi<4+a%KP-YpDigYZ}okj%ByZ%f%t5G^>c6CU*Ar_}FI; z`p28EHRu`{VTHqwBdyEoJ4zT~;OM+GWugxf=J#H&Ltwg-cqN%8BhFUv23@Bthnkx2 zVdKQhX-Z}IJ&d~9K3k1C9lA$k#5U#VEi_pdWh zS0_ybdV1&6zVx|xdV9WlyETBEnaHCqE-hhz*cHL7;g}2fpfWpQC&cat@*-2-LEi_g zp!>|IC+JmR{qQ8^w(D#t5VN4H)dfnpC`c$R2shBXsLMqniSlkObzlXSwwB!k^@!jE zI^OqGU%wf=idZkprxjug`X67)4*K%@$EFd7tu1B+GkU!#)M$riQ!cbE($I)Yo%X%3 zEOw;~ePmt-15wwmy#9XgbwXfn(sAp?pSIzYxPWzuv{EEm$o;t?sBfBp_pA3ZqaA~> z5F#KOgfw2udAE@wFDB3O&f1TkYf2OmzoWr(S6grNR#A-j)UcTG4m0<;ueOeq@yLDx zJ{y^s8rQi8-Vk&M3~4bYssJ$u8~>O%n3J=(vK;bwgE`J1{cFP}!Bcvxvu0w#_+@ag zM|-nv>}1xBZ5kHrz^6Q!tP`EmR6UrBR#!I!0lp;sw%@zz4#>T4rhhuF$ zNbk|nQEkTHoGdFbDTSu|`zhF&4-#-5>AyJvz+x}L4C}k@IY0lySn->MrYa#$H0o+N zImt2NBJsq=SXg6VmG7y6^wMY_R45{iZi5^dZSXr&jEs*rKEmf1q0?pbr@EmVOOK&y zYJDC!yrsYA{*DKUoK_JFruv_5Y}+awYuTw}7z$cwA zpOw2u3=s)D?K(TO4gaM*>nS=_;vUCL5#+^ATI8ol$YAu=4qo_)IOKx&!wR-}DcoNV zT9k^X2*ZzGFlwq8QLX@RXP&=#io<1kk%Q{Bpa+h)BJbX{g^Z?ULX|=id*cFw=JYgX<{4B zF$)J#U}B;s_r41Hn8nWKv$3SPD}HrB$c_*!EHuOEQTC(ouK5KutiOGFH;TK31Ez(z&qR(k(UCH%<_OLI5Jt8`{ly^HvB9Uxx1z?=k zN+H>+Sclw6xY1bc-aXqgQfysBWuK)R=DUL+1?15>3ct zh7?4SX3^VCDoUE#fo#W-+hwFN>5PmZ$~EPF3Vs5OfJNjN6jE`lrv9Ec`_$Fr_yso5 zy1?A9I!&I1K6x`86?=dr=@H z5Ps&2G;qeiOirT5N@ldr3VG%0i$Hti+6EzY?%{&ZH*?XAl<&-^;x7O0KBsG_S7?($ z(au&mLY;4ba|_Y!_7fAT!X6-6t$YnA%z}QB&6L4p3;Kk6b-aQ7-IK|b?b%y4XZC_X z_W~NWj`W1l{`4^mejy2qyPOOvb|*Grg3gwBr+cG9Lje}0rKfZ3_yho#0zsxpOH5fi zE`(^6;67Ve(K)+Wi_52>Wxn}`4pSM-5OjZ1IlpbNakXt{uyeLo$}Zr@mvw|w0Y3eM zADZ&>%-h#rRSG|+m7^|Jq!kon$O-fl#qd&B>grheJd7adl_F(S``O%jie3|W4dJl;L2(?lBNlJe3Z}Gz zS?4QM=V3 zIc|7$b#(w(u0Ek0+lGj4uK7gVh;WqGi64)2iH$lV=_Z-9gl1fB zrVHiv04HFbG9U-AMtJ~8RUk5`0r=tt(|&IsA6mAc>v(`kaOD~|6J441Dg^s@X69nz z;`Prp;b2Jem!A@)>w}x^6O)tNt`s&VNBPDyfRBXf!gt*ing-VC7#@FOIL4aG%`|dr zM_^WM&DB2w$=3;uzqOLdqdzTwniEdcOXo~!Fx>xPeS0Ef5E22Tx*Hd?qdDEw92CvY z9vpS@c8dS{@3LPn=odtyP>|ZzN?Pw=@q5c395UDf$}!Q^ zoOc+Z2p3EoN363FbP}f=AY_TfpA(m{I(FULX%}iDl6M@x@tiw#6iv zl6fl7rxX6`!~W)hgk*qBa~oH2sq+{}-@I1{%mOY}PAa&(2j| zf$VP!X{y}0yin)YWMLOp{wk=<@O8~XTg}wlw|4;Prwv0S(94_R#*1Op`$KZVs}!u^ zaXk!MoFMoO&nQhYSuXNv1sau7Xfuj#mwaNgodmZQ@Fz|T zr@TM=vLe`&=(-N{mDpUYH1lW?_dEwHK5jiIo2q;F?gcZtb_bl4oJ>#n26(58Ta10v z?))S6oZqa1D{)CG(>Xa4munB>R>ZK7La(xxKEo8&`Gkm(Rh$w%+aD;L;EP_QlRUMtT=hCpcb=`4E{959KaF(`@yr{KCg1i)t)6QUDZK){;usnkk_en?bCwfg=_TA}D z14OZgs7=yehMySM6W=u}JY-NPdW6d{tn6ixRxlM>t-swvn*Lou_=qrsB`Rktv z>XyVyYaie2i(>-&FCe#@u+ta#sk{Ov7ickgfa3*h0wF?L|Dj`Fq7$l{V1Ija)KFPO z#~wVOA*CJ`Ze7-ToGnR(aB9S-|ILn!`?bEYP?ojUo4Q&Dp|Ty(1z}LjZV`%8;GF*5 zqXR13%?Nq(NqaNkIN@zW14`6#v#o>ir_$uj#orv~)Dr7Wtx=uV-_Q=L9l<3#Qr^9L zr)!rLQ&-YbQ*MU^s80ux8keZ4Gn!Y+8zCr0uuqawSUTO_qN^_e<<$Kmde5q2y~tJN z?SKfVf_qJ+Kxtnz4*MlFb?~6Tf&^%+{enn+qvMWdauVRe_4Kd3uWmS9JBS~T0R-HR zWiUiq;Wi>((!JP*25jtB+Mx=L6mTfd_dg^9d=J%59e5W$KjWqaJpGTLW?08v`B0Qa z6(hzCKb#+5ee6T#X*otHRJI3q(s@up-Yu7F? z9rO#_@(T|^0Ut1XIwi=FvADM8c@A+uK!c(!ilh(V{ePY^?+GI6o#;J(zuBMfz)dhw zBJBQ-WfHhHR!!}2HBMwoPxp=R%O7Z;#GvXgjKA6ur<_vqA&M^QftxqfAK3j4Aw zp!ZMso5QMF(ZQOk(J^3p(4oU%IH7C{ST<BPuS5fAkXm}=o^sN&`AlKm_SX!C1N}`o!TkN6 za`^4(?&WSacEPY)3%gXX%Y?g3xXXmQOt{O0yG*#tg#U3S{2)%x0D%q^E58NU1>`Ou z|Kot%1>yfa5WZEQXh(igYMKL^a1PfrUpdv)xThS>egD^2KG!`#$}^Upry%7)@;%Ev zf1QsY_x|-IQ2#gI0zZQC|Nf(L*u8N#IZ7Oy)7Ih+Ke$x#a7OO}>K$%*ph@w&qG6vEjLsbMvP^KtYK;|(CVTjgG4UiC9MG%lw zq5=&NBSM%04un)00wOaZk}wB?VGLxtJFa!_xn9V63#&6}f<3>qCs>7gl>a!x$jFF{ zJF4UP$K##L&JTaQ_q48yQ<=~$+Yr+ARHN3GAsUs*50sS0O<%D0gOA>yvnlF`qz`TY zlS7__75w_&HU{Z0d-eDl5e|FcIL@0{W5kynGWAr`rv;g;m?P-hA!6IsXj zi+b5avygHIS6*IjqLp#>;4bnRlS7kXsSk7B&j%Uy_#JrvFiF!wCi@%_S{4kw5FlZqnswWktso1+0%=Nqs8OFNHs@L?# z^4qFq!3tytX=2a~dYwK9rub6IM>MhCM59yHB2~88-xrBQ)eG5;=~!ttsrjFOLh2WU zNun;SY^9n%fpX6~&hRH1%EZfk6~S}$hVPP-JzQK?*tT-#WSwtUwzD0?1|bI;_5&9c zkqx;98X6iIYqb@$dt5KDe(U^wh}^Ew${k62gvp`wL30?)wkTqSNbsmD_p9i~ds4bP z^*vUE9BmKSlAChkvt^!SD%C904tYMmVysk0M@PJ>DW62wdBhbz0w89* zfA7hXg|^5186!}2_Y;XBqZ9OI|!EgcenQiN@XTJ z3?LVUw&*GK?-x})Zojr7T;XdgRuLju8QleeK(MI2B@^^HT$j6j;#r|DjKu8?s@QGD zkcQ@`4jfo`2?t=r`poYFWQgnZRBR{WT`1j&uhYdQzvHFH462N5Rgc=Cgz1Q(1k?pe zclG@IDgHy@7Y@>{%GNUJ5({YC)6S44v3SVqB7s2g z;Fw%{5^sCoyG*OGS|CKr2v+>J3v5DO;}Sil?V^`c$%S-kJ}2mo%U<;w$qHV1m+2Th_K{|aL*#LnF7{5jX`KgV z+hUj)?oQF22ykem+M#AMXYKs+vr_;c?{WX6Lc%SyqL#S6o^bu*e&DCWIkmK3fFi^u zB70pVqzE-8EzgR1%nM<&)c5yAQ+{7t9hZr#c~ik8 zqDYixl6@*>%&2Hs+pf)Q<#AcY#(%rU2lw}fSOmlGvkb6%jraSAW_=ot9UhJ7d*N_$@TBPVEj3mQ zD>8F`0mirhGhP!y9~AKiv099*lQV|88GdzKqBgQ#PaAlc4Pr<^LiGmwIR&Pl{#r^TgZWWC>h=;~8D>?*~2s!4;#@T&_zqb>FjTzr#95@UGZ zU^Ud$fv<=p5`~Tu!kahcVqSl+`(SE(JT^RO@{hhsi7cej8+2u{_Gu$@Zae-Espw|| z-DY|S#f_q8+t|b|54(K@DUnGq#oG)THvEvvnuPynh8Zrd^yK9hmD6|suNq4EQ zCJYtMSb8olA`Pi~`Ndp@(NkRUczkniH-!g200vF9xZ~t@$2v3`+YTU`^YtWFh)8gr|Y-hkGWSzbe_Il}uFyOU;%=9PXkIvdnfIYlf z)Gz^|7)PCNBwAq?)^v0xiFXZU=j&H{29;eo=3)H#mIl3Bw;odufn4Ex(muonYa7`s_s7RTcul{39{fCf`y{0}&J*DajOnysh07VTFaZ_s4olMNeFx zr^;Dd4ATH$So%^=wQztE$l5^itK(!QrAq2__UysWrA$2R!wjA_x3n}EG{9KY*46QS zda?F<_sZpUbmmmi5P5N-Eon=Jd zPWmwV-KS(klB}(Iq&AE{NKZCJ3J3HX8FOkeOs@t#pQt(zT~ER!(&gRUUU8GtjIKdu zUPEF^@wt6yDM=0LZ5r9=N2rI=FY4XZY|d^CPy3 zp-UB*i(kPp^(x0HO{{c6tKlyM@yH6j`ObC$Uzn5{*H;JI1c5{^UYdvKWGt$ET21%p za^xK%ri_x$o55>-p9>80q$>F&QLDCjKUGu!OV~37coe{G_~SC8=Sfx4RF+rZY;JeV z#|aOd< zSkd_k`1L12AJfK1H%jH~9(4nWh-8Nh-8VRXT32cBrY0wl8KL=YblyxwJ1(|HPbQPa z^z1J3h@i(!l0Oorgf08!VUsBx`^M}Ims(fYj5Ba9Z8yy^uz2HV-@vMuB3!m}0 zj^_$*NEukzvKEXA%yfJb-9$-KrA3o^5s0T1y_fL2&TTt(-(7Qj3YFk4v3c7ooP&Q^ zkbFrR3U_Z7i_xzJW_4hnRcuY~+<7jC9j%3X&myJ#M(N^TDF$e-xsnNNJZb_+Y0vta+t&FY$Zg+RWKfCTR17ZeBI>9wG>o-bwI$XB;9xX7NbCU?!nparO z&14&!-6-zD;BIbL^Y#Vo<1-+DI`}+#RVUG%jnWZ8@k_$B)W{A1SYy{@{@!bb}tysw4ZuU)p4y+@=s%4nBI& zGBzogCDWl{~{5IMAtG;A}~?w$`9@~A0Ndpdozo>r{jhlc<*wKW!H_hBaQFI z7Eku&j^y6iqViHGET24(&A-d#+VYnTlV1c6a5I143g#fmMmQcfhRi|t^@GDOYPb8VJ?K7Q*KEtuVKop{>Kt+l!^p)vE;JAQ?dGhMMzf3 zev+oluuO#m!qssHI-PFy;n_I=1ExbypM%96RwjW1hf*LjLjPC2(}J?(wfj5BMMc5h ztzz_8TevUsJyRr1vg0=jS0m~r!|h5}qjM9jgtd|a9YYe%%rE|py8d91&FWK)z~q3v z1<7muA(naOwzcq7Sss^po()5F#0BTRzgcvw-TBEGYaSbGY5VBCGG>87;%h22yJQ7| z?~lmY0sR&Di^B!j5vKUVGlcgG^sbmu5V}1)YRK#$aWIY@!`d%6fX7msElss{FCHQ&&$92S9TL!msAgr@@Zms{7q`#Cy28F;>#jLIKF2 zl)x*ax?DQiMT_D_g9HqnD#`qspSzH0ldK(pDDxGgMG)-_j(R0Cu?!>*ImJEW@kY0R zE*?L=smnlc&3Ujkfz?E?^3^87MHhyWxH9Gcg0$KJH8d_B@G>JdY$`XZ+KEX@;tx=$ zcvpiYm;shoQoOj>bbv=Cv z@zm5{Iw+~MT?c@%jSaUNPF!J>Tuk!v6J-HpjYJh#3AU5N(FZ)mQOcz!ot#Q9nQO8l zhcy)<3WBvd5t(LIkmBi!9<~v^uDTmo=uLQY^JevE;kNA2Js9oB*huNf%?J@2USrf# zdRadkfjM#Epnc3-$_gu?*I%EdUuUCC@WlP>IlQ2pVcQO0$> zQND5A^`%2#GvjjwwZlJsVbI}fcyjVIZ)IDVe^l#%-@o0y!wJDfc>SD}&b*FgkDq}i zV%ftXmbP`|aM~q&Wtf(H;F_zz%@)Y}9t{mBX=9Sf?Q+LbzY2_d(GS6-Z-84QYaLoW z@LF9xtDt~c4G(v6deHK$I38^qCelzR?^Mq^$%YyB&&L)&D%F{hy6iLcIyBUF+5u_7 zeyVY6)26eNUtF|~Z`u@>j&*(K28R1wapiI;1TT*MZMf-&BkhelbK8PIBq0PXbWr+h zYwH5WI?g<3>GB{8$}a4{93sDKyB4pwgirY}^;#xNF}Ln$+<6zd6FSw}F!Bcwyt|Ay z&d)w-0DXyTSeWfRsw~?t2_K$@;Bm#EaHr@eyY}2pZ3Bh&k_$AK5EPF>xt3hOgMvKk zq=%+z7vFVkYx(Wv%Yf5`7~CU^yf!c>fSD}sY*PUe@!%wr7->th&d#y8UvvHcuG)>N zQ-?Y&zs}qaHVp7MuytX6w#)$e+sAVznyQ^XB~B%;MpsT>jt_b%%~4|dlTXVLh)Z(y z(Gu@6XZ}w`6Gxt(qv?P@ifRROnT!5+ogJY z@}Op6$3+~7yCz7K*+5AtY4d*%A8p-Y3sKhf5ZC4!jIzC#1KFx<)4sW(Y}Oyw(O4(L zx-YCt!MYNzE8)5lt}EfX60R%Zx)QD{;r~*?cc&2lfj`fF&c2Y=VT-?RZV9r!^QXx7C0d%J5?a*f9|G``n3;rU}gQo-cl z;{5{j!>^y}>z*Z_#MIILrE}>R?7W$i*``f5-aLBrh!>YIv`BM~C@@ILHHg^Y?d9bK z`SphiGpAjXnFmhzemI%@w2V9iohknrQ+FreNzK5k%J^%V3H-D30fGx|pYKe|u$wvI zGy^cc#xbAhllZmjf3M#_G}eIjdz&@e)z>?;|DRo29-RNq_ynytD~Mt`pX_3o?PZ(C ziL}e#vXqzRzN>F@T4YpIrvKBO;%oahr@gts7)gKQd{1vy9jlzt$4S%8eP;}>mT+GaT#Qq6)+wPE?b#G!{#vqYqEEcO2M)fZ9&j#a` zUE9}MwvJF&=Qyeuu;_OND;f5zLan_>56T47JC37VfBZPo*ESsQ`}hoz!5A7V*cG0D zPP7X89JK#1r?eNvdOdt5V1JjnX+Mu=x`MaVlk{D+m~alF6I4GPxcTxw+~^O$3*`W($Nj zIGCGg3Wm8_a$XlMp~9jvcc@sFx%Y$!PfxJ!m1Xbp6iP43iyoBUaW82k9ci4-oFp6!%s(OL*qF0yTGZH=LL#R-KRp>&yA9$z^d zeue@QZFFlmx-d0()S8O>XV(=;ZS{)g)@{&uMW+4NS!0y+!9KS4fw9rB$VmItuWxZ- zs0w<=3^K62V;`8PF?lzlq%+dC#E$*`eFgyL&6{uI9TP7l9B_1WEJsCEbWQLgZNnR9 z#~Ju_(t$13Om8S*he#v>OEq~?Shvrr_nP0_+}z6)O`~pVW^hd1FQ-NY84pKnen|Q( z`9O2!dzx?9a69ars&&z^@w`d2X|B)iB7#($G&(3lUbP>%6kw` z1Z%Ai&JW8n(l^ebN5MGbJxh?0Dx9oX6rq|INCznxZwy9OP}HPDjS)ab3vml217%6B zZchN(hLUC__Ns>X5%D63h&}e;;^x<)bR&wszOiFvSL96(kK6d@>UhDcc(`Kn`o^%7 z6z7-*WuKf?h-snoLv-p@4Hi>`;bwiqD=waiiHWRR^Ao|YmFGGIXX!ysUyi79{>%UA zfz~VUh`pnJPXmMzTF&~@3|VRjcCk!4PhCL|T zPG$kDbX_?JqfU{oVZR)a^!4>2J6YSdFgWy3DwN+X7$?Jn@e&xk-SlG?a~TCa(HKf% z7boulKV9+s$ZULFJb$W(A)3cxt<(UBImuZ292Q*g)71vZ6=VrSTU+~VOwJiHzqGM& zftx_OlA3frhG z0RNXY_eCu05F;{d{xp`05#ZdEn0{?(<8;czgPi5Br6keAh~iBAx|@DhxkBLbPgLpjwcaryRwl3JCW5`=h?}48yg-mHdPdL)_v&Kwu#aPiZRJWd8r`r%Sh5x z+I?Z#{m^ufsBR513tm^R!Lqj(l0W6fj&d5xB2ybst+=Hps%7gqSs}(VHnyXLQ`%L` zmc}%jQUglr>!Y|-w@&BsdevwXk;Zj4ckQKHZrFIc6h>xt!9#T;illG|#Kz7}w+TNd zs{)Z58$S;zZj`^-$JWxCCPkli)~QcaIRLUPz_P~UI9+frKu)|uHw4{V2~&c!Ka;7tz| z7ZgkISW;1uj`VXUfhcp6|G;9i!v^<7iIyf@p^c3c>RwTq_P5MO3E#nH^@zw6Q<(#9!>fqQM ziflk<1&^1uLyMh+SYt`;r%x+VH!YQ&m7;x7iV+MN)({p?N@vJa=0t1*`lHMqZ<^aD zr4Es~Z{v+KAC5pE(gmk!=K9fMT+e<6k$AE?L|-Jzm5+%|3p3iR(hurg*q(nhI;%-F zgc0@&6v=8n2}vEl*OT0FfyS6Za!YmQvBU{B&4o~n_2qYW>rznyNOAp4M(yYXA{+F# zvxy*l`fggKls+i|!XiL5I>pq_kMzX-)dAR=<aJ`rS~@(Lm-4@2~Mb(<)+sRrCJo>q-Ap9JfEdn?2l!igNGQZX1~T-z{R?mO!@Fz zt+38p+tlgl%UvkM2uNV4BaFptDwBJmUc@IUtYYMEM#I1`$0H&l8Wdj^3e!Ieei;t8a`{@DW#`L2jWcYDfZ^4Trvx@kRq5+?}%c5KQ`t~XHQr~c= zsqC5|HTSa57rUBoPIIpa>Vg(Ks0w1v*p=$1PDxPpMf=G zd)zP-s;LY+_B0>^{iGuMdUNx;(FSz_F&Mdi2XsXP@!Sll&#x>2)2kFhZIZ%5mU=Tw z>+78|n8=XCclY#-j7X;wryNI$53A$+WVc{#io4~`5%Fc1@ip_`kyT0U{8Rao+Q*MS z$uEso%A2*O3uoj-I+i1!Q1`3M+rw;NCw?tt7sM9vKz=YYJP3&!L#d&~L=eD8+k77G zuk83Gm{MGR2-uoZ9*X6rm?df9xPSb?d&@}t%H?)6e*JKlia{ryQp$XfCORZkm-%0A z74`S^gSxJ03b@IG>)L^z|{KLtbPT z6DXg!35@$yVbF|5U}RM0$lBO-Rvn$$hMM(|maW%C7Yll55wWNTpRC0=nIyBix_W&h z4)ru3tI2WYWv#f}h@>38T;5R{V8vOqda;qi?@&dC=Xv9BxC9KEIn=l;oI72Z*dz1y z_Ad2*>O~+3ZWQuU0FF(>GjSc2?_tC@#vU@?*$4CJa4f1cE~(bV_Fp=g(LCOesX#T= zZ9o#xBBt-EtaE+hIOpIkX}2rP3Mwhlsc)1#=W5A2eM8e6>QHJ_1xTTpx<3!^%he3Q z%}qH?KR_R`1e?luB04;%6$H_1#D7Im`%SA{cwl93!wNg zmQkLwO4tSrr%pZy=kwXT4(!X409U1;N|as`AL@`qtgPhj^=$d7T)BgAs!g*K9=l2n zAln?8xqomTcox9b5h;vZOB`~V@s!rnM7VUKva|;1mA!0|hGeP`-_=FQiX-qSI2``+ zep^+<^v6dI&JBcn=3sfl*7saBbThpP@15<3>fh^TM&B-+nEO8IJ(?e40wugStXzJK zV6%%SvznV9%hlq2eIqo3$E%VLoP!(lfxz@e6dIIo z)M>@VwCzF&DcrS46xeP@QmYgwTv8Wa-;{Fer2N)r#8-`LH@x~Ey{0!Uk6~`)6|qG$qNLy>{)2( z1eOZ;MbxjL2b?=w?sHAYuF|m-x`}_%SqFGcQ_4P=|ifQivJQ?QoU3J1hPw zRnHXgfh)RiME*gKN}BShw5Z-*S63(O&X3J{QiQcD!cV1*O^y+1u6R}!W=~Pfl5<~w z8vwXzZtExVXpSVrk>tcMCHIbido~Uvi{ex}P=c%Z%B}*Thp1m^i)-B%r8n0w5^qWY z`o!y`A-UuhbuEU$n5$X5}ORr(-5iTN=KcTdl`c}mvVqp=w(1=CtIbF!u-!kV$SvSISiBvk($8#`Ci zMi&<~+^pUmnX9Z*d;lZ#3yV_|5EbWXj+IRddBDyRZ$q)RYHhWbeB?;qoTRp#PE95Z zBu;SR7R!pWgDARM&hj&0uL2vB&!vd(<%c)a9|0+A{Oo;5Mq_MeR#wibP<_I#Z1{e5 z%I!f9%Ggw1gU9%f;tx{hA7a#!a~>yra)@@+kTx)O(Jq=w?PlwTYZ(4&Dvz>iYRNZO)&uYjW(LbFM-R{Sp!rUK;OqbnMg0B&4}}MvM;Bcv)dO zM}a1Q8W8bPhqS^kqx9&KmzQ;SD+_nd+UJOt;S1F}XMo_%(UaQmip*ty*Rr$&FbywH zP?GECi{Gqlkp`{v@bC`d!GO9@sTfw&BQ)A-sJgrCP^Ws%K;2EyPFI2A&rv4N-<9jd z&2UT4Ez3wP%0GDKuH^%vIm+BdHd@kr=a+8khsOjjB8c9G@3kGbE%5 z)Yp_CwFZ{??`u_WI-0Bh9IS^l!P;c;XYYs~r5k|7s|=QzOfiLQtkmQCSpnW%E@44u zBRL@Bv$C_jDWN2vGDC3i0Mh2}$&JbcG}@FuTkQLHyqGUG{|1480|6F`J(@zxN%IFw zBGV4Hig!1~ww4?siJ9sM{02K%ub~eC(u7QD*g;RmKRvzMOmpD`rPLw^8AL^HvwWlTI@lBlY+eLaB%*y9H2=^)s;%V;(* z^jj@&uiNIR@$LMG%`S2Q-Dv#etML!@&@KNswtBf5jn!mW#lk8TtTN#$6RtAhDif|U z;VKiZGT|x{{@+Ykm-5^}Lu11_^|t`4l@wr$)k5;vDrf%3bLOy$9=7q2dZTYDDAQ6M zuh$R$W=Weho78v1)_(gahxL!|)mK^H9aA^@+P|rrANG9vQs<)Yw}Y6~7ym { + const container = genericRender('ix-toggle', args); + const ixToggle = container.querySelector('ix-toggle') as HTMLIxToggleElement; + ixToggle.addEventListener('checkedChange', action('checkedChange')); + ixToggle.classList.remove('ix-invalid', 'ix-valid', 'ix-warning', 'ix-info'); + ixToggle.classList.add(args.validation); + return container; +}; + +const meta = { + title: 'Example/Toggle', + tags: [], + render: (args) => toggleRender(args), + argTypes: makeArgTypes>>('ix-toggle', { + validation: { + control: { type: 'select' }, + options: ['ix-invalid', 'ix-valid', 'ix-warning', 'ix-info'], + }, + }), + parameters: { + design: { + type: 'figma', + url: 'https://www.figma.com/design/r2nqdNNXXZtPmWuVjIlM1Q/iX-Components---Brand-Dark?node-id=225-5535&m=dev', + }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args +export const Default: Story = { + args: { + disabled: false, + }, +}; + +export const Valid: Story = { + args: { + checked: true, + disabled: false, + validation: 'ix-valid', + }, +}; + +export const Invalid: Story = { + args: { + checked: true, + disabled: false, + validation: 'ix-invalid', + }, +}; + +export const Info: Story = { + args: { + checked: true, + disabled: false, + validation: 'ix-info', + }, +}; + +export const Warning: Story = { + args: { + checked: true, + disabled: false, + validation: 'ix-warning', + }, +}; + +export const Overflow: Story = { + args: { + disabled: false, + 'text-on': 'Lorem ipsum dolor sit amet consectetur adipisicing elit', + checked: true, + }, + render: (args) => { + const container = toggleRender(args); + const ixToggle = container.querySelector('ix-toggle')!; + ixToggle.style.width = '10rem'; + ixToggle.style.height = '3rem'; + + return container; + }, +}; diff --git a/packages/storybook-docs/src/stories/utils/generic-render.ts b/packages/storybook-docs/src/stories/utils/generic-render.ts index 4ef2ee919f..a8de5c7964 100644 --- a/packages/storybook-docs/src/stories/utils/generic-render.ts +++ b/packages/storybook-docs/src/stories/utils/generic-render.ts @@ -61,12 +61,18 @@ export function makeArgTypes( return !ignore.includes(prop.name); }) .forEach((prop) => { + let attributeName = prop.name; + + if ('attr' in prop && prop.attr) { + attributeName = prop.attr; + } + if ( prop.values.length > 1 && prop.values.every((value) => value.type === 'string') ) { - argTypes[prop.name] = { - name: `${prop.name}*`, + argTypes[attributeName] = { + name: `${attributeName}*`, control: { type: 'select' }, options: (prop.values as { type: 'string'; value: string }[]) .filter((v) => v.value !== '') @@ -76,8 +82,8 @@ export function makeArgTypes( return; } - if (prop.name.includes('icon')) { - argTypes[prop.name] = { + if (attributeName.includes('icon')) { + argTypes[attributeName] = { control: { type: 'select' }, options: icons, }; @@ -85,7 +91,7 @@ export function makeArgTypes( return; } - argTypes[prop.name] = { + argTypes[attributeName] = { control: switchTypes(prop.type), }; }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e291c7c8cc..a968e5c621 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -956,6 +956,9 @@ importers: '@storybook/addon-a11y': specifier: ^8.4.2 version: 8.4.2(storybook@8.4.2(prettier@3.0.3)) + '@storybook/addon-actions': + specifier: ^8.4.2 + version: 8.4.2(storybook@8.4.2(prettier@3.0.3)) '@storybook/addon-designs': specifier: ^8.0.4 version: 8.0.4(@storybook/blocks@8.4.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.4.2(prettier@3.0.3)))(@storybook/components@8.4.2(storybook@8.4.2(prettier@3.0.3)))(@storybook/theming@8.4.2(storybook@8.4.2(prettier@3.0.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)