@eagami/ui 2.2.0 → 2.3.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.2.0",
3
+ "version": "2.3.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",
@@ -22,7 +22,7 @@ body {
22
22
  font-size: var(--font-size-md);
23
23
  line-height: var(--line-height-normal);
24
24
  color: var(--color-text-primary);
25
- background-color: var(--color-bg-base);
25
+ background-color: var(--color-bg-canvas);
26
26
  -webkit-font-smoothing: antialiased;
27
27
  -moz-osx-font-smoothing: grayscale;
28
28
  }
@@ -85,27 +85,47 @@
85
85
  --color-text-primary: var(--color-neutral-900);
86
86
  --color-text-secondary: var(--color-neutral-600);
87
87
  --color-text-tertiary: var(--color-neutral-400);
88
- --color-text-disabled: var(--color-neutral-300);
88
+ --color-text-disabled: var(--color-neutral-400);
89
89
  --color-text-inverse: var(--color-neutral-0);
90
90
  --color-text-link: var(--color-primary-600);
91
91
  --color-text-link-hover: var(--color-primary-800);
92
92
 
93
- // Background
93
+ // Two-tier surface model: `bg-canvas` is the page itself; `bg-base` is the
94
+ // surface of components on the page (inputs, cards, accordion items,
95
+ // popover panels). In dark mode bg-base lifts above bg-canvas so component
96
+ // surfaces don't disappear into the page.
97
+ --color-bg-canvas: var(--color-neutral-0);
94
98
  --color-bg-base: var(--color-neutral-0);
95
99
  --color-bg-subtle: var(--color-neutral-50);
100
+ --color-bg-stripe: var(--color-neutral-50);
96
101
  --color-bg-muted: var(--color-neutral-100);
97
102
  --color-bg-elevated: var(--color-neutral-0);
98
103
  --color-bg-overlay: rgba(0, 0, 0, 0.5);
99
104
 
100
- // Border
105
+ // Border. `subtle` is for low-contrast dividers (table rows, cell grids)
106
+ // where a full `default` border would feel heavy. `default` is the everyday
107
+ // form-component outline; `strong` is for prominent outlines (secondary
108
+ // buttons, etc.); `focus` is the keyboard-focus ring.
109
+ --color-border-subtle: var(--color-neutral-200);
101
110
  --color-border-default: var(--color-neutral-200);
102
111
  --color-border-strong: var(--color-neutral-400);
103
112
  --color-border-focus: var(--color-primary-500);
104
113
 
105
- // Brand semantic
114
+ // Brand semantic.
115
+ //
116
+ // Two roles split intentionally:
117
+ // - `--color-brand-default` (and `-hover` / `-active`) is the brand colour
118
+ // used as a **surface** — solid background under white text (primary
119
+ // button, badge bg). Needs ≥ 4.5:1 vs white text.
120
+ // - `--color-brand-text` is the brand colour used as a **foreground** on a
121
+ // non-brand surface (selected dropdown row, today marker, sorted column
122
+ // header, link, spinner). Needs ≥ 4.5:1 vs `--color-bg-base`. In dark
123
+ // mode the foreground role flips to a lighter shade so contrast against
124
+ // the dark surface still holds.
106
125
  --color-brand-default: var(--color-primary-600);
107
126
  --color-brand-hover: var(--color-primary-700);
108
127
  --color-brand-active: var(--color-primary-800);
128
+ --color-brand-text: var(--color-primary-700);
109
129
  --color-brand-subtle: var(--color-primary-50);
110
130
  --color-brand-muted: var(--color-primary-100);
111
131
 
@@ -154,29 +174,45 @@
154
174
  // ---------------------------------------------------------------------------
