@ionic/core 8.3.4-nightly.20241024 → 8.3.4-nightly.20241028
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-input.js +20 -5
- package/components/ion-textarea.js +19 -4
- package/components/overlays.js +62 -7
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-input.cjs.entry.js +20 -5
- package/dist/cjs/ion-loading.cjs.entry.js +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +19 -4
- package/dist/cjs/ion-toast.cjs.entry.js +1 -1
- package/dist/cjs/{overlays-0123d7d4.js → overlays-ba0f6986.js} +62 -7
- package/dist/collection/components/input/input.js +20 -5
- package/dist/collection/components/textarea/textarea.js +19 -4
- package/dist/collection/utils/overlays.js +62 -7
- package/dist/docs.json +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +1 -1
- package/dist/esm/ion-alert.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +20 -5
- package/dist/esm/ion-loading.entry.js +1 -1
- package/dist/esm/ion-menu_3.entry.js +1 -1
- package/dist/esm/ion-modal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +19 -4
- package/dist/esm/ion-toast.entry.js +1 -1
- package/dist/esm/{overlays-9c75ec54.js → overlays-ae10d43d.js} +62 -7
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/overlays-ae10d43d.js +4 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-04fc24ee.system.js +4 -0
- package/dist/ionic/{p-b4c950f8.entry.js → p-0c7e32d6.entry.js} +1 -1
- package/dist/ionic/{p-100b83fd.system.entry.js → p-110e03be.system.entry.js} +1 -1
- package/dist/ionic/p-148b8abb.entry.js +4 -0
- package/dist/ionic/{p-4b0fedb7.system.entry.js → p-18105026.system.entry.js} +1 -1
- package/dist/ionic/{p-f50ae0d5.system.entry.js → p-2031811e.system.entry.js} +1 -1
- package/dist/ionic/{p-cff5585e.system.entry.js → p-2dc74eb3.system.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.js +1 -1
- package/dist/ionic/p-5c831f49.js +4 -0
- package/dist/ionic/{p-a72fb8a1.system.entry.js → p-63d65dbc.system.entry.js} +1 -1
- package/dist/ionic/{p-9fef1364.entry.js → p-6d50faff.entry.js} +1 -1
- package/dist/ionic/{p-a4d51b8d.system.js → p-79b12fda.system.js} +1 -1
- package/dist/ionic/{p-8ed31163.system.entry.js → p-79e7be3a.system.entry.js} +1 -1
- package/dist/ionic/{p-7c50965e.entry.js → p-8640e9cd.entry.js} +1 -1
- package/dist/ionic/{p-9c23044d.entry.js → p-87a4407b.entry.js} +1 -1
- package/dist/ionic/{p-a41699db.entry.js → p-8ff21f38.entry.js} +1 -1
- package/dist/ionic/{p-b0568945.system.entry.js → p-921e159f.system.entry.js} +1 -1
- package/dist/ionic/{p-2b7c93b4.entry.js → p-9895e7f3.entry.js} +1 -1
- package/dist/ionic/{p-5e66bcf2.entry.js → p-9e208825.entry.js} +1 -1
- package/dist/ionic/{p-755b27f0.system.entry.js → p-be715dd3.system.entry.js} +1 -1
- package/dist/ionic/{p-22c020db.system.entry.js → p-c3cd6947.system.entry.js} +1 -1
- package/dist/ionic/{p-0fa0c92b.entry.js → p-c444705a.entry.js} +1 -1
- package/dist/ionic/{p-d77e12ca.entry.js → p-d5abc4b3.entry.js} +1 -1
- package/dist/ionic/p-dda5c73d.entry.js +4 -0
- package/dist/ionic/{p-9cc3bcc5.system.entry.js → p-f0ab13a8.system.entry.js} +1 -1
- package/dist/ionic/{p-ecb57d24.system.entry.js → p-fd2f3a15.system.entry.js} +1 -1
- package/dist/types/components/input/input.d.ts +3 -0
- package/dist/types/components/textarea/textarea.d.ts +3 -0
- package/hydrate/index.js +101 -16
- package/hydrate/index.mjs +101 -16
- package/package.json +1 -1
- package/dist/esm-es5/overlays-9c75ec54.js +0 -4
- package/dist/ionic/p-2c4bdd9d.entry.js +0 -4
- package/dist/ionic/p-98871496.system.js +0 -4
- package/dist/ionic/p-a440397c.js +0 -4
- package/dist/ionic/p-bfa2e81c.entry.js +0 -4
package/hydrate/index.js
CHANGED
|
@@ -5014,9 +5014,19 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
5014
5014
|
if (overlay.presented) {
|
|
5015
5015
|
return;
|
|
5016
5016
|
}
|
|
5017
|
-
|
|
5017
|
+
/**
|
|
5018
|
+
* Due to accessibility guidelines, toasts do not have
|
|
5019
|
+
* focus traps.
|
|
5020
|
+
*
|
|
5021
|
+
* All other overlays should have focus traps to prevent
|
|
5022
|
+
* the keyboard focus from leaving the overlay.
|
|
5023
|
+
*/
|
|
5024
|
+
if (overlay.el.tagName !== 'ION-TOAST') {
|
|
5025
|
+
setRootAriaHidden(true);
|
|
5026
|
+
}
|
|
5018
5027
|
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
5019
|
-
|
|
5028
|
+
hideUnderlyingOverlaysFromScreenReaders(overlay.el);
|
|
5029
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
5020
5030
|
overlay.presented = true;
|
|
5021
5031
|
overlay.willPresent.emit();
|
|
5022
5032
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -5056,6 +5066,11 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
5056
5066
|
* it would still have aria-hidden on being presented again.
|
|
5057
5067
|
* Removing it here ensures the overlay is visible to screen
|
|
5058
5068
|
* readers.
|
|
5069
|
+
*
|
|
5070
|
+
* If this overlay was being presented, then it was hidden
|
|
5071
|
+
* from screen readers during the animation. Now that the
|
|
5072
|
+
* animation is complete, we can reveal the overlay to
|
|
5073
|
+
* screen readers.
|
|
5059
5074
|
*/
|
|
5060
5075
|
overlay.el.removeAttribute('aria-hidden');
|
|
5061
5076
|
};
|
|
@@ -5113,17 +5128,35 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
5113
5128
|
if (!overlay.presented) {
|
|
5114
5129
|
return false;
|
|
5115
5130
|
}
|
|
5116
|
-
const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
|
|
5117
5131
|
/**
|
|
5118
|
-
*
|
|
5119
|
-
*
|
|
5132
|
+
* For accessibility, toasts lack focus traps and don’t receive
|
|
5133
|
+
* `aria-hidden` on the root element when presented.
|
|
5134
|
+
*
|
|
5135
|
+
* All other overlays use focus traps to keep keyboard focus
|
|
5136
|
+
* within the overlay, setting `aria-hidden` on the root element
|
|
5137
|
+
* to enhance accessibility.
|
|
5138
|
+
*
|
|
5139
|
+
* Therefore, we must remove `aria-hidden` from the root element
|
|
5140
|
+
* when the last non-toast overlay is dismissed.
|
|
5120
5141
|
*/
|
|
5121
|
-
|
|
5142
|
+
const overlaysNotToast = doc !== undefined ? getPresentedOverlays(doc).filter((o) => o.tagName !== 'ION-TOAST') : [];
|
|
5143
|
+
const lastOverlayNotToast = overlaysNotToast.length === 1 && overlaysNotToast[0].id === overlay.el.id;
|
|
5144
|
+
/**
|
|
5145
|
+
* If this is the last visible overlay that is not a toast
|
|
5146
|
+
* then we want to re-add the root to the accessibility tree.
|
|
5147
|
+
*/
|
|
5148
|
+
if (lastOverlayNotToast) {
|
|
5122
5149
|
setRootAriaHidden(false);
|
|
5123
5150
|
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
5124
5151
|
}
|
|
5125
5152
|
overlay.presented = false;
|
|
5126
5153
|
try {
|
|
5154
|
+
/**
|
|
5155
|
+
* There is no need to show the overlay to screen readers during
|
|
5156
|
+
* the dismiss animation. This is because the overlay will be removed
|
|
5157
|
+
* from the DOM after the animation is complete.
|
|
5158
|
+
*/
|
|
5159
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
5127
5160
|
// Overlay contents should not be clickable during dismiss
|
|
5128
5161
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
5129
5162
|
overlay.willDismiss.emit({ data, role });
|
|
@@ -5358,6 +5391,28 @@ const createTriggerController = () => {
|
|
|
5358
5391
|
removeClickListener,
|
|
5359
5392
|
};
|
|
5360
5393
|
};
|
|
5394
|
+
/**
|
|
5395
|
+
* The overlay that is being animated also needs to hide from screen
|
|
5396
|
+
* readers during its animation. This ensures that assistive technologies
|
|
5397
|
+
* like TalkBack do not announce or interact with the content until the
|
|
5398
|
+
* animation is complete, avoiding confusion for users.
|
|
5399
|
+
*
|
|
5400
|
+
* If the overlay is being presented, it prevents focus rings from appearing
|
|
5401
|
+
* in incorrect positions due to the transition (specifically `transform`
|
|
5402
|
+
* styles), ensuring that when aria-hidden is removed, the focus rings are
|
|
5403
|
+
* correctly displayed in the final location of the elements.
|
|
5404
|
+
*
|
|
5405
|
+
* @param overlay - The overlay that is being animated.
|
|
5406
|
+
*/
|
|
5407
|
+
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
5408
|
+
if (doc === undefined)
|
|
5409
|
+
return;
|
|
5410
|
+
/**
|
|
5411
|
+
* Once the animation is complete, this attribute will be removed.
|
|
5412
|
+
* This is done at the end of the `present` method.
|
|
5413
|
+
*/
|
|
5414
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
5415
|
+
};
|
|
5361
5416
|
/**
|
|
5362
5417
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
5363
5418
|
* cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
|
|
@@ -5368,7 +5423,7 @@ const createTriggerController = () => {
|
|
|
5368
5423
|
* @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
|
|
5369
5424
|
* fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
|
|
5370
5425
|
*/
|
|
5371
|
-
const
|
|
5426
|
+
const hideUnderlyingOverlaysFromScreenReaders = (newTopMostOverlay) => {
|
|
5372
5427
|
var _a;
|
|
5373
5428
|
if (doc === undefined)
|
|
5374
5429
|
return;
|
|
@@ -14961,6 +15016,8 @@ class Input {
|
|
|
14961
15016
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
14962
15017
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
14963
15018
|
this.inputId = `ion-input-${inputIds++}`;
|
|
15019
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
15020
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
14964
15021
|
this.inheritedAttributes = {};
|
|
14965
15022
|
this.isComposing = false;
|
|
14966
15023
|
/**
|
|
@@ -15223,8 +15280,21 @@ class Input {
|
|
|
15223
15280
|
* Renders the helper text or error text values
|
|
15224
15281
|
*/
|
|
15225
15282
|
renderHintText() {
|
|
15226
|
-
const { helperText, errorText } = this;
|
|
15227
|
-
return [
|
|
15283
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
15284
|
+
return [
|
|
15285
|
+
hAsync("div", { id: helperTextId, class: "helper-text" }, helperText),
|
|
15286
|
+
hAsync("div", { id: errorTextId, class: "error-text" }, errorText),
|
|
15287
|
+
];
|
|
15288
|
+
}
|
|
15289
|
+
getHintTextID() {
|
|
15290
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
15291
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
15292
|
+
return errorTextId;
|
|
15293
|
+
}
|
|
15294
|
+
if (helperText) {
|
|
15295
|
+
return helperTextId;
|
|
15296
|
+
}
|
|
15297
|
+
return undefined;
|
|
15228
15298
|
}
|
|
15229
15299
|
renderCounter() {
|
|
15230
15300
|
const { counter, maxlength, counterFormatter, value } = this;
|
|
@@ -15331,7 +15401,7 @@ class Input {
|
|
|
15331
15401
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
15332
15402
|
*/
|
|
15333
15403
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
15334
|
-
return (hAsync(Host, { key: '
|
|
15404
|
+
return (hAsync(Host, { key: 'cdde9963d71685e6a4f3f3b3bc52e75d022435cb', class: createColorClasses$1(this.color, {
|
|
15335
15405
|
[mode]: true,
|
|
15336
15406
|
'has-value': hasValue,
|
|
15337
15407
|
'has-focus': hasFocus,
|
|
@@ -15342,7 +15412,7 @@ class Input {
|
|
|
15342
15412
|
'in-item': inItem,
|
|
15343
15413
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
15344
15414
|
'input-disabled': disabled,
|
|
15345
|
-
}) }, hAsync("label", { key: '
|
|
15415
|
+
}) }, hAsync("label", { key: '4412791c93405f20e50e50363879265180b6078f', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '5c71c43ef3eeb44dde76ed64ce10763834c8fbc7', class: "native-wrapper" }, hAsync("slot", { key: '1d86b58dc299a4208dd02ccdc9ceaea7576698c3', name: "start" }), hAsync("input", Object.assign({ key: '7fc932174485f7d09e6a797dfd49ea11fbad71b6', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '46de455e4e308b8d7640b04778f7c7559b4124c6', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
15346
15416
|
/**
|
|
15347
15417
|
* This prevents mobile browsers from
|
|
15348
15418
|
* blurring the input when the clear
|
|
@@ -15357,7 +15427,7 @@ class Input {
|
|
|
15357
15427
|
* for screen readers as it means users would be unable to swipe past the clear button.
|
|
15358
15428
|
*/
|
|
15359
15429
|
ev.stopPropagation();
|
|
15360
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
15430
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '375e860a20e1807ce0db0e1934a0650fe9929966', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '859d47a1b88aa8377479e5d11e52a6a1c1c30e7e', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'd2d4286b348107e33247b5c0afda0f8bd697ecee', class: "input-highlight" })), this.renderBottomContent()));
|
|
15361
15431
|
}
|
|
15362
15432
|
get el() { return getElement(this); }
|
|
15363
15433
|
static get watchers() { return {
|
|
@@ -30703,6 +30773,8 @@ class Textarea {
|
|
|
30703
30773
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
30704
30774
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
30705
30775
|
this.inputId = `ion-textarea-${textareaIds++}`;
|
|
30776
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
30777
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
30706
30778
|
/**
|
|
30707
30779
|
* `true` if the textarea was cleared as a result of the user typing
|
|
30708
30780
|
* with `clearOnEdit` enabled.
|
|
@@ -30980,8 +31052,21 @@ class Textarea {
|
|
|
30980
31052
|
* Renders the helper text or error text values
|
|
30981
31053
|
*/
|
|
30982
31054
|
renderHintText() {
|
|
30983
|
-
const { helperText, errorText } = this;
|
|
30984
|
-
return [
|
|
31055
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
31056
|
+
return [
|
|
31057
|
+
hAsync("div", { id: helperTextId, class: "helper-text" }, helperText),
|
|
31058
|
+
hAsync("div", { id: errorTextId, class: "error-text" }, errorText),
|
|
31059
|
+
];
|
|
31060
|
+
}
|
|
31061
|
+
getHintTextID() {
|
|
31062
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
31063
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
31064
|
+
return errorTextId;
|
|
31065
|
+
}
|
|
31066
|
+
if (helperText) {
|
|
31067
|
+
return helperTextId;
|
|
31068
|
+
}
|
|
31069
|
+
return undefined;
|
|
30985
31070
|
}
|
|
30986
31071
|
renderCounter() {
|
|
30987
31072
|
const { counter, maxlength, counterFormatter, value } = this;
|
|
@@ -31034,7 +31119,7 @@ class Textarea {
|
|
|
31034
31119
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
31035
31120
|
*/
|
|
31036
31121
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
31037
|
-
return (hAsync(Host, { key: '
|
|
31122
|
+
return (hAsync(Host, { key: 'e8a5b5727c6a018bbd6f5507b690bc5f0959e352', class: createColorClasses$1(this.color, {
|
|
31038
31123
|
[mode]: true,
|
|
31039
31124
|
'has-value': hasValue,
|
|
31040
31125
|
'has-focus': hasFocus,
|
|
@@ -31043,7 +31128,7 @@ class Textarea {
|
|
|
31043
31128
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
31044
31129
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
31045
31130
|
'textarea-disabled': disabled,
|
|
31046
|
-
}) }, hAsync("label", { key: '
|
|
31131
|
+
}) }, hAsync("label", { key: '48e889571e2d3e7e150b038e4b4b15862b418288', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '6c6c7872ae4d351d8b8d772ad18ce3ba7a0e9a87', class: "textarea-wrapper-inner" }, hAsync("div", { key: '03aef5dfa59af0fa78a3e5c92e0ed72396717d72', class: "start-slot-wrapper" }, hAsync("slot", { key: '39aee9faebb0f1d10de5a5817fd9d9771b074b96', name: "start" })), hAsync("div", { key: '738e8ff603f4c9b9083b3139db861f4b7ec20f79', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '7763fb4f8ffe94635167331c70d21d661544c4f8', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: 'b3af9ec0982c6dbd381afaa02df153d7e90471be', class: "end-slot-wrapper" }, hAsync("slot", { key: '60f99bcd49a5ec2e1fa6e3e77809aefeb9d2d0d6', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '6a7f45639ba027f4da573adae53f1197a6dec383', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
31047
31132
|
}
|
|
31048
31133
|
get el() { return getElement(this); }
|
|
31049
31134
|
static get watchers() { return {
|
package/hydrate/index.mjs
CHANGED
|
@@ -5010,9 +5010,19 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
5010
5010
|
if (overlay.presented) {
|
|
5011
5011
|
return;
|
|
5012
5012
|
}
|
|
5013
|
-
|
|
5013
|
+
/**
|
|
5014
|
+
* Due to accessibility guidelines, toasts do not have
|
|
5015
|
+
* focus traps.
|
|
5016
|
+
*
|
|
5017
|
+
* All other overlays should have focus traps to prevent
|
|
5018
|
+
* the keyboard focus from leaving the overlay.
|
|
5019
|
+
*/
|
|
5020
|
+
if (overlay.el.tagName !== 'ION-TOAST') {
|
|
5021
|
+
setRootAriaHidden(true);
|
|
5022
|
+
}
|
|
5014
5023
|
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
5015
|
-
|
|
5024
|
+
hideUnderlyingOverlaysFromScreenReaders(overlay.el);
|
|
5025
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
5016
5026
|
overlay.presented = true;
|
|
5017
5027
|
overlay.willPresent.emit();
|
|
5018
5028
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -5052,6 +5062,11 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
5052
5062
|
* it would still have aria-hidden on being presented again.
|
|
5053
5063
|
* Removing it here ensures the overlay is visible to screen
|
|
5054
5064
|
* readers.
|
|
5065
|
+
*
|
|
5066
|
+
* If this overlay was being presented, then it was hidden
|
|
5067
|
+
* from screen readers during the animation. Now that the
|
|
5068
|
+
* animation is complete, we can reveal the overlay to
|
|
5069
|
+
* screen readers.
|
|
5055
5070
|
*/
|
|
5056
5071
|
overlay.el.removeAttribute('aria-hidden');
|
|
5057
5072
|
};
|
|
@@ -5109,17 +5124,35 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
5109
5124
|
if (!overlay.presented) {
|
|
5110
5125
|
return false;
|
|
5111
5126
|
}
|
|
5112
|
-
const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
|
|
5113
5127
|
/**
|
|
5114
|
-
*
|
|
5115
|
-
*
|
|
5128
|
+
* For accessibility, toasts lack focus traps and don’t receive
|
|
5129
|
+
* `aria-hidden` on the root element when presented.
|
|
5130
|
+
*
|
|
5131
|
+
* All other overlays use focus traps to keep keyboard focus
|
|
5132
|
+
* within the overlay, setting `aria-hidden` on the root element
|
|
5133
|
+
* to enhance accessibility.
|
|
5134
|
+
*
|
|
5135
|
+
* Therefore, we must remove `aria-hidden` from the root element
|
|
5136
|
+
* when the last non-toast overlay is dismissed.
|
|
5116
5137
|
*/
|
|
5117
|
-
|
|
5138
|
+
const overlaysNotToast = doc !== undefined ? getPresentedOverlays(doc).filter((o) => o.tagName !== 'ION-TOAST') : [];
|
|
5139
|
+
const lastOverlayNotToast = overlaysNotToast.length === 1 && overlaysNotToast[0].id === overlay.el.id;
|
|
5140
|
+
/**
|
|
5141
|
+
* If this is the last visible overlay that is not a toast
|
|
5142
|
+
* then we want to re-add the root to the accessibility tree.
|
|
5143
|
+
*/
|
|
5144
|
+
if (lastOverlayNotToast) {
|
|
5118
5145
|
setRootAriaHidden(false);
|
|
5119
5146
|
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
5120
5147
|
}
|
|
5121
5148
|
overlay.presented = false;
|
|
5122
5149
|
try {
|
|
5150
|
+
/**
|
|
5151
|
+
* There is no need to show the overlay to screen readers during
|
|
5152
|
+
* the dismiss animation. This is because the overlay will be removed
|
|
5153
|
+
* from the DOM after the animation is complete.
|
|
5154
|
+
*/
|
|
5155
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
5123
5156
|
// Overlay contents should not be clickable during dismiss
|
|
5124
5157
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
5125
5158
|
overlay.willDismiss.emit({ data, role });
|
|
@@ -5354,6 +5387,28 @@ const createTriggerController = () => {
|
|
|
5354
5387
|
removeClickListener,
|
|
5355
5388
|
};
|
|
5356
5389
|
};
|
|
5390
|
+
/**
|
|
5391
|
+
* The overlay that is being animated also needs to hide from screen
|
|
5392
|
+
* readers during its animation. This ensures that assistive technologies
|
|
5393
|
+
* like TalkBack do not announce or interact with the content until the
|
|
5394
|
+
* animation is complete, avoiding confusion for users.
|
|
5395
|
+
*
|
|
5396
|
+
* If the overlay is being presented, it prevents focus rings from appearing
|
|
5397
|
+
* in incorrect positions due to the transition (specifically `transform`
|
|
5398
|
+
* styles), ensuring that when aria-hidden is removed, the focus rings are
|
|
5399
|
+
* correctly displayed in the final location of the elements.
|
|
5400
|
+
*
|
|
5401
|
+
* @param overlay - The overlay that is being animated.
|
|
5402
|
+
*/
|
|
5403
|
+
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
5404
|
+
if (doc === undefined)
|
|
5405
|
+
return;
|
|
5406
|
+
/**
|
|
5407
|
+
* Once the animation is complete, this attribute will be removed.
|
|
5408
|
+
* This is done at the end of the `present` method.
|
|
5409
|
+
*/
|
|
5410
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
5411
|
+
};
|
|
5357
5412
|
/**
|
|
5358
5413
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
5359
5414
|
* cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
|
|
@@ -5364,7 +5419,7 @@ const createTriggerController = () => {
|
|
|
5364
5419
|
* @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
|
|
5365
5420
|
* fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
|
|
5366
5421
|
*/
|
|
5367
|
-
const
|
|
5422
|
+
const hideUnderlyingOverlaysFromScreenReaders = (newTopMostOverlay) => {
|
|
5368
5423
|
var _a;
|
|
5369
5424
|
if (doc === undefined)
|
|
5370
5425
|
return;
|
|
@@ -14957,6 +15012,8 @@ class Input {
|
|
|
14957
15012
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
14958
15013
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
14959
15014
|
this.inputId = `ion-input-${inputIds++}`;
|
|
15015
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
15016
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
14960
15017
|
this.inheritedAttributes = {};
|
|
14961
15018
|
this.isComposing = false;
|
|
14962
15019
|
/**
|
|
@@ -15219,8 +15276,21 @@ class Input {
|
|
|
15219
15276
|
* Renders the helper text or error text values
|
|
15220
15277
|
*/
|
|
15221
15278
|
renderHintText() {
|
|
15222
|
-
const { helperText, errorText } = this;
|
|
15223
|
-
return [
|
|
15279
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
15280
|
+
return [
|
|
15281
|
+
hAsync("div", { id: helperTextId, class: "helper-text" }, helperText),
|
|
15282
|
+
hAsync("div", { id: errorTextId, class: "error-text" }, errorText),
|
|
15283
|
+
];
|
|
15284
|
+
}
|
|
15285
|
+
getHintTextID() {
|
|
15286
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
15287
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
15288
|
+
return errorTextId;
|
|
15289
|
+
}
|
|
15290
|
+
if (helperText) {
|
|
15291
|
+
return helperTextId;
|
|
15292
|
+
}
|
|
15293
|
+
return undefined;
|
|
15224
15294
|
}
|
|
15225
15295
|
renderCounter() {
|
|
15226
15296
|
const { counter, maxlength, counterFormatter, value } = this;
|
|
@@ -15327,7 +15397,7 @@ class Input {
|
|
|
15327
15397
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
15328
15398
|
*/
|
|
15329
15399
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
15330
|
-
return (hAsync(Host, { key: '
|
|
15400
|
+
return (hAsync(Host, { key: 'cdde9963d71685e6a4f3f3b3bc52e75d022435cb', class: createColorClasses$1(this.color, {
|
|
15331
15401
|
[mode]: true,
|
|
15332
15402
|
'has-value': hasValue,
|
|
15333
15403
|
'has-focus': hasFocus,
|
|
@@ -15338,7 +15408,7 @@ class Input {
|
|
|
15338
15408
|
'in-item': inItem,
|
|
15339
15409
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
15340
15410
|
'input-disabled': disabled,
|
|
15341
|
-
}) }, hAsync("label", { key: '
|
|
15411
|
+
}) }, hAsync("label", { key: '4412791c93405f20e50e50363879265180b6078f', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '5c71c43ef3eeb44dde76ed64ce10763834c8fbc7', class: "native-wrapper" }, hAsync("slot", { key: '1d86b58dc299a4208dd02ccdc9ceaea7576698c3', name: "start" }), hAsync("input", Object.assign({ key: '7fc932174485f7d09e6a797dfd49ea11fbad71b6', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '46de455e4e308b8d7640b04778f7c7559b4124c6', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
15342
15412
|
/**
|
|
15343
15413
|
* This prevents mobile browsers from
|
|
15344
15414
|
* blurring the input when the clear
|
|
@@ -15353,7 +15423,7 @@ class Input {
|
|
|
15353
15423
|
* for screen readers as it means users would be unable to swipe past the clear button.
|
|
15354
15424
|
*/
|
|
15355
15425
|
ev.stopPropagation();
|
|
15356
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
15426
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '375e860a20e1807ce0db0e1934a0650fe9929966', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '859d47a1b88aa8377479e5d11e52a6a1c1c30e7e', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'd2d4286b348107e33247b5c0afda0f8bd697ecee', class: "input-highlight" })), this.renderBottomContent()));
|
|
15357
15427
|
}
|
|
15358
15428
|
get el() { return getElement(this); }
|
|
15359
15429
|
static get watchers() { return {
|
|
@@ -30699,6 +30769,8 @@ class Textarea {
|
|
|
30699
30769
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
30700
30770
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
30701
30771
|
this.inputId = `ion-textarea-${textareaIds++}`;
|
|
30772
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
30773
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
30702
30774
|
/**
|
|
30703
30775
|
* `true` if the textarea was cleared as a result of the user typing
|
|
30704
30776
|
* with `clearOnEdit` enabled.
|
|
@@ -30976,8 +31048,21 @@ class Textarea {
|
|
|
30976
31048
|
* Renders the helper text or error text values
|
|
30977
31049
|
*/
|
|
30978
31050
|
renderHintText() {
|
|
30979
|
-
const { helperText, errorText } = this;
|
|
30980
|
-
return [
|
|
31051
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
31052
|
+
return [
|
|
31053
|
+
hAsync("div", { id: helperTextId, class: "helper-text" }, helperText),
|
|
31054
|
+
hAsync("div", { id: errorTextId, class: "error-text" }, errorText),
|
|
31055
|
+
];
|
|
31056
|
+
}
|
|
31057
|
+
getHintTextID() {
|
|
31058
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
31059
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
31060
|
+
return errorTextId;
|
|
31061
|
+
}
|
|
31062
|
+
if (helperText) {
|
|
31063
|
+
return helperTextId;
|
|
31064
|
+
}
|
|
31065
|
+
return undefined;
|
|
30981
31066
|
}
|
|
30982
31067
|
renderCounter() {
|
|
30983
31068
|
const { counter, maxlength, counterFormatter, value } = this;
|
|
@@ -31030,7 +31115,7 @@ class Textarea {
|
|
|
31030
31115
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
31031
31116
|
*/
|
|
31032
31117
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
31033
|
-
return (hAsync(Host, { key: '
|
|
31118
|
+
return (hAsync(Host, { key: 'e8a5b5727c6a018bbd6f5507b690bc5f0959e352', class: createColorClasses$1(this.color, {
|
|
31034
31119
|
[mode]: true,
|
|
31035
31120
|
'has-value': hasValue,
|
|
31036
31121
|
'has-focus': hasFocus,
|
|
@@ -31039,7 +31124,7 @@ class Textarea {
|
|
|
31039
31124
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
31040
31125
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
31041
31126
|
'textarea-disabled': disabled,
|
|
31042
|
-
}) }, hAsync("label", { key: '
|
|
31127
|
+
}) }, hAsync("label", { key: '48e889571e2d3e7e150b038e4b4b15862b418288', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '6c6c7872ae4d351d8b8d772ad18ce3ba7a0e9a87', class: "textarea-wrapper-inner" }, hAsync("div", { key: '03aef5dfa59af0fa78a3e5c92e0ed72396717d72', class: "start-slot-wrapper" }, hAsync("slot", { key: '39aee9faebb0f1d10de5a5817fd9d9771b074b96', name: "start" })), hAsync("div", { key: '738e8ff603f4c9b9083b3139db861f4b7ec20f79', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '7763fb4f8ffe94635167331c70d21d661544c4f8', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: 'b3af9ec0982c6dbd381afaa02df153d7e90471be', class: "end-slot-wrapper" }, hAsync("slot", { key: '60f99bcd49a5ec2e1fa6e3e77809aefeb9d2d0d6', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '6a7f45639ba027f4da573adae53f1197a6dec383', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
31043
31128
|
}
|
|
31044
31129
|
get el() { return getElement(this); }
|
|
31045
31130
|
static get watchers() { return {
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{__awaiter,__generator,__spreadArray}from"tslib";
|
|
2
|
-
/*!
|
|
3
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
4
|
-
*/import{d as doc}from"./index-a5d50daf.js";import{f as focusVisibleElement,c as componentOnReady,a as addEventListener,b as removeEventListener,g as getElementRoot}from"./helpers-da915de8.js";import{OVERLAY_BACK_BUTTON_PRIORITY,shouldUseCloseWatcher}from"./hardware-back-button-06ef3c3e.js";import{b as getIonMode,c as config}from"./ionic-global-c81d82ab.js";import{C as CoreDelegate}from"./framework-delegate-63d1a679.js";import{B as BACKDROP_NO_SCROLL}from"./gesture-controller-314a54f6.js";import{p as printIonWarning}from"./index-9b0d46f4.js";var focusableQueryString='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';var focusFirstDescendant=function(e,n){var r=e.querySelector(focusableQueryString);focusElementInContext(r,n!==null&&n!==void 0?n:e)};var focusLastDescendant=function(e,n){var r=Array.from(e.querySelectorAll(focusableQueryString));var t=r.length>0?r[r.length-1]:null;focusElementInContext(t,n!==null&&n!==void 0?n:e)};var focusElementInContext=function(e,n){var r=e;var t=e===null||e===void 0?void 0:e.shadowRoot;if(t){r=t.querySelector(focusableQueryString)||e}if(r){focusVisibleElement(r)}else{n.focus()}};var lastOverlayIndex=0;var lastId=0;var activeAnimations=new WeakMap;var createController=function(e){return{create:function(n){return createOverlay(e,n)},dismiss:function(n,r,t){return dismissOverlay(document,n,r,e,t)},getTop:function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){return[2,getPresentedOverlay(document,e)]}))}))}}};var alertController=createController("ion-alert");var actionSheetController=createController("ion-action-sheet");var loadingController=createController("ion-loading");var modalController=createController("ion-modal");var pickerController=createController("ion-picker-legacy");var popoverController=createController("ion-popover");var toastController=createController("ion-toast");var prepareOverlay=function(e){if(typeof document!=="undefined"){connectListeners(document)}var n=lastOverlayIndex++;e.overlayIndex=n};var setOverlayId=function(e){if(!e.hasAttribute("id")){e.id="ion-overlay-".concat(++lastId)}return e.id};var createOverlay=function(e,n){if(typeof window!=="undefined"&&typeof window.customElements!=="undefined"){return window.customElements.whenDefined(e).then((function(){var r=document.createElement(e);r.classList.add("overlay-hidden");Object.assign(r,Object.assign(Object.assign({},n),{hasController:true}));getAppRoot(document).appendChild(r);return new Promise((function(e){return componentOnReady(r,e)}))}))}return Promise.resolve()};var isOverlayHidden=function(e){return e.classList.contains("overlay-hidden")};var focusElementInOverlay=function(e,n){var r=e;var t=e===null||e===void 0?void 0:e.shadowRoot;if(t){r=t.querySelector(focusableQueryString)||e}if(r){focusVisibleElement(r)}else{n.focus()}};var trapKeyboardFocus=function(e,n){var r=getPresentedOverlay(n,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover");var t=e.target;if(!r||!t){return}if(r.classList.contains(FOCUS_TRAP_DISABLE_CLASS)){return}var o=function(){if(r===t){r.lastFocus=undefined}else if(t.tagName==="ION-TOAST"){focusElementInOverlay(r.lastFocus,r)}else{var e=getElementRoot(r);if(!e.contains(t)){return}var o=e.querySelector(".ion-overlay-wrapper");if(!o){return}if(o.contains(t)||t===e.querySelector("ion-backdrop")){r.lastFocus=t}else{var a=r.lastFocus;focusFirstDescendant(o,r);if(a===n.activeElement){focusLastDescendant(o,r)}r.lastFocus=n.activeElement}}};var a=function(){if(r.contains(t)){r.lastFocus=t}else if(t.tagName==="ION-TOAST"){focusElementInOverlay(r.lastFocus,r)}else{var e=r.lastFocus;focusFirstDescendant(r);if(e===n.activeElement){focusLastDescendant(r)}r.lastFocus=n.activeElement}};if(r.shadowRoot){a()}else{o()}};var connectListeners=function(e){if(lastOverlayIndex===0){lastOverlayIndex=1;e.addEventListener("focus",(function(n){trapKeyboardFocus(n,e)}),true);e.addEventListener("ionBackButton",(function(n){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){n.detail.register(OVERLAY_BACK_BUTTON_PRIORITY,(function(){r.dismiss(undefined,BACKDROP)}))}}));if(!shouldUseCloseWatcher()){e.addEventListener("keydown",(function(n){if(n.key==="Escape"){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){r.dismiss(undefined,BACKDROP)}}}))}}};var dismissOverlay=function(e,n,r,t,o){var a=getPresentedOverlay(e,t,o);if(!a){return Promise.reject("overlay does not exist")}return a.dismiss(n,r)};var getOverlays=function(e,n){if(n===undefined){n="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"}return Array.from(e.querySelectorAll(n)).filter((function(e){return e.overlayIndex>0}))};var getPresentedOverlays=function(e,n){return getOverlays(e,n).filter((function(e){return!isOverlayHidden(e)}))};var getPresentedOverlay=function(e,n,r){var t=getPresentedOverlays(e,n);return r===undefined?t[t.length-1]:t.find((function(e){return e.id===r}))};var setRootAriaHidden=function(e){if(e===void 0){e=false}var n=getAppRoot(document);var r=n.querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");if(!r){return}if(e){r.setAttribute("aria-hidden","true")}else{r.removeAttribute("aria-hidden")}};var present=function(e,n,r,t,o){return __awaiter(void 0,void 0,void 0,(function(){var a,i,d,s,u;return __generator(this,(function(l){switch(l.label){case 0:if(e.presented){return[2]}setRootAriaHidden(true);document.body.classList.add(BACKDROP_NO_SCROLL);hideOverlaysFromScreenReaders(e.el);e.presented=true;e.willPresent.emit();(a=e.willPresentShorthand)===null||a===void 0?void 0:a.emit();d=getIonMode(e);s=e.enterAnimation?e.enterAnimation:config.get(n,d==="ios"?r:t);return[4,overlayAnimation(e,s,e.el,o)];case 1:u=l.sent();if(u){e.didPresent.emit();(i=e.didPresentShorthand)===null||i===void 0?void 0:i.emit()}if(e.el.tagName!=="ION-TOAST"){restoreElementFocus(e.el)}if(e.keyboardClose&&(document.activeElement===null||!e.el.contains(document.activeElement))){e.el.focus()}e.el.removeAttribute("aria-hidden");return[2]}}))}))};var restoreElementFocus=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r;return __generator(this,(function(t){switch(t.label){case 0:n=document.activeElement;if(!n){return[2]}r=n===null||n===void 0?void 0:n.shadowRoot;if(r){n=r.querySelector(focusableQueryString)||n}return[4,e.onDidDismiss()];case 1:t.sent();if(document.activeElement===null||document.activeElement===document.body){n.focus()}return[2]}}))}))};var dismiss=function(e,n,r,t,o,a,i){return __awaiter(void 0,void 0,void 0,(function(){var d,s,u,l,c,v,f;return __generator(this,(function(m){switch(m.label){case 0:if(!e.presented){return[2,false]}u=doc!==undefined&&getPresentedOverlays(doc).length===1;if(u){setRootAriaHidden(false);document.body.classList.remove(BACKDROP_NO_SCROLL)}e.presented=false;m.label=1;case 1:m.trys.push([1,4,,5]);e.el.style.setProperty("pointer-events","none");e.willDismiss.emit({data:n,role:r});(d=e.willDismissShorthand)===null||d===void 0?void 0:d.emit({data:n,role:r});l=getIonMode(e);c=e.leaveAnimation?e.leaveAnimation:config.get(t,l==="ios"?o:a);if(!(r!==GESTURE))return[3,3];return[4,overlayAnimation(e,c,e.el,i)];case 2:m.sent();m.label=3;case 3:e.didDismiss.emit({data:n,role:r});(s=e.didDismissShorthand)===null||s===void 0?void 0:s.emit({data:n,role:r});v=activeAnimations.get(e)||[];v.forEach((function(e){return e.destroy()}));activeAnimations.delete(e);e.el.classList.add("overlay-hidden");e.el.style.removeProperty("pointer-events");if(e.el.lastFocus!==undefined){e.el.lastFocus=undefined}return[3,5];case 4:f=m.sent();console.error(f);return[3,5];case 5:e.el.remove();revealOverlaysToScreenReaders();return[2,true]}}))}))};var getAppRoot=function(e){return e.querySelector("ion-app")||e.body};var overlayAnimation=function(e,n,r,t){return __awaiter(void 0,void 0,void 0,(function(){var o,a,i;return __generator(this,(function(d){switch(d.label){case 0:r.classList.remove("overlay-hidden");o=e.el;a=n(o,t);if(!e.animated||!config.getBoolean("animated",true)){a.duration(0)}if(e.keyboardClose){a.beforeAddWrite((function(){var e=r.ownerDocument.activeElement;if(e===null||e===void 0?void 0:e.matches("input,ion-input, ion-textarea")){e.blur()}}))}i=activeAnimations.get(e)||[];activeAnimations.set(e,__spreadArray(__spreadArray([],i,true),[a],false));return[4,a.play()];case 1:d.sent();return[2,true]}}))}))};var eventMethod=function(e,n){var r;var t=new Promise((function(e){return r=e}));onceEvent(e,n,(function(e){r(e.detail)}));return t};var onceEvent=function(e,n,r){var t=function(o){removeEventListener(e,n,t);r(o)};addEventListener(e,n,t)};var isCancel=function(e){return e==="cancel"||e===BACKDROP};var defaultGate=function(e){return e()};var safeCall=function(e,n){if(typeof e==="function"){var r=config.get("_zoneGate",defaultGate);return r((function(){try{return e(n)}catch(e){throw e}}))}return undefined};var BACKDROP="backdrop";var GESTURE="gesture";var OVERLAY_GESTURE_PRIORITY=39;var createDelegateController=function(e){var n=false;var r;var t=CoreDelegate();var o=function(o){if(o===void 0){o=false}if(r&&!o){return{delegate:r,inline:n}}var a=e.el,i=e.hasController,d=e.delegate;var s=a.parentNode;n=s!==null&&!i;r=n?d||t:d;return{inline:n,delegate:r}};var a=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r,t;return __generator(this,(function(a){switch(a.label){case 0:r=o(true).delegate;if(!r)return[3,2];return[4,r.attachViewToDom(e.el,n)];case 1:return[2,a.sent()];case 2:t=e.hasController;if(t&&n!==undefined){throw new Error("framework delegate is missing")}return[2,null]}}))}))};var i=function(){var n=o().delegate;if(n&&e.el!==undefined){n.removeViewFromDom(e.el.parentElement,e.el)}};return{attachViewToDom:a,removeViewFromDom:i}};var createTriggerController=function(){var e;var n=function(){if(e){e();e=undefined}};var r=function(r,t){n();var o=t!==undefined?document.getElementById(t):null;if(!o){printIonWarning('A trigger element with the ID "'.concat(t,'" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.'),r);return}var a=function(e,n){var r=function(){n.present()};e.addEventListener("click",r);return function(){e.removeEventListener("click",r)}};e=a(o,r)};return{addClickListener:r,removeClickListener:n}};var hideOverlaysFromScreenReaders=function(e){var n;if(doc===undefined)return;var r=getPresentedOverlays(doc);for(var t=r.length-1;t>=0;t--){var o=r[t];var a=(n=r[t+1])!==null&&n!==void 0?n:e;if(a.hasAttribute("aria-hidden")||a.tagName!=="ION-TOAST"){o.setAttribute("aria-hidden","true")}}};var revealOverlaysToScreenReaders=function(){if(doc===undefined)return;var e=getPresentedOverlays(doc);for(var n=e.length-1;n>=0;n--){var r=e[n];r.removeAttribute("aria-hidden");if(r.tagName!=="ION-TOAST"){break}}};var FOCUS_TRAP_DISABLE_CLASS="ion-disable-focus-trap";export{BACKDROP as B,FOCUS_TRAP_DISABLE_CLASS as F,GESTURE as G,OVERLAY_GESTURE_PRIORITY as O,alertController as a,actionSheetController as b,popoverController as c,createDelegateController as d,createTriggerController as e,present as f,dismiss as g,eventMethod as h,isCancel as i,prepareOverlay as j,setOverlayId as k,loadingController as l,modalController as m,focusFirstDescendant as n,getPresentedOverlay as o,pickerController as p,focusLastDescendant as q,safeCall as s,toastController as t};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as t,d as e,w as a,h as i,f as r,i as o,j as n}from"./p-d836d43e.js";import{c as l}from"./p-34b11c24.js";import{e as s,i as d,h as c,c as x}from"./p-b51e4004.js";import{c as p,g as h}from"./p-96cc4814.js";import{h as m,c as b}from"./p-47794def.js";import{b as g}from"./p-0574e87e.js";import"./p-7b30edcc.js";import"./p-06fee233.js";const f=class{constructor(a){t(this,a),this.ionChange=e(this,"ionChange",7),this.ionInput=e(this,"ionInput",7),this.ionBlur=e(this,"ionBlur",7),this.ionFocus=e(this,"ionFocus",7),this.inputId="ion-textarea-"+v++,this.didTextareaClearOnEdit=!1,this.inheritedAttributes={},this.onInput=t=>{const e=t.target;e&&(this.value=e.value||""),this.emitInputChange(t)},this.onChange=t=>{this.emitValueChange(t)},this.onFocus=t=>{this.hasFocus=!0,this.focusedValue=this.value,this.ionFocus.emit(t)},this.onBlur=t=>{this.hasFocus=!1,this.focusedValue!==this.value&&this.emitValueChange(t),this.didTextareaClearOnEdit=!1,this.ionBlur.emit(t)},this.onKeyDown=t=>{this.checkClearOnEdit(t)},this.hasFocus=!1,this.color=void 0,this.autocapitalize="none",this.autofocus=!1,this.clearOnEdit=!1,this.debounce=void 0,this.disabled=!1,this.fill=void 0,this.inputmode=void 0,this.enterkeyhint=void 0,this.maxlength=void 0,this.minlength=void 0,this.name=this.inputId,this.placeholder=void 0,this.readonly=!1,this.required=!1,this.spellcheck=!1,this.cols=void 0,this.rows=void 0,this.wrap=void 0,this.autoGrow=!1,this.value="",this.counter=!1,this.counterFormatter=void 0,this.errorText=void 0,this.helperText=void 0,this.label=void 0,this.labelPlacement="start",this.shape=void 0}debounceChanged(){const{ionInput:t,debounce:e,originalIonInput:a}=this;this.ionInput=void 0===e?null!=a?a:t:s(t,e)}valueChanged(){const t=this.nativeInput,e=this.getValue();t&&t.value!==e&&(t.value=e),this.runAutoGrow()}connectedCallback(){const{el:t}=this;this.slotMutationController=p(t,["label","start","end"],(()=>n(this))),this.notchController=l(t,(()=>this.notchSpacerEl),(()=>this.labelSlot)),this.debounceChanged(),document.dispatchEvent(new CustomEvent("ionInputDidLoad",{detail:t}))}disconnectedCallback(){document.dispatchEvent(new CustomEvent("ionInputDidUnload",{detail:this.el})),this.slotMutationController&&(this.slotMutationController.destroy(),this.slotMutationController=void 0),this.notchController&&(this.notchController.destroy(),this.notchController=void 0)}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},d(this.el)),c(this.el,["data-form-type","title","tabindex"]))}componentDidLoad(){this.originalIonInput=this.ionInput,this.runAutoGrow()}componentDidRender(){var t;null===(t=this.notchController)||void 0===t||t.calculateNotchWidth()}async setFocus(){this.nativeInput&&this.nativeInput.focus()}async getInputElement(){return this.nativeInput||await new Promise((t=>x(this.el,t))),Promise.resolve(this.nativeInput)}emitValueChange(t){const{value:e}=this,a=null==e?e:e.toString();this.focusedValue=a,this.ionChange.emit({value:a,event:t})}emitInputChange(t){const{value:e}=this;this.ionInput.emit({value:e,event:t})}runAutoGrow(){this.nativeInput&&this.autoGrow&&a((()=>{var t;this.textareaWrapper&&(this.textareaWrapper.dataset.replicatedValue=null!==(t=this.value)&&void 0!==t?t:"")}))}checkClearOnEdit(t){if(!this.clearOnEdit)return;const e=["Tab","Shift","Meta","Alt","Control"].includes(t.key);this.didTextareaClearOnEdit||!this.hasValue()||e||(this.value="",this.emitInputChange(t)),e||(this.didTextareaClearOnEdit=!0)}hasValue(){return""!==this.getValue()}getValue(){return this.value||""}renderLabel(){const{label:t}=this;return i("div",{class:{"label-text-wrapper":!0,"label-text-wrapper-hidden":!this.hasLabel}},void 0===t?i("slot",{name:"label"}):i("div",{class:"label-text"},t))}get labelSlot(){return this.el.querySelector('[slot="label"]')}get hasLabel(){return void 0!==this.label||null!==this.labelSlot}renderLabelContainer(){return"md"===g(this)&&"outline"===this.fill?[i("div",{class:"textarea-outline-container"},i("div",{class:"textarea-outline-start"}),i("div",{class:{"textarea-outline-notch":!0,"textarea-outline-notch-hidden":!this.hasLabel}},i("div",{class:"notch-spacer","aria-hidden":"true",ref:t=>this.notchSpacerEl=t},this.label)),i("div",{class:"textarea-outline-end"})),this.renderLabel()]:this.renderLabel()}renderHintText(){const{helperText:t,errorText:e}=this;return[i("div",{class:"helper-text"},t),i("div",{class:"error-text"},e)]}renderCounter(){const{counter:t,maxlength:e,counterFormatter:a,value:r}=this;if(!0===t&&void 0!==e)return i("div",{class:"counter"},h(r,e,a))}renderBottomContent(){const{counter:t,helperText:e,errorText:a,maxlength:r}=this;if(e||a||!0===t&&void 0!==r)return i("div",{class:"textarea-bottom"},this.renderHintText(),this.renderCounter())}render(){const{inputId:t,disabled:e,fill:a,shape:o,labelPlacement:n,el:l,hasFocus:s}=this,d=g(this),c=this.getValue(),x=m("ion-item",this.el),p="md"===d&&"outline"!==a&&!x,h=this.hasValue(),f=null!==l.querySelector('[slot="start"], [slot="end"]'),v="stacked"===n||"floating"===n&&(h||s||f);return i(r,{key:"37595a18d77dea1a337ac1c672e5f08a4128111d",class:b(this.color,{[d]:!0,"has-value":h,"has-focus":s,"label-floating":v,[`textarea-fill-${a}`]:void 0!==a,[`textarea-shape-${o}`]:void 0!==o,[`textarea-label-placement-${n}`]:!0,"textarea-disabled":e})},i("label",{key:"67342758743e5a40448a32ff695876d39778621f",class:"textarea-wrapper",htmlFor:t},this.renderLabelContainer(),i("div",{key:"a994be8264bf5652811cf816d79a04178954e83f",class:"textarea-wrapper-inner"},i("div",{key:"e09c93ebcd5b3d227d51e682ca23dfc7fd7027ad",class:"start-slot-wrapper"},i("slot",{key:"d39758f21f19ae70aea21e9a9a7b7c20991fe593",name:"start"})),i("div",{key:"6a4e10e53de4bb235ee30def4c9ae5bdee888816",class:"native-wrapper",ref:t=>this.textareaWrapper=t},i("textarea",Object.assign({key:"9e254e551f124d972e9bc6b09ef0f2bb55890be5",class:"native-textarea",ref:t=>this.nativeInput=t,id:t,disabled:e,autoCapitalize:this.autocapitalize,autoFocus:this.autofocus,enterKeyHint:this.enterkeyhint,inputMode:this.inputmode,minLength:this.minlength,maxLength:this.maxlength,name:this.name,placeholder:this.placeholder||"",readOnly:this.readonly,required:this.required,spellcheck:this.spellcheck,cols:this.cols,rows:this.rows,wrap:this.wrap,onInput:this.onInput,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.onKeyDown},this.inheritedAttributes),c)),i("div",{key:"a66aa2d2bc4778a0bec56a8b9ec9052a832eb3b2",class:"end-slot-wrapper"},i("slot",{key:"8e6a90b4475de32e23afc593da4108610dcca663",name:"end"}))),p&&i("div",{key:"6da03205a8daff45581b20f0af3938634a9d5f8c",class:"textarea-highlight"})),this.renderBottomContent())}get el(){return o(this)}static get watchers(){return{debounce:["debounceChanged"],value:["valueChanged"]}}};let v=0;f.style={ios:'.sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0;--padding-end:0;--padding-bottom:8px;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}.textarea-label-placement-floating.sc-ion-textarea-ios-h,.textarea-label-placement-stacked.sc-ion-textarea-ios-h{--padding-top:0px;min-height:56px}[cols].sc-ion-textarea-ios-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ion-color.sc-ion-textarea-ios-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item[slot=start].sc-ion-textarea-ios-h,ion-item [slot=start].sc-ion-textarea-ios-h,ion-item[slot=end].sc-ion-textarea-ios-h,ion-item [slot=end].sc-ion-textarea-ios-h{width:auto}.native-textarea.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-ios{top:0;bottom:0;position:absolute;pointer-events:none}.cloned-input.sc-ion-textarea-ios{inset-inline-start:0}.cloned-input.sc-ion-textarea-ios:disabled{opacity:1}[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{height:100%}[auto-grow].sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{overflow:hidden}.textarea-wrapper.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0px;padding-bottom:0px;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.native-wrapper.sc-ion-textarea-ios{position:relative;width:100%;height:100%}.has-focus.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}.native-wrapper.sc-ion-textarea-ios{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-ios::after{white-space:pre-wrap;content:attr(data-replicated-value) " ";visibility:hidden}.native-wrapper.sc-ion-textarea-ios::after{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.textarea-wrapper-inner.sc-ion-textarea-ios{display:-ms-flexbox;display:flex;width:100%;min-height:inherit}.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem}.has-focus.ion-valid.sc-ion-textarea-ios-h,.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:block;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:block}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:none}.textarea-bottom.sc-ion-textarea-ios .counter.sc-ion-textarea-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text.sc-ion-textarea-ios,.sc-ion-textarea-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-ios,.textarea-outline-notch-hidden.sc-ion-textarea-ios{display:none}.textarea-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text.sc-ion-textarea-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:left top;transform-origin:left top;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.sc-ion-textarea-ios-h.textarea-label-placement-stacked.sc-ion-textarea-ios-s>[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-stacked .sc-ion-textarea-ios-s>[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-stacked.sc-ion-textarea-ios-s>[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-stacked .sc-ion-textarea-ios-s>[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-floating.sc-ion-textarea-ios-s>[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-floating .sc-ion-textarea-ios-s>[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-floating.sc-ion-textarea-ios-s>[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-floating .sc-ion-textarea-ios-s>[slot=end]{margin-top:8px}.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:1}.label-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.start-slot-wrapper.sc-ion-textarea-ios,.end-slot-wrapper.sc-ion-textarea-ios{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-ms-flex-item-align:start;align-self:start}.sc-ion-textarea-ios-s>[slot=start],.sc-ion-textarea-ios-s>[slot=end]{margin-top:0}.sc-ion-textarea-ios-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-textarea-ios-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.sc-ion-textarea-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--padding-top:10px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;--highlight-height:0px;font-size:inherit}.textarea-disabled.sc-ion-textarea-ios-h{opacity:0.3}.sc-ion-textarea-ios-s>ion-button[slot=start].button-has-icon-only,.sc-ion-textarea-ios-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}',md:'.sc-ion-textarea-md-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0;--padding-end:0;--padding-bottom:8px;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}.textarea-label-placement-floating.sc-ion-textarea-md-h,.textarea-label-placement-stacked.sc-ion-textarea-md-h{--padding-top:0px;min-height:56px}[cols].sc-ion-textarea-md-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ion-color.sc-ion-textarea-md-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-md-h,ion-item .sc-ion-textarea-md-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item[slot=start].sc-ion-textarea-md-h,ion-item [slot=start].sc-ion-textarea-md-h,ion-item[slot=end].sc-ion-textarea-md-h,ion-item [slot=end].sc-ion-textarea-md-h{width:auto}.native-textarea.sc-ion-textarea-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-md::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-md{top:0;bottom:0;position:absolute;pointer-events:none}.cloned-input.sc-ion-textarea-md{inset-inline-start:0}.cloned-input.sc-ion-textarea-md:disabled{opacity:1}[auto-grow].sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md{height:100%}[auto-grow].sc-ion-textarea-md-h .native-textarea.sc-ion-textarea-md{overflow:hidden}.textarea-wrapper.sc-ion-textarea-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0px;padding-bottom:0px;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.native-wrapper.sc-ion-textarea-md{position:relative;width:100%;height:100%}.has-focus.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-md textarea.sc-ion-textarea-md{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}.native-wrapper.sc-ion-textarea-md{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-md::after{white-space:pre-wrap;content:attr(data-replicated-value) " ";visibility:hidden}.native-wrapper.sc-ion-textarea-md::after{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.textarea-wrapper-inner.sc-ion-textarea-md{display:-ms-flexbox;display:flex;width:100%;min-height:inherit}.ion-touched.ion-invalid.sc-ion-textarea-md-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-md-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem}.has-focus.ion-valid.sc-ion-textarea-md-h,.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-md .error-text.sc-ion-textarea-md{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-md .helper-text.sc-ion-textarea-md{display:block;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.ion-touched.ion-invalid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md .error-text.sc-ion-textarea-md{display:block}.ion-touched.ion-invalid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md .helper-text.sc-ion-textarea-md{display:none}.textarea-bottom.sc-ion-textarea-md .counter.sc-ion-textarea-md{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-md{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text.sc-ion-textarea-md,.sc-ion-textarea-md-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-md,.textarea-outline-notch-hidden.sc-ion-textarea-md{display:none}.textarea-wrapper.sc-ion-textarea-md textarea.sc-ion-textarea-md{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-md-h .label-text.sc-ion-textarea-md{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:left top;transform-origin:left top;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.sc-ion-textarea-md-h.textarea-label-placement-stacked.sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-label-placement-stacked .sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-label-placement-stacked.sc-ion-textarea-md-s>[slot=end],.sc-ion-textarea-md-h.textarea-label-placement-stacked .sc-ion-textarea-md-s>[slot=end],.sc-ion-textarea-md-h.textarea-label-placement-floating.sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-label-placement-floating .sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-label-placement-floating.sc-ion-textarea-md-s>[slot=end],.sc-ion-textarea-md-h.textarea-label-placement-floating .sc-ion-textarea-md-s>[slot=end]{margin-top:8px}.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.has-value.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{opacity:1}.label-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.start-slot-wrapper.sc-ion-textarea-md,.end-slot-wrapper.sc-ion-textarea-md{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-ms-flex-item-align:start;align-self:start}.sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-s>[slot=end]{margin-top:0}.sc-ion-textarea-md-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-textarea-md-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.textarea-fill-solid.sc-ion-textarea-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-bottom:var(--border-width) var(--border-style) var(--border-color)}.has-focus.textarea-fill-solid.ion-valid.sc-ion-textarea-md-h,.textarea-fill-solid.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md{border-top:none}@media (any-hover: hover){.textarea-fill-solid.sc-ion-textarea-md-h:hover{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.textarea-fill-solid.has-focus.sc-ion-textarea-md-h{--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}.label-floating.textarea-fill-solid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{max-width:calc(100% / 0.75)}.textarea-fill-outline.sc-ion-textarea-md-h{--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}.textarea-fill-outline.textarea-shape-round.sc-ion-textarea-md-h{--border-radius:28px;--padding-start:32px;--padding-end:32px}.has-focus.textarea-fill-outline.ion-valid.sc-ion-textarea-md-h,.textarea-fill-outline.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}@media (any-hover: hover){.textarea-fill-outline.sc-ion-textarea-md-h:hover{--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.textarea-fill-outline.has-focus.sc-ion-textarea-md-h{--border-width:var(--highlight-height);--border-color:var(--highlight-color)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md{border-top:none}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-bottom:none}.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:left top;transform-origin:left top;position:absolute;max-width:calc(100% - var(--padding-start) - var(--padding-end))}[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-fill-outline.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{position:relative}.label-floating.textarea-fill-outline.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc(\n (100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75\n )}.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after,.textarea-fill-outline.textarea-label-placement-floating[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:12px;margin-bottom:0px}.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-stacked .sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-s>[slot=end],.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-stacked .sc-ion-textarea-md-s>[slot=end],.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-floating .sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-s>[slot=end],.sc-ion-textarea-md-h.textarea-fill-outline.textarea-label-placement-floating .sc-ion-textarea-md-s>[slot=end]{margin-top:12px}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-container.sc-ion-textarea-md{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{pointer-events:none}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md{max-width:calc(100% - var(--padding-start) - var(--padding-end))}.textarea-fill-outline.sc-ion-textarea-md-h .notch-spacer.sc-ion-textarea-md{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none;-webkit-box-sizing:content-box;box-sizing:content-box}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);width:calc(var(--padding-start) - 4px)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}.label-floating.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md{border-top:none}.sc-ion-textarea-md-h{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--padding-top:18px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;--highlight-height:2px;font-size:inherit}.textarea-bottom.sc-ion-textarea-md .counter.sc-ion-textarea-md{letter-spacing:0.0333333333em}.textarea-label-placement-floating.has-focus.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-stacked.has-focus.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{color:var(--highlight-color)}.has-focus.textarea-label-placement-floating.ion-valid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.ion-touched.ion-invalid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.has-focus.textarea-label-placement-stacked.ion-valid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-stacked.ion-touched.ion-invalid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{color:var(--highlight-color)}.textarea-disabled.sc-ion-textarea-md-h{opacity:0.38}.textarea-highlight.sc-ion-textarea-md{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.textarea-highlight.sc-ion-textarea-md{inset-inline-start:0}.has-focus.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{-webkit-transform:scale(1);transform:scale(1)}.in-item.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{bottom:0}.in-item.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{inset-inline-start:0}.textarea-shape-round.sc-ion-textarea-md-h{--border-radius:16px}.sc-ion-textarea-md-s>ion-button[slot=start].button-has-icon-only,.sc-ion-textarea-md-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}'};export{f as ion_textarea}
|