@ethlete/components 1.0.0-next.17 → 1.0.0-next.18

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,10 +1,11 @@
1
1
  import * as _angular_core 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';
2
+ import { Signal, WritableSignal, InjectionToken, ElementRef, Type, InputSignal, ViewContainerRef, Injector, Binding, StaticProvider, TemplateRef, OnInit, ComponentRef, ModelSignal, OnDestroy, computed, Provider, EnvironmentInjector, ApplicationRef } from '@angular/core';
3
3
  import * as _ethlete_core from '@ethlete/core';
4
- import { AnimatableDirective, ResizeEdge, DragHandleDirective, ResizeMoveEvent, OverlayRuntimePositionStrategy, Breakpoint, OverlayRuntimeRef, AnimatedLifecycleDirective, OverlayRuntimeCloseSource, AnimatedLifecycleState, AngularRenderer, OverlayRuntimeAnimationDelegate, ScrollObserverDirective, ScrollToElementOptions, ConsentHandler, ProvideColorDirective } from '@ethlete/core';
4
+ import { AnimatableDirective, ResizeEdge, DragHandleDirective, ResizeMoveEvent, OverlayRuntimePositionStrategy, Breakpoint, OverlayRuntimeRef, AnimatedLifecycleDirective, OverlayRuntimeCloseSource, AnimatedLifecycleState, OverlayRuntimeShiftOptions, AngularRenderer, OverlayRuntimeAnimationDelegate, ScrollObserverDirective, ScrollToElementOptions, ConsentHandler, ProvideColorDirective } from '@ethlete/core';
5
5
  import * as _angular_forms_signals from '@angular/forms/signals';
6
- import { ValidationError, FormCheckboxControl, FormValueControl } from '@angular/forms/signals';
6
+ import { ValidationError, FormCheckboxControl, PathKind, SchemaPath, SchemaPathRules, FormValueControl } from '@angular/forms/signals';
7
7
  import * as _ethlete_components from '@ethlete/components';
8
+ import { QueryArgs, QueryCreator, RequestArgs, ResponseType, AnyNewQuery, QueryErrorResponse } from '@ethlete/query';
8
9
  import * as _angular_platform_browser from '@angular/platform-browser';
9
10
  import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
10
11
  import * as rxjs from 'rxjs';
@@ -39,6 +40,41 @@ declare class ButtonDirective {
39
40
  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: {}; }]>;
40
41
  }
41
42
 
43
+ declare class SplitButtonActionDirective {
44
+ private splitButton;
45
+ private destroyRef;
46
+ constructor();
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitButtonActionDirective, never>;
48
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SplitButtonActionDirective, "[etSplitButtonAction]", ["etSplitButtonAction"], {}, {}, never, never, true, never>;
49
+ }
50
+
51
+ declare const SPLIT_BUTTON_ERROR_CODES: {
52
+ readonly MISSING_ACTION: 2300;
53
+ readonly MISSING_TRIGGER: 2301;
54
+ readonly ACTION_OUTSIDE_SPLIT_BUTTON: 2302;
55
+ readonly TRIGGER_OUTSIDE_SPLIT_BUTTON: 2303;
56
+ };
57
+
58
+ declare class SplitButtonTriggerDirective {
59
+ private splitButton;
60
+ private destroyRef;
61
+ constructor();
62
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitButtonTriggerDirective, never>;
63
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SplitButtonTriggerDirective, "[etSplitButtonTrigger]", ["etSplitButtonTrigger"], {}, {}, never, never, true, never>;
64
+ }
65
+
66
+ declare class SplitButtonDirective {
67
+ registeredAction: _angular_core.WritableSignal<SplitButtonActionDirective | null>;
68
+ registeredTrigger: _angular_core.WritableSignal<SplitButtonTriggerDirective | null>;
69
+ constructor();
70
+ /** @internal */
71
+ unregisterAction(action: SplitButtonActionDirective): void;
72
+ /** @internal */
73
+ unregisterTrigger(trigger: SplitButtonTriggerDirective): void;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitButtonDirective, never>;
75
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SplitButtonDirective, "[etSplitButton]", ["etSplitButton"], {}, {}, never, never, true, never>;
76
+ }
77
+
42
78
  declare class FocusRingDirective {
43
79
  private styleManager;
44
80
  disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -125,6 +161,11 @@ declare class IconButtonComponent {
125
161
  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: {}; }]>;
126
162
  }
127
163
 
