@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eagami/ui",
3
- "version": "5.70.0",
3
+ "version": "5.71.0",
4
4
  "description": "Lightweight, accessible, themeable Angular UI component library and icon set built on CSS custom properties",
5
5
  "author": "Michal Wiraszka <michal@eagami.com>",
6
6
  "license": "MIT",
@@ -31,8 +31,10 @@
31
31
 
32
32
  // Native fields use dir="auto" so typed LTR text stays LTR, but that resolves
33
33
  // an empty field to LTR and parks its placeholder on the left. Pin them to the
34
- // inline-end edge so every RTL field reads from the right like the others.
34
+ // inline-end edge so every RTL field reads from the right like the others. The
35
+ // typed placeholder drawn over an empty field follows its placeholder.
35
36
  [dir='rtl'] input[dir='auto'],
36
- [dir='rtl'] textarea[dir='auto'] {
37
+ [dir='rtl'] textarea[dir='auto'],
38
+ [dir='rtl'] ea-typed-placeholder[dir='auto'] {
37
39
  text-align: right;
38
40
  }
@@ -1930,14 +1930,22 @@ export declare class ButtonComponent {
1930
1930
  readonly ariaLabelledby: import("@angular/core").InputSignal<string | undefined>;
1931
1931
  /** Space-separated ids of the elements that describe the button, e.g. a hint. */
1932
1932
  readonly ariaDescribedby: import("@angular/core").InputSignal<string | undefined>;
1933
+ /** Whether the content this button shows and hides is open, for a disclosure toggle. */
1934
+ readonly ariaExpanded: import("@angular/core").InputSignal<boolean | undefined>;
1935
+ /** Id of the element this button shows, hides or otherwise controls. */
1936
+ readonly ariaControls: import("@angular/core").InputSignal<string | undefined>;
1937
+ private readonly renderer;
1933
1938
  private readonly buttonEl;
1939
+ private readonly ownedAria;
1934
1940
  /** Fires when the button is activated; suppressed while disabled or loading. */
1935
1941
  readonly clicked: import("@angular/core").OutputEmitterRef<MouseEvent>;
1936
1942
  readonly isDisabled: import("@angular/core").Signal<boolean>;
1937
1943
  readonly hostClasses: import("@angular/core").Signal<Record<string, boolean>>;
1944
+ constructor();
1938
1945
  handleClick(event: MouseEvent): void;
1939
1946
  /** Moves keyboard focus to the underlying native button. */
1940
1947
  focus(): void;
1948
+ private reflectAria;
1941
1949
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
1942
1950
  static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ea-button", never, {
1943
1951
  "variant": {
@@ -2005,6 +2013,16 @@ export declare class ButtonComponent {
2005
2013
  "required": false;
2006
2014
  "isSignal": true;
2007
2015
  };
2016
+ "ariaExpanded": {
2017
+ "alias": "aria-expanded";
2018
+ "required": false;
2019
+ "isSignal": true;
2020
+ };
2021
+ "ariaControls": {
2022
+ "alias": "aria-controls";
2023
+ "required": false;
2024
+ "isSignal": true;
2025
+ };
2008
2026
  }, {
2009
2027
  "clicked": "clicked";
2010
2028
  }, never, ["[slot=prefix]", "*", "[slot=suffix]"], true, never>;
@@ -5218,6 +5236,26 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
5218
5236
  "dragOverChanged": "dragOverChanged";
5219
5237
  }, never, ["[icon]"], true, never>;
5220
5238
  }
5239
+ /** Live state of a field's typewriter placeholder. */
5240
+ interface TypedPlaceholder {
5241
+ /** Whether the typed layer stands in for the native placeholder. */
5242
+ readonly animating: Signal<boolean>;
5243
+ /** The whole hint in play, for the native `placeholder` attribute. */
5244
+ readonly hint: Signal<string>;
5245
+ /** The part of the hint typed so far. */
5246
+ readonly text: Signal<string>;
5247
+ /** Whether characters are still arriving; the cursor blinks only once they stop. */
5248
+ readonly typing: Signal<boolean>;
5249
+ }
5250
+ /**
5251
+ * Types `hints` into a field's placeholder one character at a time, holds each
5252
+ * whole hint, then clears it and types the next, looping. Under
5253
+ * `prefers-reduced-motion: reduce` it swaps whole hints instead and never
5254
+ * animates. It starts in the browser after the first render, restarts when the
5255
+ * hints change, and clears its timer on destroy. The timers run outside the
5256
+ * zone so the endless loop never holds the app unstable.
5257
+ */
5258
+ declare function injectTypedPlaceholder(hints: Signal<readonly string[]>): TypedPlaceholder;
5221
5259
  /** Visual size of the input. */
