@eagami/ui 5.64.1 → 5.65.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.64.1",
3
+ "version": "5.65.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",
@@ -21,6 +21,9 @@ const SUB_BODY_SCALE: Record<string, number> = {
21
21
  micro: 0.625,
22
22
  };
23
23
 
24
+ /** Brand lockups keep the proportions of the logo artwork, not the UI type scale. */
25
+ const BRAND_LOCKUPS = new Set(['eagami-wordmark/eagami-wordmark.component.scss']);
26
+
24
27
  function libStylesheets(): { name: string; css: string }[] {
25
28
  const lib = join(SRC, 'src/lib');
26
29
  return readdirSync(lib, { recursive: true, encoding: 'utf8' })
@@ -56,7 +59,9 @@ describe('Type scale', () => {
56
59
  it('draws text below the body line from the shared scale', () => {
57
60
  const allowed = new Set(Object.values(SUB_BODY_SCALE));
58
61
  const offScale: string[] = [];
59
- for (const { name, css } of libStylesheets()) {
62
+ for (const { name, css } of libStylesheets().filter(
63
+ ({ name }) => !BRAND_LOCKUPS.has(name),
64
+ )) {
60
65
  for (const [declaration, value] of css.matchAll(
61
66
  /(?:font-size|--ea-field-(?:label|messages)-size):\s*([\d.]+)em\b/g,
62
67
  )) {
@@ -4472,20 +4472,22 @@ export type EagamiWordmarkVariant = 'default' | 'byline' | 'tagline';
4472
4472
  /** Layout of the wordmark: `stacked` for multi-line, `inline` for a single line with em-dash separators. */
4473
4473
  export type EagamiWordmarkLayout = 'stacked' | 'inline';
4474
4474
  /**
4475
- * Branded eagami wordmark logo. `size` is the brand text's font-size in px
4476
- * and the rest of the lockup scales proportionally from it; supports three
4477
- * content variants paired with stacked or inline layouts.
4475
+ * Branded eagami wordmark logo. `size` is the brand text's font-size, in px or
4476
+ * inherited from the surrounding text, and the rest of the lockup scales
4477
+ * proportionally from it; supports three content variants paired with stacked
4478
+ * or inline layouts.
4478
4479
  */
4479
4480
  export declare class EagamiWordmarkComponent {
4480
4481
  protected readonly i18n: EagamiI18nService;
4481
4482
  /** Content variant. */
4482
4483
  readonly variant: import("@angular/core").InputSignal<EagamiWordmarkVariant>;
4483
4484
  readonly layout: import("@angular/core").InputSignal<EagamiWordmarkLayout>;
4484
- readonly size: import("@angular/core").InputSignal<number>;
4485
+ /** Brand text size in px, or `'inherit'` to match the surrounding text. */
4486
+ readonly size: import("@angular/core").InputSignal<number | "inherit">;
4485
4487
  /** Renders the wordmark as a link to eagami.com; disable to embed it inside a custom link or static context. */
4486
4488
  readonly linked: import("@angular/core").InputSignal<boolean>;
4487
- /** Clamps size to a 10px floor and falls back to the default when cleared. */
4488
- protected readonly resolvedSize: import("@angular/core").Signal<number>;
4489
+ /** Clamps px sizes to a 10px floor and falls back to the default when cleared. */
4490
+ protected readonly resolvedSize: import("@angular/core").Signal<string>;
4489
4491
  protected readonly showOverline: import("@angular/core").Signal<boolean>;
4490
4492
  protected readonly showTagline: import("@angular/core").Signal<boolean>;
4491
4493
  protected readonly brandText: import("@angular/core").Signal<string>;
@@ -9016,6 +9018,61 @@ export declare class ToastComponent {
9016
9018
  };
9017
9019
  }, {}, never, never, true, never>;
9018
9020
  }
9021
+ export type ToggleChipSize = EaSize;
9022
+ /**
9023
+ * Pill-shaped toggle button for filters and feature pickers. Projected content,
9024
+ * an optional leading icon and a label, names it, and a check marks it as on,
9025
+ * so its state never rests on colour alone.
9026
+ */
9027
+ export declare class ToggleChipComponent {
9028
+ /** Whether the chip is on, two-way bindable via [(selected)]. */
9029
+ readonly selected: import("@angular/core").ModelSignal<boolean>;
9030
+ readonly size: import("@angular/core").InputSignal<EaSize>;
9031
+ /** Disables the chip and blocks toggling. */
9032
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
9033
+ /** Accessible label for a chip whose projected content has no visible text. */
9034
+ readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
9035
+ /** Id of an element that describes what the chip turns on, announced with its name. */
9036
+ readonly ariaDescribedby: import("@angular/core").InputSignal<string | undefined>;
9037
+ /** Fires with the new state whenever the user toggles the chip. */
9038
+ readonly changed: import("@angular/core").OutputEmitterRef<boolean>;
9039
+ protected readonly classes: import("@angular/core").Signal<{
9040
+ [x: string]: boolean;
9041
+ 'ea-toggle-chip--selected': boolean;
9042
+ }>;
9043
+ protected toggle(): void;
9044
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggleChipComponent, never>;
9045
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToggleChipComponent, "ea-toggle-chip", never, {
9046
+ "selected": {
9047
+ "alias": "selected";
9048
+ "required": false;
9049
+ "isSignal": true;
9050
+ };
9051
+ "size": {
9052
+ "alias": "size";
9053
+ "required": false;
9054
+ "isSignal": true;
9055
+ };
9056
+ "disabled": {
9057
+ "alias": "disabled";
9058
+ "required": false;
9059
+ "isSignal": true;
9060
+ };
9061
+ "ariaLabel": {
9062
+ "alias": "aria-label";
9063
+ "required": false;
9064
+ "isSignal": true;
9065
+ };
9066
+ "ariaDescribedby": {
9067
+ "alias": "aria-describedby";
9068
+ "required": false;
9069
+ "isSignal": true;
9070
+ };
9071
+ }, {
9072
+ "selected": "selectedChange";
9073
+ "changed": "changed";
9074
+ }, never, ["*"], true, never>;
9075
+ }
9019
9076
  /**
9020
9077
  * A single transferable item in an `<ea-transfer-list>`.
9021
9078
  *
@@ -10546,8 +10603,16 @@ export declare class EagamiIconComponent extends IconComponentBase {
10546
10603
  static readonly category: IconCategory;
10547
10604
  static readonly isBrand = true;
10548
10605
  static readonly tags: ReadonlyArray<string>;
10606
+ /** Slowly swings the heron's raised leg back and forth. Off under reduced motion. */
10607
+ readonly animated: import("@angular/core").InputSignal<boolean>;
10549
10608
  static ɵfac: i0.ɵɵFactoryDeclaration<EagamiIconComponent, never>;
10550
- static ɵcmp: i0.ɵɵComponentDeclaration<EagamiIconComponent, "ea-icon-eagami", never, {}, {}, never, never, true, never>;
10609
+ static ɵcmp: i0.ɵɵComponentDeclaration<EagamiIconComponent, "ea-icon-eagami", never, {
10610
+ "animated": {
10611
+ "alias": "animated";
10612
+ "required": false;
10613
+ "isSignal": true;
10614
+ };
10615
+ }, {}, never, never, true, never>;
10551
10616
  }
10552
10617
  export declare class EditIconComponent extends IconComponentBase {
10553
10618
  static readonly slug = "edit";