@eagami/ui 5.21.0 → 5.22.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.
@@ -2110,6 +2110,11 @@ declare class FileUploaderComponent implements ControlValueAccessor {
2110
2110
  readonly size: _angular_core.InputSignal<EaSize>;
2111
2111
  readonly disabled: _angular_core.InputSignal<boolean>;
2112
2112
  readonly required: _angular_core.InputSignal<boolean>;
2113
+ /**
2114
+ * Whether a selection adds to the current files or replaces them. Defaults
2115
+ * to `true`: picking a second file appends it rather than swapping it in, so
2116
+ * a single-file field has to set this to `false` explicitly.
2117
+ */
2113
2118
  readonly multiple: _angular_core.InputSignal<boolean>;
2114
2119
  /** Comma-separated MIME types and / or file extensions, e.g. `'image/*,.pdf'`. */
2115
2120
  readonly accept: _angular_core.InputSignal<string | undefined>;
@@ -2132,6 +2137,12 @@ declare class FileUploaderComponent implements ControlValueAccessor {
2132
2137
  readonly rejected: _angular_core.OutputEmitterRef<readonly FileUploaderRejection[]>;
2133
2138
  /** Fires whenever a file is removed via its row's X button. */
2134
2139
  readonly fileRemoved: _angular_core.OutputEmitterRef<File>;
2140
+ /**
2141
+ * Fires when a drag enters or leaves the dropzone. The component consumes
2142
+ * the drag events it handles, so a wrapper tracking its own drag styling
2143
+ * reads the state from here rather than from the DOM.
2144
+ */
2145
+ readonly dragOverChanged: _angular_core.OutputEmitterRef<boolean>;
2135
2146
  protected readonly isDragOver: _angular_core.WritableSignal<boolean>;
2136
2147
  protected readonly isFocused: _angular_core.WritableSignal<boolean>;
2137
2148
  private readonly _formDisabled;
@@ -2166,9 +2177,11 @@ declare class FileUploaderComponent implements ControlValueAccessor {
2166
2177
  protected onDropzoneFocus(): void;
2167
2178
  protected onDropzoneBlur(): void;
2168
2179
  protected onFileSelected(event: Event): void;
2180
+ protected onDragEnter(event: DragEvent): void;
2169
2181
  protected onDragOver(event: DragEvent): void;
2170
2182
  protected onDragLeave(event: DragEvent): void;
2171
2183
  protected onDrop(event: DragEvent): void;
2184
+ private setDragOver;
2172
2185
  protected removeFile(file: File): void;
2173
2186
  private acceptFiles;
2174
2187
  protected formatBytes(bytes: number): string;
@@ -2177,7 +2190,7 @@ declare class FileUploaderComponent implements ControlValueAccessor {
2177
2190
  /** Stable track key for the `@for` over `value()`. */
2178
2191
  protected trackFile(_index: number, file: File): string;
2179
2192
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileUploaderComponent, never>;
2180
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileUploaderComponent, "ea-file-uploader", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "showFileList": { "alias": "showFileList"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "rejected": "rejected"; "fileRemoved": "fileRemoved"; }, never, ["[icon]"], true, never>;
2193
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileUploaderComponent, "ea-file-uploader", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "showFileList": { "alias": "showFileList"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "rejected": "rejected"; "fileRemoved": "fileRemoved"; "dragOverChanged": "dragOverChanged"; }, never, ["[icon]"], true, never>;
2181
2194
  }
2182
2195
 
2183
2196
  /** Visual size of the input. */
@@ -2395,6 +2408,169 @@ declare class MenuTriggerDirective {
2395
2408
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTriggerDirective, "[eaMenuTrigger]", never, { "menu": { "alias": "eaMenuTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
2396
2409
  }
2397
2410
 
2411
+ /**
2412
+ * Placement of the popover relative to its anchor. Each placement names the
2413
+ * side of the anchor the popover attaches to, optionally followed by a corner
2414
+ * suffix (`-start` or `-end`) that decides the alignment along the perpendicular
2415
+ * axis. The plain side names (`top`, `bottom`, `left`, `right`) centre the
2416
+ * popover on that axis.
2417
+ */
2418
+ type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right';
2419
+ interface PopoverPositionResult {
2420
+ /** Top coordinate in viewport (px); pairs with `position: fixed`. */
2421
+ readonly top: number;
2422
+ /** Left coordinate in viewport (px). */
2423
+ readonly left: number;
2424
+ /** Width hint when the popover should match the anchor's width. */
2425
+ readonly width?: number;
2426
+ /** The anchor's measured width, for a caller capping the popover against it. */
2427
+ readonly anchorWidth: number;
2428
+ /** Effective placement after any flip logic ran. */
2429
+ readonly placement: PopoverPlacement;
2430
+ }
2431
+ interface PopoverPositionOptions {
2432
+ readonly placement: PopoverPlacement;
2433
+ /** Gap in px between the anchor and the popover. Default 4. */
2434
+ readonly offset?: number;
2435
+ /** Flip to the opposite side when the requested side overflows the viewport. Default true. */
2436
+ readonly flip?: boolean;
2437
+ /** Clamp inside the viewport when the popover still overflows after any flip. Default true. */
2438
+ readonly clamp?: boolean;
2439
+ /** Margin from the viewport edge in px when clamping. Default 8. */
2440
+ readonly margin?: number;
2441
+ /** Set the popover's width to match the anchor's. Useful for dropdown-style menus. */
2442
+ readonly matchAnchorWidth?: boolean;
2443
+ /** Right-to-left context. Swaps `-start`/`-end` alignment so they track the reading direction. */
2444
+ readonly rtl?: boolean;
2445
+ }
2446
+ interface Rect {
2447
+ readonly width: number;
2448
+ readonly height: number;
2449
+ }
2450
+ interface AnchorRect extends Rect {
2451
+ readonly top: number;
2452
+ readonly bottom: number;
2453
+ readonly left: number;
2454
+ readonly right: number;
2455
+ }
2456
+ interface Viewport {
2457
+ readonly width: number;
2458
+ readonly height: number;
2459
+ }
2460
+ /**
2461
+ * Computes the viewport-space top/left for a popover anchored to `anchorRect`,
2462
+ * applying optional flip-on-overflow and edge-clamp logic. Pure function, no
2463
+ * DOM access. Both `<ea-popover>` and `[eaTooltip]` consume this.
2464
+ *
2465
+ * @param anchorRect The anchor element's `getBoundingClientRect()`.
2466
+ * @param popoverRect Width and height of the popover (post-render measurement).
2467
+ * @param viewport Viewport dimensions (`window.innerWidth/Height`).
2468
+ * @param options Placement and behavior flags.
2469
+ */
2470
+ declare function computePopoverPosition(anchorRect: AnchorRect, popoverRect: Rect, viewport: Viewport, options: PopoverPositionOptions): PopoverPositionResult;
2471
+
2472
+ /** ARIA role to apply to the popover surface. */
2473
+ type PopoverRole = 'menu' | 'listbox' | 'dialog' | 'tooltip' | 'grid';
2474
+ /**
2475
+ * How the popover should respond to scroll / resize events while open.
2476
+ *
2477
+ * - `reposition` (default): re-measure the anchor and update the popover's
2478
+ * coordinates so it stays attached. Suitable for menus and tooltips.
2479
+ * - `close`: request close. Suitable for dropdown lists and the colour-picker
2480
+ * popover, where re-tracking a tall popover during a scroll feels intrusive.
2481
+ * - `ignore`: do nothing. The popover stays at its initial coordinates and
2482
+ * may visually detach from a scrolling anchor; useful when the anchor is
2483
+ * guaranteed not to move (e.g. inside a non-scrolling region).
2484
+ */
2485
+ type PopoverScrollBehavior = 'reposition' | 'close' | 'ignore';
2486
+ /** Width cap for a popover surface: px, or the anchor's own width. */
2487
+ type PopoverMaxWidth = number | 'anchor';
2488
+ /**
2489
+ * Floating-element primitive. Renders projected content as `position: fixed`
2490
+ * anchored to an external element, with flip-on-overflow, viewport clamping,
2491
+ * outside-click and Escape dismissal, and SSR-safe scroll / resize handling.
2492
+ *
2493
+ * The primitive is intentionally low-level: a parent component drives the
2494
+ * `[open]` state and listens for `(closeRequested)` to mirror it back. Internal
2495
+ * library components (`<ea-menu>`, `<ea-dropdown>`, `<ea-color-picker>`,
2496
+ * `<ea-date-picker>`, `[eaTooltip]`) compose on top of it; downstream apps can
2497
+ * use it directly to build their own popover-based UI.
2498
+ *
2499
+ * @example
2500
+ * ```html
2501
+ * <button #trigger (click)="open.set(!open())">Open</button>
2502
+ * <ea-popover [anchor]="trigger" [open]="open()" (closeRequested)="open.set(false)">
2503
+ * <div>Popover content</div>
2504
+ * </ea-popover>
2505
+ * ```
2506
+ */
2507
+ declare class PopoverComponent {
2508
+ private readonly destroyRef;
2509
+ private readonly surfaceEl;
2510
+ /** Anchor element the popover positions itself against. */
2511
+ readonly anchor: _angular_core.InputSignal<HTMLElement | ElementRef<HTMLElement> | undefined>;
2512
+ /** Whether the popover is currently open. */
2513
+ readonly open: _angular_core.InputSignal<boolean>;
2514
+ /** Where the popover attaches relative to the anchor. */
2515
+ readonly placement: _angular_core.InputSignal<PopoverPlacement>;
2516
+ /** ARIA role applied to the popover surface. */
2517
+ readonly role: _angular_core.InputSignal<PopoverRole>;
2518
+ /** Accessible label. Falls back to nothing; consumers should provide one when no visible heading is in the popover. */
2519
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
2520
+ /** Id of the element that labels the popover surface, forwarded as `aria-labelledby`. */
2521
+ readonly ariaLabelledby: _angular_core.InputSignal<string | undefined>;
2522
+ /** Keep Tab and Shift+Tab cycling within the surface while open (dialog pattern). */
2523
+ readonly trapFocus: _angular_core.InputSignal<boolean>;
2524
+ /** DOM id for the surface so trigger elements can reference it via aria-controls. */
2525
+ readonly surfaceId: _angular_core.InputSignal<string>;
2526
+ /**
2527
+ * Gap in px between the anchor and the popover. Defaults to 2 so an open panel
2528
+ * clears the anchor's active focus ring instead of sitting flush over it.
2529
+ */
2530
+ readonly offset: _angular_core.InputSignal<number>;
2531
+ /** Flip to the opposite side when the requested side overflows the viewport. */
2532
+ readonly flip: _angular_core.InputSignal<boolean>;
2533
+ /** Clamp the popover inside the viewport when it would otherwise overflow. */
2534
+ readonly clamp: _angular_core.InputSignal<boolean>;
2535
+ /** Set the popover's `min-width` to match the anchor's width (dropdown pattern). */
2536
+ readonly matchAnchorWidth: _angular_core.InputSignal<boolean>;
2537
+ /**
2538
+ * Widest the surface may grow: a px value, or `anchor` to cap it at the
2539
+ * anchor's own width so long content truncates instead of widening the panel.
2540
+ */
2541
+ readonly maxWidth: _angular_core.InputSignal<PopoverMaxWidth | undefined>;
2542
+ /** Close on click outside the popover and the anchor. */
2543
+ readonly closeOnOutsideClick: _angular_core.InputSignal<boolean>;
2544
+ /** Close on Escape. */
2545
+ readonly closeOnEscape: _angular_core.InputSignal<boolean>;
2546
+ /** What to do on scroll / resize while open. */
2547
+ readonly scrollBehavior: _angular_core.InputSignal<PopoverScrollBehavior>;
2548
+ /** Requested close. The parent should mirror this into `[open]`. */
2549
+ readonly closeRequested: _angular_core.OutputEmitterRef<void>;
2550
+ private readonly position;
2551
+ /** True placement after flip, for class-based styling (e.g. arrow direction). */
2552
+ readonly effectivePlacement: _angular_core.Signal<PopoverPlacement>;
2553
+ /** Latches true once the post-rAF reposition has run, so the surface is
2554
+ * only revealed after its dimensions are guaranteed stable. Reset on close. */
2555
+ private readonly stable;
2556
+ /** True once the first `reposition()` has resolved a placement on a
2557
+ * laid-out surface. Drives the `--positioned` class. */
2558
+ readonly isPositioned: _angular_core.Signal<boolean>;
2559
+ /** Class list for the surface. Computed in TS so the placement key (with
2560
+ * its interpolated suffix) and the positioned modifier compose cleanly. */
2561
+ readonly surfaceClass: _angular_core.Signal<string>;
2562
+ /** Inline style applied to the surface element. */
2563
+ readonly surfaceStyle: _angular_core.Signal<Record<string, string>>;
2564
+ constructor();
2565
+ private resolveAnchor;
2566
+ private reposition;
2567
+ onDocumentClick(event: MouseEvent): void;
2568
+ onSurfaceKeydown(event: KeyboardEvent): void;
2569
+ onEscape(event: Event): void;
2570
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverComponent, never>;
2571
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverComponent, "ea-popover", never, { "anchor": { "alias": "anchor"; "required": true; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "trapFocus": { "alias": "trapFocus"; "required": false; "isSignal": true; }; "surfaceId": { "alias": "surfaceId"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "clamp": { "alias": "clamp"; "required": false; "isSignal": true; }; "matchAnchorWidth": { "alias": "matchAnchorWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "closeOnOutsideClick": { "alias": "closeOnOutsideClick"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; }, { "closeRequested": "closeRequested"; }, never, ["*"], true, never>;
2572
+ }
2573
+
2398
2574
  /** Visual size of the multi-select trigger. */
2399
2575
  type MultiSelectSize = EaSize;
2400
2576
  /**
@@ -2406,10 +2582,14 @@ type MultiSelectSize = EaSize;
2406
2582
  * integrates with Angular forms via `ControlValueAccessor`.
2407
2583
  */
2408
2584
  declare class MultiSelectComponent implements ControlValueAccessor {
2585
+ protected readonly wrapperEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2409
2586
  protected readonly triggerEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2410
2587
  protected readonly searchEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
2588
+ private readonly listEl;
2589
+ private readonly optionLabelEls;
2411
2590
  protected readonly i18n: EagamiI18nService;
2412
2591
  private readonly injector;
2592
+ private readonly destroyRef;
2413
2593
  readonly label: _angular_core.InputSignal<string | undefined>;
2414
2594
  /** Accessible name for the combobox when no visible `label` is set. */
2415
2595
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
@@ -2430,6 +2610,16 @@ declare class MultiSelectComponent implements ControlValueAccessor {
2430
2610
  readonly selectAll: _angular_core.InputSignal<boolean>;
2431
2611
  /** Max number of chips shown inside the trigger; the rest collapse into a "+N more" pill. `0` removes the cap so every chip shows and the row scrolls horizontally. */
2432
2612
  readonly maxVisibleChips: _angular_core.InputSignal<number>;
2613
+ /**
2614
+ * Widest a selected-value chip may grow, in px; a longer label ellipsizes
2615
+ * and reveals its full text in a tooltip.
2616
+ */
2617
+ readonly maxChipWidth: _angular_core.InputSignal<number | undefined>;
2618
+ /**
2619
+ * Widest the option popover may grow: a px value, or `anchor` to hold it to
2620
+ * the field's own width so a long option truncates instead of widening it.
2621
+ */
2622
+ readonly popoverMaxWidth: _angular_core.InputSignal<PopoverMaxWidth>;
2433
2623
  readonly id: _angular_core.InputSignal<string>;
2434
2624
  /** Selected option values, in the original options order. */
2435
2625
  readonly value: _angular_core.ModelSignal<readonly string[]>;
@@ -2486,6 +2676,9 @@ declare class MultiSelectComponent implements ControlValueAccessor {
2486
2676
  readonly wrapperClasses: _angular_core.Signal<{
2487
2677
  [x: string]: boolean;
2488
2678
  }>;
2679
+ /** Values whose rendered option label is currently clipped by the panel. */
2680
+ protected readonly clippedOptions: _angular_core.WritableSignal<ReadonlySet<string>>;
2681
+ constructor();
2489
2682
  writeValue(val: readonly string[] | null | undefined): void;
2490
2683
  registerOnChange(fn: (value: readonly string[]) => void): void;
2491
2684
  registerOnTouched(fn: () => void): void;
@@ -2536,8 +2729,15 @@ declare class MultiSelectComponent implements ControlValueAccessor {
2536
2729
  private orderedValues;
2537
2730
  private resetEditState;
2538
2731
  private commit;
2732
+ /**
2733
+ * Re-reads which option labels are clipped. The result is written back only
2734
+ * when the set actually differs, since an unconditional write would render,
2735
+ * re-measure, and write again forever.
2736
+ */
2737
+ private measureClippedOptions;
2738
+ private watchListWidth;
2539
2739
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultiSelectComponent, never>;
2540
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultiSelectComponent, "ea-multi-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "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; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "selectAll": { "alias": "selectAll"; "required": false; "isSignal": true; }; "maxVisibleChips": { "alias": "maxVisibleChips"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
2740
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultiSelectComponent, "ea-multi-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "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; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "selectAll": { "alias": "selectAll"; "required": false; "isSignal": true; }; "maxVisibleChips": { "alias": "maxVisibleChips"; "required": false; "isSignal": true; }; "maxChipWidth": { "alias": "maxChipWidth"; "required": false; "isSignal": true; }; "popoverMaxWidth": { "alias": "popoverMaxWidth"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
2541
2741
  }
2542
2742
 
2543
2743
  /** Visual size of the number input. */
@@ -2683,160 +2883,6 @@ declare class PaginatorComponent {
2683
2883
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginatorComponent, "ea-paginator", never, { "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showPageSizeSelector": { "alias": "showPageSizeSelector"; "required": false; "isSignal": true; }; "showRangeLabel": { "alias": "showRangeLabel"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "groupThousands": { "alias": "groupThousands"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; "pageSize": "pageSizeChange"; "changed": "changed"; }, never, never, true, never>;
2684
2884
  }
2685
2885
 
2686
- /**
2687
- * Placement of the popover relative to its anchor. Each placement names the
2688
- * side of the anchor the popover attaches to, optionally followed by a corner
2689
- * suffix (`-start` or `-end`) that decides the alignment along the perpendicular
2690
- * axis. The plain side names (`top`, `bottom`, `left`, `right`) centre the
2691
- * popover on that axis.
2692
- */
2693
- type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right';
2694
- interface PopoverPositionResult {
2695
- /** Top coordinate in viewport (px); pairs with `position: fixed`. */
2696
- readonly top: number;
2697
- /** Left coordinate in viewport (px). */
2698
- readonly left: number;
2699
- /** Width hint when the popover should match the anchor's width. */
2700
- readonly width?: number;
2701
- /** Effective placement after any flip logic ran. */
2702
- readonly placement: PopoverPlacement;
2703
- }
2704
- interface PopoverPositionOptions {
2705
- readonly placement: PopoverPlacement;
2706
- /** Gap in px between the anchor and the popover. Default 4. */
2707
- readonly offset?: number;
2708
- /** Flip to the opposite side when the requested side overflows the viewport. Default true. */
2709
- readonly flip?: boolean;
2710
- /** Clamp inside the viewport when the popover still overflows after any flip. Default true. */
2711
- readonly clamp?: boolean;
2712
- /** Margin from the viewport edge in px when clamping. Default 8. */
2713
- readonly margin?: number;
2714
- /** Set the popover's width to match the anchor's. Useful for dropdown-style menus. */
2715
- readonly matchAnchorWidth?: boolean;
2716
- /** Right-to-left context. Swaps `-start`/`-end` alignment so they track the reading direction. */
2717
- readonly rtl?: boolean;
2718
- }
2719
- interface Rect {
2720
- readonly width: number;
2721
- readonly height: number;
2722
- }
2723
- interface AnchorRect extends Rect {
2724
- readonly top: number;
2725
- readonly bottom: number;
2726
- readonly left: number;
2727
- readonly right: number;
2728
- }
2729
- interface Viewport {
2730
- readonly width: number;
2731
- readonly height: number;
2732
- }
2733
- /**
2734
- * Computes the viewport-space top/left for a popover anchored to `anchorRect`,
2735
- * applying optional flip-on-overflow and edge-clamp logic. Pure function, no
2736
- * DOM access. Both `<ea-popover>` and `[eaTooltip]` consume this.
2737
- *
2738
- * @param anchorRect The anchor element's `getBoundingClientRect()`.
2739
- * @param popoverRect Width and height of the popover (post-render measurement).
2740
- * @param viewport Viewport dimensions (`window.innerWidth/Height`).
2741
- * @param options Placement and behavior flags.
2742
- */
2743
- declare function computePopoverPosition(anchorRect: AnchorRect, popoverRect: Rect, viewport: Viewport, options: PopoverPositionOptions): PopoverPositionResult;
2744
-
2745
- /** ARIA role to apply to the popover surface. */
2746
- type PopoverRole = 'menu' | 'listbox' | 'dialog' | 'tooltip' | 'grid';
2747
- /**
2748
- * How the popover should respond to scroll / resize events while open.
2749
- *
2750
- * - `reposition` (default): re-measure the anchor and update the popover's
2751
- * coordinates so it stays attached. Suitable for menus and tooltips.
2752
- * - `close`: request close. Suitable for dropdown lists and the colour-picker
2753
- * popover, where re-tracking a tall popover during a scroll feels intrusive.
2754
- * - `ignore`: do nothing. The popover stays at its initial coordinates and
2755
- * may visually detach from a scrolling anchor; useful when the anchor is
2756
- * guaranteed not to move (e.g. inside a non-scrolling region).
2757
- */
2758
- type PopoverScrollBehavior = 'reposition' | 'close' | 'ignore';
2759
- /**
2760
- * Floating-element primitive. Renders projected content as `position: fixed`
2761
- * anchored to an external element, with flip-on-overflow, viewport clamping,
2762
- * outside-click and Escape dismissal, and SSR-safe scroll / resize handling.
2763
- *
2764
- * The primitive is intentionally low-level: a parent component drives the
2765
- * `[open]` state and listens for `(closeRequested)` to mirror it back. Internal
2766
- * library components (`<ea-menu>`, `<ea-dropdown>`, `<ea-color-picker>`,
2767
- * `<ea-date-picker>`, `[eaTooltip]`) compose on top of it; downstream apps can
2768
- * use it directly to build their own popover-based UI.
2769
- *
2770
- * @example
2771
- * ```html
2772
- * <button #trigger (click)="open.set(!open())">Open</button>
2773
- * <ea-popover [anchor]="trigger" [open]="open()" (closeRequested)="open.set(false)">
2774
- * <div>Popover content</div>
2775
- * </ea-popover>
2776
- * ```
2777
- */
2778
- declare class PopoverComponent {
2779
- private readonly destroyRef;
2780
- private readonly surfaceEl;
2781
- /** Anchor element the popover positions itself against. */
2782
- readonly anchor: _angular_core.InputSignal<HTMLElement | ElementRef<HTMLElement> | undefined>;
2783
- /** Whether the popover is currently open. */
2784
- readonly open: _angular_core.InputSignal<boolean>;
2785
- /** Where the popover attaches relative to the anchor. */
2786
- readonly placement: _angular_core.InputSignal<PopoverPlacement>;
2787
- /** ARIA role applied to the popover surface. */
2788
- readonly role: _angular_core.InputSignal<PopoverRole>;
2789
- /** Accessible label. Falls back to nothing; consumers should provide one when no visible heading is in the popover. */
2790
- readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
2791
- /** Id of the element that labels the popover surface, forwarded as `aria-labelledby`. */
2792
- readonly ariaLabelledby: _angular_core.InputSignal<string | undefined>;
2793
- /** Keep Tab and Shift+Tab cycling within the surface while open (dialog pattern). */
2794
- readonly trapFocus: _angular_core.InputSignal<boolean>;
2795
- /** DOM id for the surface so trigger elements can reference it via aria-controls. */
2796
- readonly surfaceId: _angular_core.InputSignal<string>;
2797
- /**
2798
- * Gap in px between the anchor and the popover. Defaults to 2 so an open panel
2799
- * clears the anchor's active focus ring instead of sitting flush over it.
2800
- */
2801
- readonly offset: _angular_core.InputSignal<number>;
2802
- /** Flip to the opposite side when the requested side overflows the viewport. */
2803
- readonly flip: _angular_core.InputSignal<boolean>;
2804
- /** Clamp the popover inside the viewport when it would otherwise overflow. */
2805
- readonly clamp: _angular_core.InputSignal<boolean>;
2806
- /** Set the popover's `min-width` to match the anchor's width (dropdown pattern). */
2807
- readonly matchAnchorWidth: _angular_core.InputSignal<boolean>;
2808
- /** Close on click outside the popover and the anchor. */
2809
- readonly closeOnOutsideClick: _angular_core.InputSignal<boolean>;
2810
- /** Close on Escape. */
2811
- readonly closeOnEscape: _angular_core.InputSignal<boolean>;
2812
- /** What to do on scroll / resize while open. */
2813
- readonly scrollBehavior: _angular_core.InputSignal<PopoverScrollBehavior>;
2814
- /** Requested close. The parent should mirror this into `[open]`. */
2815
- readonly closeRequested: _angular_core.OutputEmitterRef<void>;
2816
- private readonly position;
2817
- /** True placement after flip, for class-based styling (e.g. arrow direction). */
2818
- readonly effectivePlacement: _angular_core.Signal<PopoverPlacement>;
2819
- /** Latches true once the post-rAF reposition has run, so the surface is
2820
- * only revealed after its dimensions are guaranteed stable. Reset on close. */
2821
- private readonly stable;
2822
- /** True once the first `reposition()` has resolved a placement on a
2823
- * laid-out surface. Drives the `--positioned` class. */
2824
- readonly isPositioned: _angular_core.Signal<boolean>;
2825
- /** Class list for the surface. Computed in TS so the placement key (with
2826
- * its interpolated suffix) and the positioned modifier compose cleanly. */
2827
- readonly surfaceClass: _angular_core.Signal<string>;
2828
- /** Inline style applied to the surface element. */
2829
- readonly surfaceStyle: _angular_core.Signal<Record<string, string>>;
2830
- constructor();
2831
- private resolveAnchor;
2832
- private reposition;
2833
- onDocumentClick(event: MouseEvent): void;
2834
- onSurfaceKeydown(event: KeyboardEvent): void;
2835
- onEscape(event: Event): void;
2836
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverComponent, never>;
2837
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverComponent, "ea-popover", never, { "anchor": { "alias": "anchor"; "required": true; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "trapFocus": { "alias": "trapFocus"; "required": false; "isSignal": true; }; "surfaceId": { "alias": "surfaceId"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "clamp": { "alias": "clamp"; "required": false; "isSignal": true; }; "matchAnchorWidth": { "alias": "matchAnchorWidth"; "required": false; "isSignal": true; }; "closeOnOutsideClick": { "alias": "closeOnOutsideClick"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; }, { "closeRequested": "closeRequested"; }, never, ["*"], true, never>;
2838
- }
2839
-
2840
2886
  /** Semantic colour scheme of the progress bar. */
2841
2887
  type ProgressBarVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
2842
2888
  /** Visual height of the progress bar. */
@@ -3458,23 +3504,94 @@ declare class TabsComponent {
3458
3504
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ea-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; "changed": "changed"; }, never, ["*"], true, never>;
3459
3505
  }
3460
3506
 
3507
+ /** Placement of the tooltip relative to its host element. */
3508
+ type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
3509
+ /**
3510
+ * Attaches a positioned tooltip to its host element. Shows on hover and
3511
+ * focus, hides on leave/blur or Escape, and wires up `aria-describedby` so
3512
+ * the tooltip text is announced to assistive technology. Accepts either a
3513
+ * plain string or a `TemplateRef` for styled multi-part content. Binding an
3514
+ * empty string suppresses the bubble, which is how a host shows one only in
3515
+ * some states (a label that is currently truncated, say).
3516
+ *
3517
+ * The directive listens on `focusin`, not `focus`, so it fires for a focusable
3518
+ * descendant of the host as well as the host itself. A host listener paired
3519
+ * with `eaTooltip` has to use `focusin` for the same reason: `focus` does not
3520
+ * bubble, so it never fires when the focus lands on a child.
3521
+ */
3522
+ declare class TooltipDirective implements OnDestroy {
3523
+ private readonly el;
3524
+ private readonly renderer;
3525
+ private readonly viewContainer;
3526
+ readonly eaTooltip: _angular_core.InputSignal<string | TemplateRef<unknown>>;
3527
+ readonly tooltipPosition: _angular_core.InputSignal<TooltipPosition>;
3528
+ /** Max width in px; the text wraps at this width. Clamped to a 50px floor. */
3529
+ readonly maxWidth: _angular_core.InputSignal<number | undefined>;
3530
+ private tooltipEl;
3531
+ private templateView;
3532
+ private readonly tooltipId;
3533
+ private readonly hoverMql;
3534
+ private readonly showHandler;
3535
+ private readonly hideHandler;
3536
+ private readonly supportsFocusVisible;
3537
+ private readonly focusHandler;
3538
+ private readonly keydownHandler;
3539
+ private readonly hoverChangeHandler;
3540
+ private rafId;
3541
+ private readonly repositionHandler;
3542
+ private readonly scrollListenerOptions;
3543
+ private resizeObserver;
3544
+ constructor();
3545
+ ngOnDestroy(): void;
3546
+ private syncPointerListeners;
3547
+ private show;
3548
+ private shrinkToContent;
3549
+ private hide;
3550
+ private attachRepositionListeners;
3551
+ private detachRepositionListeners;
3552
+ private appendDescribedBy;
3553
+ private removeDescribedBy;
3554
+ private positionTooltip;
3555
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
3556
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[eaTooltip]", never, { "eaTooltip": { "alias": "eaTooltip"; "required": true; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3557
+ }
3558
+
3461
3559
  /** Semantic colour scheme of a tag. */
3462
3560
  type TagVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
3463
3561
  /** Visual size of a tag. */
3464
3562
  type TagSize = EaSize;
3563
+ /** Where a clipped label reveals its full text, or `none` to suppress it. */
3564
+ type TagTooltip = 'above' | 'below' | 'none';
3465
3565
  /**
3466
3566
  * Inline label commonly used to represent filters, categories, or selected
3467
3567
  * items. When `removable`, renders a close button that emits `removed`; the
3468
3568
  * accessible name of that button is configurable via `removeLabel` and
3469
3569
  * otherwise falls back to the active locale's translation.
3570
+ *
3571
+ * The projected label is capped by `maxWidth` (or the `--ea-tag-max-width`
3572
+ * custom property) and ellipsizes rather than widening the chip, revealing its
3573
+ * full text in a tooltip while it is clipped.
3470
3574
  */
3471
3575
  declare class TagComponent {
3472
3576
  private readonly i18n;
3577
+ private readonly destroyRef;
3578
+ private readonly labelEl;
3473
3579
  readonly variant: _angular_core.InputSignal<TagVariant>;
3474
3580
  readonly size: _angular_core.InputSignal<EaSize>;
3475
3581
  readonly removable: _angular_core.InputSignal<boolean>;
3476
3582
  readonly disabled: _angular_core.InputSignal<boolean>;
3477
3583
  readonly removeLabel: _angular_core.InputSignal<string | undefined>;
3584
+ /**
3585
+ * Widest the chip may grow, in px; a longer label ellipsizes instead. Also
3586
+ * settable in CSS as `--ea-tag-max-width`, which this input overrides.
3587
+ */
3588
+ readonly maxWidth: _angular_core.InputSignal<number | undefined>;
3589
+ /**
3590
+ * Where a label clipped by `maxWidth` reveals its full text. Set `none` for
3591
+ * a tag rendered inside a tooltip, which would otherwise stack a second
3592
+ * bubble over the first.
3593
+ */
3594
+ readonly tooltip: _angular_core.InputSignal<TagTooltip>;
3478
3595
  /**
3479
3596
  * Whether the remove button is a tab stop. Set `false` inside a composite
3480
3597
  * widget (a combobox trigger, a grid cell) whose own keyboard model owns
@@ -3483,15 +3600,27 @@ declare class TagComponent {
3483
3600
  readonly removeTabbable: _angular_core.InputSignal<boolean>;
3484
3601
  /** Fires when the user activates the remove button on a `removable` tag. */
3485
3602
  readonly removed: _angular_core.OutputEmitterRef<void>;
3603
+ /** Full label text, held only while the rendered label is clipped. */
3604
+ private readonly clippedText;
3486
3605
  /** Accessible label for the remove button, falling back to the active locale. */
3487
3606
  readonly resolvedRemoveLabel: _angular_core.Signal<string>;
3607
+ /** Tooltip text for the label; empty suppresses the bubble entirely. */
3608
+ protected readonly labelTooltip: _angular_core.Signal<string>;
3609
+ protected readonly tooltipPosition: _angular_core.Signal<TooltipPosition>;
3488
3610
  readonly hostClasses: _angular_core.Signal<{
3489
3611
  [x: string]: boolean;
3490
3612
  'ea-tag--disabled': boolean;
3491
3613
  }>;
3614
+ constructor();
3492
3615
  onRemove(event: MouseEvent): void;
3616
+ /**
3617
+ * Keeps `clippedText` in step with the rendered label. Size and text are
3618
+ * watched separately because a capped chip holds its width when the text
3619
+ * behind the ellipsis changes, so a resize alone would leave stale text.
3620
+ */
3621
+ private watchLabel;
3493
3622
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
3494
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "ea-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "removeTabbable": { "alias": "removeTabbable"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
3623
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "ea-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "removeTabbable": { "alias": "removeTabbable"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
3495
3624
  }
3496
3625
 
3497
3626
  /** Visual size of the textarea. */
@@ -3882,51 +4011,6 @@ declare class ToastComponent {
3882
4011
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3883
4012
  }
3884
4013
 
3885
- /** Placement of the tooltip relative to its host element. */
3886
- type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
3887
- /**
3888
- * Attaches a positioned tooltip to its host element. Shows on hover and
3889
- * focus, hides on leave/blur or Escape, and wires up `aria-describedby` so
3890
- * the tooltip text is announced to assistive technology. Accepts either a
3891
- * plain string or a `TemplateRef` for styled multi-part content.
3892
- */
3893
- declare class TooltipDirective implements OnDestroy {
3894
- private readonly el;
3895
- private readonly renderer;
3896
- private readonly viewContainer;
3897
- readonly eaTooltip: _angular_core.InputSignal<string | TemplateRef<unknown>>;
3898
- readonly tooltipPosition: _angular_core.InputSignal<TooltipPosition>;
3899
- /** Max width in px; the text wraps at this width. Clamped to a 50px floor. */
3900
- readonly maxWidth: _angular_core.InputSignal<number | undefined>;
3901
- private tooltipEl;
3902
- private templateView;
3903
- private readonly tooltipId;
3904
- private readonly hoverMql;
3905
- private readonly showHandler;
3906
- private readonly hideHandler;
3907
- private readonly supportsFocusVisible;
3908
- private readonly focusHandler;
3909
- private readonly keydownHandler;
3910
- private readonly hoverChangeHandler;
3911
- private rafId;
3912
- private readonly repositionHandler;
3913
- private readonly scrollListenerOptions;
3914
- private resizeObserver;
3915
- constructor();
3916
- ngOnDestroy(): void;
3917
- private syncPointerListeners;
3918
- private show;
3919
- private shrinkToContent;
3920
- private hide;
3921
- private attachRepositionListeners;
3922
- private detachRepositionListeners;
3923
- private appendDescribedBy;
3924
- private removeDescribedBy;
3925
- private positionTooltip;
3926
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
3927
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[eaTooltip]", never, { "eaTooltip": { "alias": "eaTooltip"; "required": true; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3928
- }
3929
-
3930
4014
  /**
3931
4015
  * A single transferable item in an `<ea-transfer-list>`.
3932
4016
  *
@@ -7699,4 +7783,4 @@ declare class ZoomOutIconComponent extends IconComponentBase {
7699
7783
  }
7700
7784
 
7701
7785
  export { AccordionComponent, AccordionItemComponent, ActivityIconComponent, AirplayIconComponent, AlertCircleIconComponent, AlertComponent, AlertOctagonIconComponent, AlertTriangleIconComponent, AlignCenterIconComponent, AlignJustifyIconComponent, AlignLeftIconComponent, AlignRightIconComponent, AnchorIconComponent, AndroidIconComponent, AngularIconComponent, AnthropicIconComponent, ApertureIconComponent, ArchiveIconComponent, ArrowDownCircleIconComponent, ArrowDownIconComponent, ArrowDownLeftIconComponent, ArrowDownRightIconComponent, ArrowLeftCircleIconComponent, ArrowLeftIconComponent, ArrowRightCircleIconComponent, ArrowRightIconComponent, ArrowUpCircleIconComponent, ArrowUpIconComponent, ArrowUpLeftIconComponent, ArrowUpRightIconComponent, AspectRatioIconComponent, AtSignIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, AwardIconComponent, BadgeCheckIconComponent, BadgeComponent, BarChart2IconComponent, BarChartIconComponent, BatteryChargingIconComponent, BatteryIconComponent, BellIconComponent, BellOffIconComponent, BellRingIconComponent, BitcoinIconComponent, BlueskyIconComponent, BluetoothIconComponent, BoldIconComponent, BookIconComponent, BookOpenIconComponent, BookmarkCheckIconComponent, BookmarkIconComponent, BookmarkPlusIconComponent, BotIconComponent, BottleIconComponent, BoxIconComponent, BrainIconComponent, BreadcrumbsComponent, BriefcaseIconComponent, BugIconComponent, BuildingIconComponent, ButtonComponent, CalculatorIconComponent, CalendarCheckIconComponent, CalendarDaysIconComponent, CalendarIconComponent, CameraIconComponent, CameraOffIconComponent, CandleIconComponent, CardComponent, CastIconComponent, CheckCircleIconComponent, CheckIconComponent, CheckSquareIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsDownIconComponent, ChevronsLeftIconComponent, ChevronsRightIconComponent, ChevronsUpDownIconComponent, ChevronsUpIconComponent, ChromeIconComponent, CircleIconComponent, ClapperboardIconComponent, ClipboardCheckIconComponent, ClipboardIconComponent, ClipboardListIconComponent, ClockIconComponent, CloudDrizzleIconComponent, CloudIconComponent, CloudLightningIconComponent, CloudOffIconComponent, CloudRainIconComponent, CloudSnowIconComponent, CloudflareIconComponent, CodeIconComponent, CodeInputComponent, CodepenIconComponent, CodesandboxIconComponent, CoffeeIconComponent, CoinsIconComponent, 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_ALL_LOCALES, EAGAMI_I18N_CONFIG, EAGAMI_LOCALES, EAGAMI_LOCALE_META, EagamiI18nService, EagamiIconComponent, EagamiWordmarkComponent, Edit2IconComponent, Edit3IconComponent, EditIconComponent, EmptyStateComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, Facebook2IconComponent, FacebookIconComponent, FastForwardIconComponent, FeatherIconComponent, FieldLabelComponent, FieldMessagesComponent, Figma2IconComponent, FigmaIconComponent, FileAudioIconComponent, FileCheckIconComponent, FileIconComponent, FileImageIconComponent, FileMinusIconComponent, FilePdfIconComponent, FilePlusIconComponent, FileTextIconComponent, FileUploaderComponent, FileVideoIconComponent, FilmIconComponent, FilterIconComponent, FilterXIconComponent, FingerprintIconComponent, FlagIconComponent, FlameIconComponent, FolderIconComponent, FolderMinusIconComponent, FolderOpenIconComponent, FolderPlusIconComponent, FormFieldComponent, FramerIconComponent, FrownIconComponent, GaugeIconComponent, GeminiIconComponent, GiftIconComponent, GitBranchIconComponent, GitCommitIconComponent, GitCompareIconComponent, GitMergeIconComponent, GitPullRequestIconComponent, Github2IconComponent, GithubIconComponent, GitlabIconComponent, GlobeIconComponent, GoogleIconComponent, GridIconComponent, HalfCircleIconComponent, HalfHeartIconComponent, HardDriveIconComponent, HashIconComponent, HeadphonesIconComponent, HeartIconComponent, HelpCircleIconComponent, HeptagonIconComponent, HexagonIconComponent, HistoryIconComponent, HomeIconComponent, ICONS, IconComponentBase, ImageIconComponent, ImagesIconComponent, InboxIconComponent, InfoIconComponent, InputComponent, InstagramIconComponent, ItalicIconComponent, KeyIconComponent, KeyboardIconComponent, KeyframeIconComponent, KubernetesIconComponent, LampIconComponent, LanguagesIconComponent, LayersIconComponent, LayoutIconComponent, LeafIconComponent, LeftHalfStarIconComponent, LifeBuoyIconComponent, LightbulbIconComponent, Link2IconComponent, LinkIconComponent, Linkedin2IconComponent, LinkedinIconComponent, ListChecksIconComponent, ListIconComponent, LoaderIconComponent, LockIconComponent, LogInIconComponent, LogOutIconComponent, MailCheckIconComponent, MailIconComponent, MapIconComponent, MapPinIconComponent, MastercardIconComponent, Maximize2IconComponent, MaximizeIconComponent, MegaphoneIconComponent, 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, NodejsIconComponent, NotionIconComponent, NpmIconComponent, NumberInputComponent, OctagonIconComponent, PackageIconComponent, PaginatorComponent, PaletteIconComponent, PaperclipIconComponent, PauseCircleIconComponent, PauseIconComponent, PaypalIconComponent, PenToolIconComponent, PentagonIconComponent, PercentIconComponent, PhoneCallIconComponent, PhoneForwardedIconComponent, PhoneIconComponent, PhoneIncomingIconComponent, PhoneMissedIconComponent, PhoneOffIconComponent, PhoneOutgoingIconComponent, PictureInPictureIconComponent, PieChartIconComponent, PinIconComponent, PinterestIconComponent, PlayCircleIconComponent, PlayIconComponent, PlaylistIconComponent, PlugIconComponent, PlusCircleIconComponent, PlusIconComponent, PlusSquareIconComponent, PocketIconComponent, PopoverComponent, PowerIconComponent, PrinterIconComponent, ProgressBarComponent, PythonIconComponent, QrCodeIconComponent, RadioComponent, RadioGroupComponent, RadioIconComponent, RangeSliderComponent, RatingComponent, ReactIconComponent, ReceiptIconComponent, RecordIconComponent, RectangleHorizontalIconComponent, RectangleVerticalIconComponent, RedditIconComponent, RedoIconComponent, RefreshCcwIconComponent, RefreshCwIconComponent, RepeatIconComponent, RewindIconComponent, RightHalfStarIconComponent, RocketIconComponent, RotateCcwIconComponent, RotateCwIconComponent, RssIconComponent, SaveIconComponent, ScanIconComponent, ScissorsIconComponent, SearchIconComponent, SegmentedComponent, SendIconComponent, ServerIconComponent, SettingsIconComponent, ShareIconComponent, ShieldCheckIconComponent, ShieldIconComponent, ShieldOffIconComponent, ShopifyIconComponent, ShoppingBagIconComponent, ShoppingCartIconComponent, ShuffleIconComponent, SidebarIconComponent, SkeletonComponent, SkipBackIconComponent, SkipForwardIconComponent, Slack2IconComponent, SlackIconComponent, SlashIconComponent, SliderComponent, SlidersIconComponent, SmartphoneIconComponent, SmileIconComponent, SnowflakeIconComponent, SoccerBallIconComponent, SparklesIconComponent, SpeakerIconComponent, SpinnerComponent, SpotifyIconComponent, SquareIconComponent, StarIconComponent, StepComponent, StepperComponent, StopCircleIconComponent, StripeIconComponent, SubtitlesIconComponent, SunIconComponent, SunriseIconComponent, SunsetIconComponent, SvelteIconComponent, SwitchComponent, TabComponent, TableIconComponent, TabletIconComponent, TabsComponent, TagComponent, TagIconComponent, TailwindIconComponent, TargetIconComponent, TelegramIconComponent, TerminalIconComponent, TextareaComponent, ThermometerIconComponent, ThreadsIconComponent, ThumbsDownIconComponent, ThumbsUpIconComponent, TiktokIconComponent, TimePickerComponent, TimecodeIconComponent, TimelineComponent, TimerIconComponent, ToastComponent, ToastService, ToggleLeftIconComponent, ToggleRightIconComponent, ToolIconComponent, TooltipDirective, TranscodeIconComponent, TransferListComponent, Trash2IconComponent, TrashIconComponent, TreeComponent, TrelloIconComponent, TrendingDownIconComponent, TrendingUpIconComponent, TriangleIconComponent, TrimIconComponent, TrophyIconComponent, TruckIconComponent, TvIconComponent, Twitch2IconComponent, TwitchIconComponent, TwitterIconComponent, TypeIconComponent, UmbrellaIconComponent, UnderlineIconComponent, UndoIconComponent, UnlockIconComponent, UploadCloudIconComponent, UploadIconComponent, UserCheckIconComponent, UserIconComponent, UserMinusIconComponent, UserPlusIconComponent, UserXIconComponent, UsersIconComponent, VercelIconComponent, VideoIconComponent, VideoOffIconComponent, VirtualListComponent, VoicemailIconComponent, Volume1IconComponent, Volume2IconComponent, VolumeIconComponent, VolumeXIconComponent, VueIconComponent, WCAG_AA, WalletIconComponent, WandIconComponent, WatchIconComponent, WaveformIconComponent, WhatsappIconComponent, WifiIconComponent, WifiOffIconComponent, WindIconComponent, WordpressIconComponent, XCircleIconComponent, XIconComponent, XOctagonIconComponent, XSquareIconComponent, XTwitterIconComponent, Youtube2IconComponent, YoutubeIconComponent, ZapIconComponent, ZapOffIconComponent, ZoomInIconComponent, ZoomOutIconComponent, applyPalette, ar, computePopoverPosition, contrastRatio, de, derivePalette, el, en, esES, formatViolations, frFR, frenchSpacing, he, hexToOklch, hi, iconDisplayName, is, nl, oklchToHex, pl, provideEagamiUi, ptBR, relativeLuminance, ru, uk, validatePalette, visibleNodeIds, walkTree, zhCN };
7702
- export type { AccordionHeadingLevel, AccordionSize, AlertSize, AlertVariant, AutocompleteSize, AvatarEditorCropEvent, AvatarEditorCropState, AvatarEditorShape, AvatarShape, AvatarSize, BadgeShape, BadgeSize, BadgeVariant, BreadcrumbClickEvent, BreadcrumbItem, BreadcrumbsSeparator, BreadcrumbsSize, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, CodeInputSize, ColorPickerFormat, ColorPickerInputMode, ColorPickerSize, ColorPickerValue, CommandPaletteItem, ContrastSurfaces, ContrastViolation, DataTableColumn, DataTableDensity, DataTableSize, DataTableSortDirection, DataTableSortState, DatePickerFormat, DatePickerSize, DatePickerValue, DatePickerWeekStart, DerivedPalette, DialogWidth, DividerOrientation, DrawerAnimation, DrawerMode, DrawerPosition, DrawerSize, DropdownSize, EaErrorMessages, EaSize, EaValidationErrorKey, EaWidth, EagamiI18nConfig, EagamiLocale, EagamiLocaleBundle, EagamiLocaleLoader, EagamiLocaleMeta, EagamiMessages, EagamiMessagesOverride, EagamiPaletteConfig, EagamiUiConfig, EagamiWordmarkLayout, EagamiWordmarkVariant, EmptyStateHeadingLevel, EmptyStateSize, FileUploaderRejection, FileUploaderRejectionReason, FileUploaderSize, FormFieldSize, IconCategory, IconComponentType, IconMeta, InputSize, InputType, MenuItemVariant, MenuPlacement, MenuSize, ModePalette, ModeSurfaces, MultiSelectSize, NumberInputSize, PaginatorAlign, PaginatorSize, PaginatorState, PaletteConfig, PaletteRoles, PaletteShade, PopoverPlacement, PopoverPositionOptions, PopoverPositionResult, PopoverRole, PopoverScrollBehavior, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, RangeSliderSize, RangeSliderValue, RatingSize, RatingStarState, SegmentedSize, SelectOption, SkeletonVariant, SliderSize, SpinnerSize, StepperOrientation, StepperSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagVariant, TextareaResize, TextareaSize, TimePickerFormat, TimePickerSize, TimelineAlign, TimelineItem, TimelineItemColor, TimelineOrientation, TimelineSize, Toast, ToastOptions, ToastPosition, ToastSize, ToastVariant, TooltipPosition, TransferListItem, TransferListSize, TreeNode, TreeSize, VirtualListItemContext };
7786
+ export type { AccordionHeadingLevel, AccordionSize, AlertSize, AlertVariant, AutocompleteSize, AvatarEditorCropEvent, AvatarEditorCropState, AvatarEditorShape, AvatarShape, AvatarSize, BadgeShape, BadgeSize, BadgeVariant, BreadcrumbClickEvent, BreadcrumbItem, BreadcrumbsSeparator, BreadcrumbsSize, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, CodeInputSize, ColorPickerFormat, ColorPickerInputMode, ColorPickerSize, ColorPickerValue, CommandPaletteItem, ContrastSurfaces, ContrastViolation, DataTableColumn, DataTableDensity, DataTableSize, DataTableSortDirection, DataTableSortState, DatePickerFormat, DatePickerSize, DatePickerValue, DatePickerWeekStart, DerivedPalette, DialogWidth, DividerOrientation, DrawerAnimation, DrawerMode, DrawerPosition, DrawerSize, DropdownSize, EaErrorMessages, EaSize, EaValidationErrorKey, EaWidth, EagamiI18nConfig, EagamiLocale, EagamiLocaleBundle, EagamiLocaleLoader, EagamiLocaleMeta, EagamiMessages, EagamiMessagesOverride, EagamiPaletteConfig, EagamiUiConfig, EagamiWordmarkLayout, EagamiWordmarkVariant, EmptyStateHeadingLevel, EmptyStateSize, FileUploaderRejection, FileUploaderRejectionReason, FileUploaderSize, FormFieldSize, IconCategory, IconComponentType, IconMeta, InputSize, InputType, MenuItemVariant, MenuPlacement, MenuSize, ModePalette, ModeSurfaces, MultiSelectSize, NumberInputSize, PaginatorAlign, PaginatorSize, PaginatorState, PaletteConfig, PaletteRoles, PaletteShade, PopoverMaxWidth, PopoverPlacement, PopoverPositionOptions, PopoverPositionResult, PopoverRole, PopoverScrollBehavior, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, RangeSliderSize, RangeSliderValue, RatingSize, RatingStarState, SegmentedSize, SelectOption, SkeletonVariant, SliderSize, SpinnerSize, StepperOrientation, StepperSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagTooltip, TagVariant, TextareaResize, TextareaSize, TimePickerFormat, TimePickerSize, TimelineAlign, TimelineItem, TimelineItemColor, TimelineOrientation, TimelineSize, Toast, ToastOptions, ToastPosition, ToastSize, ToastVariant, TooltipPosition, TransferListItem, TransferListSize, TreeNode, TreeSize, VirtualListItemContext };