From 693446d4da32dbd7849fbd9ddbfd1ca278938564 Mon Sep 17 00:00:00 2001 From: Maria Hutt Date: Wed, 24 Sep 2025 16:58:04 -0700 Subject: [PATCH 1/3] feat(input-otp): add helperText and errorText props --- core/api.txt | 2 + core/src/components.d.ts | 16 +++ core/src/components/input-otp/input-otp.tsx | 111 +++++++++++++++++++- packages/angular/src/directives/proxies.ts | 4 +- packages/vue/src/proxies.ts | 2 + 5 files changed, 132 insertions(+), 3 deletions(-) diff --git a/core/api.txt b/core/api.txt index 745d82786af..33a3b69ebfb 100644 --- a/core/api.txt +++ b/core/api.txt @@ -784,7 +784,9 @@ ion-input-otp,scoped ion-input-otp,prop,autocapitalize,string,'off',false,false ion-input-otp,prop,color,"danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string & Record | undefined,undefined,false,true ion-input-otp,prop,disabled,boolean,false,false,true +ion-input-otp,prop,errorText,string | undefined,undefined,false,false ion-input-otp,prop,fill,"outline" | "solid" | undefined,'outline',false,false +ion-input-otp,prop,helperText,string | undefined,undefined,false,false ion-input-otp,prop,inputmode,"decimal" | "email" | "none" | "numeric" | "search" | "tel" | "text" | "url" | undefined,undefined,false,false ion-input-otp,prop,length,number,4,false,false ion-input-otp,prop,pattern,string | undefined,undefined,false,false diff --git a/core/src/components.d.ts b/core/src/components.d.ts index 7721801eb60..284a8511027 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -1457,11 +1457,19 @@ export namespace Components { * @default false */ "disabled": boolean; + /** + * Text that is placed under the input boxes and displayed when an error is detected. + */ + "errorText"?: string; /** * The fill for the input boxes. If `"solid"` the input boxes will have a background. If `"outline"` the input boxes will be transparent with a border. * @default 'outline' */ "fill"?: 'outline' | 'solid'; + /** + * Text that is placed under the input and displayed when no error is detected. + */ + "helperText"?: string; /** * A hint to the browser for which keyboard to display. Possible values: `"none"`, `"text"`, `"tel"`, `"url"`, `"email"`, `"numeric"`, `"decimal"`, and `"search"`. For numbers (type="number"): "numeric" For text (type="text"): "text" */ @@ -6739,11 +6747,19 @@ declare namespace LocalJSX { * @default false */ "disabled"?: boolean; + /** + * Text that is placed under the input boxes and displayed when an error is detected. + */ + "errorText"?: string; /** * The fill for the input boxes. If `"solid"` the input boxes will have a background. If `"outline"` the input boxes will be transparent with a border. * @default 'outline' */ "fill"?: 'outline' | 'solid'; + /** + * Text that is placed under the input and displayed when no error is detected. + */ + "helperText"?: string; /** * A hint to the browser for which keyboard to display. Possible values: `"none"`, `"text"`, `"tel"`, `"url"`, `"email"`, `"numeric"`, `"decimal"`, and `"search"`. For numbers (type="number"): "numeric" For text (type="text"): "text" */ diff --git a/core/src/components/input-otp/input-otp.tsx b/core/src/components/input-otp/input-otp.tsx index a93eabd926d..c00a02c78af 100644 --- a/core/src/components/input-otp/input-otp.tsx +++ b/core/src/components/input-otp/input-otp.tsx @@ -1,5 +1,5 @@ import type { ComponentInterface, EventEmitter } from '@stencil/core'; -import { Component, Element, Event, Fragment, Host, Prop, State, h, Watch } from '@stencil/core'; +import { Build, Component, Element, Event, Fragment, Host, Prop, State, h, Watch, forceUpdate } from '@stencil/core'; import type { Attributes } from '@utils/helpers'; import { inheritAriaAttributes } from '@utils/helpers'; import { printIonWarning } from '@utils/logging'; @@ -28,7 +28,10 @@ export class InputOTP implements ComponentInterface { private inheritedAttributes: Attributes = {}; private inputRefs: HTMLInputElement[] = []; private inputId = `ion-input-otp-${inputIds++}`; + private helperTextId = `${this.inputId}-helper-text`; + private errorTextId = `${this.inputId}-error-text`; private parsedSeparators: number[] = []; + private validationObserver?: MutationObserver; /** * Stores the initial value of the input when it receives focus. @@ -50,6 +53,11 @@ export class InputOTP implements ComponentInterface { @State() hasFocus = false; @State() private previousInputValues: string[] = []; + /** + * Track validation state for proper aria-live announcements + */ + @State() isInvalid = false; + /** * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user. * Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`. @@ -136,6 +144,16 @@ export class InputOTP implements ComponentInterface { */ @Prop({ mutable: true }) value?: string | number | null = ''; + /** + * Text that is placed under the input and displayed when no error is detected. + */ + @Prop() helperText?: string; + + /** + * Text that is placed under the input boxes and displayed when an error is detected. + */ + @Prop() errorText?: string; + /** * The `ionInput` event is fired each time the user modifies the input's value. * Unlike the `ionChange` event, the `ionInput` event is fired for each alteration @@ -263,6 +281,30 @@ export class InputOTP implements ComponentInterface { this.parsedSeparators = separatorValues.filter((pos) => pos <= length); } + connectedCallback() { + const { el } = this; + + // Watch for class changes to update validation state + if (Build.isBrowser && typeof MutationObserver !== 'undefined') { + this.validationObserver = new MutationObserver(() => { + const newIsInvalid = this.checkInvalidState(); + if (this.isInvalid !== newIsInvalid) { + this.isInvalid = newIsInvalid; + // Force a re-render to update aria-describedby immediately + forceUpdate(this); + } + }); + + this.validationObserver.observe(el, { + attributes: true, + attributeFilter: ['class'], + }); + } + + // Always set initial state + this.isInvalid = this.checkInvalidState(); + } + componentWillLoad() { this.inheritedAttributes = inheritAriaAttributes(this.el); this.processSeparators(); @@ -781,6 +823,70 @@ export class InputOTP implements ComponentInterface { return this.parsedSeparators.includes(index + 1) && index < length - 1; } + /** + * Renders the helper text or error text values + */ + private renderHintText() { + const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this; + + return [ +
+ {!isInvalid ? helperText : null} +
, + , + ]; + } + + private getHintTextID(): string | undefined { + const { isInvalid, helperText, errorText, helperTextId, errorTextId } = this; + + if (isInvalid && errorText) { + return errorTextId; + } + + if (helperText) { + return helperTextId; + } + + return undefined; + } + + /** + * Responsible for rendering helper text and + * error text. This element should only + * be rendered if hint text is set. + * It will not conflict with + * the description slot since the description + * will always be rendered regardless of + * whether helper or error text is present. + */ + private renderBottomContent() { + const { helperText, errorText } = this; + + /** + * undefined and empty string values should + * be treated as not having helper/error text. + */ + const hasHintText = !!helperText || !!errorText; + if (!hasHintText) { + return; + } + + return
{this.renderHintText()}
; + } + + /** + * Checks if the input otp is in an invalid state based on Ionic validation classes + */ + private checkInvalidState(): boolean { + const hasIonTouched = this.el.classList.contains('ion-touched'); + const hasIonInvalid = this.el.classList.contains('ion-invalid'); + + return hasIonTouched && hasIonInvalid; + } + render() { const { autocapitalize, @@ -823,6 +929,8 @@ export class InputOTP implements ComponentInterface { + {this.renderBottomContent()} ); } diff --git a/packages/angular/src/directives/proxies.ts b/packages/angular/src/directives/proxies.ts index c81ac8f8571..4ae03f9c9b6 100644 --- a/packages/angular/src/directives/proxies.ts +++ b/packages/angular/src/directives/proxies.ts @@ -1018,7 +1018,7 @@ This event will not emit when programmatically setting the `value` property. @ProxyCmp({ - inputs: ['autocapitalize', 'color', 'disabled', 'fill', 'inputmode', 'length', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], + inputs: ['autocapitalize', 'color', 'disabled', 'errorText', 'fill', 'helperText', 'inputmode', 'length', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], methods: ['setFocus'] }) @Component({ @@ -1026,7 +1026,7 @@ This event will not emit when programmatically setting the `value` property. changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['autocapitalize', 'color', 'disabled', 'fill', 'inputmode', 'length', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], + inputs: ['autocapitalize', 'color', 'disabled', 'errorText', 'fill', 'helperText', 'inputmode', 'length', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], }) export class IonInputOtp { protected el: HTMLIonInputOtpElement; diff --git a/packages/vue/src/proxies.ts b/packages/vue/src/proxies.ts index a0c23232908..2f00685a18b 100644 --- a/packages/vue/src/proxies.ts +++ b/packages/vue/src/proxies.ts @@ -506,6 +506,8 @@ export const IonInputOtp: StencilVueComponent Date: Thu, 25 Sep 2025 13:03:32 -0700 Subject: [PATCH 2/3] feat(input-otp): add aria roles --- core/api.txt | 1 + core/src/components.d.ts | 8 ++ core/src/components/input-otp/input-otp.scss | 42 +++++++- core/src/components/input-otp/input-otp.tsx | 15 ++- .../input-otp/test/bottom-content/index.html | 97 +++++++++++++++++++ .../test/bottom-content/input-otp.e2e.ts | 96 ++++++++++++++++++ packages/angular/src/directives/proxies.ts | 4 +- 7 files changed, 253 insertions(+), 10 deletions(-) create mode 100644 core/src/components/input-otp/test/bottom-content/index.html create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts diff --git a/core/api.txt b/core/api.txt index 33a3b69ebfb..f9dc93375b1 100644 --- a/core/api.txt +++ b/core/api.txt @@ -789,6 +789,7 @@ ion-input-otp,prop,fill,"outline" | "solid" | undefined,'outline',false,false ion-input-otp,prop,helperText,string | undefined,undefined,false,false ion-input-otp,prop,inputmode,"decimal" | "email" | "none" | "numeric" | "search" | "tel" | "text" | "url" | undefined,undefined,false,false ion-input-otp,prop,length,number,4,false,false +ion-input-otp,prop,mode,"ios" | "md",undefined,false,false ion-input-otp,prop,pattern,string | undefined,undefined,false,false ion-input-otp,prop,readonly,boolean,false,false,true ion-input-otp,prop,separators,number[] | string | undefined,undefined,false,false diff --git a/core/src/components.d.ts b/core/src/components.d.ts index 284a8511027..073af3da096 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -1479,6 +1479,10 @@ export namespace Components { * @default 4 */ "length": number; + /** + * The mode determines which platform styles to use. + */ + "mode"?: "ios" | "md"; /** * A regex pattern string for allowed characters. Defaults based on type. For numbers (`type="number"`): `"[\p{N}]"` For text (`type="text"`): `"[\p{L}\p{N}]"` */ @@ -6769,6 +6773,10 @@ declare namespace LocalJSX { * @default 4 */ "length"?: number; + /** + * The mode determines which platform styles to use. + */ + "mode"?: "ios" | "md"; /** * Emitted when the input group loses focus. */ diff --git a/core/src/components/input-otp/input-otp.scss b/core/src/components/input-otp/input-otp.scss index 2b8b12ee585..b44bab1b9df 100644 --- a/core/src/components/input-otp/input-otp.scss +++ b/core/src/components/input-otp/input-otp.scss @@ -120,7 +120,15 @@ // Input Description // ---------------------------------------------------------------- -.input-otp-description { +.input-otp-description-hidden { + display: none; +} + +// Input Description & Bottom Content +// ---------------------------------------------------------------- + +.input-otp-description, +.input-otp-bottom { color: $text-color-step-300; font-size: dynamic-font(12px); @@ -130,10 +138,6 @@ text-align: center; } -.input-otp-description-hidden { - display: none; -} - // Input Separator // ---------------------------------------------------------------- @@ -271,6 +275,34 @@ --border-color: var(--highlight-color); } +// Input Hint Text +// ---------------------------------------------------------------- + +/** + * Error text should only be shown when .ion-invalid is + * present on the input. Otherwise the helper text should + * be shown. + */ +.input-otp-bottom .error-text { + display: none; + + color: var(--highlight-color-invalid); +} + +.input-otp-bottom .helper-text { + display: block; + + color: $text-color-step-300; +} + +:host(.ion-touched.ion-invalid) .input-otp-bottom .error-text { + display: block; +} + +:host(.ion-touched.ion-invalid) .input-otp-bottom .helper-text { + display: none; +} + // Colors // ---------------------------------------------------------------- diff --git a/core/src/components/input-otp/input-otp.tsx b/core/src/components/input-otp/input-otp.tsx index c00a02c78af..1310fab2df7 100644 --- a/core/src/components/input-otp/input-otp.tsx +++ b/core/src/components/input-otp/input-otp.tsx @@ -16,6 +16,10 @@ import type { InputOtpInputEventDetail, } from './input-otp-interface'; +/** + * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use. + * @slot - The default slot is for the input-otp's description. + */ @Component({ tag: 'ion-input-otp', styleUrls: { @@ -922,15 +926,20 @@ export class InputOTP implements ComponentInterface { 'input-otp-readonly': readonly, })} > -
+
{Array.from({ length }).map((_, index) => ( <>
+ + + + Input OTP - Bottom Content + + + + + + + + + + + + + + Input OTP - Bottom Content + + + + +
+
+

Description: No Hint

+ Description +
+ +
+

Description: Helper Text

+ Description +
+ +
+

Description: Error Text

+ Description +
+
+ +
+
+

No Description: No Hint

+ +
+ +
+

No Description: Helper Text

+ +
+ +
+

No Description: Error Text

+ +
+
+ + + + +
+
+ + diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts new file mode 100644 index 00000000000..73b69493740 --- /dev/null +++ b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts @@ -0,0 +1,96 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * Functionality is the same across modes & directions + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('input-otp: bottom content functionality'), () => { + test('should not render bottom content if no hint is enabled', async ({ page }) => { + await page.setContent(` Description `, config); + + const bottomEl = page.locator('ion-input-otp .input-otp-bottom'); + await expect(bottomEl).toHaveCount(0); + }); + test('helper text should be visible initially', async ({ page }) => { + await page.setContent( + `Description`, + config + ); + + const helperText = page.locator('ion-input-otp .helper-text'); + const errorText = page.locator('ion-input-otp .error-text'); + await expect(helperText).toBeVisible(); + await expect(helperText).toHaveText('Helper text'); + await expect(errorText).toBeHidden(); + }); + test('input-otp should have an aria-describedby attribute when helper text is present', async ({ page }) => { + await page.setContent( + `Description`, + config + ); + + const inputOtpGroup = page.locator('ion-input-otp [role="group"]'); + const helperText = page.locator('ion-input-otp .helper-text'); + const helperTextId = await helperText.getAttribute('id'); + const ariaDescribedBy = await inputOtpGroup.getAttribute('aria-describedby'); + + expect(ariaDescribedBy).toBe(helperTextId); + }); + test('error text should be visible when input-otp is invalid', async ({ page }) => { + await page.setContent( + `Description`, + config + ); + + const helperText = page.locator('ion-input-otp .helper-text'); + const errorText = page.locator('ion-input-otp .error-text'); + await expect(helperText).toBeHidden(); + await expect(errorText).toBeVisible(); + await expect(errorText).toHaveText('Error text'); + }); + + test('input-otp should have an aria-describedby attribute when error text is present', async ({ page }) => { + await page.setContent( + `Description`, + config + ); + + const inputOtpGroup = page.locator('ion-input-otp [role="group"]'); + const errorText = page.locator('ion-input-otp .error-text'); + const errorTextId = await errorText.getAttribute('id'); + const ariaDescribedBy = await inputOtpGroup.getAttribute('aria-describedby'); + + expect(ariaDescribedBy).toBe(errorTextId); + }); + test('input-otp should have aria-invalid attribute when input-otp is invalid', async ({ page }) => { + await page.setContent( + `Description`, + config + ); + + const inputOtpGroup = page.locator('ion-input-otp [role="group"]'); + + await expect(inputOtpGroup).toHaveAttribute('aria-invalid'); + }); + test('input-otp should not have aria-invalid attribute when input-otp is valid', async ({ page }) => { + await page.setContent( + `Description`, + config + ); + + const inputOtpGroup = page.locator('ion-input-otp [role="group"]'); + + await expect(inputOtpGroup).not.toHaveAttribute('aria-invalid'); + }); + test('input-otp should not have aria-describedby attribute when no hint or error text is present', async ({ + page, + }) => { + await page.setContent(`Description`, config); + + const inputOtpGroup = page.locator('ion-input-otp [role="group"]'); + + await expect(inputOtpGroup).not.toHaveAttribute('aria-describedby'); + }); + }); +}); diff --git a/packages/angular/src/directives/proxies.ts b/packages/angular/src/directives/proxies.ts index 4ae03f9c9b6..36942fa5a70 100644 --- a/packages/angular/src/directives/proxies.ts +++ b/packages/angular/src/directives/proxies.ts @@ -1018,7 +1018,7 @@ This event will not emit when programmatically setting the `value` property. @ProxyCmp({ - inputs: ['autocapitalize', 'color', 'disabled', 'errorText', 'fill', 'helperText', 'inputmode', 'length', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], + inputs: ['autocapitalize', 'color', 'disabled', 'errorText', 'fill', 'helperText', 'inputmode', 'length', 'mode', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], methods: ['setFocus'] }) @Component({ @@ -1026,7 +1026,7 @@ This event will not emit when programmatically setting the `value` property. changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['autocapitalize', 'color', 'disabled', 'errorText', 'fill', 'helperText', 'inputmode', 'length', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], + inputs: ['autocapitalize', 'color', 'disabled', 'errorText', 'fill', 'helperText', 'inputmode', 'length', 'mode', 'pattern', 'readonly', 'separators', 'shape', 'size', 'type', 'value'], }) export class IonInputOtp { protected el: HTMLIonInputOtpElement; From e3587b03052dfe8807c0a61696126007f8eda20b Mon Sep 17 00:00:00 2001 From: Maria Hutt Date: Fri, 26 Sep 2025 09:57:26 -0700 Subject: [PATCH 3/3] test(input-otp): add snapshots --- .../test/bottom-content/input-otp.e2e.ts | 41 ++++++++++++++++++ ...escription-ios-ltr-Mobile-Chrome-linux.png | Bin 0 -> 3394 bytes ...scription-ios-ltr-Mobile-Firefox-linux.png | Bin 0 -> 5750 bytes ...escription-ios-ltr-Mobile-Safari-linux.png | Bin 0 -> 3899 bytes ...description-md-ltr-Mobile-Chrome-linux.png | Bin 0 -> 3365 bytes ...escription-md-ltr-Mobile-Firefox-linux.png | Bin 0 -> 5398 bytes ...description-md-ltr-Mobile-Safari-linux.png | Bin 0 -> 4245 bytes ...escription-ios-ltr-Mobile-Chrome-linux.png | Bin 0 -> 2264 bytes ...scription-ios-ltr-Mobile-Firefox-linux.png | Bin 0 -> 4208 bytes ...escription-ios-ltr-Mobile-Safari-linux.png | Bin 0 -> 2465 bytes ...description-md-ltr-Mobile-Chrome-linux.png | Bin 0 -> 2249 bytes ...escription-md-ltr-Mobile-Firefox-linux.png | Bin 0 -> 3996 bytes ...description-md-ltr-Mobile-Safari-linux.png | Bin 0 -> 2902 bytes ...escription-ios-ltr-Mobile-Chrome-linux.png | Bin 0 -> 3029 bytes ...scription-ios-ltr-Mobile-Firefox-linux.png | Bin 0 -> 5470 bytes ...escription-ios-ltr-Mobile-Safari-linux.png | Bin 0 -> 3750 bytes ...description-md-ltr-Mobile-Chrome-linux.png | Bin 0 -> 2988 bytes ...escription-md-ltr-Mobile-Firefox-linux.png | Bin 0 -> 5003 bytes ...description-md-ltr-Mobile-Safari-linux.png | Bin 0 -> 3979 bytes ...escription-ios-ltr-Mobile-Chrome-linux.png | Bin 0 -> 2067 bytes ...scription-ios-ltr-Mobile-Firefox-linux.png | Bin 0 -> 4058 bytes ...escription-ios-ltr-Mobile-Safari-linux.png | Bin 0 -> 2313 bytes ...description-md-ltr-Mobile-Chrome-linux.png | Bin 0 -> 2057 bytes ...escription-md-ltr-Mobile-Firefox-linux.png | Bin 0 -> 3825 bytes ...description-md-ltr-Mobile-Safari-linux.png | Bin 0 -> 2775 bytes 25 files changed, 41 insertions(+) create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-md-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-md-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-md-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-ios-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-ios-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-ios-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-md-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-md-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-md-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-ios-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-ios-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-ios-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-ios-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-ios-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-ios-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-md-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-md-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts index 73b69493740..f02014ebf1b 100644 --- a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts +++ b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts @@ -1,6 +1,47 @@ import { expect } from '@playwright/test'; import { configs, test } from '@utils/test/playwright'; +/** + * Rendering is different across modes + */ +configs({ modes: ['ios', 'md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('input-otp: helper text rendering'), () => { + test('should not have visual regressions when rendering helper text with no description', async ({ page }) => { + await page.setContent(``, config); + + const bottomEl = page.locator('ion-input-otp'); + await expect(bottomEl).toHaveScreenshot(screenshot(`input-otp-helper-text-no-description`)); + }); + test('should not have visual regressions when rendering helper text with description', async ({ page }) => { + await page.setContent(`Description`, config); + + const bottomEl = page.locator('ion-input-otp'); + await expect(bottomEl).toHaveScreenshot(screenshot(`input-otp-helper-text-description`)); + }); + }); + + test.describe(title('input: error text rendering'), () => { + test('should not have visual regressions when rendering error text with no description', async ({ page }) => { + await page.setContent( + ``, + config + ); + + const bottomEl = page.locator('ion-input-otp'); + await expect(bottomEl).toHaveScreenshot(screenshot(`input-otp-error-text-no-description`)); + }); + test('should not have visual regressions when rendering error text with description', async ({ page }) => { + await page.setContent( + `Description`, + config + ); + + const bottomEl = page.locator('ion-input-otp'); + await expect(bottomEl).toHaveScreenshot(screenshot(`input-otp-error-text-description`)); + }); + }); +}); + /** * Functionality is the same across modes & directions */ diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f973d47425f54530afbb4b7719faf349f00028d9 GIT binary patch literal 3394 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 VETjZ4UEqS{tXtic&GpX literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a80d37f6e3fc63dc85bb651c95c0786e3c4120a3 GIT binary patch literal 5750 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Safari-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ef850f2434bd750db135fe8719f86434d2955e56 GIT binary patch literal 3899 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-md-ltr-Mobile-Safari-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-description-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..da42311d65114a6f3e28c9e9e913e3e89454e488 GIT binary patch literal 4245 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf36e03cf0d362ad86d39661e4ce68993359970 GIT binary patch literal 4208 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..231362827bcce156fe8c530bda57d184ea9fa85e GIT binary patch literal 2249 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-md-ltr-Mobile-Safari-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-error-text-no-description-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0ef032352523fdb7954aea1b8817947b9cea51 GIT binary patch literal 2902 zcmbtWdo+~m9{$=Qxh9e=m-a5XMpP6H&t@&f4qzanAS0_r2eGpZE8!-}`&s=lMN=IoU}| zC`$kUAPu#*b^(Ab3E((DTnv2QiOFPwpDhtCc9uYCm&#Z0XKREd6d?{ivEl*u0YDOf zTAxBhWzUYF!_s-GEsNbDktP9YduwGMg%#eurz`GGWqsKqVLFxEg6QiRG;OAwwLN(L zq5C%3=Ov$?PEwM8(h^QjdbVzCouwc<;Eeilj=e5Lu+uNG~;83m-031*d0p8y81AwP6 zDFBdvxCQXBGz0+0{{}+lZL>EnDWjE6WNzk{UNhSj90D(|wXsDxBZN2drPFjx?B<45 z&;^bzUE`7&Z^G(rmY;`cy z#b}3XBBS`I&Ie}`4#RvG-(THx{T|#f1P|x4=f6ZcazDtT<#as_-`ivD5+l7{x@$js zhF=(J8E@}|wyHF)ieaLAON>^9N3X9RHWZF3qTBY!F1BaQ)Cg2WMq;j>b&X8;9OT&h zK9lIoOtZ%g$BW|E28nFK3HZ@hT?psdpeO2gY3!8DD0Y05cH5OkMw8V_IRBFY)*q2f z4B6@->rv&*l~HBKp9QBabA4bQ-A@btQP9=HY*BMuKDLRRy@vYOKz49tVZEHH%_x|G z-{yl*!@8p_ME5LyWv#Ms$|31MrCSBTTX$*fG%Ye71k~RRI%@pNTQ>rA z&n~P_C#`*inRxRl~04CXG#3&&+8-;d`iPnLuRi^mYW zmL~MiE7`C_4WDXN;Xo|@2UZ*r3jdH@Vf|RHs^fT|1R`|%cj(2AoL{fAI*z~cI|L8b z7!sr$F%Tmu>Fo#(cHy*+fnekARzJ}_Sxpy$hG@+;a+5r!A(+{y_>$kDhmF59CfK5F z2NoY7p8L3NB_5l>R~PQ(()K0&h&CcfIrJl%&sHIOIa(fK%XBe1yoAqJUs zdn?Mu_RfE@xnP|XBc-^QtV~{OMqcG-n6!$=gUstUvixoKb?i%t5Kk3)+I^apJla?E zVWTApIb6hgErz+(k9nXreiaibgmCzRBUc0?@cAT~l`PtKyT}txNs)<;gG0(|O@>Bv z`YBG1dk`Wy>*Cfd{J|kjbfOIRosNQ))Q#DVzCtbSqgUoVpG?8U`Zm}Fwl+|54>hQ4 zTzDXKEOocr*hEC~vT8_g*T>RSU9;0)uvCW}_&#|fyY3Bo1Vzy(#G(jz0;lQJ&IRF^_ISUu((iqfWbuW_c(Chott5$kWXUmz&t_ zovCIfc9+wfU~?Hs>2G{;e%AdThBDgnf7s67(fwxwtJw(w!is+(B0eHF9(*-KGQ`I( z)M}lQ-!kgtY53N7ErZU*R6@!Aw$e28LkYj=j{Mz>qOb8hxiVQqs2ixk9>?T%#DGw@ z&j)h;EEepRil#*j$<*4a6qFL`G9t$oInxWzsvsmgav85YcF)HQTxx0ZKwxJ3sEV+kRgLDfP|mQtX_~Yz^B% z_12ebJSs|RaBh%l=h0p74k4<;S{f`ED`;e4L&+IjB|qPTDjdujA9B|x6$JSZL4^WK z^@w)V_%u$Y;pHh|NUhcStm^7mF8xaEgy?ZkeQEfS<#d18v1G3RcegWAN!sG)5xXVw?yxeB|r zg`WkK?5GNE=^KY;lztB*LO->j#=d?t{c3wcLu)FYQk-Of=P7#NTQmnzR# zn=WOv)`h4tBcJEX(B|7a4cAA?LQu5LINMQF|J%q9!)f$|Wl52txtU^;S{)xoh@R$9 zu>+t6KcnMdz&sy>g)Z{(`#0) z%9+76?P6JAgRW3K2hJ(K3Lkju@9(CcW@h1xV;hvEqc~8o_EMhBK;(Of*#7wJ)00Jl z7s&lkTW=!1fAieA-PtjHH=U|Ia=V;BSKI5&YLlne2G*Tuwh5n{Xl)?7JW5v()hVK{ zafZExP+?H_t#I0?;jl-dns<@NM|GTv%$aW^%Bs<8(AlThc;jve5_7Ob;wI|q zDDH)_uvH{{a-71>C6ZTGVgib%7 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb42d50226d3c9e100853a3d6fe2d1a1feb96b7 GIT binary patch literal 3029 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

}|Ln8o4LT;tx&RTnxc z?{2Tn64GzBQG916=5AuxKi|0z(dLdyO5Psga#fu|4VK*%m4-BfbB78Ot=iC*RtN+^ zU8hnMaHNVTwZJT9ZI4P*0@b}8hswRMTt7^-X4H$7$dxP5Oi#inge0{<>u_g#de+r& zRXN&q0*#V{q#=RdKcu@wnGlSW^(!P1WPhwWisHiH=&E&7ub$r*2qU zW}^opj4#2~Kel9%HyU JjC9#4;vWR5?4AGs literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..700ca7e4d4fe8f7338ceb45ae73c164ce411b905 GIT binary patch literal 5470 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 KVN3OiVgCUQOX*$! literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..1e80de674baac5129a0ad2c2222485e9a6ec3aa3 GIT binary patch literal 2988 zcmbuBcTiKy9>)U;DxjfB5RfPc$VCECsZs<90qN*NVnCz?F`<_r7(iMQMG(0bh;(U! zhy)=>i3!yUp@;^M*xl010y+``2gsyx#G7mU+xSRRi_NT zH-DT_gOo(sdqp}(nn2twf0vvwO}l`QloCi&hcKf0g2l{Ds-01&5^pmnT7ardQl{0! zQuK&k!1o-CG9`$h-?JPd);=E6y;0JSkN&K;mK^2dQ+!C_ZgM@)fT?7XR|`%-;Q*XM zvM}#bR=6wnUrW(t&!0bUYHI2hkyTe$haEKX>JSYG2!NizNs9>fEjypUvTvKXpt~>m z`}9gRls*s&u%J{~c0nN^PRd1ym_weIfZ#C{0(v{vr_ zz=%iizD!Pbbas|Kc_IV`FMs&n z05M;u5<_&R?$e}fX&4$3R^~?gi)O_MP8w1^g#P2@KCZCT~Hw%2>aT)M95&fIBTASESr)8CzC>sW~y zwl}0`GRW5wwtNTttaFSSOG--W>QFS2R=rti=AzjmjybKUtlJ7AlSmz1U6L>lR)u3R z#?V2Z5*!jTZ$aZ_H*BQU*4EPL#@WzQF}ty|f{3f^1BKL58tuK;aWY>b|Jk!=A3=LE z>ye3>Vdld)CN7RhMDn&oU3F-6b$LleMan*c)CvE70&A_nU;Ev_K!Kl>_^UG+FJJ2W zm{(0?_u_wcjONH~&zbUfyTz2(sVulsw=^k&^4mGfU`+oAVpz-ZBgq_Y@M9f>`2)kvxgAPSR@C-l{5=oS{ zpP8A-%F4QQ=~A}{hBaKYp1Ft|#>K_P#x^tupW8(?SU_y62(Rb5@$lP6a} z^?2*6*H^!_dL7sM#f&}7=4NVDRSSq=RR9`QU{C)Rc9ktr+tOl|rwImwhu&Opa!Qdm zytwe}(IYuyW4eC>3>!{%)S4oHB}nWP5XcMDP*aoGEUB)p&dWQjsc9c7j19jVr#01f zsNuwJ@v%>x4~&eA`it!#1TgO=ZDpc6OYIjzpD~%t{QP_piPW@C7Pk)ckmuvIH7-_k zWFGWj>A%9QAwohzFqonr5Tyc8kh%R_ZVHka@hxtTt(~1+Uz9Udi(M|;rMxRJPZ9zd zU;Dnghj+hXOFzQOO1S8^IgB$JeQWQAq3rFprl=!bnJ8+vCMCM8w6t_q#pQGbEc3?H z{tN0Au5NB_xP>0OG5w|{4I%kE{zJ61^z?WQgoZB; zXFymB1$@>>IpPhc{NB&ukk4Pede!u_OI@&%wsuWJgUf6-1;%>ZndXKu!!lfBGD;R_WmC|6ekkK5SMVKGymV?>DD+F0$)J3}B45?7mXZjF(P zTbohWeKndMQHrN2ITr8oDvXS;`wgG1jkZv<)>nJ@$QZ2NHZ z(Z}wrQvi1sg+MC#D!!1I`1HvT_~5w@i~{r9Z!T3=R*HrhU0)GB@Ri3)WyDD~;~Z1& z+h7MO-WgTFH8tnHed_G%>yww4pTznPzf8Ps^#FF*UR2@F8o%|W8Cj-+p5C>kX$}BP zd&)s88yf`8r9Rwdim(rAlzepcb54x1O{OFiN)H-u>&Y>O>IQ<`6S8yyxS@D_&T(&{ z6x05bKt!9}EiNwB7H>VGq%_DIsyyD@*d^;w(GUBBsSQMSY!a@kl<+Nfv z<})LHSDDjO({MS%NXe&8uC7_1sx6cf_Fc>aVv?}F^z>3=WOLHqD~$WcP{%#nL^>@( z(UZ)%eCayher2=KvDRCO*BnJYw@fMAn;oG;B_tFr;9bh^Uewfh*via^1nmB6;!vb7$qLS8~IALiyBn%SrJzMMvjD9K>?im8!gan=tt`Ap(Z zA!oX~1uq^6MGsn>^e#ZA!j2x5HoC6+m2sd_!pB@G?k!--@Sn8-X#$hkclbLF4f*)4 z53@wACxfyLt_1`Cnso|4rY(w^_~VN}9GG|rD;Ev9_Lj@_U#-f^GZD?0*UNetn7TC9 zDm;|i+S-~IlA#xZK_CQX$4yO5d#4W_f79QeWjYiNnp43v1w~xED1%9i z#s??&$!~jmdF9HQF1gEoM{4&0cTSRT>Cli1&NzBQ`XKvl={W(hb!BfqPL;qp)7|{I zW6qVJs5#wZ+S=jUTbmC@VXCT}mtj+H3av&OqiV4Ouw*lE*xUybgQsUaUqmg>rYRy7 zy2Gd6&(~`U!4ps+U4e=`&5_45kF>B-6T@(73P;Tk90%68NlbcpsQvLew=oKC10y9! zC+t#+n^f7kD{c=V{gaAd$|duXrixjXK8ME zxyWHsB~?Ck-#)P#4v66(L1Ur-?60G`WE0Vz$Xh00)DKArA; zQl^>7luK!^92@hnv+LQ|*Z`s$yMs#sa^SX{o+G+zVC~MgZ^6~UgFG-qN^0zVW~K~f z{;}ke%}0>T{d2{(`}gmk;ZRl7)mc^aCr^Gme0cQZ>vTZ0w6v@Z7zx*vZx)x3NKa3H zYRnKYDNql#cXjoPA=Rt|03qbFEzJ%h5ndS)$y9I;r<8`^&fKlCYV}XPqN4|CC;I8P=Kw+Zr4LqEi`AZL#?D8t{Rq4pz rXxW5-K-=5u5xSW`%`Nz&*xmu6C(f5S!_5ByC?HFOtyzWX<+y(WMmDUM literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7fc362d6222eb677fb89d437850895a5b34627d5 GIT binary patch literal 5003 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Safari-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-description-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..e9251f33a917233a3ad77c1dcc274a5257d4dad3 GIT binary patch literal 3979 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..01a0a3f7e840ea6909710fa71b430478e079d9a4 GIT binary patch literal 2067 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 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-ios-ltr-Mobile-Safari-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..48b091da06427a52367af076444d580d9c03679e GIT binary patch literal 2313 zcmb_e`#aRz8vmBak;_SnWFxv5VO&ZjxlAq%x!)^93{y?+W`@m3jWj|=2r)t;VX%3t!=rtYY}lM`#VX1RE97y`^2e2OF4Nhyer`aM&~@zR8rUDR+P&R^|-xI zc`Nc`Z9gd{{EA&opu5%}&NAyrj`76z+eF`bg9!BO+4ZL0RihK_i#-TL_f`xcyJ$&Z z21l5mdwb~mYYJBiND|d;`vHKux0VEubSDr1l>R^PJ`sAYroDT1rXwfVhj_$3_bQfu z+~6vI=DRofLw)|5Iuy&@+rYRf-ttPyu7y~9zA#${qMBLLVc=i%YGDB-g@;u~c6ogq z!*HxMeFWl-t(P(XQuoO%?K^?5+bL z;SMxqUnH8mC3bYrdT8gG7Q)$|)u9ZS0p??j@AHcO`MJ53cu3gb>g`6MgF}1T9_tke zIqZ};q4`3U`(-Bcd?NI^4`}S1g6E4bu&-%A=dBGe<=#5lDzcsQyP~5qcvv0kN{fkJ zbNivI9BXE>$Tv(rKibpR7tYG74fLHT>L{;2wdBOUrU{+5G{C%zP{C{NW#zfhoX@xq zMAdUpvK;FgEeW}?GTVX4Cz70)X7?bW)!_PrCK zC9*Vf5u^Jqqf)%(GaeyCa*E3gwswhQUBn2@dmOgoyktV;v4xUYm-B>XF{%){NlRvg zHPUhw?Omh+K&%A-^qv0>@cB-K&_4B)`qCJxW~RkeK@50j0X~4@~r8!j+?)wB*Xhv{c2u9Yg82942)?M;Srge{E9YC=|=&pxLz4 zK=0sz0VD0M?oK)iuNh#iG4%%8T|_KXY$+u`36Uzc+|kQ9myVfUj!5`u&%PmkcImRE z0RTu}&E5e>|0xaV{k=fld3JV|Hx|ay9WgUAqxALl1@l?43k8WAGkG>TGTug761(j5 z@&?e835`KpAMVS=eC;XPzd-7oQLa7tAye zg4N8r5wcc=F^^Uzu&p!YC~`KTbS88o* zqct^E*4EZWJ`?=-Ag8RVI>h0WJCe+5s=cTkbvo%88M)LXpFyZlzaMK^DeeyAh+eeu4#4*4%6fclGxt>G{4X*R;*h$@kDwi2nBJ zFuecg!dT4uj{wvd9W`>$&CSgu{wMkU)bke~@2e$Ns^J7KY6-k7lXK^Cx)CuOE5R~y za@91N$GO<=pTG#vZVu}u2$tKFm6iL!v(Lg<+n)Dje<7mA>=A$^%s@RHyxEEVgDTkM zQo#x&meAa*8}D*f}!RJb>j$!w)#OevR+ zX~GFMWur|IWo8?k?3J&&oiESa37nQg4E zUt*BBQ9=xu3#ZD67mv8=y_7Rsx5&R_gNIp8OiY0P)aJ%lQt%jkWrNW} zGN)c|%YbCJD=m>XMF%Y&g|{SC)CYW!NZ6cvVS@Ql5?K2LoS-sZ%k(Raw|{@I?|4U8 z!1k9k=*wakI1a~3NlD?2gpjIOEPwxmwH(K%XPylWd0K1iU6^?5MMrVRUq_ABhh)k> zxMwC3M9Ij=%neq#&42smZ73!w)tRuZt7wrOu43B~=%TBuyWbo))3Lv0I%18_2g799 z7uqm?u=5vx;;k*5BAcq#7NIh|nlb&cj=bXLk%IsdrwKb8I_V4hC!cv~<8OqxkD^~s zGZG7DgfhE!cu8Y!cK7yz^y%E4Nge-b3%K6@Z4!iHvK2^stL2_Gu$=+m){a&b*tO(; E16RpRhyVZp literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..22a948253283b76dc433665bad62f06f690ecfe6 GIT binary patch literal 2057 zcmbVNdsNcd7DgR&8nY?2rcX>JgMl60(l_!CA(AlAkqq7Ut#VnMB_p zK(Uf2lZA_Zcl}RQ=bzeh7H&DirPNw(J)JG{7*H`L|+Tgs9%#hNHGcnr9vTU zqdQsOoj9GU2QnJ_3y#n5vA^5tV*Q5kxJ=iF6H84^O*kA5mV&IVs`4Nn00t87nz=?K zRpIgY6DEO?kz_PzKth<wm&pJiSXx>ViGpi9V!;LlN$Xlp#@A`=FJID&`{2RB zHM;}AfT59*&TUVHLb1BK8Yj8uqzB+UAPNzuub9K(pt6rdbs>laq=R#7OA8AN0>Rlk zH-?<>Oi=3E$_t&D_0c`Q>KHiu=S`MuiELQtk}eGFF_qRaN#6pDxgSzGSVl%hwTPQ9 zK6H0?GsrH%RsF(SWMKH&gR)_|1wefrUQg1hoEHiSm*3Ub9}C_Ac0pc>jhSS_8lGD$ zem@6LuLu?wrSk0hFuytM5W3#7(I-KCC_IOt=^t#Wp`qdB6{XI{qdw_oGSHj6Z3jK`MZIu2S zUfQ-d_KL%gtRVEqtF3Kq%->u2SWaDOb+`PHD!?37Rq5sRN+?VK13|lp-UrW7f^u?b zr7w`y4@h3CVybCnuZh*M1O2?zZpBmVc6D zlEj`o^{|p}ho$pkvFtjn){|RpmN%#eNG}J(mbPxu(jxZ6#l>+;Fep?*P0dN-#Pagh z`1p9W$}_yqFe39{^GF3WAfVWfmH*F11O2(k7*)rTqbjITNj4XT@clI>Av? z^N@_5-^aNYUVE?flB3~$9eGN62dk#T%l6zFW<&ZcFB?mtYc)5oQTnCw{FluKVmVm8-IqnuPc=9xk^BIJ<;i zkZ@S6`Qy;KhqGNNe8y()^767wJbN^<{or)N&h5Y0W>Bcq`_Uyh2E*UN1bD|aq$e;& z+#!7H)5Qnevc5b)*!a#`gcT=wItU0wMMWx#9Z`l1n)9DAnM?oxrl!vS!cngN%ym9{ z2&SxPM9ukXcGRJSc=NwgQ5K*8 literal 0 HcmV?d00001 diff --git a/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input-otp/test/bottom-content/input-otp.e2e.ts-snapshots/input-otp-helper-text-no-description-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..fffebab5794c8e70ad5c21a5072fd664577d2908 GIT binary patch literal 3825 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