164
+ declare class SplitButtonComponent {
165
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitButtonComponent, never>;
166
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SplitButtonComponent, "et-split-button", never, {}, {}, never, ["*"], true, [{ directive: typeof SplitButtonDirective; inputs: {}; outputs: {}; }]>;
167
+ }
168
+
128
169
  declare class TextButtonComponent {
129
170
  protected buttonDir: ButtonDirective;
130
171
  size: _angular_core.InputSignal<ButtonSize>;
@@ -172,10 +213,10 @@ declare class WindowControlButtonComponent {
172
213
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<WindowControlButtonComponent, "[et-window-control-button]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "kind": { "alias": "kind"; "required": false; "isSignal": true; }; }, {}, never, ["*"], 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: {}; }]>;
173
214
  }
174
215
 
175
- declare const BUTTON_IMPORTS: readonly [typeof ButtonComponent, typeof FabComponent, typeof IconButtonComponent, typeof TextButtonComponent, typeof WindowControlButtonComponent, typeof ButtonDirective];
216
+ declare const BUTTON_IMPORTS: readonly [typeof ButtonComponent, typeof FabComponent, typeof IconButtonComponent, typeof SplitButtonComponent, typeof TextButtonComponent, typeof WindowControlButtonComponent, typeof ButtonDirective, typeof SplitButtonDirective, typeof SplitButtonActionDirective, typeof SplitButtonTriggerDirective];
176
217
 
177
218
  declare const FORM_FIELD_ERROR_CODES: {
178
- readonly MISSING_CONTROL: 1800;
219
+ readonly MISSING_CONTROL: 2200;
179
220
  };
180
221
 
181
222
  declare const FORM_FIELD_CONTROL_TYPES: {
@@ -186,6 +227,7 @@ declare const FORM_FIELD_CONTROL_TYPES: {
186
227
  readonly SWITCH: "switch";
187
228
  readonly SEGMENTED_BUTTON: "segmented-button";
188
229
  readonly SELECTION_LIST: "selection-list";
230
+ readonly DROPZONE: "dropzone";
189
231
  };
190
232
  type FormFieldControlType = (typeof FORM_FIELD_CONTROL_TYPES)[keyof typeof FORM_FIELD_CONTROL_TYPES];
191
233
  type FormFieldControl = {
@@ -371,6 +413,30 @@ declare class CheckboxComponent {
371
413
 
372
414
  declare const CHECKBOX_IMPORTS: readonly [typeof CheckboxComponent, typeof CheckboxDirective];
373
415
 
416
+ declare const FORM_FIELD_APPEARANCES: {
417
+ readonly BOX: "box";
418
+ readonly UNDERLINE: "underline";
419
+ };
420
+ type FormFieldAppearance = (typeof FORM_FIELD_APPEARANCES)[keyof typeof FORM_FIELD_APPEARANCES];
421
+ declare const FORM_FIELD_FILLS: {
422
+ readonly TRANSPARENT: "transparent";
423
+ readonly FILLED: "filled";
424
+ };
425
+ type FormFieldFill = (typeof FORM_FIELD_FILLS)[keyof typeof FORM_FIELD_FILLS];
426
+ declare const FORM_FIELD_LABEL_MODES: {
427
+ readonly STATIC: "static";
428
+ readonly INLINE: "inline";
429
+ readonly FLOATING_INSIDE: "floating-inside";
430
+ readonly FLOATING_OUTSIDE: "floating-outside";
431
+ };
432
+ type FormFieldLabelMode = (typeof FORM_FIELD_LABEL_MODES)[keyof typeof FORM_FIELD_LABEL_MODES];
433
+ declare const FORM_FIELD_SIZES: {
434
+ readonly SM: "sm";
435
+ readonly MD: "md";
436
+ readonly LG: "lg";
437
+ };
438
+ type FormFieldSize = (typeof FORM_FIELD_SIZES)[keyof typeof FORM_FIELD_SIZES];
439
+
374
440
  declare class ChoiceFieldComponent {
375
441
  support: {
376
442
  errorColorTheme: _ethlete_core.ColorTheme;
@@ -389,6 +455,7 @@ declare class ChoiceFieldComponent {
389
455
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
390
456
  supportHeight: _angular_core.Signal<number>;
391
457
  };
458
+ size: _angular_core.InputSignal<FormFieldSize>;
392
459
  private errorContentRef;
393
460
  private hintContentRef;
394
461
  private errorAnimatableRef;
@@ -398,7 +465,7 @@ declare class ChoiceFieldComponent {
398
465
  };
399
466
  constructor();
400
467
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChoiceFieldComponent, never>;
401
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChoiceFieldComponent, "et-choice-field", never, {}, {}, never, ["*", "et-label", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
468
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChoiceFieldComponent, "et-choice-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-label", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
402
469
  }
403
470
 
404
471
  declare class HintComponent implements HintComponentBase {
@@ -416,36 +483,328 @@ declare class DescriptionComponent {
416
483
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DescriptionComponent, "et-description", never, {}, {}, never, ["*"], true, never>;
417
484
  }
418
485
 
486
+ /**
487
+ * Display information for a value that is already part of the form control
488
+ * (e.g. media uploaded in a previous session inside an edit form).
489
+ */
490
+ type DropzoneExistingFileInfo = {
491
+ /** URL rendered as a preview thumbnail. */
492
+ previewUrl?: string | null;
493
+ /** Human readable name of the file. Falls back to the stringified value. */
494
+ name?: string;
495
+ /** File size in bytes. */
496
+ size?: number | null;
497
+ };
498
+ type DropzoneUploadConfig<TArgs extends QueryArgs = QueryArgs, TValue = unknown> = {
499
+ /**
500
+ * The query creator used to upload a single file (e.g. a POST multipart route).
501
+ *
502
+ * For per-file upload progress, create it with `reportProgress: true` and make sure the
503
+ * app uses the XHR `HttpClient` backend (upload progress events are not supported with
504
+ * `provideHttpClient(withFetch())`). Without progress information the dropzone falls
505
+ * back to an indeterminate progress display.
506
+ */
507
+ queryCreator: QueryCreator<TArgs>;
508
+ /**
509
+ * Builds the request args for one file.
510
+ * Override to change the multipart field name or to add extra fields, path params,
511
+ * query params or headers.
512
+ *
513
+ * @default (file) => ({ body: FormData with the file appended as "file" })
514
+ */
515
+ createArgs?: (file: File) => RequestArgs<TArgs>;
516
+ /**
517
+ * Maps the upload response to the value that gets pushed into the form control
518
+ * (e.g. `(media) => media.uuid`).
519
+ */
520
+ selectValue: (response: NonNullable<ResponseType<TArgs>>) => TValue;
521
+ /**
522
+ * Maps a value that is already part of the form control (edit forms) to display info.
523
+ * Called in a reactive context — reading signals inside it is supported, so async
524
+ * lookups can be modeled as signals updating over time.
525
+ *
526
+ * Required as soon as the form control can start with a non-empty value.
527
+ */
528
+ resolveExisting?: (value: TValue) => DropzoneExistingFileInfo;
529
+ };
530
+ type AnyDropzoneUploadConfig<TValue = unknown> = DropzoneUploadConfig<any, TValue>;
531
+ /**
532
+ * Identity helper that correlates the query args type with the form control value type,
533
+ * so `DropzoneUploadConfig` objects get full type inference at the definition site.
534
+ */
535
+ declare const createDropzoneUpload: <TArgs extends QueryArgs, TValue>(config: DropzoneUploadConfig<TArgs, TValue>) => DropzoneUploadConfig<TArgs, TValue>;
536
+ declare const createDefaultDropzoneArgs: (file: File) => RequestArgs<QueryArgs>;
537
+
538
+ declare const DROPZONE_ENTRY_STATUSES: {
539
+ readonly UPLOADING: "uploading";
540
+ readonly SUCCESS: "success";
541
+ readonly ERROR: "error";
542
+ readonly EXISTING: "existing";
543
+ };
544
+ type DropzoneEntryStatus = (typeof DROPZONE_ENTRY_STATUSES)[keyof typeof DROPZONE_ENTRY_STATUSES];
545
+ type DropzoneEntrySource<TValue = unknown> = {
546
+ type: 'file';
547
+ file: File;
548
+ } | {
549
+ type: 'existing';
550
+ value: TValue;
551
+ };
552
+ type DropzoneEntry<TValue = unknown> = {
553
+ /** Unique id of this entry. Stable for the lifetime of the entry. */
554
+ id: string;
555
+ /** What this entry was created from — a picked/dropped file or an existing form control value. */
556
+ source: DropzoneEntrySource<TValue>;
557
+ /** Human readable name (file name or resolved from the existing value). */
558
+ name: Signal<string>;
559
+ /** File size in bytes. `null` when unknown. */
560
+ size: Signal<number | null>;
561
+ /** Preview URL (object URL for image files, resolver-provided URL for existing values). */
562
+ previewUrl: Signal<string | null>;
563
+ status: Signal<DropzoneEntryStatus>;
564
+ /** Upload progress in percent. `null` means indeterminate (or not uploading). */
565
+ progress: Signal<number | null>;
566
+ /** The upload error, if the last upload attempt failed. */
567
+ error: Signal<QueryErrorResponse | null>;
568
+ /** The form control value of this entry. `null` until the upload succeeded. */
569
+ value: Signal<TValue | null>;
570
+ /** @internal The upload query. `null` for existing entries. */
571
+ query: AnyNewQuery | null;
572
+ /** @internal The frozen request args of the upload. Reused for retries. */
573
+ args: RequestArgs<QueryArgs> | null;
574
+ /** @internal Object URL that must be revoked when the entry is disposed. */
575
+ objectUrl: string | null;
576
+ };
577
+ type CreateFileDropzoneEntryOptions<TValue> = {
578
+ file: File;
579
+ query: AnyNewQuery;
580
+ args: RequestArgs<QueryArgs>;
581
+ selectValue: (response: unknown) => TValue;
582
+ };
583
+ declare const createFileDropzoneEntry: <TValue>(options: CreateFileDropzoneEntryOptions<TValue>) => DropzoneEntry<TValue>;
584
+ type CreateExistingDropzoneEntryOptions<TValue> = {
585
+ value: TValue;
586
+ upload: Signal<AnyDropzoneUploadConfig<TValue>>;
587
+ };
588
+ declare const createExistingDropzoneEntry: <TValue>(options: CreateExistingDropzoneEntryOptions<TValue>) => DropzoneEntry<TValue>;
589
+ /** Releases all resources held by an entry (object URL, in-flight upload). */
590
+ declare const disposeDropzoneEntry: <TValue>(entry: DropzoneEntry<TValue>) => void;
591
+ /** Checks a file against the native `accept` attribute semantics (`.ext`, `type/subtype`, `type/*`). */
592
+ declare const isFileAccepted: (file: File, accept: string) => boolean;
593
+ /** Formats a byte count as a short human readable string (e.g. `1.5 MB`). */
594
+ declare const formatFileSize: (bytes: number) => string;
595
+
596
+ declare const DROPZONE_FILE_REJECTION_REASONS: {
597
+ readonly ACCEPT: "accept";
598
+ readonly MAX_FILE_SIZE: "maxFileSize";
599
+ readonly MIN_FILE_SIZE: "minFileSize";
600
+ readonly MAX_FILES: "maxFiles";
601
+ };
602
+ type DropzoneFileRejectionReason = (typeof DROPZONE_FILE_REJECTION_REASONS)[keyof typeof DROPZONE_FILE_REJECTION_REASONS];
603
+ type DropzoneFileRejection = {
604
+ file: File;
605
+ reason: DropzoneFileRejectionReason;
606
+ };
607
+ /** The `kind` of the {@link ValidationError}s produced by {@link dropzoneFiles}. */
608
+ declare const DROPZONE_FILES_ERROR_KIND = "dropzoneFiles";
609
+ type DropzoneFileConstraints = {
610
+ /**
611
+ * Accepted file types using the native `accept` attribute semantics
612
+ * (`.png`, `image/png`, `image/*`). Also applied to the native file picker.
613
+ */
614
+ accept?: string;
615
+ /** Maximum size of a single file in bytes. */
616
+ maxFileSize?: number;
617
+ /** Minimum size of a single file in bytes. */
618
+ minFileSize?: number;
619
+ /** Overrides the built-in per-rejection error message (e.g. for i18n). */
620
+ message?: (rejection: DropzoneFileRejection) => string;
621
+ };
622
+ /**
623
+ * @internal
624
+ * The channel between the {@link dropzoneFiles} schema rule and the dropzone directive:
625
+ * the schema publishes the constraints, the directive publishes the rejected files of
626
+ * the most recent selection.
627
+ */
628
+ type DropzoneFileValidationChannel = {
629
+ constraints: Signal<DropzoneFileConstraints | undefined>;
630
+ rejections: WritableSignal<DropzoneFileRejection[]>;
631
+ };
632
+ /** @internal Read by the dropzone directive via the bound field's metadata. */
633
+ declare const DROPZONE_FILE_CONSTRAINTS: _angular_forms_signals.MetadataKey<DropzoneFileValidationChannel, DropzoneFileConstraints, DropzoneFileConstraints | undefined>;
634
+ declare const defaultDropzoneRejectionMessage: (rejection: DropzoneFileRejection, constraints: DropzoneFileConstraints | undefined) => string;
635
+ /**
636
+ * Schema rule that validates the files selected in a dropzone bound to this field.
637
+ *
638
+ * Files violating the constraints are never uploaded; each violation surfaces as a
639
+ * regular validation error (`kind: 'dropzoneFiles'`) on the field until the next
640
+ * selection, removal or clear. Count and emptiness constraints are plain value
641
+ * validation — use `required()`, `minLength()` and `maxLength()` for those.
642
+ *
643
+ * @example
644
+ * ```ts
645
+ * form(model, (s) => {
646
+ * required(s.media, { message: 'Please upload a file' });
647
+ * maxLength(s.media, 5, { message: 'Upload at most 5 files' });
648
+ * dropzoneFiles(s.media, { accept: 'image/*', maxFileSize: 5 * 1024 * 1024 });
649
+ * });
650
+ * ```
651
+ */
652
+ declare const dropzoneFiles: <TValue, TPathKind extends PathKind = PathKind.Root>(path: SchemaPath<TValue, SchemaPathRules.Supported, TPathKind>, constraints: DropzoneFileConstraints | (() => DropzoneFileConstraints)) => void;
653
+
654
+ declare class DropzoneDirective<TValue = unknown> implements FormValueControl<TValue | TValue[] | null>, FormFieldControl {
655
+ private formField;
656
+ private signalFormField;
657
+ private destroyRef;
658
+ private injector;
659
+ value: _angular_core.ModelSignal<TValue | TValue[] | null>;
660
+ touched: _angular_core.ModelSignal<boolean>;
661
+ disabled: _angular_core.InputSignal<boolean>;
662
+ invalid: _angular_core.InputSignal<boolean>;
663
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
664
+ required: _angular_core.InputSignal<boolean>;
665
+ name: _angular_core.InputSignal<string>;
666
+ /** The upload workflow configuration. Create it via `createDropzoneUpload()`. */
667
+ upload: _angular_core.InputSignal<AnyDropzoneUploadConfig<TValue>>;
668
+ /** Whether multiple files can be uploaded. The control value becomes an array. */
669
+ multiple: _angular_core.InputSignal<boolean>;
670
+ /** Emits all files of a selection that were rejected, with the reason per file. */
671
+ filesRejected: _angular_core.OutputEmitterRef<DropzoneFileRejection[]>;
672
+ /** Emits when the upload of an entry succeeded (after the control value was updated). */
673
+ uploadSucceeded: _angular_core.OutputEmitterRef<DropzoneEntry<TValue>>;
674
+ /** Emits when the upload of an entry failed. */
675
+ uploadFailed: _angular_core.OutputEmitterRef<DropzoneEntry<TValue>>;
676
+ private internalEntries;
677
+ private internalLastRejections;
678
+ private dragDepth;
679
+ private entryWatchers;
680
+ private lastSyncedValue;
681
+ private hasSyncedValue;
682
+ /** All entries currently managed by the dropzone, including uploading and failed ones. */
683
+ entries: _angular_core.Signal<DropzoneEntry<TValue>[]>;
684
+ /** The rejections of the most recent file selection. Reset by the next selection, removal or clear. */
685
+ lastRejections: _angular_core.Signal<DropzoneFileRejection[]>;
686
+ /**
687
+ * The file validation channel of the bound form field, if its schema uses the
688
+ * `dropzoneFiles()` rule. Provides the constraints and receives the rejections.
689
+ */
690
+ private fileValidation;
691
+ /** The `accept` constraint of the bound field's `dropzoneFiles()` rule. Empty accepts everything. */
692
+ accept: _angular_core.Signal<string>;
693
+ /** Whether a files drag is currently hovering the dropzone. */
694
+ isDragOver: _angular_core.Signal<boolean>;
695
+ anyUploading: _angular_core.Signal<boolean>;
696
+ anyFailed: _angular_core.Signal<boolean>;
697
+ hasValue: _angular_core.Signal<boolean>;
698
+ shouldDisplayError: _angular_core.Signal<boolean>;
699
+ describedBy: _angular_core.WritableSignal<string | null>;
700
+ controlType: _angular_core.WritableSignal<"dropzone">;
701
+ describedById: _angular_core.Signal<string | null>;
702
+ labelId: _angular_core.Signal<string | null>;
703
+ /** @internal */
704
+ focusTarget: _angular_core.WritableSignal<HTMLElement | null>;
705
+ constructor();
706
+ /** Validates the given files and uploads all accepted ones. */
707
+ selectFiles(files: FileList | readonly File[]): void;
708
+ /** Removes an entry. Cancels its upload if it is still in flight. */
709
+ removeEntry(id: string): void;
710
+ /** Retries the upload of a failed entry with its original request args. */
711
+ retryEntry(id: string): void;
712
+ /** Removes all entries and resets the control value. */
713
+ clear(): void;
714
+ activate(): void;
715
+ protected handleDragEnter(event: DragEvent): void;
716
+ protected handleDragOver(event: DragEvent): void;
717
+ protected handleDragLeave(): void;
718
+ protected handleDrop(event: DragEvent): void;
719
+ private setRejections;
720
+ private createFileEntry;
721
+ private disposeEntry;
722
+ private syncValue;
723
+ private reconcileValue;
724
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropzoneDirective<any>, never>;
725
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DropzoneDirective<any>, "[etDropzone]", never, { "value": { "alias": "value"; "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; }; "upload": { "alias": "upload"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "filesRejected": "filesRejected"; "uploadSucceeded": "uploadSucceeded"; "uploadFailed": "uploadFailed"; }, never, never, true, never>;
726
+ }
727
+
728
+ declare class DropzoneComponent {
729
+ protected dropzoneDir: DropzoneDirective<any>;
730
+ support: {
731
+ errorColorTheme: _ethlete_core.ColorTheme;
732
+ formFieldDir: FormFieldDirective;
733
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
734
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
735
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
736
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
737
+ semanticSupportState: _angular_core.Signal<"none" | "hint" | "error">;
738
+ displaysError: _angular_core.Signal<boolean>;
739
+ shouldRenderSupport: _angular_core.Signal<boolean>;
740
+ shouldRenderError: _angular_core.Signal<boolean>;
741
+ shouldRenderHint: _angular_core.Signal<boolean>;
742
+ errorActive: _angular_core.Signal<boolean>;
743
+ hintActive: _angular_core.Signal<boolean>;
744
+ visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
745
+ supportHeight: _angular_core.Signal<number>;
746
+ };
747
+ private injector;
748
+ private renderer;
749
+ private prefersReducedMotion;
750
+ /** Label of the retry button shown for failed uploads. */
751
+ retryLabel: _angular_core.InputSignal<string>;
752
+ /** Accessible label prefix of the remove button. The entry name is appended. */
753
+ removeLabel: _angular_core.InputSignal<string>;
754
+ /** Accessible label of the replace button shown in single mode. */
755
+ replaceLabel: _angular_core.InputSignal<string>;
756
+ /** Fallback error message shown when the upload error has no message. */
757
+ uploadErrorLabel: _angular_core.InputSignal<string>;
758
+ /** Overrides the built-in per-entry upload failure message (e.g. for i18n). */
759
+ uploadErrorMessage: _angular_core.InputSignal<((entry: DropzoneEntry) => string) | null>;
760
+ private fileInput;
761
+ private browseButton;
762
+ private errorContentRef;
763
+ private hintContentRef;
764
+ private errorAnimatableRef;
765
+ private hintAnimatableRef;
766
+ private entryElements;
767
+ private removingEntryIds;
768
+ private filePickerOpen;
769
+ canAnimate: {
770
+ state: _angular_core.Signal<boolean>;
771
+ };
772
+ protected singleEntry: _angular_core.Signal<DropzoneEntry<any> | null>;
773
+ protected liveStatusMessage: _angular_core.Signal<string>;
774
+ /** Upload failures, rendered like validation errors below the field. */
775
+ protected internalErrorMessages: _angular_core.Signal<string[]>;
776
+ protected readonly FORMAT_FILE_SIZE: (bytes: number) => string;
777
+ constructor();
778
+ protected openFilePicker(): void;
779
+ /**
780
+ * Opening the system file picker blurs the trigger — the control must not be
781
+ * marked as touched (and show validation errors) while the dialog is open.
782
+ */
783
+ protected markTriggerTouched(): void;
784
+ /** Called when focus returns to the trigger or the picker dialog is cancelled. */
785
+ protected resetFilePickerState(): void;
786
+ protected uploadPickedFiles(event: Event): void;
787
+ /** Removes an entry, scaling out its element and FLIP-shifting the remaining ones. */
788
+ protected removeEntryAnimated(entry: DropzoneEntry, entryElement: HTMLElement): void;
789
+ private defaultUploadErrorMessage;
790
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropzoneComponent, never>;
791
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropzoneComponent, "et-dropzone", never, { "retryLabel": { "alias": "retryLabel"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "replaceLabel": { "alias": "replaceLabel"; "required": false; "isSignal": true; }; "uploadErrorLabel": { "alias": "uploadErrorLabel"; "required": false; "isSignal": true; }; "uploadErrorMessage": { "alias": "uploadErrorMessage"; "required": false; "isSignal": true; }; }, {}, never, ["et-label", "*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof DropzoneDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "upload": "upload"; "multiple": "multiple"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; "filesRejected": "filesRejected"; "uploadSucceeded": "uploadSucceeded"; "uploadFailed": "uploadFailed"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
792
+ }
793
+
794
+ declare const DROPZONE_IMPORTS: readonly [typeof DropzoneComponent, typeof DropzoneDirective];
795
+
796
+ declare const DROPZONE_ERROR_CODES: {
797
+ readonly INVALID_UPLOAD_CONFIG: 2400;
798
+ readonly MISSING_EXISTING_RESOLVER: 2401;
799
+ readonly VALUE_MODE_MISMATCH: 2402;
800
+ };
801
+
419
802
  declare class FormErrorComponent {
420
803
  error: _angular_core.InputSignal<ValidationError.WithOptionalFieldTree>;
421
804
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormErrorComponent, never>;
422
805
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormErrorComponent, "et-form-error", never, { "error": { "alias": "error"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
423
806
  }
424
807
 
425
- declare const FORM_FIELD_APPEARANCES: {
426
- readonly BOX: "box";
427
- readonly UNDERLINE: "underline";
428
- };
429
- type FormFieldAppearance = (typeof FORM_FIELD_APPEARANCES)[keyof typeof FORM_FIELD_APPEARANCES];
430
- declare const FORM_FIELD_FILLS: {
431
- readonly TRANSPARENT: "transparent";
432
- readonly FILLED: "filled";
433
- };
434
- type FormFieldFill = (typeof FORM_FIELD_FILLS)[keyof typeof FORM_FIELD_FILLS];
435
- declare const FORM_FIELD_LABEL_MODES: {
436
- readonly STATIC: "static";
437
- readonly INLINE: "inline";
438
- readonly FLOATING_INSIDE: "floating-inside";
439
- readonly FLOATING_OUTSIDE: "floating-outside";
440
- };
441
- type FormFieldLabelMode = (typeof FORM_FIELD_LABEL_MODES)[keyof typeof FORM_FIELD_LABEL_MODES];
442
- declare const FORM_FIELD_SIZES: {
443
- readonly SM: "sm";
444
- readonly MD: "md";
445
- readonly LG: "lg";
446
- };
447
- type FormFieldSize = (typeof FORM_FIELD_SIZES)[keyof typeof FORM_FIELD_SIZES];
448
-
449
808
  declare const SUPPORT_CONTENT_STATE: {
450
809
  readonly NONE: "none";
451
810
  readonly HINT: "hint";
@@ -777,6 +1136,7 @@ declare class CheckboxGroupComponent {
777
1136
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
778
1137
  supportHeight: _angular_core.Signal<number>;
779
1138
  };
1139
+ size: _angular_core.InputSignal<FormFieldSize>;
780
1140
  private errorContentRef;
781
1141
  private hintContentRef;
782
1142
  private errorAnimatableRef;
@@ -786,7 +1146,7 @@ declare class CheckboxGroupComponent {
786
1146
  };
787
1147
  constructor();
788
1148
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxGroupComponent, never>;
789
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxGroupComponent, "et-checkbox-group", never, {}, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
1149
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxGroupComponent, "et-checkbox-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
790
1150
  }
791
1151
 
792
1152
  declare class SelectionListControlDirective {
@@ -848,6 +1208,7 @@ declare class RadioGroupComponent {
848
1208
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
849
1209
  supportHeight: _angular_core.Signal<number>;
850
1210
  };
1211
+ size: _angular_core.InputSignal<FormFieldSize>;
851
1212
  private errorContentRef;
852
1213
  private hintContentRef;
853
1214
  private errorAnimatableRef;
@@ -857,7 +1218,7 @@ declare class RadioGroupComponent {
857
1218
  };
858
1219
  constructor();
859
1220
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
860
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "et-radio-group", never, {}, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
1221
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "et-radio-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
861
1222
  }
862
1223
 
863
1224
  declare class RadioComponent {
@@ -887,23 +1248,29 @@ declare class SegmentedButtonGroupComponent {
887
1248
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
888
1249
  supportHeight: _angular_core.Signal<number>;
889
1250
  };
1251
+ size: _angular_core.InputSignal<FormFieldSize>;
890
1252
  private errorContentRef;
891
1253
  private hintContentRef;
892
1254
  private errorAnimatableRef;
893
1255
  private hintAnimatableRef;
1256
+ /** @internal The active background element of the currently checked button. Used as the flip animation origin. */
1257
+ lastActiveBackgroundElement: _angular_core.WritableSignal<HTMLElement | null>;
894
1258
  canAnimate: {
895
1259
  state: _angular_core.Signal<boolean>;
896
1260
  };
897
1261
  constructor();
898
1262
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedButtonGroupComponent, never>;
899
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButtonGroupComponent, "et-segmented-button-group", never, {}, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
1263
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButtonGroupComponent, "et-segmented-button-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["et-label", ".et-segmented-button-group-label", "*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
900
1264
  }
901
1265
 
902
1266
  declare class SegmentedButtonComponent {
903
1267
  optionDirective: SelectionOptionDirective;
1268
+ private group;
1269
+ private backgroundRef;
904
1270
  canAnimate: {
905
1271
  state: _angular_core.Signal<boolean>;
906
1272
  };
1273
+ constructor();
907
1274
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedButtonComponent, never>;
908
1275
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButtonComponent, "et-segmented-button", never, {}, {}, never, ["*"], true, [{ directive: typeof SelectionOptionDirective; inputs: { "value": "value"; "checked": "checked"; "disabled": "disabled"; }; outputs: { "checkedChange": "checkedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
909
1276
  }
@@ -1082,6 +1449,8 @@ declare class GridDirective {
1082
1449
  moveItem(id: string, newPosition: GridItemPosition): void;
1083
1450
  getSerializedState(): GridSerializedState;
1084
1451
  restoreState(state: GridSerializedState): void;
1452
+ /** Dev-mode-only: rejects consumer-provided item configs whose ids are not unique. */
1453
+ private assertValidItemConfigs;
1085
1454
  private finalizeRemove;
1086
1455
  private placeItem;
1087
1456
  private shrinkNeighbors;
@@ -1360,7 +1729,7 @@ declare class GridItemDirective {
1360
1729
  }
1361
1730
 
1362
1731
  declare class GridDragDirective {
1363
- protected grid: _ethlete_components.GridDirective;
1732
+ protected grid: _ethlete_components.GridDirective | null;
1364
1733
  private gridItem;
1365
1734
  private elementRef;
1366
1735
  private destroyRef;
@@ -1466,6 +1835,7 @@ declare class GridComponent {
1466
1835
  protected ariaLabel: _angular_core.Signal<string>;
1467
1836
  protected ghostRect: _angular_core.Signal<_ethlete_components.PixelRect | null>;
1468
1837
  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)">;
1838
+ constructor();
1469
1839
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridComponent, never>;
1470
1840
  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"; }; }]>;
1471
1841
  }
@@ -1554,6 +1924,7 @@ declare const GRID_ERROR_CODES: {
1554
1924
  readonly MISSING_GRID_ITEM: 1901;
1555
1925
  readonly DUPLICATE_ITEM_ID: 1902;
1556
1926
  readonly INVALID_LAYOUT_STATE: 1903;
1927
+ readonly UNKNOWN_ITEM_TYPE: 1904;
1557
1928
  };
1558
1929
 
1559
1930
  declare const GridImports: readonly [typeof GridComponent, typeof GridItemComponent, typeof GridItemToolbarComponent, typeof GridItemDefaultActionsComponent, typeof GridDebugComponent];
@@ -1615,6 +1986,8 @@ declare const CHEVRON_ICON: IconDefinition;
1615
1986
 
1616
1987
  declare const CLIPBOARD_CHECK_ICON: IconDefinition;
1617
1988
 
1989
+ declare const FILE_ICON: IconDefinition;
1990
+
1618
1991
  declare const FLOPPY_DISK_ICON: IconDefinition;
1619
1992
 
1620
1993
  declare const FOCUS_FRAME_ICON: IconDefinition;
@@ -1666,12 +2039,16 @@ declare const PENCIL_ICON: IconDefinition;
1666
2039
 
1667
2040
  declare const PLUS_ICON: IconDefinition;
1668
2041
 
2042
+ declare const ROTATE_RIGHT_ICON: IconDefinition;
2043
+
1669
2044
  declare const STRIKETHROUGH_ICON: IconDefinition;
1670
2045
 
1671
2046
  declare const TIMES_ICON: IconDefinition;
1672
2047
 
1673
2048
  declare const TRIANGLE_EXCLAMATION_ICON: IconDefinition;
1674
2049
 
2050
+ declare const UPLOAD_ICON: IconDefinition;
2051
+
1675
2052
  declare const ICON_IMPORTS: readonly [typeof IconDirective];
1676
2053
 
1677
2054
  declare class BrandLoaderComponent {
@@ -2118,10 +2495,13 @@ declare class MenuDirective {
2118
2495
  private document;
2119
2496
  private overlayManager;
2120
2497
  parent: MenuDirective | null;
2121
- placement: _angular_core.InputSignal<Placement | "auto">;
2498
+ placement: _angular_core.InputSignal<"auto" | Placement>;
2122
2499
  fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
2123
- offset: _angular_core.InputSignal<OffsetOptions | "auto" | null>;
2500
+ offset: _angular_core.InputSignal<"auto" | OffsetOptions | null>;
2124
2501
  viewportPadding: _angular_core.InputSignal<Padding | null>;
2502
+ /** Render an arrow pointing at the trigger. Trigger-anchored root menus only — submenus and context menus never render one. */
2503
+ arrow: _angular_core.InputSignal<boolean>;
2504
+ arrowPadding: _angular_core.InputSignal<Padding | null>;
2125
2505
  autoFocus: _angular_core.InputSignal<boolean>;
2126
2506
  hoverOpen: _angular_core.InputSignal<boolean>;
2127
2507
  hoverOpenDelay: _angular_core.InputSignal<number>;
@@ -2212,9 +2592,10 @@ declare class MenuDirective {
2212
2592
  private buildVirtualAnchoredPosition;
2213
2593
  private resolvedPlacement;
2214
2594
  private resolvedFallbackPlacements;
2595
+ private resolvedArrow;
2215
2596
  private resolvedOffset;
2216
2597
  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>;
2598
+ 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; }; "arrow": { "alias": "arrow"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "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
2599
  }
2219
2600
 
2220
2601
  type MenuItemActivationSource = 'pointer' | 'keyboard-enter' | 'keyboard-space';
@@ -2374,9 +2755,12 @@ declare const MENU_ITEM_VARIANTS: {
2374
2755
  };
2375
2756
  type MenuItemVariant = (typeof MENU_ITEM_VARIANTS)[keyof typeof MENU_ITEM_VARIANTS];
2376
2757
  declare class MenuItemComponent {
2758
+ private provideColor;
2759
+ private errorColorTheme;
2377
2760
  variant: _angular_core.InputSignal<MenuItemVariant>;
2761
+ constructor();
2378
2762
  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"; }; }]>;
2763
+ 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"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }]>;
2380
2764
  }
2381
2765
 
2382
2766
  declare class MenuItemShortcutComponent {
@@ -2401,19 +2785,27 @@ declare class MenuSeparatorComponent {
2401
2785
 
2402
2786
  declare class MenuComponent {
2403
2787
  private ownColorProvider;
2404
- private ownSurfaceProvider;
2405
2788
  private contextColorProvider;
2406
- private contextSurfaceProvider;
2407
2789
  protected menu: MenuDirective | null;
2408
- private surfaceThemes;
2790
+ protected errorColorTheme: _ethlete_core.ColorTheme;
2791
+ private prefersReducedMotion;
2792
+ private elementRef;
2793
+ private destroyRef;
2794
+ private renderer;
2795
+ private headerElement;
2796
+ private bodyElement;
2797
+ private headerDimensions;
2798
+ private bodyDimensions;
2409
2799
  protected search: _angular_core.Signal<_ethlete_components.MenuSearchDirective | null>;
2410
2800
  protected searchLoading: _angular_core.Signal<boolean>;
2411
2801
  protected searchError: _angular_core.Signal<string | null>;
2412
2802
  protected searchErrorId: string;
2413
- private resolvedSurface;
2803
+ private lastBlockSize;
2804
+ private resizeAnimation;
2414
2805
  constructor();
2806
+ private animateToCurrentBlockSize;
2415
2807
  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: {}; }]>;
2808
+ 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.AutoSurfaceDirective; inputs: {}; outputs: {}; }]>;
2417
2809
  }
2418
2810
 
2419
2811
  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];
@@ -2692,6 +3084,17 @@ declare class OverlayCloseDirective implements OnInit {
2692
3084
  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
3085
  }
2694
3086
 
3087
+ /**
3088
+ * Merges overlay configs from least to most specific (e.g. definition → opener → per-open).
3089
+ *
3090
+ * - `bindings` and `providers` are concatenated in layer order — a later binding or provider
3091
+ * for the same input/token wins, matching Angular semantics.
3092
+ * - `hostClass`, `backdropClass` and `panelClass` are normalized to arrays, concatenated and deduped.
3093
+ * - Every other key is taken from the last layer that sets it to a value other than `undefined`
3094
+ * (an explicit `null`, e.g. on the aria fields, does override earlier layers).
3095
+ */
3096
+ declare const mergeOverlayConfigs: (...configs: (OverlayConfig | undefined)[]) => OverlayConfig;
3097
+
2695
3098
  declare class OverlayContainerComponent {
2696
3099
  private ownColorProvider;
2697
3100
  private ownSurfaceProvider;
@@ -2733,6 +3136,73 @@ declare class OverlayContainerComponent {
2733
3136
  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: {}; }]>;
2734
3137
  }
2735
3138
 
3139
+ /** The name of the model the overlay component must expose to participate in query-param sync. */
3140
+ declare const OVERLAY_QUERY_PARAM_INPUT_NAME = "overlayQueryParam";
3141
+ /** The shape a component must have to be usable with {@link defineQueryParamOverlay}. */
3142
+ type QueryParamOverlayHost = {
3143
+ overlayQueryParam: ModelSignal<any>;
3144
+ };
3145
+ /** Extracts the query param value type from the component's `overlayQueryParam` model. */
3146
+ type QueryParamOverlayValue<TComponent> = TComponent extends {
3147
+ overlayQueryParam: ModelSignal<infer TValue>;
3148
+ } ? Extract<TValue, string> : string;
3149
+ type OverlayDefinitionConfig<TComponent extends object> = OverlayConfig & {
3150
+ /** The overlay component. */
3151
+ component: Type<TComponent>;
3152
+ };
3153
+ type QueryParamOverlayDefinitionConfig<TComponent extends object> = OverlayDefinitionConfig<TComponent> & {
3154
+ /** The query param key that drives the overlay's open/close lifecycle. */
3155
+ queryParamKey: string;
3156
+ };
3157
+ type OverlayDefinition<TComponent extends object = object, TResult = unknown> = {
3158
+ kind: 'overlay';
3159
+ /** The overlay component. */
3160
+ component: Type<TComponent>;
3161
+ /** The base overlay config. Opener- and per-open configs are merged on top of it additively. */
3162
+ config: OverlayConfig;
3163
+ /**
3164
+ * Returns the typed overlay ref. Must be called in the injection context of a component
3165
+ * opened via this definition.
3166
+ * @throws RuntimeError if called outside of an open overlay.
3167
+ */
3168
+ injectRef: () => OverlayRef<TComponent, TResult>;
3169
+ };
3170
+ type QueryParamOverlayDefinition<TComponent extends object = object, TResult = unknown> = Omit<OverlayDefinition<TComponent, TResult>, 'kind'> & {
3171
+ kind: 'queryParamOverlay';
3172
+ /** The query param key that drives the overlay's open/close lifecycle. */
3173
+ queryParamKey: string;
3174
+ };
3175
+ /**
3176
+ * Defines an overlay at module scope: the component plus its base config (strategies, classes,
3177
+ * bindings, providers, …), without any dependency injection. Consumers turn the definition into
3178
+ * something that can open the overlay via `createOverlayOpener`, and the overlay component
3179
+ * itself accesses its typed ref via `definition.injectRef()`.
3180
+ *
3181
+ * @example
3182
+ * export const productOverlay = defineOverlay<ProductOverlayComponent, ProductResult>({
3183
+ * component: ProductOverlayComponent,
3184
+ * strategies: dialogOverlayStrategy({ maxWidth: '480px' }),
3185
+ * });
3186
+ */
3187
+ declare const defineOverlay: <TComponent extends object, TResult = unknown>(config: OverlayDefinitionConfig<TComponent>) => OverlayDefinition<TComponent, TResult>;
3188
+ /**
3189
+ * Defines an overlay whose lifecycle is driven by a URL query param: it opens while the param is
3190
+ * present and closes (clearing the param) when dismissed. The component must expose an
3191
+ * `overlayQueryParam` {@link https://angular.dev/api/core/model | model} — it receives the param
3192
+ * value and is kept in two-way sync with the URL.
3193
+ *
3194
+ * Because opens are triggered by URL state, there is no per-open config; `bindings` and
3195
+ * `providers` set on the definition (or on the opener) are applied on every open.
3196
+ *
3197
+ * @example
3198
+ * export const productOverlay = defineQueryParamOverlay({
3199
+ * component: ProductOverlayComponent, // exposes `overlayQueryParam = model<string>()`
3200
+ * queryParamKey: 'product',
3201
+ * strategies: dialogOverlayStrategy({ maxWidth: '480px' }),
3202
+ * });
3203
+ */
3204
+ declare const defineQueryParamOverlay: <TComponent extends QueryParamOverlayHost, TResult = unknown>(config: QueryParamOverlayDefinitionConfig<TComponent>) => QueryParamOverlayDefinition<TComponent, TResult>;
3205
+
2736
3206
  declare const OVERLAY_ERROR_CODES: {
2737
3207
  readonly MISSING_OVERLAY_SURFACE: 1200;
2738
3208
  readonly TRIGGER_OUTSIDE_OVERLAY: 1201;
@@ -2741,6 +3211,7 @@ declare const OVERLAY_ERROR_CODES: {
2741
3211
  readonly MULTIPLE_LAYOUT_CLASSES: 1204;
2742
3212
  readonly NO_CLOSEST_OVERLAY: 1205;
2743
3213
  readonly NESTED_OVERLAY_MAIN: 1206;
3214
+ readonly REF_OUTSIDE_OVERLAY: 1207;
2744
3215
  };
2745
3216
 
2746
3217
  declare const OVERLAY_FOOTER_TOKEN: InjectionToken<OverlayFooterDirective>;
@@ -2753,72 +3224,6 @@ declare class OverlayFooterDirective implements OnInit {
2753
3224
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayFooterDirective, "[etOverlayFooter], et-overlay-footer", never, {}, {}, never, never, true, never>;
2754
3225
  }
2755
3226
 
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;
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
3227
  declare const OVERLAY_HEADER_TOKEN: InjectionToken<OverlayHeaderDirective>;
2823
3228
  declare class OverlayHeaderDirective implements OnInit {
2824
3229
  private overlayRef;
@@ -2867,6 +3272,56 @@ declare const injectOverlayManager: {
2867
3272
  (options: _angular_core.InjectOptions): OverlayManager | null;
2868
3273
  };
2869
3274
 
3275
+ /** Per-open config overrides. The component and `strategies` are fixed by the definition. */
3276
+ type OverlayOpenConfig = Omit<OverlayConfig, 'strategies'>;
3277
+ type OverlayLifecycleConfig<TResult = unknown> = {
3278
+ /** A callback function to be executed once the overlay has been closed */
3279
+ afterClosed?: (result: TResult | null) => void;
3280
+ /** A callback function to be executed before the overlay is closed */
3281
+ beforeClosed?: (result: TResult | null) => void;
3282
+ /** A callback function to be executed once the overlay has been opened */
3283
+ afterOpened?: () => void;
3284
+ };
3285
+ /**
3286
+ * Lifecycle callbacks plus overlay config overrides applied on every open. The config is merged
3287
+ * additively on top of the definition's config (`bindings`, `providers` and class lists are
3288
+ * concatenated; scalars override).
3289
+ *
3290
+ * Note for query-param overlays: an `origin` set here anchors every URL-driven open, including
3291
+ * deep links where the originating element may not exist — omitting it is usually right (the
3292
+ * overlay then falls back to the currently focused element).
3293
+ */
3294
+ type OverlayOpenerConfig<TResult = unknown> = OverlayLifecycleConfig<TResult> & OverlayOpenConfig;
3295
+ type OverlayOpener<TComponent extends object = object, TResult = unknown> = {
3296
+ /** Open the overlay. Per-open config is merged additively on top of the definition and opener configs. */
3297
+ open: (config?: OverlayOpenConfig) => OverlayRef<TComponent, TResult>;
3298
+ };
3299
+ type QueryParamOverlayOpener<TQueryParam extends string = string> = {
3300
+ /** Open the overlay by writing the given value to the query param. */
3301
+ open: (value: TQueryParam) => void;
3302
+ /** Close the overlay by removing the query param. */
3303
+ close: () => void;
3304
+ };
3305
+ type CreateOverlayOpenerFn = {
3306
+ <TComponent extends object, TResult>(definition: QueryParamOverlayDefinition<TComponent, TResult>, config?: OverlayOpenerConfig<TResult>): QueryParamOverlayOpener<QueryParamOverlayValue<TComponent>>;
3307
+ <TComponent extends object, TResult>(definition: OverlayDefinition<TComponent, TResult>, config?: OverlayOpenerConfig<TResult>): OverlayOpener<TComponent, TResult>;
3308
+ };
3309
+ /**
3310
+ * Creates an opener for the given overlay definition. Must be called in an injection context.
3311
+ *
3312
+ * - For a `defineOverlay` definition the opener exposes `open(config?)`, returning the typed
3313
+ * `OverlayRef`.
3314
+ * - For a `defineQueryParamOverlay` definition the opener drives the overlay through the URL:
3315
+ * `open(value)` writes the query param and `close()` clears it. It also reacts to external
3316
+ * URL changes (deep links, browser navigation) for as long as the injection context lives.
3317
+ *
3318
+ * @example
3319
+ * readonly product = createOverlayOpener(productOverlay, {
3320
+ * afterClosed: (result) => console.log(result),
3321
+ * });
3322
+ */
3323
+ declare const createOverlayOpener: CreateOverlayOpenerFn;
3324
+
2870
3325
  /**
2871
3326
  * Blocks body scrolling while a modal overlay is open.
2872
3327
  * Register once via `provideOverlay()` (or call `injectOverlayScrollBlocker()` in an environment initializer).
@@ -2895,6 +3350,25 @@ declare const OVERLAY_IMPORTS: readonly [typeof OverlayDirective, typeof Overlay
2895
3350
  declare const OVERLAY_CONTENT_IMPORTS: readonly [typeof OverlayCloseDirective, typeof OverlayTitleDirective, typeof OverlayHeaderDirective, typeof OverlayBodyComponent, typeof OverlayFooterDirective, typeof OverlayMainDirective];
2896
3351
  declare const provideOverlay: () => _angular_core.EnvironmentProviders[];
2897
3352
 
3353
+ /**
3354
+ * Opens a query-param overlay declaratively by navigating its query param — the counterpart to
3355
+ * `createOverlayOpener` for links. Takes the overlay definition itself, so the query param key
3356
+ * is never duplicated as a string.
3357
+ *
3358
+ * @example
3359
+ * <a [etQueryParamOverlayLink]="productOverlay" etQueryParamOverlayLinkValue="42">Open product 42</a>
3360
+ */
3361
+ declare class QueryParamOverlayLinkDirective {
3362
+ private routerLink;
3363
+ /** The query-param overlay definition this link opens. */
3364
+ definition: _angular_core.InputSignal<Pick<QueryParamOverlayDefinition, "queryParamKey">>;
3365
+ /** The query param value the overlay opens with. */
3366
+ value: _angular_core.InputSignal<string | number>;
3367
+ constructor();
3368
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryParamOverlayLinkDirective, never>;
3369
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<QueryParamOverlayLinkDirective, "[etQueryParamOverlayLink]", never, { "definition": { "alias": "etQueryParamOverlayLink"; "required": true; "isSignal": true; }; "value": { "alias": "etQueryParamOverlayLinkValue"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RouterLink; inputs: {}; outputs: {}; }]>;
3370
+ }
3371
+
2898
3372
  declare const OVERLAY_BACK_OR_CLOSE_TOKEN: InjectionToken<OverlayBackOrCloseDirective>;
2899
3373
  declare class OverlayBackOrCloseDirective {
2900
3374
  private overlayRef;
@@ -3160,7 +3634,7 @@ type AnchoredOverlayStrategyOptions = {
3160
3634
  offset?: OffsetOptions | null;
3161
3635
  arrowPadding?: Padding | null;
3162
3636
  viewportPadding?: Padding | null;
3163
- shift?: boolean;
3637
+ shift?: boolean | OverlayRuntimeShiftOptions;
3164
3638
  autoResize?: boolean;
3165
3639
  autoHide?: boolean;
3166
3640
  autoCloseIfReferenceHidden?: boolean;
@@ -3680,8 +4154,8 @@ declare class ScrollableDragDirective {
3680
4154
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableDragDirective, "[etScrollableDrag]", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3681
4155
  }
3682
4156
 
3683
- declare const ScrollableErrorCode: {
3684
- readonly MISSING_SCROLL_CONTAINER: 1800;
4157
+ declare const SCROLLABLE_ERROR_CODES: {
4158
+ readonly MISSING_SCROLL_CONTAINER: 2100;
3685
4159
  };
3686
4160
 
3687
4161
  declare class ScrollableIgnoreChildDirective {
@@ -3820,6 +4294,7 @@ declare class StreamConsentComponent {
3820
4294
  private config;
3821
4295
  private locale;
3822
4296
  private surfaceThemes;
4297
+ protected readonly HEADING_ID: string;
3823
4298
  cardSurface: _angular_core.Signal<string | null>;
3824
4299
  heading: _angular_core.Signal<string>;
3825
4300
  description: _angular_core.Signal<string>;
@@ -4350,6 +4825,8 @@ declare const PIP_WINDOW_ASPECT_RATIO_TOKEN: InjectionToken<Signal<number>>;
4350
4825
 
4351
4826
  declare class StreamPipChromeComponent implements PipChromeRef {
4352
4827
  pipManager: _ethlete_components.PipManager;
4828
+ private provideSurface;
4829
+ private surfaceThemes;
4353
4830
  stageRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
4354
4831
  pipWindowRef: _angular_core.Signal<PipWindowComponent | undefined>;
4355
4832
  gridBtnRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
@@ -4358,8 +4835,9 @@ declare class StreamPipChromeComponent implements PipChromeRef {
4358
4835
  readonly CLOSE_KIND: "close";
4359
4836
  controlsColor: _angular_core.Signal<string | undefined>;
4360
4837
  readonly WINDOW_CONTROL_BUTTON_SIZE: "sm";
4838
+ constructor();
4361
4839
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamPipChromeComponent, never>;
4362
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StreamPipChromeComponent, "et-stream-pip-chrome", never, {}, {}, never, never, true, never>;
4840
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StreamPipChromeComponent, "et-stream-pip-chrome", never, {}, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
4363
4841
  }
4364
4842
 
4365
4843
  declare class PipPlayerComponent {
@@ -5221,7 +5699,7 @@ declare const StreamImports: readonly [typeof StreamConsentComponent, typeof Str
5221
5699
  declare class TabBarTriggerDirective {
5222
5700
  private elementRef;
5223
5701
  private scrollable;
5224
- protected tabBar: _ethlete_components.TabBarDirective;
5702
+ protected tabBar: _ethlete_components.TabBarDirective | null;
5225
5703
  disabled: _angular_core.InputSignal<boolean>;
5226
5704
  readonly ID: string;
5227
5705
  justActivated: _angular_core.WritableSignal<boolean>;
@@ -5304,6 +5782,7 @@ declare const TAB_BAR_TRIGGER_TOKEN: InjectionToken<TabBarTriggerDirective>;
5304
5782
 
5305
5783
  declare class NavTabLinkDirective {
5306
5784
  private routerLinkActive;
5785
+ private navTabs;
5307
5786
  private tabBar;
5308
5787
  private destroyRef;
5309
5788
  trigger: TabBarTriggerDirective;
@@ -5315,17 +5794,24 @@ declare class NavTabLinkDirective {
5315
5794
  }
5316
5795
 
5317
5796
  declare class NavTabsOutletDirective {
5318
- private tabBar;
5797
+ private nearestTabBar;
5798
+ private registry;
5319
5799
  readonly ID: string;
5800
+ private tabBar;
5320
5801
  activeTriggerId: _angular_core.Signal<string | null>;
5802
+ constructor();
5321
5803
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabsOutletDirective, never>;
5322
5804
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavTabsOutletDirective, "[etNavTabsOutlet]", never, {}, {}, never, never, true, never>;
5323
5805
  }
5324
5806
 
5325
5807
  declare class NavTabsDirective {
5326
5808
  private routerEvent;
5809
+ private registry;
5810
+ private tabBar;
5811
+ private destroyRef;
5327
5812
  /** @internal */
5328
5813
  navigationVersion: _angular_core.Signal<number>;
5814
+ constructor();
5329
5815
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabsDirective, never>;
5330
5816
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavTabsDirective, "[etNavTabs]", never, {}, {}, never, never, true, never>;
5331
5817
  }
@@ -5360,10 +5846,10 @@ declare class NavTabsComponent {
5360
5846
  }
5361
5847
 
5362
5848
  declare const TAB_ERROR_CODES: {
5363
- readonly MISSING_TAB_BAR: 1800;
5364
- readonly MISSING_TAB_GROUP: 1801;
5365
- readonly MISSING_TAB_PANEL: 1802;
5366
- readonly MISSING_NAV_TABS: 1803;
5849
+ readonly MISSING_TAB_BAR: 2000;
5850
+ readonly MISSING_TAB_GROUP: 2001;
5851
+ readonly MISSING_TAB_PANEL: 2002;
5852
+ readonly MISSING_NAV_TABS: 2003;
5367
5853
  };
5368
5854
 
5369
5855
  declare class TabPanelDirective {
@@ -5388,6 +5874,8 @@ declare class TabGroupDirective {
5388
5874
  private sessionMemoryAvailable;
5389
5875
  /** @internal */
5390
5876
  panels: _angular_core.WritableSignal<TabPanelDirective[]>;
5877
+ /** @internal Set by composing components (e.g. et-tab-group) that render panel content themselves instead of registering [etTabPanel] directives. */
5878
+ managesPanelsInternally: _angular_core.WritableSignal<boolean>;
5391
5879
  restoredSessionMemoryKey: _angular_core.WritableSignal<string>;
5392
5880
  constructor();
5393
5881
  /** @internal */
@@ -5419,6 +5907,7 @@ declare class TabLabelDirective {
5419
5907
  }
5420
5908
 
5421
5909
  declare class TabComponent {
5910
+ private tabGroup;
5422
5911
  label: _angular_core.InputSignal<string>;
5423
5912
  icon: _angular_core.InputSignal<string | null>;
5424
5913
  disabled: _angular_core.InputSignal<boolean>;
@@ -5427,6 +5916,7 @@ declare class TabComponent {
5427
5916
  implicitLabelRef: _angular_core.Signal<TemplateRef<unknown>>;
5428
5917
  /** @internal */
5429
5918
  contentRef: _angular_core.Signal<TemplateRef<unknown>>;
5919
+ constructor();
5430
5920
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
5431
5921
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "et-tab", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["customLabel"], ["*"], true, never>;
5432
5922
  }
@@ -5438,6 +5928,7 @@ declare class TabGroupComponent {
5438
5928
  protected triggerElements: _angular_core.Signal<TabBarTriggerDirective[]>;
5439
5929
  /** @internal */
5440
5930
  tabGroupId: string;
5931
+ constructor();
5441
5932
  protected isPanelHidden(index: number): boolean;
5442
5933
  protected shouldRenderPanel(index: number): boolean;
5443
5934
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupComponent, never>;
@@ -5584,5 +6075,5 @@ declare const TOOLTIP_ERROR_CODES: {
5584
6075
 
5585
6076
  declare const TOOLTIP_IMPORTS: readonly [typeof TooltipDirective, typeof TooltipComponent];
5586
6077
 
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 };
6078
+ 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, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, DropzoneComponent, DropzoneDirective, FACEBOOK_PLAYER_TOKEN, FILE_ICON, 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, 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, QueryParamOverlayLinkDirective, RICH_TEXT_EDITOR_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, 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, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, 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, UPLOAD_ICON, 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, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createGridAdapter, createNotificationRef, createOverlayOpener, createOverlayRef, createOverlayStrategyController, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, defaultDropzoneRejectionMessage, defineOverlay, defineQueryParamOverlay, deserializeGridLayout, dialogOverlayStrategy, disposeDropzoneEntry, dropzoneFiles, enableDragToDismiss, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, formatFileSize, 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, isFileAccepted, isHtmlElement, isPointerEvent, isTouchEvent, itemsCollide, leftSheetOverlayStrategy, mapLayoutToBreakpoint, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, 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 };
6079
+ export type { AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPositionOptions, AnyDropzoneUploadConfig, AutoPlaceOptions, AutoScrollPointer, AutoScroller, ButtonIconAlignment, ButtonSize, CenteredOverlayStrategyOptions, ClampPositionOptions, CompactLayoutOptions, CreateExistingDropzoneEntryOptions, CreateFileDropzoneEntryOptions, DragToDismissContext, DragToDismissRef, DropzoneEntry, DropzoneEntrySource, DropzoneEntryStatus, DropzoneExistingFileInfo, DropzoneFileConstraints, DropzoneFileRejection, DropzoneFileRejectionReason, DropzoneFileValidationChannel, DropzoneUploadConfig, 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, OverlayDefinition, OverlayDefinitionConfig, OverlayDragToDismissConfig, OverlayLifecycleConfig, OverlayManager, OverlayMode, OverlayOpenConfig, OverlayOpener, OverlayOpenerConfig, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, QueryParamOverlayDefinition, QueryParamOverlayDefinitionConfig, QueryParamOverlayHost, QueryParamOverlayOpener, QueryParamOverlayValue, 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 };