diff --git a/angular/src/directives/proxies.ts b/angular/src/directives/proxies.ts index e7e8a469505..c7bc83527c1 100644 --- a/angular/src/directives/proxies.ts +++ b/angular/src/directives/proxies.ts @@ -1619,14 +1619,14 @@ export declare interface IonRadioGroup extends Components.IonRadioGroup { @ProxyCmp({ - inputs: ['activeBarStart', 'color', 'debounce', 'disabled', 'dualKnobs', 'labelPlacement', 'legacy', 'max', 'min', 'mode', 'name', 'pin', 'pinFormatter', 'snaps', 'step', 'ticks', 'value'] + inputs: ['activeBarStart', 'color', 'debounce', 'disabled', 'dualKnobs', 'label', 'labelPlacement', 'legacy', 'max', 'min', 'mode', 'name', 'pin', 'pinFormatter', 'snaps', 'step', 'ticks', 'value'] }) @Component({ selector: 'ion-range', changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['activeBarStart', 'color', 'debounce', 'disabled', 'dualKnobs', 'labelPlacement', 'legacy', 'max', 'min', 'mode', 'name', 'pin', 'pinFormatter', 'snaps', 'step', 'ticks', 'value'], + inputs: ['activeBarStart', 'color', 'debounce', 'disabled', 'dualKnobs', 'label', 'labelPlacement', 'legacy', 'max', 'min', 'mode', 'name', 'pin', 'pinFormatter', 'snaps', 'step', 'ticks', 'value'], }) export class IonRange { protected el: HTMLElement; diff --git a/core/api.txt b/core/api.txt index f25a05b6427..407da7f2eeb 100644 --- a/core/api.txt +++ b/core/api.txt @@ -1030,6 +1030,7 @@ ion-range,prop,color,"danger" | "dark" | "light" | "medium" | "primary" | "secon ion-range,prop,debounce,number | undefined,undefined,false,false ion-range,prop,disabled,boolean,false,false,false ion-range,prop,dualKnobs,boolean,false,false,false +ion-range,prop,label,string | undefined,undefined,false,false ion-range,prop,labelPlacement,"end" | "fixed" | "start",'start',false,false ion-range,prop,legacy,boolean | undefined,undefined,false,false ion-range,prop,max,number,100,false,false diff --git a/core/src/components.d.ts b/core/src/components.d.ts index b61bac1a575..55fabe7a3e6 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -2289,6 +2289,10 @@ export namespace Components { * Show two knobs. */ "dualKnobs": boolean; + /** + * The text to display as the control's label. Use this over the `label` slot if you only need plain text. The `label` property will take priority over the `label` slot if both are used. + */ + "label"?: string; /** * Where to place the label relative to the range. `"start"`: The label will appear to the left of the range in LTR and to the right in RTL. `"end"`: The label will appear to the right of the range in LTR and to the left in RTL. `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("..."). */ @@ -6304,6 +6308,10 @@ declare namespace LocalJSX { * Show two knobs. */ "dualKnobs"?: boolean; + /** + * The text to display as the control's label. Use this over the `label` slot if you only need plain text. The `label` property will take priority over the `label` slot if both are used. + */ + "label"?: string; /** * Where to place the label relative to the range. `"start"`: The label will appear to the left of the range in LTR and to the right in RTL. `"end"`: The label will appear to the right of the range in LTR and to the left in RTL. `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("..."). */ diff --git a/core/src/components/range/range.md.scss b/core/src/components/range/range.md.scss index 35442f2db5c..446117b4ebe 100644 --- a/core/src/components/range/range.md.scss +++ b/core/src/components/range/range.md.scss @@ -22,8 +22,7 @@ font-size: $range-md-pin-font-size; } -// TODO FW-2997 Remove this -::slotted([slot="label"]) { +::slotted([slot="label"]), .label-text { font-size: initial; } diff --git a/core/src/components/range/range.scss b/core/src/components/range/range.scss index 37cc34802cc..442f005fa2b 100644 --- a/core/src/components/range/range.scss +++ b/core/src/components/range/range.scss @@ -209,7 +209,7 @@ opacity: 0.3; } -::slotted([slot="label"]) { +::slotted([slot="label"]), .label-text { /** * Label text should not extend * beyond the bounds of the range. diff --git a/core/src/components/range/range.tsx b/core/src/components/range/range.tsx index 971f33dcc79..fbf6353eb68 100644 --- a/core/src/components/range/range.tsx +++ b/core/src/components/range/range.tsx @@ -96,6 +96,13 @@ export class Range implements ComponentInterface { */ @Prop() name = this.rangeId; + /** + * The text to display as the control's label. Use this over the `label` slot if + * you only need plain text. The `label` property will take priority over the + * `label` slot if both are used. + */ + @Prop() label?: string; + /** * Show two knobs. */ @@ -602,7 +609,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop } private renderRange() { - const { disabled, el, rangeId, pin, pressedKnob, labelPlacement } = this; + const { disabled, el, rangeId, pin, pressedKnob, labelPlacement, label } = this; const mode = getIonMode(this); @@ -629,7 +636,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop 'label-text-wrapper-hidden': !this.hasLabel, }} > - + {label !== undefined ?
{label}
: }
@@ -642,7 +649,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop } private get hasLabel() { - return this.el.querySelector('[slot="label"]') !== null; + return this.label !== undefined || this.el.querySelector('[slot="label"]') !== null; } private renderRangeSlider() { diff --git a/core/src/components/range/test/a11y/index.html b/core/src/components/range/test/a11y/index.html index f5beb8266a4..2e31b7b1d38 100644 --- a/core/src/components/range/test/a11y/index.html +++ b/core/src/components/range/test/a11y/index.html @@ -15,14 +15,18 @@

Range - a11y

- my label
-
+ my label +
+ +
+ +
temperature -
+ + +
diff --git a/core/src/components/range/test/label/index.html b/core/src/components/range/test/label/index.html index 1ca370a23f3..c4c4b4c6b68 100644 --- a/core/src/components/range/test/label/index.html +++ b/core/src/components/range/test/label/index.html @@ -67,6 +67,22 @@

Placement Fixed

+

Label Property

+
+
+

Placement Start

+ +
+
+

Placement End

+ +
+
+

Placement Fixed

+ +
+
+

Slotted Items

diff --git a/core/src/components/range/test/label/range.e2e.ts b/core/src/components/range/test/label/range.e2e.ts index 9e90103f044..dac0fbc4430 100644 --- a/core/src/components/range/test/label/range.e2e.ts +++ b/core/src/components/range/test/label/range.e2e.ts @@ -125,6 +125,32 @@ configs().forEach(({ title, screenshot, config }) => { expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-items-fixed`)); }); }); + + test.describe('range: label prop', () => { + test('should render label in the start placement', async ({ page }) => { + await page.setContent(``, config); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-label-prop-start`)); + }); + + test('should render label in the end placement', async ({ page }) => { + await page.setContent(``, config); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-label-prop-end`)); + }); + + test('should render label in the fixed placement', async ({ page }) => { + await page.setContent(``, config); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-label-prop-fixed`)); + }); + }); }); }); diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..34050f86709 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..6311af01bad Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 00000000000..affc8508386 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..8fb97507027 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..1d3314e5525 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 00000000000..f4258931f46 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..dd18f48cc5d Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..6767adddb52 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 00000000000..e6b521b1f13 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..714e534c683 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..9f5508a5bcb Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 00000000000..e189337ceb2 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-end-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..65d63219640 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..2675a7ed06a Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 00000000000..6232547c643 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..03240040c42 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..f92d0905c55 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 00000000000..9ab2bf28662 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..9be4a140102 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..e0c02b3aa46 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 00000000000..58f57769032 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..5574b42f6d2 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..6c822dd0001 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 00000000000..4b0957cba7f Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-fixed-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..0c3f86175ce Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..f269c836d6c Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 00000000000..b382666b80a Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..38b33366376 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..d043a88697f Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 00000000000..50e30949e06 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..914039bcefc Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..41ca3fccf03 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 00000000000..0de83b08889 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 00000000000..b33ea66cd68 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 00000000000..1a934e34c30 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 00000000000..ea5a80bdf88 Binary files /dev/null and b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-prop-start-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/range/test/label/range.spec.ts b/core/src/components/range/test/label/range.spec.ts new file mode 100644 index 00000000000..c7006561ade --- /dev/null +++ b/core/src/components/range/test/label/range.spec.ts @@ -0,0 +1,23 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Range } from '../../range'; + +describe('range: label', () => { + it('should prioritize the label prop over the slot', async () => { + const page = await newSpecPage({ + components: [Range], + html: ` + +
Label slot
+
+ `, + }); + + const range = page.body.querySelector('ion-range'); + const propEl = range?.shadowRoot?.querySelector('.label-text'); + const slotEl = range?.shadowRoot?.querySelector('slot[name="label"]'); + + expect(propEl).not.toBeNull(); + expect(slotEl).toBeNull(); + }); +}); diff --git a/packages/vue/src/proxies.ts b/packages/vue/src/proxies.ts index f4cae3f9a90..88a6bc0010a 100644 --- a/packages/vue/src/proxies.ts +++ b/packages/vue/src/proxies.ts @@ -606,6 +606,7 @@ export const IonRange = /*@__PURE__*/ defineContainer