@ethlete/components 0.1.0-next.8 → 1.0.0-next.17

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,14 +1,14 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Signal, WritableSignal, InjectionToken, ElementRef, Type, InputSignal, ViewContainerRef, Injector, StaticProvider, TemplateRef, computed, Binding, EnvironmentInjector, ComponentRef } from '@angular/core';
2
+ import { Signal, WritableSignal, InjectionToken, ElementRef, Type, InputSignal, ViewContainerRef, Injector, Binding, StaticProvider, TemplateRef, OnInit, ComponentRef, OnDestroy, computed, Provider, EnvironmentInjector, ApplicationRef } from '@angular/core';
3
3
  import * as _ethlete_core from '@ethlete/core';
4
- import { AnimatableDirective, DragHandleDirective, ResizeEdge, ResizeMoveEvent, OverlayRuntimePositionStrategy, OverlayRuntimeRef, AnimatedLifecycleDirective, ScrollObserverDirective, ScrollToElementOptions, ConsentHandler, ProvideColorDirective, ProvideSurfaceDirective } from '@ethlete/core';
4
+ import { AnimatableDirective, ResizeEdge, DragHandleDirective, ResizeMoveEvent, OverlayRuntimePositionStrategy, Breakpoint, OverlayRuntimeRef, AnimatedLifecycleDirective, OverlayRuntimeCloseSource, AnimatedLifecycleState, AngularRenderer, OverlayRuntimeAnimationDelegate, ScrollObserverDirective, ScrollToElementOptions, ConsentHandler, ProvideColorDirective } from '@ethlete/core';
5
5
  import * as _angular_forms_signals from '@angular/forms/signals';
6
6
  import { ValidationError, FormCheckboxControl, FormValueControl } from '@angular/forms/signals';
7
7
  import * as _ethlete_components from '@ethlete/components';
8
8
  import * as _angular_platform_browser from '@angular/platform-browser';
9
+ import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
9
10
  import * as rxjs from 'rxjs';
10
11
  import { Observable } from 'rxjs';
11
- import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
12
12
  import * as i1 from '@angular/router';
13
13
 
