@eagami/ui 5.70.0 → 5.71.0
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/fesm2022/eagami-ui.mjs +283 -12
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles/_rtl.scss +4 -2
- package/types/eagami-ui.d.ts +70 -0
package/fesm2022/eagami-ui.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import { ApplicationRef, CSP_NONCE, ChangeDetectionStrategy, Component, DOCUMENT, DestroyRef, Directive, ElementRef, EnvironmentInjector, HostAttributeToken, HostBinding, HostListener, Injectable, InjectionToken, Injector, PLATFORM_ID, Renderer2, RendererStyleFlags2, TemplateRef, ViewContainerRef, ViewEncapsulation, afterNextRender, afterRenderEffect, computed, contentChild, createComponent, effect, forwardRef, inject, input, linkedSignal, makeEnvironmentProviders, model, output, provideEnvironmentInitializer, signal, untracked, viewChild, viewChildren } from "@angular/core";
|
|
2
|
+
import { ApplicationRef, CSP_NONCE, ChangeDetectionStrategy, Component, DOCUMENT, DestroyRef, Directive, ElementRef, EnvironmentInjector, HostAttributeToken, HostBinding, HostListener, Injectable, InjectionToken, Injector, NgZone, PLATFORM_ID, Renderer2, RendererStyleFlags2, TemplateRef, ViewContainerRef, ViewEncapsulation, afterNextRender, afterRenderEffect, computed, contentChild, createComponent, effect, forwardRef, inject, input, linkedSignal, makeEnvironmentProviders, model, output, provideEnvironmentInitializer, signal, untracked, viewChild, viewChildren } from "@angular/core";
|
|
3
3
|
import { NgClass, NgComponentOutlet, NgTemplateOutlet, isPlatformBrowser } from "@angular/common";
|
|
4
4
|
import { FormResetEvent, FormSubmittedEvent, NG_VALUE_ACCESSOR, NgControl, TouchedChangeEvent } from "@angular/forms";
|
|
5
5
|
const EAGAMI_I18N_CONFIG = new InjectionToken("EAGAMI_I18N_CONFIG");
|
|
@@ -10891,7 +10891,17 @@ var ButtonComponent = class ButtonComponent {
|
|
|
10891
10891
|
...ngDevMode ? { debugName: "ariaDescribedby" } : /* istanbul ignore next */ {},
|
|
10892
10892
|
alias: "aria-describedby"
|
|
10893
10893
|
});
|
|
10894
|
+
ariaExpanded = input(void 0, {
|
|
10895
|
+
...ngDevMode ? { debugName: "ariaExpanded" } : /* istanbul ignore next */ {},
|
|
10896
|
+
alias: "aria-expanded"
|
|
10897
|
+
});
|
|
10898
|
+
ariaControls = input(void 0, {
|
|
10899
|
+
...ngDevMode ? { debugName: "ariaControls" } : /* istanbul ignore next */ {},
|
|
10900
|
+
alias: "aria-controls"
|
|
10901
|
+
});
|
|
10902
|
+
renderer = inject(Renderer2);
|
|
10894
10903
|
buttonEl = viewChild("buttonEl", ...ngDevMode ? [{ debugName: "buttonEl" }] : /* istanbul ignore next */ []);
|
|
10904
|
+
ownedAria = /* @__PURE__ */ new Set();
|
|
10895
10905
|
clicked = output();
|
|
10896
10906
|
isDisabled = computed(() => this.disabled() || this.loading(), ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
|
|
10897
10907
|
hostClasses = computed(() => buttonClasses({
|
|
@@ -10903,6 +10913,15 @@ var ButtonComponent = class ButtonComponent {
|
|
|
10903
10913
|
loading: this.loading(),
|
|
10904
10914
|
disabled: this.isDisabled()
|
|
10905
10915
|
}), ...ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []);
|
|
10916
|
+
constructor() {
|
|
10917
|
+
effect(() => {
|
|
10918
|
+
const button = this.buttonEl()?.nativeElement;
|
|
10919
|
+
if (!button) return;
|
|
10920
|
+
const expanded = this.ariaExpanded();
|
|
10921
|
+
this.reflectAria(button, "aria-expanded", expanded === void 0 ? void 0 : String(expanded));
|
|
10922
|
+
this.reflectAria(button, "aria-controls", this.ariaControls() || void 0);
|
|
10923
|
+
});
|
|
10924
|
+
}
|
|
10906
10925
|
handleClick(event) {
|
|
10907
10926
|
if (this.isDisabled()) {
|
|
10908
10927
|
event.preventDefault();
|
|
@@ -10913,6 +10932,12 @@ var ButtonComponent = class ButtonComponent {
|
|
|
10913
10932
|
focus() {
|
|
10914
10933
|
this.buttonEl()?.nativeElement.focus();
|
|
10915
10934
|
}
|
|
10935
|
+
reflectAria(button, name, value) {
|
|
10936
|
+
if (value !== void 0) {
|
|
10937
|
+
this.renderer.setAttribute(button, name, value);
|
|
10938
|
+
this.ownedAria.add(name);
|
|
10939
|
+
} else if (this.ownedAria.delete(name)) this.renderer.removeAttribute(button, name);
|
|
10940
|
+
}
|
|
10916
10941
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
10917
10942
|
minVersion: "12.0.0",
|
|
10918
10943
|
version: "22.2.3",
|
|
@@ -11018,6 +11043,20 @@ var ButtonComponent = class ButtonComponent {
|
|
|
11018
11043
|
isSignal: true,
|
|
11019
11044
|
isRequired: false,
|
|
11020
11045
|
transformFunction: null
|
|
11046
|
+
},
|
|
11047
|
+
ariaExpanded: {
|
|
11048
|
+
classPropertyName: "ariaExpanded",
|
|
11049
|
+
publicName: "aria-expanded",
|
|
11050
|
+
isSignal: true,
|
|
11051
|
+
isRequired: false,
|
|
11052
|
+
transformFunction: null
|
|
11053
|
+
},
|
|
11054
|
+
ariaControls: {
|
|
11055
|
+
classPropertyName: "ariaControls",
|
|
11056
|
+
publicName: "aria-controls",
|
|
11057
|
+
isSignal: true,
|
|
11058
|
+
isRequired: false,
|
|
11059
|
+
transformFunction: null
|
|
11021
11060
|
}
|
|
11022
11061
|
},
|
|
11023
11062
|
outputs: { clicked: "clicked" },
|
|
@@ -11070,6 +11109,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11070
11109
|
styles: [":host{display:inline-flex}.ea-button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;position:relative;min-height:var(--ea-button-min-height, 2.5em);padding:var(--ea-button-padding, .5em 1em);white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:var(--font-family-sans);font-weight:var(--ea-button-font-weight, var(--font-weight-medium));letter-spacing:var(--letter-spacing-wide);text-decoration:none;line-height:var(--line-height-none);border-width:var(--border-width-thin);border-style:solid;border-radius:var(--ea-button-radius, var(--radius-md));transition:var(--transition-colors),var(--transition-shadow);cursor:pointer}.ea-button:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-button:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-button:has(.ea-button__icon):has(.ea-button__label:empty){padding:var(--ea-button-padding, .5em)}.ea-button--2xs{font-size:var(--ea-button-font-size, var(--font-size-2xs))}.ea-button--xs{font-size:var(--ea-button-font-size, var(--font-size-xs))}.ea-button--sm{font-size:var(--ea-button-font-size, var(--font-size-sm))}.ea-button--md{font-size:var(--ea-button-font-size, var(--font-size-md))}.ea-button--lg{font-size:var(--ea-button-font-size, var(--font-size-lg))}.ea-button--xl{font-size:var(--ea-button-font-size, var(--font-size-xl))}.ea-button--primary{background-color:var(--ea-button-background-color, var(--color-brand-default));border-color:var(--ea-button-border-color, var(--color-brand-default));color:var(--ea-button-color, var(--color-neutral-0))}.ea-button--primary:hover:not(.ea-button--disabled){background-color:var(--ea-button-background-color-hover, var(--ea-button-background-color, var(--color-brand-hover)));border-color:var(--ea-button-border-color-hover, var(--ea-button-border-color, var(--color-brand-hover)));color:var(--ea-button-color-hover, var(--ea-button-color, var(--color-neutral-0)))}.ea-button--primary:active:not(.ea-button--disabled){background-color:var(--ea-button-background-color-active, var(--ea-button-background-color, var(--color-brand-active)));border-color:var(--ea-button-border-color-active, var(--ea-button-border-color, var(--color-brand-active)));color:var(--ea-button-color-active, var(--ea-button-color, var(--color-neutral-0)))}.ea-button--secondary{background-color:var(--ea-button-background-color, transparent);border-color:var(--ea-button-border-color, var(--color-border-strong));color:var(--ea-button-color, var(--color-text-primary))}.ea-button--secondary:hover:not(.ea-button--disabled){background-color:var(--ea-button-background-color-hover, var(--ea-button-background-color, var(--color-state-hover)));border-color:var(--ea-button-border-color-hover, var(--ea-button-border-color, var(--color-neutral-500)));color:var(--ea-button-color-hover, var(--ea-button-color, var(--color-text-primary)))}.ea-button--secondary:active:not(.ea-button--disabled){background-color:var(--ea-button-background-color-active, var(--ea-button-background-color, var(--color-state-active)));border-color:var(--ea-button-border-color-active, var(--ea-button-border-color, var(--color-neutral-500)));color:var(--ea-button-color-active, var(--ea-button-color, var(--color-text-primary)))}.ea-button--ghost{background-color:var(--ea-button-background-color, transparent);border-color:var(--ea-button-border-color, transparent);color:var(--ea-button-color, var(--color-text-primary))}.ea-button--ghost:hover:not(.ea-button--disabled){background-color:var(--ea-button-background-color-hover, var(--ea-button-background-color, var(--color-state-hover)));border-color:var(--ea-button-border-color-hover, var(--ea-button-border-color, transparent));color:var(--ea-button-color-hover, var(--ea-button-color, var(--color-text-primary)))}.ea-button--ghost:active:not(.ea-button--disabled){background-color:var(--ea-button-background-color-active, var(--ea-button-background-color, var(--color-state-active)));border-color:var(--ea-button-border-color-active, var(--ea-button-border-color, transparent));color:var(--ea-button-color-active, var(--ea-button-color, var(--color-text-primary)))}.ea-button--danger{background-color:var(--ea-button-background-color, var(--color-error-default));border-color:var(--ea-button-border-color, var(--color-error-default));color:var(--ea-button-color, var(--color-neutral-0))}.ea-button--danger:hover:not(.ea-button--disabled){background-color:var(--ea-button-background-color-hover, var(--ea-button-background-color, var(--color-error-700)));border-color:var(--ea-button-border-color-hover, var(--ea-button-border-color, var(--color-error-700)));color:var(--ea-button-color-hover, var(--ea-button-color, var(--color-neutral-0)))}.ea-button--danger:active:not(.ea-button--disabled){background-color:var(--ea-button-background-color-active, var(--ea-button-background-color, var(--color-error-700)));border-color:var(--ea-button-border-color-active, var(--ea-button-border-color, var(--color-error-700)));color:var(--ea-button-color-active, var(--ea-button-color, var(--color-neutral-0)));filter:brightness(.9)}.ea-button--link{min-height:var(--ea-button-min-height, 0);padding:var(--ea-button-padding, 0);border-color:var(--ea-button-border-color, transparent);background-color:var(--ea-button-background-color, transparent);color:var(--ea-button-color, var(--color-text-link))}.ea-button--link:has(.ea-button__icon):has(.ea-button__label:empty){padding:var(--ea-button-padding, 0)}.ea-button--link:hover:not(.ea-button--disabled){border-color:var(--ea-button-border-color-hover, var(--ea-button-border-color, transparent));background-color:var(--ea-button-background-color-hover, var(--ea-button-background-color, transparent));color:var(--ea-button-color-hover, var(--ea-button-color, var(--color-text-link-hover)))}.ea-button--link:active:not(.ea-button--disabled){border-color:var(--ea-button-border-color-active, var(--ea-button-border-color, transparent));background-color:var(--ea-button-background-color-active, var(--ea-button-background-color, transparent));color:var(--ea-button-color-active, var(--ea-button-color, var(--color-text-link-hover)))}.ea-button--link:hover:not(.ea-button--disabled) .ea-button__label,.ea-button--link:focus-visible .ea-button__label{text-decoration:underline}.ea-button--full-width{width:100%}.ea-button--align-start{justify-content:flex-start}.ea-button--align-end{justify-content:flex-end}.ea-button--uppercase{text-transform:uppercase}.ea-button--disabled,.ea-button:disabled{opacity:.45;cursor:default;pointer-events:none}.ea-button--loading{cursor:wait;pointer-events:none}.ea-button__content{display:inline-flex;align-items:center;gap:.5em}.ea-button__content--hidden{visibility:hidden}.ea-button__icon{display:inline-flex;align-items:center;flex-shrink:0;font-size:var(--icon-inline-size)}.ea-button__label{display:inline-flex;align-items:center}.ea-button__label:empty{display:none}.ea-button__spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.ea-button__spinner svg{width:1.1em;height:1.1em;animation:ea-spin .75s linear infinite}@media(prefers-reduced-motion:reduce){.ea-button__spinner svg{animation-duration:2.5s}}:host(.ea-button--full-width){display:block;width:100%}@keyframes ea-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"]
|
|
11071
11110
|
}]
|
|
11072
11111
|
}],
|
|
11112
|
+
ctorParameters: () => [],
|
|
11073
11113
|
propDecorators: {
|
|
11074
11114
|
variant: [{
|
|
11075
11115
|
type: i0.Input,
|
|
@@ -11175,6 +11215,22 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11175
11215
|
required: false
|
|
11176
11216
|
}]
|
|
11177
11217
|
}],
|
|
11218
|
+
ariaExpanded: [{
|
|
11219
|
+
type: i0.Input,
|
|
11220
|
+
args: [{
|
|
11221
|
+
isSignal: true,
|
|
11222
|
+
alias: "aria-expanded",
|
|
11223
|
+
required: false
|
|
11224
|
+
}]
|
|
11225
|
+
}],
|
|
11226
|
+
ariaControls: [{
|
|
11227
|
+
type: i0.Input,
|
|
11228
|
+
args: [{
|
|
11229
|
+
isSignal: true,
|
|
11230
|
+
alias: "aria-controls",
|
|
11231
|
+
required: false
|
|
11232
|
+
}]
|
|
11233
|
+
}],
|
|
11178
11234
|
buttonEl: [{
|
|
11179
11235
|
type: i0.ViewChild,
|
|
11180
11236
|
args: ["buttonEl", { isSignal: true }]
|
|
@@ -12086,6 +12142,164 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12086
12142
|
}]
|
|
12087
12143
|
}]
|
|
12088
12144
|
});
|
|
12145
|
+
const TYPE_MS = 45;
|
|
12146
|
+
const HOLD_MS = 2500;
|
|
12147
|
+
const ROTATE_MS = 6e3;
|
|
12148
|
+
function sameHints(a, b) {
|
|
12149
|
+
return a.length === b.length && a.every((hint, i) => hint === b[i]);
|
|
12150
|
+
}
|
|
12151
|
+
function injectTypedPlaceholder(hints) {
|
|
12152
|
+
const zone = inject(NgZone);
|
|
12153
|
+
const injector = inject(Injector);
|
|
12154
|
+
const list = computed(() => hints(), {
|
|
12155
|
+
...ngDevMode ? { debugName: "list" } : /* istanbul ignore next */ {},
|
|
12156
|
+
equal: sameHints
|
|
12157
|
+
});
|
|
12158
|
+
const started = signal(false, ...ngDevMode ? [{ debugName: "started" }] : /* istanbul ignore next */ []);
|
|
12159
|
+
const reducedMotion = signal(false, ...ngDevMode ? [{ debugName: "reducedMotion" }] : /* istanbul ignore next */ []);
|
|
12160
|
+
const index = signal(0, ...ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []);
|
|
12161
|
+
const typedLength = signal(0, ...ngDevMode ? [{ debugName: "typedLength" }] : /* istanbul ignore next */ []);
|
|
12162
|
+
const hint = computed(() => {
|
|
12163
|
+
const all = list();
|
|
12164
|
+
return all.length > 0 ? all[index() % all.length] : "";
|
|
12165
|
+
}, ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
12166
|
+
const text = computed(() => hint().slice(0, typedLength()), ...ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []);
|
|
12167
|
+
const typing = computed(() => typedLength() < hint().length, ...ngDevMode ? [{ debugName: "typing" }] : /* istanbul ignore next */ []);
|
|
12168
|
+
const animating = computed(() => started() && !reducedMotion() && list().length > 0, ...ngDevMode ? [{ debugName: "animating" }] : /* istanbul ignore next */ []);
|
|
12169
|
+
afterNextRender(() => started.set(true), { injector });
|
|
12170
|
+
effect((onCleanup) => {
|
|
12171
|
+
const all = list();
|
|
12172
|
+
if (!started() || all.length === 0) return;
|
|
12173
|
+
const motion = typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null;
|
|
12174
|
+
let timer;
|
|
12175
|
+
const schedule = (step, ms) => {
|
|
12176
|
+
timer = zone.runOutsideAngular(() => setTimeout(step, ms));
|
|
12177
|
+
};
|
|
12178
|
+
const advance = () => index.update((i) => (i + 1) % all.length);
|
|
12179
|
+
const rotate = () => {
|
|
12180
|
+
advance();
|
|
12181
|
+
schedule(rotate, ROTATE_MS);
|
|
12182
|
+
};
|
|
12183
|
+
const type = () => {
|
|
12184
|
+
typedLength.update((length) => length + 1);
|
|
12185
|
+
if (typedLength() < hint().length) {
|
|
12186
|
+
schedule(type, TYPE_MS);
|
|
12187
|
+
return;
|
|
12188
|
+
}
|
|
12189
|
+
schedule(() => {
|
|
12190
|
+
advance();
|
|
12191
|
+
typedLength.set(0);
|
|
12192
|
+
schedule(type, TYPE_MS);
|
|
12193
|
+
}, HOLD_MS);
|
|
12194
|
+
};
|
|
12195
|
+
const run = () => {
|
|
12196
|
+
clearTimeout(timer);
|
|
12197
|
+
const reduced = motion?.matches ?? false;
|
|
12198
|
+
reducedMotion.set(reduced);
|
|
12199
|
+
index.set(0);
|
|
12200
|
+
typedLength.set(0);
|
|
12201
|
+
if (reduced) schedule(rotate, ROTATE_MS);
|
|
12202
|
+
else type();
|
|
12203
|
+
};
|
|
12204
|
+
motion?.addEventListener("change", run);
|
|
12205
|
+
untracked(run);
|
|
12206
|
+
onCleanup(() => {
|
|
12207
|
+
clearTimeout(timer);
|
|
12208
|
+
motion?.removeEventListener("change", run);
|
|
12209
|
+
});
|
|
12210
|
+
});
|
|
12211
|
+
return {
|
|
12212
|
+
animating,
|
|
12213
|
+
hint,
|
|
12214
|
+
text,
|
|
12215
|
+
typing
|
|
12216
|
+
};
|
|
12217
|
+
}
|
|
12218
|
+
var TypedPlaceholderComponent = class TypedPlaceholderComponent {
|
|
12219
|
+
text = input.required(...ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []);
|
|
12220
|
+
typing = input.required(...ngDevMode ? [{ debugName: "typing" }] : /* istanbul ignore next */ []);
|
|
12221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
12222
|
+
minVersion: "12.0.0",
|
|
12223
|
+
version: "22.2.3",
|
|
12224
|
+
ngImport: i0,
|
|
12225
|
+
type: TypedPlaceholderComponent,
|
|
12226
|
+
deps: [],
|
|
12227
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
12228
|
+
});
|
|
12229
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
12230
|
+
minVersion: "17.1.0",
|
|
12231
|
+
version: "22.2.3",
|
|
12232
|
+
type: TypedPlaceholderComponent,
|
|
12233
|
+
isStandalone: true,
|
|
12234
|
+
selector: "ea-typed-placeholder",
|
|
12235
|
+
inputs: {
|
|
12236
|
+
text: {
|
|
12237
|
+
classPropertyName: "text",
|
|
12238
|
+
publicName: "text",
|
|
12239
|
+
isSignal: true,
|
|
12240
|
+
isRequired: true,
|
|
12241
|
+
transformFunction: null
|
|
12242
|
+
},
|
|
12243
|
+
typing: {
|
|
12244
|
+
classPropertyName: "typing",
|
|
12245
|
+
publicName: "typing",
|
|
12246
|
+
isSignal: true,
|
|
12247
|
+
isRequired: true,
|
|
12248
|
+
transformFunction: null
|
|
12249
|
+
}
|
|
12250
|
+
},
|
|
12251
|
+
host: {
|
|
12252
|
+
attributes: {
|
|
12253
|
+
"aria-hidden": "true",
|
|
12254
|
+
"dir": "auto"
|
|
12255
|
+
},
|
|
12256
|
+
properties: { "class.ea-typed-placeholder--blinking": "!typing()" }
|
|
12257
|
+
},
|
|
12258
|
+
ngImport: i0,
|
|
12259
|
+
template: `{{ text() }}<span class="ea-typed-placeholder__cursor"></span>`,
|
|
12260
|
+
isInline: true,
|
|
12261
|
+
styles: [":host{opacity:1;font-style:italic;color:var(--color-text-tertiary);overflow:hidden;display:block;line-height:var(--line-height-normal);text-align:start;text-indent:0;text-transform:none;letter-spacing:normal;word-spacing:normal;font-family:var(--font-family-sans);pointer-events:none;-webkit-user-select:none;user-select:none}.ea-typed-placeholder__cursor{margin-inline-start:.0625em;border-inline-start:max(.0625em,var(--border-width-thin)) solid}:host(.ea-typed-placeholder--blinking) .ea-typed-placeholder__cursor{animation:ea-typed-placeholder-blink 1.06s step-end infinite}@keyframes ea-typed-placeholder-blink{50%{opacity:0}}\n"],
|
|
12262
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
12263
|
+
});
|
|
12264
|
+
};
|
|
12265
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
12266
|
+
minVersion: "12.0.0",
|
|
12267
|
+
version: "22.2.3",
|
|
12268
|
+
ngImport: i0,
|
|
12269
|
+
type: TypedPlaceholderComponent,
|
|
12270
|
+
decorators: [{
|
|
12271
|
+
type: Component,
|
|
12272
|
+
args: [{
|
|
12273
|
+
selector: "ea-typed-placeholder",
|
|
12274
|
+
template: `{{ text() }}<span class="ea-typed-placeholder__cursor"></span>`,
|
|
12275
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12276
|
+
host: {
|
|
12277
|
+
"aria-hidden": "true",
|
|
12278
|
+
dir: "auto",
|
|
12279
|
+
"[class.ea-typed-placeholder--blinking]": "!typing()"
|
|
12280
|
+
},
|
|
12281
|
+
styles: [":host{opacity:1;font-style:italic;color:var(--color-text-tertiary);overflow:hidden;display:block;line-height:var(--line-height-normal);text-align:start;text-indent:0;text-transform:none;letter-spacing:normal;word-spacing:normal;font-family:var(--font-family-sans);pointer-events:none;-webkit-user-select:none;user-select:none}.ea-typed-placeholder__cursor{margin-inline-start:.0625em;border-inline-start:max(.0625em,var(--border-width-thin)) solid}:host(.ea-typed-placeholder--blinking) .ea-typed-placeholder__cursor{animation:ea-typed-placeholder-blink 1.06s step-end infinite}@keyframes ea-typed-placeholder-blink{50%{opacity:0}}\n"]
|
|
12282
|
+
}]
|
|
12283
|
+
}],
|
|
12284
|
+
propDecorators: {
|
|
12285
|
+
text: [{
|
|
12286
|
+
type: i0.Input,
|
|
12287
|
+
args: [{
|
|
12288
|
+
isSignal: true,
|
|
12289
|
+
alias: "text",
|
|
12290
|
+
required: true
|
|
12291
|
+
}]
|
|
12292
|
+
}],
|
|
12293
|
+
typing: [{
|
|
12294
|
+
type: i0.Input,
|
|
12295
|
+
args: [{
|
|
12296
|
+
isSignal: true,
|
|
12297
|
+
alias: "typing",
|
|
12298
|
+
required: true
|
|
12299
|
+
}]
|
|
12300
|
+
}]
|
|
12301
|
+
}
|
|
12302
|
+
});
|
|
12089
12303
|
var EyeOffIconComponent = class EyeOffIconComponent extends IconComponentBase {
|
|
12090
12304
|
static slug = "eye-off";
|
|
12091
12305
|
static category = "feather";
|
|
@@ -12297,6 +12511,7 @@ var InputComponent = class InputComponent {
|
|
|
12297
12511
|
});
|
|
12298
12512
|
type = input("text", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
|
|
12299
12513
|
placeholder = input("", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
12514
|
+
typedPlaceholder = input([], ...ngDevMode ? [{ debugName: "typedPlaceholder" }] : /* istanbul ignore next */ []);
|
|
12300
12515
|
icon = input(void 0, ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
12301
12516
|
keepIcon = input(true, ...ngDevMode ? [{ debugName: "keepIcon" }] : /* istanbul ignore next */ []);
|
|
12302
12517
|
size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
@@ -12327,6 +12542,9 @@ var InputComponent = class InputComponent {
|
|
|
12327
12542
|
onChange = () => {};
|
|
12328
12543
|
onTouched = () => {};
|
|
12329
12544
|
isDisabled = computed(() => this.disabled() || this._formDisabled(), ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
|
|
12545
|
+
typed = injectTypedPlaceholder(this.typedPlaceholder);
|
|
12546
|
+
typedPlaceholderShown = computed(() => this.typed.animating() && !this.value(), ...ngDevMode ? [{ debugName: "typedPlaceholderShown" }] : /* istanbul ignore next */ []);
|
|
12547
|
+
nativePlaceholder = computed(() => this.typedPlaceholder().length > 0 ? this.typed.hint() : this.placeholder(), ...ngDevMode ? [{ debugName: "nativePlaceholder" }] : /* istanbul ignore next */ []);
|
|
12330
12548
|
effectiveType = computed(() => this.type() === "password" && this.passwordVisible() ? "text" : this.type(), ...ngDevMode ? [{ debugName: "effectiveType" }] : /* istanbul ignore next */ []);
|
|
12331
12549
|
errorState = injectControlErrorState({
|
|
12332
12550
|
errorMsg: this.errorMsg,
|
|
@@ -12534,6 +12752,13 @@ var InputComponent = class InputComponent {
|
|
|
12534
12752
|
isRequired: false,
|
|
12535
12753
|
transformFunction: null
|
|
12536
12754
|
},
|
|
12755
|
+
typedPlaceholder: {
|
|
12756
|
+
classPropertyName: "typedPlaceholder",
|
|
12757
|
+
publicName: "typedPlaceholder",
|
|
12758
|
+
isSignal: true,
|
|
12759
|
+
isRequired: false,
|
|
12760
|
+
transformFunction: null
|
|
12761
|
+
},
|
|
12537
12762
|
icon: {
|
|
12538
12763
|
classPropertyName: "icon",
|
|
12539
12764
|
publicName: "icon",
|
|
@@ -12707,8 +12932,8 @@ var InputComponent = class InputComponent {
|
|
|
12707
12932
|
isSignal: true
|
|
12708
12933
|
}],
|
|
12709
12934
|
ngImport: i0,
|
|
12710
|
-
template: "<div class=\"ea-input-field ea-input-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-input-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.max-width]=\"numberWidth()\">\n @if ((keepIcon() || !value()) && icon(); as leadingIcon) {\n <span\n class=\"ea-input-wrapper__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"leadingIcon\" />\n </span>\n }\n\n <span class=\"ea-input-wrapper__prefix\">\n <ng-content select=\"[slot=prefix]\" />\n </span>\n\n <input\n #inputEl\n
|
|
12711
|
-
styles: [".ea-input-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-input-field--2xs{font-size:var(--font-size-2xs)}.ea-input-field--xs{font-size:var(--font-size-xs)}.ea-input-field--sm{font-size:var(--font-size-sm)}.ea-input-field--md{font-size:var(--font-size-md)}.ea-input-field--lg{font-size:var(--font-size-lg)}.ea-input-field--xl{font-size:var(--font-size-xl)}.ea-input-wrapper{display:flex;align-items:center;gap:.5em;min-height:2.5em;padding:0 .75em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-input-wrapper--focused{border-color:var(--ea-input-border-color-focus, var(--color-border-default));outline:none;box-shadow:var(--ea-input-shadow-focus, var(--shadow-focus-ring))}@media(forced-colors:active){.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--error{border-color:var(--color-error-default)}.ea-input-wrapper--error.ea-input-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-input-wrapper--error.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-input-wrapper--disabled .ea-input{cursor:default}.ea-input-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-input-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-input-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--readonly button{cursor:default}.ea-input-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-input-wrapper__prefix,.ea-input-wrapper__suffix{display:flex;align-items:center;flex-shrink:0;color:inherit}.ea-input-wrapper__prefix:empty,.ea-input-wrapper__suffix:empty{display:none}.ea-input-wrapper__icon{display:inline-flex;align-items:center;flex-shrink:0;font-size:1em;color:var(--color-text-secondary)}.ea-input-wrapper__clear{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__clear>*{font-size:1.25em}.ea-input-wrapper__clear:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__clear:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__clear:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__clear:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__clear:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__password-toggle>*{font-size:1.25em}.ea-input-wrapper__password-toggle:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__password-toggle:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__password-toggle:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__password-toggle:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__password-toggle:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{color:var(--ea-input-toggle-color, var(--color-text-secondary))}.ea-input-wrapper__password-toggle ea-icon-eye,.ea-input-wrapper__password-toggle ea-icon-eye-off{width:1em;height:1em;pointer-events:none}.ea-input{flex:1;width:100%;min-width:0;padding:.5em 0;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-input::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-input:-webkit-autofill,.ea-input:autofill{-webkit-text-fill-color:var(--color-text-primary);-webkit-box-shadow:0 0 0 1000px var(--color-bg-base) inset;transition:background-color 5000s ease-in-out 0s}.ea-input:disabled{cursor:default}.ea-input::-webkit-calendar-picker-indicator,.ea-input::-webkit-credentials-auto-fill-button,.ea-input::-webkit-contacts-auto-fill-button,.ea-input::-webkit-strong-password-auto-fill-button,.ea-input::-webkit-caps-lock-indicator{display:none!important;visibility:hidden;pointer-events:none;width:0;height:0}.ea-input[type=number]::-webkit-inner-spin-button,.ea-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ea-input[type=number]{-moz-appearance:textfield;appearance:textfield}.ea-input[type=search]::-webkit-search-decoration,.ea-input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}\n"],
|
|
12935
|
+
template: "<div class=\"ea-input-field ea-input-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-input-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.max-width]=\"numberWidth()\">\n @if ((keepIcon() || !value()) && icon(); as leadingIcon) {\n <span\n class=\"ea-input-wrapper__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"leadingIcon\" />\n </span>\n }\n\n <span class=\"ea-input-wrapper__prefix\">\n <ng-content select=\"[slot=prefix]\" />\n </span>\n\n <span class=\"ea-input-wrapper__control\">\n <input\n #inputEl\n class=\"ea-input\"\n dir=\"auto\"\n [class.ea-input--typed-placeholder]=\"typedPlaceholderShown()\"\n [id]=\"id()\"\n [type]=\"effectiveType()\"\n [placeholder]=\"nativePlaceholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.autocomplete]=\"autocomplete() ?? null\"\n [attr.spellcheck]=\"spellcheck() ?? null\"\n [attr.list]=\"list() ?? null\"\n [attr.min]=\"type() === 'number' ? (min() ?? null) : null\"\n [attr.max]=\"type() === 'number' ? (max() ?? null) : null\"\n [attr.step]=\"type() === 'number' ? (step() ?? null) : null\"\n [attr.maxlength]=\"maxLength() ?? null\"\n [attr.minlength]=\"minLength() ?? null\"\n [attr.role]=\"role() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-expanded]=\"ariaExpanded() ?? null\"\n [attr.aria-controls]=\"ariaControls() ?? null\"\n [attr.aria-activedescendant]=\"ariaActivedescendant() ?? null\"\n [attr.aria-autocomplete]=\"ariaAutocomplete() ?? null\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (input)=\"handleInput($event)\"\n (keydown)=\"handleKeydown($event)\"\n (wheel)=\"handleWheel($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\" />\n\n @if (typedPlaceholderShown()) {\n <ea-typed-placeholder\n class=\"ea-input-wrapper__typed-placeholder\"\n [text]=\"typed.text()\"\n [typing]=\"typed.typing()\" />\n }\n </span>\n\n <span class=\"ea-input-wrapper__suffix\">\n <ng-content select=\"[slot=suffix]\" />\n </span>\n\n @if (showClear()) {\n <button\n type=\"button\"\n class=\"ea-input-wrapper__clear\"\n [attr.aria-label]=\"i18n.messages().input.clear\"\n (mousedown)=\"onClearMousedown($event)\"\n (click)=\"clear()\">\n <ea-icon-x class=\"ea-input-wrapper__clear-icon\" />\n </button>\n }\n\n @if (type() === 'password' && showPasswordToggle()) {\n <button\n type=\"button\"\n class=\"ea-input-wrapper__password-toggle\"\n [attr.aria-label]=\"\n passwordVisible()\n ? i18n.messages().input.hidePassword\n : i18n.messages().input.showPassword\n \"\n [attr.aria-pressed]=\"passwordVisible()\"\n (click)=\"togglePasswordVisibility()\">\n @if (passwordVisible()) {\n <ea-icon-eye-off />\n } @else {\n <ea-icon-eye />\n }\n </button>\n }\n </div>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n",
|
|
12936
|
+
styles: [".ea-input-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-input-field--2xs{font-size:var(--font-size-2xs)}.ea-input-field--xs{font-size:var(--font-size-xs)}.ea-input-field--sm{font-size:var(--font-size-sm)}.ea-input-field--md{font-size:var(--font-size-md)}.ea-input-field--lg{font-size:var(--font-size-lg)}.ea-input-field--xl{font-size:var(--font-size-xl)}.ea-input-wrapper{display:flex;align-items:center;gap:.5em;min-height:2.5em;padding:0 .75em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-input-wrapper--focused{border-color:var(--ea-input-border-color-focus, var(--color-border-default));outline:none;box-shadow:var(--ea-input-shadow-focus, var(--shadow-focus-ring))}@media(forced-colors:active){.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--error{border-color:var(--color-error-default)}.ea-input-wrapper--error.ea-input-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-input-wrapper--error.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-input-wrapper--disabled .ea-input{cursor:default}.ea-input-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-input-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-input-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--readonly button{cursor:default}.ea-input-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-input-wrapper__prefix,.ea-input-wrapper__suffix{display:flex;align-items:center;flex-shrink:0;color:inherit}.ea-input-wrapper__prefix:empty,.ea-input-wrapper__suffix:empty{display:none}.ea-input-wrapper__control{position:relative;display:flex;flex:1;min-width:0}.ea-input-wrapper__typed-placeholder{position:absolute;inset:0;padding:.5em 0;white-space:pre}.ea-input-wrapper__icon{display:inline-flex;align-items:center;flex-shrink:0;font-size:1em;color:var(--color-text-secondary)}.ea-input-wrapper__clear{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__clear>*{font-size:1.25em}.ea-input-wrapper__clear:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__clear:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__clear:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__clear:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__clear:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__password-toggle>*{font-size:1.25em}.ea-input-wrapper__password-toggle:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__password-toggle:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__password-toggle:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__password-toggle:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__password-toggle:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{color:var(--ea-input-toggle-color, var(--color-text-secondary))}.ea-input-wrapper__password-toggle ea-icon-eye,.ea-input-wrapper__password-toggle ea-icon-eye-off{width:1em;height:1em;pointer-events:none}.ea-input{flex:1;width:100%;min-width:0;padding:.5em 0;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-input::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-input--typed-placeholder::placeholder{color:transparent}.ea-input:-webkit-autofill,.ea-input:autofill{-webkit-text-fill-color:var(--color-text-primary);-webkit-box-shadow:0 0 0 1000px var(--color-bg-base) inset;transition:background-color 5000s ease-in-out 0s}.ea-input:disabled{cursor:default}.ea-input::-webkit-calendar-picker-indicator,.ea-input::-webkit-credentials-auto-fill-button,.ea-input::-webkit-contacts-auto-fill-button,.ea-input::-webkit-strong-password-auto-fill-button,.ea-input::-webkit-caps-lock-indicator{display:none!important;visibility:hidden;pointer-events:none;width:0;height:0}.ea-input[type=number]::-webkit-inner-spin-button,.ea-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ea-input[type=number]{-moz-appearance:textfield;appearance:textfield}.ea-input[type=search]::-webkit-search-decoration,.ea-input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}\n"],
|
|
12712
12937
|
dependencies: [
|
|
12713
12938
|
{
|
|
12714
12939
|
kind: "component",
|
|
@@ -12764,6 +12989,12 @@ var InputComponent = class InputComponent {
|
|
|
12764
12989
|
],
|
|
12765
12990
|
exportAs: ["ngComponentOutlet"]
|
|
12766
12991
|
},
|
|
12992
|
+
{
|
|
12993
|
+
kind: "component",
|
|
12994
|
+
type: TypedPlaceholderComponent,
|
|
12995
|
+
selector: "ea-typed-placeholder",
|
|
12996
|
+
inputs: ["text", "typing"]
|
|
12997
|
+
},
|
|
12767
12998
|
{
|
|
12768
12999
|
kind: "component",
|
|
12769
13000
|
type: XIconComponent,
|
|
@@ -12790,6 +13021,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12790
13021
|
FieldMessagesComponent,
|
|
12791
13022
|
NgClass,
|
|
12792
13023
|
NgComponentOutlet,
|
|
13024
|
+
TypedPlaceholderComponent,
|
|
12793
13025
|
XIconComponent
|
|
12794
13026
|
],
|
|
12795
13027
|
providers: [{
|
|
@@ -12797,8 +13029,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12797
13029
|
useExisting: forwardRef(() => InputComponent),
|
|
12798
13030
|
multi: true
|
|
12799
13031
|
}],
|
|
12800
|
-
template: "<div class=\"ea-input-field ea-input-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-input-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.max-width]=\"numberWidth()\">\n @if ((keepIcon() || !value()) && icon(); as leadingIcon) {\n <span\n class=\"ea-input-wrapper__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"leadingIcon\" />\n </span>\n }\n\n <span class=\"ea-input-wrapper__prefix\">\n <ng-content select=\"[slot=prefix]\" />\n </span>\n\n <input\n #inputEl\n
|
|
12801
|
-
styles: [".ea-input-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-input-field--2xs{font-size:var(--font-size-2xs)}.ea-input-field--xs{font-size:var(--font-size-xs)}.ea-input-field--sm{font-size:var(--font-size-sm)}.ea-input-field--md{font-size:var(--font-size-md)}.ea-input-field--lg{font-size:var(--font-size-lg)}.ea-input-field--xl{font-size:var(--font-size-xl)}.ea-input-wrapper{display:flex;align-items:center;gap:.5em;min-height:2.5em;padding:0 .75em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-input-wrapper--focused{border-color:var(--ea-input-border-color-focus, var(--color-border-default));outline:none;box-shadow:var(--ea-input-shadow-focus, var(--shadow-focus-ring))}@media(forced-colors:active){.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--error{border-color:var(--color-error-default)}.ea-input-wrapper--error.ea-input-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-input-wrapper--error.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-input-wrapper--disabled .ea-input{cursor:default}.ea-input-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-input-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-input-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--readonly button{cursor:default}.ea-input-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-input-wrapper__prefix,.ea-input-wrapper__suffix{display:flex;align-items:center;flex-shrink:0;color:inherit}.ea-input-wrapper__prefix:empty,.ea-input-wrapper__suffix:empty{display:none}.ea-input-wrapper__icon{display:inline-flex;align-items:center;flex-shrink:0;font-size:1em;color:var(--color-text-secondary)}.ea-input-wrapper__clear{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__clear>*{font-size:1.25em}.ea-input-wrapper__clear:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__clear:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__clear:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__clear:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__clear:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__password-toggle>*{font-size:1.25em}.ea-input-wrapper__password-toggle:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__password-toggle:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__password-toggle:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__password-toggle:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__password-toggle:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{color:var(--ea-input-toggle-color, var(--color-text-secondary))}.ea-input-wrapper__password-toggle ea-icon-eye,.ea-input-wrapper__password-toggle ea-icon-eye-off{width:1em;height:1em;pointer-events:none}.ea-input{flex:1;width:100%;min-width:0;padding:.5em 0;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-input::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-input:-webkit-autofill,.ea-input:autofill{-webkit-text-fill-color:var(--color-text-primary);-webkit-box-shadow:0 0 0 1000px var(--color-bg-base) inset;transition:background-color 5000s ease-in-out 0s}.ea-input:disabled{cursor:default}.ea-input::-webkit-calendar-picker-indicator,.ea-input::-webkit-credentials-auto-fill-button,.ea-input::-webkit-contacts-auto-fill-button,.ea-input::-webkit-strong-password-auto-fill-button,.ea-input::-webkit-caps-lock-indicator{display:none!important;visibility:hidden;pointer-events:none;width:0;height:0}.ea-input[type=number]::-webkit-inner-spin-button,.ea-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ea-input[type=number]{-moz-appearance:textfield;appearance:textfield}.ea-input[type=search]::-webkit-search-decoration,.ea-input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}\n"]
|
|
13032
|
+
template: "<div class=\"ea-input-field ea-input-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-input-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.max-width]=\"numberWidth()\">\n @if ((keepIcon() || !value()) && icon(); as leadingIcon) {\n <span\n class=\"ea-input-wrapper__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"leadingIcon\" />\n </span>\n }\n\n <span class=\"ea-input-wrapper__prefix\">\n <ng-content select=\"[slot=prefix]\" />\n </span>\n\n <span class=\"ea-input-wrapper__control\">\n <input\n #inputEl\n class=\"ea-input\"\n dir=\"auto\"\n [class.ea-input--typed-placeholder]=\"typedPlaceholderShown()\"\n [id]=\"id()\"\n [type]=\"effectiveType()\"\n [placeholder]=\"nativePlaceholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.autocomplete]=\"autocomplete() ?? null\"\n [attr.spellcheck]=\"spellcheck() ?? null\"\n [attr.list]=\"list() ?? null\"\n [attr.min]=\"type() === 'number' ? (min() ?? null) : null\"\n [attr.max]=\"type() === 'number' ? (max() ?? null) : null\"\n [attr.step]=\"type() === 'number' ? (step() ?? null) : null\"\n [attr.maxlength]=\"maxLength() ?? null\"\n [attr.minlength]=\"minLength() ?? null\"\n [attr.role]=\"role() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-expanded]=\"ariaExpanded() ?? null\"\n [attr.aria-controls]=\"ariaControls() ?? null\"\n [attr.aria-activedescendant]=\"ariaActivedescendant() ?? null\"\n [attr.aria-autocomplete]=\"ariaAutocomplete() ?? null\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (input)=\"handleInput($event)\"\n (keydown)=\"handleKeydown($event)\"\n (wheel)=\"handleWheel($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\" />\n\n @if (typedPlaceholderShown()) {\n <ea-typed-placeholder\n class=\"ea-input-wrapper__typed-placeholder\"\n [text]=\"typed.text()\"\n [typing]=\"typed.typing()\" />\n }\n </span>\n\n <span class=\"ea-input-wrapper__suffix\">\n <ng-content select=\"[slot=suffix]\" />\n </span>\n\n @if (showClear()) {\n <button\n type=\"button\"\n class=\"ea-input-wrapper__clear\"\n [attr.aria-label]=\"i18n.messages().input.clear\"\n (mousedown)=\"onClearMousedown($event)\"\n (click)=\"clear()\">\n <ea-icon-x class=\"ea-input-wrapper__clear-icon\" />\n </button>\n }\n\n @if (type() === 'password' && showPasswordToggle()) {\n <button\n type=\"button\"\n class=\"ea-input-wrapper__password-toggle\"\n [attr.aria-label]=\"\n passwordVisible()\n ? i18n.messages().input.hidePassword\n : i18n.messages().input.showPassword\n \"\n [attr.aria-pressed]=\"passwordVisible()\"\n (click)=\"togglePasswordVisibility()\">\n @if (passwordVisible()) {\n <ea-icon-eye-off />\n } @else {\n <ea-icon-eye />\n }\n </button>\n }\n </div>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n",
|
|
13033
|
+
styles: [".ea-input-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-input-field--2xs{font-size:var(--font-size-2xs)}.ea-input-field--xs{font-size:var(--font-size-xs)}.ea-input-field--sm{font-size:var(--font-size-sm)}.ea-input-field--md{font-size:var(--font-size-md)}.ea-input-field--lg{font-size:var(--font-size-lg)}.ea-input-field--xl{font-size:var(--font-size-xl)}.ea-input-wrapper{display:flex;align-items:center;gap:.5em;min-height:2.5em;padding:0 .75em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-input-wrapper--focused{border-color:var(--ea-input-border-color-focus, var(--color-border-default));outline:none;box-shadow:var(--ea-input-shadow-focus, var(--shadow-focus-ring))}@media(forced-colors:active){.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--error{border-color:var(--color-error-default)}.ea-input-wrapper--error.ea-input-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-input-wrapper--error.ea-input-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-input-wrapper--disabled .ea-input{cursor:default}.ea-input-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-input-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-input-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper--readonly button{cursor:default}.ea-input-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-input-wrapper__prefix,.ea-input-wrapper__suffix{display:flex;align-items:center;flex-shrink:0;color:inherit}.ea-input-wrapper__prefix:empty,.ea-input-wrapper__suffix:empty{display:none}.ea-input-wrapper__control{position:relative;display:flex;flex:1;min-width:0}.ea-input-wrapper__typed-placeholder{position:absolute;inset:0;padding:.5em 0;white-space:pre}.ea-input-wrapper__icon{display:inline-flex;align-items:center;flex-shrink:0;font-size:1em;color:var(--color-text-secondary)}.ea-input-wrapper__clear{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__clear>*{font-size:1.25em}.ea-input-wrapper__clear:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__clear:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__clear:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__clear:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__clear:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-input-wrapper__password-toggle>*{font-size:1.25em}.ea-input-wrapper__password-toggle:after{content:\"\";position:absolute;top:50%;left:50%;width:max(100%,var(--ea-icon-button-target, 24px));height:max(100%,var(--ea-icon-button-target, 24px));transform:translate(-50%,-50%)}.ea-input-wrapper__password-toggle:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-input-wrapper__password-toggle:focus-visible{outline:none;outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-input-wrapper__password-toggle:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-input-wrapper__password-toggle:disabled{cursor:default;opacity:.5}.ea-input-wrapper__password-toggle{color:var(--ea-input-toggle-color, var(--color-text-secondary))}.ea-input-wrapper__password-toggle ea-icon-eye,.ea-input-wrapper__password-toggle ea-icon-eye-off{width:1em;height:1em;pointer-events:none}.ea-input{flex:1;width:100%;min-width:0;padding:.5em 0;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-input::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-input--typed-placeholder::placeholder{color:transparent}.ea-input:-webkit-autofill,.ea-input:autofill{-webkit-text-fill-color:var(--color-text-primary);-webkit-box-shadow:0 0 0 1000px var(--color-bg-base) inset;transition:background-color 5000s ease-in-out 0s}.ea-input:disabled{cursor:default}.ea-input::-webkit-calendar-picker-indicator,.ea-input::-webkit-credentials-auto-fill-button,.ea-input::-webkit-contacts-auto-fill-button,.ea-input::-webkit-strong-password-auto-fill-button,.ea-input::-webkit-caps-lock-indicator{display:none!important;visibility:hidden;pointer-events:none;width:0;height:0}.ea-input[type=number]::-webkit-inner-spin-button,.ea-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ea-input[type=number]{-moz-appearance:textfield;appearance:textfield}.ea-input[type=search]::-webkit-search-decoration,.ea-input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}\n"]
|
|
12802
13034
|
}]
|
|
12803
13035
|
}],
|
|
12804
13036
|
ctorParameters: () => [],
|
|
@@ -12903,6 +13135,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12903
13135
|
required: false
|
|
12904
13136
|
}]
|
|
12905
13137
|
}],
|
|
13138
|
+
typedPlaceholder: [{
|
|
13139
|
+
type: i0.Input,
|
|
13140
|
+
args: [{
|
|
13141
|
+
isSignal: true,
|
|
13142
|
+
alias: "typedPlaceholder",
|
|
13143
|
+
required: false
|
|
13144
|
+
}]
|
|
13145
|
+
}],
|
|
12906
13146
|
icon: [{
|
|
12907
13147
|
type: i0.Input,
|
|
12908
13148
|
args: [{
|
|
@@ -13383,6 +13623,7 @@ var CommandPaletteComponent = class CommandPaletteComponent {
|
|
|
13383
13623
|
"aria-autocomplete",
|
|
13384
13624
|
"type",
|
|
13385
13625
|
"placeholder",
|
|
13626
|
+
"typedPlaceholder",
|
|
13386
13627
|
"icon",
|
|
13387
13628
|
"keepIcon",
|
|
13388
13629
|
"size",
|
|
@@ -21718,7 +21959,9 @@ var FileUploaderComponent = class FileUploaderComponent {
|
|
|
21718
21959
|
"aria-label",
|
|
21719
21960
|
"aria-current",
|
|
21720
21961
|
"aria-labelledby",
|
|
21721
|
-
"aria-describedby"
|
|
21962
|
+
"aria-describedby",
|
|
21963
|
+
"aria-expanded",
|
|
21964
|
+
"aria-controls"
|
|
21722
21965
|
],
|
|
21723
21966
|
outputs: ["clicked"]
|
|
21724
21967
|
},
|
|
@@ -25526,7 +25769,9 @@ var PaginatorComponent = class PaginatorComponent {
|
|
|
25526
25769
|
"aria-label",
|
|
25527
25770
|
"aria-current",
|
|
25528
25771
|
"aria-labelledby",
|
|
25529
|
-
"aria-describedby"
|
|
25772
|
+
"aria-describedby",
|
|
25773
|
+
"aria-expanded",
|
|
25774
|
+
"aria-controls"
|
|
25530
25775
|
],
|
|
25531
25776
|
outputs: ["clicked"]
|
|
25532
25777
|
},
|
|
@@ -30977,6 +31222,7 @@ var TextareaComponent = class TextareaComponent {
|
|
|
30977
31222
|
alias: "aria-label"
|
|
30978
31223
|
});
|
|
30979
31224
|
placeholder = input("", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
31225
|
+
typedPlaceholder = input([], ...ngDevMode ? [{ debugName: "typedPlaceholder" }] : /* istanbul ignore next */ []);
|
|
30980
31226
|
size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
30981
31227
|
hint = input(void 0, ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
30982
31228
|
errorMsg = input(void 0, ...ngDevMode ? [{ debugName: "errorMsg" }] : /* istanbul ignore next */ []);
|
|
@@ -30998,6 +31244,9 @@ var TextareaComponent = class TextareaComponent {
|
|
|
30998
31244
|
onChange = () => {};
|
|
30999
31245
|
onTouched = () => {};
|
|
31000
31246
|
isDisabled = computed(() => this.disabled() || this._formDisabled(), ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
|
|
31247
|
+
typed = injectTypedPlaceholder(this.typedPlaceholder);
|
|
31248
|
+
typedPlaceholderShown = computed(() => this.typed.animating() && !this.value(), ...ngDevMode ? [{ debugName: "typedPlaceholderShown" }] : /* istanbul ignore next */ []);
|
|
31249
|
+
nativePlaceholder = computed(() => this.typedPlaceholder().length > 0 ? this.typed.hint() : this.placeholder(), ...ngDevMode ? [{ debugName: "nativePlaceholder" }] : /* istanbul ignore next */ []);
|
|
31001
31250
|
errorState = injectControlErrorState({
|
|
31002
31251
|
errorMsg: this.errorMsg,
|
|
31003
31252
|
errorMessages: this.errorMessages
|
|
@@ -31130,6 +31379,13 @@ var TextareaComponent = class TextareaComponent {
|
|
|
31130
31379
|
isRequired: false,
|
|
31131
31380
|
transformFunction: null
|
|
31132
31381
|
},
|
|
31382
|
+
typedPlaceholder: {
|
|
31383
|
+
classPropertyName: "typedPlaceholder",
|
|
31384
|
+
publicName: "typedPlaceholder",
|
|
31385
|
+
isSignal: true,
|
|
31386
|
+
isRequired: false,
|
|
31387
|
+
transformFunction: null
|
|
31388
|
+
},
|
|
31133
31389
|
size: {
|
|
31134
31390
|
classPropertyName: "size",
|
|
31135
31391
|
publicName: "size",
|
|
@@ -31247,8 +31503,8 @@ var TextareaComponent = class TextareaComponent {
|
|
|
31247
31503
|
isSignal: true
|
|
31248
31504
|
}],
|
|
31249
31505
|
ngImport: i0,
|
|
31250
|
-
template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [id]=\"id()\"\n [placeholder]=\"
|
|
31251
|
-
styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-field__footer{display:flex;align-items:flex-start;gap:.75em}.ea-textarea-field__count{flex-shrink:0;margin-inline-start:auto;font-size:max(var(--ea-field-messages-size, var(--text-helper-size)),.6875rem);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh);font-variant-numeric:tabular-nums}.ea-textarea-wrapper{display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-textarea:disabled{cursor:default}\n"],
|
|
31506
|
+
template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [class.ea-textarea--typed-placeholder]=\"typedPlaceholderShown()\"\n [id]=\"id()\"\n [placeholder]=\"nativePlaceholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"></textarea>\n\n @if (typedPlaceholderShown()) {\n <ea-typed-placeholder\n class=\"ea-textarea-wrapper__typed-placeholder\"\n [text]=\"typed.text()\"\n [typing]=\"typed.typing()\" />\n }\n </div>\n\n <ng-template #messages>\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n </ng-template>\n\n @if (showCount()) {\n <div class=\"ea-textarea-field__footer\">\n <ng-container [ngTemplateOutlet]=\"messages\" />\n <span\n class=\"ea-textarea-field__count\"\n [id]=\"id() + '-count'\">\n {{ countText() }}\n </span>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"messages\" />\n }\n</div>\n",
|
|
31507
|
+
styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-field__footer{display:flex;align-items:flex-start;gap:.75em}.ea-textarea-field__count{flex-shrink:0;margin-inline-start:auto;font-size:max(var(--ea-field-messages-size, var(--text-helper-size)),.6875rem);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh);font-variant-numeric:tabular-nums}.ea-textarea-wrapper{position:relative;display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea-wrapper__typed-placeholder{position:absolute;inset:0;padding:.75em;white-space:pre-wrap;overflow-wrap:break-word}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-textarea--typed-placeholder::placeholder{color:transparent}.ea-textarea:disabled{cursor:default}\n"],
|
|
31252
31508
|
dependencies: [
|
|
31253
31509
|
{
|
|
31254
31510
|
kind: "component",
|
|
@@ -31289,6 +31545,12 @@ var TextareaComponent = class TextareaComponent {
|
|
|
31289
31545
|
"ngTemplateOutlet",
|
|
31290
31546
|
"ngTemplateOutletInjector"
|
|
31291
31547
|
]
|
|
31548
|
+
},
|
|
31549
|
+
{
|
|
31550
|
+
kind: "component",
|
|
31551
|
+
type: TypedPlaceholderComponent,
|
|
31552
|
+
selector: "ea-typed-placeholder",
|
|
31553
|
+
inputs: ["text", "typing"]
|
|
31292
31554
|
}
|
|
31293
31555
|
],
|
|
31294
31556
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
@@ -31307,7 +31569,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
31307
31569
|
FieldLabelComponent,
|
|
31308
31570
|
FieldMessagesComponent,
|
|
31309
31571
|
NgClass,
|
|
31310
|
-
NgTemplateOutlet
|
|
31572
|
+
NgTemplateOutlet,
|
|
31573
|
+
TypedPlaceholderComponent
|
|
31311
31574
|
],
|
|
31312
31575
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31313
31576
|
providers: [{
|
|
@@ -31315,8 +31578,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
31315
31578
|
useExisting: forwardRef(() => TextareaComponent),
|
|
31316
31579
|
multi: true
|
|
31317
31580
|
}],
|
|
31318
|
-
template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [id]=\"id()\"\n [placeholder]=\"
|
|
31319
|
-
styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-field__footer{display:flex;align-items:flex-start;gap:.75em}.ea-textarea-field__count{flex-shrink:0;margin-inline-start:auto;font-size:max(var(--ea-field-messages-size, var(--text-helper-size)),.6875rem);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh);font-variant-numeric:tabular-nums}.ea-textarea-wrapper{display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-textarea:disabled{cursor:default}\n"]
|
|
31581
|
+
template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\"\n [optional]=\"optional()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [class.ea-textarea--typed-placeholder]=\"typedPlaceholderShown()\"\n [id]=\"id()\"\n [placeholder]=\"nativePlaceholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"></textarea>\n\n @if (typedPlaceholderShown()) {\n <ea-typed-placeholder\n class=\"ea-textarea-wrapper__typed-placeholder\"\n [text]=\"typed.text()\"\n [typing]=\"typed.typing()\" />\n }\n </div>\n\n <ng-template #messages>\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n </ng-template>\n\n @if (showCount()) {\n <div class=\"ea-textarea-field__footer\">\n <ng-container [ngTemplateOutlet]=\"messages\" />\n <span\n class=\"ea-textarea-field__count\"\n [id]=\"id() + '-count'\">\n {{ countText() }}\n </span>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"messages\" />\n }\n</div>\n",
|
|
31582
|
+
styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-field__footer{display:flex;align-items:flex-start;gap:.75em}.ea-textarea-field__count{flex-shrink:0;margin-inline-start:auto;font-size:max(var(--ea-field-messages-size, var(--text-helper-size)),.6875rem);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh);font-variant-numeric:tabular-nums}.ea-textarea-wrapper{position:relative;display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{outline:var(--border-width-medium) solid var(--color-border-focus);outline-offset:2px}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:none;box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);outline:none;box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea-wrapper__typed-placeholder{position:absolute;inset:0;padding:.75em;white-space:pre-wrap;overflow-wrap:break-word}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{opacity:1;font-style:italic;color:var(--color-text-tertiary)}.ea-textarea--typed-placeholder::placeholder{color:transparent}.ea-textarea:disabled{cursor:default}\n"]
|
|
31320
31583
|
}]
|
|
31321
31584
|
}],
|
|
31322
31585
|
propDecorators: {
|
|
@@ -31372,6 +31635,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
31372
31635
|
required: false
|
|
31373
31636
|
}]
|
|
31374
31637
|
}],
|
|
31638
|
+
typedPlaceholder: [{
|
|
31639
|
+
type: i0.Input,
|
|
31640
|
+
args: [{
|
|
31641
|
+
isSignal: true,
|
|
31642
|
+
alias: "typedPlaceholder",
|
|
31643
|
+
required: false
|
|
31644
|
+
}]
|
|
31645
|
+
}],
|
|
31375
31646
|
size: [{
|
|
31376
31647
|
type: i0.Input,
|
|
31377
31648
|
args: [{
|