Skip to content

Commit dc430af

Browse files
authored
fix(all): reflect color property as an attribute for vue (#23345)
resolves #23323
1 parent 08a9f3a commit dc430af

File tree

34 files changed

+66
-66
lines changed

34 files changed

+66
-66
lines changed

core/api.txt

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ ion-avatar,shadow
8080
ion-avatar,css-prop,--border-radius
8181

8282
ion-back-button,shadow
83-
ion-back-button,prop,color,string | undefined,undefined,false,false
83+
ion-back-button,prop,color,string | undefined,undefined,false,true
8484
ion-back-button,prop,defaultHref,string | undefined,undefined,false,false
8585
ion-back-button,prop,disabled,boolean,false,false,true
8686
ion-back-button,prop,icon,null | string | undefined,undefined,false,false
@@ -131,7 +131,7 @@ ion-backdrop,prop,visible,boolean,true,false,false
131131
ion-backdrop,event,ionBackdropTap,void,true
132132

133133
ion-badge,shadow
134-
ion-badge,prop,color,string | undefined,undefined,false,false
134+
ion-badge,prop,color,string | undefined,undefined,false,true
135135
ion-badge,prop,mode,"ios" | "md",undefined,false,false
136136
ion-badge,css-prop,--background
137137
ion-badge,css-prop,--color
@@ -142,7 +142,7 @@ ion-badge,css-prop,--padding-top
142142

143143
ion-button,shadow
144144
ion-button,prop,buttonType,string,'button',false,false
145-
ion-button,prop,color,string | undefined,undefined,false,false
145+
ion-button,prop,color,string | undefined,undefined,false,true
146146
ion-button,prop,disabled,boolean,false,false,true
147147
ion-button,prop,download,string | undefined,undefined,false,false
148148
ion-button,prop,expand,"block" | "full" | undefined,undefined,false,true
@@ -189,7 +189,7 @@ ion-buttons,prop,collapse,boolean,false,false,false
189189

190190
ion-card,shadow
191191
ion-card,prop,button,boolean,false,false,false
192-
ion-card,prop,color,string | undefined,undefined,false,false
192+
ion-card,prop,color,string | undefined,undefined,false,true
193193
ion-card,prop,disabled,boolean,false,false,false
194194
ion-card,prop,download,string | undefined,undefined,false,false
195195
ion-card,prop,href,string | undefined,undefined,false,false
@@ -207,23 +207,23 @@ ion-card-content,none
207207
ion-card-content,prop,mode,"ios" | "md",undefined,false,false
208208

209209
ion-card-header,shadow
210-
ion-card-header,prop,color,string | undefined,undefined,false,false
210+
ion-card-header,prop,color,string | undefined,undefined,false,true
211211
ion-card-header,prop,mode,"ios" | "md",undefined,false,false
212212
ion-card-header,prop,translucent,boolean,false,false,false
213213

214214
ion-card-subtitle,shadow
215-
ion-card-subtitle,prop,color,string | undefined,undefined,false,false
215+
ion-card-subtitle,prop,color,string | undefined,undefined,false,true
216216
ion-card-subtitle,prop,mode,"ios" | "md",undefined,false,false
217217
ion-card-subtitle,css-prop,--color
218218

219219
ion-card-title,shadow
220-
ion-card-title,prop,color,string | undefined,undefined,false,false
220+
ion-card-title,prop,color,string | undefined,undefined,false,true
221221
ion-card-title,prop,mode,"ios" | "md",undefined,false,false
222222
ion-card-title,css-prop,--color
223223

224224
ion-checkbox,shadow
225225
ion-checkbox,prop,checked,boolean,false,false,false
226-
ion-checkbox,prop,color,string | undefined,undefined,false,false
226+
ion-checkbox,prop,color,string | undefined,undefined,false,true
227227
ion-checkbox,prop,disabled,boolean,false,false,false
228228
ion-checkbox,prop,indeterminate,boolean,false,false,false
229229
ion-checkbox,prop,mode,"ios" | "md",undefined,false,false
@@ -247,7 +247,7 @@ ion-checkbox,part,container
247247
ion-checkbox,part,mark
248248

249249
ion-chip,shadow
250-
ion-chip,prop,color,string | undefined,undefined,false,false
250+
ion-chip,prop,color,string | undefined,undefined,false,true
251251
ion-chip,prop,disabled,boolean,false,false,false
252252
ion-chip,prop,mode,"ios" | "md",undefined,false,false
253253
ion-chip,prop,outline,boolean,false,false,false
@@ -288,7 +288,7 @@ ion-col,css-prop,--ion-grid-column-padding-xs
288288
ion-col,css-prop,--ion-grid-columns
289289

290290
ion-content,shadow
291-
ion-content,prop,color,string | undefined,undefined,false,false
291+
ion-content,prop,color,string | undefined,undefined,false,true
292292
ion-content,prop,forceOverscroll,boolean | undefined,undefined,false,false
293293
ion-content,prop,fullscreen,boolean,false,false,false
294294
ion-content,prop,scrollEvents,boolean,false,false,false
@@ -361,7 +361,7 @@ ion-fab,method,close,close() => Promise<void>
361361
ion-fab-button,shadow
362362
ion-fab-button,prop,activated,boolean,false,false,false
363363
ion-fab-button,prop,closeIcon,string,'close',false,false
364-
ion-fab-button,prop,color,string | undefined,undefined,false,false
364+
ion-fab-button,prop,color,string | undefined,undefined,false,true
365365
ion-fab-button,prop,disabled,boolean,false,false,false
366366
ion-fab-button,prop,download,string | undefined,undefined,false,false
367367
ion-fab-button,prop,href,string | undefined,undefined,false,false
@@ -457,7 +457,7 @@ ion-input,prop,autocorrect,"off" | "on",'off',false,false
457457
ion-input,prop,autofocus,boolean,false,false,false
458458
ion-input,prop,clearInput,boolean,false,false,false
459459
ion-input,prop,clearOnEdit,boolean | undefined,undefined,false,false
460-
ion-input,prop,color,string | undefined,undefined,false,false
460+
ion-input,prop,color,string | undefined,undefined,false,true
461461
ion-input,prop,debounce,number,0,false,false
462462
ion-input,prop,disabled,boolean,false,false,false
463463
ion-input,prop,enterkeyhint,"done" | "enter" | "go" | "next" | "previous" | "search" | "send" | undefined,undefined,false,false
@@ -497,7 +497,7 @@ ion-input,css-prop,--placeholder-opacity
497497

498498
ion-item,shadow
499499
ion-item,prop,button,boolean,false,false,false
500-
ion-item,prop,color,string | undefined,undefined,false,false
500+
ion-item,prop,color,string | undefined,undefined,false,true
501501
ion-item,prop,detail,boolean | undefined,undefined,false,false
502502
ion-item,prop,detailIcon,string,'chevron-forward',false,false
503503
ion-item,prop,disabled,boolean,false,false,false
@@ -549,7 +549,7 @@ ion-item,part,detail-icon
549549
ion-item,part,native
550550

551551
ion-item-divider,shadow
552-
ion-item-divider,prop,color,string | undefined,undefined,false,false
552+
ion-item-divider,prop,color,string | undefined,undefined,false,true
553553
ion-item-divider,prop,mode,"ios" | "md",undefined,false,false
554554
ion-item-divider,prop,sticky,boolean,false,false,false
555555
ion-item-divider,css-prop,--background
@@ -566,7 +566,7 @@ ion-item-divider,css-prop,--padding-top
566566
ion-item-group,none
567567

568568
ion-item-option,shadow
569-
ion-item-option,prop,color,string | undefined,undefined,false,false
569+
ion-item-option,prop,color,string | undefined,undefined,false,true
570570
ion-item-option,prop,disabled,boolean,false,false,false
571571
ion-item-option,prop,download,string | undefined,undefined,false,false
572572
ion-item-option,prop,expandable,boolean,false,false,false
@@ -593,7 +593,7 @@ ion-item-sliding,method,open,open(side: Side | undefined) => Promise<void>
593593
ion-item-sliding,event,ionDrag,any,true
594594

595595
ion-label,scoped
596-
ion-label,prop,color,string | undefined,undefined,false,false
596+
ion-label,prop,color,string | undefined,undefined,false,true
597597
ion-label,prop,mode,"ios" | "md",undefined,false,false
598598
ion-label,prop,position,"fixed" | "floating" | "stacked" | undefined,undefined,false,false
599599
ion-label,css-prop,--color
@@ -605,7 +605,7 @@ ion-list,prop,mode,"ios" | "md",undefined,false,false
605605
ion-list,method,closeSlidingItems,closeSlidingItems() => Promise<boolean>
606606

607607
ion-list-header,shadow
608-
ion-list-header,prop,color,string | undefined,undefined,false,false
608+
ion-list-header,prop,color,string | undefined,undefined,false,true
609609
ion-list-header,prop,lines,"full" | "inset" | "none" | undefined,undefined,false,false
610610
ion-list-header,prop,mode,"ios" | "md",undefined,false,false
611611
ion-list-header,css-prop,--background
@@ -676,7 +676,7 @@ ion-menu,part,container
676676

677677
ion-menu-button,shadow
678678
ion-menu-button,prop,autoHide,boolean,true,false,false
679-
ion-menu-button,prop,color,string | undefined,undefined,false,false
679+
ion-menu-button,prop,color,string | undefined,undefined,false,true
680680
ion-menu-button,prop,disabled,boolean,false,false,false
681681
ion-menu-button,prop,menu,string | undefined,undefined,false,false
682682
ion-menu-button,prop,mode,"ios" | "md",undefined,false,false
@@ -764,7 +764,7 @@ ion-nav-link,prop,routerAnimation,((baseEl: any, opts?: any) => Animation) | und
764764
ion-nav-link,prop,routerDirection,"back" | "forward" | "root",'forward',false,false
765765

766766
ion-note,shadow
767-
ion-note,prop,color,string | undefined,undefined,false,false
767+
ion-note,prop,color,string | undefined,undefined,false,true
768768
ion-note,prop,mode,"ios" | "md",undefined,false,false
769769
ion-note,css-prop,--color
770770

@@ -836,7 +836,7 @@ ion-popover,css-prop,--width
836836

837837
ion-progress-bar,shadow
838838
ion-progress-bar,prop,buffer,number,1,false,false
839-
ion-progress-bar,prop,color,string | undefined,undefined,false,false
839+
ion-progress-bar,prop,color,string | undefined,undefined,false,true
840840
ion-progress-bar,prop,mode,"ios" | "md",undefined,false,false
841841
ion-progress-bar,prop,reversed,boolean,false,false,false
842842
ion-progress-bar,prop,type,"determinate" | "indeterminate",'determinate',false,false
@@ -849,7 +849,7 @@ ion-progress-bar,part,stream
849849
ion-progress-bar,part,track
850850

851851
ion-radio,shadow
852-
ion-radio,prop,color,string | undefined,undefined,false,false
852+
ion-radio,prop,color,string | undefined,undefined,false,true
853853
ion-radio,prop,disabled,boolean,false,false,false
854854
ion-radio,prop,mode,"ios" | "md",undefined,false,false
855855
ion-radio,prop,name,string,this.inputId,false,false
@@ -870,7 +870,7 @@ ion-radio-group,prop,value,any,undefined,false,false
870870
ion-radio-group,event,ionChange,RadioGroupChangeEventDetail,true
871871

872872
ion-range,shadow
873-
ion-range,prop,color,string | undefined,undefined,false,false
873+
ion-range,prop,color,string | undefined,undefined,false,true
874874
ion-range,prop,debounce,number,0,false,false
875875
ion-range,prop,disabled,boolean,false,false,false
876876
ion-range,prop,dualKnobs,boolean,false,false,false
@@ -958,7 +958,7 @@ ion-router,event,ionRouteDidChange,RouterEventDetail,true
958958
ion-router,event,ionRouteWillChange,RouterEventDetail,true
959959

960960
ion-router-link,shadow
961-
ion-router-link,prop,color,string | undefined,undefined,false,false
961+
ion-router-link,prop,color,string | undefined,undefined,false,true
962962
ion-router-link,prop,href,string | undefined,undefined,false,false
963963
ion-router-link,prop,rel,string | undefined,undefined,false,false
964964
ion-router-link,prop,routerAnimation,((baseEl: any, opts?: any) => Animation) | undefined,undefined,false,false
@@ -981,7 +981,7 @@ ion-searchbar,prop,autocorrect,"off" | "on",'off',false,false
981981
ion-searchbar,prop,cancelButtonIcon,string,config.get('backButtonIcon', 'arrow-back-sharp') as string,false,false
982982
ion-searchbar,prop,cancelButtonText,string,'Cancel',false,false
983983
ion-searchbar,prop,clearIcon,string | undefined,undefined,false,false
984-
ion-searchbar,prop,color,string | undefined,undefined,false,false
984+
ion-searchbar,prop,color,string | undefined,undefined,false,true
985985
ion-searchbar,prop,debounce,number,250,false,false
986986
ion-searchbar,prop,disabled,boolean,false,false,false
987987
ion-searchbar,prop,enterkeyhint,"done" | "enter" | "go" | "next" | "previous" | "search" | "send" | undefined,undefined,false,false
@@ -1015,7 +1015,7 @@ ion-searchbar,css-prop,--placeholder-font-weight
10151015
ion-searchbar,css-prop,--placeholder-opacity
10161016

10171017
ion-segment,shadow
1018-
ion-segment,prop,color,string | undefined,undefined,false,false
1018+
ion-segment,prop,color,string | undefined,undefined,false,true
10191019
ion-segment,prop,disabled,boolean,false,false,false
10201020
ion-segment,prop,mode,"ios" | "md",undefined,false,false
10211021
ion-segment,prop,scrollable,boolean,false,false,false
@@ -1147,7 +1147,7 @@ ion-slides,css-prop,--scroll-bar-background
11471147
ion-slides,css-prop,--scroll-bar-background-active
11481148

11491149
ion-spinner,shadow
1150-
ion-spinner,prop,color,string | undefined,undefined,false,false
1150+
ion-spinner,prop,color,string | undefined,undefined,false,true
11511151
ion-spinner,prop,duration,number | undefined,undefined,false,false
11521152
ion-spinner,prop,name,"bubbles" | "circles" | "circular" | "crescent" | "dots" | "lines" | "lines-small" | undefined,undefined,false,false
11531153
ion-spinner,prop,paused,boolean,false,false,false
@@ -1169,7 +1169,7 @@ ion-tab,prop,tab,string,undefined,true,false
11691169
ion-tab,method,setActive,setActive() => Promise<void>
11701170

11711171
ion-tab-bar,shadow
1172-
ion-tab-bar,prop,color,string | undefined,undefined,false,false
1172+
ion-tab-bar,prop,color,string | undefined,undefined,false,true
11731173
ion-tab-bar,prop,mode,"ios" | "md",undefined,false,false
11741174
ion-tab-bar,prop,selectedTab,string | undefined,undefined,false,false
11751175
ion-tab-bar,prop,translucent,boolean,false,false,false
@@ -1208,15 +1208,15 @@ ion-tabs,event,ionTabsDidChange,{ tab: string; },false
12081208
ion-tabs,event,ionTabsWillChange,{ tab: string; },false
12091209

12101210
ion-text,shadow
1211-
ion-text,prop,color,string | undefined,undefined,false,false
1211+
ion-text,prop,color,string | undefined,undefined,false,true
12121212
ion-text,prop,mode,"ios" | "md",undefined,false,false
12131213

12141214
ion-textarea,scoped
12151215
ion-textarea,prop,autoGrow,boolean,false,false,false
12161216
ion-textarea,prop,autocapitalize,string,'none',false,false
12171217
ion-textarea,prop,autofocus,boolean,false,false,false
12181218
ion-textarea,prop,clearOnEdit,boolean,false,false,false
1219-
ion-textarea,prop,color,string | undefined,undefined,false,false
1219+
ion-textarea,prop,color,string | undefined,undefined,false,true
12201220
ion-textarea,prop,cols,number | undefined,undefined,false,false
12211221
ion-textarea,prop,debounce,number,0,false,false
12221222
ion-textarea,prop,disabled,boolean,false,false,false
@@ -1256,14 +1256,14 @@ ion-thumbnail,css-prop,--border-radius
12561256
ion-thumbnail,css-prop,--size
12571257

12581258
ion-title,shadow
1259-
ion-title,prop,color,string | undefined,undefined,false,false
1259+
ion-title,prop,color,string | undefined,undefined,false,true
12601260
ion-title,prop,size,"large" | "small" | undefined,undefined,false,false
12611261
ion-title,css-prop,--color
12621262

12631263
ion-toast,shadow
12641264
ion-toast,prop,animated,boolean,true,false,false
12651265
ion-toast,prop,buttons,(string | ToastButton)[] | undefined,undefined,false,false
1266-
ion-toast,prop,color,string | undefined,undefined,false,false
1266+
ion-toast,prop,color,string | undefined,undefined,false,true
12671267
ion-toast,prop,cssClass,string | string[] | undefined,undefined,false,false
12681268
ion-toast,prop,duration,number,0,false,false
12691269
ion-toast,prop,enterAnimation,((baseEl: any, opts?: any) => Animation) | undefined,undefined,false,false
@@ -1306,7 +1306,7 @@ ion-toast,part,message
13061306

13071307
ion-toggle,shadow
13081308
ion-toggle,prop,checked,boolean,false,false,false
1309-
ion-toggle,prop,color,string | undefined,undefined,false,false
1309+
ion-toggle,prop,color,string | undefined,undefined,false,true
13101310
ion-toggle,prop,disabled,boolean,false,false,false
13111311
ion-toggle,prop,mode,"ios" | "md",undefined,false,false
13121312
ion-toggle,prop,name,string,this.inputId,false,false
@@ -1330,7 +1330,7 @@ ion-toggle,part,handle
13301330
ion-toggle,part,track
13311331

13321332
ion-toolbar,shadow
1333-
ion-toolbar,prop,color,string | undefined,undefined,false,false
1333+
ion-toolbar,prop,color,string | undefined,undefined,false,true
13341334
ion-toolbar,prop,mode,"ios" | "md",undefined,false,false
13351335
ion-toolbar,css-prop,--background
13361336
ion-toolbar,css-prop,--border-color

core/src/components/back-button/back-button.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class BackButton implements ComponentInterface, ButtonInterface {
3030
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
3131
* For more information on colors, see [theming](/docs/theming/basics).
3232
*/
33-
@Prop() color?: Color;
33+
@Prop({ reflect: true }) color?: Color;
3434

3535
/**
3636
* The url to navigate back to by default when there is no history.

core/src/components/badge/badge.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export class Badge implements ComponentInterface {
2121
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
2222
* For more information on colors, see [theming](/docs/theming/basics).
2323
*/
24-
@Prop() color?: Color;
24+
@Prop({ reflect: true }) color?: Color;
2525

2626
render() {
2727
const mode = getIonMode(this);

core/src/components/button/button.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export class Button implements ComponentInterface, AnchorInterface, ButtonInterf
3737
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
3838
* For more information on colors, see [theming](/docs/theming/basics).
3939
*/
40-
@Prop() color?: Color;
40+
@Prop({ reflect: true }) color?: Color;
4141

4242
/**
4343
* The type of button.

core/src/components/card-header/card-header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export class CardHeader implements ComponentInterface {
2121
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
2222
* For more information on colors, see [theming](/docs/theming/basics).
2323
*/
24-
@Prop() color?: Color;
24+
@Prop({ reflect: true }) color?: Color;
2525

2626
/**
2727
* If `true`, the card header will be translucent.

core/src/components/card-subtitle/card-subtitle.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export class CardSubtitle implements ComponentInterface {
2121
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
2222
* For more information on colors, see [theming](/docs/theming/basics).
2323
*/
24-
@Prop() color?: Color;
24+
@Prop({ reflect: true }) color?: Color;
2525

2626
render() {
2727
const mode = getIonMode(this);

core/src/components/card-title/card-title.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export class CardTitle implements ComponentInterface {
2121
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
2222
* For more information on colors, see [theming](/docs/theming/basics).
2323
*/
24-
@Prop() color?: Color;
24+
@Prop({ reflect: true }) color?: Color;
2525

2626
render() {
2727
const mode = getIonMode(this);

core/src/components/card/card.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class Card implements ComponentInterface, AnchorInterface, ButtonInterfac
2525
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
2626
* For more information on colors, see [theming](/docs/theming/basics).
2727
*/
28-
@Prop() color?: Color;
28+
@Prop({ reflect: true }) color?: Color;
2929

3030
/**
3131
* If `true`, a button tag will be rendered and the card will be tappable.

core/src/components/checkbox/checkbox.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export class Checkbox implements ComponentInterface {
3131
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
3232
* For more information on colors, see [theming](/docs/theming/basics).
3333
*/
34-
@Prop() color?: Color;
34+
@Prop({ reflect: true }) color?: Color;
3535

3636
/**
3737
* The name of the control, which is submitted with the form data.

core/src/components/chip/chip.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export class Chip implements ComponentInterface {
2121
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
2222
* For more information on colors, see [theming](/docs/theming/basics).
2323
*/
24-
@Prop() color?: Color;
24+
@Prop({ reflect: true }) color?: Color;
2525

2626
/**
2727
* Display an outline style button.

0 commit comments

Comments
 (0)