14
14
  declare class ButtonStylesDirective {
@@ -31,16 +31,17 @@ declare class ButtonDirective {
31
31
  type: _angular_core.InputSignal<ButtonType>;
32
32
  pressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
33
33
  emitAriaPressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
34
+ mutedUntilPressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
34
35
  readonly IS_BUTTON: boolean;
35
36
  readonly IS_ANCHOR: boolean;
36
37
  isInactive: _angular_core.Signal<boolean>;
37
38
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonDirective, never>;
38
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonDirective, "[etButton]", ["etButton"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; "emitAriaPressed": { "alias": "emitAriaPressed"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
39
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonDirective, "[etButton]", ["etButton"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; "emitAriaPressed": { "alias": "emitAriaPressed"; "required": false; "isSignal": true; }; "mutedUntilPressed": { "alias": "mutedUntilPressed"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.SurfaceInteractiveDirective; inputs: {}; outputs: {}; }]>;
39
40
  }
40
41
 
41
42
  declare class FocusRingDirective {
42
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
43
43
  private styleManager;
44
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
44
45
  protected active: _angular_core.WritableSignal<boolean>;
45
46
  constructor();
46
47
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FocusRingDirective, never>;
@@ -85,7 +86,7 @@ declare class ButtonComponent {
85
86
  }>;
86
87
  pressedVariant: _angular_core.Signal<string | null>;
87
88
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
88
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "[et-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconAlignment": { "alias": "iconAlignment"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
89
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "[et-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconAlignment": { "alias": "iconAlignment"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; "mutedUntilPressed": "mutedUntilPressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
89
90
  }
90
91
 
91
92
  type FabVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];
@@ -121,7 +122,7 @@ declare class IconButtonComponent {
121
122
  }>;
122
123
  pressedVariant: _angular_core.Signal<string | null>;
123
124
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconButtonComponent, never>;
124
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "[et-icon-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
125
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "[et-icon-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; "mutedUntilPressed": "mutedUntilPressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
125
126
  }
126
127
 
127
128
  declare class TextButtonComponent {
@@ -179,6 +180,7 @@ declare const FORM_FIELD_ERROR_CODES: {
179
180
 
180
181
  declare const FORM_FIELD_CONTROL_TYPES: {
181
182
  readonly TEXT_INPUT: "text-input";
183
+ readonly RICH_TEXT: "rich-text";
182
184
  readonly CHECKBOX: "checkbox";
183
185
  readonly RADIO: "radio";
184
186
  readonly SWITCH: "switch";
@@ -370,10 +372,6 @@ declare class CheckboxComponent {
370
372
  declare const CHECKBOX_IMPORTS: readonly [typeof CheckboxComponent, typeof CheckboxDirective];
371
373
 
372
374
  declare class ChoiceFieldComponent {
373
- private errorContentRef;
374
- private hintContentRef;
375
- private errorAnimatableRef;
376
- private hintAnimatableRef;
377
375
  support: {
378
376
  errorColorTheme: _ethlete_core.ColorTheme;
379
377
  formFieldDir: FormFieldDirective;
@@ -391,6 +389,10 @@ declare class ChoiceFieldComponent {
391
389
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
392
390
  supportHeight: _angular_core.Signal<number>;
393
391
  };
392
+ private errorContentRef;
393
+ private hintContentRef;
394
+ private errorAnimatableRef;
395
+ private hintAnimatableRef;
394
396
  canAnimate: {
395
397
  state: _angular_core.Signal<boolean>;
396
398
  };
@@ -462,6 +464,8 @@ declare class FormFieldComponent {
462
464
  private provideSurface;
463
465
  private parentSurfaceProvider;
464
466
  protected formFieldDir: FormFieldDirective;
467
+ protected errorColorTheme: _ethlete_core.ColorTheme;
468
+ private surfaceThemes;
465
469
  appearance: _angular_core.InputSignal<FormFieldAppearance>;
466
470
  fill: _angular_core.InputSignal<FormFieldFill>;
467
471
  labelMode: _angular_core.InputSignal<FormFieldLabelMode>;
@@ -471,8 +475,6 @@ declare class FormFieldComponent {
471
475
  prefixEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
472
476
  protected errorAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
473
477
  protected hintAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
474
- protected errorColorTheme: _ethlete_core.ColorTheme;
475
- private surfaceThemes;
476
478
  private errorDimensions;
477
479
  private hintDimensions;
478
480
  private prefixDimensions;
@@ -573,6 +575,131 @@ declare class InputComponent {
573
575
 
574
576
  declare const INPUT_IMPORTS: readonly [typeof InputComponent, typeof InputDirective];
575
577
 
578
+ type InlineTag = 'strong' | 'em' | 'del';
579
+ type ListTag = 'ul' | 'ol';
580
+ type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
581
+ type EditableSelection = {
582
+ selection: Selection;
583
+ range: Range;
584
+ };
585
+ type RichTextMarkStates = {
586
+ bold: boolean;
587
+ italic: boolean;
588
+ strike: boolean;
589
+ unorderedList: boolean;
590
+ orderedList: boolean;
591
+ link: boolean;
592
+ /** Heading level of the block the selection starts in, or `null` when it is not a heading. */
593
+ heading: number | null;
594
+ };
595
+
596
+ declare class RichTextEditorDirective implements FormValueControl<string>, FormFieldControl {
597
+ private formField;
598
+ private destroyRef;
599
+ private document;
600
+ /** @internal */
601
+ editorDom: {
602
+ root: _angular_core.WritableSignal<HTMLElement | null>;
603
+ getSelection: () => EditableSelection | null;
604
+ closestWithin: (node: Node | null, selector: string) => HTMLElement | null;
605
+ markStates: () => RichTextMarkStates | null;
606
+ toggleInline: (tag: InlineTag) => void;
607
+ toggleList: (listTag: ListTag) => void;
608
+ toggleHeading: (tag: HeadingTag) => void;
609
+ applyLink: (href: string) => void;
610
+ removeLink: () => void;
611
+ insertToken: (node: Node) => void;
612
+ handleBackspace: () => boolean;
613
+ };
614
+ value: _angular_core.ModelSignal<string>;
615
+ touched: _angular_core.ModelSignal<boolean>;
616
+ disabled: _angular_core.InputSignal<boolean>;
617
+ readonly: _angular_core.InputSignal<boolean>;
618
+ hidden: _angular_core.InputSignal<boolean>;
619
+ invalid: _angular_core.InputSignal<boolean>;
620
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
621
+ required: _angular_core.InputSignal<boolean>;
622
+ name: _angular_core.InputSignal<string>;
623
+ placeholder: _angular_core.InputSignal<string>;
624
+ shouldDisplayError: _angular_core.Signal<boolean>;
625
+ hasValue: _angular_core.Signal<boolean>;
626
+ describedBy: _angular_core.WritableSignal<string | null>;
627
+ controlType: _angular_core.WritableSignal<"rich-text">;
628
+ focused: _angular_core.WritableSignal<boolean>;
629
+ labelId: _angular_core.Signal<string | null>;
630
+ describedById: _angular_core.Signal<string | null>;
631
+ boldActive: _angular_core.WritableSignal<boolean>;
632
+ italicActive: _angular_core.WritableSignal<boolean>;
633
+ strikeActive: _angular_core.WritableSignal<boolean>;
634
+ unorderedListActive: _angular_core.WritableSignal<boolean>;
635
+ orderedListActive: _angular_core.WritableSignal<boolean>;
636
+ linkActive: _angular_core.WritableSignal<boolean>;
637
+ headingLevel: _angular_core.WritableSignal<number | null>;
638
+ /** @internal */
639
+ lastEmittedMarkdown: string | null;
640
+ constructor();
641
+ activate(): void;
642
+ syncFromDom(): void;
643
+ refreshActiveMarks(): void;
644
+ toggleBold(): void;
645
+ toggleItalic(): void;
646
+ toggleStrikethrough(): void;
647
+ toggleUnorderedList(): void;
648
+ toggleOrderedList(): void;
649
+ toggleHeading(level: number): void;
650
+ setLink(href: string): void;
651
+ promptForLink(): void;
652
+ handleBackspace(): boolean;
653
+ /**
654
+ * @internal Extension seam for the follow-up `@`/`#` autocomplete: inserts an atomic inline
655
+ * node (a mention/placeholder token) at the caret, then re-syncs.
656
+ */
657
+ insertAtomicToken(node: Node): void;
658
+ private serializeCleanHtml;
659
+ private runCommand;
660
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorDirective, never>;
661
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RichTextEditorDirective, "[etRichTextEditor]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
662
+ }
663
+
664
+ declare class RichTextEditorFloatingToolbarComponent {
665
+ protected dir: RichTextEditorDirective;
666
+ private document;
667
+ private renderer;
668
+ private destroyRef;
669
+ private host;
670
+ protected visible: _angular_core.WritableSignal<boolean>;
671
+ private activeRange;
672
+ private floatingReference;
673
+ private floatingCleanup;
674
+ private pointerSelectingInContent;
675
+ constructor();
676
+ private selectableRange;
677
+ private finishContentPointerSelection;
678
+ private evaluate;
679
+ private reposition;
680
+ private start;
681
+ private updatePosition;
682
+ private hide;
683
+ private stop;
684
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorFloatingToolbarComponent, never>;
685
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorFloatingToolbarComponent, "et-rich-text-editor-floating-toolbar", never, {}, {}, never, never, true, never>;
686
+ }
687
+
688
+ declare class RichTextEditorComponent {
689
+ protected dir: RichTextEditorDirective;
690
+ private document;
691
+ private editable;
692
+ constructor();
693
+ protected syncValueFromDom(): void;
694
+ protected interceptBackspaceKey(event: KeyboardEvent): void;
695
+ protected interceptFormattingCommand(event: InputEvent): void;
696
+ private renderExternalValue;
697
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorComponent, never>;
698
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorComponent, "et-rich-text-editor", never, {}, {}, never, never, true, [{ directive: typeof RichTextEditorDirective; inputs: { "value": "value"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "placeholder": "placeholder"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }]>;
699
+ }
700
+
701
+ declare const RICH_TEXT_EDITOR_IMPORTS: readonly [typeof RichTextEditorComponent, typeof RichTextEditorDirective];
702
+
576
703
  declare const SELECTION_LIST_TOKEN: InjectionToken<SelectionListDirectiveBase<unknown>>;
577
704
  declare const SELECTION_LIST_MULTIPLE: InjectionToken<boolean>;
578
705
  type SelectionListItem<TValue = unknown> = {
@@ -633,10 +760,6 @@ declare class SelectionListDirective implements SelectionListDirectiveBase, Form
633
760
  }
634
761
 
635
762
  declare class CheckboxGroupComponent {
636
- private errorContentRef;
637
- private hintContentRef;
638
- private errorAnimatableRef;
639
- private hintAnimatableRef;
640
763
  support: {
641
764
  errorColorTheme: _ethlete_core.ColorTheme;
642
765
  formFieldDir: FormFieldDirective;
@@ -654,6 +777,10 @@ declare class CheckboxGroupComponent {
654
777
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
655
778
  supportHeight: _angular_core.Signal<number>;
656
779
  };
780
+ private errorContentRef;
781
+ private hintContentRef;
782
+ private errorAnimatableRef;
783
+ private hintAnimatableRef;
657
784
  canAnimate: {
658
785
  state: _angular_core.Signal<boolean>;
659
786
  };
@@ -704,10 +831,6 @@ declare class CheckboxOptionComponent {
704
831
  }
705
832
 
706
833
  declare class RadioGroupComponent {
707
- private errorContentRef;
708
- private hintContentRef;
709
- private errorAnimatableRef;
710
- private hintAnimatableRef;
711
834
  support: {
712
835
  errorColorTheme: _ethlete_core.ColorTheme;
713
836
  formFieldDir: FormFieldDirective;
@@ -725,6 +848,10 @@ declare class RadioGroupComponent {
725
848
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
726
849
  supportHeight: _angular_core.Signal<number>;
727
850
  };
851
+ private errorContentRef;
852
+ private hintContentRef;
853
+ private errorAnimatableRef;
854
+ private hintAnimatableRef;
728
855
  canAnimate: {
729
856
  state: _angular_core.Signal<boolean>;
730
857
  };
@@ -743,10 +870,6 @@ declare class RadioComponent {
743
870
  }
744
871
 
745
872
  declare class SegmentedButtonGroupComponent {
746
- private errorContentRef;
747
- private hintContentRef;
748
- private errorAnimatableRef;
749
- private hintAnimatableRef;
750
873
  support: {
751
874
  errorColorTheme: _ethlete_core.ColorTheme;
752
875
  formFieldDir: FormFieldDirective;
@@ -764,6 +887,10 @@ declare class SegmentedButtonGroupComponent {
764
887
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
765
888
  supportHeight: _angular_core.Signal<number>;
766
889
  };
890
+ private errorContentRef;
891
+ private hintContentRef;
892
+ private errorAnimatableRef;
893
+ private hintAnimatableRef;
767
894
  canAnimate: {
768
895
  state: _angular_core.Signal<boolean>;
769
896
  };
@@ -847,6 +974,14 @@ type GridLayoutEntry = {
847
974
  id: string;
848
975
  position: GridItemPosition;
849
976
  };
977
+ /**
978
+ * Contract for a grid item's `actionsComponent`: a component that receives the item's `itemId` and
979
+ * `data` as inputs. Both are always provided by the grid.
980
+ */
981
+ type GridItemActionsComponent<TData = unknown> = Type<{
982
+ itemId: InputSignal<string>;
983
+ data: InputSignal<TData>;
984
+ }>;
850
985
  type GridComponentRegistration<TData = unknown> = {
851
986
  component: Type<{
852
987
  data: InputSignal<TData>;
@@ -884,13 +1019,16 @@ type GridDragState = {
884
1019
  };
885
1020
  declare class GridDirective {
886
1021
  private injector;
1022
+ private destroyRef;
1023
+ elementRef: ElementRef<HTMLElement>;
1024
+ private gridConfig;
1025
+ private reducedMotion;
887
1026
  breakpoints: _angular_core.InputSignal<GridBreakpointConfig[]>;
888
1027
  rowHeight: _angular_core.InputSignal<number>;
889
1028
  gap: _angular_core.InputSignal<number>;
890
1029
  initialItems: _angular_core.InputSignal<GridItemConfig[]>;
891
1030
  readOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
892
1031
  layoutChange: _angular_core.OutputEmitterRef<GridSerializedState>;
893
- private gridConfig;
894
1032
  registrations: _angular_core.Signal<GridComponentRegistration[]>;
895
1033
  private dimensions;
896
1034
  private itemConfigs;
@@ -898,40 +1036,53 @@ declare class GridDirective {
898
1036
  dragState: _angular_core.WritableSignal<GridDragState | null>;
899
1037
  private constraintsRegistry;
900
1038
  private resizeBaseLayout;
901
- private itemElements;
902
- private ghostElement;
903
- private rectSnapshot;
1039
+ private pendingResize;
1040
+ private lastResizeTarget;
1041
+ leavingIds: _angular_core.WritableSignal<ReadonlySet<string>>;
1042
+ isResizeActive: _angular_core.WritableSignal<boolean>;
1043
+ private animationsReady;
1044
+ private isContainerResizing;
904
1045
  containerWidth: _angular_core.Signal<number>;
1046
+ isReady: _angular_core.Signal<boolean>;
1047
+ animationsEnabled: _angular_core.Signal<boolean>;
905
1048
  activeBreakpoint: _angular_core.Signal<string>;
906
1049
  activeColumns: _angular_core.Signal<number>;
1050
+ private paddings;
1051
+ geometry: _angular_core.Signal<_ethlete_components.GridGeometry>;
907
1052
  items: _angular_core.Signal<GridItemConfig[]>;
908
1053
  baseLayout: _angular_core.Signal<GridLayoutEntry[]>;
909
1054
  layout: _angular_core.Signal<GridLayoutEntry[]>;
1055
+ containerHeightPx: _angular_core.Signal<number>;
1056
+ protected hostHeight: _angular_core.Signal<number | null>;
1057
+ protected containerTransition: _angular_core.Signal<"none" | "height var(--et-grid-anim-duration, 250ms) cubic-bezier(0.2, 0, 0, 1)">;
910
1058
  ghostPosition: _angular_core.Signal<GridItemPosition | null>;
911
1059
  constructor();
1060
+ getContainerOrigin(): {
1061
+ left: number;
1062
+ top: number;
1063
+ };
912
1064
  registerConstraints(id: string, constraints: GridItemConstraints): void;
913
- registerItem(id: string, options: {
914
- el: HTMLElement;
915
- constraints: GridItemConstraints;
916
- }): void;
917
- unregisterItem(id: string): void;
918
- setGhostElement(el: HTMLElement | null): void;
1065
+ unregisterConstraints(id: string): void;
919
1066
  getConstraints(id: string): GridItemConstraints;
920
- snapshotRects(): void;
921
- animateLayoutTransition(options?: {
922
- excludeIds?: Set<string>;
923
- scaleIds?: Set<string>;
1067
+ beginDrag(itemId: string): GridItemPosition | null;
1068
+ updateDragTarget(cell: {
1069
+ col: number;
1070
+ row: number;
924
1071
  }): void;
925
- beginDrag(itemId: string): void;
926
- updateDragTarget(targetPosition: GridItemPosition): void;
927
- commitDrag(): void;
1072
+ commitDrag(): GridItemPosition | null;
1073
+ cancelDrag(): void;
1074
+ beginResize(itemId: string): GridItemPosition | null;
1075
+ updateResize(itemId: string, target: GridItemPosition): void;
1076
+ commitResize(): GridItemPosition | null;
1077
+ cancelResize(): void;
1078
+ /** One-shot resize (keyboard / programmatic): begin + update + commit in a single call. */
1079
+ resizeItem(options: ResizeItemOptions): void;
928
1080
  addItem(type: string, data: unknown): void;
929
1081
  removeItem(id: string): void;
930
1082
  moveItem(id: string, newPosition: GridItemPosition): void;
931
- resizeItem(options: ResizeItemOptions): void;
932
- commitResize(): void;
933
1083
  getSerializedState(): GridSerializedState;
934
1084
  restoreState(state: GridSerializedState): void;
1085
+ private finalizeRemove;
935
1086
  private placeItem;
936
1087
  private shrinkNeighbors;
937
1088
  /** Compact all visited breakpoints (layoutOverrides entries) after an item is removed. */
@@ -943,8 +1094,240 @@ declare class GridDirective {
943
1094
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridDirective, "[etGrid]", ["etGrid"], { "breakpoints": { "alias": "breakpoints"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "initialItems": { "alias": "initialItems"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; }, never, never, true, never>;
944
1095
  }
945
1096
 
1097
+ type AutoScrollPointer = {
1098
+ clientX: number;
1099
+ clientY: number;
1100
+ };
1101
+ type AutoScroller = {
1102
+ /** Begin the edge-proximity loop. No-op if already running. */
1103
+ start: (pointer: AutoScrollPointer) => void;
1104
+ /** Feed the latest pointer position. */
1105
+ update: (pointer: AutoScrollPointer) => void;
1106
+ stop: () => void;
1107
+ };
1108
+ declare const findScrollableAncestor: (start: Element | null) => HTMLElement | null;
1109
+ declare const createAutoScroller: (options: {
1110
+ document: Document;
1111
+ getScrollElement: () => HTMLElement | null;
1112
+ threshold?: number;
1113
+ maxSpeed?: number;
1114
+ }) => AutoScroller;
1115
+
1116
+ /** A rectangle in container-relative pixels (x/y measured from the container's padding box). */
1117
+ type PixelRect = {
1118
+ x: number;
1119
+ y: number;
1120
+ width: number;
1121
+ height: number;
1122
+ };
1123
+ type GridGeometry = {
1124
+ /** Width available for columns (container client width minus horizontal padding). */
1125
+ contentWidth: number;
1126
+ columns: number;
1127
+ gap: number;
1128
+ rowHeight: number;
1129
+ cellWidth: number;
1130
+ /** Horizontal distance between the left edges of two adjacent columns. */
1131
+ strideX: number;
1132
+ /** Vertical distance between the top edges of two adjacent rows. */
1133
+ strideY: number;
1134
+ /** Container padding-left - the x of column 0. */
1135
+ originX: number;
1136
+ /** Container padding-top - the y of row 0. */
1137
+ originY: number;
1138
+ };
1139
+ /**
1140
+ * Effective span bounds for a resize gesture. Grid bounds and item constraints are
1141
+ * unified in span units per edge, so the clamped pixel rect and the snapped span
1142
+ * are always derived from the same limits and can never disagree.
1143
+ */
1144
+ type ResizeSpanBounds = {
1145
+ minColSpan: number;
1146
+ maxColSpan: number;
1147
+ minRowSpan: number;
1148
+ maxRowSpan: number;
1149
+ };
1150
+ declare const computeGeometry: (options: {
1151
+ contentWidth: number;
1152
+ columns: number;
1153
+ gap: number;
1154
+ rowHeight: number;
1155
+ originX?: number;
1156
+ originY?: number;
1157
+ }) => GridGeometry;
1158
+ declare const spanWidth: (span: number, geometry: GridGeometry) => number;
1159
+ declare const spanHeight: (span: number, geometry: GridGeometry) => number;
1160
+ declare const positionToPixelRect: (position: GridItemPosition, geometry: GridGeometry) => PixelRect;
1161
+ /** Pixel height of the given number of rows (content only, no container padding). */
1162
+ declare const rowsToPixelHeight: (rows: number, geometry: GridGeometry) => number;
1163
+ declare const pixelRectsEqual: (a: PixelRect | null, b: PixelRect | null) => boolean;
1164
+ declare const positionsEqual: (a: GridItemPosition | null, b: GridItemPosition | null) => boolean;
1165
+ declare const SNAP_HYSTERESIS = 0.1;
1166
+ /**
1167
+ * Rounds a raw cell-unit value to the nearest integer with a hysteresis margin
1168
+ * relative to the last snapped value: the rounding boundary is shifted by
1169
+ * SNAP_HYSTERESIS against the direction of travel, so a pointer jittering exactly
1170
+ * on a cell midpoint cannot flap the snap back and forth (each flap would
1171
+ * re-trigger a full neighbour reflow).
1172
+ */
1173
+ declare const hysteresisRound: (raw: number, last: number | null) => number;
1174
+ declare const resizeSpanBounds: (options: {
1175
+ edge: ResizeEdge;
1176
+ start: GridItemPosition;
1177
+ constraints: GridItemConstraints;
1178
+ columns: number;
1179
+ }) => ResizeSpanBounds;
1180
+ declare const clampResizeRect: (options: {
1181
+ edge: ResizeEdge;
1182
+ dx: number;
1183
+ dy: number;
1184
+ startRect: PixelRect;
1185
+ bounds: ResizeSpanBounds;
1186
+ geometry: GridGeometry;
1187
+ }) => PixelRect;
1188
+ declare const snapResizeSpan: (options: {
1189
+ edge: ResizeEdge;
1190
+ rect: PixelRect;
1191
+ start: GridItemPosition;
1192
+ bounds: ResizeSpanBounds;
1193
+ geometry: GridGeometry;
1194
+ lastSnap: GridItemPosition | null;
1195
+ }) => GridItemPosition;
1196
+ declare const projectDragCell: (options: {
1197
+ float: {
1198
+ x: number;
1199
+ y: number;
1200
+ };
1201
+ colSpan: number;
1202
+ geometry: GridGeometry;
1203
+ lastTarget: {
1204
+ col: number;
1205
+ row: number;
1206
+ } | null;
1207
+ }) => {
1208
+ col: number;
1209
+ row: number;
1210
+ };
1211
+
1212
+ type FindCollisionOptions = {
1213
+ entries: GridLayoutEntry[];
1214
+ position: GridItemPosition;
1215
+ excludeId?: string;
1216
+ };
1217
+ type AutoPlaceOptions = {
1218
+ entries: GridLayoutEntry[];
1219
+ colSpan: number;
1220
+ rowSpan: number;
1221
+ columns: number;
1222
+ };
1223
+ type ClampPositionOptions = {
1224
+ position: GridItemPosition;
1225
+ constraints: GridItemConstraints;
1226
+ columns: number;
1227
+ };
1228
+ type ResolveCollisionsOptions = {
1229
+ entries: GridLayoutEntry[];
1230
+ movedId: string;
1231
+ columns: number;
1232
+ originPosition?: GridItemPosition;
1233
+ rowFloors?: RowFloors;
1234
+ };
1235
+ /**
1236
+ * Per-item lower bound (in rows) for the upward compaction pass. An item with a
1237
+ * floor is never pulled above it — used during live resize gestures to keep
1238
+ * unrelated items from collapsing into freshly vacated space while the pointer
1239
+ * is still down. Items without an entry compact all the way up (floor 0).
1240
+ */
1241
+ type RowFloors = ReadonlyMap<string, number>;
1242
+ type CompactLayoutOptions = {
1243
+ entries: GridLayoutEntry[];
1244
+ columns: number;
1245
+ rowFloors?: RowFloors;
1246
+ };
1247
+ /**
1248
+ * Checks whether two grid items overlap.
1249
+ */
1250
+ declare const itemsCollide: (a: GridItemPosition, b: GridItemPosition) => boolean;
1251
+ /**
1252
+ * Returns the first item that collides with the given position, or undefined if none.
1253
+ */
1254
+ declare const findCollision: (options: FindCollisionOptions) => GridLayoutEntry | undefined;
1255
+ /**
1256
+ * Compacts the layout vertically (moves items up as far as possible without collision).
1257
+ *
1258
+ * Also acts as a self-healing normaliser: positions that overflow the grid horizontally
1259
+ * (e.g. stale data from a wider breakpoint clamped into a narrower one — a colSpan of 12
1260
+ * or a col of 8 in a 6-column grid) are first clamped back into bounds, then any items
1261
+ * left overlapping are pushed down before the upward compaction runs. This guarantees the
1262
+ * returned layout is always in-bounds and overlap-free regardless of the input — clamping
1263
+ * a column alone is not enough, because it can drop an item on top of an existing one.
1264
+ */
1265
+ declare const compactLayout: (options: CompactLayoutOptions) => GridLayoutEntry[];
1266
+ /**
1267
+ * Finds the first available position for an item with the given span in a grid.
1268
+ * Uses top-left gravity: scans row by row, column by column.
1269
+ */
1270
+ declare const autoPlace: (options: AutoPlaceOptions) => GridItemPosition;
1271
+ /**
1272
+ * Validates and clamps a position to respect grid boundaries and item constraints.
1273
+ */
1274
+ declare const clampPosition: (options: ClampPositionOptions) => {
1275
+ col: number;
1276
+ row: number;
1277
+ colSpan: number;
1278
+ rowSpan: number;
1279
+ };
1280
+ /**
1281
+ * Resolves collisions by pushing items down when a moved/resized item overlaps others.
1282
+ * If exactly one item of the same size collides, they swap positions instead.
1283
+ * Cascades: if pushed items collide with others, those are pushed down too.
1284
+ */
1285
+ declare const resolveCollisions: (options: ResolveCollisionsOptions) => GridLayoutEntry[];
1286
+ /**
1287
+ * Computes the total number of rows occupied by the layout.
1288
+ */
1289
+ declare const computeGridHeight: (entries: GridLayoutEntry[]) => number;
1290
+
1291
+ type MapLayoutOptions = {
1292
+ entries: GridLayoutEntry[];
1293
+ fromColumns: number;
1294
+ toColumns: number;
1295
+ };
1296
+ /**
1297
+ * Resolves the active breakpoint name based on the container width.
1298
+ * Breakpoints are sorted by minWidth descending — the first one whose minWidth is <= containerWidth wins.
1299
+ */
1300
+ declare const resolveBreakpoint: (breakpoints: GridBreakpointConfig[], containerWidth: number) => GridBreakpointName;
1301
+ /**
1302
+ * Auto-generates a layout for a smaller breakpoint from a larger one.
1303
+ * Items are re-flowed into fewer columns, maintaining their relative order.
1304
+ */
1305
+ declare const mapLayoutToBreakpoint: (options: MapLayoutOptions) => GridLayoutEntry[];
1306
+ declare const DEFAULT_BREAKPOINTS: GridBreakpointConfig[];
1307
+
1308
+ type SerializeOptions = {
1309
+ items: GridItemConfig[];
1310
+ breakpoints: GridBreakpointConfig[];
1311
+ rowHeight: number;
1312
+ };
1313
+ /**
1314
+ * Serializes the current grid state into a JSON-compatible object suitable for DB storage.
1315
+ */
1316
+ declare const serializeGridLayout: (options: SerializeOptions) => GridSerializedState;
1317
+ /**
1318
+ * Deserializes a stored grid state back into working configuration.
1319
+ * Returns breakpoint configs and item configs.
1320
+ */
1321
+ declare const deserializeGridLayout: (state: GridSerializedState, breakpointMinWidths: Record<string, number>) => {
1322
+ breakpoints: GridBreakpointConfig[];
1323
+ items: GridItemConfig[];
1324
+ rowHeight: number;
1325
+ };
1326
+
946
1327
  declare class GridItemDirective {
947
1328
  private grid;
1329
+ private injector;
1330
+ private destroyRef;
948
1331
  hostElement: ElementRef<HTMLElement>;
949
1332
  itemId: _angular_core.InputSignal<string>;
950
1333
  minColSpan: _angular_core.InputSignalWithTransform<number, unknown>;
@@ -952,16 +1335,26 @@ declare class GridItemDirective {
952
1335
  minRowSpan: _angular_core.InputSignalWithTransform<number, unknown>;
953
1336
  maxRowSpan: _angular_core.InputSignalWithTransform<number, unknown>;
954
1337
  isBeingDragged: _angular_core.Signal<boolean>;
955
- private frozenPosition;
956
1338
  currentPosition: _angular_core.Signal<_ethlete_components.GridItemPosition | null>;
957
- renderPosition: _angular_core.Signal<_ethlete_components.GridItemPosition | null>;
958
- currentCol: _angular_core.Signal<number>;
959
- currentRow: _angular_core.Signal<number>;
960
- currentColSpan: _angular_core.Signal<number>;
961
- currentRowSpan: _angular_core.Signal<number>;
962
- protected gridColumn: _angular_core.Signal<string>;
963
- protected gridRow: _angular_core.Signal<string>;
1339
+ /** The layout-derived target rect in container-relative pixels. */
1340
+ slotRect: _angular_core.Signal<PixelRect | null>;
1341
+ private renderModeSignal;
1342
+ private liveRect;
1343
+ private isSettlingSignal;
1344
+ private enteringSignal;
1345
+ renderMode: _angular_core.Signal<"layout" | "direct">;
1346
+ isSettling: _angular_core.Signal<boolean>;
1347
+ protected entering: _angular_core.Signal<boolean>;
1348
+ protected leaving: _angular_core.Signal<boolean>;
1349
+ /** The rect currently bound to the host: pointer-driven while direct-controlled, the slot otherwise. */
1350
+ renderedRect: _angular_core.Signal<PixelRect | null>;
1351
+ protected translateStyle: _angular_core.Signal<string | null>;
1352
+ protected transitionStyle: _angular_core.Signal<"none" | "translate var(--et-grid-anim-duration, 250ms) cubic-bezier(0.2, 0, 0, 1), width var(--et-grid-anim-duration, 250ms) cubic-bezier(0.2, 0, 0, 1), height var(--et-grid-anim-duration, 250ms) cubic-bezier(0.2, 0, 0, 1), scale 200ms cubic-bezier(0.2, 0, 0, 1), opacity 200ms cubic-bezier(0.2, 0, 0, 1)">;
1353
+ private settleListener;
964
1354
  constructor();
1355
+ startDirectControl(): void;
1356
+ updateDirectRect(rect: PixelRect): void;
1357
+ stopDirectControl(): void;
965
1358
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridItemDirective, never>;
966
1359
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridItemDirective, "[etGridItem]", ["etGridItem"], { "itemId": { "alias": "itemId"; "required": true; "isSignal": true; }; "minColSpan": { "alias": "minColSpan"; "required": false; "isSignal": true; }; "maxColSpan": { "alias": "maxColSpan"; "required": false; "isSignal": true; }; "minRowSpan": { "alias": "minRowSpan"; "required": false; "isSignal": true; }; "maxRowSpan": { "alias": "maxRowSpan"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
967
1360
  }
@@ -969,16 +1362,27 @@ declare class GridItemDirective {
969
1362
  declare class GridDragDirective {
970
1363
  protected grid: _ethlete_components.GridDirective;
971
1364
  private gridItem;
972
- private injector;
973
1365
  private elementRef;
1366
+ private destroyRef;
1367
+ private document;
974
1368
  dragHandle: DragHandleDirective;
975
- private renderer;
976
- private dragStartClient;
977
- private dragPixelOffset;
978
- protected dragTransform: _angular_core.Signal<string>;
1369
+ private origin;
1370
+ private startBreakpoint;
1371
+ private grabOffset;
1372
+ private containerOrigin;
1373
+ private lastPointer;
1374
+ private lastTarget;
1375
+ private gestureListeners;
1376
+ private autoScroller;
979
1377
  constructor();
980
- private applyFixed;
981
- private releaseFixed;
1378
+ private startDrag;
1379
+ private trackDragMove;
1380
+ private applyPointer;
1381
+ private settleDrag;
1382
+ private cancelDrag;
1383
+ private finishGesture;
1384
+ private attachGestureListeners;
1385
+ private detachGestureListeners;
982
1386
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDragDirective, never>;
983
1387
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridDragDirective, "[etGridDrag]", never, {}, {}, never, never, true, [{ directive: typeof _ethlete_core.DragHandleDirective; inputs: {}; outputs: { "dragStarted": "dragStarted"; "dragMoved": "dragMoved"; "dragEnded": "dragEnded"; }; }]>;
984
1388
  }
@@ -986,12 +1390,27 @@ declare class GridDragDirective {
986
1390
  declare class GridResizeDirective {
987
1391
  private grid;
988
1392
  private gridItem;
1393
+ private destroyRef;
1394
+ private document;
989
1395
  isResizing: _angular_core.WritableSignal<boolean>;
990
1396
  resizeEdges: _angular_core.Signal<ResizeEdge[]>;
991
- private resizeStartPos;
1397
+ private start;
1398
+ private startBreakpoint;
1399
+ private lastSnap;
1400
+ private lastEvent;
1401
+ private startContainerOrigin;
1402
+ private containerOrigin;
1403
+ private gestureListeners;
1404
+ private autoScroller;
1405
+ constructor();
992
1406
  beginResize(): void;
993
1407
  updateResize(event: ResizeMoveEvent): void;
994
1408
  finishResize(): void;
1409
+ cancelResize(): void;
1410
+ private applyResize;
1411
+ private finishGesture;
1412
+ private attachGestureListeners;
1413
+ private detachGestureListeners;
995
1414
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridResizeDirective, never>;
996
1415
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridResizeDirective, "[etGridResize]", never, {}, {}, never, never, true, never>;
997
1416
  }
@@ -1002,12 +1421,9 @@ type GridConfig = {
1002
1421
  registrations: GridComponentRegistration[];
1003
1422
  interactiveAriaLabel: string;
1004
1423
  readonlyAriaLabel: string;
1005
- dragHandleAriaLabel: string;
1424
+ removeActionAriaLabel: string;
1006
1425
  transformer: (text: string, locale: string) => string;
1007
- /** Replaces the default drag handle for all registered items. Receives `data` and `itemId` as inputs. */
1008
- dragHandleComponent?: Type<unknown>;
1009
- /** Replaces the default ✕ button for all registered items. Receives `data` and `itemId` as inputs. */
1010
- actionsComponent?: Type<unknown>;
1426
+ actionsComponent?: GridItemActionsComponent | null;
1011
1427
  };
1012
1428
  declare const provideGridConfig: (valueOverride?: Partial<GridConfig> | undefined) => _angular_core.Provider[];
1013
1429
  declare const injectGridConfig: {
@@ -1040,21 +1456,16 @@ declare const fromGridPosition: (pos: GridItemPosition) => {
1040
1456
 
1041
1457
  declare class GridComponent {
1042
1458
  grid: GridDirective;
1043
- private ghostRef;
1044
1459
  private gridConfig;
1045
1460
  private locale;
1046
- protected isReadOnly: _angular_core.Signal<boolean>;
1047
- protected dragHandleComponent: _angular_core.Signal<_angular_core.Type<unknown> | undefined>;
1048
- protected actionsComponent: _angular_core.Signal<_angular_core.Type<unknown> | undefined>;
1461
+ protected actionsComponent: _angular_core.Signal<_ethlete_components.GridItemActionsComponent | null>;
1049
1462
  protected registeredItems: _angular_core.Signal<{
1050
1463
  item: _ethlete_components.GridItemConfig;
1051
1464
  reg: _ethlete_components.GridComponentRegistration;
1052
1465
  }[]>;
1053
1466
  protected ariaLabel: _angular_core.Signal<string>;
1054
- protected gridColumns: _angular_core.Signal<number>;
1055
- protected gridGap: _angular_core.Signal<string>;
1056
- protected gridRowHeight: _angular_core.Signal<string>;
1057
- constructor();
1467
+ protected ghostRect: _angular_core.Signal<_ethlete_components.PixelRect | null>;
1468
+ protected ghostTransition: _angular_core.Signal<"none" | "translate 200ms cubic-bezier(0.2, 0, 0, 1), width 200ms cubic-bezier(0.2, 0, 0, 1), height 200ms cubic-bezier(0.2, 0, 0, 1)">;
1058
1469
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridComponent, never>;
1059
1470
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridComponent, "et-grid, [et-grid]", never, {}, {}, never, ["*"], true, [{ directive: typeof GridDirective; inputs: { "breakpoints": "breakpoints"; "rowHeight": "rowHeight"; "gap": "gap"; "initialItems": "initialItems"; "readOnly": "readOnly"; }; outputs: { "layoutChange": "layoutChange"; }; }]>;
1060
1471
  }
@@ -1066,18 +1477,33 @@ declare class GridItemComponent {
1066
1477
  private parentSurfaceProvider;
1067
1478
  gridDrag: GridDragDirective;
1068
1479
  gridResize: GridResizeDirective;
1480
+ private surfaceThemes;
1069
1481
  ariaLabel: _angular_core.InputSignal<string>;
1070
1482
  removed: _angular_core.OutputEmitterRef<void>;
1071
- private surfaceThemes;
1072
- private gridConfig;
1073
- private locale;
1074
1483
  protected isReadOnly: _angular_core.Signal<boolean>;
1075
- protected dragHandleAriaLabel: _angular_core.Signal<string>;
1076
1484
  private resolvedSurface;
1077
1485
  constructor();
1486
+ protected blockPointerDownWhenReadOnly(event: PointerEvent): void;
1078
1487
  applyKeyboardShortcut(event: KeyboardEvent): void;
1079
1488
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridItemComponent, never>;
1080
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridItemComponent, "et-grid-item, [et-grid-item]", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["[etGridItemDragHandle]", "*", "[etGridItemAction]"], true, [{ directive: typeof GridItemDirective; inputs: { "itemId": "itemId"; "minColSpan": "minColSpan"; "maxColSpan": "maxColSpan"; "minRowSpan": "minRowSpan"; "maxRowSpan": "maxRowSpan"; }; outputs: {}; }, { directive: typeof GridDragDirective; inputs: {}; outputs: {}; }, { directive: typeof GridResizeDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
1489
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridItemComponent, "et-grid-item, [et-grid-item]", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*", "[etGridItemAction]"], true, [{ directive: typeof GridItemDirective; inputs: { "itemId": "itemId"; "minColSpan": "minColSpan"; "maxColSpan": "maxColSpan"; "minRowSpan": "minRowSpan"; "maxRowSpan": "maxRowSpan"; }; outputs: {}; }, { directive: typeof GridDragDirective; inputs: {}; outputs: {}; }, { directive: typeof GridResizeDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
1490
+ }
1491
+
1492
+ declare class GridItemToolbarComponent {
1493
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridItemToolbarComponent, never>;
1494
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridItemToolbarComponent, "et-grid-item-toolbar, [et-grid-item-toolbar]", never, {}, {}, never, ["*"], true, never>;
1495
+ }
1496
+
1497
+ declare class GridItemDefaultActionsComponent {
1498
+ private grid;
1499
+ private gridConfig;
1500
+ private locale;
1501
+ itemId: _angular_core.InputSignal<string>;
1502
+ data: _angular_core.InputSignal<unknown>;
1503
+ protected removeAriaLabel: _angular_core.Signal<string>;
1504
+ protected remove(): void;
1505
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridItemDefaultActionsComponent, never>;
1506
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridItemDefaultActionsComponent, "et-grid-item-default-actions", never, { "itemId": { "alias": "itemId"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1081
1507
  }
1082
1508
 
1083
1509
  /**
@@ -1130,12 +1556,49 @@ declare const GRID_ERROR_CODES: {
1130
1556
  readonly INVALID_LAYOUT_STATE: 1903;
1131
1557
  };
1132
1558
 
1133
- declare const GridImports: readonly [typeof GridComponent, typeof GridItemComponent, typeof GridDebugComponent];
1559
+ declare const GridImports: readonly [typeof GridComponent, typeof GridItemComponent, typeof GridItemToolbarComponent, typeof GridItemDefaultActionsComponent, typeof GridDebugComponent];
1134
1560
 
1135
1561
  type IconDefinition = {
1136
1562
  name: string;
1563
+ /**
1564
+ * Optional style variant (e.g. `'solid'`, `'light'`, `'regular'`). Lets the same icon
1565
+ * `name` exist in several styles without encoding the style into the name. Icons
1566
+ * registered without a variant are matched by their bare name.
1567
+ */
1568
+ variant?: string;
1137
1569
  data: string;
1138
1570
  };
1571
+ /**
1572
+ * Augmentable registry for the literal set of icon names an app uses. Empty by default,
1573
+ * which keeps `etIcon` typed as plain `string`. The `@ethlete/components:icons` generator
1574
+ * writes an augmentation for this interface, or you can augment it manually:
1575
+ *
1576
+ * ```ts
1577
+ * declare module '@ethlete/components' {
1578
+ * interface EthleteIconNameRegistry {
1579
+ * name: 'shield' | 'plus';
1580
+ * }
1581
+ * }
1582
+ * ```
1583
+ */
1584
+ interface EthleteIconNameRegistry {
1585
+ }
1586
+ /**
1587
+ * Augmentable registry for the literal set of icon variants an app uses. Empty by default,
1588
+ * which keeps the `variant` input typed as plain `string`. See {@link EthleteIconNameRegistry}.
1589
+ */
1590
+ interface EthleteIconVariantRegistry {
1591
+ }
1592
+ type RegisteredIconName = EthleteIconNameRegistry extends {
1593
+ name: infer N extends string;
1594
+ } ? N : string;
1595
+ type RegisteredIconVariant = EthleteIconVariantRegistry extends {
1596
+ name: infer V extends string;
1597
+ } ? V : string;
1598
+ /** Variant the {@link IconDirective} falls back to when `etIcon` is used without an explicit `variant`. */
1599
+ declare const DEFAULT_ICON_VARIANT = "solid";
1600
+ /** Composite registry key for an icon `name` plus an optional `variant`. */
1601
+ declare const iconRegistryKey: (name: string, variant?: string | null) => string;
1139
1602
  declare const ICONS_TOKEN: InjectionToken<Record<string, IconDefinition>>;
1140
1603
  declare const provideIcons: (...icons: IconDefinition[]) => {
1141
1604
  provide: InjectionToken<Record<string, IconDefinition>>;
@@ -1146,6 +1609,8 @@ declare const ARROW_OUT_UP_RIGHT_ICON: IconDefinition;
1146
1609
 
1147
1610
  declare const ARROW_RIGHT_ICON: IconDefinition;
1148
1611
 
1612
+ declare const BOLD_ICON: IconDefinition;
1613
+
1149
1614
  declare const CHEVRON_ICON: IconDefinition;
1150
1615
 
1151
1616
  declare const CLIPBOARD_CHECK_ICON: IconDefinition;
@@ -1156,6 +1621,12 @@ declare const FOCUS_FRAME_ICON: IconDefinition;
1156
1621
 
1157
1622
  declare const GRID_2X2_ICON: IconDefinition;
1158
1623
 
1624
+ declare const HEADING_1_ICON: IconDefinition;
1625
+
1626
+ declare const HEADING_2_ICON: IconDefinition;
1627
+
1628
+ declare const HEADING_3_ICON: IconDefinition;
1629
+
1159
1630
  declare const ICON_ERROR_CODES: {
1160
1631
  readonly NO_ICONS_PROVIDED: 1800;
1161
1632
  readonly ICON_NOT_FOUND: 1801;
@@ -1170,21 +1641,33 @@ declare const ICON_DIRECTIVE_TOKEN: InjectionToken<IconDirective>;
1170
1641
  declare class IconDirective {
1171
1642
  private icons;
1172
1643
  private sanitizer;
1173
- iconNameToUse: _angular_core.InputSignal<string>;
1644
+ iconNameToUse: InputSignal<RegisteredIconName>;
1645
+ variant: InputSignal<RegisteredIconVariant | undefined>;
1174
1646
  allowHardcodedColor: _angular_core.InputSignalWithTransform<boolean, unknown>;
1647
+ private resolvedIcon;
1175
1648
  iconSrc: _angular_core.Signal<_angular_platform_browser.SafeHtml | null>;
1176
1649
  hostClasses: _angular_core.Signal<string>;
1177
1650
  constructor();
1178
1651
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconDirective, never>;
1179
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IconDirective, "[etIcon]", never, { "iconNameToUse": { "alias": "etIcon"; "required": true; "isSignal": true; }; "allowHardcodedColor": { "alias": "allowHardcodedColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1652
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IconDirective, "[etIcon]", never, { "iconNameToUse": { "alias": "etIcon"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "allowHardcodedColor": { "alias": "allowHardcodedColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1180
1653
  }
1181
1654
 
1655
+ declare const ITALIC_ICON: IconDefinition;
1656
+
1657
+ declare const LINK_ICON: IconDefinition;
1658
+
1659
+ declare const LIST_BULLETED_ICON: IconDefinition;
1660
+
1661
+ declare const LIST_NUMBERED_ICON: IconDefinition;
1662
+
1182
1663
  declare const LOCK_ICON: IconDefinition;
1183
1664
 
1184
1665
  declare const PENCIL_ICON: IconDefinition;
1185
1666
 
1186
1667
  declare const PLUS_ICON: IconDefinition;
1187
1668
 
1669
+ declare const STRIKETHROUGH_ICON: IconDefinition;
1670
+
1188
1671
  declare const TIMES_ICON: IconDefinition;
1189
1672
 
1190
1673
  declare const TRIANGLE_EXCLAMATION_ICON: IconDefinition;
@@ -1228,47 +1711,754 @@ declare class SpinnerComponent {
1228
1711
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "et-spinner", never, { "diameter": { "alias": "diameter"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "track": { "alias": "track"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "determinate": { "alias": "determinate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1229
1712
  }
1230
1713
 
1231
- declare class NotificationActionDirective {
1232
- private notification;
1233
- constructor();
1234
- runAction(): void;
1235
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationActionDirective, never>;
1236
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationActionDirective, "[etNotificationAction]", ["etNotificationAction"], {}, {}, never, never, true, never>;
1237
- }
1238
-
1239
- declare class NotificationDismissDirective {
1240
- private notification;
1241
- constructor();
1242
- dismiss(): void;
1243
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationDismissDirective, never>;
1244
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationDismissDirective, "[etNotificationDismiss]", ["etNotificationDismiss"], {}, {}, never, never, true, never>;
1245
- }
1246
-
1247
- declare class NotificationItemDirective {
1248
- private elementRef;
1249
- private stack;
1250
- ref: _angular_core.InputSignal<{
1251
- id: string;
1252
- entry: _angular_core.Signal<_ethlete_components.NotificationEntry>;
1253
- update: (partial: Partial<_ethlete_components.NotificationConfig>) => void;
1254
- dismiss: () => void;
1255
- pauseTimer: () => void;
1256
- resumeTimer: () => void;
1257
- afterDismissed: () => rxjs.Observable<void>;
1258
- markDismissed: () => void;
1259
- }>;
1714
+ declare class MenuContextTriggerDirective {
1715
+ private menu;
1716
+ private document;
1717
+ elementRef: ElementRef<HTMLElement>;
1718
+ private destroyRef;
1719
+ private repositionSubscription;
1260
1720
  constructor();
1261
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationItemDirective, never>;
1262
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationItemDirective, "[etNotificationItem]", never, { "ref": { "alias": "etNotificationItem"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1263
- }
1264
-
1265
- type RegisteredNotificationItem = {
1721
+ isOpen(): boolean;
1722
+ protected handleContextMenu(event: MouseEvent): void;
1723
+ private attachRepositionListener;
1724
+ private detachRepositionListener;
1725
+ private isEventOnZone;
1726
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuContextTriggerDirective, never>;
1727
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuContextTriggerDirective, "[etMenuContextTrigger]", ["etMenuContextTrigger"], {}, {}, never, never, true, never>;
1728
+ }
1729
+
1730
+ type OverlayStrategyContext = {
1731
+ overlayRef: OverlayRef<object, unknown>;
1732
+ runtimeRef: OverlayRuntimeRef<object, unknown>;
1733
+ /** The mounted container component's host element (the runtime pane element). */
1734
+ containerEl: HTMLElement;
1735
+ /** The runtime host element wrapping backdrop and pane. */
1736
+ hostEl: HTMLElement;
1737
+ backdropEl: HTMLElement | null;
1738
+ /** The container's animated lifecycle, driving enter/leave transitions. */
1739
+ lifecycle: AnimatedLifecycleDirective;
1740
+ config: OverlayBreakpointConfig;
1741
+ previousConfig?: OverlayBreakpointConfig;
1742
+ origin?: HTMLElement | Event;
1743
+ };
1744
+ type OverlayStrategy = {
1745
+ /** Unique identifier for the strategy */
1266
1746
  id: string;
1267
- el: HTMLElement;
1268
- };
1269
- declare class NotificationStackDirective {
1270
- protected context: _ethlete_components.NotificationStackContext;
1271
- private destroyRef;
1747
+ /** Configuration for the overlay when this strategy is applied */
1748
+ config: OverlayBreakpointConfig;
1749
+ /**
1750
+ * Called when the overlay transitions FROM another strategy TO this strategy.
1751
+ * Only called during breakpoint changes, not on initial open.
1752
+ * @example Fullscreen dialog → Regular dialog on viewport resize
1753
+ */
1754
+ onSwitchedTo?: (context: OverlayStrategyContext) => void;
1755
+ /**
1756
+ * Called when the overlay transitions FROM this strategy TO another strategy.
1757
+ * Only called during breakpoint changes, not on close.
1758
+ * Use this to cleanup strategy-specific state when transitioning layouts.
1759
+ * @example Regular dialog → Fullscreen dialog on viewport resize
1760
+ */
1761
+ onSwitchedAwayFrom?: (context: OverlayStrategyContext) => void;
1762
+ /**
1763
+ * Called when the overlay is first opened with this strategy.
1764
+ * Use this for initial setup and enter animations.
1765
+ * The hook is responsible for starting the enter transition (e.g. `context.lifecycle.enter()`).
1766
+ */
1767
+ onBeforeEnter?: (context: OverlayStrategyContext) => void;
1768
+ /**
1769
+ * Called after the overlay has completed its enter animation.
1770
+ */
1771
+ onAfterEnter?: (context: OverlayStrategyContext) => void;
1772
+ /**
1773
+ * Called when the overlay is about to close (beforeClosed).
1774
+ * The hook is responsible for starting the leave transition (e.g. `context.lifecycle.leave()`).
1775
+ */
1776
+ onBeforeLeave?: (context: OverlayStrategyContext) => void;
1777
+ /**
1778
+ * Called after the overlay has been closed (afterClosed).
1779
+ * Use this for final cleanup.
1780
+ */
1781
+ onAfterLeave?: (context: OverlayStrategyContext) => void;
1782
+ };
1783
+ type OverlayStrategyBreakpoint = {
1784
+ /**
1785
+ * Breakpoint to apply the strategy for. If a number is provided, it will be used as a pixel value.
1786
+ * Always uses the min-width media query.
1787
+ *
1788
+ * @default 'xs' // 0px
1789
+ */
1790
+ breakpoint?: Breakpoint | number;
1791
+ /** Overlay strategy to be applied when the breakpoint is active. */
1792
+ strategy: OverlayStrategy;
1793
+ };
1794
+ type OverlayDragToDismissConfig = {
1795
+ /** Direction in which the overlay can be dragged. */
1796
+ direction: 'to-top' | 'to-bottom' | 'to-left' | 'to-right';
1797
+ /**
1798
+ * The minimum distance in pixels that the user must swipe to dismiss the overlay.
1799
+ *
1800
+ * @default 150 // 150px
1801
+ */
1802
+ minDistanceToDismiss?: number;
1803
+ /**
1804
+ * The minimum velocity in pixels per second that the user must swipe to dismiss the overlay.
1805
+ *
1806
+ * @default 150 // 150px/s
1807
+ */
1808
+ minVelocityToDismiss?: number;
1809
+ };
1810
+ type OverlayBreakpointConfig = {
1811
+ /** Min-width of the overlay. If a number is provided, assumes pixel units. */
1812
+ minWidth?: number | string;
1813
+ /** Max-width of the overlay. If a number is provided, assumes pixel units. */
1814
+ maxWidth?: number | string;
1815
+ /** Min-height of the overlay. If a number is provided, assumes pixel units. */
1816
+ minHeight?: number | string;
1817
+ /** Max-height of the overlay. If a number is provided, assumes pixel units. */
1818
+ maxHeight?: number | string;
1819
+ /** Width of the overlay. */
1820
+ width?: number | string;
1821
+ /** Height of the overlay. */
1822
+ height?: number | string;
1823
+ /** Position strategy to be used for the overlay. */
1824
+ positionStrategy?: (origin?: HTMLElement) => OverlayRuntimePositionStrategy;
1825
+ /** Custom class for the overlay container (the runtime pane element hosting the overlay content). */
1826
+ containerClass?: string | string[];
1827
+ /** Custom class for the runtime host element wrapping backdrop and pane. */
1828
+ hostClass?: string | string[];
1829
+ /** Custom class for the backdrop. */
1830
+ backdropClass?: string | string[];
1831
+ /** Custom class for the document (`<html>` element). */
1832
+ documentClass?: string | string[];
1833
+ /** Custom class for the `<body>` element */
1834
+ bodyClass?: string | string[];
1835
+ /** Determine if and in what direction the overlay should be able to be dragged to dismiss it. */
1836
+ dragToDismiss?: OverlayDragToDismissConfig;
1837
+ /**
1838
+ * Whether a backdrop element is rendered behind the overlay. Only applied at mount time (the
1839
+ * initially matched strategy) — it cannot change during breakpoint switches. An explicit
1840
+ * `hasBackdrop` on the overlay config always wins over this strategy default.
1841
+ *
1842
+ * @default undefined // falls back to the overlay config / modal behavior
1843
+ */
1844
+ hasBackdrop?: boolean;
1845
+ /**
1846
+ * Whether the transform origin should be set using the config's `origin` property value.
1847
+ *
1848
+ * @default false
1849
+ */
1850
+ applyTransformOrigin?: boolean;
1851
+ /**
1852
+ * Renders a floating-ui-positioned arrow on the overlay container that points at the origin.
1853
+ * Only meaningful for anchored positioning. The arrow inherits the pane background; combine with
1854
+ * an `offset` so the pane leaves room for it.
1855
+ *
1856
+ * @default false
1857
+ */
1858
+ arrow?: boolean;
1859
+ };
1860
+
1861
+ type OverlayAutoFocusTarget = 'container' | 'first-heading' | 'first-tabbable';
1862
+ type OverlayRole = 'dialog' | 'alertdialog';
1863
+ type OverlayMode = 'modal' | 'non-modal';
1864
+ type OverlayConfig = {
1865
+ viewContainerRef?: ViewContainerRef;
1866
+ injector?: Injector;
1867
+ id?: string;
1868
+ /**
1869
+ * The element or event the overlay was opened from. Used as the anchor reference
1870
+ * for anchored positioning and as the transform origin for strategy animations.
1871
+ * When omitted and strategies are used, falls back to the currently focused element.
1872
+ */
1873
+ origin?: HTMLElement | Event;
1874
+ role?: OverlayRole;
1875
+ hasBackdrop?: boolean;
1876
+ disableClose?: boolean;
1877
+ /**
1878
+ * Bindings applied to the overlay component, using Angular's native binding API
1879
+ * (`inputBinding`, `outputBinding`, `twoWayBinding`).
1880
+ */
1881
+ bindings?: Binding[];
1882
+ ariaDescribedBy?: string | null;
1883
+ ariaLabelledBy?: string | null;
1884
+ ariaLabel?: string | null;
1885
+ autoFocus?: OverlayAutoFocusTarget | string | false;
1886
+ restoreFocus?: boolean;
1887
+ providers?: StaticProvider[];
1888
+ hostClass?: string | string[];
1889
+ backdropClass?: string | string[];
1890
+ panelClass?: string | string[];
1891
+ mode?: OverlayMode;
1892
+ closeOnOutsidePointer?: boolean;
1893
+ closeOnEscape?: boolean;
1894
+ /**
1895
+ * Breakpoint-driven overlay strategies (dialog, sheets, full-screen, …).
1896
+ * When set, position, sizing and classes are controlled by the active strategy.
1897
+ */
1898
+ strategies?: () => OverlayStrategyBreakpoint[];
1899
+ /**
1900
+ * Disables the default overlay animations so custom ones can be applied.
1901
+ *
1902
+ * @default false
1903
+ */
1904
+ customAnimated?: boolean;
1905
+ };
1906
+
1907
+ declare const createOverlayRef: <TComponent extends object, TResult = unknown>(config: OverlayConfig) => {
1908
+ readonly id: string;
1909
+ readonly elements: _ethlete_core.OverlayRuntimeElements | null;
1910
+ config: OverlayConfig;
1911
+ headerTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
1912
+ /** @internal Set (or clear) the active header template. */
1913
+ setHeaderTemplate: (template: TemplateRef<unknown> | null) => void;
1914
+ componentInstance: () => TComponent | null;
1915
+ close: (result?: TResult) => void;
1916
+ closeVia: (source: OverlayRuntimeCloseSource, result?: TResult) => void;
1917
+ updatePositionStrategy: (strategy: OverlayRuntimePositionStrategy) => void;
1918
+ attachComponentInstanceOverride: (getter: () => TComponent | null) => void;
1919
+ afterOpened: () => Observable<void>;
1920
+ beforeClosed: () => Observable<TResult | undefined>;
1921
+ afterClosed: () => Observable<TResult | undefined>;
1922
+ attachRuntime: (runtimeRef: OverlayRuntimeRef<TComponent, TResult>) => void;
1923
+ };
1924
+ type OverlayRef<TComponent extends object = object, TResult = unknown> = ReturnType<typeof createOverlayRef<TComponent, TResult>>;
1925
+ declare const OVERLAY_REF: InjectionToken<{
1926
+ readonly id: string;
1927
+ readonly elements: _ethlete_core.OverlayRuntimeElements | null;
1928
+ config: OverlayConfig;
1929
+ headerTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
1930
+ /** @internal Set (or clear) the active header template. */
1931
+ setHeaderTemplate: (template: TemplateRef<unknown> | null) => void;
1932
+ componentInstance: () => object | null;
1933
+ close: (result?: unknown) => void;
1934
+ closeVia: (source: OverlayRuntimeCloseSource, result?: unknown) => void;
1935
+ updatePositionStrategy: (strategy: OverlayRuntimePositionStrategy) => void;
1936
+ attachComponentInstanceOverride: (getter: () => object | null) => void;
1937
+ afterOpened: () => Observable<void>;
1938
+ beforeClosed: () => Observable<unknown>;
1939
+ afterClosed: () => Observable<unknown>;
1940
+ attachRuntime: (runtimeRef: OverlayRuntimeRef<object, unknown>) => void;
1941
+ }>;
1942
+
1943
+ declare class OverlayAnchorDirective {
1944
+ private overlay;
1945
+ private destroyRef;
1946
+ elementRef: ElementRef<HTMLElement>;
1947
+ constructor();
1948
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayAnchorDirective, never>;
1949
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayAnchorDirective, "[etOverlayAnchor]", ["etOverlayAnchor"], {}, {}, never, never, true, never>;
1950
+ }
1951
+
1952
+ declare class OverlayTriggerDirective {
1953
+ private overlay;
1954
+ private destroyRef;
1955
+ elementRef: ElementRef<HTMLElement>;
1956
+ constructor();
1957
+ toggle(): void;
1958
+ isOpen(): boolean;
1959
+ expanded(): boolean | null;
1960
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayTriggerDirective, never>;
1961
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayTriggerDirective, "[etOverlayTrigger]", ["etOverlayTrigger"], {}, {}, never, never, true, never>;
1962
+ }
1963
+
1964
+ declare class OverlayDirective {
1965
+ private destroyRef;
1966
+ private overlayManager;
1967
+ mode: _angular_core.InputSignal<OverlayMode>;
1968
+ role: _angular_core.InputSignal<OverlayRole | undefined>;
1969
+ open: _angular_core.ModelSignal<boolean>;
1970
+ disabled: _angular_core.InputSignal<boolean>;
1971
+ disableClose: _angular_core.InputSignal<boolean>;
1972
+ autoFocus: _angular_core.InputSignal<string | false | undefined>;
1973
+ restoreFocus: _angular_core.InputSignal<boolean>;
1974
+ hasBackdrop: _angular_core.InputSignal<boolean | undefined>;
1975
+ closeOnEscape: _angular_core.InputSignal<boolean>;
1976
+ closeOnOutsidePointer: _angular_core.InputSignal<boolean>;
1977
+ hostClass: _angular_core.InputSignal<string | string[] | undefined>;
1978
+ backdropClass: _angular_core.InputSignal<string | string[] | undefined>;
1979
+ panelClass: _angular_core.InputSignal<string | string[] | undefined>;
1980
+ placement: _angular_core.InputSignal<Placement>;
1981
+ fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
1982
+ offset: _angular_core.InputSignal<OffsetOptions | null>;
1983
+ viewportPadding: _angular_core.InputSignal<Padding | null>;
1984
+ autoResize: _angular_core.InputSignal<boolean>;
1985
+ shift: _angular_core.InputSignal<boolean>;
1986
+ autoHide: _angular_core.InputSignal<boolean>;
1987
+ autoCloseIfReferenceHidden: _angular_core.InputSignal<boolean>;
1988
+ mirrorWidth: _angular_core.InputSignal<boolean>;
1989
+ /** @internal */
1990
+ registeredAnchor: _angular_core.WritableSignal<OverlayAnchorDirective | null>;
1991
+ /** @internal */
1992
+ registeredSurface: _angular_core.WritableSignal<OverlaySurfaceDirective | null>;
1993
+ /** @internal */
1994
+ registeredTrigger: _angular_core.WritableSignal<OverlayTriggerDirective | null>;
1995
+ /** @internal */
1996
+ overlayRef: _angular_core.WritableSignal<OverlayRef<OverlayTemplateHostComponent, unknown> | null>;
1997
+ isMounted: _angular_core.Signal<boolean>;
1998
+ private originElement;
1999
+ constructor();
2000
+ show(): void;
2001
+ hide(result?: unknown): void;
2002
+ toggle(): void;
2003
+ /** @internal */
2004
+ unregisterTrigger(trigger: OverlayTriggerDirective): void;
2005
+ /** @internal */
2006
+ unregisterAnchor(anchor: OverlayAnchorDirective): void;
2007
+ /** @internal */
2008
+ unregisterSurface(surface: OverlaySurfaceDirective): void;
2009
+ private mountOverlay;
2010
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayDirective, never>;
2011
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayDirective, "[etOverlay]", ["etOverlay"], { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnOutsidePointer": { "alias": "closeOnOutsidePointer"; "required": false; "isSignal": true; }; "hostClass": { "alias": "hostClass"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "autoHide": { "alias": "autoHide"; "required": false; "isSignal": true; }; "autoCloseIfReferenceHidden": { "alias": "autoCloseIfReferenceHidden"; "required": false; "isSignal": true; }; "mirrorWidth": { "alias": "mirrorWidth"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
2012
+ }
2013
+
2014
+ type OverlaySurfaceContext = {
2015
+ $implicit: OverlayDirective;
2016
+ overlay: OverlayDirective;
2017
+ close: (result?: unknown) => void;
2018
+ };
2019
+ declare class OverlaySurfaceDirective {
2020
+ private overlay;
2021
+ templateRef: TemplateRef<OverlaySurfaceContext>;
2022
+ private destroyRef;
2023
+ constructor();
2024
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlaySurfaceDirective, never>;
2025
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlaySurfaceDirective, "ng-template[etOverlaySurface]", ["etOverlaySurface"], {}, {}, never, never, true, never>;
2026
+ }
2027
+
2028
+ declare class OverlayTemplateHostComponent {
2029
+ protected template: _angular_core.InputSignal<TemplateRef<OverlaySurfaceContext>>;
2030
+ protected context: _angular_core.InputSignal<OverlaySurfaceContext>;
2031
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayTemplateHostComponent, never>;
2032
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayTemplateHostComponent, "et-overlay-template-host", never, { "template": { "alias": "template"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
2033
+ }
2034
+
2035
+ declare class MenuPanelDirective {
2036
+ /** @internal */
2037
+ menu: MenuDirective | null;
2038
+ elementRef: ElementRef<HTMLElement>;
2039
+ private destroyRef;
2040
+ protected labelledBy: _angular_core.Signal<string | null>;
2041
+ protected busy: _angular_core.Signal<true | null>;
2042
+ constructor();
2043
+ /** @internal */
2044
+ focus(): void;
2045
+ protected handleKeydown(event: KeyboardEvent): void;
2046
+ protected handlePointerEnter(event: PointerEvent): void;
2047
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuPanelDirective, never>;
2048
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuPanelDirective, "[etMenuPanel]", ["etMenuPanel"], {}, {}, never, never, true, never>;
2049
+ }
2050
+
2051
+ declare class MenuSearchDirective {
2052
+ private menu;
2053
+ private document;
2054
+ elementRef: ElementRef<HTMLInputElement>;
2055
+ private destroyRef;
2056
+ query: _angular_core.ModelSignal<string>;
2057
+ loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
2058
+ error: _angular_core.InputSignal<string | null>;
2059
+ /** @internal Id of the element rendering the error message, set by the component displaying it. */
2060
+ errorElementId: _angular_core.WritableSignal<string | null>;
2061
+ constructor();
2062
+ /** @internal */
2063
+ isFocused(): boolean;
2064
+ /** @internal */
2065
+ focus(options?: {
2066
+ select?: boolean;
2067
+ }): void;
2068
+ /** @internal Focuses the input and appends a character typed while an item had focus. */
2069
+ appendCharacter(character: string): void;
2070
+ clear(): void;
2071
+ protected handleInput(): void;
2072
+ protected handleKeydown(event: KeyboardEvent): void;
2073
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuSearchDirective, never>;
2074
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuSearchDirective, "input[etMenuSearch]", ["etMenuSearch"], { "query": { "alias": "query"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, { "query": "queryChange"; }, never, never, true, never>;
2075
+ }
2076
+
2077
+ type MenuSurfaceContext = {
2078
+ $implicit: MenuDirective;
2079
+ menu: MenuDirective;
2080
+ close: (result?: unknown) => void;
2081
+ };
2082
+ declare class MenuSurfaceDirective {
2083
+ private menu;
2084
+ templateRef: TemplateRef<MenuSurfaceContext>;
2085
+ private destroyRef;
2086
+ constructor();
2087
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuSurfaceDirective, never>;
2088
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuSurfaceDirective, "ng-template[etMenuSurface]", ["etMenuSurface"], {}, {}, never, never, true, never>;
2089
+ }
2090
+
2091
+ declare class MenuTriggerDirective {
2092
+ /** @internal The menu this trigger opens - for submenu trigger items, that is the submenu. */
2093
+ menu: MenuDirective | null;
2094
+ elementRef: ElementRef<HTMLElement>;
2095
+ private destroyRef;
2096
+ /** @internal The same-element menu item this trigger is combined with, if any. Set by the item. */
2097
+ hostItem: MenuItemDirective | null;
2098
+ constructor();
2099
+ /** @internal */
2100
+ setHostItem(item: MenuItemDirective): void;
2101
+ isOpen(): boolean;
2102
+ protected expanded(): boolean | null;
2103
+ protected controls(): string | null;
2104
+ protected handleClick(): void;
2105
+ protected handleKeydown(event: KeyboardEvent): void;
2106
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTriggerDirective, never>;
2107
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTriggerDirective, "[etMenuTrigger]", ["etMenuTrigger"], {}, {}, never, never, true, never>;
2108
+ }
2109
+
2110
+ type MenuCloseReason = 'item' | 'escape' | 'tab' | 'outside' | 'api';
2111
+ type MenuOpenSource = 'click' | 'hover' | 'keyboard' | 'api';
2112
+ type MenuAnchorPoint = {
2113
+ x: number;
2114
+ y: number;
2115
+ };
2116
+ declare class MenuDirective {
2117
+ private destroyRef;
2118
+ private document;
2119
+ private overlayManager;
2120
+ parent: MenuDirective | null;
2121
+ placement: _angular_core.InputSignal<Placement | "auto">;
2122
+ fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
2123
+ offset: _angular_core.InputSignal<OffsetOptions | "auto" | null>;
2124
+ viewportPadding: _angular_core.InputSignal<Padding | null>;
2125
+ autoFocus: _angular_core.InputSignal<boolean>;
2126
+ hoverOpen: _angular_core.InputSignal<boolean>;
2127
+ hoverOpenDelay: _angular_core.InputSignal<number>;
2128
+ hoverCloseDelay: _angular_core.InputSignal<number>;
2129
+ disabled: _angular_core.InputSignal<boolean>;
2130
+ open: _angular_core.ModelSignal<boolean>;
2131
+ root: MenuDirective;
2132
+ depth: number;
2133
+ isRoot: boolean;
2134
+ /** @internal */
2135
+ registeredTrigger: _angular_core.WritableSignal<MenuTriggerDirective | null>;
2136
+ /** @internal */
2137
+ registeredContextTrigger: _angular_core.WritableSignal<MenuContextTriggerDirective | null>;
2138
+ /** @internal */
2139
+ registeredSurface: _angular_core.WritableSignal<MenuSurfaceDirective | null>;
2140
+ /** @internal */
2141
+ registeredPanel: _angular_core.WritableSignal<MenuPanelDirective | null>;
2142
+ /** @internal */
2143
+ registeredSearch: _angular_core.WritableSignal<MenuSearchDirective | null>;
2144
+ /** @internal */
2145
+ overlayRef: _angular_core.WritableSignal<OverlayRef<OverlayTemplateHostComponent, unknown> | null>;
2146
+ /** @internal */
2147
+ openSubmenu: _angular_core.WritableSignal<MenuDirective | null>;
2148
+ /** @internal */
2149
+ activeItem: _angular_core.WritableSignal<MenuItemDirective | null>;
2150
+ /** @internal */
2151
+ anchorPoint: _angular_core.WritableSignal<MenuAnchorPoint | null>;
2152
+ private items;
2153
+ /** @internal */
2154
+ sortedItems: _angular_core.Signal<MenuItemDirective[]>;
2155
+ /** @internal */
2156
+ enabledItems: _angular_core.Signal<MenuItemDirective[]>;
2157
+ isMounted: _angular_core.Signal<boolean>;
2158
+ private openSource;
2159
+ private initialFocusTarget;
2160
+ private hoverIntent;
2161
+ private typeahead;
2162
+ private rootListenersCleanup;
2163
+ constructor();
2164
+ show(source?: MenuOpenSource, initialFocus?: 'first' | 'last'): void;
2165
+ hide(): void;
2166
+ toggle(source?: MenuOpenSource): void;
2167
+ /** Closes the whole menu tree, regardless of which level this is called on. */
2168
+ closeAll(reason?: MenuCloseReason): void;
2169
+ /** Opens the menu anchored to a viewport point instead of the trigger element. */
2170
+ openAt(point: MenuAnchorPoint, source?: MenuOpenSource): void;
2171
+ /** @internal Closes this level and returns focus to the trigger item in the parent menu. */
2172
+ closeLevel(reason: MenuCloseReason): void;
2173
+ /** @internal */
2174
+ openSubmenuExclusive(submenu: MenuDirective): void;
2175
+ /** @internal */
2176
+ registerItem(item: MenuItemDirective): void;
2177
+ /** @internal */
2178
+ unregisterItem(item: MenuItemDirective): void;
2179
+ /** @internal */
2180
+ unregisterTrigger(trigger: MenuTriggerDirective): void;
2181
+ /** @internal */
2182
+ unregisterContextTrigger(trigger: MenuContextTriggerDirective): void;
2183
+ /** @internal */
2184
+ unregisterSurface(surface: MenuSurfaceDirective): void;
2185
+ /** @internal */
2186
+ unregisterPanel(panel: MenuPanelDirective): void;
2187
+ /** @internal */
2188
+ unregisterSearch(search: MenuSearchDirective): void;
2189
+ /** @internal */
2190
+ setActiveItem(item: MenuItemDirective, options?: {
2191
+ focus?: boolean;
2192
+ }): void;
2193
+ /** @internal Central keyboard handling for items, the panel, and the search input. */
2194
+ handleKeydown(event: KeyboardEvent): void;
2195
+ /** @internal */
2196
+ notifyItemPointerEnter(item: MenuItemDirective): void;
2197
+ /** @internal Cancels pending submenu hover timers along the ancestor chain. */
2198
+ notifyPanelPointerEnter(): void;
2199
+ /** @internal */
2200
+ focusTrigger(): void;
2201
+ /** @internal True while a pointerdown target belongs to any open pane of this menu's tree. */
2202
+ isTargetInsideTree(target: EventTarget | null): boolean;
2203
+ private isFocusInsideTree;
2204
+ private handleItemHover;
2205
+ private moveActive;
2206
+ private setActiveToEdge;
2207
+ private mountOverlay;
2208
+ private applyInitialFocus;
2209
+ private attachRootInteractionListeners;
2210
+ private detachRootInteractionListeners;
2211
+ private buildStrategies;
2212
+ private buildVirtualAnchoredPosition;
2213
+ private resolvedPlacement;
2214
+ private resolvedFallbackPlacements;
2215
+ private resolvedOffset;
2216
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuDirective, never>;
2217
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuDirective, "[etMenu]", ["etMenu"], { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "hoverOpen": { "alias": "hoverOpen"; "required": false; "isSignal": true; }; "hoverOpenDelay": { "alias": "hoverOpenDelay"; "required": false; "isSignal": true; }; "hoverCloseDelay": { "alias": "hoverCloseDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
2218
+ }
2219
+
2220
+ type MenuItemActivationSource = 'pointer' | 'keyboard-enter' | 'keyboard-space';
2221
+ type MenuItemActivationEvent = {
2222
+ source: MenuItemActivationSource;
2223
+ };
2224
+ declare class MenuItemDirective {
2225
+ private nearestMenu;
2226
+ private sameElementTrigger;
2227
+ elementRef: ElementRef<HTMLElement>;
2228
+ private destroyRef;
2229
+ disabled: _angular_core.InputSignal<boolean>;
2230
+ closeOnActivate: _angular_core.InputSignal<boolean | undefined>;
2231
+ activated: _angular_core.OutputEmitterRef<MenuItemActivationEvent>;
2232
+ /** @internal The menu whose item list this item belongs to. */
2233
+ owner: MenuDirective | null;
2234
+ /** @internal The submenu this item opens when it doubles as a submenu trigger. */
2235
+ submenu: MenuDirective | null;
2236
+ /** @internal Role source overriding the default `menuitem`, e.g. with `menuitemradio` or `menuitemcheckbox`. */
2237
+ roleOverride: _angular_core.WritableSignal<Signal<string> | null>;
2238
+ /** @internal Additional disabled state source, e.g. from a composing selection item directive. */
2239
+ disabledOverride: _angular_core.WritableSignal<Signal<boolean> | null>;
2240
+ private defaultCloseOnActivate;
2241
+ private pendingKeyboardSource;
2242
+ protected role: Signal<string>;
2243
+ protected isActive: Signal<boolean>;
2244
+ /** @internal Combines the item's own `disabled` input with a state pushed in by a composing directive. */
2245
+ isDisabled: Signal<boolean>;
2246
+ protected tabIndex: Signal<0 | -1>;
2247
+ constructor();
2248
+ /** @internal Sets whether activation closes the menu tree when the `closeOnActivate` input is not set. */
2249
+ setDefaultCloseOnActivate(value: boolean): void;
2250
+ /** @internal */
2251
+ focus(): void;
2252
+ /** @internal Returns the visible label used for typeahead matching. */
2253
+ textContent(): string;
2254
+ /** @internal Activates via a synthesized click so consumer (click) handlers fire for keyboard users too. */
2255
+ activateFromKeyboard(source: MenuItemActivationSource): void;
2256
+ protected handleClick(event: MouseEvent): void;
2257
+ protected handleKeydown(event: KeyboardEvent): void;
2258
+ protected handleMousedown(event: MouseEvent): void;
2259
+ protected handlePointerEnter(event: PointerEvent): void;
2260
+ protected handleFocus(): void;
2261
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItemDirective, never>;
2262
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuItemDirective, "[etMenuItem]", ["etMenuItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnActivate": { "alias": "closeOnActivate"; "required": false; "isSignal": true; }; }, { "activated": "activated"; }, never, never, true, never>;
2263
+ }
2264
+
2265
+ declare const MENU_SELECTION_GROUP_TOKEN: InjectionToken<MenuSelectionGroupDirectiveBase<unknown>>;
2266
+ declare const MENU_SELECTION_GROUP_MULTIPLE: InjectionToken<boolean>;
2267
+ declare const MENU_SELECTION_ITEM_KIND: InjectionToken<MenuSelectionItemKind>;
2268
+ type MenuSelectionItemKind = 'radio' | 'checkbox';
2269
+ type MenuSelectionGroupItem<TValue = unknown> = {
2270
+ value: Signal<TValue | undefined>;
2271
+ checked: WritableSignal<boolean>;
2272
+ disabled: Signal<boolean>;
2273
+ elementRef: ElementRef<HTMLElement>;
2274
+ };
2275
+ type MenuSelectionGroupDirectiveBase<TValue = unknown> = {
2276
+ value: WritableSignal<TValue | TValue[] | null>;
2277
+ multiple: Signal<boolean>;
2278
+ disabled: Signal<boolean>;
2279
+ items: Signal<MenuSelectionGroupItem<TValue>[]>;
2280
+ labelId: WritableSignal<string | null>;
2281
+ registerItem(item: MenuSelectionGroupItem<TValue>): void;
2282
+ unregisterItem(item: MenuSelectionGroupItem<TValue>): void;
2283
+ select(item: MenuSelectionGroupItem<TValue>): void;
2284
+ markTouched(): void;
2285
+ };
2286
+
2287
+ declare class MenuSelectionGroupDirective implements MenuSelectionGroupDirectiveBase {
2288
+ private multipleOverride;
2289
+ value: _angular_core.ModelSignal<unknown>;
2290
+ touched: _angular_core.ModelSignal<boolean>;
2291
+ multipleInput: _angular_core.InputSignal<boolean>;
2292
+ disabled: _angular_core.InputSignal<boolean>;
2293
+ invalid: _angular_core.InputSignal<boolean>;
2294
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
2295
+ required: _angular_core.InputSignal<boolean>;
2296
+ name: _angular_core.InputSignal<string>;
2297
+ multiple: _angular_core.Signal<boolean>;
2298
+ items: _angular_core.WritableSignal<MenuSelectionGroupItem[]>;
2299
+ shouldDisplayError: _angular_core.Signal<boolean>;
2300
+ /** @internal Set by a group label component so `aria-labelledby` can reference it. */
2301
+ labelId: _angular_core.WritableSignal<string | null>;
2302
+ constructor();
2303
+ /** @internal */
2304
+ registerItem(item: MenuSelectionGroupItem): void;
2305
+ /** @internal */
2306
+ unregisterItem(item: MenuSelectionGroupItem): void;
2307
+ markTouched(): void;
2308
+ select(item: MenuSelectionGroupItem): void;
2309
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuSelectionGroupDirective, never>;
2310
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuSelectionGroupDirective, "[etMenuSelectionGroup]", ["etMenuSelectionGroup"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "multipleInput": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
2311
+ }
2312
+
2313
+ declare class MenuSelectionItemDirective {
2314
+ private group;
2315
+ private kindOverride;
2316
+ private menuItem;
2317
+ elementRef: ElementRef<HTMLElement>;
2318
+ private destroyRef;
2319
+ value: _angular_core.InputSignal<unknown>;
2320
+ checked: _angular_core.ModelSignal<boolean>;
2321
+ indeterminate: _angular_core.ModelSignal<boolean>;
2322
+ touched: _angular_core.ModelSignal<boolean>;
2323
+ disabled: _angular_core.InputSignal<boolean>;
2324
+ invalid: _angular_core.InputSignal<boolean>;
2325
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
2326
+ required: _angular_core.InputSignal<boolean>;
2327
+ name: _angular_core.InputSignal<string>;
2328
+ kind: _angular_core.Signal<MenuSelectionItemKind>;
2329
+ ariaChecked: _angular_core.Signal<boolean | "mixed">;
2330
+ private isDisabled;
2331
+ constructor();
2332
+ toggle(): void;
2333
+ protected handleBlur(): void;
2334
+ private handleActivation;
2335
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuSelectionItemDirective, never>;
2336
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuSelectionItemDirective, "[etMenuSelectionItem]", ["etMenuSelectionItem"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "indeterminate": "indeterminateChange"; "touched": "touchedChange"; }, never, never, true, never>;
2337
+ }
2338
+
2339
+ declare class MenuCheckboxGroupComponent {
2340
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuCheckboxGroupComponent, never>;
2341
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuCheckboxGroupComponent, "et-menu-checkbox-group", never, {}, {}, never, ["et-menu-group-label", "*"], true, [{ directive: typeof MenuSelectionGroupDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }]>;
2342
+ }
2343
+
2344
+ declare class MenuCheckboxItemComponent {
2345
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuCheckboxItemComponent, never>;
2346
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuCheckboxItemComponent, "et-menu-checkbox-item", never, {}, {}, never, ["*"], true, [{ directive: typeof MenuItemDirective; inputs: { "closeOnActivate": "closeOnActivate"; }; outputs: { "activated": "activated"; }; }, { directive: typeof MenuSelectionItemDirective; inputs: { "value": "value"; "checked": "checked"; "indeterminate": "indeterminate"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; "touchedChange": "touchedChange"; }; }]>;
2347
+ }
2348
+
2349
+ declare const MENU_ERROR_CODES: {
2350
+ readonly MISSING_MENU_SURFACE: 1300;
2351
+ readonly TRIGGER_OUTSIDE_MENU: 1301;
2352
+ readonly SURFACE_OUTSIDE_MENU: 1302;
2353
+ readonly ITEM_OUTSIDE_MENU: 1303;
2354
+ readonly PANEL_OUTSIDE_MENU: 1304;
2355
+ readonly SEARCH_OUTSIDE_MENU: 1305;
2356
+ readonly CONTEXT_TRIGGER_OUTSIDE_MENU: 1306;
2357
+ readonly CONTEXT_TRIGGER_ON_SUBMENU: 1307;
2358
+ readonly SELECTION_ITEM_MISSING_VALUE: 1320;
2359
+ readonly RADIO_ITEM_OUTSIDE_GROUP: 1321;
2360
+ };
2361
+
2362
+ declare class MenuGroupLabelComponent {
2363
+ private group;
2364
+ private elementRef;
2365
+ private destroyRef;
2366
+ constructor();
2367
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuGroupLabelComponent, never>;
2368
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuGroupLabelComponent, "et-menu-group-label", never, {}, {}, never, ["*"], true, never>;
2369
+ }
2370
+
2371
+ declare const MENU_ITEM_VARIANTS: {
2372
+ readonly DEFAULT: "default";
2373
+ readonly DESTRUCTIVE: "destructive";
2374
+ };
2375
+ type MenuItemVariant = (typeof MENU_ITEM_VARIANTS)[keyof typeof MENU_ITEM_VARIANTS];
2376
+ declare class MenuItemComponent {
2377
+ variant: _angular_core.InputSignal<MenuItemVariant>;
2378
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItemComponent, never>;
2379
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItemComponent, "button[et-menu-item], a[et-menu-item]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["[etIcon]", "*", "et-menu-item-shortcut"], true, [{ directive: typeof MenuItemDirective; inputs: { "disabled": "disabled"; "closeOnActivate": "closeOnActivate"; }; outputs: { "activated": "activated"; }; }]>;
2380
+ }
2381
+
2382
+ declare class MenuItemShortcutComponent {
2383
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItemShortcutComponent, never>;
2384
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItemShortcutComponent, "et-menu-item-shortcut", never, {}, {}, never, ["*"], true, never>;
2385
+ }
2386
+
2387
+ declare class MenuRadioGroupComponent {
2388
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuRadioGroupComponent, never>;
2389
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuRadioGroupComponent, "et-menu-radio-group", never, {}, {}, never, ["et-menu-group-label", "*"], true, [{ directive: typeof MenuSelectionGroupDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }]>;
2390
+ }
2391
+
2392
+ declare class MenuRadioItemComponent {
2393
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuRadioItemComponent, never>;
2394
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuRadioItemComponent, "et-menu-radio-item", never, {}, {}, never, ["*"], true, [{ directive: typeof MenuItemDirective; inputs: { "closeOnActivate": "closeOnActivate"; }; outputs: { "activated": "activated"; }; }, { directive: typeof MenuSelectionItemDirective; inputs: { "value": "value"; "checked": "checked"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "touchedChange": "touchedChange"; }; }]>;
2395
+ }
2396
+
2397
+ declare class MenuSeparatorComponent {
2398
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuSeparatorComponent, never>;
2399
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuSeparatorComponent, "et-menu-separator", never, {}, {}, never, never, true, never>;
2400
+ }
2401
+
2402
+ declare class MenuComponent {
2403
+ private ownColorProvider;
2404
+ private ownSurfaceProvider;
2405
+ private contextColorProvider;
2406
+ private contextSurfaceProvider;
2407
+ protected menu: MenuDirective | null;
2408
+ private surfaceThemes;
2409
+ protected search: _angular_core.Signal<_ethlete_components.MenuSearchDirective | null>;
2410
+ protected searchLoading: _angular_core.Signal<boolean>;
2411
+ protected searchError: _angular_core.Signal<string | null>;
2412
+ protected searchErrorId: string;
2413
+ private resolvedSurface;
2414
+ constructor();
2415
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
2416
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "et-menu", never, {}, {}, never, ["input[etMenuSearch]", "*"], true, [{ directive: typeof MenuPanelDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
2417
+ }
2418
+
2419
+ declare const MENU_IMPORTS: readonly [typeof MenuDirective, typeof MenuTriggerDirective, typeof MenuContextTriggerDirective, typeof MenuSurfaceDirective, typeof MenuPanelDirective, typeof MenuItemDirective, typeof MenuSearchDirective, typeof MenuSelectionGroupDirective, typeof MenuSelectionItemDirective, typeof MenuComponent, typeof MenuItemComponent, typeof MenuItemShortcutComponent, typeof MenuSeparatorComponent, typeof MenuGroupLabelComponent, typeof MenuRadioGroupComponent, typeof MenuRadioItemComponent, typeof MenuCheckboxGroupComponent, typeof MenuCheckboxItemComponent];
2420
+
2421
+ declare class NotificationActionDirective {
2422
+ private notification;
2423
+ constructor();
2424
+ runAction(): void;
2425
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationActionDirective, never>;
2426
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationActionDirective, "[etNotificationAction]", ["etNotificationAction"], {}, {}, never, never, true, never>;
2427
+ }
2428
+
2429
+ declare class NotificationDismissDirective {
2430
+ private notification;
2431
+ constructor();
2432
+ dismiss(): void;
2433
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationDismissDirective, never>;
2434
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationDismissDirective, "[etNotificationDismiss]", ["etNotificationDismiss"], {}, {}, never, never, true, never>;
2435
+ }
2436
+
2437
+ declare class NotificationItemDirective {
2438
+ private elementRef;
2439
+ private stack;
2440
+ ref: _angular_core.InputSignal<{
2441
+ id: string;
2442
+ entry: _angular_core.Signal<_ethlete_components.NotificationEntry>;
2443
+ update: (partial: Partial<_ethlete_components.NotificationConfig>) => void;
2444
+ dismiss: () => void;
2445
+ pauseTimer: () => void;
2446
+ resumeTimer: () => void;
2447
+ afterDismissed: () => rxjs.Observable<void>;
2448
+ markDismissed: () => void;
2449
+ }>;
2450
+ constructor();
2451
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationItemDirective, never>;
2452
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationItemDirective, "[etNotificationItem]", never, { "ref": { "alias": "etNotificationItem"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
2453
+ }
2454
+
2455
+ type RegisteredNotificationItem = {
2456
+ id: string;
2457
+ el: HTMLElement;
2458
+ };
2459
+ declare class NotificationStackDirective {
2460
+ protected context: _ethlete_components.NotificationStackContext;
2461
+ private destroyRef;
1272
2462
  private injector;
1273
2463
  private renderer;
1274
2464
  /** @internal */
@@ -1457,148 +2647,90 @@ declare class NotificationComponent {
1457
2647
 
1458
2648
  declare const NOTIFICATION_IMPORTS: readonly [typeof NotificationComponent, typeof NotificationDirective, typeof NotificationActionDirective, typeof NotificationDismissDirective];
1459
2649
 
1460
- declare class OverlayAnchorDirective {
1461
- private overlay;
1462
- private destroyRef;
1463
- elementRef: ElementRef<HTMLElement>;
1464
- constructor();
1465
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayAnchorDirective, never>;
1466
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayAnchorDirective, "[etOverlayAnchor]", ["etOverlayAnchor"], {}, {}, never, never, true, never>;
1467
- }
1468
-
1469
- type OverlayAutoFocusTarget = 'container' | 'first-heading' | 'first-tabbable';
1470
- type OverlayRole = 'dialog' | 'alertdialog';
1471
- type OverlayMode = 'modal' | 'non-modal';
1472
- type OverlayPositionStrategy = OverlayRuntimePositionStrategy;
1473
- type OverlayConfig = {
1474
- viewContainerRef?: ViewContainerRef;
1475
- injector?: Injector;
1476
- id?: string;
1477
- origin?: HTMLElement;
1478
- role?: OverlayRole;
1479
- positionStrategy?: OverlayPositionStrategy;
1480
- hasBackdrop?: boolean;
1481
- disableClose?: boolean;
1482
- inputBindings?: Record<string, unknown>;
1483
- ariaDescribedBy?: string | null;
1484
- ariaLabelledBy?: string | null;
1485
- ariaLabel?: string | null;
1486
- autoFocus?: OverlayAutoFocusTarget | string | false;
1487
- restoreFocus?: boolean;
1488
- providers?: StaticProvider[];
1489
- hostClass?: string | string[];
1490
- backdropClass?: string | string[];
1491
- panelClass?: string | string[];
1492
- mode?: OverlayMode;
1493
- closeOnOutsidePointer?: boolean;
1494
- closeOnEscape?: boolean;
1495
- };
1496
-
1497
- declare const createOverlayRef: <TComponent extends object, TResult = unknown>(config: OverlayConfig) => {
1498
- readonly id: string;
1499
- config: OverlayConfig;
1500
- readonly componentInstance: TComponent | null;
1501
- close(result?: TResult): void;
1502
- afterOpened(): Observable<void>;
1503
- beforeClosed(): Observable<TResult | undefined>;
1504
- afterClosed(): Observable<TResult | undefined>;
1505
- attachRuntime(runtimeRef: OverlayRuntimeRef<TComponent, TResult>): void;
2650
+ declare const getClosestOverlay: (element: ElementRef<HTMLElement>, openOverlays: OverlayRef<object, unknown>[]) => OverlayRef<object, unknown> | null;
2651
+ type ResolveClosestOverlayOptions = {
2652
+ overlayRef: OverlayRef<object, unknown> | null;
2653
+ element: ElementRef<HTMLElement>;
2654
+ openOverlays: OverlayRef<object, unknown>[];
1506
2655
  };
1507
- type OverlayRef<TComponent extends object = object, TResult = unknown> = ReturnType<typeof createOverlayRef<TComponent, TResult>>;
1508
- declare const OVERLAY_REF: InjectionToken<{
1509
- readonly id: string;
1510
- config: OverlayConfig;
1511
- readonly componentInstance: object | null;
1512
- close(result?: unknown): void;
1513
- afterOpened(): Observable<void>;
1514
- beforeClosed(): Observable<unknown>;
1515
- afterClosed(): Observable<unknown>;
1516
- attachRuntime(runtimeRef: OverlayRuntimeRef<object, unknown>): void;
1517
- }>;
1518
-
1519
- declare class OverlayTemplateHostComponent {
1520
- private animatedLifecycleInstance;
1521
- protected template: _angular_core.InputSignal<TemplateRef<OverlaySurfaceContext>>;
1522
- protected context: _angular_core.InputSignal<OverlaySurfaceContext>;
1523
- animatedLifecycle: _angular_core.WritableSignal<AnimatedLifecycleDirective>;
1524
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayTemplateHostComponent, never>;
1525
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayTemplateHostComponent, "et-overlay-template-host", never, { "template": { "alias": "template"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.AnimatedLifecycleDirective; inputs: {}; outputs: {}; }]>;
1526
- }
1527
-
1528
- declare class OverlayTriggerDirective {
1529
- private overlay;
1530
- private destroyRef;
1531
- elementRef: ElementRef<HTMLElement>;
1532
- constructor();
1533
- toggle(): void;
1534
- isOpen(): boolean;
1535
- expanded(): boolean | null;
1536
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayTriggerDirective, never>;
1537
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayTriggerDirective, "[etOverlayTrigger]", ["etOverlayTrigger"], {}, {}, never, never, true, never>;
1538
- }
2656
+ /** Returns the given ref or resolves the overlay the element is rendered inside of. Throws if neither exists. */
2657
+ declare const resolveClosestOverlay: (options: ResolveClosestOverlayOptions) => OverlayRef<object, unknown>;
1539
2658
 
1540
- declare class OverlayDirective {
1541
- private destroyRef;
1542
- mode: _angular_core.InputSignal<OverlayMode>;
1543
- role: _angular_core.InputSignal<OverlayRole | undefined>;
1544
- open: _angular_core.ModelSignal<boolean>;
1545
- disabled: _angular_core.InputSignal<boolean>;
1546
- disableClose: _angular_core.InputSignal<boolean>;
1547
- autoFocus: _angular_core.InputSignal<string | false | undefined>;
1548
- restoreFocus: _angular_core.InputSignal<boolean>;
1549
- hasBackdrop: _angular_core.InputSignal<boolean | undefined>;
1550
- closeOnEscape: _angular_core.InputSignal<boolean>;
1551
- closeOnOutsidePointer: _angular_core.InputSignal<boolean>;
1552
- hostClass: _angular_core.InputSignal<string | string[] | undefined>;
1553
- backdropClass: _angular_core.InputSignal<string | string[] | undefined>;
1554
- panelClass: _angular_core.InputSignal<string | string[] | undefined>;
1555
- placement: _angular_core.InputSignal<Placement>;
1556
- fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
1557
- offset: _angular_core.InputSignal<OffsetOptions | null>;
1558
- viewportPadding: _angular_core.InputSignal<Padding | null>;
1559
- autoResize: _angular_core.InputSignal<boolean>;
1560
- shift: _angular_core.InputSignal<boolean>;
1561
- autoHide: _angular_core.InputSignal<boolean>;
1562
- autoCloseIfReferenceHidden: _angular_core.InputSignal<boolean>;
1563
- mirrorWidth: _angular_core.InputSignal<boolean>;
2659
+ declare const OVERLAY_BODY_TOKEN: InjectionToken<OverlayBodyComponent>;
2660
+ type OverlayBodyDividerType = 'static' | 'dynamic' | false;
2661
+ declare class OverlayBodyComponent implements OnInit {
2662
+ private overlayRef;
2663
+ private elementRef;
2664
+ private scrollObserver;
1564
2665
  private overlayManager;
1565
- /** @internal */
1566
- registeredAnchor: _angular_core.WritableSignal<OverlayAnchorDirective | null>;
1567
- /** @internal */
1568
- registeredSurface: _angular_core.WritableSignal<OverlaySurfaceDirective | null>;
1569
- /** @internal */
1570
- registeredTrigger: _angular_core.WritableSignal<OverlayTriggerDirective | null>;
1571
- /** @internal */
1572
- overlayRef: _angular_core.WritableSignal<OverlayRef<OverlayTemplateHostComponent, unknown> | null>;
1573
- isMounted: _angular_core.Signal<boolean>;
1574
- private originElement;
2666
+ dividers: _angular_core.InputSignal<OverlayBodyDividerType>;
2667
+ dividersEnabled: _angular_core.Signal<boolean>;
2668
+ dynamicDividersEnabled: _angular_core.Signal<boolean>;
2669
+ containerScrollState: _angular_core.Signal<_ethlete_core.ElementScrollState>;
2670
+ canScroll: _angular_core.Signal<boolean>;
2671
+ isAtStart: _angular_core.Signal<boolean>;
2672
+ isAtEnd: _angular_core.Signal<boolean>;
2673
+ enableDividerAnimations: _angular_core.WritableSignal<boolean>;
1575
2674
  constructor();
1576
- show(): void;
1577
- hide(result?: unknown): void;
1578
- toggle(): void;
1579
- /** @internal */
1580
- unregisterTrigger(trigger: OverlayTriggerDirective): void;
1581
- /** @internal */
1582
- unregisterAnchor(anchor: OverlayAnchorDirective): void;
1583
- /** @internal */
1584
- unregisterSurface(surface: OverlaySurfaceDirective): void;
1585
- private mountOverlay;
1586
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayDirective, never>;
1587
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayDirective, "[etOverlay]", ["etOverlay"], { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnOutsidePointer": { "alias": "closeOnOutsidePointer"; "required": false; "isSignal": true; }; "hostClass": { "alias": "hostClass"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "autoHide": { "alias": "autoHide"; "required": false; "isSignal": true; }; "autoCloseIfReferenceHidden": { "alias": "autoCloseIfReferenceHidden"; "required": false; "isSignal": true; }; "mirrorWidth": { "alias": "mirrorWidth"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
2675
+ ngOnInit(): void;
2676
+ scrollToTop(behavior?: ScrollBehavior): void;
2677
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayBodyComponent, never>;
2678
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayBodyComponent, "[et-overlay-body], et-overlay-body", never, { "dividers": { "alias": "dividers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ScrollObserverDirective; inputs: {}; outputs: {}; }]>;
1588
2679
  }
1589
2680
 
1590
- type OverlaySurfaceContext = {
1591
- $implicit: OverlayDirective;
1592
- overlay: OverlayDirective;
1593
- close: (result?: unknown) => void;
1594
- };
1595
- declare class OverlaySurfaceDirective {
1596
- private overlay;
1597
- templateRef: TemplateRef<OverlaySurfaceContext>;
2681
+ declare class OverlayCloseDirective implements OnInit {
2682
+ private overlayRef;
2683
+ private elementRef;
2684
+ private overlayManager;
2685
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
2686
+ type: _angular_core.InputSignal<"button" | "submit" | "reset">;
2687
+ closeResult: _angular_core.InputSignal<unknown>;
2688
+ closeResultAlt: _angular_core.InputSignal<unknown>;
2689
+ constructor();
2690
+ ngOnInit(): void;
2691
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayCloseDirective, never>;
2692
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayCloseDirective, "[et-overlay-close], [etOverlayClose]", ["etOverlayClose"], { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "closeResult": { "alias": "etOverlayClose"; "required": false; "isSignal": true; }; "closeResultAlt": { "alias": "et-overlay-close"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2693
+ }
2694
+
2695
+ declare class OverlayContainerComponent {
2696
+ private ownColorProvider;
2697
+ private ownSurfaceProvider;
2698
+ private parentColorProvider;
2699
+ private parentSurfaceProvider;
1598
2700
  private destroyRef;
2701
+ private elementRef;
2702
+ protected overlayRef: {
2703
+ readonly id: string;
2704
+ readonly elements: _ethlete_core.OverlayRuntimeElements | null;
2705
+ config: _ethlete_components.OverlayConfig;
2706
+ headerTemplate: _angular_core.Signal<_angular_core.TemplateRef<unknown> | null>;
2707
+ setHeaderTemplate: (template: _angular_core.TemplateRef<unknown> | null) => void;
2708
+ componentInstance: () => object | null;
2709
+ close: (result?: unknown) => void;
2710
+ closeVia: (source: _ethlete_core.OverlayRuntimeCloseSource, result?: unknown) => void;
2711
+ updatePositionStrategy: (strategy: _ethlete_core.OverlayRuntimePositionStrategy) => void;
2712
+ attachComponentInstanceOverride: (getter: () => object | null) => void;
2713
+ afterOpened: () => rxjs.Observable<void>;
2714
+ beforeClosed: () => rxjs.Observable<unknown>;
2715
+ afterClosed: () => rxjs.Observable<unknown>;
2716
+ attachRuntime: (runtimeRef: _ethlete_core.OverlayRuntimeRef<object, unknown>) => void;
2717
+ };
2718
+ private surfaceThemes;
2719
+ private surfaceContextTracker;
2720
+ private renderer;
2721
+ rootBoundary: {
2722
+ value: _angular_core.Signal<HTMLElement>;
2723
+ override: _angular_core.WritableSignal<HTMLElement | null>;
2724
+ };
2725
+ component: _angular_core.InputSignal<Type<object>>;
2726
+ componentBindings: _angular_core.InputSignal<Binding[] | undefined>;
2727
+ renderArrow: _angular_core.InputSignal<boolean>;
2728
+ private contentOutlet;
2729
+ animatedLifecycle: _angular_core.WritableSignal<AnimatedLifecycleDirective>;
2730
+ contentComponentRef: _angular_core.WritableSignal<ComponentRef<object> | null>;
1599
2731
  constructor();
1600
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlaySurfaceDirective, never>;
1601
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlaySurfaceDirective, "ng-template[etOverlaySurface]", ["etOverlaySurface"], {}, {}, never, never, true, never>;
2732
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayContainerComponent, never>;
2733
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayContainerComponent, "et-overlay-container", never, { "component": { "alias": "component"; "required": true; "isSignal": true; }; "componentBindings": { "alias": "componentBindings"; "required": false; "isSignal": true; }; "renderArrow": { "alias": "renderArrow"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.AnimatedLifecycleDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
1602
2734
  }
1603
2735
 
1604
2736
  declare const OVERLAY_ERROR_CODES: {
@@ -1606,7 +2738,121 @@ declare const OVERLAY_ERROR_CODES: {
1606
2738
  readonly TRIGGER_OUTSIDE_OVERLAY: 1201;
1607
2739
  readonly ANCHOR_OUTSIDE_OVERLAY: 1202;
1608
2740
  readonly SURFACE_OUTSIDE_OVERLAY: 1203;
2741
+ readonly MULTIPLE_LAYOUT_CLASSES: 1204;
2742
+ readonly NO_CLOSEST_OVERLAY: 1205;
2743
+ readonly NESTED_OVERLAY_MAIN: 1206;
2744
+ };
2745
+
2746
+ declare const OVERLAY_FOOTER_TOKEN: InjectionToken<OverlayFooterDirective>;
2747
+ declare class OverlayFooterDirective implements OnInit {
2748
+ private overlayRef;
2749
+ private elementRef;
2750
+ private overlayManager;
2751
+ ngOnInit(): void;
2752
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayFooterDirective, never>;
2753
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayFooterDirective, "[etOverlayFooter], et-overlay-footer", never, {}, {}, never, never, true, never>;
2754
+ }
2755
+
2756
+ type CreateOverlayHandlerConfig<TComponent extends object> = OverlayConfig & {
2757
+ /** The overlay component. */
2758
+ component: Type<TComponent>;
2759
+ };
2760
+ /** Per-open config overrides. Strategies are fixed by the handler's root config. */
2761
+ type OverlayConsumerConfig = Omit<OverlayConfig, 'strategies'>;
2762
+ type OverlayHandler<TComponent extends object, TResult = unknown> = {
2763
+ /** Open the overlay using a combination of the given configs */
2764
+ open: (config?: OverlayConsumerConfig) => OverlayRef<TComponent, TResult>;
2765
+ /**
2766
+ * Returns the typed overlay ref.
2767
+ * @throws Error if the overlay ref gets accessed outside of the overlay component
2768
+ */
2769
+ injectOverlayRef: () => OverlayRef<TComponent, TResult>;
2770
+ };
2771
+ type CreateOverlayHandlerInnerConfig<TResult = unknown> = {
2772
+ /** A callback function to be executed once the overlay has been closed */
2773
+ afterClosed?: (result: TResult | null) => void;
2774
+ /** A callback function to be executed before the overlay is closed */
2775
+ beforeClosed?: (result: TResult | null) => void;
2776
+ /** A callback function to be executed once the overlay has been opened */
2777
+ afterOpened?: () => void;
2778
+ };
2779
+ declare const createOverlayHandler: <TComponent extends object, TResult = unknown>(rootConfig: CreateOverlayHandlerConfig<TComponent>) => (innerConfig?: CreateOverlayHandlerInnerConfig<TResult>) => OverlayHandler<TComponent, TResult>;
2780
+ /** The name of the model the overlay component must expose to participate in query-param sync. */
2781
+ declare const OVERLAY_QUERY_PARAM_INPUT_NAME = "overlayQueryParam";
2782
+ type OverlayHandlerWithQueryParamLifecycle<TQueryParam extends string = string> = {
2783
+ /** Open the overlay by writing the given value to the query param. */
2784
+ open: (value: TQueryParam) => void;
2785
+ /** Close the overlay by removing the query param. */
2786
+ close: () => void;
2787
+ };
2788
+ type CreateOverlayHandlerWithQueryParamLifecycleConfig<TComponent extends object> = CreateOverlayHandlerConfig<TComponent> & {
2789
+ /** The query param key that drives this overlay's open/close lifecycle. */
2790
+ queryParamKey: string;
1609
2791
  };
2792
+ /**
2793
+ * Drives an overlay's lifecycle from a URL query param: the overlay opens while the param is present
2794
+ * and closes (clearing the param) when dismissed. The param value is forwarded to the overlay via an
2795
+ * `overlayQueryParam` {@link https://angular.dev/api/core/model | model}, which is kept in two-way sync
2796
+ * with the URL — reading the model reflects the URL, and writing it updates the URL.
2797
+ *
2798
+ * Open it declaratively with {@link OverlayHandlerLinkDirective}, or imperatively via the returned
2799
+ * handler's `open()` / `close()`.
2800
+ *
2801
+ * @example
2802
+ * // in the overlay component:
2803
+ * readonly overlayQueryParam = model<string>();
2804
+ *
2805
+ * // once, in a long-lived component (e.g. AppComponent):
2806
+ * private handler = createProductOverlay(); // returned by this factory
2807
+ */
2808
+ declare const createOverlayHandlerWithQueryParamLifecycle: <TComponent extends object, TQueryParam extends string = string, TResult = unknown>(config: CreateOverlayHandlerWithQueryParamLifecycleConfig<TComponent>) => {
2809
+ (innerConfig?: CreateOverlayHandlerInnerConfig<TResult>): OverlayHandlerWithQueryParamLifecycle<TQueryParam>;
2810
+ injectOverlayRef(): OverlayRef<TComponent, TResult>;
2811
+ };
2812
+
2813
+ declare class OverlayHandlerLinkDirective {
2814
+ private routerLink;
2815
+ linkValue: _angular_core.InputSignal<string | number>;
2816
+ linkKey: _angular_core.InputSignal<string>;
2817
+ constructor();
2818
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayHandlerLinkDirective, never>;
2819
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayHandlerLinkDirective, "[etOverlayHandlerLink]", never, { "linkValue": { "alias": "etOverlayHandlerLink"; "required": true; "isSignal": true; }; "linkKey": { "alias": "etOverlayHandlerQueryParamName"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RouterLink; inputs: {}; outputs: {}; }]>;
2820
+ }
2821
+
2822
+ declare const OVERLAY_HEADER_TOKEN: InjectionToken<OverlayHeaderDirective>;
2823
+ declare class OverlayHeaderDirective implements OnInit {
2824
+ private overlayRef;
2825
+ private elementRef;
2826
+ private overlayManager;
2827
+ ngOnInit(): void;
2828
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayHeaderDirective, never>;
2829
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayHeaderDirective, "[etOverlayHeader], et-overlay-header", never, {}, {}, never, never, true, never>;
2830
+ }
2831
+
2832
+ declare const OVERLAY_HEADER_TEMPLATE_TOKEN: InjectionToken<OverlayHeaderTemplateDirective>;
2833
+ declare class OverlayHeaderTemplateDirective implements OnInit, OnDestroy {
2834
+ private overlayRef;
2835
+ private elementRef;
2836
+ template: TemplateRef<unknown>;
2837
+ private overlayManager;
2838
+ constructor();
2839
+ ngOnInit(): void;
2840
+ ngOnDestroy(): void;
2841
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayHeaderTemplateDirective, never>;
2842
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayHeaderTemplateDirective, "ng-template[etOverlayHeaderTemplate]", never, {}, {}, never, never, true, never>;
2843
+ }
2844
+
2845
+ declare const OVERLAY_MAIN_TOKEN: InjectionToken<OverlayMainDirective>;
2846
+ declare class OverlayMainDirective implements OnInit {
2847
+ private parent;
2848
+ private elementRef;
2849
+ private overlayRef;
2850
+ private overlayManager;
2851
+ enabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
2852
+ ngOnInit(): void;
2853
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayMainDirective, never>;
2854
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayMainDirective, "[etOverlayMain], et-overlay-main", never, { "enabled": { "alias": "etOverlayMain"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2855
+ }
1610
2856
 
1611
2857
  type OverlayManager = {
1612
2858
  open: <TComponent extends object, TResult = unknown>(component: Type<TComponent>, config?: OverlayConfig) => OverlayRef<TComponent, TResult>;
@@ -1621,7 +2867,613 @@ declare const injectOverlayManager: {
1621
2867
  (options: _angular_core.InjectOptions): OverlayManager | null;
1622
2868
  };
1623
2869
 
2870
+ /**
2871
+ * Blocks body scrolling while a modal overlay is open.
2872
+ * Register once via `provideOverlay()` (or call `injectOverlayScrollBlocker()` in an environment initializer).
2873
+ */
2874
+ declare const provideOverlayScrollBlocker: () => _angular_core.Provider[];
2875
+ declare const injectOverlayScrollBlocker: {
2876
+ (): void;
2877
+ (options: _angular_core.InjectOptions & {
2878
+ optional?: false;
2879
+ }): void;
2880
+ (options: _angular_core.InjectOptions): void | null;
2881
+ };
2882
+
2883
+ declare class OverlayTitleDirective implements OnInit {
2884
+ private overlayRef;
2885
+ private elementRef;
2886
+ private overlayManager;
2887
+ private renderer;
2888
+ id: _angular_core.InputSignal<string>;
2889
+ ngOnInit(): void;
2890
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayTitleDirective, never>;
2891
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayTitleDirective, "[et-overlay-title], [etOverlayTitle]", ["etOverlayTitle"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2892
+ }
2893
+
1624
2894
  declare const OVERLAY_IMPORTS: readonly [typeof OverlayDirective, typeof OverlayTriggerDirective, typeof OverlayAnchorDirective, typeof OverlaySurfaceDirective];
2895
+ declare const OVERLAY_CONTENT_IMPORTS: readonly [typeof OverlayCloseDirective, typeof OverlayTitleDirective, typeof OverlayHeaderDirective, typeof OverlayBodyComponent, typeof OverlayFooterDirective, typeof OverlayMainDirective];
2896
+ declare const provideOverlay: () => _angular_core.EnvironmentProviders[];
2897
+
2898
+ declare const OVERLAY_BACK_OR_CLOSE_TOKEN: InjectionToken<OverlayBackOrCloseDirective>;
2899
+ declare class OverlayBackOrCloseDirective {
2900
+ private overlayRef;
2901
+ private elementRef;
2902
+ private router;
2903
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
2904
+ constructor();
2905
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayBackOrCloseDirective, never>;
2906
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayBackOrCloseDirective, "[etOverlayBackOrClose]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2907
+ }
2908
+
2909
+ declare class OverlayRouteHeaderTemplateOutletComponent {
2910
+ protected overlay: {
2911
+ readonly id: string;
2912
+ readonly elements: _ethlete_core.OverlayRuntimeElements | null;
2913
+ config: _ethlete_components.OverlayConfig;
2914
+ headerTemplate: _angular_core.Signal<_angular_core.TemplateRef<unknown> | null>;
2915
+ setHeaderTemplate: (template: _angular_core.TemplateRef<unknown> | null) => void;
2916
+ componentInstance: () => object | null;
2917
+ close: (result?: unknown) => void;
2918
+ closeVia: (source: _ethlete_core.OverlayRuntimeCloseSource, result?: unknown) => void;
2919
+ updatePositionStrategy: (strategy: _ethlete_core.OverlayRuntimePositionStrategy) => void;
2920
+ attachComponentInstanceOverride: (getter: () => object | null) => void;
2921
+ afterOpened: () => rxjs.Observable<void>;
2922
+ beforeClosed: () => rxjs.Observable<unknown>;
2923
+ afterClosed: () => rxjs.Observable<unknown>;
2924
+ attachRuntime: (runtimeRef: _ethlete_core.OverlayRuntimeRef<object, unknown>) => void;
2925
+ };
2926
+ protected router: _ethlete_components.OverlayRouter;
2927
+ animatedLifecycle: _angular_core.Signal<AnimatedLifecycleDirective>;
2928
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayRouteHeaderTemplateOutletComponent, never>;
2929
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayRouteHeaderTemplateOutletComponent, "et-overlay-route-header-template-outlet", never, {}, {}, never, never, true, never>;
2930
+ }
2931
+
2932
+ declare const OVERLAY_ROUTER_CONFIG_TOKEN: InjectionToken<OverlayRouterConfig>;
2933
+ type OverlayRoute = {
2934
+ /** The component to render. */
2935
+ component: Type<unknown>;
2936
+ /**
2937
+ * The route of the page.
2938
+ *
2939
+ * @example
2940
+ * "/" // The root route
2941
+ * "/two" // The route "two"
2942
+ */
2943
+ path: `/${string}`;
2944
+ /** The inputs to pass to the component. Signal values are unwrapped. */
2945
+ inputs?: Record<string, unknown>;
2946
+ /**
2947
+ * Overrides the animation direction used when navigating to or away from this route.
2948
+ * Useful for routes that conceptually sit "before" the others, like a sidebar page that
2949
+ * should slide in from the left. An explicit direction passed to `navigate()` always wins.
2950
+ */
2951
+ navigationDirection?: {
2952
+ /** Direction to play when this route becomes active. */
2953
+ to?: OverlayRouterNavigationDirection;
2954
+ /** Direction to play when navigating away from this route. */
2955
+ from?: OverlayRouterNavigationDirection;
2956
+ };
2957
+ };
2958
+ type OverlayRouterConfig = {
2959
+ /** The routes to be able to navigate to. */
2960
+ routes: OverlayRoute[];
2961
+ /**
2962
+ * The route on which to start.
2963
+ * @default routes[0].path // The first route, or "/" if none is defined
2964
+ */
2965
+ initialRoute?: string;
2966
+ /**
2967
+ * Mirror the active overlay route into the browser URL as a query param, enabling deep-linking and
2968
+ * browser back/forward integration. Requires the Angular `Router` to be available.
2969
+ *
2970
+ * @default false
2971
+ */
2972
+ syncUrl?: boolean;
2973
+ };
2974
+ type OverlayRouterNavigationDirection = 'forward' | 'backward';
2975
+ type OverlayRouterNavigateConfig = {
2976
+ navigationDirection?: OverlayRouterNavigationDirection;
2977
+ };
2978
+ type OverlayRouterTransitionType = 'slide' | 'fade' | 'overlay' | 'vertical' | 'none';
2979
+ type OverlayRouterResolvedPath = {
2980
+ route: string;
2981
+ type: 'back' | 'replace-current' | 'absolute' | 'forward';
2982
+ };
2983
+ type OverlayRouter = {
2984
+ /** The current route, but delayed by one frame to ensure that the needed animation classes are applied. */
2985
+ currentRoute: Signal<string>;
2986
+ /** Routes registered at runtime in addition to the configured ones. */
2987
+ extraRoutes: WritableSignal<OverlayRoute[]>;
2988
+ /** The transition to play when navigating between routes. */
2989
+ transitionType: WritableSignal<OverlayRouterTransitionType>;
2990
+ /** The direction of the current navigation. */
2991
+ navigationDirection: WritableSignal<OverlayRouterNavigationDirection>;
2992
+ /** Whether an in-memory history entry exists to go back to. */
2993
+ canGoBack: Signal<boolean>;
2994
+ /** All navigable routes (configured + extra) with signal inputs unwrapped. */
2995
+ routes: Signal<OverlayRoute[]>;
2996
+ /** The route currently being displayed. */
2997
+ currentPage: Signal<OverlayRoute | null>;
2998
+ navigate: (route: string | (string | number)[], config?: OverlayRouterNavigateConfig) => void;
2999
+ back: () => boolean;
3000
+ resolvePath: (route: string | (string | number)[]) => OverlayRouterResolvedPath;
3001
+ addRoute: (route: OverlayRoute) => void;
3002
+ removeRoute: (path: string) => void;
3003
+ /** @internal Returns `true` when the route actually changed. */
3004
+ updateCurrentRoute: (route: string) => boolean;
3005
+ /** @internal */
3006
+ navigateToInitialRoute: () => void;
3007
+ };
3008
+ declare const provideOverlayRouterService: () => Provider[];
3009
+ declare const injectOverlayRouter: {
3010
+ (): OverlayRouter;
3011
+ (options: _angular_core.InjectOptions & {
3012
+ optional?: false;
3013
+ }): OverlayRouter;
3014
+ (options: _angular_core.InjectOptions): OverlayRouter | null;
3015
+ };
3016
+ declare const OVERLAY_ROUTER_TOKEN: InjectionToken<OverlayRouter>;
3017
+ declare const provideOverlayRouterConfig: (config: OverlayRouterConfig) => Provider[];
3018
+ /**
3019
+ * Provides both the overlay router config and the overlay router itself, so a consumer only needs
3020
+ * a single entry in the overlay's `providers` instead of wiring the router separately.
3021
+ *
3022
+ * @example
3023
+ * overlayManager.open(MyOverlay, {
3024
+ * strategies: dialogOverlayStrategy(),
3025
+ * providers: [provideOverlayRouter({ routes: [...] })],
3026
+ * });
3027
+ */
3028
+ declare const provideOverlayRouter: (config: OverlayRouterConfig) => Provider[];
3029
+
3030
+ declare const OVERLAY_ROUTER_LINK_TOKEN: InjectionToken<OverlayRouterLinkDirective>;
3031
+ declare class OverlayRouterLinkDirective {
3032
+ private elementRef;
3033
+ private router;
3034
+ path: _angular_core.InputSignal<string | (string | number)[]>;
3035
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
3036
+ navigationDirection: _angular_core.InputSignal<OverlayRouterNavigationDirection | null>;
3037
+ isActive: _angular_core.Signal<boolean>;
3038
+ constructor();
3039
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayRouterLinkDirective, never>;
3040
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayRouterLinkDirective, "[etOverlayRouterLink]", never, { "path": { "alias": "etOverlayRouterLink"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "navigationDirection": { "alias": "navigationDirection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3041
+ }
3042
+
3043
+ declare const OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN: InjectionToken<OverlayRouterOutletDisabledTemplateDirective>;
3044
+ declare class OverlayRouterOutletDisabledTemplateDirective {
3045
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayRouterOutletDisabledTemplateDirective, never>;
3046
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayRouterOutletDisabledTemplateDirective, "ng-template[etOverlayRouterOutletDisabledTemplate]", never, {}, {}, never, never, true, never>;
3047
+ }
3048
+
3049
+ declare const OVERLAY_ROUTER_OUTLET_TOKEN: InjectionToken<OverlayRouterOutletComponent>;
3050
+ declare class OverlayRouterOutletComponent {
3051
+ private injector;
3052
+ private overlayRef;
3053
+ private elementRef;
3054
+ private document;
3055
+ protected router: _ethlete_components.OverlayRouter;
3056
+ private renderer;
3057
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
3058
+ sharedRouteTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
3059
+ outletDisabledTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
3060
+ pageWrappers: _angular_core.Signal<readonly ElementRef<HTMLElement>[]>;
3061
+ readonly hasSidebar: boolean;
3062
+ wasDisabled: _angular_core.WritableSignal<boolean>;
3063
+ keepDisabledTransition: _angular_core.Signal<boolean>;
3064
+ activePageElement: _angular_core.Signal<HTMLElement | null>;
3065
+ protected transitionType: _angular_core.Signal<_ethlete_components.OverlayRouterTransitionType>;
3066
+ constructor();
3067
+ scrollActivePageTo(options?: ScrollToOptions | undefined): void;
3068
+ disabledPageAnimationStateChange(state: AnimatedLifecycleState): void;
3069
+ /**
3070
+ * Moves focus into the freshly navigated page, mirroring the overlay's own open-time focus behaviour
3071
+ * (first-tabbable by default, so buttons/inputs win over headings). Falls back to the page wrapper when
3072
+ * the page has nothing tabbable. Respects the overlay's `autoFocus` config, including `false`.
3073
+ */
3074
+ private focusActivePage;
3075
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayRouterOutletComponent, never>;
3076
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayRouterOutletComponent, "et-overlay-router-outlet", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["sharedRouteTemplate", "outletDisabledTemplate"], ["*"], true, never>;
3077
+ }
3078
+
3079
+ declare class OverlaySharedRouteTemplateOutletComponent {
3080
+ protected routerOutlet: _ethlete_components.OverlayRouterOutletComponent;
3081
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlaySharedRouteTemplateOutletComponent, never>;
3082
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlaySharedRouteTemplateOutletComponent, "et-overlay-shared-route-template-outlet", never, {}, {}, never, never, true, never>;
3083
+ }
3084
+
3085
+ declare const OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN: InjectionToken<OverlaySharedRouteTemplateDirective>;
3086
+ declare class OverlaySharedRouteTemplateDirective {
3087
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlaySharedRouteTemplateDirective, never>;
3088
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlaySharedRouteTemplateDirective, "ng-template[etOverlaySharedRouteTemplate]", never, {}, {}, never, never, true, never>;
3089
+ }
3090
+
3091
+ declare class OverlaySidebarPageComponent {
3092
+ headerTemplate: _angular_core.InputSignal<OverlayHeaderTemplateDirective | null>;
3093
+ bodyTemplate: _angular_core.InputSignal<TemplateRef<unknown> | null>;
3094
+ pageDividers: _angular_core.InputSignal<OverlayBodyDividerType>;
3095
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlaySidebarPageComponent, never>;
3096
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlaySidebarPageComponent, "et-overlay-sidebar-page", never, { "headerTemplate": { "alias": "headerTemplate"; "required": true; "isSignal": true; }; "bodyTemplate": { "alias": "bodyTemplate"; "required": true; "isSignal": true; }; "pageDividers": { "alias": "pageDividers"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof OverlayMainDirective; inputs: {}; outputs: {}; }]>;
3097
+ }
3098
+
3099
+ declare class OverlaySidebarComponent {
3100
+ protected sidebar: _ethlete_components.SidebarOverlay;
3101
+ pageDividers: _angular_core.InputSignal<OverlayBodyDividerType>;
3102
+ sidebarContent: _angular_core.Signal<TemplateRef<unknown>>;
3103
+ sidebarHeaderContent: _angular_core.Signal<_ethlete_components.OverlayHeaderTemplateDirective | undefined>;
3104
+ constructor();
3105
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlaySidebarComponent, never>;
3106
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlaySidebarComponent, "et-overlay-sidebar", never, { "pageDividers": { "alias": "pageDividers"; "required": false; "isSignal": true; }; }, {}, ["sidebarHeaderContent"], ["*"], true, never>;
3107
+ }
3108
+
3109
+ declare const SIDEBAR_OVERLAY_CONFIG: InjectionToken<SidebarOverlayConfig>;
3110
+ type SidebarOverlayConfig = {
3111
+ /**
3112
+ * On mobile devices, the sidebar is shown as a separate page that can be navigated to.
3113
+ * This is the route to that sidebar page.
3114
+ *
3115
+ * @default "/sidebar"
3116
+ */
3117
+ sidebarPageRoute?: `/${string}`;
3118
+ /**
3119
+ * The width from which the sidebar renders inline (rather than collapsing into a page). Compared
3120
+ * against the overlay's own pane width — not the viewport — so a narrow dialog collapses its
3121
+ * sidebar even on a wide screen. Can be a breakpoint name or a pixel number. Works best with an
3122
+ * overlay that has a defined width.
3123
+ *
3124
+ * @default "md"
3125
+ */
3126
+ renderSidebarFrom?: Breakpoint | number;
3127
+ };
3128
+ type SidebarOverlay = {
3129
+ /** Whether the sidebar renders inline (`true`) or is collapsed into a navigable page (`false`). */
3130
+ renderSidebar: Signal<boolean>;
3131
+ sidebarContentTemplate: WritableSignal<TemplateRef<unknown> | null>;
3132
+ sidebarHeaderTemplate: WritableSignal<OverlayHeaderTemplateDirective | null>;
3133
+ sidebarPageDividers: WritableSignal<OverlayBodyDividerType>;
3134
+ };
3135
+ declare const provideSidebarOverlayService: () => Provider[];
3136
+ declare const injectSidebarOverlay: {
3137
+ (): SidebarOverlay;
3138
+ (options: _angular_core.InjectOptions & {
3139
+ optional?: false;
3140
+ }): SidebarOverlay;
3141
+ (options: _angular_core.InjectOptions): SidebarOverlay | null;
3142
+ };
3143
+ declare const SIDEBAR_OVERLAY_TOKEN: InjectionToken<SidebarOverlay>;
3144
+ declare const provideSidebarOverlayConfig: (config: SidebarOverlayConfig) => Provider[];
3145
+ /**
3146
+ * Provides both the sidebar config and the sidebar overlay service in one call, mirroring
3147
+ * {@link provideOverlayRouter}. Requires an overlay router to also be provided.
3148
+ */
3149
+ declare const provideSidebarOverlay: (config?: SidebarOverlayConfig) => Provider[];
3150
+
3151
+ type AnchoredOverlayStrategyOptions = {
3152
+ containerClass?: string | string[];
3153
+ hostClass?: string | string[];
3154
+ maxWidth?: number | string;
3155
+ maxHeight?: number | string;
3156
+ minWidth?: number | string;
3157
+ minHeight?: number | string;
3158
+ placement?: Placement;
3159
+ fallbackPlacements?: Placement[];
3160
+ offset?: OffsetOptions | null;
3161
+ arrowPadding?: Padding | null;
3162
+ viewportPadding?: Padding | null;
3163
+ shift?: boolean;
3164
+ autoResize?: boolean;
3165
+ autoHide?: boolean;
3166
+ autoCloseIfReferenceHidden?: boolean;
3167
+ mirrorWidth?: boolean;
3168
+ /** Render a floating-ui-positioned arrow on the container pointing at the origin. */
3169
+ arrow?: boolean;
3170
+ };
3171
+ type CenteredOverlayStrategyOptions = {
3172
+ containerClass?: string | string[];
3173
+ hostClass?: string | string[];
3174
+ maxWidth?: number | string;
3175
+ maxHeight?: number | string;
3176
+ minWidth?: number | string;
3177
+ minHeight?: number | string;
3178
+ };
3179
+ type AnchoredPositionOptions = Pick<AnchoredOverlayStrategyOptions, 'placement' | 'fallbackPlacements' | 'offset' | 'arrowPadding' | 'viewportPadding' | 'shift' | 'autoResize' | 'autoHide' | 'autoCloseIfReferenceHidden' | 'mirrorWidth'>;
3180
+ declare const buildAnchoredRuntimePositionStrategy: (options?: AnchoredPositionOptions) => (origin?: HTMLElement) => OverlayRuntimePositionStrategy;
3181
+ declare const anchoredOverlayStrategy: (options?: AnchoredOverlayStrategyOptions) => (() => OverlayStrategyBreakpoint[]);
3182
+ declare const centeredOverlayStrategy: (options?: CenteredOverlayStrategyOptions) => (() => OverlayStrategyBreakpoint[]);
3183
+
3184
+ type AnchoredDialogOverlayStrategyOptions = Partial<OverlayBreakpointConfig> & AnchoredPositionOptions;
3185
+ declare const provideAnchoredDialogStrategyDefaults: (valueOverride?: Partial<OverlayBreakpointConfig> | undefined) => _angular_core.Provider[];
3186
+ declare const injectAnchoredDialogStrategyDefaults: {
3187
+ (): OverlayBreakpointConfig;
3188
+ (options: _angular_core.InjectOptions & {
3189
+ optional?: false;
3190
+ }): OverlayBreakpointConfig;
3191
+ (options: _angular_core.InjectOptions): OverlayBreakpointConfig | null;
3192
+ };
3193
+ declare const provideAnchoredDialogStrategy: () => _angular_core.Provider[];
3194
+ declare const injectAnchoredDialogStrategy: {
3195
+ (): {
3196
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3197
+ };
3198
+ (options: _angular_core.InjectOptions & {
3199
+ optional?: false;
3200
+ }): {
3201
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3202
+ };
3203
+ (options: _angular_core.InjectOptions): {
3204
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3205
+ } | null;
3206
+ };
3207
+ declare const anchoredDialogOverlayStrategy: (options?: AnchoredDialogOverlayStrategyOptions) => (() => OverlayStrategyBreakpoint[]);
3208
+
3209
+ declare const provideBottomSheetStrategyDefaults: (valueOverride?: Partial<OverlayBreakpointConfig> | undefined) => _angular_core.Provider[];
3210
+ declare const injectBottomSheetStrategyDefaults: {
3211
+ (): OverlayBreakpointConfig;
3212
+ (options: _angular_core.InjectOptions & {
3213
+ optional?: false;
3214
+ }): OverlayBreakpointConfig;
3215
+ (options: _angular_core.InjectOptions): OverlayBreakpointConfig | null;
3216
+ };
3217
+ declare const provideBottomSheetStrategy: () => _angular_core.Provider[];
3218
+ declare const injectBottomSheetStrategy: {
3219
+ (): {
3220
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3221
+ };
3222
+ (options: _angular_core.InjectOptions & {
3223
+ optional?: false;
3224
+ }): {
3225
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3226
+ };
3227
+ (options: _angular_core.InjectOptions): {
3228
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3229
+ } | null;
3230
+ };
3231
+ declare const bottomSheetOverlayStrategy: (config?: Partial<OverlayBreakpointConfig>) => (() => OverlayStrategyBreakpoint[]);
3232
+
3233
+ declare const provideDialogStrategyDefaults: (valueOverride?: Partial<OverlayBreakpointConfig> | undefined) => _angular_core.Provider[];
3234
+ declare const injectDialogStrategyDefaults: {
3235
+ (): OverlayBreakpointConfig;
3236
+ (options: _angular_core.InjectOptions & {
3237
+ optional?: false;
3238
+ }): OverlayBreakpointConfig;
3239
+ (options: _angular_core.InjectOptions): OverlayBreakpointConfig | null;
3240
+ };
3241
+ declare const provideDialogStrategy: () => _angular_core.Provider[];
3242
+ declare const injectDialogStrategy: {
3243
+ (): {
3244
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3245
+ };
3246
+ (options: _angular_core.InjectOptions & {
3247
+ optional?: false;
3248
+ }): {
3249
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3250
+ };
3251
+ (options: _angular_core.InjectOptions): {
3252
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3253
+ } | null;
3254
+ };
3255
+ declare const dialogOverlayStrategy: (config?: Partial<OverlayBreakpointConfig>) => (() => OverlayStrategyBreakpoint[]);
3256
+
3257
+ declare const provideFullscreenDialogStrategyDefaults: (valueOverride?: Partial<OverlayBreakpointConfig> | undefined) => _angular_core.Provider[];
3258
+ declare const injectFullscreenDialogStrategyDefaults: {
3259
+ (): OverlayBreakpointConfig;
3260
+ (options: _angular_core.InjectOptions & {
3261
+ optional?: false;
3262
+ }): OverlayBreakpointConfig;
3263
+ (options: _angular_core.InjectOptions): OverlayBreakpointConfig | null;
3264
+ };
3265
+ declare const provideFullscreenDialogStrategy: () => _angular_core.Provider[];
3266
+ declare const injectFullscreenDialogStrategy: {
3267
+ (): {
3268
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3269
+ };
3270
+ (options: _angular_core.InjectOptions & {
3271
+ optional?: false;
3272
+ }): {
3273
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3274
+ };
3275
+ (options: _angular_core.InjectOptions): {
3276
+ build: (config?: Partial<OverlayBreakpointConfig>) => OverlayStrategy;
3277
+ } | null;
3278
+ };
3279
+ declare const fullScreenDialogOverlayStrategy: (config?: Partial<OverlayBreakpointConfig>) => (() => OverlayStrategyBreakpoint[]);
3280
+
3281
+ declare class OverlayOriginCloneComponent {
3282
+ animatedLifecycle: AnimatedLifecycleDirective;
3283
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayOriginCloneComponent, never>;
3284
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayOriginCloneComponent, "et-overlay-origin-clone", never, {}, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.AnimatedLifecycleDirective; inputs: {}; outputs: {}; }]>;
3285
+ }
3286
+
3287
+ type ViewportTransformData = {
3288
+ viewportWidth: number;
3289
+ viewportHeight: number;
3290
+ rect: DOMRect;
3291
+ scaleUpX: number;
3292
+ scaleUpY: number;
3293
+ viewportCenterX: number;
3294
+ viewportCenterY: number;
3295
+ buttonCenterX: number;
3296
+ buttonCenterY: number;
3297
+ cloneTranslateX: number;
3298
+ cloneTranslateY: number;
3299
+ containerTranslateX: number;
3300
+ containerTranslateY: number;
3301
+ scaleX: number;
3302
+ scaleY: number;
3303
+ };
3304
+ type FullscreenAnimationCancellable = {
3305
+ unsubscribe: () => void;
3306
+ };
3307
+ type FullscreenAnimationState = {
3308
+ readonly originElement: HTMLElement | null;
3309
+ readonly cloneComponentRef: ComponentRef<OverlayOriginCloneComponent> | null;
3310
+ readonly subscriptions: FullscreenAnimationCancellable[];
3311
+ readonly isOriginHidden: boolean;
3312
+ };
3313
+ type FullscreenAnimationDeps = {
3314
+ readonly injector: EnvironmentInjector;
3315
+ readonly document: Document;
3316
+ readonly appRef: ApplicationRef;
3317
+ readonly renderer: AngularRenderer;
3318
+ };
3319
+ declare const cleanupFullscreenAnimationStyles: (options: {
3320
+ containerEl: HTMLElement;
3321
+ renderer: AngularRenderer;
3322
+ state: FullscreenAnimationState | null;
3323
+ }) => void;
3324
+ declare const startFullscreenEnterAnimation: (options: {
3325
+ context: OverlayStrategyContext;
3326
+ deps: FullscreenAnimationDeps;
3327
+ applyTransformOrigin: boolean;
3328
+ skipAnimation: boolean;
3329
+ }) => FullscreenAnimationState;
3330
+ declare const startFullscreenLeaveAnimation: (options: {
3331
+ context: OverlayStrategyContext;
3332
+ state: FullscreenAnimationState;
3333
+ deps: FullscreenAnimationDeps;
3334
+ applyTransformOrigin: boolean;
3335
+ }) => FullscreenAnimationState;
3336
+ declare const cleanupFullscreenAnimation: (state: FullscreenAnimationState, deps: FullscreenAnimationDeps) => void;
3337
+ declare const abortFullscreenAnimation: (options: {
3338
+ context: OverlayStrategyContext;
3339
+ state: FullscreenAnimationState;
3340
+ deps: FullscreenAnimationDeps;
3341
+ }) => void;
3342
+
3343
+ declare const provideLeftSheetStrategyDefaults: (valueOverride?: Partial<OverlayBreakpointConfig> | undefined) => _angular_core.Provider[];
3344
+ declare const injectLeftSheetStrategyDefaults: {
3345
+ (): OverlayBreakpointConfig;
3346
+ (options: _angular_core.InjectOptions & {
3347
+ optional?: false;
3348
+ }): OverlayBreakpointConfig;
3349
+ (options: _angular_core.InjectOptions): OverlayBreakpointConfig | null;
3350
+ };
3351
+ declare const provideLeftSheetStrategy: () => _angular_core.Provider[];
3352
+ declare const injectLeftSheetStrategy: {
3353
+ (): {
3354
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3355
+ };
3356
+ (options: _angular_core.InjectOptions & {
3357
+ optional?: false;
3358
+ }): {
3359
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3360
+ };
3361
+ (options: _angular_core.InjectOptions): {
3362
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3363
+ } | null;
3364
+ };
3365
+ declare const leftSheetOverlayStrategy: (config?: Partial<OverlayBreakpointConfig>) => (() => OverlayStrategyBreakpoint[]);
3366
+
3367
+ type DragToDismissContext = {
3368
+ element: HTMLElement;
3369
+ overlayRef: OverlayRef<object, unknown>;
3370
+ config: OverlayDragToDismissConfig;
3371
+ renderer: AngularRenderer;
3372
+ };
3373
+ type DragToDismissRef = {
3374
+ unsubscribe: () => void;
3375
+ };
3376
+ /**
3377
+ * Enables drag-to-dismiss functionality on an overlay element.
3378
+ * Returns a cleanup function to disable the feature.
3379
+ */
3380
+ declare const enableDragToDismiss: (context: DragToDismissContext) => DragToDismissRef;
3381
+
3382
+ declare const isHtmlElement: (element: unknown) => element is HTMLElement;
3383
+ declare const isTouchEvent: (event: Event) => event is TouchEvent;
3384
+ declare const isPointerEvent: (event: Event) => event is PointerEvent;
3385
+ declare const findNextRelevantHtmlElement: (element: HTMLElement | null, depth?: number) => HTMLElement | null;
3386
+ declare const getOriginCoordinatesAndDimensions: (origin: HTMLElement | Event | undefined) => {
3387
+ x: number;
3388
+ y: number;
3389
+ width: number;
3390
+ height: number;
3391
+ element: HTMLElement;
3392
+ } | null;
3393
+
3394
+ declare const OVERLAY_CONFIG_CLASS_KEYS: Set<string>;
3395
+ declare const mergeOverlayBreakpointConfigs: (...configs: OverlayBreakpointConfig[]) => OverlayBreakpointConfig;
3396
+
3397
+ type OverlayStrategyControllerMountConfig = {
3398
+ positionStrategy: OverlayRuntimePositionStrategy;
3399
+ paneClass: string[];
3400
+ hostClass: string[];
3401
+ backdropClass: string[];
3402
+ animationDelegate: OverlayRuntimeAnimationDelegate;
3403
+ renderArrow: boolean;
3404
+ hasBackdrop: boolean | undefined;
3405
+ };
3406
+ type OverlayStrategyController = {
3407
+ /** Values the overlay manager merges into the runtime mount config before mounting. */
3408
+ initialMountConfig: OverlayStrategyControllerMountConfig;
3409
+ /** Wires strategy lifecycle hooks and breakpoint switching. Must be called right after mounting. */
3410
+ attach: (runtimeRef: OverlayRuntimeRef<object, unknown>, overlayRef: OverlayRef<object, unknown>) => void;
3411
+ };
3412
+ declare const createOverlayStrategyController: (config: OverlayConfig, parentInjector: EnvironmentInjector) => OverlayStrategyController;
3413
+
3414
+ declare const transformingBottomSheetToDialogOverlayStrategy: (customConfig?: {
3415
+ bottomSheet?: OverlayBreakpointConfig;
3416
+ dialog?: OverlayBreakpointConfig;
3417
+ breakpoint?: Breakpoint | number;
3418
+ }) => (() => OverlayStrategyBreakpoint[]);
3419
+ declare const transformingFullScreenDialogToRightSheetOverlayStrategy: (customConfig?: {
3420
+ fullScreenDialog?: OverlayBreakpointConfig;
3421
+ rightSheet?: OverlayBreakpointConfig;
3422
+ breakpoint?: Breakpoint | number;
3423
+ }) => (() => OverlayStrategyBreakpoint[]);
3424
+ declare const transformingFullScreenDialogToDialogOverlayStrategy: (customConfig?: {
3425
+ fullScreenDialog?: OverlayBreakpointConfig;
3426
+ dialog?: OverlayBreakpointConfig;
3427
+ breakpoint?: Breakpoint | number;
3428
+ }) => (() => OverlayStrategyBreakpoint[]);
3429
+
3430
+ declare const provideRightSheetStrategyDefaults: (valueOverride?: Partial<OverlayBreakpointConfig> | undefined) => _angular_core.Provider[];
3431
+ declare const injectRightSheetStrategyDefaults: {
3432
+ (): OverlayBreakpointConfig;
3433
+ (options: _angular_core.InjectOptions & {
3434
+ optional?: false;
3435
+ }): OverlayBreakpointConfig;
3436
+ (options: _angular_core.InjectOptions): OverlayBreakpointConfig | null;
3437
+ };
3438
+ declare const provideRightSheetStrategy: () => _angular_core.Provider[];
3439
+ declare const injectRightSheetStrategy: {
3440
+ (): {
3441
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3442
+ };
3443
+ (options: _angular_core.InjectOptions & {
3444
+ optional?: false;
3445
+ }): {
3446
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3447
+ };
3448
+ (options: _angular_core.InjectOptions): {
3449
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3450
+ } | null;
3451
+ };
3452
+ declare const rightSheetOverlayStrategy: (config?: Partial<OverlayBreakpointConfig>) => (() => OverlayStrategyBreakpoint[]);
3453
+
3454
+ declare const provideTopSheetStrategyDefaults: (valueOverride?: Partial<OverlayBreakpointConfig> | undefined) => _angular_core.Provider[];
3455
+ declare const injectTopSheetStrategyDefaults: {
3456
+ (): OverlayBreakpointConfig;
3457
+ (options: _angular_core.InjectOptions & {
3458
+ optional?: false;
3459
+ }): OverlayBreakpointConfig;
3460
+ (options: _angular_core.InjectOptions): OverlayBreakpointConfig | null;
3461
+ };
3462
+ declare const provideTopSheetStrategy: () => _angular_core.Provider[];
3463
+ declare const injectTopSheetStrategy: {
3464
+ (): {
3465
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3466
+ };
3467
+ (options: _angular_core.InjectOptions & {
3468
+ optional?: false;
3469
+ }): {
3470
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3471
+ };
3472
+ (options: _angular_core.InjectOptions): {
3473
+ build: (config?: Partial<OverlayBreakpointConfig>) => _ethlete_components.OverlayStrategy;
3474
+ } | null;
3475
+ };
3476
+ declare const topSheetOverlayStrategy: (config?: Partial<OverlayBreakpointConfig>) => (() => OverlayStrategyBreakpoint[]);
1625
3477
 
1626
3478
  declare class ScrollableActiveChildDirective {
1627
3479
  private scrollable;
@@ -2277,8 +4129,8 @@ type PipManager = {
2277
4129
  declare class PipBackDirective {
2278
4130
  private chrome;
2279
4131
  private tokenEntry;
2280
- entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2281
4132
  private pipManager;
4133
+ entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2282
4134
  back(event: Event): void;
2283
4135
  private resolveEntry;
2284
4136
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipBackDirective, never>;
@@ -2457,8 +4309,8 @@ declare class PipCloseDirective {
2457
4309
  private chrome;
2458
4310
  private pipWindow;
2459
4311
  private tokenEntry;
2460
- entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2461
4312
  private pipManager;
4313
+ entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2462
4314
  close(event: Event): void;
2463
4315
  private resolveEntry;
2464
4316
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipCloseDirective, never>;
@@ -2497,10 +4349,10 @@ declare class PipTitleBarDirective {
2497
4349
  declare const PIP_WINDOW_ASPECT_RATIO_TOKEN: InjectionToken<Signal<number>>;
2498
4350
 
2499
4351
  declare class StreamPipChromeComponent implements PipChromeRef {
4352
+ pipManager: _ethlete_components.PipManager;
2500
4353
  stageRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2501
4354
  pipWindowRef: _angular_core.Signal<PipWindowComponent | undefined>;
2502
4355
  gridBtnRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2503
- pipManager: _ethlete_components.PipManager;
2504
4356
  state: _ethlete_components.PipChromeState;
2505
4357
  animations: _ethlete_components.PipChromeAnimations;
2506
4358
  readonly CLOSE_KIND: "close";
@@ -2514,11 +4366,11 @@ declare class PipPlayerComponent {
2514
4366
  private document;
2515
4367
  private el;
2516
4368
  protected pipCell: PipCellDirective | null;
2517
- entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2518
- showThumbnail: _angular_core.InputSignal<boolean | undefined>;
2519
4369
  private streamManager;
2520
4370
  private pipManager;
2521
4371
  private renderer;
4372
+ entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
4373
+ showThumbnail: _angular_core.InputSignal<boolean | undefined>;
2522
4374
  isReady: _angular_core.WritableSignal<boolean>;
2523
4375
  resolvedEntry: _angular_core.Signal<StreamPipEntry>;
2524
4376
  thumbnailUrl: _angular_core.Signal<string | null>;
@@ -2556,11 +4408,11 @@ declare const injectPipSlotPlaceholderConfig: {
2556
4408
  declare class PipSlotPlaceholderComponent {
2557
4409
  private slotPlayerId;
2558
4410
  private parentSurfaceProvider;
2559
- private bringBackDir;
2560
4411
  private pipManager;
2561
4412
  private config;
2562
4413
  private locale;
2563
4414
  private surfaceThemes;
4415
+ private bringBackDir;
2564
4416
  cardSurface: _angular_core.Signal<string | null>;
2565
4417
  isInPip: _angular_core.Signal<boolean>;
2566
4418
  message: _angular_core.Signal<string>;
@@ -2603,10 +4455,10 @@ declare class StreamPlayerSlotDirective {
2603
4455
  private playerComponent;
2604
4456
  private provideSurface;
2605
4457
  private parentSurfaceProvider;
2606
- streamSlotPriority: _angular_core.InputSignalWithTransform<boolean, unknown>;
2607
- streamSlotOnPipBack: _angular_core.InputSignal<(() => void) | undefined>;
2608
4458
  private surfaceThemes;
2609
4459
  private styleManager;
4460
+ streamSlotPriority: _angular_core.InputSignalWithTransform<boolean, unknown>;
4461
+ streamSlotOnPipBack: _angular_core.InputSignal<(() => void) | undefined>;
2610
4462
  private resolvedSurface;
2611
4463
  slot: _ethlete_components.StreamPlayerSlotHandle;
2612
4464
  constructor();
@@ -3601,6 +5453,7 @@ declare class ToggletipDirective {
3601
5453
  private elementRef;
3602
5454
  private colorProvider;
3603
5455
  private surfaceProvider;
5456
+ private overlayManager;
3604
5457
  content: _angular_core.InputSignal<ToggletipContent | null>;
3605
5458
  ariaLabel: _angular_core.InputSignal<string | null>;
3606
5459
  ariaLabelledBy: _angular_core.InputSignal<string | null>;
@@ -3611,7 +5464,6 @@ declare class ToggletipDirective {
3611
5464
  viewportPadding: _angular_core.InputSignal<Padding | null>;
3612
5465
  disabled: _angular_core.InputSignal<boolean>;
3613
5466
  open: _angular_core.ModelSignal<boolean>;
3614
- private overlayManager;
3615
5467
  /** @internal */
3616
5468
  overlayRef: _angular_core.WritableSignal<OverlayRef<ToggletipComponent, unknown> | null>;
3617
5469
  private toggletipId;
@@ -3634,24 +5486,18 @@ declare class ToggletipDirective {
3634
5486
 
3635
5487
  declare class ToggletipComponent {
3636
5488
  private ownColorProvider;
3637
- private ownSurfaceProvider;
3638
5489
  private triggerColorProvider;
3639
- private triggerSurfaceProvider;
3640
5490
  protected injector: Injector;
3641
5491
  toggletipId: _angular_core.InputSignal<string>;
3642
5492
  protected contentId: _angular_core.InputSignal<string>;
3643
5493
  content: _angular_core.InputSignal<ToggletipContent>;
3644
5494
  colorProvider: _angular_core.InputSignal<ProvideColorDirective | null>;
3645
- surfaceProvider: _angular_core.InputSignal<ProvideSurfaceDirective | null>;
3646
- animatedLifecycle: _angular_core.Signal<AnimatedLifecycleDirective | undefined>;
3647
- private surfaceThemes;
3648
5495
  hasTemplate: _angular_core.Signal<boolean>;
3649
5496
  contentText: _angular_core.Signal<string | null>;
3650
5497
  contentTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
3651
- resolvedSurface: _angular_core.Signal<string | null>;
3652
5498
  constructor();
3653
5499
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggletipComponent, never>;
3654
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggletipComponent, "et-toggletip", never, { "toggletipId": { "alias": "toggletipId"; "required": true; "isSignal": true; }; "contentId": { "alias": "contentId"; "required": true; "isSignal": true; }; "content": { "alias": "content"; "required": true; "isSignal": true; }; "colorProvider": { "alias": "colorProvider"; "required": true; "isSignal": true; }; "surfaceProvider": { "alias": "surfaceProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
5500
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggletipComponent, "et-toggletip", never, { "toggletipId": { "alias": "toggletipId"; "required": true; "isSignal": true; }; "contentId": { "alias": "contentId"; "required": true; "isSignal": true; }; "content": { "alias": "content"; "required": true; "isSignal": true; }; "colorProvider": { "alias": "colorProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: { "surfaceProvider": "surfaceProvider"; }; outputs: {}; }]>;
3655
5501
  }
3656
5502
 
3657
5503
  declare class ToggletipCloseDirective {
@@ -3682,22 +5528,16 @@ declare const TOGGLETIP_IMPORTS: readonly [typeof ToggletipDirective, typeof Tog
3682
5528
 
3683
5529
  declare class TooltipComponent {
3684
5530
  private ownColorProvider;
3685
- private ownSurfaceProvider;
3686
5531
  private triggerColorProvider;
3687
- private triggerSurfaceProvider;
3688
5532
  tooltipId: _angular_core.InputSignal<string>;
3689
5533
  content: _angular_core.InputSignal<TooltipContent>;
3690
5534
  colorProvider: _angular_core.InputSignal<ProvideColorDirective | null>;
3691
- surfaceProvider: _angular_core.InputSignal<ProvideSurfaceDirective | null>;
3692
- animatedLifecycle: _angular_core.Signal<AnimatedLifecycleDirective | undefined>;
3693
- private surfaceThemes;
3694
5535
  hasTemplate: _angular_core.Signal<boolean>;
3695
5536
  contentText: _angular_core.Signal<string | null>;
3696
5537
  contentTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
3697
- resolvedSurface: _angular_core.Signal<string | null>;
3698
5538
  constructor();
3699
5539
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
3700
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "et-tooltip", never, { "tooltipId": { "alias": "tooltipId"; "required": true; "isSignal": true; }; "content": { "alias": "content"; "required": true; "isSignal": true; }; "colorProvider": { "alias": "colorProvider"; "required": true; "isSignal": true; }; "surfaceProvider": { "alias": "surfaceProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
5540
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "et-tooltip", never, { "tooltipId": { "alias": "tooltipId"; "required": true; "isSignal": true; }; "content": { "alias": "content"; "required": true; "isSignal": true; }; "colorProvider": { "alias": "colorProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: { "surfaceProvider": "surfaceProvider"; }; outputs: {}; }]>;
3701
5541
  }
3702
5542
 
3703
5543
  type TooltipContent = string | TemplateRef<unknown>;
@@ -3707,6 +5547,9 @@ declare class TooltipDirective {
3707
5547
  private elementRef;
3708
5548
  private colorProvider;
3709
5549
  private surfaceProvider;
5550
+ private overlayManager;
5551
+ private focusVisibleTracker;
5552
+ private renderer;
3710
5553
  content: _angular_core.InputSignal<TooltipContent | null>;
3711
5554
  ariaDescription: _angular_core.InputSignal<string | null>;
3712
5555
  placement: _angular_core.InputSignal<Placement>;
@@ -3716,9 +5559,6 @@ declare class TooltipDirective {
3716
5559
  viewportPadding: _angular_core.InputSignal<Padding | null>;
3717
5560
  showDelay: _angular_core.InputSignal<number>;
3718
5561
  disabled: _angular_core.InputSignal<boolean>;
3719
- private overlayManager;
3720
- private focusVisibleTracker;
3721
- private renderer;
3722
5562
  /** @internal */
3723
5563
  overlayRef: _angular_core.WritableSignal<OverlayRef<TooltipComponent, unknown> | null>;
3724
5564
  private hasHover;
@@ -3744,5 +5584,5 @@ declare const TOOLTIP_ERROR_CODES: {
3744
5584
 
3745
5585
  declare const TOOLTIP_IMPORTS: readonly [typeof TooltipDirective, typeof TooltipComponent];
3746
5586
 
3747
- export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, FACEBOOK_PLAYER_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridImports, GridItemComponent, GridItemDirective, GridItemRef, GridResizeDirective, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LOCK_ICON, LabelDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, OVERLAY_ERROR_CODES, OVERLAY_IMPORTS, OVERLAY_REF, OverlayAnchorDirective, OverlayDirective, OverlaySurfaceDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, RadioComponent, RadioGroupComponent, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SOOP_PLAYER_TOKEN, STREAM_CONSENT_TOKEN, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableErrorCode, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, createGridAdapter, createNotificationRef, createOverlayRef, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, fromGridPosition, injectFormSupport, injectGridConfig, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, provideFormSupport, provideGridConfig, provideIcons, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlayManager, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, toGridPosition };
3748
- export type { ButtonIconAlignment, ButtonSize, FacebookVideoPlayer, FacebookWindow, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldSize, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridItemConfig, GridItemConstraints, GridItemPosition, GridLayoutEntry, GridSerializedState, HintComponentBase, IconDefinition, InputTextAlignment, LabelDirectiveBase, NotificationAction, NotificationConfig, NotificationEntry, NotificationManager, NotificationManagerConfig, NotificationRef, NotificationStackContext, NotificationStatus, OverlayAutoFocusTarget, OverlayConfig, OverlayManager, OverlayMode, OverlayPositionStrategy, OverlayRef, OverlayRole, OverlaySurfaceContext, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SelectionListDirectiveBase, SelectionListItem, StreamConfig, StreamConsentConfig, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, ToggletipContent, TooltipContent, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };
5587
+ export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BOLD_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_BREAKPOINTS, DEFAULT_ICON_VARIANT, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, FACEBOOK_PLAYER_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridImports, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemRef, GridItemToolbarComponent, GridResizeDirective, HEADING_1_ICON, HEADING_2_ICON, HEADING_3_ICON, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOCK_ICON, LabelDirective, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHandlerLinkDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, RICH_TEXT_EDITOR_IMPORTS, RadioComponent, RadioGroupComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, STREAM_CONSENT_TOKEN, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, STRIKETHROUGH_ICON, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableErrorCode, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, abortFullscreenAnimation, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, autoPlace, bottomSheetOverlayStrategy, buildAnchoredRuntimePositionStrategy, centeredOverlayStrategy, clampPosition, clampResizeRect, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, compactLayout, computeGeometry, computeGridHeight, createAutoScroller, createGridAdapter, createNotificationRef, createOverlayHandler, createOverlayHandlerWithQueryParamLifecycle, createOverlayRef, createOverlayStrategyController, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, deserializeGridLayout, dialogOverlayStrategy, enableDragToDismiss, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, fromGridPosition, fullScreenDialogOverlayStrategy, getClosestOverlay, getOriginCoordinatesAndDimensions, hysteresisRound, iconRegistryKey, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectDialogStrategy, injectDialogStrategyDefaults, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSidebarOverlay, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isHtmlElement, isPointerEvent, isTouchEvent, itemsCollide, leftSheetOverlayStrategy, mapLayoutToBreakpoint, mergeOverlayBreakpointConfigs, pixelRectsEqual, positionToPixelRect, positionsEqual, projectDragCell, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideDialogStrategy, provideDialogStrategyDefaults, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideIcons, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTopSheetStrategy, provideTopSheetStrategyDefaults, resizeSpanBounds, resolveBreakpoint, resolveClosestOverlay, resolveCollisions, rightSheetOverlayStrategy, rowsToPixelHeight, serializeGridLayout, snapResizeSpan, spanHeight, spanWidth, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, toGridPosition, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy };
5588
+ export type { AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPositionOptions, AutoPlaceOptions, AutoScrollPointer, AutoScroller, ButtonIconAlignment, ButtonSize, CenteredOverlayStrategyOptions, ClampPositionOptions, CompactLayoutOptions, CreateOverlayHandlerConfig, CreateOverlayHandlerInnerConfig, CreateOverlayHandlerWithQueryParamLifecycleConfig, DragToDismissContext, DragToDismissRef, EthleteIconNameRegistry, EthleteIconVariantRegistry, FacebookVideoPlayer, FacebookWindow, FindCollisionOptions, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldSize, FullscreenAnimationCancellable, FullscreenAnimationDeps, FullscreenAnimationState, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridGeometry, GridItemActionsComponent, GridItemConfig, GridItemConstraints, GridItemPosition, GridLayoutEntry, GridSerializedState, HintComponentBase, IconDefinition, InputTextAlignment, LabelDirectiveBase, MapLayoutOptions, MenuAnchorPoint, MenuCloseReason, MenuItemActivationEvent, MenuItemActivationSource, MenuItemVariant, MenuOpenSource, MenuSelectionGroupDirectiveBase, MenuSelectionGroupItem, MenuSelectionItemKind, MenuSurfaceContext, NotificationAction, NotificationConfig, NotificationEntry, NotificationManager, NotificationManagerConfig, NotificationRef, NotificationStackContext, NotificationStatus, OverlayAutoFocusTarget, OverlayBodyDividerType, OverlayBreakpointConfig, OverlayConfig, OverlayConsumerConfig, OverlayDragToDismissConfig, OverlayHandler, OverlayHandlerWithQueryParamLifecycle, OverlayManager, OverlayMode, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, RegisteredIconName, RegisteredIconVariant, ResizeSpanBounds, ResolveClosestOverlayOptions, ResolveCollisionsOptions, RowFloors, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SelectionListDirectiveBase, SelectionListItem, SerializeOptions, SidebarOverlay, SidebarOverlayConfig, StreamConfig, StreamConsentConfig, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, ToggletipContent, TooltipContent, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, ViewportTransformData, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };