@eagami/ui 5.54.0 → 5.56.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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
- import { AfterContentChecked, ElementRef, EnvironmentProviders, InjectionToken, OnDestroy, OnInit, Signal, TemplateRef, Type } from "@angular/core";
2
+ import { AfterContentChecked, ElementRef, EnvironmentProviders, InjectionToken, Injector, OnDestroy, OnInit, Signal, TemplateRef, Type } from "@angular/core";
3
3
  import { AbstractControl, ControlValueAccessor } from "@angular/forms";
4
4
  /**
5
5
  * BCP 47 locale tags supported out of the box. Consumers select one of these
@@ -2629,366 +2629,885 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2629
2629
  "changed": "changed";
2630
2630
  }, never, never, true, never>;
2631
2631
  }
2632
- /** Vertical density preset for table rows and header cells. */
2633
- export type DataTableDensity = 'compact' | 'comfortable' | 'spacious';
2634
- /** Visual size of the table's text, paddings, and icons. */
2635
- export type DataTableSize = EaSize;
2636
- /** Sort direction; `null` means no sort is applied. */
2637
- export type DataTableSortDirection = 'asc' | 'desc' | null;
2638
- /** Column definition for the data table, including optional cell/header templates. */
2639
- export interface DataTableColumn<T = Record<string, unknown>> {
2640
- key: string;
2641
- label: string;
2642
- sortable?: boolean;
2643
- align?: 'left' | 'center' | 'right';
2644
- width?: string;
2645
- format?: (value: unknown) => string;
2646
- cellTemplate?: TemplateRef<{
2647
- $implicit: T;
2648
- value: unknown;
2649
- }>;
2650
- headerTemplate?: TemplateRef<{
2651
- $implicit: DataTableColumn<T>;
2652
- }>;
2632
+ /**
2633
+ * Placement of the popover relative to its anchor. Each outside placement names
2634
+ * the side of the anchor the popover attaches to, optionally followed by a corner
2635
+ * suffix (`-start` or `-end`) that decides the alignment along the perpendicular
2636
+ * axis. The plain side names (`top`, `bottom`, `left`, `right`) centre the
2637
+ * popover on that axis. The `inside-` placements sit over the anchor instead,
2638
+ * see {@link PopoverInsidePlacement}.
2639
+ */
2640
+ export type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right' | PopoverInsidePlacement;
2641
+ /**
2642
+ * Placements that sit over the anchor rather than beside it: pinned inside one of
2643
+ * its corners (`inside-top-start`), centred along one of its edges (`inside-top`,
2644
+ * `inside-start`), or centred on it (`inside-center`). `start` and `end` follow the
2645
+ * reading direction, so `inside-top-start` is the top-left corner in LTR and the
2646
+ * top-right corner in RTL. The offset insets the popover from the edges it is
2647
+ * pinned to, and it never flips.
2648
+ */
2649
+ export type PopoverInsidePlacement = 'inside-top-start' | 'inside-top' | 'inside-top-end' | 'inside-start' | 'inside-center' | 'inside-end' | 'inside-bottom-start' | 'inside-bottom' | 'inside-bottom-end';
2650
+ /** A point in viewport coordinates, such as a pointer event's `clientX` and `clientY`. */
2651
+ export interface PopoverAnchorPoint {
2652
+ readonly x: number;
2653
+ readonly y: number;
2653
2654
  }
2654
- /** Current sort state: which column is sorted and in which direction. */
2655
- export interface DataTableSortState {
2656
- column: string;
2657
- direction: DataTableSortDirection;
2655
+ export interface PopoverPositionResult {
2656
+ /** Top coordinate in viewport (px); pairs with `position: fixed`. */
2657
+ readonly top: number;
2658
+ /** Left coordinate in viewport (px). */
2659
+ readonly left: number;
2660
+ /** Width hint when the popover should match the anchor's width. */
2661
+ readonly width?: number;
2662
+ /** The anchor's measured width, for a caller capping the popover against it. */
2663
+ readonly anchorWidth: number;
2664
+ /** Effective placement after any flip logic ran. */
2665
+ readonly placement: PopoverPlacement;
2666
+ }
2667
+ export interface PopoverPositionOptions {
2668
+ readonly placement: PopoverPlacement;
2669
+ /** Gap in px between the anchor and the popover. Default 4. */
2670
+ readonly offset?: number;
2671
+ /** Flip to the opposite side when the requested side overflows the viewport. Default true. */
2672
+ readonly flip?: boolean;
2673
+ /** Clamp inside the viewport when the popover still overflows after any flip. Default true. */
2674
+ readonly clamp?: boolean;
2675
+ /** Margin from the viewport edge in px when clamping. Default 8. */
2676
+ readonly margin?: number;
2677
+ /** Set the popover's width to match the anchor's. Useful for dropdown-style menus. */
2678
+ readonly matchAnchorWidth?: boolean;
2679
+ /** Right-to-left context. Swaps `-start`/`-end` alignment so they track the reading direction. */
2680
+ readonly rtl?: boolean;
2681
+ /**
2682
+ * Viewport point to position against instead of the anchor's box, as a zero-size
2683
+ * anchor. The anchor still supplies the width for `matchAnchorWidth`.
2684
+ */
2685
+ readonly point?: PopoverAnchorPoint | null;
2686
+ }
2687
+ interface Rect {
2688
+ readonly width: number;
2689
+ readonly height: number;
2690
+ }
2691
+ interface AnchorRect extends Rect {
2692
+ readonly top: number;
2693
+ readonly bottom: number;
2694
+ readonly left: number;
2695
+ readonly right: number;
2696
+ }
2697
+ interface Viewport {
2698
+ readonly width: number;
2699
+ readonly height: number;
2658
2700
  }
2659
2701
  /**
2660
- * Table for tabular data with sortable columns, sticky headers, and density
2661
- * presets. Supports striping, borders, hoverable rows, and custom cell or
2662
- * header templates via `ng-template`. Sort state is exposed as a two-way
2663
- * `model()` binding.
2702
+ * Computes the viewport-space top/left for a popover anchored to `anchorRect`,
2703
+ * applying optional flip-on-overflow and edge-clamp logic. Pure function, no
2704
+ * DOM access. Both `<ea-popover>` and `[eaTooltip]` consume this.
2705
+ *
2706
+ * @param anchorRect The anchor element's `getBoundingClientRect()`.
2707
+ * @param popoverRect Width and height of the popover (post-render measurement).
2708
+ * @param viewport Viewport dimensions (`window.innerWidth/Height`).
2709
+ * @param options Placement and behavior flags.
2664
2710
  */
2665
- export declare class DataTableComponent<T = Record<string, unknown>> {
2711
+ export declare function computePopoverPosition(anchorRect: AnchorRect, popoverRect: Rect, viewport: Viewport, options: PopoverPositionOptions): PopoverPositionResult;
2712
+ /** Placement of the menu list relative to its trigger. */
2713
+ export type MenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
2714
+ /** Visual size of the menu, shared by all of its items. */
2715
+ export type MenuSize = EaSize;
2716
+ /**
2717
+ * Popup action menu attached to any focusable element via the
2718
+ * `[eaMenuTrigger]` directive. Supports keyboard navigation
2719
+ * (arrow keys, Home/End), closes on outside click or Escape, and restores
2720
+ * focus to the trigger on close. Positioning, dismissal, and SSR-safe scroll
2721
+ * handling are provided by `<ea-popover>`.
2722
+ */
2723
+ export declare class MenuComponent {
2724
+ private readonly injector;
2666
2725
  private readonly i18n;
2667
- private readonly host;
2668
- private readonly activeCell;
2669
- private static readonly PAGE_JUMP;
2670
- readonly columns: import("@angular/core").InputSignal<DataTableColumn<T>[]>;
2671
- readonly data: import("@angular/core").InputSignal<T[]>;
2726
+ private readonly listEl;
2727
+ readonly placement: import("@angular/core").InputSignal<MenuPlacement>;
2728
+ /** Visual size of the menu; every item inherits it. */
2729
+ readonly size: import("@angular/core").InputSignal<EaSize>;
2730
+ /** Max height of the scrollable list as a CSS length; tall menus scroll past it. */
2731
+ readonly maxHeight: import("@angular/core").InputSignal<string>;
2732
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
2733
+ readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
2734
+ readonly id: import("@angular/core").InputSignal<string>;
2735
+ /** Accessible label for the menu, falling back to the active locale. */
2736
+ readonly resolvedAriaLabel: import("@angular/core").Signal<string>;
2737
+ readonly open: import("@angular/core").ModelSignal<boolean>;
2738
+ /** Fires when the menu opens. */
2739
+ readonly opened: import("@angular/core").OutputEmitterRef<void>;
2740
+ /** Fires when the menu closes. */
2741
+ readonly closed: import("@angular/core").OutputEmitterRef<void>;
2742
+ /** Trigger element currently anchoring the menu. Signal-typed so `<ea-popover>` reacts when it changes. */
2743
+ protected readonly triggerEl: import("@angular/core").WritableSignal<HTMLElement | undefined>;
2744
+ protected readonly asContextMenu: import("@angular/core").WritableSignal<boolean>;
2745
+ protected readonly anchorPoint: import("@angular/core").WritableSignal<PopoverAnchorPoint | null>;
2746
+ readonly activeItemId: import("@angular/core").WritableSignal<string | null>;
2747
+ constructor();
2748
+ /** Toggles the menu open state, anchoring it to the given trigger element. */
2749
+ toggleAt(triggerEl: HTMLElement): void;
2750
+ /** Opens the menu anchored to the given trigger element and focuses the first item. */
2751
+ openAt(triggerEl: HTMLElement): void;
2672
2752
  /**
2673
- * Rows holding each column's widest content. They are laid out but never shown,
2674
- * so column widths come from them rather than from whichever rows are in `data`,
2675
- * and stay put across pages and while data loads. Moot with `stickyHeader`, whose
2676
- * columns share the width equally unless given a `width`.
2753
+ * Opens the menu as the context menu of `anchorEl`: at `point` when given (a
2754
+ * pointer position, in viewport coordinates), else at its placement against the
2755
+ * anchor. Focuses the first item, closes on any click or context-menu request
2756
+ * outside the menu, and hands focus back to wherever it was on close.
2677
2757
  */
2678
- readonly sizingRows: import("@angular/core").InputSignal<T[]>;
2679
- /** Accessible name for the table, announced when it takes focus as a grid. */
2680
- readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
2681
- /** Visible caption rendered above the table; also names it for assistive technology. */
2682
- readonly caption: import("@angular/core").InputSignal<string | undefined>;
2683
- readonly trackBy: import("@angular/core").InputSignal<keyof T | undefined>;
2684
- readonly density: import("@angular/core").InputSignal<DataTableDensity>;
2685
- /** Visual size of the table; density paddings and icons scale with it. */
2686
- readonly size: import("@angular/core").InputSignal<EaSize>;
2687
- readonly stickyHeader: import("@angular/core").InputSignal<boolean>;
2688
- readonly striped: import("@angular/core").InputSignal<boolean>;
2689
- readonly hoverable: import("@angular/core").InputSignal<boolean>;
2690
- readonly bordered: import("@angular/core").InputSignal<boolean>;
2691
- /** Keeps every cell on one line, so a narrow viewport scrolls the table sideways instead of wrapping its text. */
2692
- readonly nowrap: import("@angular/core").InputSignal<boolean>;
2693
- readonly noDataText: import("@angular/core").InputSignal<string | undefined>;
2694
- /** Enables grid keyboard navigation: `role="grid"`, roving tabindex, and arrow-key cell movement. */
2695
- readonly navigable: import("@angular/core").InputSignal<boolean>;
2696
- /** Marks body rows as clickable: shows a pointer cursor and emits `rowActivate` on click or Enter/Space. Independent of `hoverable` and `navigable`. */
2697
- readonly clickable: import("@angular/core").InputSignal<boolean>;
2758
+ openAsContextMenu(anchorEl: HTMLElement, point?: PopoverAnchorPoint | null): void;
2759
+ private show;
2698
2760
  /**
2699
- * Gives a row its link target, or `null` for none. Every cell of the row then holds
2700
- * a real link, so the browser shows the target on hover and a modified click opens
2701
- * it elsewhere, while a plain click still emits `rowActivate` for the app to route.
2702
- * A row given `null` is inert: no link, hover highlight, focus or activation.
2761
+ * Closes the menu if it is open. Pass `restoreFocus: true` to return focus
2762
+ * to the trigger element (used when closing via Escape or item activation;
2763
+ * not used on outside click, where the user has chosen a new focus target).
2703
2764
  */
2704
- readonly rowHref: import("@angular/core").InputSignal<((row: T) => string | null) | undefined>;
2705
- readonly sort: import("@angular/core").ModelSignal<DataTableSortState>;
2706
- /** Fires whenever the sort column or direction changes via header click. */
2707
- readonly sorted: import("@angular/core").OutputEmitterRef<DataTableSortState>;
2708
- /** Fires with the row's data when a body row is activated by click or Enter/Space while `clickable` is set. */
2709
- readonly rowActivate: import("@angular/core").OutputEmitterRef<T>;
2710
- readonly noDataTemplate: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
2711
- /** Empty-state text, falling back to the active locale's translation. */
2712
- readonly resolvedNoDataText: import("@angular/core").Signal<string>;
2713
- readonly hostClasses: import("@angular/core").Signal<{
2714
- [x: string]: boolean;
2715
- 'ea-data-table--sticky': boolean;
2716
- 'ea-data-table--striped': boolean;
2717
- 'ea-data-table--hoverable': boolean;
2718
- 'ea-data-table--bordered': boolean;
2719
- 'ea-data-table--nowrap': boolean;
2720
- 'ea-data-table--navigable': boolean;
2721
- 'ea-data-table--clickable': boolean;
2722
- 'ea-data-table--linked': boolean;
2723
- }>;
2724
- constructor();
2725
- readonly sortedData: import("@angular/core").Signal<T[]>;
2726
- getCellValue(row: T, key: string): unknown;
2727
- onHeaderClick(col: DataTableColumn<T>): void;
2728
- trackByFn(_index: number, item: T): unknown;
2729
- headerTabindex(colIndex: number): number | null;
2730
- onHeaderKeydown(event: Event, col: DataTableColumn<T>): void;
2731
- bodyCellTabindex(row: number, colIndex: number): number | null;
2732
- isInert(row: T): boolean;
2733
- rowTabindex(row: T): number | null;
2734
- onRowActivate(row: T, event?: Event): void;
2735
- onCellFocus(row: number, col: number): void;
2736
- onGridKeydown(event: KeyboardEvent): void;
2737
- private focusCell;
2738
- static ɵfac: i0.ɵɵFactoryDeclaration<DataTableComponent<any>, never>;
2739
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent<any>, "ea-data-table", never, {
2740
- "columns": {
2741
- "alias": "columns";
2742
- "required": true;
2743
- "isSignal": true;
2744
- };
2745
- "data": {
2746
- "alias": "data";
2747
- "required": true;
2748
- "isSignal": true;
2749
- };
2750
- "sizingRows": {
2751
- "alias": "sizingRows";
2765
+ close(restoreFocus?: boolean): void;
2766
+ /** Called by `<ea-popover>` when the user clicks outside the menu. */
2767
+ onPopoverCloseRequested(): void;
2768
+ private getEnabledItems;
2769
+ /**
2770
+ * `preventScroll: true` is critical here. The menu list is `position: fixed`
2771
+ * but its DOM ancestor is whatever element hosts the menu (often a sticky
2772
+ * header). When `.focus()` is called without `preventScroll`, Chromium uses
2773
+ * the focused element's DOM-tree position (inside the sticky ancestor) rather
2774
+ * than its rendered fixed position to decide whether to scroll, which on a
2775
+ * scrolled page nudges the document up by a few pixels per open, until the
2776
+ * trigger reaches the top edge. The same guard applies to keyboard navigation
2777
+ * and restoring focus on close.
2778
+ */
2779
+ private focusFirstItem;
2780
+ private focusItem;
2781
+ onKeydown(event: KeyboardEvent): void;
2782
+ onEscape(event: Event): void;
2783
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, never>;
2784
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "ea-menu", never, {
2785
+ "placement": {
2786
+ "alias": "placement";
2752
2787
  "required": false;
2753
2788
  "isSignal": true;
2754
2789
  };
2755
- "ariaLabel": {
2756
- "alias": "aria-label";
2790
+ "size": {
2791
+ "alias": "size";
2757
2792
  "required": false;
2758
2793
  "isSignal": true;
2759
2794
  };
2760
- "caption": {
2761
- "alias": "caption";
2795
+ "maxHeight": {
2796
+ "alias": "maxHeight";
2762
2797
  "required": false;
2763
2798
  "isSignal": true;
2764
2799
  };
2765
- "trackBy": {
2766
- "alias": "trackBy";
2800
+ "disabled": {
2801
+ "alias": "disabled";
2767
2802
  "required": false;
2768
2803
  "isSignal": true;
2769
2804
  };
2770
- "density": {
2771
- "alias": "density";
2805
+ "ariaLabel": {
2806
+ "alias": "aria-label";
2772
2807
  "required": false;
2773
2808
  "isSignal": true;
2774
2809
  };
2775
- "size": {
2776
- "alias": "size";
2810
+ "id": {
2811
+ "alias": "id";
2777
2812
  "required": false;
2778
2813
  "isSignal": true;
2779
2814
  };
2780
- "stickyHeader": {
2781
- "alias": "stickyHeader";
2815
+ "open": {
2816
+ "alias": "open";
2782
2817
  "required": false;
2783
2818
  "isSignal": true;
2784
2819
  };
2785
- "striped": {
2786
- "alias": "striped";
2787
- "required": false;
2788
- "isSignal": true;
2789
- };
2790
- "hoverable": {
2791
- "alias": "hoverable";
2792
- "required": false;
2820
+ }, {
2821
+ "open": "openChange";
2822
+ "opened": "opened";
2823
+ "closed": "closed";
2824
+ }, never, ["*"], true, never>;
2825
+ }
2826
+ /** What a trigger such as `[eaContextMenuTrigger]` asked for when requesting the popover open. */
2827
+ export interface PopoverOpenRequest {
2828
+ /** Viewport point to open at, for the parent to bind to `[anchorPoint]`; `null` places it against the anchor. */
2829
+ readonly point: PopoverAnchorPoint | null;
2830
+ }
2831
+ /** ARIA role to apply to the popover surface. */
2832
+ export type PopoverRole = 'menu' | 'listbox' | 'dialog' | 'tooltip' | 'grid';
2833
+ /**
2834
+ * How the popover should respond to scroll / resize events while open.
2835
+ *
2836
+ * - `reposition` (default): re-measure the anchor and update the popover's
2837
+ * coordinates so it stays attached. Suitable for menus and tooltips.
2838
+ * - `close`: request close. Suitable for dropdown lists and the colour-picker
2839
+ * popover, where re-tracking a tall popover during a scroll feels intrusive.
2840
+ * - `ignore`: do nothing. The popover stays at its initial coordinates and
2841
+ * may visually detach from a scrolling anchor; useful when the anchor is
2842
+ * guaranteed not to move (e.g. inside a non-scrolling region).
2843
+ */
2844
+ export type PopoverScrollBehavior = 'reposition' | 'close' | 'ignore';
2845
+ /** Width cap for a popover surface: px, or the anchor's own width. */
2846
+ export type PopoverMaxWidth = number | 'anchor';
2847
+ /**
2848
+ * Floating-element primitive. Renders projected content as `position: fixed`
2849
+ * anchored to an external element, with flip-on-overflow, viewport clamping,
2850
+ * outside-click and Escape dismissal, and SSR-safe scroll / resize handling.
2851
+ *
2852
+ * The primitive is intentionally low-level: a parent component drives the
2853
+ * `[open]` state and listens for `(closeRequested)` to mirror it back. Internal
2854
+ * library components (`<ea-menu>`, `<ea-dropdown>`, `<ea-color-picker>`,
2855
+ * `<ea-date-picker>`, `[eaTooltip]`) compose on top of it; downstream apps can
2856
+ * use it directly to build their own popover-based UI. Set `contextMenu` and
2857
+ * pair it with `[eaContextMenuTrigger]` to open it as a context menu.
2858
+ *
2859
+ * @example
2860
+ * ```html
2861
+ * <button #trigger (click)="open.set(!open())">Open</button>
2862
+ * <ea-popover [anchor]="trigger" [open]="open()" (closeRequested)="open.set(false)">
2863
+ * <div>Popover content</div>
2864
+ * </ea-popover>
2865
+ * ```
2866
+ */
2867
+ export declare class PopoverComponent {
2868
+ private readonly destroyRef;
2869
+ private readonly press;
2870
+ private readonly surfaceEl;
2871
+ /** Anchor element the popover positions itself against. */
2872
+ readonly anchor: import("@angular/core").InputSignal<HTMLElement | ElementRef<HTMLElement> | undefined>;
2873
+ /** Whether the popover is currently open. */
2874
+ readonly open: import("@angular/core").InputSignal<boolean>;
2875
+ /** Where the popover attaches relative to the anchor. */
2876
+ readonly placement: import("@angular/core").InputSignal<PopoverPlacement>;
2877
+ /**
2878
+ * Viewport point to position against instead of the anchor's box, such as where
2879
+ * a context menu was requested. The placement applies around the point, which
2880
+ * keeps its offset from the anchor as the page scrolls.
2881
+ */
2882
+ readonly anchorPoint: import("@angular/core").InputSignal<PopoverAnchorPoint | null>;
2883
+ /** ARIA role applied to the popover surface. */
2884
+ readonly role: import("@angular/core").InputSignal<PopoverRole>;
2885
+ /** Accessible label. Falls back to nothing; consumers should provide one when no visible heading is in the popover. */
2886
+ readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
2887
+ /** Id of the element that labels the popover surface, forwarded as `aria-labelledby`. */
2888
+ readonly ariaLabelledby: import("@angular/core").InputSignal<string | undefined>;
2889
+ /** Keep Tab and Shift+Tab cycling within the surface while open (dialog pattern). */
2890
+ readonly trapFocus: import("@angular/core").InputSignal<boolean>;
2891
+ /** DOM id for the surface so trigger elements can reference it via aria-controls. */
2892
+ readonly surfaceId: import("@angular/core").InputSignal<string>;
2893
+ /**
2894
+ * Gap in px between the anchor and the popover. Defaults to 2 so an open panel
2895
+ * clears the anchor's active focus ring instead of sitting flush over it.
2896
+ */
2897
+ readonly offset: import("@angular/core").InputSignal<number>;
2898
+ /** Flip to the opposite side when the requested side overflows the viewport. */
2899
+ readonly flip: import("@angular/core").InputSignal<boolean>;
2900
+ /** Clamp the popover inside the viewport when it would otherwise overflow. */
2901
+ readonly clamp: import("@angular/core").InputSignal<boolean>;
2902
+ /** Set the popover's `min-width` to match the anchor's width (dropdown pattern). */
2903
+ readonly matchAnchorWidth: import("@angular/core").InputSignal<boolean>;
2904
+ /**
2905
+ * Widest the surface may grow: a px value, or `anchor` to cap it at the
2906
+ * anchor's own width so long content truncates instead of widening the panel.
2907
+ */
2908
+ readonly maxWidth: import("@angular/core").InputSignal<PopoverMaxWidth | undefined>;
2909
+ /** Close on click outside the popover and the anchor. */
2910
+ readonly closeOnOutsideClick: import("@angular/core").InputSignal<boolean>;
2911
+ /** Close on Escape. */
2912
+ readonly closeOnEscape: import("@angular/core").InputSignal<boolean>;
2913
+ /** What to do on scroll / resize while open. */
2914
+ readonly scrollBehavior: import("@angular/core").InputSignal<PopoverScrollBehavior>;
2915
+ /**
2916
+ * Behaves as a context menu: moves focus to the first focusable element once
2917
+ * shown and hands it back on close, and treats clicks on the anchor and
2918
+ * context-menu requests anywhere outside the surface as outside clicks.
2919
+ */
2920
+ readonly contextMenu: import("@angular/core").InputSignal<boolean>;
2921
+ /** Requested close. The parent should mirror this into `[open]`. */
2922
+ readonly closeRequested: import("@angular/core").OutputEmitterRef<void>;
2923
+ /**
2924
+ * Requested open, from a trigger such as `[eaContextMenuTrigger]`. The parent
2925
+ * should mirror this into `[open]`, and the point into `[anchorPoint]`.
2926
+ */
2927
+ readonly openRequested: import("@angular/core").OutputEmitterRef<PopoverOpenRequest>;
2928
+ private readonly position;
2929
+ private latched;
2930
+ private pointOffset;
2931
+ private focusReturn;
2932
+ /** True placement after flip, for class-based styling (e.g. arrow direction). */
2933
+ readonly effectivePlacement: import("@angular/core").Signal<PopoverPlacement>;
2934
+ /** Latches true once the post-rAF reposition has run, so the surface is
2935
+ * only revealed after its dimensions are guaranteed stable. Reset on close. */
2936
+ private readonly stable;
2937
+ /** True once the first `reposition()` has resolved a placement on a
2938
+ * laid-out surface. Drives the `--positioned` class. */
2939
+ readonly isPositioned: import("@angular/core").Signal<boolean>;
2940
+ /** Class list for the surface. Computed in TS so the placement key (with
2941
+ * its interpolated suffix) and the positioned modifier compose cleanly. */
2942
+ readonly surfaceClass: import("@angular/core").Signal<string>;
2943
+ /** Inline style applied to the surface element. */
2944
+ readonly surfaceStyle: import("@angular/core").Signal<Record<string, string>>;
2945
+ constructor();
2946
+ requestOpen(point: PopoverAnchorPoint | null): void;
2947
+ private resolveAnchor;
2948
+ private reposition;
2949
+ onDocumentClick(event: MouseEvent): void;
2950
+ onSurfaceKeydown(event: KeyboardEvent): void;
2951
+ private focusableElements;
2952
+ private focusFirstElement;
2953
+ private trackFocusReturn;
2954
+ onEscape(event: Event): void;
2955
+ static ɵfac: i0.ɵɵFactoryDeclaration<PopoverComponent, never>;
2956
+ static ɵcmp: i0.ɵɵComponentDeclaration<PopoverComponent, "ea-popover", never, {
2957
+ "anchor": {
2958
+ "alias": "anchor";
2959
+ "required": true;
2793
2960
  "isSignal": true;
2794
2961
  };
2795
- "bordered": {
2796
- "alias": "bordered";
2962
+ "open": {
2963
+ "alias": "open";
2797
2964
  "required": false;
2798
2965
  "isSignal": true;
2799
2966
  };
2800
- "nowrap": {
2801
- "alias": "nowrap";
2967
+ "placement": {
2968
+ "alias": "placement";
2802
2969
  "required": false;
2803
2970
  "isSignal": true;
2804
2971
  };
2805
- "noDataText": {
2806
- "alias": "noDataText";
2972
+ "anchorPoint": {
2973
+ "alias": "anchorPoint";
2807
2974
  "required": false;
2808
2975
  "isSignal": true;
2809
2976
  };
2810
- "navigable": {
2811
- "alias": "navigable";
2977
+ "role": {
2978
+ "alias": "role";
2812
2979
  "required": false;
2813
2980
  "isSignal": true;
2814
2981
  };
2815
- "clickable": {
2816
- "alias": "clickable";
2982
+ "ariaLabel": {
2983
+ "alias": "aria-label";
2817
2984
  "required": false;
2818
2985
  "isSignal": true;
2819
2986
  };
2820
- "rowHref": {
2821
- "alias": "rowHref";
2987
+ "ariaLabelledby": {
2988
+ "alias": "aria-labelledby";
2822
2989
  "required": false;
2823
2990
  "isSignal": true;
2824
2991
  };
2825
- "sort": {
2826
- "alias": "sort";
2992
+ "trapFocus": {
2993
+ "alias": "trapFocus";
2827
2994
  "required": false;
2828
2995
  "isSignal": true;
2829
2996
  };
2830
- }, {
2831
- "sort": "sortChange";
2832
- "sorted": "sorted";
2833
- "rowActivate": "rowActivate";
2834
- }, ["noDataTemplate"], ["ea-paginator"], true, never>;
2835
- }
2836
- /** Visual size of each digit cell. */
2837
- export type CodeInputSize = EaSize;
2838
- /**
2839
- * Verification code entry made up of one input per digit. Auto-advances on
2840
- * input, supports paste of the full code at once, and integrates with Angular
2841
- * forms via `ControlValueAccessor`.
2842
- */
2843
- export declare class CodeInputComponent implements ControlValueAccessor {
2844
- readonly digitEls: import("@angular/core").Signal<readonly ElementRef<HTMLInputElement>[]>;
2845
- protected readonly i18n: EagamiI18nService;
2846
- readonly label: import("@angular/core").InputSignal<string | undefined>;
2847
- /** Optional icon component rendered before the label text. */
2848
- readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
2849
- /** Help revealed by an info button beside the label, as plain text or a template. */
2850
- readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
2851
- /** Placeholder text spread one character per cell (cell i shows character i). */
2852
- readonly placeholder: import("@angular/core").InputSignal<string>;
2853
- readonly length: import("@angular/core").InputSignal<number>;
2854
- readonly size: import("@angular/core").InputSignal<EaSize>;
2855
- readonly hint: import("@angular/core").InputSignal<string | undefined>;
2856
- readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
2857
- /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
2858
- readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string>> | undefined>;
2859
- readonly disabled: import("@angular/core").InputSignal<boolean>;
2860
- readonly readonly: import("@angular/core").InputSignal<boolean>;
2861
- readonly required: import("@angular/core").InputSignal<boolean>;
2862
- /** Allow any non-whitespace character; when false (default) only digits are accepted. */
2863
- readonly allowAllChars: import("@angular/core").InputSignal<boolean>;
2864
- readonly id: import("@angular/core").InputSignal<string>;
2865
- readonly value: import("@angular/core").ModelSignal<string>;
2866
- readonly focusedIndex: import("@angular/core").WritableSignal<number>;
2867
- private readonly _formDisabled;
2868
- /** Fires with the full code once every digit has been entered. */
2869
- readonly completed: import("@angular/core").OutputEmitterRef<string>;
2870
- private onChange;
2871
- private onTouched;
2872
- readonly isDisabled: import("@angular/core").Signal<boolean>;
2873
- private readonly errorState;
2874
- readonly errorText: import("@angular/core").Signal<string | null>;
2875
- readonly hasError: import("@angular/core").Signal<boolean>;
2876
- readonly showError: import("@angular/core").Signal<boolean>;
2877
- readonly showHint: import("@angular/core").Signal<boolean>;
2878
- readonly digits: import("@angular/core").Signal<string[]>;
2879
- readonly placeholders: import("@angular/core").Signal<string[]>;
2880
- readonly indices: import("@angular/core").Signal<number[]>;
2881
- writeValue(val: string): void;
2882
- registerOnChange(fn: (value: string) => void): void;
2883
- registerOnTouched(fn: () => void): void;
2884
- setDisabledState(isDisabled: boolean): void;
2885
- handleInput(event: Event, index: number): void;
2886
- handleKeydown(event: KeyboardEvent, index: number): void;
2887
- handlePaste(event: ClipboardEvent): void;
2888
- handleFocus(index: number): void;
2889
- handleBlur(): void;
2890
- /** Moves keyboard focus to the next empty digit (or the last one when full). */
2891
- focus(): void;
2892
- private sanitize;
2893
- private focusDigit;
2894
- static ɵfac: i0.ɵɵFactoryDeclaration<CodeInputComponent, never>;
2895
- static ɵcmp: i0.ɵɵComponentDeclaration<CodeInputComponent, "ea-code-input", never, {
2896
- "label": {
2897
- "alias": "label";
2997
+ "surfaceId": {
2998
+ "alias": "surfaceId";
2898
2999
  "required": false;
2899
3000
  "isSignal": true;
2900
3001
  };
2901
- "labelIcon": {
2902
- "alias": "labelIcon";
3002
+ "offset": {
3003
+ "alias": "offset";
2903
3004
  "required": false;
2904
3005
  "isSignal": true;
2905
3006
  };
2906
- "labelHelp": {
2907
- "alias": "labelHelp";
3007
+ "flip": {
3008
+ "alias": "flip";
2908
3009
  "required": false;
2909
3010
  "isSignal": true;
2910
3011
  };
2911
- "placeholder": {
2912
- "alias": "placeholder";
3012
+ "clamp": {
3013
+ "alias": "clamp";
2913
3014
  "required": false;
2914
3015
  "isSignal": true;
2915
3016
  };
2916
- "length": {
2917
- "alias": "length";
3017
+ "matchAnchorWidth": {
3018
+ "alias": "matchAnchorWidth";
2918
3019
  "required": false;
2919
3020
  "isSignal": true;
2920
3021
  };
2921
- "size": {
2922
- "alias": "size";
3022
+ "maxWidth": {
3023
+ "alias": "maxWidth";
2923
3024
  "required": false;
2924
3025
  "isSignal": true;
2925
3026
  };
2926
- "hint": {
2927
- "alias": "hint";
3027
+ "closeOnOutsideClick": {
3028
+ "alias": "closeOnOutsideClick";
2928
3029
  "required": false;
2929
3030
  "isSignal": true;
2930
3031
  };
2931
- "errorMsg": {
2932
- "alias": "errorMsg";
3032
+ "closeOnEscape": {
3033
+ "alias": "closeOnEscape";
2933
3034
  "required": false;
2934
3035
  "isSignal": true;
2935
3036
  };
2936
- "errorMessages": {
2937
- "alias": "errorMessages";
3037
+ "scrollBehavior": {
3038
+ "alias": "scrollBehavior";
2938
3039
  "required": false;
2939
3040
  "isSignal": true;
2940
3041
  };
2941
- "disabled": {
2942
- "alias": "disabled";
3042
+ "contextMenu": {
3043
+ "alias": "contextMenu";
2943
3044
  "required": false;
2944
3045
  "isSignal": true;
2945
3046
  };
2946
- "readonly": {
2947
- "alias": "readonly";
3047
+ }, {
3048
+ "closeRequested": "closeRequested";
3049
+ "openRequested": "openRequested";
3050
+ }, never, ["*"], true, never>;
3051
+ }
3052
+ /**
3053
+ * Where `[eaContextMenuTrigger]` opens its target: at the pointer (below the
3054
+ * focused element for a keyboard request), or at the target's own placement
3055
+ * against the host.
3056
+ */
3057
+ export type ContextMenuPosition = 'pointer' | 'anchor';
3058
+ /** An overlay `[eaContextMenuTrigger]` can open as a context menu. */
3059
+ export type ContextMenuTarget = MenuComponent | PopoverComponent;
3060
+ /**
3061
+ * Opens an `<ea-menu>` or `<ea-popover>` as the context menu of its host: on a
3062
+ * right-click or long press, or from the keyboard with Shift+F10 or the
3063
+ * context-menu key while focus is on the host or inside it. The browser's own
3064
+ * menu is suppressed only when the target opens, so a `null` target, a disabled
3065
+ * menu, or a request something inside the host has already handled leaves it be.
3066
+ *
3067
+ * A menu opens straight away. A popover's parent drives its `[open]` state, so it
3068
+ * emits `openRequested` with the point to bind to `[anchorPoint]` instead; give it
3069
+ * `[contextMenu]="true"` so it takes focus and dismisses like a context menu.
3070
+ *
3071
+ * @example
3072
+ * ```html
3073
+ * <article [eaContextMenuTrigger]="actions">Right-click me</article>
3074
+ * <ea-menu #actions>
3075
+ * <ea-menu-item>Rename</ea-menu-item>
3076
+ * </ea-menu>
3077
+ * ```
3078
+ */
3079
+ export declare class ContextMenuTriggerDirective {
3080
+ private readonly el;
3081
+ /** The menu or popover to open; `null` or `undefined` leaves the browser's own menu. */
3082
+ readonly target: import("@angular/core").InputSignal<ContextMenuTarget | null | undefined>;
3083
+ /**
3084
+ * Opens at the pointer, or below the focused element for a keyboard request;
3085
+ * `anchor` opens at the target's placement against the host instead.
3086
+ */
3087
+ readonly contextMenuPosition: import("@angular/core").InputSignal<ContextMenuPosition>;
3088
+ onContextMenu(event: MouseEvent): void;
3089
+ onKeydown(event: KeyboardEvent): void;
3090
+ private request;
3091
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuTriggerDirective, never>;
3092
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuTriggerDirective, "[eaContextMenuTrigger]", never, {
3093
+ "target": {
3094
+ "alias": "eaContextMenuTrigger";
2948
3095
  "required": false;
2949
3096
  "isSignal": true;
2950
3097
  };
2951
- "required": {
2952
- "alias": "required";
3098
+ "contextMenuPosition": {
3099
+ "alias": "contextMenuPosition";
2953
3100
  "required": false;
2954
3101
  "isSignal": true;
2955
3102
  };
2956
- "allowAllChars": {
2957
- "alias": "allowAllChars";
3103
+ }, {}, never, never, true, never>;
3104
+ }
3105
+ /** Vertical density preset for table rows and header cells. */
3106
+ export type DataTableDensity = 'compact' | 'comfortable' | 'spacious';
3107
+ /** Visual size of the table's text, paddings, and icons. */
3108
+ export type DataTableSize = EaSize;
3109
+ /** Sort direction; `null` means no sort is applied. */
3110
+ export type DataTableSortDirection = 'asc' | 'desc' | null;
3111
+ /** Column definition for the data table, including optional cell/header templates. */
3112
+ export interface DataTableColumn<T = Record<string, unknown>> {
3113
+ key: string;
3114
+ label: string;
3115
+ sortable?: boolean;
3116
+ align?: 'left' | 'center' | 'right';
3117
+ width?: string;
3118
+ format?: (value: unknown) => string;
3119
+ cellTemplate?: TemplateRef<{
3120
+ $implicit: T;
3121
+ value: unknown;
3122
+ }>;
3123
+ headerTemplate?: TemplateRef<{
3124
+ $implicit: DataTableColumn<T>;
3125
+ }>;
3126
+ /** Shown in this column's cells while the table is `loading`, in place of a skeleton bar. */
3127
+ placeholderTemplate?: TemplateRef<{
3128
+ $implicit: DataTableColumn<T>;
3129
+ index: number;
3130
+ }>;
3131
+ }
3132
+ /** A body row's context-menu request, as `rowContextMenu` emits it. */
3133
+ export interface DataTableRowContextMenuEvent<T = Record<string, unknown>> {
3134
+ /** The row's data. */
3135
+ readonly row: T;
3136
+ /** The row's `<tr>`, for anchoring a menu or popover to the row. */
3137
+ readonly rowElement: HTMLElement;
3138
+ /** Where to open a menu: the pointer, or below the focused row or cell for a keyboard request. */
3139
+ readonly point: PopoverAnchorPoint;
3140
+ /** The originating event; call `preventDefault()` on it to suppress the browser's own menu. */
3141
+ readonly event: MouseEvent | KeyboardEvent;
3142
+ }
3143
+ /** Current sort state: which column is sorted and in which direction. */
3144
+ export interface DataTableSortState {
3145
+ column: string;
3146
+ direction: DataTableSortDirection;
3147
+ }
3148
+ /**
3149
+ * Table for tabular data with sortable columns, sticky headers, and density
3150
+ * presets. Supports striping, borders, hoverable rows, and custom cell or
3151
+ * header templates via `ng-template`. Sort state is exposed as a two-way
3152
+ * `model()` binding.
3153
+ */
3154
+ export declare class DataTableComponent<T = Record<string, unknown>> {
3155
+ private readonly i18n;
3156
+ private readonly host;
3157
+ private readonly activeCell;
3158
+ private static readonly PAGE_JUMP;
3159
+ private keyboardRequestPending;
3160
+ readonly columns: import("@angular/core").InputSignal<DataTableColumn<T>[]>;
3161
+ readonly data: import("@angular/core").InputSignal<T[]>;
3162
+ /**
3163
+ * Rows holding each column's widest content. They are laid out but never shown,
3164
+ * so column widths come from them rather than from whichever rows are in `data`,
3165
+ * and stay put across pages and while data loads. Moot with `stickyHeader`, whose
3166
+ * columns share the width equally unless given a `width`.
3167
+ */
3168
+ readonly sizingRows: import("@angular/core").InputSignal<T[]>;
3169
+ /** Accessible name for the table, announced when it takes focus as a grid. */
3170
+ readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
3171
+ /** Visible caption rendered above the table; also names it for assistive technology. */
3172
+ readonly caption: import("@angular/core").InputSignal<string | undefined>;
3173
+ readonly trackBy: import("@angular/core").InputSignal<keyof T | undefined>;
3174
+ readonly density: import("@angular/core").InputSignal<DataTableDensity>;
3175
+ /** Visual size of the table; density paddings and icons scale with it. */
3176
+ readonly size: import("@angular/core").InputSignal<EaSize>;
3177
+ readonly stickyHeader: import("@angular/core").InputSignal<boolean>;
3178
+ readonly striped: import("@angular/core").InputSignal<boolean>;
3179
+ readonly hoverable: import("@angular/core").InputSignal<boolean>;
3180
+ readonly bordered: import("@angular/core").InputSignal<boolean>;
3181
+ /** Keeps every cell on one line, so a narrow viewport scrolls the table sideways instead of wrapping its text. */
3182
+ readonly nowrap: import("@angular/core").InputSignal<boolean>;
3183
+ readonly noDataText: import("@angular/core").InputSignal<string | undefined>;
3184
+ /** Enables grid keyboard navigation: `role="grid"`, roving tabindex, and arrow-key cell movement. */
3185
+ readonly navigable: import("@angular/core").InputSignal<boolean>;
3186
+ /** Marks body rows as clickable: shows a pointer cursor and emits `rowActivate` on click or Enter/Space. Independent of `hoverable` and `navigable`. */
3187
+ readonly clickable: import("@angular/core").InputSignal<boolean>;
3188
+ /**
3189
+ * Gives a row its link target, or `null` for none. Every cell of the row then holds
3190
+ * a real link, so the browser shows the target on hover and a modified click opens
3191
+ * it elsewhere, while a plain click still emits `rowActivate` for the app to route.
3192
+ * A row given `null` is inert: no link, hover highlight, focus or activation.
3193
+ */
3194
+ readonly rowHref: import("@angular/core").InputSignal<((row: T) => string | null) | undefined>;
3195
+ /**
3196
+ * Shows placeholder rows in place of the data while it loads, and marks the table
3197
+ * busy for assistive technology. A placeholder row stands as tall as a row of text,
3198
+ * and `sizingRows` keep the columns at their loaded widths.
3199
+ */
3200
+ readonly loading: import("@angular/core").InputSignal<boolean>;
3201
+ /** How many placeholder rows to show while `loading`. */
3202
+ readonly loadingRowCount: import("@angular/core").InputSignal<number>;
3203
+ readonly sort: import("@angular/core").ModelSignal<DataTableSortState>;
3204
+ /** Fires whenever the sort column or direction changes via header click. */
3205
+ readonly sorted: import("@angular/core").OutputEmitterRef<DataTableSortState>;
3206
+ /** Fires with the row's data when a body row is activated by click or Enter/Space while `clickable` is set. */
3207
+ readonly rowActivate: import("@angular/core").OutputEmitterRef<T>;
3208
+ /**
3209
+ * Fires when a body row's context menu is requested: by right-click or long press,
3210
+ * or by Shift+F10 or the context-menu key with focus in the row. Call
3211
+ * `event.preventDefault()` when opening a menu of your own.
3212
+ */
3213
+ readonly rowContextMenu: import("@angular/core").OutputEmitterRef<DataTableRowContextMenuEvent<T>>;
3214
+ readonly noDataTemplate: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
3215
+ /** Empty-state text, falling back to the active locale's translation. */
3216
+ readonly resolvedNoDataText: import("@angular/core").Signal<string>;
3217
+ readonly placeholderRows: import("@angular/core").Signal<number[]>;
3218
+ private readonly bodyRowCount;
3219
+ readonly hostClasses: import("@angular/core").Signal<{
3220
+ [x: string]: boolean;
3221
+ 'ea-data-table--sticky': boolean;
3222
+ 'ea-data-table--striped': boolean;
3223
+ 'ea-data-table--hoverable': boolean;
3224
+ 'ea-data-table--bordered': boolean;
3225
+ 'ea-data-table--nowrap': boolean;
3226
+ 'ea-data-table--navigable': boolean;
3227
+ 'ea-data-table--clickable': boolean;
3228
+ 'ea-data-table--linked': boolean;
3229
+ }>;
3230
+ constructor();
3231
+ readonly sortedData: import("@angular/core").Signal<T[]>;
3232
+ getCellValue(row: T, key: string): unknown;
3233
+ onHeaderClick(col: DataTableColumn<T>): void;
3234
+ trackByFn(_index: number, item: T): unknown;
3235
+ headerTabindex(colIndex: number): number | null;
3236
+ onHeaderKeydown(event: Event, col: DataTableColumn<T>): void;
3237
+ bodyCellTabindex(row: number, colIndex: number): number | null;
3238
+ isInert(row: T): boolean;
3239
+ rowTabindex(row: T): number | null;
3240
+ onRowActivate(row: T, event?: Event): void;
3241
+ onRowContextMenu(row: T, rowElement: HTMLElement, event: MouseEvent | KeyboardEvent): void;
3242
+ clearKeyboardRequest(): void;
3243
+ onCellFocus(row: number, col: number): void;
3244
+ onGridKeydown(event: KeyboardEvent): void;
3245
+ private focusCell;
3246
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableComponent<any>, never>;
3247
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent<any>, "ea-data-table", never, {
3248
+ "columns": {
3249
+ "alias": "columns";
3250
+ "required": true;
3251
+ "isSignal": true;
3252
+ };
3253
+ "data": {
3254
+ "alias": "data";
3255
+ "required": true;
3256
+ "isSignal": true;
3257
+ };
3258
+ "sizingRows": {
3259
+ "alias": "sizingRows";
2958
3260
  "required": false;
2959
3261
  "isSignal": true;
2960
3262
  };
2961
- "id": {
2962
- "alias": "id";
3263
+ "ariaLabel": {
3264
+ "alias": "aria-label";
2963
3265
  "required": false;
2964
3266
  "isSignal": true;
2965
3267
  };
2966
- "value": {
2967
- "alias": "value";
3268
+ "caption": {
3269
+ "alias": "caption";
3270
+ "required": false;
3271
+ "isSignal": true;
3272
+ };
3273
+ "trackBy": {
3274
+ "alias": "trackBy";
3275
+ "required": false;
3276
+ "isSignal": true;
3277
+ };
3278
+ "density": {
3279
+ "alias": "density";
3280
+ "required": false;
3281
+ "isSignal": true;
3282
+ };
3283
+ "size": {
3284
+ "alias": "size";
3285
+ "required": false;
3286
+ "isSignal": true;
3287
+ };
3288
+ "stickyHeader": {
3289
+ "alias": "stickyHeader";
3290
+ "required": false;
3291
+ "isSignal": true;
3292
+ };
3293
+ "striped": {
3294
+ "alias": "striped";
3295
+ "required": false;
3296
+ "isSignal": true;
3297
+ };
3298
+ "hoverable": {
3299
+ "alias": "hoverable";
3300
+ "required": false;
3301
+ "isSignal": true;
3302
+ };
3303
+ "bordered": {
3304
+ "alias": "bordered";
3305
+ "required": false;
3306
+ "isSignal": true;
3307
+ };
3308
+ "nowrap": {
3309
+ "alias": "nowrap";
3310
+ "required": false;
3311
+ "isSignal": true;
3312
+ };
3313
+ "noDataText": {
3314
+ "alias": "noDataText";
3315
+ "required": false;
3316
+ "isSignal": true;
3317
+ };
3318
+ "navigable": {
3319
+ "alias": "navigable";
3320
+ "required": false;
3321
+ "isSignal": true;
3322
+ };
3323
+ "clickable": {
3324
+ "alias": "clickable";
3325
+ "required": false;
3326
+ "isSignal": true;
3327
+ };
3328
+ "rowHref": {
3329
+ "alias": "rowHref";
3330
+ "required": false;
3331
+ "isSignal": true;
3332
+ };
3333
+ "loading": {
3334
+ "alias": "loading";
3335
+ "required": false;
3336
+ "isSignal": true;
3337
+ };
3338
+ "loadingRowCount": {
3339
+ "alias": "loadingRowCount";
3340
+ "required": false;
3341
+ "isSignal": true;
3342
+ };
3343
+ "sort": {
3344
+ "alias": "sort";
2968
3345
  "required": false;
2969
3346
  "isSignal": true;
2970
3347
  };
2971
3348
  }, {
2972
- "value": "valueChange";
2973
- "completed": "completed";
2974
- }, never, never, true, never>;
3349
+ "sort": "sortChange";
3350
+ "sorted": "sorted";
3351
+ "rowActivate": "rowActivate";
3352
+ "rowContextMenu": "rowContextMenu";
3353
+ }, ["noDataTemplate"], ["ea-paginator"], true, never>;
2975
3354
  }
2976
- /** Visual size of the date picker field. */
2977
- export type DatePickerSize = EaSize;
2978
- /** Locale-aware date format used for the displayed value. */
2979
- export type DatePickerFormat = 'short' | 'medium' | 'long';
2980
- /** First day of the week in the calendar grid (0 = Sunday, 1 = Monday). */
2981
- export type DatePickerWeekStart = 0 | 1;
2982
- /** Value accepted via `writeValue`: a `Date`, ISO/parseable string, or `null`. */
2983
- export type DatePickerValue = Date | string | null;
2984
- interface CalendarDay {
2985
- date: Date;
2986
- day: number;
2987
- isCurrentMonth: boolean;
2988
- isToday: boolean;
2989
- isSelected: boolean;
2990
- isDisabled: boolean;
2991
- isFocused: boolean;
3355
+ /** Visual size of each digit cell. */
3356
+ export type CodeInputSize = EaSize;
3357
+ /**
3358
+ * Verification code entry made up of one input per digit. Auto-advances on
3359
+ * input, supports paste of the full code at once, and integrates with Angular
3360
+ * forms via `ControlValueAccessor`.
3361
+ */
3362
+ export declare class CodeInputComponent implements ControlValueAccessor {
3363
+ readonly digitEls: import("@angular/core").Signal<readonly ElementRef<HTMLInputElement>[]>;
3364
+ protected readonly i18n: EagamiI18nService;
3365
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
3366
+ /** Optional icon component rendered before the label text. */
3367
+ readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
3368
+ /** Help revealed by an info button beside the label, as plain text or a template. */
3369
+ readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
3370
+ /** Placeholder text spread one character per cell (cell i shows character i). */
3371
+ readonly placeholder: import("@angular/core").InputSignal<string>;
3372
+ readonly length: import("@angular/core").InputSignal<number>;
3373
+ readonly size: import("@angular/core").InputSignal<EaSize>;
3374
+ readonly hint: import("@angular/core").InputSignal<string | undefined>;
3375
+ readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
3376
+ /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
3377
+ readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string>> | undefined>;
3378
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
3379
+ readonly readonly: import("@angular/core").InputSignal<boolean>;
3380
+ readonly required: import("@angular/core").InputSignal<boolean>;
3381
+ /** Allow any non-whitespace character; when false (default) only digits are accepted. */
3382
+ readonly allowAllChars: import("@angular/core").InputSignal<boolean>;
3383
+ readonly id: import("@angular/core").InputSignal<string>;
3384
+ readonly value: import("@angular/core").ModelSignal<string>;
3385
+ readonly focusedIndex: import("@angular/core").WritableSignal<number>;
3386
+ private readonly _formDisabled;
3387
+ /** Fires with the full code once every digit has been entered. */
3388
+ readonly completed: import("@angular/core").OutputEmitterRef<string>;
3389
+ private onChange;
3390
+ private onTouched;
3391
+ readonly isDisabled: import("@angular/core").Signal<boolean>;
3392
+ private readonly errorState;
3393
+ readonly errorText: import("@angular/core").Signal<string | null>;
3394
+ readonly hasError: import("@angular/core").Signal<boolean>;
3395
+ readonly showError: import("@angular/core").Signal<boolean>;
3396
+ readonly showHint: import("@angular/core").Signal<boolean>;
3397
+ readonly digits: import("@angular/core").Signal<string[]>;
3398
+ readonly placeholders: import("@angular/core").Signal<string[]>;
3399
+ readonly indices: import("@angular/core").Signal<number[]>;
3400
+ writeValue(val: string): void;
3401
+ registerOnChange(fn: (value: string) => void): void;
3402
+ registerOnTouched(fn: () => void): void;
3403
+ setDisabledState(isDisabled: boolean): void;
3404
+ handleInput(event: Event, index: number): void;
3405
+ handleKeydown(event: KeyboardEvent, index: number): void;
3406
+ handlePaste(event: ClipboardEvent): void;
3407
+ handleFocus(index: number): void;
3408
+ handleBlur(): void;
3409
+ /** Moves keyboard focus to the next empty digit (or the last one when full). */
3410
+ focus(): void;
3411
+ private sanitize;
3412
+ private focusDigit;
3413
+ static ɵfac: i0.ɵɵFactoryDeclaration<CodeInputComponent, never>;
3414
+ static ɵcmp: i0.ɵɵComponentDeclaration<CodeInputComponent, "ea-code-input", never, {
3415
+ "label": {
3416
+ "alias": "label";
3417
+ "required": false;
3418
+ "isSignal": true;
3419
+ };
3420
+ "labelIcon": {
3421
+ "alias": "labelIcon";
3422
+ "required": false;
3423
+ "isSignal": true;
3424
+ };
3425
+ "labelHelp": {
3426
+ "alias": "labelHelp";
3427
+ "required": false;
3428
+ "isSignal": true;
3429
+ };
3430
+ "placeholder": {
3431
+ "alias": "placeholder";
3432
+ "required": false;
3433
+ "isSignal": true;
3434
+ };
3435
+ "length": {
3436
+ "alias": "length";
3437
+ "required": false;
3438
+ "isSignal": true;
3439
+ };
3440
+ "size": {
3441
+ "alias": "size";
3442
+ "required": false;
3443
+ "isSignal": true;
3444
+ };
3445
+ "hint": {
3446
+ "alias": "hint";
3447
+ "required": false;
3448
+ "isSignal": true;
3449
+ };
3450
+ "errorMsg": {
3451
+ "alias": "errorMsg";
3452
+ "required": false;
3453
+ "isSignal": true;
3454
+ };
3455
+ "errorMessages": {
3456
+ "alias": "errorMessages";
3457
+ "required": false;
3458
+ "isSignal": true;
3459
+ };
3460
+ "disabled": {
3461
+ "alias": "disabled";
3462
+ "required": false;
3463
+ "isSignal": true;
3464
+ };
3465
+ "readonly": {
3466
+ "alias": "readonly";
3467
+ "required": false;
3468
+ "isSignal": true;
3469
+ };
3470
+ "required": {
3471
+ "alias": "required";
3472
+ "required": false;
3473
+ "isSignal": true;
3474
+ };
3475
+ "allowAllChars": {
3476
+ "alias": "allowAllChars";
3477
+ "required": false;
3478
+ "isSignal": true;
3479
+ };
3480
+ "id": {
3481
+ "alias": "id";
3482
+ "required": false;
3483
+ "isSignal": true;
3484
+ };
3485
+ "value": {
3486
+ "alias": "value";
3487
+ "required": false;
3488
+ "isSignal": true;
3489
+ };
3490
+ }, {
3491
+ "value": "valueChange";
3492
+ "completed": "completed";
3493
+ }, never, never, true, never>;
3494
+ }
3495
+ /** Visual size of the date picker field. */
3496
+ export type DatePickerSize = EaSize;
3497
+ /** Locale-aware date format used for the displayed value. */
3498
+ export type DatePickerFormat = 'short' | 'medium' | 'long';
3499
+ /** First day of the week in the calendar grid (0 = Sunday, 1 = Monday). */
3500
+ export type DatePickerWeekStart = 0 | 1;
3501
+ /** Value accepted via `writeValue`: a `Date`, ISO/parseable string, or `null`. */
3502
+ export type DatePickerValue = Date | string | null;
3503
+ interface CalendarDay {
3504
+ date: Date;
3505
+ day: number;
3506
+ isCurrentMonth: boolean;
3507
+ isToday: boolean;
3508
+ isSelected: boolean;
3509
+ isDisabled: boolean;
3510
+ isFocused: boolean;
2992
3511
  }
2993
3512
  /**
2994
3513
  * Date field with a calendar popover. The date can be typed straight into the
@@ -3234,6 +3753,10 @@ export type DialogWidth = EaWidth;
3234
3753
  * `--ea-dialog-body-padding`, and `--ea-dialog-status-padding`; an
3235
3754
  * edge-to-edge media surface zeroes the inset, radius, and paddings.
3236
3755
  *
3756
+ * The first dialog rendered by a component opened through `DialogService`
3757
+ * answers to its `DialogRef`: it opens as soon as it renders, and a dismissal
3758
+ * closes the ref with `undefined`.
3759
+ *
3237
3760
  * Specs running under jsdom need `installNativeDialogShim()` from
3238
3761
  * `@eagami/ui/testing` before opening one.
3239
3762
  */
@@ -3246,6 +3769,7 @@ export declare class DialogComponent implements AfterContentChecked {
3246
3769
  private readonly press;
3247
3770
  private readonly scrollLock;
3248
3771
  private holdsScroll;
3772
+ private boundRef;
3249
3773
  readonly width: import("@angular/core").InputSignal<EaWidth>;
3250
3774
  /**
3251
3775
  * Modal by default: shown via `showModal()`, with the backdrop overlay and
@@ -3289,6 +3813,7 @@ export declare class DialogComponent implements AfterContentChecked {
3289
3813
  protected readonly hasHeader: import("@angular/core").WritableSignal<boolean>;
3290
3814
  ngAfterContentChecked(): void;
3291
3815
  constructor();
3816
+ private closeSurface;
3292
3817
  private holdScroll;
3293
3818
  private dropScroll;
3294
3819
  handleClose(): void;
@@ -3357,6 +3882,64 @@ export declare class DialogComponent implements AfterContentChecked {
3357
3882
  "closeRequested": "closeRequested";
3358
3883
  }, never, ["[slot=header]", "*", "[slot=status]", "[slot=footer]"], true, never>;
3359
3884
  }
3885
+ /**
3886
+ * Handle on one dialog opened through `DialogService`. The component it opened
3887
+ * injects it to close with an answer, which settles `result` for whoever
3888
+ * opened it; a dismissal (Escape, the backdrop, the close button) closes it
3889
+ * with `undefined`. Construct one directly to stand in for the service in a
3890
+ * spec.
3891
+ */
3892
+ export declare class DialogRef<R = unknown> {
3893
+ private readonly isClosed;
3894
+ private settler;
3895
+ /** Whether the dialog has closed. */
3896
+ readonly closed: Signal<boolean>;
3897
+ /**
3898
+ * Settles when the dialog closes: with the value passed to `close`, or with
3899
+ * `undefined` when it was dismissed.
3900
+ */
3901
+ readonly result: Promise<R | undefined>;
3902
+ /** Closes the dialog and settles `result` with `value`. Only the first call has any effect. */
3903
+ close(value?: R): void;
3904
+ }
3905
+ /** Options for {@link DialogService.open}. */
3906
+ export interface DialogOptions {
3907
+ /** Values for the component's inputs, keyed by input name and set before it first renders. */
3908
+ inputs?: Readonly<Record<string, unknown>>;
3909
+ /**
3910
+ * Injector the component resolves its dependencies through, such as the
3911
+ * opener's own so providers scoped to it reach the dialog. Defaults to the
3912
+ * application's root injector.
3913
+ */
3914
+ injector?: Injector;
3915
+ }
3916
+ /**
3917
+ * Opens dialogs from code. `open` renders a component at the end of `<body>`
3918
+ * and returns its {@link DialogRef}. The component lays out its own
3919
+ * `<ea-dialog>`, which shows itself straight away and closes the ref with
3920
+ * `undefined` on any dismissal, and injects the ref to close it with an
3921
+ * answer. Closing the ref takes the component down and hands focus back to
3922
+ * wherever it was when the dialog opened. A dialog opened while another is up
3923
+ * stacks on top of it.
3924
+ *
3925
+ * On the server nothing is rendered and the ref closes at once.
3926
+ */
3927
+ export declare class DialogService {
3928
+ private readonly appRef;
3929
+ private readonly document;
3930
+ private readonly injector;
3931
+ private readonly isBrowser;
3932
+ private readonly openDialogs;
3933
+ /** Dialogs currently open, oldest first. */
3934
+ readonly dialogs: Signal<readonly DialogRef<unknown>[]>;
3935
+ constructor();
3936
+ /** Opens `component` as a dialog and returns its ref, whose `result` settles when it closes. */
3937
+ open<R = unknown>(component: Type<unknown>, options?: DialogOptions): DialogRef<R>;
3938
+ /** Closes every open dialog, newest first, settling each `result` with `undefined`. */
3939
+ closeAll(): void;
3940
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
3941
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
3942
+ }
3360
3943
  /** Orientation of the divider rule. */
3361
3944
  export type DividerOrientation = 'horizontal' | 'vertical';
3362
3945
  /**
@@ -4861,538 +5444,188 @@ export declare class LineChartComponent {
4861
5444
  private isValue;
4862
5445
  private yScale;
4863
5446
  private atPosition;
4864
- private xLabelCandidates;
4865
- private labelsFit;
4866
- private xLabels;
4867
- private widestXLabel;
4868
- protected onGestureStart(event: Event): void;
4869
- protected onGestureChange(event: Event): void;
4870
- protected onGestureEnd(): void;
4871
- private zoomTo;
4872
- private minSpan;
4873
- private unitsPerPx;
4874
- private panTo;
4875
- private endDrag;
4876
- private holdTap;
4877
- private endTapHold;
4878
- private reveal;
4879
- private indexAt;
4880
- private valueAt;
4881
- private firstPoint;
4882
- private nearestValid;
4883
- private eventFor;
4884
- private setActive;
4885
- static ɵfac: i0.ɵɵFactoryDeclaration<LineChartComponent, never>;
4886
- static ɵcmp: i0.ɵɵComponentDeclaration<LineChartComponent, "ea-line-chart", never, {
4887
- "labels": {
4888
- "alias": "labels";
4889
- "required": false;
4890
- "isSignal": true;
4891
- };
4892
- "series": {
4893
- "alias": "series";
4894
- "required": false;
4895
- "isSignal": true;
4896
- };
4897
- "xValues": {
4898
- "alias": "xValues";
4899
- "required": false;
4900
- "isSignal": true;
4901
- };
4902
- "xTicks": {
4903
- "alias": "xTicks";
4904
- "required": false;
4905
- "isSignal": true;
4906
- };
4907
- "visibleXSpan": {
4908
- "alias": "visibleXSpan";
4909
- "required": false;
4910
- "isSignal": true;
4911
- };
4912
- "curve": {
4913
- "alias": "curve";
4914
- "required": false;
4915
- "isSignal": true;
4916
- };
4917
- "showArea": {
4918
- "alias": "showArea";
4919
- "required": false;
4920
- "isSignal": true;
4921
- };
4922
- "showPoints": {
4923
- "alias": "showPoints";
4924
- "required": false;
4925
- "isSignal": true;
4926
- };
4927
- "showGrid": {
4928
- "alias": "showGrid";
4929
- "required": false;
4930
- "isSignal": true;
4931
- };
4932
- "showLegend": {
4933
- "alias": "showLegend";
4934
- "required": false;
4935
- "isSignal": true;
4936
- };
4937
- "yMin": {
4938
- "alias": "yMin";
4939
- "required": false;
4940
- "isSignal": true;
4941
- };
4942
- "yMax": {
4943
- "alias": "yMax";
4944
- "required": false;
4945
- "isSignal": true;
4946
- };
4947
- "xLabelOrientation": {
4948
- "alias": "xLabelOrientation";
4949
- "required": false;
4950
- "isSignal": true;
4951
- };
4952
- "showAxisBreak": {
4953
- "alias": "showAxisBreak";
4954
- "required": false;
4955
- "isSignal": true;
4956
- };
4957
- "height": {
4958
- "alias": "height";
4959
- "required": false;
4960
- "isSignal": true;
4961
- };
4962
- "size": {
4963
- "alias": "size";
4964
- "required": false;
4965
- "isSignal": true;
4966
- };
4967
- "animation": {
4968
- "alias": "animation";
4969
- "required": false;
4970
- "isSignal": true;
4971
- };
4972
- "animationDuration": {
4973
- "alias": "animationDuration";
4974
- "required": false;
4975
- "isSignal": true;
4976
- };
4977
- "formatValue": {
4978
- "alias": "formatValue";
4979
- "required": false;
4980
- "isSignal": true;
4981
- };
4982
- "ariaLabel": {
4983
- "alias": "aria-label";
4984
- "required": false;
4985
- "isSignal": true;
4986
- };
4987
- }, {
4988
- "pointClick": "pointClick";
4989
- "activePointChange": "activePointChange";
4990
- "visibleRangeChange": "visibleRangeChange";
4991
- }, never, never, true, never>;
4992
- }
4993
- /** Placement of the menu list relative to its trigger. */
4994
- export type MenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
4995
- /** Visual size of the menu, shared by all of its items. */
4996
- export type MenuSize = EaSize;
4997
- /**
4998
- * Popup action menu attached to any focusable element via the
4999
- * `[eaMenuTrigger]` directive. Supports keyboard navigation
5000
- * (arrow keys, Home/End), closes on outside click or Escape, and restores
5001
- * focus to the trigger on close. Positioning, dismissal, and SSR-safe scroll
5002
- * handling are provided by `<ea-popover>`.
5003
- */
5004
- export declare class MenuComponent {
5005
- private readonly injector;
5006
- private readonly i18n;
5007
- private readonly listEl;
5008
- readonly placement: import("@angular/core").InputSignal<MenuPlacement>;
5009
- /** Visual size of the menu; every item inherits it. */
5010
- readonly size: import("@angular/core").InputSignal<EaSize>;
5011
- /** Max height of the scrollable list as a CSS length; tall menus scroll past it. */
5012
- readonly maxHeight: import("@angular/core").InputSignal<string>;
5013
- readonly disabled: import("@angular/core").InputSignal<boolean>;
5014
- readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
5015
- readonly id: import("@angular/core").InputSignal<string>;
5016
- /** Accessible label for the menu, falling back to the active locale. */
5017
- readonly resolvedAriaLabel: import("@angular/core").Signal<string>;
5018
- readonly open: import("@angular/core").ModelSignal<boolean>;
5019
- /** Fires when the menu opens. */
5020
- readonly opened: import("@angular/core").OutputEmitterRef<void>;
5021
- /** Fires when the menu closes. */
5022
- readonly closed: import("@angular/core").OutputEmitterRef<void>;
5023
- /** Trigger element currently anchoring the menu. Signal-typed so `<ea-popover>` reacts when it changes. */
5024
- protected readonly triggerEl: import("@angular/core").WritableSignal<HTMLElement | undefined>;
5025
- readonly activeItemId: import("@angular/core").WritableSignal<string | null>;
5026
- constructor();
5027
- /** Toggles the menu open state, anchoring it to the given trigger element. */
5028
- toggleAt(triggerEl: HTMLElement): void;
5029
- /** Opens the menu anchored to the given trigger element and focuses the first item. */
5030
- openAt(triggerEl: HTMLElement): void;
5031
- /**
5032
- * Closes the menu if it is open. Pass `restoreFocus: true` to return focus
5033
- * to the trigger element (used when closing via Escape or item activation;
5034
- * not used on outside click, where the user has chosen a new focus target).
5035
- */
5036
- close(restoreFocus?: boolean): void;
5037
- /** Called by `<ea-popover>` when the user clicks outside the menu. */
5038
- onPopoverCloseRequested(): void;
5039
- private getEnabledItems;
5040
- /**
5041
- * `preventScroll: true` is critical here. The menu list is `position: fixed`
5042
- * but its DOM ancestor is whatever element hosts the menu (often a sticky
5043
- * header). When `.focus()` is called without `preventScroll`, Chromium uses
5044
- * the focused element's DOM-tree position (inside the sticky ancestor) rather
5045
- * than its rendered fixed position to decide whether to scroll, which on a
5046
- * scrolled page nudges the document up by a few pixels per open, until the
5047
- * trigger reaches the top edge. The same guard applies to keyboard navigation
5048
- * and restoring focus on close.
5049
- */
5050
- private focusFirstItem;
5051
- private focusItem;
5052
- onKeydown(event: KeyboardEvent): void;
5053
- onEscape(event: Event): void;
5054
- static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, never>;
5055
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "ea-menu", never, {
5056
- "placement": {
5057
- "alias": "placement";
5058
- "required": false;
5059
- "isSignal": true;
5060
- };
5061
- "size": {
5062
- "alias": "size";
5063
- "required": false;
5064
- "isSignal": true;
5065
- };
5066
- "maxHeight": {
5067
- "alias": "maxHeight";
5068
- "required": false;
5069
- "isSignal": true;
5070
- };
5071
- "disabled": {
5072
- "alias": "disabled";
5073
- "required": false;
5074
- "isSignal": true;
5075
- };
5076
- "ariaLabel": {
5077
- "alias": "aria-label";
5078
- "required": false;
5079
- "isSignal": true;
5080
- };
5081
- "id": {
5082
- "alias": "id";
5083
- "required": false;
5084
- "isSignal": true;
5085
- };
5086
- "open": {
5087
- "alias": "open";
5088
- "required": false;
5089
- "isSignal": true;
5090
- };
5091
- }, {
5092
- "open": "openChange";
5093
- "opened": "opened";
5094
- "closed": "closed";
5095
- }, never, ["*"], true, never>;
5096
- }
5097
- /** Visual style of a menu item; `danger` for destructive actions. */
5098
- export type MenuItemVariant = 'default' | 'danger';
5099
- /**
5100
- * Selectable row inside an `ea-menu`. Supports leading icons via the `icon`
5101
- * content slot, a disabled state, and a `danger` variant for destructive
5102
- * actions. Inherits its size from the parent menu, and activating an item
5103
- * closes that menu.
5104
- */
5105
- export declare class MenuItemComponent {
5106
- private readonly menu;
5107
- protected readonly itemId: string;
5108
- protected readonly tabIndex: import("@angular/core").Signal<0 | -1>;
5109
- readonly disabled: import("@angular/core").InputSignal<boolean>;
5110
- readonly variant: import("@angular/core").InputSignal<MenuItemVariant>;
5111
- /** Fires when the item is activated; the parent menu closes immediately afterwards. */
5112
- readonly clicked: import("@angular/core").OutputEmitterRef<MouseEvent>;
5113
- handleClick(event: MouseEvent): void;
5114
- static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemComponent, never>;
5115
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemComponent, "ea-menu-item", never, {
5116
- "disabled": {
5117
- "alias": "disabled";
5118
- "required": false;
5119
- "isSignal": true;
5120
- };
5121
- "variant": {
5122
- "alias": "variant";
5123
- "required": false;
5124
- "isSignal": true;
5125
- };
5126
- }, {
5127
- "clicked": "clicked";
5128
- }, never, ["[slot=icon]", "*"], true, never>;
5129
- }
5130
- /**
5131
- * Wires a focusable host element (typically a button) to an `ea-menu`,
5132
- * handling click and keyboard activation (ArrowDown/Enter/Space to open,
5133
- * Escape to close) and applying the appropriate ARIA attributes.
5134
- */
5135
- export declare class MenuTriggerDirective {
5136
- private readonly el;
5137
- private readonly renderer;
5138
- readonly menu: import("@angular/core").InputSignal<MenuComponent>;
5139
- constructor();
5140
- handleClick(): void;
5141
- handleKeydown(event: KeyboardEvent): void;
5142
- static ɵfac: i0.ɵɵFactoryDeclaration<MenuTriggerDirective, never>;
5143
- static ɵdir: i0.ɵɵDirectiveDeclaration<MenuTriggerDirective, "[eaMenuTrigger]", never, {
5144
- "menu": {
5145
- "alias": "eaMenuTrigger";
5146
- "required": true;
5147
- "isSignal": true;
5148
- };
5149
- }, {}, never, never, true, never>;
5150
- }
5151
- /**
5152
- * Placement of the popover relative to its anchor. Each placement names the
5153
- * side of the anchor the popover attaches to, optionally followed by a corner
5154
- * suffix (`-start` or `-end`) that decides the alignment along the perpendicular
5155
- * axis. The plain side names (`top`, `bottom`, `left`, `right`) centre the
5156
- * popover on that axis.
5157
- */
5158
- export type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right';
5159
- export interface PopoverPositionResult {
5160
- /** Top coordinate in viewport (px); pairs with `position: fixed`. */
5161
- readonly top: number;
5162
- /** Left coordinate in viewport (px). */
5163
- readonly left: number;
5164
- /** Width hint when the popover should match the anchor's width. */
5165
- readonly width?: number;
5166
- /** The anchor's measured width, for a caller capping the popover against it. */
5167
- readonly anchorWidth: number;
5168
- /** Effective placement after any flip logic ran. */
5169
- readonly placement: PopoverPlacement;
5170
- }
5171
- export interface PopoverPositionOptions {
5172
- readonly placement: PopoverPlacement;
5173
- /** Gap in px between the anchor and the popover. Default 4. */
5174
- readonly offset?: number;
5175
- /** Flip to the opposite side when the requested side overflows the viewport. Default true. */
5176
- readonly flip?: boolean;
5177
- /** Clamp inside the viewport when the popover still overflows after any flip. Default true. */
5178
- readonly clamp?: boolean;
5179
- /** Margin from the viewport edge in px when clamping. Default 8. */
5180
- readonly margin?: number;
5181
- /** Set the popover's width to match the anchor's. Useful for dropdown-style menus. */
5182
- readonly matchAnchorWidth?: boolean;
5183
- /** Right-to-left context. Swaps `-start`/`-end` alignment so they track the reading direction. */
5184
- readonly rtl?: boolean;
5185
- }
5186
- interface Rect {
5187
- readonly width: number;
5188
- readonly height: number;
5189
- }
5190
- interface AnchorRect extends Rect {
5191
- readonly top: number;
5192
- readonly bottom: number;
5193
- readonly left: number;
5194
- readonly right: number;
5195
- }
5196
- interface Viewport {
5197
- readonly width: number;
5198
- readonly height: number;
5199
- }
5200
- /**
5201
- * Computes the viewport-space top/left for a popover anchored to `anchorRect`,
5202
- * applying optional flip-on-overflow and edge-clamp logic. Pure function, no
5203
- * DOM access. Both `<ea-popover>` and `[eaTooltip]` consume this.
5204
- *
5205
- * @param anchorRect The anchor element's `getBoundingClientRect()`.
5206
- * @param popoverRect Width and height of the popover (post-render measurement).
5207
- * @param viewport Viewport dimensions (`window.innerWidth/Height`).
5208
- * @param options Placement and behavior flags.
5209
- */
5210
- export declare function computePopoverPosition(anchorRect: AnchorRect, popoverRect: Rect, viewport: Viewport, options: PopoverPositionOptions): PopoverPositionResult;
5211
- /** ARIA role to apply to the popover surface. */
5212
- export type PopoverRole = 'menu' | 'listbox' | 'dialog' | 'tooltip' | 'grid';
5213
- /**
5214
- * How the popover should respond to scroll / resize events while open.
5215
- *
5216
- * - `reposition` (default): re-measure the anchor and update the popover's
5217
- * coordinates so it stays attached. Suitable for menus and tooltips.
5218
- * - `close`: request close. Suitable for dropdown lists and the colour-picker
5219
- * popover, where re-tracking a tall popover during a scroll feels intrusive.
5220
- * - `ignore`: do nothing. The popover stays at its initial coordinates and
5221
- * may visually detach from a scrolling anchor; useful when the anchor is
5222
- * guaranteed not to move (e.g. inside a non-scrolling region).
5223
- */
5224
- export type PopoverScrollBehavior = 'reposition' | 'close' | 'ignore';
5225
- /** Width cap for a popover surface: px, or the anchor's own width. */
5226
- export type PopoverMaxWidth = number | 'anchor';
5227
- /**
5228
- * Floating-element primitive. Renders projected content as `position: fixed`
5229
- * anchored to an external element, with flip-on-overflow, viewport clamping,
5230
- * outside-click and Escape dismissal, and SSR-safe scroll / resize handling.
5231
- *
5232
- * The primitive is intentionally low-level: a parent component drives the
5233
- * `[open]` state and listens for `(closeRequested)` to mirror it back. Internal
5234
- * library components (`<ea-menu>`, `<ea-dropdown>`, `<ea-color-picker>`,
5235
- * `<ea-date-picker>`, `[eaTooltip]`) compose on top of it; downstream apps can
5236
- * use it directly to build their own popover-based UI.
5237
- *
5238
- * @example
5239
- * ```html
5240
- * <button #trigger (click)="open.set(!open())">Open</button>
5241
- * <ea-popover [anchor]="trigger" [open]="open()" (closeRequested)="open.set(false)">
5242
- * <div>Popover content</div>
5243
- * </ea-popover>
5244
- * ```
5245
- */
5246
- export declare class PopoverComponent {
5247
- private readonly destroyRef;
5248
- private readonly press;
5249
- private readonly surfaceEl;
5250
- /** Anchor element the popover positions itself against. */
5251
- readonly anchor: import("@angular/core").InputSignal<HTMLElement | ElementRef<HTMLElement> | undefined>;
5252
- /** Whether the popover is currently open. */
5253
- readonly open: import("@angular/core").InputSignal<boolean>;
5254
- /** Where the popover attaches relative to the anchor. */
5255
- readonly placement: import("@angular/core").InputSignal<PopoverPlacement>;
5256
- /** ARIA role applied to the popover surface. */
5257
- readonly role: import("@angular/core").InputSignal<PopoverRole>;
5258
- /** Accessible label. Falls back to nothing; consumers should provide one when no visible heading is in the popover. */
5259
- readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
5260
- /** Id of the element that labels the popover surface, forwarded as `aria-labelledby`. */
5261
- readonly ariaLabelledby: import("@angular/core").InputSignal<string | undefined>;
5262
- /** Keep Tab and Shift+Tab cycling within the surface while open (dialog pattern). */
5263
- readonly trapFocus: import("@angular/core").InputSignal<boolean>;
5264
- /** DOM id for the surface so trigger elements can reference it via aria-controls. */
5265
- readonly surfaceId: import("@angular/core").InputSignal<string>;
5266
- /**
5267
- * Gap in px between the anchor and the popover. Defaults to 2 so an open panel
5268
- * clears the anchor's active focus ring instead of sitting flush over it.
5269
- */
5270
- readonly offset: import("@angular/core").InputSignal<number>;
5271
- /** Flip to the opposite side when the requested side overflows the viewport. */
5272
- readonly flip: import("@angular/core").InputSignal<boolean>;
5273
- /** Clamp the popover inside the viewport when it would otherwise overflow. */
5274
- readonly clamp: import("@angular/core").InputSignal<boolean>;
5275
- /** Set the popover's `min-width` to match the anchor's width (dropdown pattern). */
5276
- readonly matchAnchorWidth: import("@angular/core").InputSignal<boolean>;
5277
- /**
5278
- * Widest the surface may grow: a px value, or `anchor` to cap it at the
5279
- * anchor's own width so long content truncates instead of widening the panel.
5280
- */
5281
- readonly maxWidth: import("@angular/core").InputSignal<PopoverMaxWidth | undefined>;
5282
- /** Close on click outside the popover and the anchor. */
5283
- readonly closeOnOutsideClick: import("@angular/core").InputSignal<boolean>;
5284
- /** Close on Escape. */
5285
- readonly closeOnEscape: import("@angular/core").InputSignal<boolean>;
5286
- /** What to do on scroll / resize while open. */
5287
- readonly scrollBehavior: import("@angular/core").InputSignal<PopoverScrollBehavior>;
5288
- /** Requested close. The parent should mirror this into `[open]`. */
5289
- readonly closeRequested: import("@angular/core").OutputEmitterRef<void>;
5290
- private readonly position;
5291
- private latched;
5292
- /** True placement after flip, for class-based styling (e.g. arrow direction). */
5293
- readonly effectivePlacement: import("@angular/core").Signal<PopoverPlacement>;
5294
- /** Latches true once the post-rAF reposition has run, so the surface is
5295
- * only revealed after its dimensions are guaranteed stable. Reset on close. */
5296
- private readonly stable;
5297
- /** True once the first `reposition()` has resolved a placement on a
5298
- * laid-out surface. Drives the `--positioned` class. */
5299
- readonly isPositioned: import("@angular/core").Signal<boolean>;
5300
- /** Class list for the surface. Computed in TS so the placement key (with
5301
- * its interpolated suffix) and the positioned modifier compose cleanly. */
5302
- readonly surfaceClass: import("@angular/core").Signal<string>;
5303
- /** Inline style applied to the surface element. */
5304
- readonly surfaceStyle: import("@angular/core").Signal<Record<string, string>>;
5305
- constructor();
5306
- private resolveAnchor;
5307
- private reposition;
5308
- onDocumentClick(event: MouseEvent): void;
5309
- onSurfaceKeydown(event: KeyboardEvent): void;
5310
- onEscape(event: Event): void;
5311
- static ɵfac: i0.ɵɵFactoryDeclaration<PopoverComponent, never>;
5312
- static ɵcmp: i0.ɵɵComponentDeclaration<PopoverComponent, "ea-popover", never, {
5313
- "anchor": {
5314
- "alias": "anchor";
5315
- "required": true;
5447
+ private xLabelCandidates;
5448
+ private labelsFit;
5449
+ private xLabels;
5450
+ private widestXLabel;
5451
+ protected onGestureStart(event: Event): void;
5452
+ protected onGestureChange(event: Event): void;
5453
+ protected onGestureEnd(): void;
5454
+ private zoomTo;
5455
+ private minSpan;
5456
+ private unitsPerPx;
5457
+ private panTo;
5458
+ private endDrag;
5459
+ private holdTap;
5460
+ private endTapHold;
5461
+ private reveal;
5462
+ private indexAt;
5463
+ private valueAt;
5464
+ private firstPoint;
5465
+ private nearestValid;
5466
+ private eventFor;
5467
+ private setActive;
5468
+ static ɵfac: i0.ɵɵFactoryDeclaration<LineChartComponent, never>;
5469
+ static ɵcmp: i0.ɵɵComponentDeclaration<LineChartComponent, "ea-line-chart", never, {
5470
+ "labels": {
5471
+ "alias": "labels";
5472
+ "required": false;
5316
5473
  "isSignal": true;
5317
5474
  };
5318
- "open": {
5319
- "alias": "open";
5475
+ "series": {
5476
+ "alias": "series";
5320
5477
  "required": false;
5321
5478
  "isSignal": true;
5322
5479
  };
5323
- "placement": {
5324
- "alias": "placement";
5480
+ "xValues": {
5481
+ "alias": "xValues";
5325
5482
  "required": false;
5326
5483
  "isSignal": true;
5327
5484
  };
5328
- "role": {
5329
- "alias": "role";
5485
+ "xTicks": {
5486
+ "alias": "xTicks";
5330
5487
  "required": false;
5331
5488
  "isSignal": true;
5332
5489
  };
5333
- "ariaLabel": {
5334
- "alias": "aria-label";
5490
+ "visibleXSpan": {
5491
+ "alias": "visibleXSpan";
5335
5492
  "required": false;
5336
5493
  "isSignal": true;
5337
5494
  };
5338
- "ariaLabelledby": {
5339
- "alias": "aria-labelledby";
5495
+ "curve": {
5496
+ "alias": "curve";
5340
5497
  "required": false;
5341
5498
  "isSignal": true;
5342
5499
  };
5343
- "trapFocus": {
5344
- "alias": "trapFocus";
5500
+ "showArea": {
5501
+ "alias": "showArea";
5345
5502
  "required": false;
5346
5503
  "isSignal": true;
5347
5504
  };
5348
- "surfaceId": {
5349
- "alias": "surfaceId";
5505
+ "showPoints": {
5506
+ "alias": "showPoints";
5350
5507
  "required": false;
5351
5508
  "isSignal": true;
5352
5509
  };
5353
- "offset": {
5354
- "alias": "offset";
5510
+ "showGrid": {
5511
+ "alias": "showGrid";
5355
5512
  "required": false;
5356
5513
  "isSignal": true;
5357
5514
  };
5358
- "flip": {
5359
- "alias": "flip";
5515
+ "showLegend": {
5516
+ "alias": "showLegend";
5360
5517
  "required": false;
5361
5518
  "isSignal": true;
5362
5519
  };
5363
- "clamp": {
5364
- "alias": "clamp";
5520
+ "yMin": {
5521
+ "alias": "yMin";
5365
5522
  "required": false;
5366
5523
  "isSignal": true;
5367
5524
  };
5368
- "matchAnchorWidth": {
5369
- "alias": "matchAnchorWidth";
5525
+ "yMax": {
5526
+ "alias": "yMax";
5370
5527
  "required": false;
5371
5528
  "isSignal": true;
5372
5529
  };
5373
- "maxWidth": {
5374
- "alias": "maxWidth";
5530
+ "xLabelOrientation": {
5531
+ "alias": "xLabelOrientation";
5375
5532
  "required": false;
5376
5533
  "isSignal": true;
5377
5534
  };
5378
- "closeOnOutsideClick": {
5379
- "alias": "closeOnOutsideClick";
5535
+ "showAxisBreak": {
5536
+ "alias": "showAxisBreak";
5380
5537
  "required": false;
5381
5538
  "isSignal": true;
5382
5539
  };
5383
- "closeOnEscape": {
5384
- "alias": "closeOnEscape";
5540
+ "height": {
5541
+ "alias": "height";
5385
5542
  "required": false;
5386
5543
  "isSignal": true;
5387
5544
  };
5388
- "scrollBehavior": {
5389
- "alias": "scrollBehavior";
5545
+ "size": {
5546
+ "alias": "size";
5547
+ "required": false;
5548
+ "isSignal": true;
5549
+ };
5550
+ "animation": {
5551
+ "alias": "animation";
5552
+ "required": false;
5553
+ "isSignal": true;
5554
+ };
5555
+ "animationDuration": {
5556
+ "alias": "animationDuration";
5557
+ "required": false;
5558
+ "isSignal": true;
5559
+ };
5560
+ "formatValue": {
5561
+ "alias": "formatValue";
5562
+ "required": false;
5563
+ "isSignal": true;
5564
+ };
5565
+ "ariaLabel": {
5566
+ "alias": "aria-label";
5390
5567
  "required": false;
5391
5568
  "isSignal": true;
5392
5569
  };
5393
5570
  }, {
5394
- "closeRequested": "closeRequested";
5395
- }, never, ["*"], true, never>;
5571
+ "pointClick": "pointClick";
5572
+ "activePointChange": "activePointChange";
5573
+ "visibleRangeChange": "visibleRangeChange";
5574
+ }, never, never, true, never>;
5575
+ }
5576
+ /** Visual style of a menu item; `danger` for destructive actions. */
5577
+ export type MenuItemVariant = 'default' | 'danger';
5578
+ /**
5579
+ * Selectable row inside an `ea-menu`. Supports leading icons via the `icon`
5580
+ * content slot, a disabled state, and a `danger` variant for destructive
5581
+ * actions. Inherits its size from the parent menu, and activating an item
5582
+ * closes that menu.
5583
+ */
5584
+ export declare class MenuItemComponent {
5585
+ private readonly menu;
5586
+ protected readonly itemId: string;
5587
+ protected readonly tabIndex: import("@angular/core").Signal<0 | -1>;
5588
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
5589
+ readonly variant: import("@angular/core").InputSignal<MenuItemVariant>;
5590
+ /** Fires when the item is activated; the parent menu closes immediately afterwards. */
5591
+ readonly clicked: import("@angular/core").OutputEmitterRef<MouseEvent>;
5592
+ handleClick(event: MouseEvent): void;
5593
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemComponent, never>;
5594
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemComponent, "ea-menu-item", never, {
5595
+ "disabled": {
5596
+ "alias": "disabled";
5597
+ "required": false;
5598
+ "isSignal": true;
5599
+ };
5600
+ "variant": {
5601
+ "alias": "variant";
5602
+ "required": false;
5603
+ "isSignal": true;
5604
+ };
5605
+ }, {
5606
+ "clicked": "clicked";
5607
+ }, never, ["[slot=icon]", "*"], true, never>;
5608
+ }
5609
+ /**
5610
+ * Wires a focusable host element (typically a button) to an `ea-menu`,
5611
+ * handling click and keyboard activation (ArrowDown/Enter/Space to open,
5612
+ * Escape to close) and applying the appropriate ARIA attributes.
5613
+ */
5614
+ export declare class MenuTriggerDirective {
5615
+ private readonly el;
5616
+ private readonly renderer;
5617
+ readonly menu: import("@angular/core").InputSignal<MenuComponent>;
5618
+ constructor();
5619
+ handleClick(): void;
5620
+ handleKeydown(event: KeyboardEvent): void;
5621
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuTriggerDirective, never>;
5622
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MenuTriggerDirective, "[eaMenuTrigger]", never, {
5623
+ "menu": {
5624
+ "alias": "eaMenuTrigger";
5625
+ "required": true;
5626
+ "isSignal": true;
5627
+ };
5628
+ }, {}, never, never, true, never>;
5396
5629
  }
5397
5630
  /** Visual size of the multi-select trigger. */
5398
5631
  export type MultiSelectSize = EaSize;
@@ -9338,6 +9571,13 @@ export declare class BoxIconComponent extends IconComponentBase {
9338
9571
  static ɵfac: i0.ɵɵFactoryDeclaration<BoxIconComponent, never>;
9339
9572
  static ɵcmp: i0.ɵɵComponentDeclaration<BoxIconComponent, "ea-icon-box", never, {}, {}, never, never, true, never>;
9340
9573
  }
9574
+ export declare class BracesIconComponent extends IconComponentBase {
9575
+ static readonly slug = "braces";
9576
+ static readonly category: IconCategory;
9577
+ static readonly tags: ReadonlyArray<string>;
9578
+ static ɵfac: i0.ɵɵFactoryDeclaration<BracesIconComponent, never>;
9579
+ static ɵcmp: i0.ɵɵComponentDeclaration<BracesIconComponent, "ea-icon-braces", never, {}, {}, never, never, true, never>;
9580
+ }
9341
9581
  export declare class BrainIconComponent extends IconComponentBase {
9342
9582
  static readonly slug = "brain";
9343
9583
  static readonly category: IconCategory;
@@ -9387,6 +9627,13 @@ export declare class CalendarCheckIconComponent extends IconComponentBase {
9387
9627
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarCheckIconComponent, never>;
9388
9628
  static ɵcmp: i0.ɵɵComponentDeclaration<CalendarCheckIconComponent, "ea-icon-calendar-check", never, {}, {}, never, never, true, never>;
9389
9629
  }
9630
+ export declare class CalendarClockIconComponent extends IconComponentBase {
9631
+ static readonly slug = "calendar-clock";
9632
+ static readonly category: IconCategory;
9633
+ static readonly tags: ReadonlyArray<string>;
9634
+ static ɵfac: i0.ɵɵFactoryDeclaration<CalendarClockIconComponent, never>;
9635
+ static ɵcmp: i0.ɵɵComponentDeclaration<CalendarClockIconComponent, "ea-icon-calendar-clock", never, {}, {}, never, never, true, never>;
9636
+ }
9390
9637
  export declare class CalendarDaysIconComponent extends IconComponentBase {
9391
9638
  static readonly slug = "calendar-days";
9392
9639
  static readonly category: IconCategory;
@@ -9423,6 +9670,13 @@ export declare class CandleIconComponent extends IconComponentBase {
9423
9670
  static ɵfac: i0.ɵɵFactoryDeclaration<CandleIconComponent, never>;
9424
9671
  static ɵcmp: i0.ɵɵComponentDeclaration<CandleIconComponent, "ea-icon-candle", never, {}, {}, never, never, true, never>;
9425
9672
  }
9673
+ export declare class CarIconComponent extends IconComponentBase {
9674
+ static readonly slug = "car";
9675
+ static readonly category: IconCategory;
9676
+ static readonly tags: ReadonlyArray<string>;
9677
+ static ɵfac: i0.ɵɵFactoryDeclaration<CarIconComponent, never>;
9678
+ static ɵcmp: i0.ɵɵComponentDeclaration<CarIconComponent, "ea-icon-car", never, {}, {}, never, never, true, never>;
9679
+ }
9426
9680
  export declare class CassetteTapeIconComponent extends IconComponentBase {
9427
9681
  static readonly slug = "cassette-tape";
9428
9682
  static readonly category: IconCategory;
@@ -10221,6 +10475,13 @@ export declare class FilePlusIconComponent extends IconComponentBase {
10221
10475
  static ɵfac: i0.ɵɵFactoryDeclaration<FilePlusIconComponent, never>;
10222
10476
  static ɵcmp: i0.ɵɵComponentDeclaration<FilePlusIconComponent, "ea-icon-file-plus", never, {}, {}, never, never, true, never>;
10223
10477
  }
10478
+ export declare class FileSpreadsheetIconComponent extends IconComponentBase {
10479
+ static readonly slug = "file-spreadsheet";
10480
+ static readonly category: IconCategory;
10481
+ static readonly tags: ReadonlyArray<string>;
10482
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileSpreadsheetIconComponent, never>;
10483
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileSpreadsheetIconComponent, "ea-icon-file-spreadsheet", never, {}, {}, never, never, true, never>;
10484
+ }
10224
10485
  export declare class FileTextIconComponent extends IconComponentBase {
10225
10486
  static readonly slug = "file-text";
10226
10487
  static readonly category: IconCategory;
@@ -10391,6 +10652,13 @@ export declare class GitCompareIconComponent extends IconComponentBase {
10391
10652
  static ɵfac: i0.ɵɵFactoryDeclaration<GitCompareIconComponent, never>;
10392
10653
  static ɵcmp: i0.ɵɵComponentDeclaration<GitCompareIconComponent, "ea-icon-git-compare", never, {}, {}, never, never, true, never>;
10393
10654
  }
10655
+ export declare class GitForkIconComponent extends IconComponentBase {
10656
+ static readonly slug = "git-fork";
10657
+ static readonly category: IconCategory;
10658
+ static readonly tags: ReadonlyArray<string>;
10659
+ static ɵfac: i0.ɵɵFactoryDeclaration<GitForkIconComponent, never>;
10660
+ static ɵcmp: i0.ɵɵComponentDeclaration<GitForkIconComponent, "ea-icon-git-fork", never, {}, {}, never, never, true, never>;
10661
+ }
10394
10662
  export declare class GitMergeIconComponent extends IconComponentBase {
10395
10663
  static readonly slug = "git-merge";
10396
10664
  static readonly category: IconCategory;
@@ -10514,6 +10782,13 @@ export declare class HalfHeartIconComponent extends IconComponentBase {
10514
10782
  static ɵfac: i0.ɵɵFactoryDeclaration<HalfHeartIconComponent, never>;
10515
10783
  static ɵcmp: i0.ɵɵComponentDeclaration<HalfHeartIconComponent, "ea-icon-half-heart", never, {}, {}, never, never, true, never>;
10516
10784
  }
10785
+ export declare class HandIconComponent extends IconComponentBase {
10786
+ static readonly slug = "hand";
10787
+ static readonly category: IconCategory;
10788
+ static readonly tags: ReadonlyArray<string>;
10789
+ static ɵfac: i0.ɵɵFactoryDeclaration<HandIconComponent, never>;
10790
+ static ɵcmp: i0.ɵɵComponentDeclaration<HandIconComponent, "ea-icon-hand", never, {}, {}, never, never, true, never>;
10791
+ }
10517
10792
  export declare class HardDriveIconComponent extends IconComponentBase {
10518
10793
  static readonly slug = "hard-drive";
10519
10794
  static readonly category: IconCategory;
@@ -10528,6 +10803,13 @@ export declare class HashIconComponent extends IconComponentBase {
10528
10803
  static ɵfac: i0.ɵɵFactoryDeclaration<HashIconComponent, never>;
10529
10804
  static ɵcmp: i0.ɵɵComponentDeclaration<HashIconComponent, "ea-icon-hash", never, {}, {}, never, never, true, never>;
10530
10805
  }
10806
+ export declare class HeadingIconComponent extends IconComponentBase {
10807
+ static readonly slug = "heading";
10808
+ static readonly category: IconCategory;
10809
+ static readonly tags: ReadonlyArray<string>;
10810
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeadingIconComponent, never>;
10811
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeadingIconComponent, "ea-icon-heading", never, {}, {}, never, never, true, never>;
10812
+ }
10531
10813
  export declare class HeadphonesIconComponent extends IconComponentBase {
10532
10814
  static readonly slug = "headphones";
10533
10815
  static readonly category: IconCategory;
@@ -10549,6 +10831,13 @@ export declare class HeartIconComponent extends IconComponentBase {
10549
10831
  static ɵfac: i0.ɵɵFactoryDeclaration<HeartIconComponent, never>;
10550
10832
  static ɵcmp: i0.ɵɵComponentDeclaration<HeartIconComponent, "ea-icon-heart", never, {}, {}, never, never, true, never>;
10551
10833
  }
10834
+ export declare class HeartPulseIconComponent extends IconComponentBase {
10835
+ static readonly slug = "heart-pulse";
10836
+ static readonly category: IconCategory;
10837
+ static readonly tags: ReadonlyArray<string>;
10838
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeartPulseIconComponent, never>;
10839
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeartPulseIconComponent, "ea-icon-heart-pulse", never, {}, {}, never, never, true, never>;
10840
+ }
10552
10841
  export declare class HelpCircleIconComponent extends IconComponentBase {
10553
10842
  static readonly slug = "help-circle";
10554
10843
  static readonly category: IconCategory;
@@ -10591,6 +10880,13 @@ export declare class HourglassIconComponent extends IconComponentBase {
10591
10880
  static ɵfac: i0.ɵɵFactoryDeclaration<HourglassIconComponent, never>;
10592
10881
  static ɵcmp: i0.ɵɵComponentDeclaration<HourglassIconComponent, "ea-icon-hourglass", never, {}, {}, never, never, true, never>;
10593
10882
  }
10883
+ export declare class IdCardIconComponent extends IconComponentBase {
10884
+ static readonly slug = "id-card";
10885
+ static readonly category: IconCategory;
10886
+ static readonly tags: ReadonlyArray<string>;
10887
+ static ɵfac: i0.ɵɵFactoryDeclaration<IdCardIconComponent, never>;
10888
+ static ɵcmp: i0.ɵɵComponentDeclaration<IdCardIconComponent, "ea-icon-id-card", never, {}, {}, never, never, true, never>;
10889
+ }
10594
10890
  export declare class ImageIconComponent extends IconComponentBase {
10595
10891
  static readonly slug = "image";
10596
10892
  static readonly category: IconCategory;
@@ -10655,6 +10951,13 @@ export declare class ItalicIconComponent extends IconComponentBase {
10655
10951
  static ɵfac: i0.ɵɵFactoryDeclaration<ItalicIconComponent, never>;
10656
10952
  static ɵcmp: i0.ɵɵComponentDeclaration<ItalicIconComponent, "ea-icon-italic", never, {}, {}, never, never, true, never>;
10657
10953
  }
10954
+ export declare class KanbanIconComponent extends IconComponentBase {
10955
+ static readonly slug = "kanban";
10956
+ static readonly category: IconCategory;
10957
+ static readonly tags: ReadonlyArray<string>;
10958
+ static ɵfac: i0.ɵɵFactoryDeclaration<KanbanIconComponent, never>;
10959
+ static ɵcmp: i0.ɵɵComponentDeclaration<KanbanIconComponent, "ea-icon-kanban", never, {}, {}, never, never, true, never>;
10960
+ }
10658
10961
  export declare class KeyIconComponent extends IconComponentBase {
10659
10962
  static readonly slug = "key";
10660
10963
  static readonly category: IconCategory;
@@ -10698,6 +11001,13 @@ export declare class LampIconComponent extends IconComponentBase {
10698
11001
  static ɵfac: i0.ɵɵFactoryDeclaration<LampIconComponent, never>;
10699
11002
  static ɵcmp: i0.ɵɵComponentDeclaration<LampIconComponent, "ea-icon-lamp", never, {}, {}, never, never, true, never>;
10700
11003
  }
11004
+ export declare class LandmarkIconComponent extends IconComponentBase {
11005
+ static readonly slug = "landmark";
11006
+ static readonly category: IconCategory;
11007
+ static readonly tags: ReadonlyArray<string>;
11008
+ static ɵfac: i0.ɵɵFactoryDeclaration<LandmarkIconComponent, never>;
11009
+ static ɵcmp: i0.ɵɵComponentDeclaration<LandmarkIconComponent, "ea-icon-landmark", never, {}, {}, never, never, true, never>;
11010
+ }
10701
11011
  export declare class LanguagesIconComponent extends IconComponentBase {
10702
11012
  static readonly slug = "languages";
10703
11013
  static readonly category: IconCategory;
@@ -10761,6 +11071,13 @@ export declare class LightbulbIconComponent extends IconComponentBase {
10761
11071
  static ɵfac: i0.ɵɵFactoryDeclaration<LightbulbIconComponent, never>;
10762
11072
  static ɵcmp: i0.ɵɵComponentDeclaration<LightbulbIconComponent, "ea-icon-lightbulb", never, {}, {}, never, never, true, never>;
10763
11073
  }
11074
+ export declare class LineChartIconComponent extends IconComponentBase {
11075
+ static readonly slug = "line-chart";
11076
+ static readonly category: IconCategory;
11077
+ static readonly tags: ReadonlyArray<string>;
11078
+ static ɵfac: i0.ɵɵFactoryDeclaration<LineChartIconComponent, never>;
11079
+ static ɵcmp: i0.ɵɵComponentDeclaration<LineChartIconComponent, "ea-icon-line-chart", never, {}, {}, never, never, true, never>;
11080
+ }
10764
11081
  export declare class LinkIconComponent extends IconComponentBase {
10765
11082
  static readonly slug = "link";
10766
11083
  static readonly category: IconCategory;
@@ -10826,6 +11143,13 @@ export declare class ListChecksIconComponent extends IconComponentBase {
10826
11143
  static ɵfac: i0.ɵɵFactoryDeclaration<ListChecksIconComponent, never>;
10827
11144
  static ɵcmp: i0.ɵɵComponentDeclaration<ListChecksIconComponent, "ea-icon-list-checks", never, {}, {}, never, never, true, never>;
10828
11145
  }
11146
+ export declare class ListFilterIconComponent extends IconComponentBase {
11147
+ static readonly slug = "list-filter";
11148
+ static readonly category: IconCategory;
11149
+ static readonly tags: ReadonlyArray<string>;
11150
+ static ɵfac: i0.ɵɵFactoryDeclaration<ListFilterIconComponent, never>;
11151
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListFilterIconComponent, "ea-icon-list-filter", never, {}, {}, never, never, true, never>;
11152
+ }
10829
11153
  export declare class ListOrderedIconComponent extends IconComponentBase {
10830
11154
  static readonly slug = "list-ordered";
10831
11155
  static readonly category: IconCategory;
@@ -10840,6 +11164,13 @@ export declare class LoaderIconComponent extends IconComponentBase {
10840
11164
  static ɵfac: i0.ɵɵFactoryDeclaration<LoaderIconComponent, never>;
10841
11165
  static ɵcmp: i0.ɵɵComponentDeclaration<LoaderIconComponent, "ea-icon-loader", never, {}, {}, never, never, true, never>;
10842
11166
  }
11167
+ export declare class LocateFixedIconComponent extends IconComponentBase {
11168
+ static readonly slug = "locate-fixed";
11169
+ static readonly category: IconCategory;
11170
+ static readonly tags: ReadonlyArray<string>;
11171
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocateFixedIconComponent, never>;
11172
+ static ɵcmp: i0.ɵɵComponentDeclaration<LocateFixedIconComponent, "ea-icon-locate-fixed", never, {}, {}, never, never, true, never>;
11173
+ }
10843
11174
  export declare class LockIconComponent extends IconComponentBase {
10844
11175
  static readonly slug = "lock";
10845
11176
  static readonly category: IconCategory;
@@ -10875,6 +11206,13 @@ export declare class MailCheckIconComponent extends IconComponentBase {
10875
11206
  static ɵfac: i0.ɵɵFactoryDeclaration<MailCheckIconComponent, never>;
10876
11207
  static ɵcmp: i0.ɵɵComponentDeclaration<MailCheckIconComponent, "ea-icon-mail-check", never, {}, {}, never, never, true, never>;
10877
11208
  }
11209
+ export declare class MailOpenIconComponent extends IconComponentBase {
11210
+ static readonly slug = "mail-open";
11211
+ static readonly category: IconCategory;
11212
+ static readonly tags: ReadonlyArray<string>;
11213
+ static ɵfac: i0.ɵɵFactoryDeclaration<MailOpenIconComponent, never>;
11214
+ static ɵcmp: i0.ɵɵComponentDeclaration<MailOpenIconComponent, "ea-icon-mail-open", never, {}, {}, never, never, true, never>;
11215
+ }
10878
11216
  export declare class MapIconComponent extends IconComponentBase {
10879
11217
  static readonly slug = "map";
10880
11218
  static readonly category: IconCategory;
@@ -10946,6 +11284,13 @@ export declare class MessageSquareIconComponent extends IconComponentBase {
10946
11284
  static ɵfac: i0.ɵɵFactoryDeclaration<MessageSquareIconComponent, never>;
10947
11285
  static ɵcmp: i0.ɵɵComponentDeclaration<MessageSquareIconComponent, "ea-icon-message-square", never, {}, {}, never, never, true, never>;
10948
11286
  }
11287
+ export declare class MessagesSquareIconComponent extends IconComponentBase {
11288
+ static readonly slug = "messages-square";
11289
+ static readonly category: IconCategory;
11290
+ static readonly tags: ReadonlyArray<string>;
11291
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessagesSquareIconComponent, never>;
11292
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessagesSquareIconComponent, "ea-icon-messages-square", never, {}, {}, never, never, true, never>;
11293
+ }
10949
11294
  export declare class MicIconComponent extends IconComponentBase {
10950
11295
  static readonly slug = "mic";
10951
11296
  static readonly category: IconCategory;
@@ -11074,6 +11419,13 @@ export declare class MousePointerIconComponent extends IconComponentBase {
11074
11419
  static ɵfac: i0.ɵɵFactoryDeclaration<MousePointerIconComponent, never>;
11075
11420
  static ɵcmp: i0.ɵɵComponentDeclaration<MousePointerIconComponent, "ea-icon-mouse-pointer", never, {}, {}, never, never, true, never>;
11076
11421
  }
11422
+ export declare class MousePointerClickIconComponent extends IconComponentBase {
11423
+ static readonly slug = "mouse-pointer-click";
11424
+ static readonly category: IconCategory;
11425
+ static readonly tags: ReadonlyArray<string>;
11426
+ static ɵfac: i0.ɵɵFactoryDeclaration<MousePointerClickIconComponent, never>;
11427
+ static ɵcmp: i0.ɵɵComponentDeclaration<MousePointerClickIconComponent, "ea-icon-mouse-pointer-click", never, {}, {}, never, never, true, never>;
11428
+ }
11077
11429
  export declare class MoveIconComponent extends IconComponentBase {
11078
11430
  static readonly slug = "move";
11079
11431
  static readonly category: IconCategory;
@@ -11110,6 +11462,13 @@ export declare class NetlifyIconComponent extends IconComponentBase {
11110
11462
  static ɵfac: i0.ɵɵFactoryDeclaration<NetlifyIconComponent, never>;
11111
11463
  static ɵcmp: i0.ɵɵComponentDeclaration<NetlifyIconComponent, "ea-icon-netlify", never, {}, {}, never, never, true, never>;
11112
11464
  }
11465
+ export declare class NetworkIconComponent extends IconComponentBase {
11466
+ static readonly slug = "network";
11467
+ static readonly category: IconCategory;
11468
+ static readonly tags: ReadonlyArray<string>;
11469
+ static ɵfac: i0.ɵɵFactoryDeclaration<NetworkIconComponent, never>;
11470
+ static ɵcmp: i0.ɵɵComponentDeclaration<NetworkIconComponent, "ea-icon-network", never, {}, {}, never, never, true, never>;
11471
+ }
11113
11472
  export declare class NewspaperIconComponent extends IconComponentBase {
11114
11473
  static readonly slug = "newspaper";
11115
11474
  static readonly category: IconCategory;
@@ -11176,6 +11535,13 @@ export declare class PackageIconComponent extends IconComponentBase {
11176
11535
  static ɵfac: i0.ɵɵFactoryDeclaration<PackageIconComponent, never>;
11177
11536
  static ɵcmp: i0.ɵɵComponentDeclaration<PackageIconComponent, "ea-icon-package", never, {}, {}, never, never, true, never>;
11178
11537
  }
11538
+ export declare class PaintbrushIconComponent extends IconComponentBase {
11539
+ static readonly slug = "paintbrush";
11540
+ static readonly category: IconCategory;
11541
+ static readonly tags: ReadonlyArray<string>;
11542
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaintbrushIconComponent, never>;
11543
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaintbrushIconComponent, "ea-icon-paintbrush", never, {}, {}, never, never, true, never>;
11544
+ }
11179
11545
  export declare class PaletteIconComponent extends IconComponentBase {
11180
11546
  static readonly slug = "palette";
11181
11547
  static readonly category: IconCategory;
@@ -11190,6 +11556,13 @@ export declare class PaperclipIconComponent extends IconComponentBase {
11190
11556
  static ɵfac: i0.ɵɵFactoryDeclaration<PaperclipIconComponent, never>;
11191
11557
  static ɵcmp: i0.ɵɵComponentDeclaration<PaperclipIconComponent, "ea-icon-paperclip", never, {}, {}, never, never, true, never>;
11192
11558
  }
11559
+ export declare class PartyPopperIconComponent extends IconComponentBase {
11560
+ static readonly slug = "party-popper";
11561
+ static readonly category: IconCategory;
11562
+ static readonly tags: ReadonlyArray<string>;
11563
+ static ɵfac: i0.ɵɵFactoryDeclaration<PartyPopperIconComponent, never>;
11564
+ static ɵcmp: i0.ɵɵComponentDeclaration<PartyPopperIconComponent, "ea-icon-party-popper", never, {}, {}, never, never, true, never>;
11565
+ }
11193
11566
  export declare class PauseIconComponent extends IconComponentBase {
11194
11567
  static readonly slug = "pause";
11195
11568
  static readonly category: IconCategory;
@@ -11296,6 +11669,13 @@ export declare class PieChartIconComponent extends IconComponentBase {
11296
11669
  static ɵfac: i0.ɵɵFactoryDeclaration<PieChartIconComponent, never>;
11297
11670
  static ɵcmp: i0.ɵɵComponentDeclaration<PieChartIconComponent, "ea-icon-pie-chart", never, {}, {}, never, never, true, never>;
11298
11671
  }
11672
+ export declare class PiggyBankIconComponent extends IconComponentBase {
11673
+ static readonly slug = "piggy-bank";
11674
+ static readonly category: IconCategory;
11675
+ static readonly tags: ReadonlyArray<string>;
11676
+ static ɵfac: i0.ɵɵFactoryDeclaration<PiggyBankIconComponent, never>;
11677
+ static ɵcmp: i0.ɵɵComponentDeclaration<PiggyBankIconComponent, "ea-icon-piggy-bank", never, {}, {}, never, never, true, never>;
11678
+ }
11299
11679
  export declare class PinIconComponent extends IconComponentBase {
11300
11680
  static readonly slug = "pin";
11301
11681
  static readonly category: IconCategory;
@@ -11303,6 +11683,13 @@ export declare class PinIconComponent extends IconComponentBase {
11303
11683
  static ɵfac: i0.ɵɵFactoryDeclaration<PinIconComponent, never>;
11304
11684
  static ɵcmp: i0.ɵɵComponentDeclaration<PinIconComponent, "ea-icon-pin", never, {}, {}, never, never, true, never>;
11305
11685
  }
11686
+ export declare class PinOffIconComponent extends IconComponentBase {
11687
+ static readonly slug = "pin-off";
11688
+ static readonly category: IconCategory;
11689
+ static readonly tags: ReadonlyArray<string>;
11690
+ static ɵfac: i0.ɵɵFactoryDeclaration<PinOffIconComponent, never>;
11691
+ static ɵcmp: i0.ɵɵComponentDeclaration<PinOffIconComponent, "ea-icon-pin-off", never, {}, {}, never, never, true, never>;
11692
+ }
11306
11693
  export declare class PinterestIconComponent extends IconComponentBase {
11307
11694
  static readonly slug = "pinterest";
11308
11695
  static readonly category: IconCategory;
@@ -11318,6 +11705,13 @@ export declare class PinterestIconComponent extends IconComponentBase {
11318
11705
  };
11319
11706
  }, {}, never, never, true, never>;
11320
11707
  }
11708
+ export declare class PipetteIconComponent extends IconComponentBase {
11709
+ static readonly slug = "pipette";
11710
+ static readonly category: IconCategory;
11711
+ static readonly tags: ReadonlyArray<string>;
11712
+ static ɵfac: i0.ɵɵFactoryDeclaration<PipetteIconComponent, never>;
11713
+ static ɵcmp: i0.ɵɵComponentDeclaration<PipetteIconComponent, "ea-icon-pipette", never, {}, {}, never, never, true, never>;
11714
+ }
11321
11715
  export declare class PlaneIconComponent extends IconComponentBase {
11322
11716
  static readonly slug = "plane";
11323
11717
  static readonly category: IconCategory;
@@ -11409,6 +11803,13 @@ export declare class ProjectorIconComponent extends IconComponentBase {
11409
11803
  static ɵfac: i0.ɵɵFactoryDeclaration<ProjectorIconComponent, never>;
11410
11804
  static ɵcmp: i0.ɵɵComponentDeclaration<ProjectorIconComponent, "ea-icon-projector", never, {}, {}, never, never, true, never>;
11411
11805
  }
11806
+ export declare class PuzzleIconComponent extends IconComponentBase {
11807
+ static readonly slug = "puzzle";
11808
+ static readonly category: IconCategory;
11809
+ static readonly tags: ReadonlyArray<string>;
11810
+ static ɵfac: i0.ɵɵFactoryDeclaration<PuzzleIconComponent, never>;
11811
+ static ɵcmp: i0.ɵɵComponentDeclaration<PuzzleIconComponent, "ea-icon-puzzle", never, {}, {}, never, never, true, never>;
11812
+ }
11412
11813
  export declare class PythonIconComponent extends IconComponentBase {
11413
11814
  static readonly slug = "python";
11414
11815
  static readonly category: IconCategory;
@@ -11615,6 +12016,13 @@ export declare class RotateCwIconComponent extends IconComponentBase {
11615
12016
  static ɵfac: i0.ɵɵFactoryDeclaration<RotateCwIconComponent, never>;
11616
12017
  static ɵcmp: i0.ɵɵComponentDeclaration<RotateCwIconComponent, "ea-icon-rotate-cw", never, {}, {}, never, never, true, never>;
11617
12018
  }
12019
+ export declare class RouteIconComponent extends IconComponentBase {
12020
+ static readonly slug = "route";
12021
+ static readonly category: IconCategory;
12022
+ static readonly tags: ReadonlyArray<string>;
12023
+ static ɵfac: i0.ɵɵFactoryDeclaration<RouteIconComponent, never>;
12024
+ static ɵcmp: i0.ɵɵComponentDeclaration<RouteIconComponent, "ea-icon-route", never, {}, {}, never, never, true, never>;
12025
+ }
11618
12026
  export declare class RowsIconComponent extends IconComponentBase {
11619
12027
  static readonly slug = "rows";
11620
12028
  static readonly category: IconCategory;
@@ -11927,6 +12335,13 @@ export declare class StepForwardIconComponent extends IconComponentBase {
11927
12335
  static ɵfac: i0.ɵɵFactoryDeclaration<StepForwardIconComponent, never>;
11928
12336
  static ɵcmp: i0.ɵɵComponentDeclaration<StepForwardIconComponent, "ea-icon-step-forward", never, {}, {}, never, never, true, never>;
11929
12337
  }
12338
+ export declare class StickyNoteIconComponent extends IconComponentBase {
12339
+ static readonly slug = "sticky-note";
12340
+ static readonly category: IconCategory;
12341
+ static readonly tags: ReadonlyArray<string>;
12342
+ static ɵfac: i0.ɵɵFactoryDeclaration<StickyNoteIconComponent, never>;
12343
+ static ɵcmp: i0.ɵɵComponentDeclaration<StickyNoteIconComponent, "ea-icon-sticky-note", never, {}, {}, never, never, true, never>;
12344
+ }
11930
12345
  export declare class StopCircleIconComponent extends IconComponentBase {
11931
12346
  static readonly slug = "stop-circle";
11932
12347
  static readonly category: IconCategory;
@@ -11934,6 +12349,13 @@ export declare class StopCircleIconComponent extends IconComponentBase {
11934
12349
  static ɵfac: i0.ɵɵFactoryDeclaration<StopCircleIconComponent, never>;
11935
12350
  static ɵcmp: i0.ɵɵComponentDeclaration<StopCircleIconComponent, "ea-icon-stop-circle", never, {}, {}, never, never, true, never>;
11936
12351
  }
12352
+ export declare class StoreIconComponent extends IconComponentBase {
12353
+ static readonly slug = "store";
12354
+ static readonly category: IconCategory;
12355
+ static readonly tags: ReadonlyArray<string>;
12356
+ static ɵfac: i0.ɵɵFactoryDeclaration<StoreIconComponent, never>;
12357
+ static ɵcmp: i0.ɵɵComponentDeclaration<StoreIconComponent, "ea-icon-store", never, {}, {}, never, never, true, never>;
12358
+ }
11937
12359
  export declare class StrikethroughIconComponent extends IconComponentBase {
11938
12360
  static readonly slug = "strikethrough";
11939
12361
  static readonly category: IconCategory;
@@ -12034,6 +12456,13 @@ export declare class TagIconComponent extends IconComponentBase {
12034
12456
  static ɵfac: i0.ɵɵFactoryDeclaration<TagIconComponent, never>;
12035
12457
  static ɵcmp: i0.ɵɵComponentDeclaration<TagIconComponent, "ea-icon-tag", never, {}, {}, never, never, true, never>;
12036
12458
  }
12459
+ export declare class TagsIconComponent extends IconComponentBase {
12460
+ static readonly slug = "tags";
12461
+ static readonly category: IconCategory;
12462
+ static readonly tags: ReadonlyArray<string>;
12463
+ static ɵfac: i0.ɵɵFactoryDeclaration<TagsIconComponent, never>;
12464
+ static ɵcmp: i0.ɵɵComponentDeclaration<TagsIconComponent, "ea-icon-tags", never, {}, {}, never, never, true, never>;
12465
+ }
12037
12466
  export declare class TailwindIconComponent extends IconComponentBase {
12038
12467
  static readonly slug = "tailwind";
12039
12468
  static readonly category: IconCategory;
@@ -12121,6 +12550,13 @@ export declare class ThumbsUpIconComponent extends IconComponentBase {
12121
12550
  static ɵfac: i0.ɵɵFactoryDeclaration<ThumbsUpIconComponent, never>;
12122
12551
  static ɵcmp: i0.ɵɵComponentDeclaration<ThumbsUpIconComponent, "ea-icon-thumbs-up", never, {}, {}, never, never, true, never>;
12123
12552
  }
12553
+ export declare class TicketIconComponent extends IconComponentBase {
12554
+ static readonly slug = "ticket";
12555
+ static readonly category: IconCategory;
12556
+ static readonly tags: ReadonlyArray<string>;
12557
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketIconComponent, never>;
12558
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketIconComponent, "ea-icon-ticket", never, {}, {}, never, never, true, never>;
12559
+ }
12124
12560
  export declare class TiktokIconComponent extends IconComponentBase {
12125
12561
  static readonly slug = "tiktok";
12126
12562
  static readonly category: IconCategory;
@@ -12400,6 +12836,13 @@ export declare class UsersIconComponent extends IconComponentBase {
12400
12836
  static ɵfac: i0.ɵɵFactoryDeclaration<UsersIconComponent, never>;
12401
12837
  static ɵcmp: i0.ɵɵComponentDeclaration<UsersIconComponent, "ea-icon-users", never, {}, {}, never, never, true, never>;
12402
12838
  }
12839
+ export declare class UtensilsIconComponent extends IconComponentBase {
12840
+ static readonly slug = "utensils";
12841
+ static readonly category: IconCategory;
12842
+ static readonly tags: ReadonlyArray<string>;
12843
+ static ɵfac: i0.ɵɵFactoryDeclaration<UtensilsIconComponent, never>;
12844
+ static ɵcmp: i0.ɵɵComponentDeclaration<UtensilsIconComponent, "ea-icon-utensils", never, {}, {}, never, never, true, never>;
12845
+ }
12403
12846
  export declare class VercelIconComponent extends IconComponentBase {
12404
12847
  static readonly slug = "vercel";
12405
12848
  static readonly category: IconCategory;