From 79a3fd00dea5ffd56b885a05861d34341437bba4 Mon Sep 17 00:00:00 2001 From: Maria Hutt Date: Tue, 9 Jul 2024 12:44:44 -0700 Subject: [PATCH] feat(spinner): add size for ionic theme (#29699) Co-authored-by: Brandy Carney --- core/api.txt | 5 +- core/src/components.d.ts | 8 ++ .../{spinner.scss => spinner.common.scss} | 4 +- .../src/components/spinner/spinner.ionic.scss | 38 +++++++++ core/src/components/spinner/spinner.tsx | 36 ++++++++- .../components/spinner/test/size/index.html | 55 +++++++++++++ .../spinner/test/size/spinner.e2e.ts | 74 ++++++++++++++++++ ...ionic-md-ltr-light-Mobile-Chrome-linux.png | Bin 0 -> 940 bytes ...onic-md-ltr-light-Mobile-Firefox-linux.png | Bin 0 -> 820 bytes ...ionic-md-ltr-light-Mobile-Safari-linux.png | Bin 0 -> 996 bytes ...ionic-md-ltr-light-Mobile-Chrome-linux.png | Bin 0 -> 794 bytes ...onic-md-ltr-light-Mobile-Firefox-linux.png | Bin 0 -> 700 bytes ...ionic-md-ltr-light-Mobile-Safari-linux.png | Bin 0 -> 830 bytes ...ionic-md-ltr-light-Mobile-Chrome-linux.png | Bin 0 -> 682 bytes ...onic-md-ltr-light-Mobile-Firefox-linux.png | Bin 0 -> 530 bytes ...ionic-md-ltr-light-Mobile-Safari-linux.png | Bin 0 -> 667 bytes ...ionic-md-ltr-light-Mobile-Chrome-linux.png | Bin 0 -> 1115 bytes ...onic-md-ltr-light-Mobile-Firefox-linux.png | Bin 0 -> 906 bytes ...ionic-md-ltr-light-Mobile-Safari-linux.png | Bin 0 -> 1210 bytes ...ionic-md-ltr-light-Mobile-Chrome-linux.png | Bin 0 -> 490 bytes ...onic-md-ltr-light-Mobile-Firefox-linux.png | Bin 0 -> 449 bytes ...ionic-md-ltr-light-Mobile-Safari-linux.png | Bin 0 -> 471 bytes packages/angular/src/directives/proxies.ts | 4 +- .../standalone/src/directives/proxies.ts | 4 +- packages/vue/src/proxies.ts | 3 +- 25 files changed, 223 insertions(+), 8 deletions(-) rename core/src/components/spinner/{spinner.scss => spinner.common.scss} (97%) create mode 100644 core/src/components/spinner/spinner.ionic.scss create mode 100644 core/src/components/spinner/test/size/index.html create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-large-ionic-md-ltr-light-Mobile-Chrome-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-large-ionic-md-ltr-light-Mobile-Firefox-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-large-ionic-md-ltr-light-Mobile-Safari-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-medium-ionic-md-ltr-light-Mobile-Chrome-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-medium-ionic-md-ltr-light-Mobile-Firefox-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-medium-ionic-md-ltr-light-Mobile-Safari-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-small-ionic-md-ltr-light-Mobile-Chrome-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-small-ionic-md-ltr-light-Mobile-Firefox-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-small-ionic-md-ltr-light-Mobile-Safari-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xlarge-ionic-md-ltr-light-Mobile-Chrome-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xlarge-ionic-md-ltr-light-Mobile-Firefox-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xlarge-ionic-md-ltr-light-Mobile-Safari-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xsmall-ionic-md-ltr-light-Mobile-Chrome-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xsmall-ionic-md-ltr-light-Mobile-Firefox-linux.png create mode 100644 core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xsmall-ionic-md-ltr-light-Mobile-Safari-linux.png diff --git a/core/api.txt b/core/api.txt index caccbf316f..f956418247 100644 --- a/core/api.txt +++ b/core/api.txt @@ -2118,8 +2118,11 @@ ion-spinner,prop,duration,number | undefined,undefined,false,false ion-spinner,prop,mode,"ios" | "md",undefined,false,false ion-spinner,prop,name,"bubbles" | "circles" | "circular" | "crescent" | "dots" | "lines" | "lines-sharp" | "lines-sharp-small" | "lines-small" | undefined,undefined,false,false ion-spinner,prop,paused,boolean,false,false,false +ion-spinner,prop,size,"large" | "medium" | "small" | "xlarge" | "xsmall" | undefined,undefined,false,false ion-spinner,prop,theme,"ios" | "md" | "ionic",undefined,false,false -ion-spinner,css-prop,--color +ion-spinner,css-prop,--color,ionic +ion-spinner,css-prop,--color,ios +ion-spinner,css-prop,--color,md ion-split-pane,shadow ion-split-pane,prop,contentId,string | undefined,undefined,false,true diff --git a/core/src/components.d.ts b/core/src/components.d.ts index 1ab52a238e..057be08e40 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -3346,6 +3346,10 @@ export namespace Components { * If `true`, the spinner's animation will be paused. */ "paused": boolean; + /** + * Set to `"xsmall"` for the smallest size. Set to `"small"` for a smaller size. Set to `"medium"` for a medium size. Set to `"large"` for a large size. Set to `"xlarge"` for the largest size. Defaults to `"xsmall"` for the `ionic` theme, undefined for all other themes. + */ + "size"?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'; /** * The theme determines the visual appearance of the component. */ @@ -8689,6 +8693,10 @@ declare namespace LocalJSX { * If `true`, the spinner's animation will be paused. */ "paused"?: boolean; + /** + * Set to `"xsmall"` for the smallest size. Set to `"small"` for a smaller size. Set to `"medium"` for a medium size. Set to `"large"` for a large size. Set to `"xlarge"` for the largest size. Defaults to `"xsmall"` for the `ionic` theme, undefined for all other themes. + */ + "size"?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'; /** * The theme determines the visual appearance of the component. */ diff --git a/core/src/components/spinner/spinner.scss b/core/src/components/spinner/spinner.common.scss similarity index 97% rename from core/src/components/spinner/spinner.scss rename to core/src/components/spinner/spinner.common.scss index 2a8d61bce2..9a8dd1dc8b 100644 --- a/core/src/components/spinner/spinner.scss +++ b/core/src/components/spinner/spinner.common.scss @@ -1,4 +1,6 @@ -@import "../../themes/native/native.globals"; +@import "../../themes/functions.string"; +@import "../../themes/functions.color"; +@import "../../themes/mixins"; // Spinners // -------------------------------------------------- diff --git a/core/src/components/spinner/spinner.ionic.scss b/core/src/components/spinner/spinner.ionic.scss new file mode 100644 index 0000000000..ec673b4bc5 --- /dev/null +++ b/core/src/components/spinner/spinner.ionic.scss @@ -0,0 +1,38 @@ +@use "../../themes/ionic/ionic.globals.scss" as globals; +@use "./spinner.common"; + +// Ionic Spinner +// -------------------------------------------------- + +// Sizes +// -------------------------------------------------- + +/* Extra Small */ +:host(.spinner-xsmall) { + width: globals.$ionic-scale-600; + height: globals.$ionic-scale-600; +} + +/* Small */ +:host(.spinner-small) { + width: globals.$ionic-scale-800; + height: globals.$ionic-scale-800; +} + +/* Medium */ +:host(.spinner-medium) { + width: globals.$ionic-scale-1000; + height: globals.$ionic-scale-1000; +} + +/* Large */ +:host(.spinner-large) { + width: globals.$ionic-scale-1200; + height: globals.$ionic-scale-1200; +} + +/* Extra Large */ +:host(.spinner-xlarge) { + width: globals.$ionic-scale-1400; + height: globals.$ionic-scale-1400; +} diff --git a/core/src/components/spinner/spinner.tsx b/core/src/components/spinner/spinner.tsx index 37c94dbe05..98023babf9 100644 --- a/core/src/components/spinner/spinner.tsx +++ b/core/src/components/spinner/spinner.tsx @@ -16,7 +16,11 @@ import type { SpinnerConfig } from './spinner-interface'; */ @Component({ tag: 'ion-spinner', - styleUrl: 'spinner.scss', + styleUrls: { + ios: 'spinner.common.scss', + md: 'spinner.common.scss', + ionic: 'spinner.ionic.scss', + }, shadow: true, }) export class Spinner implements ComponentInterface { @@ -43,6 +47,18 @@ export class Spinner implements ComponentInterface { */ @Prop() paused = false; + /** + * Set to `"xsmall"` for the smallest size. + * Set to `"small"` for a smaller size. + * Set to `"medium"` for a medium size. + * Set to `"large"` for a large size. + * Set to `"xlarge"` for the largest size. + * + * Defaults to `"xsmall"` for the `ionic` theme, undefined for all other themes. + */ + @Prop() size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'; + + // TODO(ROU-10920): Switch `theme` to `mode`. private getName(): SpinnerTypes { const spinnerName = this.name || config.get('spinner'); const theme = getIonTheme(this); @@ -52,10 +68,27 @@ export class Spinner implements ComponentInterface { return theme === 'ios' ? 'lines' : 'circular'; } + private getSize(): string | undefined { + const theme = getIonTheme(this); + const { size } = this; + + // TODO(ROU-10912): Remove theme check when sizes are defined for all themes. + if (theme !== 'ionic') { + return undefined; + } + + if (size === undefined) { + return 'xsmall'; + } + + return size; + } + render() { const self = this; const theme = getIonTheme(self); const spinnerName = self.getName(); + const size = this.getSize(); const spinner = SPINNERS[spinnerName] ?? SPINNERS['lines']; const duration = typeof self.duration === 'number' && self.duration > 10 ? self.duration : spinner.dur; const svgs: SVGElement[] = []; @@ -76,6 +109,7 @@ export class Spinner implements ComponentInterface { [theme]: true, [`spinner-${spinnerName}`]: true, 'spinner-paused': self.paused || config.getBoolean('_testing'), + [`spinner-${size}`]: size !== undefined, })} role="progressbar" style={spinner.elmDuration ? { animationDuration: duration + 'ms' } : {}} diff --git a/core/src/components/spinner/test/size/index.html b/core/src/components/spinner/test/size/index.html new file mode 100644 index 0000000000..f045932d4c --- /dev/null +++ b/core/src/components/spinner/test/size/index.html @@ -0,0 +1,55 @@ + + + + + Spinner - Size + + + + + + + + + + + + + Spinner - Size + + + + + + + +

Default

+
+ + +

xsmall

+
+ + +

small

+
+ + +

medium

+
+ + +

large

+
+ + +

xlarge

+
+
+
+
+ + diff --git a/core/src/components/spinner/test/size/spinner.e2e.ts b/core/src/components/spinner/test/size/spinner.e2e.ts new file mode 100644 index 0000000000..bb62285cba --- /dev/null +++ b/core/src/components/spinner/test/size/spinner.e2e.ts @@ -0,0 +1,74 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'], modes: ['ionic-md'] }).forEach(({ config, screenshot, title }) => { + test.describe(title('spinner: size'), () => { + test('should render xsmall spinner', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const spinner = page.locator('ion-spinner'); + + await expect(spinner).toHaveScreenshot(screenshot(`spinner-size-xsmall`)); + }); + + test('should render small spinner', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const spinner = page.locator('ion-spinner'); + + await expect(spinner).toHaveScreenshot(screenshot(`spinner-size-small`)); + }); + + test('should render medium spinner', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const spinner = page.locator('ion-spinner'); + + await expect(spinner).toHaveScreenshot(screenshot(`spinner-size-medium`)); + }); + + test('should render large spinner', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const spinner = page.locator('ion-spinner'); + + await expect(spinner).toHaveScreenshot(screenshot(`spinner-size-large`)); + }); + + test('should render xlarge spinner', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const spinner = page.locator('ion-spinner'); + + await expect(spinner).toHaveScreenshot(screenshot(`spinner-size-xlarge`)); + }); + }); +}); diff --git a/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-large-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-large-ionic-md-ltr-light-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..e72e1059e2c2386b03baf56edaaaec0edea8574a GIT binary patch literal 940 zcmV;d15^BoP)Px&W=TXrR9J=W+0RQlK@q zf;Jj}#~-L%{DI0vDbVKTrjC;Tfk+{W;@H?204y&r6BlR~1W-Pomo!ow9v&JA%IEVV zBO~$_avXPcb!8aH=kqDw*52M;V?fu}*9^m88k(j9fq*ffp`jsTHJ?CxdwYg!K7qQs zyD`wx(vr@aBIxq+64UTJpUGtO2NibeP$-0fd_G@YU7h-ds#!=br_(7PWLft0^;Q4& z6gngb!rk4S95g&UY_(c-Zw?d=*YoppY;<&V)DTSpluD(r(f?5UT&;XE5 zr{zOdtJRqA*9QpeP+MD@QJMmXq9{XZ_x1HrvXD+v8UPv_8|CYg$)r9YtWZ-^6B+dQ z`1tnrrnN>C#pmbeia-ExadDwFNDu^UqzGzgXu#%(f)GNxySvJ3Se6Zk!{5;a0s)p~m6?@k2~R&ZHa3)30)WTkiN#`HrNm+} z`Lh&xY;A2R*OQ+Q&CkyhQ&=pP_4V~!E>{U9m&>iKt(nbcVk)(}P%`NK{oU*J5)%PH zZEfxJ^mI5JChq1hFE9K1`%_a>Hk(Z?gV*a-dl_Vq6v1FnE#pVn?e?y&F1Oq5a=AJ? zJMDIR*-J`)97}-^LeXec`CFjsXl`znZ#mU~5JH(uW@Tl?VzGRO!g1W{>gvU)DDyhkqS7WvS O0000>Y5g-CYfCvx)B0vO)fD919-My)rt=*mO*^j%M*}Cg0#huUg z>-XkOPp|j!6(Yys{R6Pf-aiAD2@rpSf#dNgn$4!|Vw2a8WneHEh}~`{4u^xN)oRXx zFakjG>-AbDT`U&G?RJyTE(Hr9n7m3D41fujK#%|yi-j1E$7G@V{k~YOR?d*10eC*2 zqEe{{JX3+>0m7Bg0Cc-uxoGo{JaP;HfL*p)t=uH90jSsO;&QoY0NU*~%ZhC&`3&6e zcd7ko6bc0is$4GH&egn;an3WJ&&6moax(dlggE&;9uKE{KUzsCAx=InYhMA80AQQ2 z&uF;j`IL?&fa!E9X0w_0{`q`%vVjXGY6Osn^S%Vo>2$s+r_jRl*{9FDc6Qc24xXz@M(ZXqkJ z*|5_jIr#u^Xo25SVPi3Kix>F?d$iD*nA*_r1?X_Q-To>G+;Bnpf2f^Sf0$VKO-C}# zrJ^0OHdevRXS3Om)dmY-<0peVo8X$gUe6zOk__OV&>kG=^?GS}Vx$QF{V5Pg9{UkB zRO5yV`U1)u`O!{P8-iC8X|#^C|SK0Dks=};|ftc!PB4KR*5EH@3rwM^^JI9@lc z2UUJ}HP}cyv4%`gb$s6xl1cYJ)HjGII#|o;AlOOtcQ^i$+amnLzu>h3j zxpBLxdg_i2HLi?XKuK*o5dd5a6$2ZTJH;iF=6$#gy5poyml%MuSZJ2pC(rF@ literal 0 HcmV?d00001 diff --git a/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-large-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-large-ionic-md-ltr-light-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd9ffde0104b8185e0b75765cb38bc6a953165d GIT binary patch literal 996 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 IM6N<$f(R~;y#N3J literal 0 HcmV?d00001 diff --git a/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-small-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-small-ionic-md-ltr-light-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..b4dfd2a063686214a64b1a14ace4f43bc38d336a GIT binary patch literal 682 zcmV;b0#*HqP)Px%WJyFpR7i>4mQRa$Q5eUcLv$CntgdEZMoA%>ou-s#F=fMw#De5lZ9@ z%yM3WS1?P31>K}95W@98vB80IO9 zYPE=!&1O4ZG?&XoqR-FI*W^b!{b-9Zu2!og%Cf8=2)|qYWHMnGhFI0>_0wZ#x7$fa zAQ1Q+z~}Q3lgGzLF?a-2Di!HYv)SxV-BYO)nT`M#_@-*QX2)#p-YPTqKHPrUmz_DM z|4#R0&$r1hTJ}%iPe!093OO7OlIMB!>iDPuz{lgUT(4Kz@AopDPNR}25pcmR>g95g ze!m}$M2P?)-|coKu-H*h0;ki-gx_Q&|=m?m_Fu&WB zK#Df>#m;t{iGVLeF=jxO*ck%!z1s;$FkQ5E2Zndj@ z8{!p2+rc>n+a07*qoM6N<$g5ay}dH?_b literal 0 HcmV?d00001 diff --git a/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-small-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-small-ionic-md-ltr-light-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..60932bf8b8a567b7f01c264ac6b3fcde1d60f33c GIT binary patch literal 667 zcmV;M0%ZM(P)EBE-N05M#!~ z6Brnnc>yy+A4xwL5ov=6iRftGL1o*VbI&=Kp2_`>+WqnWt-aRjP9Z`F{H83w>i%B> zG)4AyrlVe!t7*TCG;dB;5hm>op#a8`M}Vb~>F*29!!Ad@P!#N28IMfa!E< zwOTQt*Xx<$eg~vdDePV>7R_?M0VGMn?kvk54hItf768C-IK+Tjt;Vvf$!&_82LPZb ziizPPBSkiw&2W!KqvpCJge=G7@p8EsfN(f$W^w=k09dx$Eq?KMJnuVdnx?Ai9q_*6 zlj`-l$K!zzLI_1sv~V1U=g8B%tj%VFpE-_uC^FCU?^iVvi5PAS!yu!J5{U$6%Ch{9 zyC{m-N)QBOd}x_W29Ngp{de+1ZokK0~u~<9+5JKg08Lyyey4&sk+`ZfF(lm{? zSF2S#bqDCWPPP*OAfL~FTaVptM`i{9AP9o4>z@D+LaM3;0s(Th)9GwBo024bv=&9N z(P-eR8VUx3nx>JPx(6-h)vRA_pbVXEw{aBvCrWLW;hG4Lv(MgOzr>U2R?_>6?;3AOJ(h#>SAXN}UMa=H_P6b_~P5!@bC# z0HJ-t2hh{gqqZ$88UVoc^)(D7NwR2HF`sAv0MTd^-eI*`)$mA00|1D{V(^ad2>mf< z6o%qBZn0QYBB7%ZI+S>;MuTCPDxlKRQYc6W7kDgQg!(a|Ad zR8&;FzP@H|^Ll%GMI%Z|O5*XjlFCFP0k;~r+b!%(-{$r8^@&ELQmLJtoqVoezS-E= zfE#57CU`F|FX5SOZEZ@PQHR3;8=}#uus8Epq@ke!9_RP_l~Jy)uENzn{>8{ZXJ=>O zp;oJvhh;(E-rnl#>)|ILFB0G1->0Ugq}C@%64__akH!;;L}O#4)LN~rt)WmTKjr@ZeoIS>)XH|d zJ&{NtCrZ9-xVpMRcB?;eyWJE;REXE>EfNvKu<7aPTnsrud7cl2LdbVIUx~}*%Dp$|3Kg=x zzAn=Za*xesgIjtbp~9oT`T2RNUzAT{Fc=mV7Lv*2-`17;*2^TBOoqeZU@#aA1`iGn zo}Qj$23J;Awzs#FBuSE_)9J)J+AaixU3NjZ^d=>m}6ujMTk~Ndbuwr&{QNYz|HBl;+#B4VE zEIIGaB?uq20Ta`*hAhU8@ zo{LiM$t|&HV~}#s>-EYm_7tS2U@Dc;dSJa?7pv8ZqjyT1B_I+D6x1!w?&$$ir5Tr! z%;aKHLAYSE+0=gKBLJ!LjQhp6RPYO!;2dho{_1Lly@F1F^Z8tKIvuS}`~5z#R})nB zSI3)Fkn1twVz(7=JRXZ)ub0Rur0QpNyh%VbxY=x$T_=G%q1|q$wOiHCUM=eK;UvlE zDhk_niAs$Au<`(@f;*qji___pBmre}Zn~F+t*|-J(c>5V@p8E&zN?_r3tvbFE}f{7 zElDa;>V=0x0YC&UK<@XuRz+Orzk7U!f&>ccRyv)QZtK7K`!SoKNX%JuQ_1Xyx&%}`cINKQA3W&`B30Jf!>4(Kj!LUXdfcb`hsV)F} zBdI+y`+#zYO&i>gQjPL2ykQt@YENSEO@~e39e{K75GMuw&qeb)olYH0iT@)}2CxqU z!fdz{Kuv{t+-Nw&(Y;5RPeuY%0B{w6x+I_|&`2Zzd*(|=PXWSc#3qaYY+Q;$F+kzv zxyG951wIYv-xwJY*$^)LXfi^Ug$v?GHLFon5C2cBfd0*)teW@Zzz!eUfKVVv_s=Tz g5(VRU<8klt7mypUcL3=a*Z=?k07*qoM6N<$f=}h88~^|S literal 0 HcmV?d00001 diff --git a/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xlarge-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xlarge-ionic-md-ltr-light-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..41e37be72e6fceb55fa6bc9ae2098d8ead608ae0 GIT binary patch literal 1210 zcmV;r1V#IaP)8i~+<5kP?J`eY|iu3mWopa{A z%$NW|2>uHQYb{VJe?@nzu001OOvQni|X_{Y1Wh)HWpp2dnaO_0q=jTsRtoUCX?t9IypJX|2b*5+gTbSk%*!wn7ihU zj*hZQh{fV~JkF+5JytyW8t zWVJ05iA3S2t{iT+8zV}RWLsMsTH4`oR9kdzZVrvBQmL5r&K89bI-O3m0;ux4sMqVo z26eeyg~h&z(lp)O-Hq0fN~Oog$JMY527?lb1dXWI>r<%|rznJQe}5m_KZQc^-A#C5^$^vj3`ahgM)+ECIA2n3k%=e2NH<{ z*H{1mtX3;)(m6#TgwbeJqtS4+rO{}-UT+0wK{lK9csv~)9b7GIwc5wWM{Hfr9~-W( zua!zASBn4ugTb)1wH1rSN>Pl(Vw;iab;*|XqcFoSY2HW z1Ofy>WHK41ZYGl<2qF*&IGs+r-HzTi(6KCH`5RFPVKf>Y8X77dgM~yQ;aVkJSglsB z881~7LP*o}{QP`bfy=_-a9~$Y*`f>w2M5@*;5+E`dUU`1t|)|%rsA`*#) zhlg!8+sw>N#XYQCGzU%7;cz$-iA1B(cs!m+Bme+%xxA&NMXS~7^?HNBQ0_iZ6;Xcp Y7fHA2IYPx$q)9|UR5*>b)xC;XgD0YuA5MTuVI=d zA*56)T`m`hKLThx9-~VsU9DCLAP}ILl-*e}a79#~J55ZgHp6p_EceCzFX39{gsr zi3_dQYn)`WS#mm^@S{*D#NA+7ma&J==Q9BS#u!?$dU~-~U{$qR4f@EoZ4Bk}dCvJe z3gzoB;soL5jY?Jdqqzw1(U5#=K*yxK(Tc5;#vJ3&_5K93opFFH{6(Y85E0@B7Vh zl^3b&Iz1i_ZkCJ94j*6@Yao-0^kB33pve;rvmi~=i4!HG@h$BMJP(54?ew2cCqi!% z_!yaU5s@y42q6&Tf(E`;U? rQdGS(VpsiDzzSSqAb||2ThrEGjSm#KMJWeq00000NkvXXu0mjf=U~Cu literal 0 HcmV?d00001 diff --git a/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xsmall-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/spinner/test/size/spinner.e2e.ts-snapshots/spinner-size-xsmall-ionic-md-ltr-light-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc3f22bdb3854a340d47e2df7bd70633bbb8c5a GIT binary patch literal 471 zcmV;|0Vw{7P) zf-!}NtnGG7L;z5!R16yr007qUc;u6=_v<>HPEizHK!1s1GMOY22}GPur&cnVWb5H@ zco!4|0UsR4xfMH~&%ayXY&Hu3h!}>UdHYwZ72k4Qmw1kb!y%jM_4@0eYPHI@q?8ws zQcAbX^SoCm`fVYEQi>ja+Fw~xO53)%I*Y}EjrVJWRjbt=?f~ESbw&Wt>2$OU>AJJy zIPP}4{eE9ta=Bc&Tu!Ic0I=Whm&@g5vtbt^w%hGqug4t+__o+s^Z8r|@qB!Q5IQ5R zdk_&RrKFUlQt9^EH44{tJj!YlX>zVzW}X0LwDE;t}p-q N002ovPDHLkV1iK7(>VYD literal 0 HcmV?d00001 diff --git a/packages/angular/src/directives/proxies.ts b/packages/angular/src/directives/proxies.ts index bc9b1f2cdd..716420d6a8 100644 --- a/packages/angular/src/directives/proxies.ts +++ b/packages/angular/src/directives/proxies.ts @@ -2105,14 +2105,14 @@ export declare interface IonSkeletonText extends Components.IonSkeletonText {} @ProxyCmp({ - inputs: ['color', 'duration', 'mode', 'name', 'paused', 'theme'] + inputs: ['color', 'duration', 'mode', 'name', 'paused', 'size', 'theme'] }) @Component({ selector: 'ion-spinner', changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['color', 'duration', 'mode', 'name', 'paused', 'theme'], + inputs: ['color', 'duration', 'mode', 'name', 'paused', 'size', 'theme'], }) export class IonSpinner { protected el: HTMLElement; diff --git a/packages/angular/standalone/src/directives/proxies.ts b/packages/angular/standalone/src/directives/proxies.ts index 78255ae950..7084b56195 100644 --- a/packages/angular/standalone/src/directives/proxies.ts +++ b/packages/angular/standalone/src/directives/proxies.ts @@ -1892,14 +1892,14 @@ export declare interface IonSkeletonText extends Components.IonSkeletonText {} @ProxyCmp({ defineCustomElementFn: defineIonSpinner, - inputs: ['color', 'duration', 'mode', 'name', 'paused', 'theme'] + inputs: ['color', 'duration', 'mode', 'name', 'paused', 'size', 'theme'] }) @Component({ selector: 'ion-spinner', changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['color', 'duration', 'mode', 'name', 'paused', 'theme'], + inputs: ['color', 'duration', 'mode', 'name', 'paused', 'size', 'theme'], standalone: true }) export class IonSpinner { diff --git a/packages/vue/src/proxies.ts b/packages/vue/src/proxies.ts index 6cee863eb1..301eaa8d26 100644 --- a/packages/vue/src/proxies.ts +++ b/packages/vue/src/proxies.ts @@ -811,7 +811,8 @@ export const IonSpinner = /*@__PURE__*/ defineContainer('ion-spi 'color', 'duration', 'name', - 'paused' + 'paused', + 'size' ]);