@eagami/ui 2.10.0 → 2.11.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": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "description": "Lightweight, accessible Angular UI component library built on CSS custom properties",
5
5
  "author": "Michal Wiraszka <michal@eagami.com>",
6
6
  "license": "MIT",
@@ -77,10 +77,18 @@
77
77
  --color-bg-base: var(--color-neutral-0);
78
78
  --color-bg-subtle: var(--color-neutral-50);
79
79
  --color-bg-stripe: var(--color-neutral-50);
80
+ // Zebra-stripe fill for table rows: a mid-tone between the base row and the
81
+ // header tint so striped rows read as lighter than the header, not identical to
82
+ // it. Dark mode overrides the ratio to stay equally subtle.
83
+ --color-bg-stripe-subtle: color-mix(
84
+ in srgb,
85
+ var(--color-bg-base) 30%,
86
+ var(--color-bg-stripe)
87
+ );
80
88
  --color-bg-muted: var(--color-neutral-100);
81
- // Stronger neutral fill for placeholder surfaces (e.g. avatar) that must read
82
- // clearly against the page; muted is too faint on a white base
83
- --color-bg-emphasis: var(--color-neutral-300);
89
+ // Soft neutral fill for placeholder surfaces (e.g. avatar initials) when no
90
+ // image is set; light enough to sit gently on a white page
91
+ --color-bg-emphasis: var(--color-neutral-100);
84
92
  --color-bg-elevated: var(--color-neutral-0);
85
93
  --color-bg-overlay: rgba(0, 0, 0, 0.5);
86
94
 
@@ -169,6 +177,13 @@
169
177
  --color-bg-base: var(--color-neutral-800);
170
178
  --color-bg-subtle: var(--color-neutral-700);
171
179
  --color-bg-stripe: var(--color-neutral-900);
180
+ // The dark base-to-stripe gap reads stronger than the light one, so weight the
181
+ // stripe mix toward the base row to keep zebra striping subtle.
182
+ --color-bg-stripe-subtle: color-mix(
183
+ in srgb,
184
+ var(--color-bg-base) 62.5%,
185
+ var(--color-bg-stripe)
186
+ );
172
187
  --color-bg-elevated: var(--color-neutral-700);
173
188
  // Opaque muted surface for static fills (disabled fields, slider/progress
174
189
  // tracks, skeletons). Hover/active fills route through the translucent
@@ -1272,6 +1272,7 @@ declare class CodeInputComponent implements ControlValueAccessor {
1272
1272
  readonly digitEls: _angular_core.Signal<readonly ElementRef<HTMLInputElement>[]>;
1273
1273
  protected readonly i18n: EagamiI18nService;
1274
1274
  readonly label: _angular_core.InputSignal<string | undefined>;
1275
+ /** Placeholder text spread one character per cell (cell i shows character i). */
1275
1276
  readonly placeholder: _angular_core.InputSignal<string>;
1276
1277
  readonly length: _angular_core.InputSignal<number>;
1277
1278
  readonly size: _angular_core.InputSignal<EaSize>;
@@ -1280,6 +1281,8 @@ declare class CodeInputComponent implements ControlValueAccessor {
1280
1281
  readonly disabled: _angular_core.InputSignal<boolean>;
1281
1282
  readonly readonly: _angular_core.InputSignal<boolean>;
1282
1283
  readonly required: _angular_core.InputSignal<boolean>;
1284
+ /** Allow any non-whitespace character; when false (default) only digits are accepted. */
1285
+ readonly allowAllChars: _angular_core.InputSignal<boolean>;
1283
1286
  readonly id: _angular_core.InputSignal<string>;
1284
1287
  readonly value: _angular_core.ModelSignal<string>;
1285
1288
  readonly focusedIndex: _angular_core.WritableSignal<number>;
@@ -1293,6 +1296,7 @@ declare class CodeInputComponent implements ControlValueAccessor {
1293
1296
  readonly showError: _angular_core.Signal<boolean>;
1294
1297
  readonly showHint: _angular_core.Signal<boolean>;
1295
1298
  readonly digits: _angular_core.Signal<string[]>;
1299
+ readonly placeholders: _angular_core.Signal<string[]>;
1296
1300
  readonly indices: _angular_core.Signal<number[]>;
1297
1301
  writeValue(val: string): void;
1298
1302
  registerOnChange(fn: (value: string) => void): void;
@@ -1305,9 +1309,10 @@ declare class CodeInputComponent implements ControlValueAccessor {
1305
1309
  handleBlur(): void;
1306
1310
  /** Moves keyboard focus to the next empty digit (or the last one when full). */
1307
1311
  focus(): void;
1312
+ private sanitize;
1308
1313
  private focusDigit;
1309
1314
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CodeInputComponent, never>;
1310
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CodeInputComponent, "ea-code-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "completed": "completed"; }, never, never, true, never>;
1315
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CodeInputComponent, "ea-code-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "allowAllChars": { "alias": "allowAllChars"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "completed": "completed"; }, never, never, true, never>;
1311
1316
  }
1312
1317
 
1313
1318
  /** Visual size of the date picker trigger. */