@eagami/ui 5.66.0 → 5.68.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/README.md +2 -0
- package/fesm2022/eagami-ui.mjs +81 -33
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles/_form-field.scss +0 -1
- package/src/styles/_reset.scss +2 -0
- package/types/eagami-ui.d.ts +27 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eagami/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.68.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",
|
package/src/styles/_reset.scss
CHANGED
package/types/eagami-ui.d.ts
CHANGED
|
@@ -348,10 +348,25 @@ export interface PaletteConfig {
|
|
|
348
348
|
* unset and accept the defaults. */
|
|
349
349
|
roles?: Partial<PaletteRoles>;
|
|
350
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* A focus colour of its own, for focus rings and outlines. Light mode draws
|
|
353
|
+
* focus in the derived 500 shade and dark mode in the 300 shade, the same
|
|
354
|
+
* steps the primary colour uses when no focus colour is set.
|
|
355
|
+
*/
|
|
356
|
+
export interface FocusColorConfig {
|
|
357
|
+
/** Anchor hex (`#RRGGBB`) the focus shades are derived from. */
|
|
358
|
+
base: string;
|
|
359
|
+
/** Pin individual shades to specific hex values, bypassing derivation for
|
|
360
|
+
* those slots. */
|
|
361
|
+
overrides?: Partial<Record<PaletteShade, string>>;
|
|
362
|
+
}
|
|
351
363
|
/** Top-level palette config accepted by `provideEagamiUi()`. */
|
|
352
364
|
export interface EagamiPaletteConfig {
|
|
353
365
|
primary?: PaletteConfig;
|
|
354
366
|
secondary?: PaletteConfig;
|
|
367
|
+
/** Focus follows the primary colour unless this sets one apart, as a brand
|
|
368
|
+
* whose hue reads as an error or a warning needs. */
|
|
369
|
+
focus?: FocusColorConfig;
|
|
355
370
|
}
|
|
356
371
|
/** Flat CSS-custom-property name to value map for a single mode. */
|
|
357
372
|
export type DerivedPalette = Record<string, string>;
|
|
@@ -541,6 +556,8 @@ export interface ContrastSurfaces {
|
|
|
541
556
|
* - `--color-brand-text` vs `canvas` >= 4.5:1 (link / foreground text)
|
|
542
557
|
* - `--color-brand-default` vs `onBrandText` >= 4.5:1 (button label)
|
|
543
558
|
* - `--color-brand-default` vs `canvas` >= 3:1 (WCAG 1.4.11 non-text)
|
|
559
|
+
* - `--color-border-focus` vs `canvas` >= 3:1 (WCAG 1.4.11 non-text), when a
|
|
560
|
+
* focus colour is set
|
|
544
561
|
*/
|
|
545
562
|
export declare function validatePalette(palette: ModePalette, surfaces?: ContrastSurfaces): ContrastViolation[];
|
|
546
563
|
/** Format a violation list as a human-readable error message. */
|
|
@@ -4782,6 +4799,9 @@ interface ControlErrorState {
|
|
|
4782
4799
|
* Auto-derived messages surface only once the bound control is `invalid &&
|
|
4783
4800
|
* touched`, and a new one waits while focus is still inside the field, until
|
|
4784
4801
|
* the user leaves it or submits the form, so nothing is flagged mid-edit. A
|
|
4802
|
+
* field the user only passed through, leaving it without changing it, stays
|
|
4803
|
+
* quiet until they change it or the form is submitted, so tabbing past an
|
|
4804
|
+
* empty required field never flags it. A
|
|
4785
4805
|
* message already showing follows the value as it is typed and clears the
|
|
4786
4806
|
* moment it is fixed. A message revealed by a pointer press moving focus away
|
|
4787
4807
|
* waits until that press has landed its click. The control arrives as a signal
|
|
@@ -8220,6 +8240,8 @@ export declare class TagComponent {
|
|
|
8220
8240
|
private readonly labelEl;
|
|
8221
8241
|
readonly variant: import("@angular/core").InputSignal<TagVariant>;
|
|
8222
8242
|
readonly size: import("@angular/core").InputSignal<EaSize>;
|
|
8243
|
+
/** Optional icon component rendered before the label. */
|
|
8244
|
+
readonly icon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
|
|
8223
8245
|
readonly removable: import("@angular/core").InputSignal<boolean>;
|
|
8224
8246
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
8225
8247
|
readonly removeLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -8295,6 +8317,11 @@ export declare class TagComponent {
|
|
|
8295
8317
|
"required": false;
|
|
8296
8318
|
"isSignal": true;
|
|
8297
8319
|
};
|
|
8320
|
+
"icon": {
|
|
8321
|
+
"alias": "icon";
|
|
8322
|
+
"required": false;
|
|
8323
|
+
"isSignal": true;
|
|
8324
|
+
};
|
|
8298
8325
|
"removable": {
|
|
8299
8326
|
"alias": "removable";
|
|
8300
8327
|
"required": false;
|