155
175
  @mixin dark-color-tokens {
156
176
  --color-text-primary: var(--color-neutral-50);
157
- --color-text-secondary: var(--color-neutral-400);
177
+ --color-text-secondary: var(--color-neutral-300);
158
178
  --color-text-tertiary: var(--color-neutral-500);
159
- --color-text-disabled: var(--color-neutral-700);
179
+ --color-text-disabled: var(--color-neutral-500);
160
180
  --color-text-inverse: var(--color-neutral-900);
161
181
  --color-text-link: var(--color-primary-300);
162
182
  --color-text-link-hover: var(--color-primary-100);
163
183
 
164
- // Dark-mode background hierarchy steps from darkest (page) to lightest (hover),
165
- // since elevation in dark mode is conveyed by surface lightness rather than shadow:
166
- // bg-base (950) bg-subtle (900) bg-elevated (800) bg-muted (700)
167
- // bg-muted sits *above* bg-elevated so hover states inside elevated surfaces
168
- // (dropdowns on a card, menu items in a drawer) still read as a step up.
169
- --color-bg-base: var(--color-neutral-950);
170
- --color-bg-subtle: var(--color-neutral-900);
171
- --color-bg-elevated: var(--color-neutral-800);
172
- --color-bg-muted: var(--color-neutral-700);
173
-
174
- --color-border-default: var(--color-neutral-700);
175
- --color-border-strong: var(--color-neutral-500);
176
-
177
- --color-brand-default: var(--color-primary-400);
178
- --color-brand-hover: var(--color-primary-300);
179
- --color-brand-active: var(--color-primary-200);
184
+ // Dark-mode surface hierarchy. Canvas is the page itself (deepest).
185
+ // bg-base lifts above it so component surfaces (inputs, cards, accordion
186
+ // items, popover panels) read above the page instead of disappearing into
187
+ // it. Subtle / elevated / muted continue the lift for striped rows, floating
188
+ // surfaces, and hover states.
189
+ --color-bg-canvas: var(--color-neutral-950);
190
+ --color-bg-base: var(--color-neutral-800);
191
+ --color-bg-subtle: var(--color-neutral-700);
192
+ --color-bg-stripe: var(--color-neutral-900);
193
+ --color-bg-elevated: var(--color-neutral-700);
194
+ --color-bg-muted: var(--color-neutral-600);
195
+
196
+ // Borders sit clear of every bg-* shade so they stay visible on any surface.
197
+ // `subtle` mixes between neutral-700 and -800 so it's distinct from the
198
+ // card surface (neutral-700) while staying close to cell bgs (-800/-900).
199
+ // `default` is the form-component outline; anything darker collides with
200
+ // bg-subtle / bg-elevated (both neutral-700) and disappears.
201
+ --color-border-subtle: color-mix(
202
+ in srgb,
203
+ var(--color-neutral-700),
204
+ var(--color-neutral-800)
205
+ );
206
+ --color-border-default: var(--color-neutral-400);
207
+ --color-border-strong: var(--color-neutral-300);
208
+
209
+ // Brand surface roles step one shade lighter than light mode so the button
210
+ // clears WCAG 1.4.11 (3:1) against the near-black canvas while still
211
+ // carrying its white label above 4.5:1.
212
+ --color-brand-default: var(--color-primary-500);
213
+ --color-brand-hover: var(--color-primary-600);
214
+ --color-brand-active: var(--color-primary-700);
215
+ --color-brand-text: var(--color-primary-300);
180
216
  --color-brand-subtle: rgba(75, 145, 195, 0.1);
181
217
  --color-brand-muted: rgba(75, 145, 195, 0.2);
182
218
 
@@ -100,6 +100,7 @@ interface EagamiMessages {
100
100
  input: {
101
101
  showPassword: string;
102
102
  hidePassword: string;
103
+ clear: string;
103
104
  };
104
105
  menu: {
105
106
  label: string;
@@ -186,22 +187,99 @@ interface EagamiI18nConfig {
186
187
  messages?: EagamiMessagesOverride;
187
188
  }
188
189
 
190
+ /** Public types for the eagami palette provider API. */
191
+ /** The 10 derived shade positions, matching the library's existing scale. */
192
+ type PaletteShade = '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
193
+ /**
194
+ * Which shade backs each semantic role. Defaults match the library's
195
+ * hand-tuned palette so passing only `base` produces behaviour
196
+ * indistinguishable from the un-themed library.
197
+ */
198
+ interface PaletteRoles {
199
+ /** `--color-brand-default` in light mode. */
200
+ surfaceLight: PaletteShade;
201
+ /** `--color-brand-default` in dark mode. */
202
+ surfaceDark: PaletteShade;
203
+ /** `--color-brand-hover` in light mode. */
204
+ surfaceHoverLight: PaletteShade;
205
+ /** `--color-brand-hover` in dark mode. */
206
+ surfaceHoverDark: PaletteShade;
207
+ /** `--color-brand-active` in light mode. */
208
+ surfaceActiveLight: PaletteShade;
209
+ /** `--color-brand-active` in dark mode. */
210
+ surfaceActiveDark: PaletteShade;
211
+ /** `--color-brand-text` in light mode. */
212
+ textLight: PaletteShade;
213
+ /** `--color-brand-text` in dark mode. */
214
+ textDark: PaletteShade;
215
+ /** `--color-brand-subtle` in light mode. */
216
+ subtleLight: PaletteShade;
217
+ /** `--color-brand-muted` in light mode. */
218
+ mutedLight: PaletteShade;
219
+ }
220
+ declare const DEFAULT_PALETTE_ROLES: PaletteRoles;
221
+ interface PaletteConfig {
222
+ /** Anchor hex (`#RRGGBB`). The library derives the full 50–900 scale from
223
+ * this point in OKLCH space, holding hue and chroma roughly constant while
224
+ * stepping lightness. */
225
+ base: string;
226
+ /** Pin individual shades to specific hex values, bypassing derivation for
227
+ * those slots. */
228
+ overrides?: Partial<Record<PaletteShade, string>>;
229
+ /** Remap semantic roles onto different shades. Most consumers leave this
230
+ * unset and accept the defaults. */
231
+ roles?: Partial<PaletteRoles>;
232
+ }
233
+ /** Top-level palette config accepted by `provideEagamiUi`. */
234
+ interface EagamiPaletteConfig {
235
+ primary?: PaletteConfig;
236
+ secondary?: PaletteConfig;
237
+ }
238
+ /** Flat CSS-custom-property name to value map for a single mode. */
239
+ type DerivedPalette = Record<string, string>;
240
+ /**
241
+ * Output of `derivePalette`. Carries a separate map per mode so tokens that
242
+ * have to track the canvas (brand-text, brand-subtle, brand-muted) can hold
243
+ * different values in light and dark, while surface roles stay shared.
244
+ */
245
+ interface ModePalette {
246
+ light: DerivedPalette;
247
+ dark: DerivedPalette;
248
+ }
249
+
250
+ /**
251
+ * Full provider configuration for `provideEagamiUi`. Extends the i18n config
252
+ * with an optional brand palette; omit `palette` to keep the un-themed SCSS
253
+ * defaults.
254
+ */
255
+ interface EagamiUiConfig extends EagamiI18nConfig {
256
+ /**
257
+ * Brand palette config. The library derives a 10-shade scale via OKLCH
258
+ * from each base hex, then asserts WCAG AA contrast on every brand-role
259
+ * pairing. A contrast violation throws at bootstrap.
260
+ */
261
+ palette?: EagamiPaletteConfig;
262
+ }
189
263
  /** DI token carrying the consumer-supplied i18n configuration. */
190
264
  declare const EAGAMI_I18N_CONFIG: InjectionToken<EagamiI18nConfig>;
191
265
  /**
192
- * Configures Eagami UI for the application. Pass a `locale` to switch every
193
- * component's built-in strings (and locale-aware date formatting) at once, and
194
- * optionally `messages` to override individual strings.
266
+ * Configures Eagami UI for the application.
195
267
  *
196
268
  * ```ts
197
269
  * bootstrapApplication(AppComponent, {
198
- * providers: [provideEagamiUi({ locale: 'fr-FR' })],
270
+ * providers: [
271
+ * provideEagamiUi({
272
+ * locale: 'fr-FR',
273
+ * palette: { primary: { base: '#3674a1' } },
274
+ * }),
275
+ * ],
199
276
  * });
200
277
  * ```
201
278
  *
202
- * Calling this is optional — without it the library defaults to English.
279
+ * Optional. Without it, the library defaults to English and ships its
280
+ * built-in brand colours.
203
281
  */
204
- declare function provideEagamiUi(config?: EagamiI18nConfig): EnvironmentProviders;
282
+ declare function provideEagamiUi(config?: EagamiUiConfig): EnvironmentProviders;
205
283
 
206
284
  /**
207
285
  * Holds the active locale and resolves the matching message dictionary for
@@ -269,6 +347,94 @@ declare const EAGAMI_MESSAGES: Record<EagamiLocale, EagamiMessages>;
269
347
  */
270
348
  declare function frenchSpacing(text: string): string;
271
349
 
350
+ declare function derivePalette(config: EagamiPaletteConfig): ModePalette;
351
+
352
+ interface ContrastViolation {
353
+ /** CSS custom-property name that fails the contrast bar. */
354
+ token: string;
355
+ /** Hex value of that token. */
356
+ value: string;
357
+ /** Hex value of the surface it was checked against. */
358
+ surface: string;
359
+ /** Computed contrast ratio. */
360
+ ratio: number;
361
+ /** Minimum ratio the role required. */
362
+ required: number;
363
+ /** What the role represents (for the error message). */
364
+ role: 'text' | 'large-text' | 'non-text';
365
+ /** Which mode the violation occurred in. */
366
+ mode: 'light' | 'dark';
367
+ }
368
+ /** One canvas + on-brand text pairing for a single colour mode. */
369
+ interface ModeSurfaces {
370
+ /** Page background the brand sits on (`--color-bg-canvas`). */
371
+ canvas: string;
372
+ /** Foreground colour that sits on the brand surface (button label). */
373
+ onBrandText: string;
374
+ }
375
+ interface ContrastSurfaces {
376
+ light: ModeSurfaces;
377
+ dark: ModeSurfaces;
378
+ }
379
+ /**
380
+ * Walk every meaningful pairing in a derived palette and return any
381
+ * violations of the WCAG 2.1 AA contrast bars. Empty array means the
382
+ * palette is safe.
383
+ *
384
+ * Each check runs in both light and dark mode so a palette can't pass one
385
+ * mode while silently failing the other.
386
+ *
387
+ * Checks per mode:
388
+ * - `--color-brand-text` vs `canvas` >= 4.5:1 (link / foreground text)
389
+ * - `--color-brand-default` vs `onBrandText` >= 4.5:1 (button label)
390
+ * - `--color-brand-default` vs `canvas` >= 3:1 (WCAG 1.4.11 non-text)
391
+ */
392
+ declare function validatePalette(palette: ModePalette, surfaces?: ContrastSurfaces): ContrastViolation[];
393
+ /** Format a violation list as a human-readable error message. */
394
+ declare function formatViolations(violations: readonly ContrastViolation[]): string;
395
+
396
+ /**
397
+ * Install the derived palette as a `<style>` tag in `document.head`. Light
398
+ * values land on `:root`; dark values land on `:root[data-theme="dark"]` and
399
+ * inside `@media (prefers-color-scheme: dark) :root:not([data-theme="light"])`,
400
+ * mirroring the library's own SCSS dark-mode selectors so a consumer-supplied
401
+ * palette participates in the same theme toggle.
402
+ *
403
+ * Idempotent: subsequent calls replace the previous stylesheet rather than
404
+ * append, so a theme switcher can re-apply without leaking style tags.
405
+ * No-ops outside a DOM context (SSR).
406
+ */
407
+ declare function applyPalette(palette: ModePalette): void;
408
+
409
+ declare function relativeLuminance(hex: string): number;
410
+ declare function contrastRatio(hexA: string, hexB: string): number;
411
+ /**
412
+ * WCAG 2.1 AA contrast floors: 4.5:1 for body text, 3:1 for ≥ 18pt text
413
+ * (or ≥ 14pt bold), 3:1 for UI components (icons, focus rings, meaningful
414
+ * borders).
415
+ */
416
+ declare const WCAG_AA: {
417
+ readonly text: 4.5;
418
+ readonly largeText: 3;
419
+ readonly nonText: 3;
420
+ };
421
+
422
+ /**
423
+ * sRGB to OKLCH conversion. OKLCH is used over HSL so derived palettes keep
424
+ * their chroma at darker shades. Follows Björn Ottosson's matrices,
425
+ * https://bottosson.github.io/posts/oklab/.
426
+ */
427
+ interface Oklch {
428
+ /** Lightness, 0–1. */
429
+ l: number;
430
+ /** Chroma, 0 to ~0.4 in sRGB gamut. */
431
+ c: number;
432
+ /** Hue, 0–360 degrees. */
433
+ h: number;
434
+ }
435
+ declare function hexToOklch(hex: string): Oklch;
436
+ declare function oklchToHex(oklch: Oklch): string;
437
+
272
438
  /**
273
439
  * Container for expandable content sections. By default only one item can be
274
440
  * open at a time; set `multi` to allow several to stay expanded together.
@@ -390,6 +556,9 @@ declare class AutocompleteComponent implements ControlValueAccessor {
390
556
  'ea-autocomplete__wrapper--focused': boolean;
391
557
  'ea-autocomplete__wrapper--disabled': boolean;
392
558
  }>;
559
+ readonly listboxClasses: i0.Signal<{
560
+ [x: string]: boolean;
561
+ }>;
393
562
  writeValue(val: string): void;
394
563
  registerOnChange(fn: (value: string) => void): void;
395
564
  registerOnTouched(fn: () => void): void;
@@ -934,6 +1103,9 @@ declare class ColorPickerComponent implements ControlValueAccessor {
934
1103
  'ea-color-picker__trigger--open': boolean;
935
1104
  'ea-color-picker__trigger--disabled': boolean;
936
1105
  }>;
1106
+ readonly wrapperClasses: i0.Signal<{
1107
+ [x: string]: boolean;
1108
+ }>;
937
1109
  /**
938
1110
  * True when the browser supports the EyeDropper API. Not a `computed` —
939
1111
  * `window.EyeDropper` isn't a signal, so a memoized computed would cache the
@@ -1177,6 +1349,9 @@ declare class DatePickerComponent implements ControlValueAccessor {
1177
1349
  'ea-date-picker__trigger--open': boolean;
1178
1350
  'ea-date-picker__trigger--disabled': boolean;
1179
1351
  }>;
1352
+ readonly wrapperClasses: i0.Signal<{
1353
+ [x: string]: boolean;
1354
+ }>;
1180
1355
  readonly displayValue: i0.Signal<string>;
1181
1356
  readonly monthYearLabel: i0.Signal<string>;
1182
1357
  readonly weekdayLabels: i0.Signal<string[]>;
@@ -1347,6 +1522,9 @@ declare class DropdownComponent implements ControlValueAccessor {
1347
1522
  'ea-dropdown__trigger--open': boolean;
1348
1523
  'ea-dropdown__trigger--disabled': boolean;
1349
1524
  }>;
1525
+ readonly menuClasses: i0.Signal<{
1526
+ [x: string]: boolean;
1527
+ }>;
1350
1528
  writeValue(val: string): void;
1351
1529
  registerOnChange(fn: (value: string) => void): void;
1352
1530
  registerOnTouched(fn: () => void): void;
@@ -1545,8 +1723,10 @@ declare class InputComponent implements ControlValueAccessor {
1545
1723
  readonly readonly: i0.InputSignal<boolean>;
1546
1724
  readonly required: i0.InputSignal<boolean>;
1547
1725
  readonly autocomplete: i0.InputSignal<string | undefined>;
1726
+ readonly list: i0.InputSignal<string | undefined>;
1548
1727
  readonly autofocus: i0.InputSignal<boolean>;
1549
1728
  readonly showPasswordToggle: i0.InputSignal<boolean>;
1729
+ readonly clearable: i0.InputSignal<boolean>;
1550
1730
  readonly id: i0.InputSignal<string>;
1551
1731
  readonly value: i0.ModelSignal<string>;
1552
1732
  readonly isFocused: i0.WritableSignal<boolean>;
@@ -1563,6 +1743,7 @@ declare class InputComponent implements ControlValueAccessor {
1563
1743
  readonly hasError: i0.Signal<boolean>;
1564
1744
  readonly showError: i0.Signal<boolean>;
1565
1745
  readonly showHint: i0.Signal<boolean>;
1746
+ readonly showClear: i0.Signal<boolean>;
1566
1747
  readonly wrapperClasses: i0.Signal<{
1567
1748
  [x: string]: boolean;
1568
1749
  'ea-input-wrapper--error': boolean;
@@ -1580,10 +1761,12 @@ declare class InputComponent implements ControlValueAccessor {
1580
1761
  handleBlur(event: FocusEvent): void;
1581
1762
  /** Toggles the password reveal state for `type="password"` inputs. */
1582
1763
  togglePasswordVisibility(): void;
1764
+ /** Clear the current value and restore focus to the input. */
1765
+ clear(event: MouseEvent): void;
1583
1766
  /** Moves keyboard focus to the underlying native input element. */
1584
1767
  focus(): void;
1585
1768
  static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
1586
- static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "ea-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "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; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
1769
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "ea-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "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; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "list": { "alias": "list"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
1587
1770
  }
1588
1771
 
1589
1772
  /** Placement of the menu list relative to its trigger. */
@@ -1743,6 +1926,12 @@ declare class MultiSelectComponent implements ControlValueAccessor {
1743
1926
  'ea-multi-select__trigger--disabled': boolean;
1744
1927
  'ea-multi-select__trigger--placeholder': boolean;
1745
1928
  }>;
1929
+ readonly menuClasses: i0.Signal<{
1930
+ [x: string]: boolean;
1931
+ }>;
1932
+ readonly wrapperClasses: i0.Signal<{
1933
+ [x: string]: boolean;
1934
+ }>;
1746
1935
  writeValue(val: readonly string[] | null | undefined): void;
1747
1936
  registerOnChange(fn: (value: readonly string[]) => void): void;
1748
1937
  registerOnTouched(fn: () => void): void;
@@ -1950,6 +2139,15 @@ declare class PopoverComponent {
1950
2139
  private readonly position;
1951
2140
  /** True placement after flip, for class-based styling (e.g. arrow direction). */
1952
2141
  readonly effectivePlacement: i0.Signal<PopoverPlacement>;
2142
+ /** Latches true once the post-rAF reposition has run, so the surface is
2143
+ * only revealed after its dimensions are guaranteed stable. Reset on close. */
2144
+ private readonly stable;
2145
+ /** True once the first `reposition()` has resolved a placement on a
2146
+ * laid-out surface. Drives the `--positioned` class. */
2147
+ readonly isPositioned: i0.Signal<boolean>;
2148
+ /** Class list for the surface. Computed in TS so the placement key (with
2149
+ * its interpolated suffix) and the positioned modifier compose cleanly. */
2150
+ readonly surfaceClass: i0.Signal<string>;
1953
2151
  /** Inline style applied to the surface element. */
1954
2152
  readonly surfaceStyle: i0.Signal<Record<string, string>>;
1955
2153
  constructor();
@@ -2149,12 +2347,14 @@ type RatingSize = 'sm' | 'md' | 'lg';
2149
2347
  * value through the `value` model (numeric 0..max in 1 or 0.5 increments).
2150
2348
  */
2151
2349
  declare class RatingComponent implements ControlValueAccessor {
2350
+ constructor();
2152
2351
  private readonly starsEl;
2153
2352
  protected readonly i18n: EagamiI18nService;
2154
2353
  readonly label: i0.InputSignal<string | undefined>;
2155
2354
  readonly hint: i0.InputSignal<string | undefined>;
2156
2355
  readonly errorMsg: i0.InputSignal<string | undefined>;
2157
2356
  readonly size: i0.InputSignal<RatingSize>;
2357
+ readonly min: i0.InputSignal<number>;
2158
2358
  readonly max: i0.InputSignal<number>;
2159
2359
  readonly allowHalf: i0.InputSignal<boolean>;
2160
2360
  readonly readonly: i0.InputSignal<boolean>;
@@ -2216,7 +2416,7 @@ declare class RatingComponent implements ControlValueAccessor {
2216
2416
  private clamp;
2217
2417
  private computePointerValue;
2218
2418
  static ɵfac: i0.ɵɵFactoryDeclaration<RatingComponent, never>;
2219
- static ɵcmp: i0.ɵɵComponentDeclaration<RatingComponent, "ea-rating", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "allowHalf": { "alias": "allowHalf"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "iconClass": { "alias": "iconClass"; "required": false; "isSignal": true; }; "halfIconClass": { "alias": "halfIconClass"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "hoverChanged": "hoverChanged"; }, never, never, true, never>;
2419
+ static ɵcmp: i0.ɵɵComponentDeclaration<RatingComponent, "ea-rating", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "allowHalf": { "alias": "allowHalf"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "iconClass": { "alias": "iconClass"; "required": false; "isSignal": true; }; "halfIconClass": { "alias": "halfIconClass"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "hoverChanged": "hoverChanged"; }, never, never, true, never>;
2220
2420
  }
2221
2421
 
2222
2422
  /** Visual size of the segmented control. */
@@ -2576,6 +2776,9 @@ declare class TextareaComponent implements ControlValueAccessor {
2576
2776
  readonly rows: i0.InputSignal<number>;
2577
2777
  readonly resize: i0.InputSignal<TextareaResize>;
2578
2778
  readonly maxlength: i0.InputSignal<number | undefined>;
2779
+ /** Optional pixel ceiling for the textarea's height. Beyond it, the inner
2780
+ * field scrolls vertically instead of growing. */
2781
+ readonly maxHeight: i0.InputSignal<number | undefined>;
2579
2782
  readonly id: i0.InputSignal<string>;
2580
2783
  readonly value: i0.ModelSignal<string>;
2581
2784
  readonly isFocused: i0.WritableSignal<boolean>;
@@ -2607,7 +2810,7 @@ declare class TextareaComponent implements ControlValueAccessor {
2607
2810
  /** Moves keyboard focus to the underlying native textarea element. */
2608
2811
  focus(): void;
2609
2812
  static ɵfac: i0.ɵɵFactoryDeclaration<TextareaComponent, never>;
2610
- static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "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; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
2813
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "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; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
2611
2814
  }
2612
2815
 
2613
2816
  /** Visual size of the time picker trigger. */
@@ -2705,6 +2908,9 @@ declare class TimePickerComponent implements ControlValueAccessor {
2705
2908
  'ea-time-picker__trigger--disabled': boolean;
2706
2909
  'ea-time-picker__trigger--placeholder': boolean;
2707
2910
  }>;
2911
+ readonly wrapperClasses: i0.Signal<{
2912
+ [x: string]: boolean;
2913
+ }>;
2708
2914
  writeValue(val: string | null | undefined): void;
2709
2915
  registerOnChange(fn: (value: string | null) => void): void;
2710
2916
  registerOnTouched(fn: () => void): void;
@@ -3024,7 +3230,7 @@ declare class TreeComponent {
3024
3230
  * Context object passed to each `<ng-template #item>` projection inside an
3025
3231
  * `<ea-virtual-list>`. Mirrors `let-item="$implicit"` + `let-index="index"`.
3026
3232
  */
3027
- interface VirtualListItemContext<T> {
3233
+ interface VirtualListItemContext<T = unknown> {
3028
3234
  $implicit: T;
3029
3235
  index: number;
3030
3236
  }
@@ -3054,8 +3260,8 @@ interface VirtualListItemContext<T> {
3054
3260
  * `role="option"`, `role="row"`, etc.) and applies `aria-setsize` /
3055
3261
  * `aria-posinset` using the projected `index` if needed.
3056
3262
  */
3057
- declare class VirtualListComponent<T = unknown> {
3058
- readonly items: i0.InputSignal<readonly T[]>;
3263
+ declare class VirtualListComponent {
3264
+ readonly items: i0.InputSignal<readonly unknown[]>;
3059
3265
  /** Pixel height of each item. Must be > 0. */
3060
3266
  readonly itemHeight: i0.InputSignal<number>;
3061
3267
  /** Pixel height of the scrolling viewport. Must be > 0. */
@@ -3069,7 +3275,7 @@ declare class VirtualListComponent<T = unknown> {
3069
3275
  /** Index of the first row currently visible at the top of the viewport. */
3070
3276
  readonly scrollIndexChange: i0.OutputEmitterRef<number>;
3071
3277
  /** Template applied to each rendered item — projected via `<ng-template #item>`. */
3072
- protected readonly itemTemplate: i0.Signal<TemplateRef<VirtualListItemContext<T>>>;
3278
+ protected readonly itemTemplate: i0.Signal<TemplateRef<VirtualListItemContext<unknown>>>;
3073
3279
  protected readonly viewportEl: i0.Signal<ElementRef<HTMLElement> | undefined>;
3074
3280
  private readonly scrollTop;
3075
3281
  protected readonly totalHeight: i0.Signal<number>;
@@ -3085,7 +3291,7 @@ declare class VirtualListComponent<T = unknown> {
3085
3291
  }>;
3086
3292
  protected readonly visibleItems: i0.Signal<{
3087
3293
  index: number;
3088
- item: T;
3294
+ item: unknown;
3089
3295
  }[]>;
3090
3296
  protected itemStyle(index: number): Record<string, string>;
3091
3297
  protected onScroll(event: Event): void;
@@ -3094,8 +3300,8 @@ declare class VirtualListComponent<T = unknown> {
3094
3300
  * top-most visible row. Out-of-range values are clamped to the list bounds.
3095
3301
  */
3096
3302
  scrollToIndex(index: number): void;
3097
- static ɵfac: i0.ɵɵFactoryDeclaration<VirtualListComponent<any>, never>;
3098
- static ɵcmp: i0.ɵɵComponentDeclaration<VirtualListComponent<any>, "ea-virtual-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": true; "isSignal": true; }; "viewportHeight": { "alias": "viewportHeight"; "required": true; "isSignal": true; }; "overscan": { "alias": "overscan"; "required": false; "isSignal": true; }; }, { "scrollIndexChange": "scrollIndexChange"; }, ["itemTemplate"], never, true, never>;
3303
+ static ɵfac: i0.ɵɵFactoryDeclaration<VirtualListComponent, never>;
3304
+ static ɵcmp: i0.ɵɵComponentDeclaration<VirtualListComponent, "ea-virtual-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": true; "isSignal": true; }; "viewportHeight": { "alias": "viewportHeight"; "required": true; "isSignal": true; }; "overscan": { "alias": "overscan"; "required": false; "isSignal": true; }; }, { "scrollIndexChange": "scrollIndexChange"; }, ["itemTemplate"], never, true, never>;
3099
3305
  }
3100
3306
 
3101
3307
  /**
@@ -5959,5 +6165,5 @@ declare class ZoomOutIconComponent extends IconComponentBase {
5959
6165
  static ɵcmp: i0.ɵɵComponentDeclaration<ZoomOutIconComponent, "ea-icon-zoom-out", never, {}, {}, never, never, true, never>;
5960
6166
  }
5961
6167
 
5962
- export { AccordionComponent, AccordionItemComponent, ActivityIconComponent, AirplayIconComponent, AlertCircleIconComponent, AlertComponent, AlertOctagonIconComponent, AlertTriangleIconComponent, AlignCenterIconComponent, AlignJustifyIconComponent, AlignLeftIconComponent, AlignRightIconComponent, AnchorIconComponent, ApertureIconComponent, ArchiveIconComponent, ArrowDownCircleIconComponent, ArrowDownIconComponent, ArrowDownLeftIconComponent, ArrowDownRightIconComponent, ArrowLeftCircleIconComponent, ArrowLeftIconComponent, ArrowRightCircleIconComponent, ArrowRightIconComponent, ArrowUpCircleIconComponent, ArrowUpIconComponent, ArrowUpLeftIconComponent, ArrowUpRightIconComponent, AtSignIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, AwardIconComponent, BadgeComponent, BarChart2IconComponent, BarChartIconComponent, BatteryChargingIconComponent, BatteryIconComponent, BellIconComponent, BellOffIconComponent, BluetoothIconComponent, BoldIconComponent, BookIconComponent, BookOpenIconComponent, BookmarkIconComponent, BottleIconComponent, BoxIconComponent, BreadcrumbsComponent, BriefcaseIconComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CameraOffIconComponent, CandleIconComponent, CardComponent, CastIconComponent, CheckCircleIconComponent, CheckIconComponent, CheckSquareIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsDownIconComponent, ChevronsLeftIconComponent, ChevronsRightIconComponent, ChevronsUpDownIconComponent, ChevronsUpIconComponent, ChromeIconComponent, CircleIconComponent, ClipboardIconComponent, ClockIconComponent, CloudDrizzleIconComponent, CloudIconComponent, CloudLightningIconComponent, CloudOffIconComponent, CloudRainIconComponent, CloudSnowIconComponent, CloudflareIconComponent, CodeIconComponent, CodeInputComponent, CodepenIconComponent, CodesandboxIconComponent, CoffeeIconComponent, ColorPickerComponent, ColumnsIconComponent, CommandIconComponent, CommandPaletteComponent, CompassIconComponent, CopyIconComponent, CornerDownLeftIconComponent, CornerDownRightIconComponent, CornerLeftDownIconComponent, CornerLeftUpIconComponent, CornerRightDownIconComponent, CornerRightUpIconComponent, CornerUpLeftIconComponent, CornerUpRightIconComponent, CpuIconComponent, CreditCardIconComponent, CropIconComponent, CrosshairIconComponent, DataTableComponent, DatabaseIconComponent, DatePickerComponent, DeleteIconComponent, DialogComponent, DiscIconComponent, DiscordIconComponent, DivideCircleIconComponent, DivideIconComponent, DivideSquareIconComponent, DividerComponent, DockerIconComponent, DollarSignIconComponent, DownloadCloudIconComponent, DownloadIconComponent, DrawerComponent, DribbbleIconComponent, DropboxIconComponent, DropdownComponent, DropletIconComponent, EAGAMI_I18N_CONFIG, EAGAMI_LOCALES, EAGAMI_MESSAGES, EagamiI18nService, EagamiIconComponent, EagamiWordmarkComponent, Edit2IconComponent, Edit3IconComponent, EditIconComponent, EmptyStateComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, Facebook2IconComponent, FacebookIconComponent, FastForwardIconComponent, FeatherIconComponent, Figma2IconComponent, FigmaIconComponent, FileIconComponent, FileMinusIconComponent, FilePlusIconComponent, FileTextIconComponent, FileUploaderComponent, FilmIconComponent, FilterIconComponent, FlagIconComponent, FolderIconComponent, FolderMinusIconComponent, FolderPlusIconComponent, FramerIconComponent, FrownIconComponent, GiftIconComponent, GitBranchIconComponent, GitCommitIconComponent, GitMergeIconComponent, GitPullRequestIconComponent, Github2IconComponent, GithubIconComponent, GitlabIconComponent, GlobeIconComponent, GoogleIconComponent, GridIconComponent, HardDriveIconComponent, HashIconComponent, HeadphonesIconComponent, HeartIconComponent, HelpCircleIconComponent, HeptagonIconComponent, HexagonIconComponent, HomeIconComponent, ICONS, IconComponentBase, ImageIconComponent, InboxIconComponent, InfoIconComponent, InputComponent, InstagramIconComponent, ItalicIconComponent, KeyIconComponent, KubernetesIconComponent, LampIconComponent, LayersIconComponent, LayoutIconComponent, LeftHalfStarIconComponent, LifeBuoyIconComponent, Link2IconComponent, LinkIconComponent, Linkedin2IconComponent, LinkedinIconComponent, ListIconComponent, LoaderIconComponent, LockIconComponent, LogInIconComponent, LogOutIconComponent, MailIconComponent, MapIconComponent, MapPinIconComponent, MastercardIconComponent, Maximize2IconComponent, MaximizeIconComponent, MehIconComponent, MenuComponent, MenuIconComponent, MenuItemComponent, MenuTriggerDirective, MessageCircleIconComponent, MessageSquareIconComponent, MicIconComponent, MicOffIconComponent, MicrosoftIconComponent, Minimize2IconComponent, MinimizeIconComponent, MinusCircleIconComponent, MinusIconComponent, MinusSquareIconComponent, MongodbIconComponent, MonitorIconComponent, MoonIconComponent, MoreHorizontalIconComponent, MoreVerticalIconComponent, MousePointerIconComponent, MoveIconComponent, MultiSelectComponent, MusicIconComponent, Navigation2IconComponent, NavigationIconComponent, NetlifyIconComponent, NotionIconComponent, NpmIconComponent, OctagonIconComponent, PackageIconComponent, PaginatorComponent, PaperclipIconComponent, PauseCircleIconComponent, PauseIconComponent, PaypalIconComponent, PenToolIconComponent, PentagonIconComponent, PercentIconComponent, PhoneCallIconComponent, PhoneForwardedIconComponent, PhoneIconComponent, PhoneIncomingIconComponent, PhoneMissedIconComponent, PhoneOffIconComponent, PhoneOutgoingIconComponent, PieChartIconComponent, PlayCircleIconComponent, PlayIconComponent, PlusCircleIconComponent, PlusIconComponent, PlusSquareIconComponent, PocketIconComponent, PopoverComponent, PowerIconComponent, PrinterIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RadioIconComponent, RangeSliderComponent, RatingComponent, RectangleHorizontalIconComponent, RectangleVerticalIconComponent, RedditIconComponent, RefreshCcwIconComponent, RefreshCwIconComponent, RepeatIconComponent, RewindIconComponent, RightHalfStarIconComponent, RotateCcwIconComponent, RotateCwIconComponent, RssIconComponent, SaveIconComponent, ScissorsIconComponent, SearchIconComponent, SegmentedComponent, SendIconComponent, ServerIconComponent, SettingsIconComponent, Share2IconComponent, ShareIconComponent, ShieldIconComponent, ShieldOffIconComponent, ShoppingBagIconComponent, ShoppingCartIconComponent, ShuffleIconComponent, SidebarIconComponent, SkeletonComponent, SkipBackIconComponent, SkipForwardIconComponent, Slack2IconComponent, SlackIconComponent, SlashIconComponent, SliderComponent, SlidersIconComponent, SmartphoneIconComponent, SmileIconComponent, SoccerBallIconComponent, SpeakerIconComponent, SpinnerComponent, SpotifyIconComponent, SquareIconComponent, StarIconComponent, StepComponent, StepperComponent, StopCircleIconComponent, StripeIconComponent, SunIconComponent, SunriseIconComponent, SunsetIconComponent, SwitchComponent, TabComponent, TableIconComponent, TabletIconComponent, TabsComponent, TagComponent, TagIconComponent, TargetIconComponent, TerminalIconComponent, TextareaComponent, ThermometerIconComponent, ThumbsDownIconComponent, ThumbsUpIconComponent, TimePickerComponent, ToastComponent, ToastService, ToggleLeftIconComponent, ToggleRightIconComponent, ToolIconComponent, TooltipDirective, TransferListComponent, Trash2IconComponent, TrashIconComponent, TreeComponent, TrelloIconComponent, TrendingDownIconComponent, TrendingUpIconComponent, TriangleIconComponent, TrophyIconComponent, TruckIconComponent, TvIconComponent, Twitch2IconComponent, TwitchIconComponent, TwitterIconComponent, TypeIconComponent, UmbrellaIconComponent, UnderlineIconComponent, UnlockIconComponent, UploadCloudIconComponent, UploadIconComponent, UserCheckIconComponent, UserIconComponent, UserMinusIconComponent, UserPlusIconComponent, UserXIconComponent, UsersIconComponent, VercelIconComponent, VideoIconComponent, VideoOffIconComponent, VirtualListComponent, VoicemailIconComponent, Volume1IconComponent, Volume2IconComponent, VolumeIconComponent, VolumeXIconComponent, WatchIconComponent, WifiIconComponent, WifiOffIconComponent, WindIconComponent, XCircleIconComponent, XIconComponent, XOctagonIconComponent, XSquareIconComponent, XTwitterIconComponent, Youtube2IconComponent, YoutubeIconComponent, ZapIconComponent, ZapOffIconComponent, ZoomInIconComponent, ZoomOutIconComponent, computePopoverPosition, el, en, esES, frFR, frenchSpacing, iconDisplayName, pl, provideEagamiUi, visibleNodeIds, walkTree };
5963
- export type { AlertVariant, AutocompleteSize, AvatarEditorCropEvent, AvatarEditorCropState, AvatarEditorShape, AvatarShape, AvatarSize, BadgeShape, BadgeSize, BadgeVariant, BreadcrumbClickEvent, BreadcrumbItem, BreadcrumbsSeparator, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, CodeInputSize, ColorPickerFormat, ColorPickerInputMode, ColorPickerSize, ColorPickerValue, CommandPaletteItem, DataTableColumn, DataTableDensity, DataTableSortDirection, DataTableSortState, DatePickerFormat, DatePickerSize, DatePickerValue, DatePickerWeekStart, DialogSize, DividerOrientation, DrawerPosition, DrawerSize, DropdownSize, EagamiI18nConfig, EagamiLocale, EagamiMessages, EagamiMessagesOverride, EagamiWordmarkLayout, EagamiWordmarkVariant, EmptyStateHeadingLevel, EmptyStateSize, FileUploaderRejection, FileUploaderRejectionReason, FileUploaderSize, IconCategory, IconComponentType, IconMeta, InputSize, InputType, MenuItemVariant, MenuPlacement, MultiSelectSize, PaginatorAlign, PaginatorState, PopoverPlacement, PopoverPositionOptions, PopoverPositionResult, PopoverRole, PopoverScrollBehavior, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, RangeSliderSize, RangeSliderValue, RatingSize, RatingStarState, SegmentedSize, SelectOption, SkeletonVariant, SliderSize, SpinnerSize, StepperSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagVariant, TextareaResize, TextareaSize, TimePickerFormat, TimePickerSize, Toast, ToastOptions, ToastVariant, TooltipPosition, TransferListItem, TransferListSize, TreeNode, TreeSize, VirtualListItemContext };
6168
+ export { AccordionComponent, AccordionItemComponent, ActivityIconComponent, AirplayIconComponent, AlertCircleIconComponent, AlertComponent, AlertOctagonIconComponent, AlertTriangleIconComponent, AlignCenterIconComponent, AlignJustifyIconComponent, AlignLeftIconComponent, AlignRightIconComponent, AnchorIconComponent, ApertureIconComponent, ArchiveIconComponent, ArrowDownCircleIconComponent, ArrowDownIconComponent, ArrowDownLeftIconComponent, ArrowDownRightIconComponent, ArrowLeftCircleIconComponent, ArrowLeftIconComponent, ArrowRightCircleIconComponent, ArrowRightIconComponent, ArrowUpCircleIconComponent, ArrowUpIconComponent, ArrowUpLeftIconComponent, ArrowUpRightIconComponent, AtSignIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, AwardIconComponent, BadgeComponent, BarChart2IconComponent, BarChartIconComponent, BatteryChargingIconComponent, BatteryIconComponent, BellIconComponent, BellOffIconComponent, BluetoothIconComponent, BoldIconComponent, BookIconComponent, BookOpenIconComponent, BookmarkIconComponent, BottleIconComponent, BoxIconComponent, BreadcrumbsComponent, BriefcaseIconComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CameraOffIconComponent, CandleIconComponent, CardComponent, CastIconComponent, CheckCircleIconComponent, CheckIconComponent, CheckSquareIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsDownIconComponent, ChevronsLeftIconComponent, ChevronsRightIconComponent, ChevronsUpDownIconComponent, ChevronsUpIconComponent, ChromeIconComponent, CircleIconComponent, ClipboardIconComponent, ClockIconComponent, CloudDrizzleIconComponent, CloudIconComponent, CloudLightningIconComponent, CloudOffIconComponent, CloudRainIconComponent, CloudSnowIconComponent, CloudflareIconComponent, CodeIconComponent, CodeInputComponent, CodepenIconComponent, CodesandboxIconComponent, CoffeeIconComponent, ColorPickerComponent, ColumnsIconComponent, CommandIconComponent, CommandPaletteComponent, CompassIconComponent, CopyIconComponent, CornerDownLeftIconComponent, CornerDownRightIconComponent, CornerLeftDownIconComponent, CornerLeftUpIconComponent, CornerRightDownIconComponent, CornerRightUpIconComponent, CornerUpLeftIconComponent, CornerUpRightIconComponent, CpuIconComponent, CreditCardIconComponent, CropIconComponent, CrosshairIconComponent, DEFAULT_PALETTE_ROLES, DataTableComponent, DatabaseIconComponent, DatePickerComponent, DeleteIconComponent, DialogComponent, DiscIconComponent, DiscordIconComponent, DivideCircleIconComponent, DivideIconComponent, DivideSquareIconComponent, DividerComponent, DockerIconComponent, DollarSignIconComponent, DownloadCloudIconComponent, DownloadIconComponent, DrawerComponent, DribbbleIconComponent, DropboxIconComponent, DropdownComponent, DropletIconComponent, EAGAMI_I18N_CONFIG, EAGAMI_LOCALES, EAGAMI_MESSAGES, EagamiI18nService, EagamiIconComponent, EagamiWordmarkComponent, Edit2IconComponent, Edit3IconComponent, EditIconComponent, EmptyStateComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, Facebook2IconComponent, FacebookIconComponent, FastForwardIconComponent, FeatherIconComponent, Figma2IconComponent, FigmaIconComponent, FileIconComponent, FileMinusIconComponent, FilePlusIconComponent, FileTextIconComponent, FileUploaderComponent, FilmIconComponent, FilterIconComponent, FlagIconComponent, FolderIconComponent, FolderMinusIconComponent, FolderPlusIconComponent, FramerIconComponent, FrownIconComponent, GiftIconComponent, GitBranchIconComponent, GitCommitIconComponent, GitMergeIconComponent, GitPullRequestIconComponent, Github2IconComponent, GithubIconComponent, GitlabIconComponent, GlobeIconComponent, GoogleIconComponent, GridIconComponent, HardDriveIconComponent, HashIconComponent, HeadphonesIconComponent, HeartIconComponent, HelpCircleIconComponent, HeptagonIconComponent, HexagonIconComponent, HomeIconComponent, ICONS, IconComponentBase, ImageIconComponent, InboxIconComponent, InfoIconComponent, InputComponent, InstagramIconComponent, ItalicIconComponent, KeyIconComponent, KubernetesIconComponent, LampIconComponent, LayersIconComponent, LayoutIconComponent, LeftHalfStarIconComponent, LifeBuoyIconComponent, Link2IconComponent, LinkIconComponent, Linkedin2IconComponent, LinkedinIconComponent, ListIconComponent, LoaderIconComponent, LockIconComponent, LogInIconComponent, LogOutIconComponent, MailIconComponent, MapIconComponent, MapPinIconComponent, MastercardIconComponent, Maximize2IconComponent, MaximizeIconComponent, MehIconComponent, MenuComponent, MenuIconComponent, MenuItemComponent, MenuTriggerDirective, MessageCircleIconComponent, MessageSquareIconComponent, MicIconComponent, MicOffIconComponent, MicrosoftIconComponent, Minimize2IconComponent, MinimizeIconComponent, MinusCircleIconComponent, MinusIconComponent, MinusSquareIconComponent, MongodbIconComponent, MonitorIconComponent, MoonIconComponent, MoreHorizontalIconComponent, MoreVerticalIconComponent, MousePointerIconComponent, MoveIconComponent, MultiSelectComponent, MusicIconComponent, Navigation2IconComponent, NavigationIconComponent, NetlifyIconComponent, NotionIconComponent, NpmIconComponent, OctagonIconComponent, PackageIconComponent, PaginatorComponent, PaperclipIconComponent, PauseCircleIconComponent, PauseIconComponent, PaypalIconComponent, PenToolIconComponent, PentagonIconComponent, PercentIconComponent, PhoneCallIconComponent, PhoneForwardedIconComponent, PhoneIconComponent, PhoneIncomingIconComponent, PhoneMissedIconComponent, PhoneOffIconComponent, PhoneOutgoingIconComponent, PieChartIconComponent, PlayCircleIconComponent, PlayIconComponent, PlusCircleIconComponent, PlusIconComponent, PlusSquareIconComponent, PocketIconComponent, PopoverComponent, PowerIconComponent, PrinterIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RadioIconComponent, RangeSliderComponent, RatingComponent, RectangleHorizontalIconComponent, RectangleVerticalIconComponent, RedditIconComponent, RefreshCcwIconComponent, RefreshCwIconComponent, RepeatIconComponent, RewindIconComponent, RightHalfStarIconComponent, RotateCcwIconComponent, RotateCwIconComponent, RssIconComponent, SaveIconComponent, ScissorsIconComponent, SearchIconComponent, SegmentedComponent, SendIconComponent, ServerIconComponent, SettingsIconComponent, Share2IconComponent, ShareIconComponent, ShieldIconComponent, ShieldOffIconComponent, ShoppingBagIconComponent, ShoppingCartIconComponent, ShuffleIconComponent, SidebarIconComponent, SkeletonComponent, SkipBackIconComponent, SkipForwardIconComponent, Slack2IconComponent, SlackIconComponent, SlashIconComponent, SliderComponent, SlidersIconComponent, SmartphoneIconComponent, SmileIconComponent, SoccerBallIconComponent, SpeakerIconComponent, SpinnerComponent, SpotifyIconComponent, SquareIconComponent, StarIconComponent, StepComponent, StepperComponent, StopCircleIconComponent, StripeIconComponent, SunIconComponent, SunriseIconComponent, SunsetIconComponent, SwitchComponent, TabComponent, TableIconComponent, TabletIconComponent, TabsComponent, TagComponent, TagIconComponent, TargetIconComponent, TerminalIconComponent, TextareaComponent, ThermometerIconComponent, ThumbsDownIconComponent, ThumbsUpIconComponent, TimePickerComponent, ToastComponent, ToastService, ToggleLeftIconComponent, ToggleRightIconComponent, ToolIconComponent, TooltipDirective, TransferListComponent, Trash2IconComponent, TrashIconComponent, TreeComponent, TrelloIconComponent, TrendingDownIconComponent, TrendingUpIconComponent, TriangleIconComponent, TrophyIconComponent, TruckIconComponent, TvIconComponent, Twitch2IconComponent, TwitchIconComponent, TwitterIconComponent, TypeIconComponent, UmbrellaIconComponent, UnderlineIconComponent, UnlockIconComponent, UploadCloudIconComponent, UploadIconComponent, UserCheckIconComponent, UserIconComponent, UserMinusIconComponent, UserPlusIconComponent, UserXIconComponent, UsersIconComponent, VercelIconComponent, VideoIconComponent, VideoOffIconComponent, VirtualListComponent, VoicemailIconComponent, Volume1IconComponent, Volume2IconComponent, VolumeIconComponent, VolumeXIconComponent, WCAG_AA, WatchIconComponent, WifiIconComponent, WifiOffIconComponent, WindIconComponent, XCircleIconComponent, XIconComponent, XOctagonIconComponent, XSquareIconComponent, XTwitterIconComponent, Youtube2IconComponent, YoutubeIconComponent, ZapIconComponent, ZapOffIconComponent, ZoomInIconComponent, ZoomOutIconComponent, applyPalette, computePopoverPosition, contrastRatio, derivePalette, el, en, esES, formatViolations, frFR, frenchSpacing, hexToOklch, iconDisplayName, oklchToHex, pl, provideEagamiUi, relativeLuminance, validatePalette, visibleNodeIds, walkTree };
6169
+ export type { AlertVariant, AutocompleteSize, AvatarEditorCropEvent, AvatarEditorCropState, AvatarEditorShape, AvatarShape, AvatarSize, BadgeShape, BadgeSize, BadgeVariant, BreadcrumbClickEvent, BreadcrumbItem, BreadcrumbsSeparator, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, CodeInputSize, ColorPickerFormat, ColorPickerInputMode, ColorPickerSize, ColorPickerValue, CommandPaletteItem, ContrastSurfaces, ContrastViolation, DataTableColumn, DataTableDensity, DataTableSortDirection, DataTableSortState, DatePickerFormat, DatePickerSize, DatePickerValue, DatePickerWeekStart, DerivedPalette, DialogSize, DividerOrientation, DrawerPosition, DrawerSize, DropdownSize, EagamiI18nConfig, EagamiLocale, EagamiMessages, EagamiMessagesOverride, EagamiPaletteConfig, EagamiWordmarkLayout, EagamiWordmarkVariant, EmptyStateHeadingLevel, EmptyStateSize, FileUploaderRejection, FileUploaderRejectionReason, FileUploaderSize, IconCategory, IconComponentType, IconMeta, InputSize, InputType, MenuItemVariant, MenuPlacement, ModePalette, ModeSurfaces, MultiSelectSize, PaginatorAlign, PaginatorState, PaletteConfig, PaletteRoles, PaletteShade, PopoverPlacement, PopoverPositionOptions, PopoverPositionResult, PopoverRole, PopoverScrollBehavior, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, RangeSliderSize, RangeSliderValue, RatingSize, RatingStarState, SegmentedSize, SelectOption, SkeletonVariant, SliderSize, SpinnerSize, StepperSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagVariant, TextareaResize, TextareaSize, TimePickerFormat, TimePickerSize, Toast, ToastOptions, ToastVariant, TooltipPosition, TransferListItem, TransferListSize, TreeNode, TreeSize, VirtualListItemContext };