5222
5260
  export type InputSize = EaSize;
5223
5261
  /** HTML `type` attribute applied to the underlying `<input>`. */
@@ -5256,6 +5294,14 @@ export declare class InputComponent implements ControlValueAccessor {
5256
5294
  readonly type: import("@angular/core").InputSignal<InputType>;
5257
5295
  /** Placeholder shown while the field is empty. */
5258
5296
  readonly placeholder: import("@angular/core").InputSignal<string>;
5297
+ /**
5298
+ * Hints typed into the empty field one character at a time, trailed by a
5299
+ * blinking cursor, each held and then replaced by the next, in a loop. The
5300
+ * native placeholder carries the whole current hint for assistive
5301
+ * technology, and under `prefers-reduced-motion` the hints swap whole without
5302
+ * a cursor. Takes the place of `placeholder` while it holds any hints.
5303
+ */
5304
+ readonly typedPlaceholder: import("@angular/core").InputSignal<readonly string[]>;
5259
5305
  /** Leading icon component rendered before the text, e.g. a search or filter glyph. */
5260
5306
  readonly icon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
5261
5307
  /** Keeps the leading icon while the field has a value; when false it shows only alongside the placeholder. */
@@ -5310,6 +5356,9 @@ export declare class InputComponent implements ControlValueAccessor {
5310
5356
  private onChange;
5311
5357
  private onTouched;
5312
5358
  readonly isDisabled: import("@angular/core").Signal<boolean>;
5359
+ protected readonly typed: TypedPlaceholder;
5360
+ protected readonly typedPlaceholderShown: import("@angular/core").Signal<boolean>;
5361
+ protected readonly nativePlaceholder: import("@angular/core").Signal<string>;
5313
5362
  readonly effectiveType: import("@angular/core").Signal<InputType>;
5314
5363
  private readonly errorState;
5315
5364
  readonly errorText: import("@angular/core").Signal<string | null>;
@@ -5409,6 +5458,11 @@ export declare class InputComponent implements ControlValueAccessor {
5409
5458
  "required": false;
5410
5459
  "isSignal": true;
5411
5460
  };
5461
+ "typedPlaceholder": {
5462
+ "alias": "typedPlaceholder";
5463
+ "required": false;
5464
+ "isSignal": true;
5465
+ };
5412
5466
  "icon": {
5413
5467
  "alias": "icon";
5414
5468
  "required": false;
@@ -8783,6 +8837,14 @@ export declare class TextareaComponent implements ControlValueAccessor {
8783
8837
  /** Accessible name for the control when no visible `label` is set. */
8784
8838
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
8785
8839
  readonly placeholder: import("@angular/core").InputSignal<string>;
8840
+ /**
8841
+ * Hints typed into the empty field one character at a time, trailed by a
8842
+ * blinking cursor, each held and then replaced by the next, in a loop. The
8843
+ * native placeholder carries the whole current hint for assistive
8844
+ * technology, and under `prefers-reduced-motion` the hints swap whole without
8845
+ * a cursor. Takes the place of `placeholder` while it holds any hints.
8846
+ */
8847
+ readonly typedPlaceholder: import("@angular/core").InputSignal<readonly string[]>;
8786
8848
  readonly size: import("@angular/core").InputSignal<EaSize>;
8787
8849
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
8788
8850
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
@@ -8812,6 +8874,9 @@ export declare class TextareaComponent implements ControlValueAccessor {
8812
8874
  private onChange;
8813
8875
  private onTouched;
8814
8876
  readonly isDisabled: import("@angular/core").Signal<boolean>;
8877
+ protected readonly typed: TypedPlaceholder;
8878
+ protected readonly typedPlaceholderShown: import("@angular/core").Signal<boolean>;
8879
+ protected readonly nativePlaceholder: import("@angular/core").Signal<string>;
8815
8880
  private readonly errorState;
8816
8881
  readonly errorText: import("@angular/core").Signal<string | null>;
8817
8882
  readonly hasError: import("@angular/core").Signal<boolean>;
@@ -8881,6 +8946,11 @@ export declare class TextareaComponent implements ControlValueAccessor {
8881
8946
  "required": false;
8882
8947
  "isSignal": true;
8883
8948
  };
8949
+ "typedPlaceholder": {
8950
+ "alias": "typedPlaceholder";
8951
+ "required": false;
8952
+ "isSignal": true;
8953
+ };
8884
8954
  "size": {
8885
8955
  "alias": "size";
8886
8956
  "required": false;