@ethlete/components 0.1.0-beta.4

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.
@@ -0,0 +1,3702 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal, WritableSignal, InjectionToken, ElementRef, Type, InputSignal, ViewContainerRef, Injector, StaticProvider, TemplateRef, computed, Binding, EnvironmentInjector, ComponentRef } from '@angular/core';
3
+ import * as _ethlete_core from '@ethlete/core';
4
+ import { AnimatableDirective, DragHandleDirective, ResizeEdge, ResizeMoveEvent, OverlayRuntimePositionStrategy, OverlayRuntimeRef, AnimatedLifecycleDirective, ScrollObserverDirective, ScrollToElementOptions, ConsentHandler, ProvideColorDirective, ProvideSurfaceDirective } from '@ethlete/core';
5
+ import * as _angular_forms_signals from '@angular/forms/signals';
6
+ import { ValidationError, FormCheckboxControl, FormValueControl } from '@angular/forms/signals';
7
+ import * as _ethlete_components from '@ethlete/components';
8
+ import * as _angular_platform_browser from '@angular/platform-browser';
9
+ import * as rxjs from 'rxjs';
10
+ import { Observable } from 'rxjs';
11
+ import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
12
+ import * as i1 from '@angular/router';
13
+
14
+ declare class ButtonStylesDirective {
15
+ private styleManager;
16
+ constructor();
17
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonStylesDirective, never>;
18
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonStylesDirective, "[etButtonStyles]", never, {}, {}, never, never, true, never>;
19
+ }
20
+
21
+ declare const BUTTON_TYPES: {
22
+ readonly BUTTON: "button";
23
+ readonly SUBMIT: "submit";
24
+ readonly RESET: "reset";
25
+ };
26
+ type ButtonType = (typeof BUTTON_TYPES)[keyof typeof BUTTON_TYPES];
27
+ declare class ButtonDirective {
28
+ private elementRef;
29
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
30
+ loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
31
+ type: _angular_core.InputSignal<ButtonType>;
32
+ pressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
33
+ emitAriaPressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
34
+ readonly IS_BUTTON: boolean;
35
+ readonly IS_ANCHOR: boolean;
36
+ isInactive: _angular_core.Signal<boolean>;
37
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonDirective, never>;
38
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonDirective, "[etButton]", ["etButton"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; "emitAriaPressed": { "alias": "emitAriaPressed"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
39
+ }
40
+
41
+ declare class FocusRingDirective {
42
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
43
+ private styleManager;
44
+ protected active: _angular_core.WritableSignal<boolean>;
45
+ constructor();
46
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FocusRingDirective, never>;
47
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FocusRingDirective, "[etFocusRing]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
48
+ }
49
+
50
+ declare const BUTTON_SIZES: {
51
+ readonly XS: "xs";
52
+ readonly SM: "sm";
53
+ readonly MD: "md";
54
+ readonly LG: "lg";
55
+ readonly XL: "xl";
56
+ };
57
+ type ButtonSize = (typeof BUTTON_SIZES)[keyof typeof BUTTON_SIZES];
58
+ declare const BUTTON_ICON_ALIGNMENTS: {
59
+ readonly START: "start";
60
+ readonly END: "end";
61
+ };
62
+ type ButtonIconAlignment = (typeof BUTTON_ICON_ALIGNMENTS)[keyof typeof BUTTON_ICON_ALIGNMENTS];
63
+ declare const BUTTON_VARIANTS: {
64
+ readonly FILLED: "filled";
65
+ readonly OUTLINE: "outline";
66
+ readonly TONAL: "tonal";
67
+ readonly TRANSPARENT: "transparent";
68
+ };
69
+ type ButtonVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];
70
+ declare const BUTTON_SPINNER_CONFIG: Record<ButtonSize, {
71
+ diameter: number;
72
+ strokeWidth: number;
73
+ }>;
74
+ declare class ButtonComponent {
75
+ protected buttonDir: ButtonDirective;
76
+ variant: _angular_core.InputSignal<ButtonVariant>;
77
+ size: _angular_core.InputSignal<ButtonSize>;
78
+ iconAlignment: _angular_core.InputSignal<ButtonIconAlignment>;
79
+ canAnimate: {
80
+ state: _angular_core.Signal<boolean>;
81
+ };
82
+ spinnerConfig: _angular_core.Signal<{
83
+ diameter: number;
84
+ strokeWidth: number;
85
+ }>;
86
+ pressedVariant: _angular_core.Signal<string | null>;
87
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
88
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "[et-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconAlignment": { "alias": "iconAlignment"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
89
+ }
90
+
91
+ type FabVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];
92
+ declare class FabComponent {
93
+ protected buttonDir: ButtonDirective;
94
+ variant: _angular_core.InputSignal<FabVariant>;
95
+ size: _angular_core.InputSignal<ButtonSize>;
96
+ expanded: _angular_core.InputSignalWithTransform<boolean, unknown>;
97
+ iconAlignment: _angular_core.InputSignal<ButtonIconAlignment>;
98
+ canAnimate: {
99
+ state: _angular_core.Signal<boolean>;
100
+ };
101
+ spinnerConfig: _angular_core.Signal<{
102
+ diameter: number;
103
+ strokeWidth: number;
104
+ }>;
105
+ expandedAttr: _angular_core.Signal<true | null>;
106
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FabComponent, never>;
107
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FabComponent, "[et-fab]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "iconAlignment": { "alias": "iconAlignment"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
108
+ }
109
+
110
+ type IconButtonVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];
111
+ declare class IconButtonComponent {
112
+ protected buttonDir: ButtonDirective;
113
+ variant: _angular_core.InputSignal<IconButtonVariant>;
114
+ size: _angular_core.InputSignal<ButtonSize>;
115
+ canAnimate: {
116
+ state: _angular_core.Signal<boolean>;
117
+ };
118
+ spinnerConfig: _angular_core.Signal<{
119
+ diameter: number;
120
+ strokeWidth: number;
121
+ }>;
122
+ pressedVariant: _angular_core.Signal<string | null>;
123
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconButtonComponent, never>;
124
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "[et-icon-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
125
+ }
126
+
127
+ declare class TextButtonComponent {
128
+ protected buttonDir: ButtonDirective;
129
+ size: _angular_core.InputSignal<ButtonSize>;
130
+ iconAlignment: _angular_core.InputSignal<ButtonIconAlignment>;
131
+ canAnimate: {
132
+ state: _angular_core.Signal<boolean>;
133
+ };
134
+ spinnerConfig: _angular_core.Signal<{
135
+ diameter: number;
136
+ strokeWidth: number;
137
+ }>;
138
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextButtonComponent, never>;
139
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextButtonComponent, "[et-text-button]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconAlignment": { "alias": "iconAlignment"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; }; 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: {}; }]>;
140
+ }
141
+
142
+ declare const WINDOW_CONTROL_BUTTON_SIZES: {
143
+ readonly SM: "sm";
144
+ readonly MD: "md";
145
+ readonly LG: "lg";
146
+ };
147
+ type WindowControlButtonSize = (typeof WINDOW_CONTROL_BUTTON_SIZES)[keyof typeof WINDOW_CONTROL_BUTTON_SIZES];
148
+ declare const WINDOW_CONTROL_BUTTON_KINDS: {
149
+ readonly DEFAULT: "default";
150
+ readonly CLOSE: "close";
151
+ };
152
+ type WindowControlButtonKind = (typeof WINDOW_CONTROL_BUTTON_KINDS)[keyof typeof WINDOW_CONTROL_BUTTON_KINDS];
153
+ declare class WindowControlButtonComponent {
154
+ protected buttonDir: ButtonDirective;
155
+ size: _angular_core.InputSignal<WindowControlButtonSize>;
156
+ kind: _angular_core.InputSignal<WindowControlButtonKind>;
157
+ canAnimate: {
158
+ state: _angular_core.Signal<boolean>;
159
+ };
160
+ protected spinnerConfig: _angular_core.Signal<{
161
+ readonly diameter: 12;
162
+ readonly strokeWidth: 2;
163
+ } | {
164
+ readonly diameter: 14;
165
+ readonly strokeWidth: 2;
166
+ } | {
167
+ readonly diameter: 16;
168
+ readonly strokeWidth: 2.5;
169
+ }>;
170
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WindowControlButtonComponent, never>;
171
+ 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: {}; }]>;
172
+ }
173
+
174
+ declare const BUTTON_IMPORTS: readonly [typeof ButtonComponent, typeof FabComponent, typeof IconButtonComponent, typeof TextButtonComponent, typeof WindowControlButtonComponent, typeof ButtonDirective];
175
+
176
+ declare const FORM_FIELD_ERROR_CODES: {
177
+ readonly MISSING_CONTROL: 1800;
178
+ };
179
+
180
+ declare const FORM_FIELD_CONTROL_TYPES: {
181
+ readonly TEXT_INPUT: "text-input";
182
+ readonly CHECKBOX: "checkbox";
183
+ readonly RADIO: "radio";
184
+ readonly SWITCH: "switch";
185
+ readonly SEGMENTED_BUTTON: "segmented-button";
186
+ readonly SELECTION_LIST: "selection-list";
187
+ };
188
+ type FormFieldControlType = (typeof FORM_FIELD_CONTROL_TYPES)[keyof typeof FORM_FIELD_CONTROL_TYPES];
189
+ type FormFieldControl = {
190
+ touched: Signal<boolean>;
191
+ invalid: Signal<boolean>;
192
+ errors: Signal<readonly ValidationError.WithOptionalFieldTree[]>;
193
+ name: Signal<string>;
194
+ required?: Signal<boolean>;
195
+ disabled?: Signal<boolean>;
196
+ effectiveDisabled?: Signal<boolean>;
197
+ describedBy: WritableSignal<string | null>;
198
+ controlType: Signal<FormFieldControlType>;
199
+ focused?: Signal<boolean>;
200
+ hasValue?: Signal<boolean>;
201
+ activate(): void;
202
+ };
203
+ type HintComponentBase = object;
204
+ declare const FORM_FIELD_TOKEN: InjectionToken<FormFieldDirectiveBase>;
205
+ type FormFieldDirectiveBase = {
206
+ registerControl(control: FormFieldControl): void;
207
+ unregisterControl(control: FormFieldControl): void;
208
+ registerHint(hint: HintComponentBase): void;
209
+ unregisterHint(hint: HintComponentBase): void;
210
+ unregisterLabel(label: LabelDirectiveBase): void;
211
+ registeredControl: WritableSignal<FormFieldControl | null>;
212
+ registeredHint: WritableSignal<HintComponentBase | null>;
213
+ registeredLabel: WritableSignal<LabelDirectiveBase | null>;
214
+ activate(): void;
215
+ };
216
+ type LabelDirectiveBase = {
217
+ id: Signal<string>;
218
+ };
219
+
220
+ declare class FormFieldDirective implements FormFieldDirectiveBase {
221
+ /** @internal */
222
+ registeredControl: _angular_core.WritableSignal<FormFieldControl | null>;
223
+ /** @internal */
224
+ registeredHint: _angular_core.WritableSignal<object | null>;
225
+ /** @internal */
226
+ registeredLabel: _angular_core.WritableSignal<LabelDirectiveBase | null>;
227
+ private readonly FALLBACK_ID;
228
+ errorId: _angular_core.Signal<string>;
229
+ hintId: _angular_core.Signal<string>;
230
+ shouldDisplayError: _angular_core.Signal<boolean>;
231
+ errors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
232
+ controlType: _angular_core.Signal<_ethlete_components.FormFieldControlType>;
233
+ focused: _angular_core.Signal<boolean>;
234
+ hasValue: _angular_core.Signal<boolean>;
235
+ usesTextFieldShell: _angular_core.Signal<boolean>;
236
+ shouldFloatLabel: _angular_core.Signal<boolean>;
237
+ describedById: _angular_core.Signal<string | null>;
238
+ constructor();
239
+ /** @internal */
240
+ registerControl(control: FormFieldControl): void;
241
+ /** @internal */
242
+ unregisterControl(control: FormFieldControl): void;
243
+ /** @internal */
244
+ registerHint(hint: HintComponentBase): void;
245
+ /** @internal */
246
+ unregisterHint(hint: HintComponentBase): void;
247
+ /** @internal */
248
+ unregisterLabel(label: LabelDirectiveBase): void;
249
+ activate(): void;
250
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldDirective, never>;
251
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FormFieldDirective, "[etFormField]", never, {}, {}, never, never, true, never>;
252
+ }
253
+
254
+ declare const SUPPORT_CONTENT_STATE$1: {
255
+ readonly NONE: "none";
256
+ readonly HINT: "hint";
257
+ readonly ERROR: "error";
258
+ };
259
+ type SupportContentState$1 = (typeof SUPPORT_CONTENT_STATE$1)[keyof typeof SUPPORT_CONTENT_STATE$1];
260
+ declare const provideFormSupport: () => _angular_core.Provider[];
261
+ declare const injectFormSupport: {
262
+ (): {
263
+ errorColorTheme: _ethlete_core.ColorTheme;
264
+ formFieldDir: FormFieldDirective;
265
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
266
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
267
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
268
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
269
+ semanticSupportState: _angular_core.Signal<SupportContentState$1>;
270
+ displaysError: _angular_core.Signal<boolean>;
271
+ shouldRenderSupport: _angular_core.Signal<boolean>;
272
+ shouldRenderError: _angular_core.Signal<boolean>;
273
+ shouldRenderHint: _angular_core.Signal<boolean>;
274
+ errorActive: _angular_core.Signal<boolean>;
275
+ hintActive: _angular_core.Signal<boolean>;
276
+ visibleErrors: _angular_core.Signal<readonly ValidationError.WithOptionalFieldTree[]>;
277
+ supportHeight: _angular_core.Signal<number>;
278
+ };
279
+ (options: _angular_core.InjectOptions & {
280
+ optional?: false;
281
+ }): {
282
+ errorColorTheme: _ethlete_core.ColorTheme;
283
+ formFieldDir: FormFieldDirective;
284
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
285
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
286
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
287
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
288
+ semanticSupportState: _angular_core.Signal<SupportContentState$1>;
289
+ displaysError: _angular_core.Signal<boolean>;
290
+ shouldRenderSupport: _angular_core.Signal<boolean>;
291
+ shouldRenderError: _angular_core.Signal<boolean>;
292
+ shouldRenderHint: _angular_core.Signal<boolean>;
293
+ errorActive: _angular_core.Signal<boolean>;
294
+ hintActive: _angular_core.Signal<boolean>;
295
+ visibleErrors: _angular_core.Signal<readonly ValidationError.WithOptionalFieldTree[]>;
296
+ supportHeight: _angular_core.Signal<number>;
297
+ };
298
+ (options: _angular_core.InjectOptions): {
299
+ errorColorTheme: _ethlete_core.ColorTheme;
300
+ formFieldDir: FormFieldDirective;
301
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
302
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
303
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
304
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
305
+ semanticSupportState: _angular_core.Signal<SupportContentState$1>;
306
+ displaysError: _angular_core.Signal<boolean>;
307
+ shouldRenderSupport: _angular_core.Signal<boolean>;
308
+ shouldRenderError: _angular_core.Signal<boolean>;
309
+ shouldRenderHint: _angular_core.Signal<boolean>;
310
+ errorActive: _angular_core.Signal<boolean>;
311
+ hintActive: _angular_core.Signal<boolean>;
312
+ visibleErrors: _angular_core.Signal<readonly ValidationError.WithOptionalFieldTree[]>;
313
+ supportHeight: _angular_core.Signal<number>;
314
+ } | null;
315
+ };
316
+
317
+ declare class LabelDirective implements LabelDirectiveBase {
318
+ private formField;
319
+ private destroyRef;
320
+ id: _angular_core.WritableSignal<string>;
321
+ requiredMarkerVisible: _angular_core.Signal<boolean>;
322
+ effectiveDisabled: _angular_core.Signal<boolean>;
323
+ constructor();
324
+ activateControl(): void;
325
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LabelDirective, never>;
326
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LabelDirective, "et-label", never, {}, {}, never, ["*"], true, never>;
327
+ }
328
+
329
+ declare class CheckboxDirective implements FormCheckboxControl, FormFieldControl {
330
+ private formField;
331
+ private destroyRef;
332
+ private el;
333
+ checked: _angular_core.ModelSignal<boolean>;
334
+ indeterminate: _angular_core.ModelSignal<boolean>;
335
+ touched: _angular_core.ModelSignal<boolean>;
336
+ disabled: _angular_core.InputSignal<boolean>;
337
+ invalid: _angular_core.InputSignal<boolean>;
338
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
339
+ required: _angular_core.InputSignal<boolean>;
340
+ name: _angular_core.InputSignal<string>;
341
+ ariaChecked: _angular_core.Signal<boolean | "mixed">;
342
+ shouldDisplayError: _angular_core.Signal<boolean>;
343
+ describedBy: _angular_core.WritableSignal<string | null>;
344
+ controlType: _angular_core.WritableSignal<"checkbox">;
345
+ labelId: _angular_core.Signal<string | null>;
346
+ describedById: _angular_core.Signal<string | null>;
347
+ constructor();
348
+ toggle(): void;
349
+ activate(): void;
350
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxDirective, never>;
351
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CheckboxDirective, "[etCheckbox]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "indeterminate": "indeterminateChange"; "touched": "touchedChange"; }, never, never, true, never>;
352
+ }
353
+
354
+ declare class CheckboxComponent {
355
+ private checkboxDir;
356
+ private checkmarkEl;
357
+ private indeterminateEl;
358
+ canAnimate: {
359
+ state: _angular_core.Signal<boolean>;
360
+ };
361
+ protected frozenCheckmarkColor: _angular_core.WritableSignal<string | null>;
362
+ protected frozenIndeterminateColor: _angular_core.WritableSignal<string | null>;
363
+ isChecked: _angular_core.Signal<boolean>;
364
+ isIndeterminate: _angular_core.Signal<boolean>;
365
+ constructor();
366
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
367
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "et-checkbox", never, {}, {}, never, never, true, [{ directive: typeof CheckboxDirective; inputs: { "checked": "checked"; "indeterminate": "indeterminate"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }]>;
368
+ }
369
+
370
+ declare const CHECKBOX_IMPORTS: readonly [typeof CheckboxComponent, typeof CheckboxDirective];
371
+
372
+ declare class ChoiceFieldComponent {
373
+ private errorContentRef;
374
+ private hintContentRef;
375
+ private errorAnimatableRef;
376
+ private hintAnimatableRef;
377
+ support: {
378
+ errorColorTheme: _ethlete_core.ColorTheme;
379
+ formFieldDir: FormFieldDirective;
380
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
381
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
382
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
383
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
384
+ semanticSupportState: _angular_core.Signal<"none" | "hint" | "error">;
385
+ displaysError: _angular_core.Signal<boolean>;
386
+ shouldRenderSupport: _angular_core.Signal<boolean>;
387
+ shouldRenderError: _angular_core.Signal<boolean>;
388
+ shouldRenderHint: _angular_core.Signal<boolean>;
389
+ errorActive: _angular_core.Signal<boolean>;
390
+ hintActive: _angular_core.Signal<boolean>;
391
+ visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
392
+ supportHeight: _angular_core.Signal<number>;
393
+ };
394
+ canAnimate: {
395
+ state: _angular_core.Signal<boolean>;
396
+ };
397
+ constructor();
398
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChoiceFieldComponent, never>;
399
+ 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: {}; }]>;
400
+ }
401
+
402
+ declare class HintComponent implements HintComponentBase {
403
+ private formField;
404
+ private destroyRef;
405
+ constructor();
406
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HintComponent, never>;
407
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HintComponent, "et-hint", never, {}, {}, never, ["*"], true, never>;
408
+ }
409
+
410
+ declare const CHOICE_FIELD_IMPORTS: readonly [typeof ChoiceFieldComponent, typeof FormFieldDirective, typeof LabelDirective, typeof HintComponent];
411
+
412
+ declare class DescriptionComponent {
413
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DescriptionComponent, never>;
414
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DescriptionComponent, "et-description", never, {}, {}, never, ["*"], true, never>;
415
+ }
416
+
417
+ declare class FormErrorComponent {
418
+ error: _angular_core.InputSignal<ValidationError.WithOptionalFieldTree>;
419
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormErrorComponent, never>;
420
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormErrorComponent, "et-form-error", never, { "error": { "alias": "error"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
421
+ }
422
+
423
+ declare const FORM_FIELD_APPEARANCES: {
424
+ readonly BOX: "box";
425
+ readonly UNDERLINE: "underline";
426
+ };
427
+ type FormFieldAppearance = (typeof FORM_FIELD_APPEARANCES)[keyof typeof FORM_FIELD_APPEARANCES];
428
+ declare const FORM_FIELD_FILLS: {
429
+ readonly TRANSPARENT: "transparent";
430
+ readonly FILLED: "filled";
431
+ };
432
+ type FormFieldFill = (typeof FORM_FIELD_FILLS)[keyof typeof FORM_FIELD_FILLS];
433
+ declare const FORM_FIELD_LABEL_MODES: {
434
+ readonly STATIC: "static";
435
+ readonly INLINE: "inline";
436
+ readonly FLOATING_INSIDE: "floating-inside";
437
+ readonly FLOATING_OUTSIDE: "floating-outside";
438
+ };
439
+ type FormFieldLabelMode = (typeof FORM_FIELD_LABEL_MODES)[keyof typeof FORM_FIELD_LABEL_MODES];
440
+ declare const FORM_FIELD_SIZES: {
441
+ readonly SM: "sm";
442
+ readonly MD: "md";
443
+ readonly LG: "lg";
444
+ };
445
+ type FormFieldSize = (typeof FORM_FIELD_SIZES)[keyof typeof FORM_FIELD_SIZES];
446
+
447
+ declare const SUPPORT_CONTENT_STATE: {
448
+ readonly NONE: "none";
449
+ readonly HINT: "hint";
450
+ readonly ERROR: "error";
451
+ };
452
+ type SupportContentState = (typeof SUPPORT_CONTENT_STATE)[keyof typeof SUPPORT_CONTENT_STATE];
453
+ declare const SUPPORT_TRANSITION_DIRECTION: {
454
+ readonly FROM_ABOVE: "from-above";
455
+ readonly FROM_BELOW: "from-below";
456
+ readonly TO_ABOVE: "to-above";
457
+ readonly TO_BELOW: "to-below";
458
+ };
459
+ type SupportTransitionDirection = (typeof SUPPORT_TRANSITION_DIRECTION)[keyof typeof SUPPORT_TRANSITION_DIRECTION];
460
+ declare class FormFieldComponent {
461
+ private provideColor;
462
+ private provideSurface;
463
+ private parentSurfaceProvider;
464
+ protected formFieldDir: FormFieldDirective;
465
+ appearance: _angular_core.InputSignal<FormFieldAppearance>;
466
+ fill: _angular_core.InputSignal<FormFieldFill>;
467
+ labelMode: _angular_core.InputSignal<FormFieldLabelMode>;
468
+ size: _angular_core.InputSignal<FormFieldSize>;
469
+ protected errorContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
470
+ protected hintContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
471
+ prefixEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
472
+ protected errorAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
473
+ protected hintAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
474
+ protected errorColorTheme: _ethlete_core.ColorTheme;
475
+ private surfaceThemes;
476
+ private errorDimensions;
477
+ private hintDimensions;
478
+ private prefixDimensions;
479
+ private supportPresentation;
480
+ private resolvedSurface;
481
+ canAnimate: {
482
+ state: _angular_core.Signal<boolean>;
483
+ };
484
+ semanticSupportState: _angular_core.Signal<SupportContentState>;
485
+ protected displaysError: _angular_core.Signal<boolean>;
486
+ protected hasFloatingTextLabel: _angular_core.Signal<boolean>;
487
+ protected hasInlineLabel: _angular_core.Signal<boolean>;
488
+ protected prefixOffset: _angular_core.Signal<string | null>;
489
+ protected shouldRenderSupport: _angular_core.Signal<boolean>;
490
+ protected shouldRenderError: _angular_core.Signal<boolean>;
491
+ protected shouldRenderHint: _angular_core.Signal<boolean>;
492
+ protected errorActive: _angular_core.Signal<boolean>;
493
+ protected errorState: _angular_core.Signal<"leaving" | "active">;
494
+ protected errorDirection: _angular_core.Signal<SupportTransitionDirection>;
495
+ protected visibleErrors: _angular_core.Signal<readonly ValidationError.WithOptionalFieldTree[]>;
496
+ protected hintActive: _angular_core.Signal<boolean>;
497
+ protected hintState: _angular_core.Signal<"leaving" | "active">;
498
+ protected hintDirection: _angular_core.Signal<SupportTransitionDirection>;
499
+ protected supportHeight: _angular_core.Signal<number>;
500
+ constructor();
501
+ protected handleFramePointerDown(event: MouseEvent): void;
502
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
503
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "et-form-field", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; "labelMode": { "alias": "labelMode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[etInputPrefix]", "et-label", "*", "[etInputSuffix]", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveHasFocusDirective; inputs: {}; outputs: {}; }]>;
504
+ }
505
+
506
+ declare class InputPrefixDirective {
507
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputPrefixDirective, never>;
508
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputPrefixDirective, "[etInputPrefix]", never, {}, {}, never, never, true, never>;
509
+ }
510
+
511
+ declare class InputSuffixDirective {
512
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputSuffixDirective, never>;
513
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputSuffixDirective, "[etInputSuffix]", never, {}, {}, never, never, true, never>;
514
+ }
515
+
516
+ declare const FORM_FIELD_IMPORTS: readonly [typeof FormFieldComponent, typeof FormFieldDirective, typeof LabelDirective, typeof HintComponent, typeof InputPrefixDirective, typeof InputSuffixDirective];
517
+
518
+ declare const INPUT_TEXT_ALIGNMENTS: {
519
+ readonly START: "start";
520
+ readonly CENTER: "center";
521
+ readonly END: "end";
522
+ };
523
+ type InputTextAlignment = (typeof INPUT_TEXT_ALIGNMENTS)[keyof typeof INPUT_TEXT_ALIGNMENTS];
524
+
525
+ declare const INPUT_TYPES: {
526
+ readonly TEXT: "text";
527
+ readonly EMAIL: "email";
528
+ readonly PASSWORD: "password";
529
+ readonly TEL: "tel";
530
+ readonly URL: "url";
531
+ readonly SEARCH: "search";
532
+ };
533
+ type InputType = (typeof INPUT_TYPES)[keyof typeof INPUT_TYPES];
534
+ declare class InputDirective implements FormValueControl<string>, FormFieldControl {
535
+ private formField;
536
+ private destroyRef;
537
+ value: _angular_core.ModelSignal<string>;
538
+ touched: _angular_core.ModelSignal<boolean>;
539
+ disabled: _angular_core.InputSignal<boolean>;
540
+ readonly: _angular_core.InputSignal<boolean>;
541
+ hidden: _angular_core.InputSignal<boolean>;
542
+ invalid: _angular_core.InputSignal<boolean>;
543
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
544
+ required: _angular_core.InputSignal<boolean>;
545
+ name: _angular_core.InputSignal<string>;
546
+ type: _angular_core.InputSignal<InputType>;
547
+ placeholder: _angular_core.InputSignal<string>;
548
+ autocomplete: _angular_core.InputSignal<string>;
549
+ textAlign: _angular_core.InputSignal<InputTextAlignment>;
550
+ shouldDisplayError: _angular_core.Signal<boolean>;
551
+ hasValue: _angular_core.Signal<boolean>;
552
+ describedBy: _angular_core.WritableSignal<string | null>;
553
+ controlType: _angular_core.WritableSignal<"text-input">;
554
+ focused: _angular_core.WritableSignal<boolean>;
555
+ labelId: _angular_core.Signal<string | null>;
556
+ describedById: _angular_core.Signal<string | null>;
557
+ /** @internal */
558
+ focusTarget: _angular_core.WritableSignal<HTMLElement | null>;
559
+ constructor();
560
+ activate(): void;
561
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputDirective, never>;
562
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputDirective, "[etInput]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "textAlign": { "alias": "textAlign"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
563
+ }
564
+
565
+ declare class InputComponent {
566
+ protected inputDir: InputDirective;
567
+ private nativeInput;
568
+ constructor();
569
+ syncNativeValue(event: Event): void;
570
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
571
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "et-input", never, {}, {}, never, never, true, [{ directive: typeof InputDirective; inputs: { "type": "type"; "placeholder": "placeholder"; "autocomplete": "autocomplete"; "textAlign": "textAlign"; "value": "value"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
572
+ }
573
+
574
+ declare const INPUT_IMPORTS: readonly [typeof InputComponent, typeof InputDirective];
575
+
576
+ declare const SELECTION_LIST_TOKEN: InjectionToken<SelectionListDirectiveBase<unknown>>;
577
+ declare const SELECTION_LIST_MULTIPLE: InjectionToken<boolean>;
578
+ type SelectionListItem<TValue = unknown> = {
579
+ value: Signal<TValue>;
580
+ checked: WritableSignal<boolean>;
581
+ disabled: Signal<boolean>;
582
+ elementRef: ElementRef<HTMLElement>;
583
+ };
584
+ type SelectionListDirectiveBase<TValue = unknown> = {
585
+ value: WritableSignal<TValue | TValue[] | null>;
586
+ multiple: Signal<boolean>;
587
+ disabled: Signal<boolean>;
588
+ required: Signal<boolean>;
589
+ name: Signal<string>;
590
+ items: Signal<SelectionListItem<TValue>[]>;
591
+ allSelected: Signal<boolean>;
592
+ someSelected: Signal<boolean>;
593
+ registerItem(item: SelectionListItem<TValue>): void;
594
+ unregisterItem(item: SelectionListItem<TValue>): void;
595
+ select(item: SelectionListItem<TValue>): void;
596
+ focusItem(item: SelectionListItem<TValue>): void;
597
+ markTouched(): void;
598
+ toggleAll(): void;
599
+ };
600
+
601
+ declare class SelectionListDirective implements SelectionListDirectiveBase, FormFieldControl {
602
+ private formField;
603
+ private destroyRef;
604
+ private multipleOverride;
605
+ value: _angular_core.ModelSignal<unknown>;
606
+ touched: _angular_core.ModelSignal<boolean>;
607
+ multipleInput: _angular_core.InputSignal<boolean>;
608
+ disabled: _angular_core.InputSignal<boolean>;
609
+ invalid: _angular_core.InputSignal<boolean>;
610
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
611
+ required: _angular_core.InputSignal<boolean>;
612
+ name: _angular_core.InputSignal<string>;
613
+ multiple: _angular_core.Signal<boolean>;
614
+ items: _angular_core.WritableSignal<SelectionListItem[]>;
615
+ shouldDisplayError: _angular_core.Signal<boolean>;
616
+ role: _angular_core.Signal<"group" | "radiogroup">;
617
+ describedBy: _angular_core.WritableSignal<string | null>;
618
+ controlType: _angular_core.WritableSignal<"selection-list">;
619
+ describedById: _angular_core.Signal<string | null>;
620
+ labelId: _angular_core.Signal<string | null>;
621
+ allSelected: _angular_core.Signal<boolean>;
622
+ someSelected: _angular_core.Signal<boolean>;
623
+ constructor();
624
+ registerItem(item: SelectionListItem): void;
625
+ unregisterItem(item: SelectionListItem): void;
626
+ markTouched(): void;
627
+ select(item: SelectionListItem): void;
628
+ focusItem(item: SelectionListItem): void;
629
+ toggleAll(): void;
630
+ activate(): void;
631
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionListDirective, never>;
632
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectionListDirective, "[etSelectionList]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "multipleInput": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
633
+ }
634
+
635
+ declare class CheckboxGroupComponent {
636
+ private errorContentRef;
637
+ private hintContentRef;
638
+ private errorAnimatableRef;
639
+ private hintAnimatableRef;
640
+ support: {
641
+ errorColorTheme: _ethlete_core.ColorTheme;
642
+ formFieldDir: FormFieldDirective;
643
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
644
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
645
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
646
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
647
+ semanticSupportState: _angular_core.Signal<"none" | "hint" | "error">;
648
+ displaysError: _angular_core.Signal<boolean>;
649
+ shouldRenderSupport: _angular_core.Signal<boolean>;
650
+ shouldRenderError: _angular_core.Signal<boolean>;
651
+ shouldRenderHint: _angular_core.Signal<boolean>;
652
+ errorActive: _angular_core.Signal<boolean>;
653
+ hintActive: _angular_core.Signal<boolean>;
654
+ visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
655
+ supportHeight: _angular_core.Signal<number>;
656
+ };
657
+ canAnimate: {
658
+ state: _angular_core.Signal<boolean>;
659
+ };
660
+ constructor();
661
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxGroupComponent, never>;
662
+ 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: {}; }]>;
663
+ }
664
+
665
+ declare class SelectionListControlDirective {
666
+ list: _ethlete_components.SelectionListDirectiveBase<unknown>;
667
+ checked: _angular_core.Signal<boolean>;
668
+ indeterminate: _angular_core.Signal<boolean>;
669
+ labelId: _angular_core.WritableSignal<string>;
670
+ ariaChecked: _angular_core.Signal<boolean | "mixed">;
671
+ toggle(): void;
672
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionListControlDirective, never>;
673
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectionListControlDirective, "[etSelectionListControl]", never, {}, {}, never, never, true, never>;
674
+ }
675
+
676
+ declare class SelectionOptionDirective {
677
+ private list;
678
+ private destroyRef;
679
+ private el;
680
+ value: _angular_core.InputSignal<unknown>;
681
+ checked: _angular_core.ModelSignal<boolean>;
682
+ disabled: _angular_core.InputSignal<boolean>;
683
+ effectiveDisabled: _angular_core.Signal<boolean>;
684
+ role: _angular_core.Signal<"radio" | "option">;
685
+ labelId: _angular_core.WritableSignal<string>;
686
+ private listItem;
687
+ tabindex: _angular_core.Signal<0 | -1>;
688
+ constructor();
689
+ select(): void;
690
+ markTouched(): void;
691
+ focusNext(event: Event): void;
692
+ focusPrevious(event: Event): void;
693
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionOptionDirective, never>;
694
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectionOptionDirective, "[etSelectionOption]", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
695
+ }
696
+
697
+ declare class CheckboxOptionComponent {
698
+ optionDirective: SelectionOptionDirective;
699
+ canAnimate: {
700
+ state: _angular_core.Signal<boolean>;
701
+ };
702
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxOptionComponent, never>;
703
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxOptionComponent, "et-checkbox-option", never, {}, {}, never, ["*", "et-description"], true, [{ directive: typeof SelectionOptionDirective; inputs: { "value": "value"; "checked": "checked"; "disabled": "disabled"; }; outputs: { "checkedChange": "checkedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
704
+ }
705
+
706
+ declare class RadioGroupComponent {
707
+ private errorContentRef;
708
+ private hintContentRef;
709
+ private errorAnimatableRef;
710
+ private hintAnimatableRef;
711
+ support: {
712
+ errorColorTheme: _ethlete_core.ColorTheme;
713
+ formFieldDir: FormFieldDirective;
714
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
715
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
716
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
717
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
718
+ semanticSupportState: _angular_core.Signal<"none" | "hint" | "error">;
719
+ displaysError: _angular_core.Signal<boolean>;
720
+ shouldRenderSupport: _angular_core.Signal<boolean>;
721
+ shouldRenderError: _angular_core.Signal<boolean>;
722
+ shouldRenderHint: _angular_core.Signal<boolean>;
723
+ errorActive: _angular_core.Signal<boolean>;
724
+ hintActive: _angular_core.Signal<boolean>;
725
+ visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
726
+ supportHeight: _angular_core.Signal<number>;
727
+ };
728
+ canAnimate: {
729
+ state: _angular_core.Signal<boolean>;
730
+ };
731
+ constructor();
732
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
733
+ 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: {}; }]>;
734
+ }
735
+
736
+ declare class RadioComponent {
737
+ optionDirective: SelectionOptionDirective;
738
+ canAnimate: {
739
+ state: _angular_core.Signal<boolean>;
740
+ };
741
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioComponent, never>;
742
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "et-radio", never, {}, {}, never, ["*", "et-description"], true, [{ directive: typeof SelectionOptionDirective; inputs: { "value": "value"; "checked": "checked"; "disabled": "disabled"; }; outputs: { "checkedChange": "checkedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
743
+ }
744
+
745
+ declare class SegmentedButtonGroupComponent {
746
+ private errorContentRef;
747
+ private hintContentRef;
748
+ private errorAnimatableRef;
749
+ private hintAnimatableRef;
750
+ support: {
751
+ errorColorTheme: _ethlete_core.ColorTheme;
752
+ formFieldDir: FormFieldDirective;
753
+ errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
754
+ hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
755
+ errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
756
+ hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
757
+ semanticSupportState: _angular_core.Signal<"none" | "hint" | "error">;
758
+ displaysError: _angular_core.Signal<boolean>;
759
+ shouldRenderSupport: _angular_core.Signal<boolean>;
760
+ shouldRenderError: _angular_core.Signal<boolean>;
761
+ shouldRenderHint: _angular_core.Signal<boolean>;
762
+ errorActive: _angular_core.Signal<boolean>;
763
+ hintActive: _angular_core.Signal<boolean>;
764
+ visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
765
+ supportHeight: _angular_core.Signal<number>;
766
+ };
767
+ canAnimate: {
768
+ state: _angular_core.Signal<boolean>;
769
+ };
770
+ constructor();
771
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedButtonGroupComponent, never>;
772
+ 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: {}; }]>;
773
+ }
774
+
775
+ declare class SegmentedButtonComponent {
776
+ optionDirective: SelectionOptionDirective;
777
+ canAnimate: {
778
+ state: _angular_core.Signal<boolean>;
779
+ };
780
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedButtonComponent, never>;
781
+ 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: {}; }]>;
782
+ }
783
+
784
+ declare class SwitchDirective implements FormFieldControl {
785
+ private formField;
786
+ private destroyRef;
787
+ private el;
788
+ checked: _angular_core.ModelSignal<boolean>;
789
+ touched: _angular_core.ModelSignal<boolean>;
790
+ disabled: _angular_core.InputSignal<boolean>;
791
+ invalid: _angular_core.InputSignal<boolean>;
792
+ errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
793
+ required: _angular_core.InputSignal<boolean>;
794
+ name: _angular_core.InputSignal<string>;
795
+ shouldDisplayError: _angular_core.Signal<boolean>;
796
+ describedBy: _angular_core.WritableSignal<string | null>;
797
+ controlType: _angular_core.WritableSignal<"switch">;
798
+ labelId: _angular_core.Signal<string | null>;
799
+ describedById: _angular_core.Signal<string | null>;
800
+ constructor();
801
+ toggle(): void;
802
+ activate(): void;
803
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchDirective, never>;
804
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SwitchDirective, "[etSwitch]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touched": "touchedChange"; }, never, never, true, never>;
805
+ }
806
+
807
+ declare class SwitchComponent {
808
+ canAnimate: {
809
+ state: _angular_core.Signal<boolean>;
810
+ };
811
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
812
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "et-switch", never, {}, {}, never, never, true, [{ directive: typeof SwitchDirective; inputs: { "checked": "checked"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
813
+ }
814
+
815
+ declare const SWITCH_IMPORTS: readonly [typeof SwitchComponent, typeof SwitchDirective];
816
+
817
+ type GridBreakpointName = string;
818
+ type GridItemPosition = {
819
+ col: number;
820
+ row: number;
821
+ colSpan: number;
822
+ rowSpan: number;
823
+ };
824
+ type GridItemConstraints = {
825
+ minColSpan: number;
826
+ maxColSpan: number;
827
+ minRowSpan: number;
828
+ maxRowSpan: number;
829
+ };
830
+ type GridItemConfig<TType extends string = string, TData = unknown> = {
831
+ id: string;
832
+ type: TType;
833
+ data: TData;
834
+ layout: Record<GridBreakpointName, GridItemPosition>;
835
+ };
836
+ type GridBreakpointConfig = {
837
+ name: GridBreakpointName;
838
+ columns: number;
839
+ minWidth: number;
840
+ };
841
+ type GridSerializedState = {
842
+ columns: Record<GridBreakpointName, number>;
843
+ rowHeight: number;
844
+ items: GridItemConfig[];
845
+ };
846
+ type GridLayoutEntry = {
847
+ id: string;
848
+ position: GridItemPosition;
849
+ };
850
+ type GridComponentRegistration<TData = unknown> = {
851
+ component: Type<{
852
+ data: InputSignal<TData>;
853
+ }>;
854
+ type: string;
855
+ constraints?: {
856
+ minColSpan?: number;
857
+ maxColSpan?: number;
858
+ minRowSpan?: number;
859
+ maxRowSpan?: number;
860
+ };
861
+ configComponent?: Type<unknown>;
862
+ };
863
+ /**
864
+ * Injectable reference provided to configComponent instances.
865
+ * Gives the config form access to the item's current data and the ability to save or cancel.
866
+ */
867
+ declare abstract class GridItemRef<TData = unknown> {
868
+ abstract readonly data: Signal<TData | undefined>;
869
+ abstract save(data: TData): void;
870
+ abstract close(): void;
871
+ }
872
+
873
+ type ResizeItemOptions = {
874
+ id: string;
875
+ newColSpan: number;
876
+ newRowSpan: number;
877
+ newCol?: number;
878
+ newRow?: number;
879
+ };
880
+ type GridDragState = {
881
+ itemId: string;
882
+ originPosition: GridItemPosition;
883
+ targetPosition: GridItemPosition;
884
+ };
885
+ declare class GridDirective {
886
+ private injector;
887
+ breakpoints: _angular_core.InputSignal<GridBreakpointConfig[]>;
888
+ rowHeight: _angular_core.InputSignal<number>;
889
+ gap: _angular_core.InputSignal<number>;
890
+ initialItems: _angular_core.InputSignal<GridItemConfig[]>;
891
+ readOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
892
+ layoutChange: _angular_core.OutputEmitterRef<GridSerializedState>;
893
+ private gridConfig;
894
+ registrations: _angular_core.Signal<GridComponentRegistration[]>;
895
+ private dimensions;
896
+ private itemConfigs;
897
+ private layoutOverrides;
898
+ dragState: _angular_core.WritableSignal<GridDragState | null>;
899
+ private constraintsRegistry;
900
+ private resizeBaseLayout;
901
+ private itemElements;
902
+ private ghostElement;
903
+ private rectSnapshot;
904
+ containerWidth: _angular_core.Signal<number>;
905
+ activeBreakpoint: _angular_core.Signal<string>;
906
+ activeColumns: _angular_core.Signal<number>;
907
+ items: _angular_core.Signal<GridItemConfig[]>;
908
+ baseLayout: _angular_core.Signal<GridLayoutEntry[]>;
909
+ layout: _angular_core.Signal<GridLayoutEntry[]>;
910
+ ghostPosition: _angular_core.Signal<GridItemPosition | null>;
911
+ constructor();
912
+ registerConstraints(id: string, constraints: GridItemConstraints): void;
913
+ registerItem(id: string, options: {
914
+ el: HTMLElement;
915
+ constraints: GridItemConstraints;
916
+ }): void;
917
+ unregisterItem(id: string): void;
918
+ setGhostElement(el: HTMLElement | null): void;
919
+ getConstraints(id: string): GridItemConstraints;
920
+ snapshotRects(): void;
921
+ animateLayoutTransition(options?: {
922
+ excludeIds?: Set<string>;
923
+ scaleIds?: Set<string>;
924
+ }): void;
925
+ beginDrag(itemId: string): void;
926
+ updateDragTarget(targetPosition: GridItemPosition): void;
927
+ commitDrag(): void;
928
+ addItem(type: string, data: unknown): void;
929
+ removeItem(id: string): void;
930
+ moveItem(id: string, newPosition: GridItemPosition): void;
931
+ resizeItem(options: ResizeItemOptions): void;
932
+ commitResize(): void;
933
+ getSerializedState(): GridSerializedState;
934
+ restoreState(state: GridSerializedState): void;
935
+ private placeItem;
936
+ private shrinkNeighbors;
937
+ private updateLayoutForCurrentBreakpoint;
938
+ private updateItemLayout;
939
+ private emitLayoutChange;
940
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDirective, never>;
941
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridDirective, "[etGrid]", ["etGrid"], { "breakpoints": { "alias": "breakpoints"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "initialItems": { "alias": "initialItems"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; }, never, never, true, never>;
942
+ }
943
+
944
+ declare class GridItemDirective {
945
+ private grid;
946
+ hostElement: ElementRef<HTMLElement>;
947
+ itemId: _angular_core.InputSignal<string>;
948
+ minColSpan: _angular_core.InputSignalWithTransform<number, unknown>;
949
+ maxColSpan: _angular_core.InputSignalWithTransform<number, unknown>;
950
+ minRowSpan: _angular_core.InputSignalWithTransform<number, unknown>;
951
+ maxRowSpan: _angular_core.InputSignalWithTransform<number, unknown>;
952
+ isBeingDragged: _angular_core.Signal<boolean>;
953
+ private frozenPosition;
954
+ currentPosition: _angular_core.Signal<_ethlete_components.GridItemPosition | null>;
955
+ renderPosition: _angular_core.Signal<_ethlete_components.GridItemPosition | null>;
956
+ currentCol: _angular_core.Signal<number>;
957
+ currentRow: _angular_core.Signal<number>;
958
+ currentColSpan: _angular_core.Signal<number>;
959
+ currentRowSpan: _angular_core.Signal<number>;
960
+ hostStyles: {
961
+ remove: (tokens: string) => void;
962
+ removeMany: (tokens: string[]) => void;
963
+ has: (tokens: string) => boolean;
964
+ push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
965
+ pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
966
+ };
967
+ constructor();
968
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridItemDirective, never>;
969
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridItemDirective, "[etGridItem]", ["etGridItem"], { "itemId": { "alias": "itemId"; "required": true; "isSignal": true; }; "minColSpan": { "alias": "minColSpan"; "required": false; "isSignal": true; }; "maxColSpan": { "alias": "maxColSpan"; "required": false; "isSignal": true; }; "minRowSpan": { "alias": "minRowSpan"; "required": false; "isSignal": true; }; "maxRowSpan": { "alias": "maxRowSpan"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
970
+ }
971
+
972
+ declare class GridDragDirective {
973
+ protected grid: _ethlete_components.GridDirective;
974
+ private gridItem;
975
+ private injector;
976
+ private elementRef;
977
+ dragHandle: DragHandleDirective;
978
+ private renderer;
979
+ private dragStartClient;
980
+ private dragPixelOffset;
981
+ hostStyles: {
982
+ remove: (tokens: string) => void;
983
+ removeMany: (tokens: string[]) => void;
984
+ has: (tokens: string) => boolean;
985
+ push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
986
+ pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
987
+ };
988
+ constructor();
989
+ private applyFixed;
990
+ private releaseFixed;
991
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDragDirective, never>;
992
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridDragDirective, "[etGridDrag]", never, {}, {}, never, never, true, [{ directive: typeof _ethlete_core.DragHandleDirective; inputs: {}; outputs: { "dragStarted": "dragStarted"; "dragMoved": "dragMoved"; "dragEnded": "dragEnded"; }; }]>;
993
+ }
994
+
995
+ declare class GridResizeDirective {
996
+ private grid;
997
+ private gridItem;
998
+ isResizing: _angular_core.WritableSignal<boolean>;
999
+ resizeEdges: _angular_core.Signal<ResizeEdge[]>;
1000
+ private resizeStartPos;
1001
+ beginResize(): void;
1002
+ updateResize(event: ResizeMoveEvent): void;
1003
+ finishResize(): void;
1004
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridResizeDirective, never>;
1005
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridResizeDirective, "[etGridResize]", never, {}, {}, never, never, true, never>;
1006
+ }
1007
+
1008
+ declare const GRID_TOKEN: InjectionToken<GridDirective>;
1009
+
1010
+ type GridConfig = {
1011
+ registrations: GridComponentRegistration[];
1012
+ interactiveAriaLabel: string;
1013
+ readonlyAriaLabel: string;
1014
+ dragHandleAriaLabel: string;
1015
+ transformer: (text: string, locale: string) => string;
1016
+ };
1017
+ declare const provideGridConfig: (valueOverride?: Partial<GridConfig> | undefined) => _angular_core.Provider[];
1018
+ declare const injectGridConfig: {
1019
+ (): GridConfig;
1020
+ (options: _angular_core.InjectOptions & {
1021
+ optional?: false;
1022
+ }): GridConfig;
1023
+ (options: _angular_core.InjectOptions): GridConfig | null;
1024
+ };
1025
+
1026
+ type GridAdapter<TExternal> = {
1027
+ fromExternal(items: TExternal[]): GridItemConfig[];
1028
+ toExternal(items: GridItemConfig[]): TExternal[];
1029
+ };
1030
+ declare const createGridAdapter: <TExternal>(fromItem: (item: TExternal) => GridItemConfig, toItem: (item: GridItemConfig) => TExternal) => GridAdapter<TExternal>;
1031
+ /** Map a backend position shaped as `{x, y, cols, rows}` to a `GridItemPosition`. */
1032
+ declare const toGridPosition: (pos: {
1033
+ x: number;
1034
+ y: number;
1035
+ cols: number;
1036
+ rows: number;
1037
+ }) => GridItemPosition;
1038
+ /** Map a `GridItemPosition` to a backend position shaped as `{x, y, cols, rows}`. */
1039
+ declare const fromGridPosition: (pos: GridItemPosition) => {
1040
+ x: number;
1041
+ y: number;
1042
+ cols: number;
1043
+ rows: number;
1044
+ };
1045
+
1046
+ declare class GridComponent {
1047
+ grid: GridDirective;
1048
+ private ghostRef;
1049
+ private gridConfig;
1050
+ private locale;
1051
+ protected ariaLabel: _angular_core.Signal<string>;
1052
+ hostStyles: {
1053
+ remove: (tokens: string) => void;
1054
+ removeMany: (tokens: string[]) => void;
1055
+ has: (tokens: string) => boolean;
1056
+ push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
1057
+ pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
1058
+ };
1059
+ constructor();
1060
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridComponent, never>;
1061
+ 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"; }; }]>;
1062
+ }
1063
+
1064
+ declare class GridItemComponent {
1065
+ private grid;
1066
+ private gridItem;
1067
+ gridDrag: GridDragDirective;
1068
+ gridResize: GridResizeDirective;
1069
+ ariaLabel: _angular_core.InputSignal<string>;
1070
+ removed: _angular_core.OutputEmitterRef<void>;
1071
+ private gridConfig;
1072
+ private locale;
1073
+ protected isReadOnly: _angular_core.Signal<boolean>;
1074
+ protected dragHandleAriaLabel: _angular_core.Signal<string>;
1075
+ applyKeyboardShortcut(event: KeyboardEvent): void;
1076
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridItemComponent, never>;
1077
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridItemComponent, "et-grid-item, [et-grid-item]", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["[etGridItemDragHandle]", "*", "[etGridItemAction]"], true, [{ directive: typeof GridItemDirective; inputs: { "itemId": "itemId"; "minColSpan": "minColSpan"; "maxColSpan": "maxColSpan"; "minRowSpan": "minRowSpan"; "maxRowSpan": "maxRowSpan"; }; outputs: {}; }, { directive: typeof GridDragDirective; inputs: {}; outputs: {}; }, { directive: typeof GridResizeDirective; inputs: {}; outputs: {}; }]>;
1078
+ }
1079
+
1080
+ declare const GRID_ERROR_CODES: {
1081
+ readonly MISSING_GRID: 1900;
1082
+ readonly MISSING_GRID_ITEM: 1901;
1083
+ readonly DUPLICATE_ITEM_ID: 1902;
1084
+ readonly INVALID_LAYOUT_STATE: 1903;
1085
+ };
1086
+
1087
+ declare const GridImports: readonly [typeof GridComponent, typeof GridItemComponent];
1088
+
1089
+ type IconDefinition = {
1090
+ name: string;
1091
+ data: string;
1092
+ };
1093
+ declare const ICONS_TOKEN: InjectionToken<Record<string, IconDefinition>>;
1094
+ declare const provideIcons: (...icons: IconDefinition[]) => {
1095
+ provide: InjectionToken<Record<string, IconDefinition>>;
1096
+ useValue: Record<string, IconDefinition>;
1097
+ };
1098
+
1099
+ declare const ARROW_OUT_UP_RIGHT_ICON: IconDefinition;
1100
+
1101
+ declare const ARROW_RIGHT_ICON: IconDefinition;
1102
+
1103
+ declare const CHEVRON_ICON: IconDefinition;
1104
+
1105
+ declare const CLIPBOARD_CHECK_ICON: IconDefinition;
1106
+
1107
+ declare const FLOPPY_DISK_ICON: IconDefinition;
1108
+
1109
+ declare const FOCUS_FRAME_ICON: IconDefinition;
1110
+
1111
+ declare const GRID_2X2_ICON: IconDefinition;
1112
+
1113
+ declare const ICON_ERROR_CODES: {
1114
+ readonly NO_ICONS_PROVIDED: 1800;
1115
+ readonly ICON_NOT_FOUND: 1801;
1116
+ readonly INVALID_SVG: 1802;
1117
+ readonly MISSING_XMLNS: 1803;
1118
+ readonly MISSING_DIMENSIONS: 1804;
1119
+ readonly HARDCODED_COLOR: 1805;
1120
+ readonly DUPLICATE_ICON_NAME: 1806;
1121
+ };
1122
+
1123
+ declare const ICON_DIRECTIVE_TOKEN: InjectionToken<IconDirective>;
1124
+ declare class IconDirective {
1125
+ private icons;
1126
+ private sanitizer;
1127
+ iconNameToUse: _angular_core.InputSignal<string>;
1128
+ allowHardcodedColor: _angular_core.InputSignalWithTransform<boolean, unknown>;
1129
+ iconSrc: _angular_core.Signal<_angular_platform_browser.SafeHtml | null>;
1130
+ hostClasses: _angular_core.Signal<string>;
1131
+ constructor();
1132
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconDirective, never>;
1133
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IconDirective, "[etIcon]", never, { "iconNameToUse": { "alias": "etIcon"; "required": true; "isSignal": true; }; "allowHardcodedColor": { "alias": "allowHardcodedColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1134
+ }
1135
+
1136
+ declare const LOCK_ICON: IconDefinition;
1137
+
1138
+ declare const PENCIL_ICON: IconDefinition;
1139
+
1140
+ declare const PLUS_ICON: IconDefinition;
1141
+
1142
+ declare const TIMES_ICON: IconDefinition;
1143
+
1144
+ declare const TRIANGLE_EXCLAMATION_ICON: IconDefinition;
1145
+
1146
+ declare const ICON_IMPORTS: readonly [typeof IconDirective];
1147
+
1148
+ declare class BrandLoaderComponent {
1149
+ readonly PATH = "M15.905 6.21401C15.7794 6.8902 16.2818 7.51877 16.9517 7.51877H23.8598L22.9201 12.3378H15.6817C15.1048 12.3378 14.6071 12.7569 14.5001 13.3378C14.4861 13.4188 14.4768 13.4997 14.4768 13.5811C14.4768 14.2426 15.0071 14.8092 15.6817 14.8092H23.9435L22.9201 19.9997H6.79183L7.2198 17.814H7.64313C7.94085 17.814 8.20601 17.6907 8.40139 17.495C8.59212 17.2954 8.71307 17.0235 8.71307 16.7235C8.71307 16.1188 8.23858 15.6331 7.64778 15.6288H2.73534C2.14919 15.6288 1.67004 15.1426 1.67004 14.5378C1.67004 14.2383 1.791 13.9621 1.98172 13.7664C2.17711 13.5711 2.44227 13.4473 2.73534 13.4473H8.07111L8.96428 8.88115H9.39226C9.68533 8.88115 9.95049 8.75686 10.1459 8.5621C10.3366 8.3621 10.4576 8.08591 10.4576 7.78543C10.4576 7.18543 9.9784 6.69543 9.39226 6.69543H4.48447C3.89367 6.69543 3.41452 6.20448 3.41452 5.60496C3.41452 5.30448 3.53547 5.02877 3.7262 4.82829C3.92158 4.63353 4.19139 4.50924 4.48447 4.50924H10.2436C10.5366 4.50924 10.8064 4.3902 10.9972 4.1902C11.1879 3.99496 11.3089 3.72401 11.3089 3.41877C11.3089 2.81401 10.8344 2.32829 10.2436 2.32829H1.06994C0.479149 2.32829 0 1.83829 0 1.23305C0 0.933054 0.12095 0.656864 0.31168 0.461626C0.507061 0.266864 0.776873 0.142578 1.06994 0.142578H26.4369L25.4135 5.33305H16.9517C16.4446 5.33305 16.0027 5.70496 15.905 6.21401Z";
1150
+ readonly OUTLINE_PATH = "M1.07 0.14 L26.44 0.14 L25.41 5.33 L16.95 5.33 C16.44 5.33 16.0 5.70 15.91 6.21 C15.78 6.89 16.28 7.52 16.95 7.52 L23.86 7.52 L22.92 12.34 L15.68 12.34 C15.10 12.34 14.61 12.76 14.50 13.34 C14.49 13.42 14.48 13.50 14.48 13.58 C14.48 14.24 15.01 14.81 15.68 14.81 L23.94 14.81 L22.92 20.0 L6.79 20.0 L7.22 17.81 L7.64 17.81 C7.94 17.81 8.21 17.69 8.40 17.50 C8.59 17.30 8.71 17.02 8.71 16.72 C8.71 16.12 8.24 15.63 7.65 15.63 L2.74 15.63 C2.15 15.63 1.67 15.14 1.67 14.54 C1.67 14.24 1.79 13.96 1.98 13.77 C2.18 13.57 2.44 13.45 2.74 13.45 L8.07 13.45 L8.96 8.88 L9.39 8.88 C9.69 8.88 9.95 8.76 10.15 8.56 C10.34 8.36 10.46 8.09 10.46 7.79 C10.46 7.19 9.98 6.70 9.39 6.70 L4.48 6.70 C3.89 6.70 3.41 6.20 3.41 5.60 C3.41 5.30 3.54 5.03 3.73 4.83 C3.92 4.63 4.19 4.51 4.48 4.51 L10.24 4.51 C10.54 4.51 10.81 4.39 10.997 4.19 C11.188 3.99 11.31 3.72 11.31 3.42 C11.31 2.81 10.83 2.33 10.24 2.33 L1.07 2.33 C0.48 2.33 0 1.84 0 1.23 C0 0.93 0.12 0.66 0.31 0.46 C0.51 0.27 0.78 0.14 1.07 0.14 Z";
1151
+ readonly SHAPE_CLIP_ID: string;
1152
+ shapeClip: string;
1153
+ readonly FILL_CLIP_ID: string;
1154
+ fillClip: string;
1155
+ constructor();
1156
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrandLoaderComponent, never>;
1157
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BrandLoaderComponent, "et-brand-loader", never, {}, {}, never, never, true, never>;
1158
+ }
1159
+
1160
+ declare class ProgressBarComponent {
1161
+ value: _angular_core.InputSignalWithTransform<number, unknown>;
1162
+ indeterminate: _angular_core.InputSignalWithTransform<boolean, unknown>;
1163
+ clampedValue: _angular_core.Signal<number>;
1164
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
1165
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressBarComponent, "et-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1166
+ }
1167
+
1168
+ declare class SpinnerComponent {
1169
+ diameter: _angular_core.InputSignalWithTransform<number, unknown>;
1170
+ strokeWidth: _angular_core.InputSignalWithTransform<number, unknown>;
1171
+ track: _angular_core.InputSignalWithTransform<boolean, unknown>;
1172
+ value: _angular_core.InputSignalWithTransform<number, unknown>;
1173
+ determinate: _angular_core.InputSignalWithTransform<boolean, unknown>;
1174
+ circleRadius: _angular_core.Signal<number>;
1175
+ normalizedStrokeWidth: _angular_core.Signal<number>;
1176
+ viewBox: _angular_core.Signal<string>;
1177
+ strokeCircumference: _angular_core.Signal<number>;
1178
+ circleStrokeWidth: _angular_core.Signal<number>;
1179
+ clampedValue: _angular_core.Signal<number>;
1180
+ determinateDashOffset: _angular_core.Signal<number>;
1181
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
1182
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "et-spinner", never, { "diameter": { "alias": "diameter"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "track": { "alias": "track"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "determinate": { "alias": "determinate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1183
+ }
1184
+
1185
+ declare class NotificationActionDirective {
1186
+ private notification;
1187
+ constructor();
1188
+ runAction(): void;
1189
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationActionDirective, never>;
1190
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationActionDirective, "[etNotificationAction]", ["etNotificationAction"], {}, {}, never, never, true, never>;
1191
+ }
1192
+
1193
+ declare class NotificationDismissDirective {
1194
+ private notification;
1195
+ constructor();
1196
+ dismiss(): void;
1197
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationDismissDirective, never>;
1198
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationDismissDirective, "[etNotificationDismiss]", ["etNotificationDismiss"], {}, {}, never, never, true, never>;
1199
+ }
1200
+
1201
+ declare class NotificationItemDirective {
1202
+ private elementRef;
1203
+ private stack;
1204
+ ref: _angular_core.InputSignal<{
1205
+ id: string;
1206
+ entry: _angular_core.Signal<_ethlete_components.NotificationEntry>;
1207
+ update: (partial: Partial<_ethlete_components.NotificationConfig>) => void;
1208
+ dismiss: () => void;
1209
+ pauseTimer: () => void;
1210
+ resumeTimer: () => void;
1211
+ afterDismissed: () => rxjs.Observable<void>;
1212
+ markDismissed: () => void;
1213
+ }>;
1214
+ constructor();
1215
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationItemDirective, never>;
1216
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationItemDirective, "[etNotificationItem]", never, { "ref": { "alias": "etNotificationItem"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1217
+ }
1218
+
1219
+ type RegisteredNotificationItem = {
1220
+ id: string;
1221
+ el: HTMLElement;
1222
+ };
1223
+ declare class NotificationStackDirective {
1224
+ protected context: _ethlete_components.NotificationStackContext;
1225
+ private destroyRef;
1226
+ private injector;
1227
+ private renderer;
1228
+ /** @internal */
1229
+ registeredItems: _angular_core.WritableSignal<RegisteredNotificationItem[]>;
1230
+ displayRefs: _angular_core.Signal<{
1231
+ id: string;
1232
+ entry: _angular_core.Signal<_ethlete_components.NotificationEntry>;
1233
+ update: (partial: Partial<_ethlete_components.NotificationConfig>) => void;
1234
+ dismiss: () => void;
1235
+ pauseTimer: () => void;
1236
+ resumeTimer: () => void;
1237
+ afterDismissed: () => rxjs.Observable<void>;
1238
+ markDismissed: () => void;
1239
+ }[]>;
1240
+ constructor();
1241
+ /** @internal */
1242
+ registerItem(id: string, el: HTMLElement): void;
1243
+ /** @internal */
1244
+ unregisterItem(id: string): void;
1245
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationStackDirective, never>;
1246
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationStackDirective, "[etNotificationStack]", ["etNotificationStack"], {}, {}, never, never, true, never>;
1247
+ }
1248
+
1249
+ declare class NotificationDirective {
1250
+ private animatedLifecycle;
1251
+ ref: _angular_core.InputSignal<{
1252
+ id: string;
1253
+ entry: _angular_core.Signal<_ethlete_components.NotificationEntry>;
1254
+ update: (partial: Partial<_ethlete_components.NotificationConfig>) => void;
1255
+ dismiss: () => void;
1256
+ pauseTimer: () => void;
1257
+ resumeTimer: () => void;
1258
+ afterDismissed: () => rxjs.Observable<void>;
1259
+ markDismissed: () => void;
1260
+ }>;
1261
+ entry: _angular_core.Signal<_ethlete_components.NotificationEntry>;
1262
+ status: _angular_core.Signal<_ethlete_components.NotificationStatus>;
1263
+ isLoading: _angular_core.Signal<boolean>;
1264
+ isSuccess: _angular_core.Signal<boolean>;
1265
+ isError: _angular_core.Signal<boolean>;
1266
+ isInfo: _angular_core.Signal<boolean>;
1267
+ title: _angular_core.Signal<string>;
1268
+ message: _angular_core.Signal<string | undefined>;
1269
+ action: _angular_core.Signal<_ethlete_components.NotificationAction | undefined>;
1270
+ progress: _angular_core.Signal<number | undefined>;
1271
+ ariaRole: _angular_core.Signal<"status" | "alert">;
1272
+ /** @internal */
1273
+ registeredAction: _angular_core.WritableSignal<NotificationActionDirective | null>;
1274
+ /** @internal */
1275
+ registeredDismiss: _angular_core.WritableSignal<NotificationDismissDirective | null>;
1276
+ constructor();
1277
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationDirective, never>;
1278
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NotificationDirective, "[etNotification]", ["etNotification"], { "ref": { "alias": "ref"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1279
+ }
1280
+
1281
+ declare const NOTIFICATION_STATUS: {
1282
+ readonly LOADING: "loading";
1283
+ readonly SUCCESS: "success";
1284
+ readonly ERROR: "error";
1285
+ readonly INFO: "info";
1286
+ };
1287
+ type NotificationStatus = (typeof NOTIFICATION_STATUS)[keyof typeof NOTIFICATION_STATUS];
1288
+ type NotificationAction = {
1289
+ label: string;
1290
+ handler: () => void;
1291
+ };
1292
+ type NotificationConfig = {
1293
+ status: NotificationStatus;
1294
+ title: string;
1295
+ message?: string;
1296
+ action?: NotificationAction;
1297
+ /**
1298
+ * Auto-dismiss duration in milliseconds.
1299
+ * `0` or `undefined` uses the manager's `defaultDuration` for the current status.
1300
+ * Set explicitly to override the default (e.g. `duration: 0` to prevent auto-dismiss
1301
+ * for a status that defaults to non-zero).
1302
+ */
1303
+ duration?: number;
1304
+ /** Optional progress value (0–100). When set, a progress bar is shown below the notification body. */
1305
+ progress?: number;
1306
+ };
1307
+ type NotificationManagerConfig = {
1308
+ /** Position of the notification stack on screen. @default 'bottom-end' */
1309
+ position: 'bottom-center' | 'bottom-start' | 'bottom-end' | 'top-center' | 'top-start' | 'top-end';
1310
+ /** Maximum number of simultaneously visible notifications. @default 3 */
1311
+ maxVisible: number;
1312
+ /**
1313
+ * Default auto-dismiss duration (ms) per status.
1314
+ * `0` means no auto-dismiss.
1315
+ * @default `{ success: 4000, info: 4000, loading: 0, error: 0 }`
1316
+ */
1317
+ defaultDuration: Partial<Record<NotificationStatus, number>>;
1318
+ /**
1319
+ * Maps each notification status to a color key used by `ProvideColorDirective`.
1320
+ * When set, the notification host element receives the corresponding color class
1321
+ * so that `et-button` and other colored components render correctly inside the notification.
1322
+ */
1323
+ statusColorMapping?: Partial<Record<NotificationStatus, string>>;
1324
+ /**
1325
+ * Color key applied to control elements (e.g. the dismiss button).
1326
+ * Uses the notification's status color when not set.
1327
+ */
1328
+ controlsColor?: string;
1329
+ /**
1330
+ * Accessible label for the dismiss button.
1331
+ * @default 'Dismiss'
1332
+ */
1333
+ dismissLabel: string;
1334
+ };
1335
+ declare const DEFAULT_NOTIFICATION_MANAGER_CONFIG: NotificationManagerConfig;
1336
+ declare const provideNotificationManagerConfig: (valueOverride?: Partial<NotificationManagerConfig> | undefined) => _angular_core.Provider[];
1337
+ declare const injectNotificationManagerConfig: {
1338
+ (): NotificationManagerConfig;
1339
+ (options: _angular_core.InjectOptions & {
1340
+ optional?: false;
1341
+ }): NotificationManagerConfig;
1342
+ (options: _angular_core.InjectOptions): NotificationManagerConfig | null;
1343
+ };
1344
+
1345
+ declare const NOTIFICATION_ERROR_CODES: {
1346
+ readonly ACTION_OUTSIDE_NOTIFICATION: 1700;
1347
+ readonly DISMISS_OUTSIDE_NOTIFICATION: 1701;
1348
+ };
1349
+
1350
+ type NotificationEntry = {
1351
+ id: string;
1352
+ config: NotificationConfig;
1353
+ isDismissing: boolean;
1354
+ isDismissed: boolean;
1355
+ };
1356
+ declare const createNotificationRef: (config: NotificationConfig, { managerConfig, beforeChange }: {
1357
+ managerConfig: NotificationManagerConfig;
1358
+ beforeChange?: () => void;
1359
+ }) => {
1360
+ id: string;
1361
+ entry: _angular_core.Signal<NotificationEntry>;
1362
+ update: (partial: Partial<NotificationConfig>) => void;
1363
+ dismiss: () => void;
1364
+ pauseTimer: () => void;
1365
+ resumeTimer: () => void;
1366
+ afterDismissed: () => rxjs.Observable<void>;
1367
+ markDismissed: () => void;
1368
+ };
1369
+ type NotificationRef = ReturnType<typeof createNotificationRef>;
1370
+
1371
+ type NotificationManager = {
1372
+ open: (config: NotificationConfig) => NotificationRef;
1373
+ dismissAll: () => void;
1374
+ notifications: Signal<NotificationRef[]>;
1375
+ visibleNotifications: Signal<NotificationRef[]>;
1376
+ };
1377
+ declare const provideNotificationManagerInstance: () => _angular_core.Provider[];
1378
+ declare const injectNotificationManager: {
1379
+ (): NotificationManager;
1380
+ (options: _angular_core.InjectOptions & {
1381
+ optional?: false;
1382
+ }): NotificationManager;
1383
+ (options: _angular_core.InjectOptions): NotificationManager | null;
1384
+ };
1385
+ declare const provideNotificationManager: (config?: Partial<NotificationManagerConfig>) => _angular_core.Provider[];
1386
+
1387
+ type NotificationStackContext = {
1388
+ visibleNotifications: Signal<NotificationRef[]>;
1389
+ position: NotificationManagerConfig['position'];
1390
+ /** @internal Set by the stack component. Called by the manager before any mutation. */
1391
+ captureBeforeState: (() => void) | null;
1392
+ };
1393
+ declare const NOTIFICATION_STACK_CONTEXT_TOKEN: InjectionToken<NotificationStackContext>;
1394
+
1395
+ declare class NotificationComponent {
1396
+ protected notification: NotificationDirective;
1397
+ private animatedLifecycle;
1398
+ private provideTheme;
1399
+ private provideSurface;
1400
+ private managerConfig;
1401
+ private surfaceThemes;
1402
+ private surfaceContextTracker;
1403
+ private resolvedColor;
1404
+ private resolvedSurface;
1405
+ protected controlsColor: _angular_core.Signal<string | null>;
1406
+ protected dismissLabel: _angular_core.Signal<string>;
1407
+ constructor();
1408
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationComponent, never>;
1409
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotificationComponent, "et-notification", never, {}, {}, never, never, true, [{ directive: typeof NotificationDirective; inputs: { "ref": "ref"; }; outputs: {}; }, { directive: typeof _ethlete_core.AnimatedLifecycleDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }]>;
1410
+ }
1411
+
1412
+ declare const NOTIFICATION_IMPORTS: readonly [typeof NotificationComponent, typeof NotificationDirective, typeof NotificationActionDirective, typeof NotificationDismissDirective];
1413
+
1414
+ declare class OverlayAnchorDirective {
1415
+ private overlay;
1416
+ private destroyRef;
1417
+ elementRef: ElementRef<HTMLElement>;
1418
+ constructor();
1419
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayAnchorDirective, never>;
1420
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayAnchorDirective, "[etOverlayAnchor]", ["etOverlayAnchor"], {}, {}, never, never, true, never>;
1421
+ }
1422
+
1423
+ type OverlayAutoFocusTarget = 'container' | 'first-heading' | 'first-tabbable';
1424
+ type OverlayRole = 'dialog' | 'alertdialog';
1425
+ type OverlayMode = 'modal' | 'non-modal';
1426
+ type OverlayPositionStrategy = OverlayRuntimePositionStrategy;
1427
+ type OverlayConfig = {
1428
+ viewContainerRef?: ViewContainerRef;
1429
+ injector?: Injector;
1430
+ id?: string;
1431
+ origin?: HTMLElement;
1432
+ role?: OverlayRole;
1433
+ positionStrategy?: OverlayPositionStrategy;
1434
+ hasBackdrop?: boolean;
1435
+ disableClose?: boolean;
1436
+ inputBindings?: Record<string, unknown>;
1437
+ ariaDescribedBy?: string | null;
1438
+ ariaLabelledBy?: string | null;
1439
+ ariaLabel?: string | null;
1440
+ autoFocus?: OverlayAutoFocusTarget | string | false;
1441
+ restoreFocus?: boolean;
1442
+ providers?: StaticProvider[];
1443
+ hostClass?: string | string[];
1444
+ backdropClass?: string | string[];
1445
+ panelClass?: string | string[];
1446
+ mode?: OverlayMode;
1447
+ closeOnOutsidePointer?: boolean;
1448
+ closeOnEscape?: boolean;
1449
+ };
1450
+
1451
+ declare const createOverlayRef: <TComponent extends object, TResult = unknown>(config: OverlayConfig) => {
1452
+ readonly id: string;
1453
+ config: OverlayConfig;
1454
+ readonly componentInstance: TComponent | null;
1455
+ close(result?: TResult): void;
1456
+ afterOpened(): Observable<void>;
1457
+ beforeClosed(): Observable<TResult | undefined>;
1458
+ afterClosed(): Observable<TResult | undefined>;
1459
+ attachRuntime(runtimeRef: OverlayRuntimeRef<TComponent, TResult>): void;
1460
+ };
1461
+ type OverlayRef<TComponent extends object = object, TResult = unknown> = ReturnType<typeof createOverlayRef<TComponent, TResult>>;
1462
+ declare const OVERLAY_REF: InjectionToken<{
1463
+ readonly id: string;
1464
+ config: OverlayConfig;
1465
+ readonly componentInstance: object | null;
1466
+ close(result?: unknown): void;
1467
+ afterOpened(): Observable<void>;
1468
+ beforeClosed(): Observable<unknown>;
1469
+ afterClosed(): Observable<unknown>;
1470
+ attachRuntime(runtimeRef: OverlayRuntimeRef<object, unknown>): void;
1471
+ }>;
1472
+
1473
+ declare class OverlayTemplateHostComponent {
1474
+ private animatedLifecycleInstance;
1475
+ protected template: _angular_core.InputSignal<TemplateRef<OverlaySurfaceContext>>;
1476
+ protected context: _angular_core.InputSignal<OverlaySurfaceContext>;
1477
+ animatedLifecycle: _angular_core.WritableSignal<AnimatedLifecycleDirective>;
1478
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayTemplateHostComponent, never>;
1479
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayTemplateHostComponent, "et-overlay-template-host", never, { "template": { "alias": "template"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.AnimatedLifecycleDirective; inputs: {}; outputs: {}; }]>;
1480
+ }
1481
+
1482
+ declare class OverlayTriggerDirective {
1483
+ private overlay;
1484
+ private destroyRef;
1485
+ elementRef: ElementRef<HTMLElement>;
1486
+ constructor();
1487
+ toggle(): void;
1488
+ isOpen(): boolean;
1489
+ expanded(): boolean | null;
1490
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayTriggerDirective, never>;
1491
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayTriggerDirective, "[etOverlayTrigger]", ["etOverlayTrigger"], {}, {}, never, never, true, never>;
1492
+ }
1493
+
1494
+ declare class OverlayDirective {
1495
+ private destroyRef;
1496
+ mode: _angular_core.InputSignal<OverlayMode>;
1497
+ role: _angular_core.InputSignal<OverlayRole | undefined>;
1498
+ open: _angular_core.ModelSignal<boolean>;
1499
+ disabled: _angular_core.InputSignal<boolean>;
1500
+ disableClose: _angular_core.InputSignal<boolean>;
1501
+ autoFocus: _angular_core.InputSignal<string | false | undefined>;
1502
+ restoreFocus: _angular_core.InputSignal<boolean>;
1503
+ hasBackdrop: _angular_core.InputSignal<boolean | undefined>;
1504
+ closeOnEscape: _angular_core.InputSignal<boolean>;
1505
+ closeOnOutsidePointer: _angular_core.InputSignal<boolean>;
1506
+ hostClass: _angular_core.InputSignal<string | string[] | undefined>;
1507
+ backdropClass: _angular_core.InputSignal<string | string[] | undefined>;
1508
+ panelClass: _angular_core.InputSignal<string | string[] | undefined>;
1509
+ placement: _angular_core.InputSignal<Placement>;
1510
+ fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
1511
+ offset: _angular_core.InputSignal<OffsetOptions | null>;
1512
+ viewportPadding: _angular_core.InputSignal<Padding | null>;
1513
+ autoResize: _angular_core.InputSignal<boolean>;
1514
+ shift: _angular_core.InputSignal<boolean>;
1515
+ autoHide: _angular_core.InputSignal<boolean>;
1516
+ autoCloseIfReferenceHidden: _angular_core.InputSignal<boolean>;
1517
+ mirrorWidth: _angular_core.InputSignal<boolean>;
1518
+ private overlayManager;
1519
+ /** @internal */
1520
+ registeredAnchor: _angular_core.WritableSignal<OverlayAnchorDirective | null>;
1521
+ /** @internal */
1522
+ registeredSurface: _angular_core.WritableSignal<OverlaySurfaceDirective | null>;
1523
+ /** @internal */
1524
+ registeredTrigger: _angular_core.WritableSignal<OverlayTriggerDirective | null>;
1525
+ /** @internal */
1526
+ overlayRef: _angular_core.WritableSignal<OverlayRef<OverlayTemplateHostComponent, unknown> | null>;
1527
+ isMounted: _angular_core.Signal<boolean>;
1528
+ private originElement;
1529
+ constructor();
1530
+ show(): void;
1531
+ hide(result?: unknown): void;
1532
+ toggle(): void;
1533
+ /** @internal */
1534
+ unregisterTrigger(trigger: OverlayTriggerDirective): void;
1535
+ /** @internal */
1536
+ unregisterAnchor(anchor: OverlayAnchorDirective): void;
1537
+ /** @internal */
1538
+ unregisterSurface(surface: OverlaySurfaceDirective): void;
1539
+ private mountOverlay;
1540
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayDirective, never>;
1541
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlayDirective, "[etOverlay]", ["etOverlay"], { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnOutsidePointer": { "alias": "closeOnOutsidePointer"; "required": false; "isSignal": true; }; "hostClass": { "alias": "hostClass"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "autoHide": { "alias": "autoHide"; "required": false; "isSignal": true; }; "autoCloseIfReferenceHidden": { "alias": "autoCloseIfReferenceHidden"; "required": false; "isSignal": true; }; "mirrorWidth": { "alias": "mirrorWidth"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
1542
+ }
1543
+
1544
+ type OverlaySurfaceContext = {
1545
+ $implicit: OverlayDirective;
1546
+ overlay: OverlayDirective;
1547
+ close: (result?: unknown) => void;
1548
+ };
1549
+ declare class OverlaySurfaceDirective {
1550
+ private overlay;
1551
+ templateRef: TemplateRef<OverlaySurfaceContext>;
1552
+ private destroyRef;
1553
+ constructor();
1554
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlaySurfaceDirective, never>;
1555
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverlaySurfaceDirective, "ng-template[etOverlaySurface]", ["etOverlaySurface"], {}, {}, never, never, true, never>;
1556
+ }
1557
+
1558
+ declare const OVERLAY_ERROR_CODES: {
1559
+ readonly MISSING_OVERLAY_SURFACE: 1200;
1560
+ readonly TRIGGER_OUTSIDE_OVERLAY: 1201;
1561
+ readonly ANCHOR_OUTSIDE_OVERLAY: 1202;
1562
+ readonly SURFACE_OUTSIDE_OVERLAY: 1203;
1563
+ };
1564
+
1565
+ type OverlayManager = {
1566
+ open: <TComponent extends object, TResult = unknown>(component: Type<TComponent>, config?: OverlayConfig) => OverlayRef<TComponent, TResult>;
1567
+ openOverlays: ReturnType<typeof computed<OverlayRef<object, unknown>[]>>;
1568
+ };
1569
+ declare const provideOverlayManager: () => _angular_core.Provider[];
1570
+ declare const injectOverlayManager: {
1571
+ (): OverlayManager;
1572
+ (options: _angular_core.InjectOptions & {
1573
+ optional?: false;
1574
+ }): OverlayManager;
1575
+ (options: _angular_core.InjectOptions): OverlayManager | null;
1576
+ };
1577
+
1578
+ declare const OVERLAY_IMPORTS: readonly [typeof OverlayDirective, typeof OverlayTriggerDirective, typeof OverlayAnchorDirective, typeof OverlaySurfaceDirective];
1579
+
1580
+ declare class ScrollableActiveChildDirective {
1581
+ private scrollable;
1582
+ private destroyRef;
1583
+ private elementRef;
1584
+ isActiveChildEnabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
1585
+ private isActiveChildEnabledSignal;
1586
+ constructor();
1587
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableActiveChildDirective, never>;
1588
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableActiveChildDirective, "[etScrollableActiveChild]", never, { "isActiveChildEnabled": { "alias": "etScrollableActiveChild"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1589
+ }
1590
+
1591
+ declare const SCROLLABLE_SCROLL_MODES: {
1592
+ readonly CONTAINER: "container";
1593
+ readonly ELEMENT: "element";
1594
+ };
1595
+ type ScrollableScrollMode = (typeof SCROLLABLE_SCROLL_MODES)[keyof typeof SCROLLABLE_SCROLL_MODES];
1596
+ declare const SCROLLABLE_DIRECTIONS: {
1597
+ readonly HORIZONTAL: "horizontal";
1598
+ readonly VERTICAL: "vertical";
1599
+ };
1600
+ type ScrollableDirection = (typeof SCROLLABLE_DIRECTIONS)[keyof typeof SCROLLABLE_DIRECTIONS];
1601
+ declare const SCROLLABLE_ITEM_SIZES: {
1602
+ readonly AUTO: "auto";
1603
+ readonly SAME: "same";
1604
+ readonly HALF: "half";
1605
+ readonly THIRD: "third";
1606
+ readonly QUARTER: "quarter";
1607
+ readonly FULL: "full";
1608
+ };
1609
+ type ScrollableItemSize = (typeof SCROLLABLE_ITEM_SIZES)[keyof typeof SCROLLABLE_ITEM_SIZES];
1610
+ declare const SCROLLABLE_SCROLL_ORIGINS: {
1611
+ readonly AUTO: "auto";
1612
+ readonly CENTER: "center";
1613
+ readonly START: "start";
1614
+ readonly END: "end";
1615
+ };
1616
+ type ScrollableScrollOrigin = (typeof SCROLLABLE_SCROLL_ORIGINS)[keyof typeof SCROLLABLE_SCROLL_ORIGINS];
1617
+ declare const SCROLLABLE_BUTTON_POSITIONS: {
1618
+ readonly INSIDE: "inside";
1619
+ readonly FOOTER: "footer";
1620
+ };
1621
+ type ScrollableButtonPosition = (typeof SCROLLABLE_BUTTON_POSITIONS)[keyof typeof SCROLLABLE_BUTTON_POSITIONS];
1622
+ declare const SCROLLABLE_MASK_VARIANTS: {
1623
+ readonly GRADIENT: "gradient";
1624
+ readonly BORDER: "border";
1625
+ };
1626
+ type ScrollableMaskVariant = (typeof SCROLLABLE_MASK_VARIANTS)[keyof typeof SCROLLABLE_MASK_VARIANTS];
1627
+ declare const SCROLLABLE_LOADING_TEMPLATE_POSITIONS: {
1628
+ readonly START: "start";
1629
+ readonly END: "end";
1630
+ };
1631
+ type ScrollableLoadingTemplatePosition = (typeof SCROLLABLE_LOADING_TEMPLATE_POSITIONS)[keyof typeof SCROLLABLE_LOADING_TEMPLATE_POSITIONS];
1632
+ type ScrollableIntersectionChange = {
1633
+ element: HTMLElement;
1634
+ intersectionRatio: number;
1635
+ isIntersecting: boolean;
1636
+ index: number;
1637
+ };
1638
+ type ScrollableScrollState = {
1639
+ isAtStart: boolean;
1640
+ isAtEnd: boolean;
1641
+ canScroll: boolean;
1642
+ };
1643
+ type ScrollableNavigationItem = {
1644
+ isActive: boolean;
1645
+ activeOffset: number;
1646
+ element: HTMLElement;
1647
+ };
1648
+ type ScrollableNavigation = {
1649
+ items: ScrollableNavigationItem[];
1650
+ activeIndex: number;
1651
+ };
1652
+
1653
+ declare class ScrollableDirective {
1654
+ itemSize: _angular_core.InputSignalWithTransform<ScrollableItemSize, _ethlete_core.BreakpointInput<ScrollableItemSize>>;
1655
+ direction: _angular_core.InputSignalWithTransform<ScrollableDirection, _ethlete_core.BreakpointInput<ScrollableDirection>>;
1656
+ scrollMode: _angular_core.InputSignalWithTransform<ScrollableScrollMode, _ethlete_core.BreakpointInput<ScrollableScrollMode>>;
1657
+ scrollOrigin: _angular_core.InputSignal<ScrollableScrollOrigin>;
1658
+ scrollMargin: _angular_core.InputSignalWithTransform<number, unknown>;
1659
+ renderScrollbars: _angular_core.InputSignal<boolean>;
1660
+ /** @internal */
1661
+ scrollContainerRef: _angular_core.WritableSignal<ElementRef<HTMLElement> | null>;
1662
+ private childIntersectionsActivated;
1663
+ private allScrollableChildren;
1664
+ scrollableChildren: Signal<HTMLElement[]>;
1665
+ /** @internal */
1666
+ scrollObserverRef: _angular_core.WritableSignal<ScrollObserverDirective | null>;
1667
+ containerScrollState: Signal<_ethlete_core.ElementScrollState>;
1668
+ isAtStart: Signal<boolean>;
1669
+ isAtEnd: Signal<boolean>;
1670
+ canScroll: Signal<boolean>;
1671
+ childIntersections: Signal<_ethlete_core.IntersectionObserverEntryWithDetails[]>;
1672
+ scrollableDimensions: Signal<_ethlete_core.NullableElementDimensions>;
1673
+ private activeChildren;
1674
+ /** @internal */
1675
+ loadingTemplateRef: _angular_core.WritableSignal<ScrollableLoadingTemplateRef | null>;
1676
+ loadingTemplate: Signal<ScrollableLoadingTemplateRef | null>;
1677
+ /** @internal */
1678
+ masksDirective: _angular_core.WritableSignal<unknown>;
1679
+ /** @internal */
1680
+ buttonsDirective: _angular_core.WritableSignal<unknown>;
1681
+ /** @internal */
1682
+ navigationDirective: _angular_core.WritableSignal<unknown>;
1683
+ /** @internal */
1684
+ snapDirective: _angular_core.WritableSignal<unknown>;
1685
+ /** @internal */
1686
+ dragDirective: _angular_core.WritableSignal<unknown>;
1687
+ /** @internal */
1688
+ darkenDirective: _angular_core.WritableSignal<unknown>;
1689
+ /** @internal */
1690
+ hostAttributeBindings: {
1691
+ remove: (tokens: string) => void;
1692
+ removeMany: (tokens: string[]) => void;
1693
+ has: (tokens: string) => boolean;
1694
+ push: (tokens: string, signal: Signal<unknown>) => void;
1695
+ pushMany: (map: Record<string, Signal<unknown>>) => void;
1696
+ };
1697
+ /** @internal */
1698
+ hostClassBindings: {
1699
+ remove: (tokens: string) => void;
1700
+ removeMany: (tokens: string[]) => void;
1701
+ has: (tokens: string) => boolean;
1702
+ push: (tokens: string, signal: Signal<unknown>) => void;
1703
+ pushMany: (map: Record<string, Signal<unknown>>) => void;
1704
+ };
1705
+ gapValue: Signal<string | null>;
1706
+ /** @internal */
1707
+ hostStyleBindings: {
1708
+ remove: (tokens: string) => void;
1709
+ removeMany: (tokens: string[]) => void;
1710
+ has: (tokens: string) => boolean;
1711
+ push: (tokens: string, signal: Signal<unknown>) => void;
1712
+ pushMany: (map: Record<string, Signal<unknown>>) => void;
1713
+ };
1714
+ constructor();
1715
+ /** @internal */
1716
+ unregisterActiveChild(child: ScrollableActiveChildRef): void;
1717
+ activateChildIntersections(): void;
1718
+ scrollOneContainerSize(scrollDirection: 'start' | 'end'): void;
1719
+ scrollOneItemSize(scrollDirection: 'start' | 'end'): void;
1720
+ getElementScrollCoordinates(options: Omit<ScrollToElementOptions, 'container'> & {
1721
+ ignoreForcedOrigin?: boolean;
1722
+ }): ScrollToOptions;
1723
+ scrollToElement(options: Omit<ScrollToElementOptions, 'container'> & {
1724
+ ignoreForcedOrigin?: boolean;
1725
+ }): void;
1726
+ scrollToElementByIndex(options: Omit<ScrollToElementOptions, 'container'> & {
1727
+ index: number;
1728
+ ignoreForcedOrigin?: boolean;
1729
+ }): void;
1730
+ scrollToStartDirection(): void;
1731
+ scrollToEndDirection(): void;
1732
+ getActiveChildren(): Signal<ScrollableActiveChildRef[]>;
1733
+ getScrollContainerRef(): Signal<ElementRef<HTMLElement> | null>;
1734
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableDirective, never>;
1735
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableDirective, "[etScrollable]", ["etScrollable"], { "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "scrollMode": { "alias": "scrollMode"; "required": false; "isSignal": true; }; "scrollOrigin": { "alias": "scrollOrigin"; "required": false; "isSignal": true; }; "scrollMargin": { "alias": "scrollMargin"; "required": false; "isSignal": true; }; "renderScrollbars": { "alias": "renderScrollbars"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1736
+ }
1737
+ type ScrollableActiveChildRef = {
1738
+ elementRef: ElementRef<HTMLElement>;
1739
+ isActiveChildEnabled: Signal<boolean>;
1740
+ };
1741
+ type ScrollableLoadingTemplateRef = {
1742
+ templateRef: TemplateRef<unknown>;
1743
+ repeat: Signal<unknown[]>;
1744
+ };
1745
+
1746
+ declare class ScrollableButtonsDirective {
1747
+ protected scrollable: ScrollableDirective;
1748
+ position: _angular_core.InputSignal<ScrollableButtonPosition>;
1749
+ constructor();
1750
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableButtonsDirective, never>;
1751
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollableButtonsDirective, "et-scrollable-buttons, [et-scrollable-buttons]", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1752
+ }
1753
+
1754
+ declare class ScrollableDarkenDirective {
1755
+ private scrollable;
1756
+ private nonFullIntersecting;
1757
+ /** @internal */
1758
+ nonFullIntersectingClassBindings: {
1759
+ remove: (tokens: string) => void;
1760
+ removeMany: (tokens: string[]) => void;
1761
+ has: (tokens: string) => boolean;
1762
+ push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
1763
+ pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
1764
+ };
1765
+ constructor();
1766
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableDarkenDirective, never>;
1767
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableDarkenDirective, "[etScrollableDarken]", never, {}, {}, never, never, true, never>;
1768
+ }
1769
+
1770
+ declare class ScrollableDragDirective {
1771
+ private scrollable;
1772
+ enabled: _angular_core.InputSignal<boolean>;
1773
+ cursorDragScrollState: {
1774
+ isDragging: _angular_core.Signal<boolean>;
1775
+ currentDragAmount: _angular_core.Signal<{
1776
+ x: number;
1777
+ y: number;
1778
+ }>;
1779
+ };
1780
+ constructor();
1781
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableDragDirective, never>;
1782
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableDragDirective, "[etScrollableDrag]", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1783
+ }
1784
+
1785
+ declare const ScrollableErrorCode: {
1786
+ readonly MISSING_SCROLL_CONTAINER: 1800;
1787
+ };
1788
+
1789
+ declare class ScrollableIgnoreChildDirective {
1790
+ enabled: _angular_core.InputSignal<boolean>;
1791
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableIgnoreChildDirective, never>;
1792
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableIgnoreChildDirective, "[etScrollableIgnoreChild]", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1793
+ }
1794
+
1795
+ declare class ScrollableLoadingTemplateDirective {
1796
+ private scrollable;
1797
+ private templateRef;
1798
+ repeatContentCount: _angular_core.InputSignalWithTransform<number, unknown>;
1799
+ repeat: _angular_core.Signal<unknown[]>;
1800
+ constructor();
1801
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableLoadingTemplateDirective, never>;
1802
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableLoadingTemplateDirective, "ng-template[etScrollableLoadingTemplate]", never, { "repeatContentCount": { "alias": "repeatContentCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1803
+ }
1804
+
1805
+ declare class ScrollableMasksDirective {
1806
+ private scrollable;
1807
+ constructor();
1808
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableMasksDirective, never>;
1809
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollableMasksDirective, "et-scrollable-masks, [et-scrollable-masks]", never, {}, {}, never, never, true, never>;
1810
+ }
1811
+
1812
+ declare class ScrollableNavigationDirective {
1813
+ protected scrollable: ScrollableDirective;
1814
+ private navigationDotsContainer;
1815
+ private firstNavigationDot;
1816
+ private navigationDotDimensions;
1817
+ private manualActiveNavigationIndex;
1818
+ navigation: _angular_core.Signal<ScrollableNavigation>;
1819
+ activeIndex: _angular_core.Signal<number>;
1820
+ /** @internal */
1821
+ dotsContainerStyleBindings: {
1822
+ remove: (tokens: string) => void;
1823
+ removeMany: (tokens: string[]) => void;
1824
+ has: (tokens: string) => boolean;
1825
+ push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
1826
+ pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
1827
+ };
1828
+ constructor();
1829
+ scrollToElementViaNavigation(elementIndex: number): void;
1830
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableNavigationDirective, never>;
1831
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollableNavigationDirective, "et-scrollable-navigation, [et-scrollable-navigation]", never, {}, {}, never, never, true, never>;
1832
+ }
1833
+
1834
+ declare class ScrollableSnapDirective {
1835
+ private scrollable;
1836
+ enabled: _angular_core.InputSignal<boolean>;
1837
+ snapOrigin: _angular_core.InputSignal<ScrollableScrollOrigin>;
1838
+ constructor();
1839
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableSnapDirective, never>;
1840
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableSnapDirective, "[etScrollableSnap]", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; "snapOrigin": { "alias": "snapOrigin"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1841
+ }
1842
+
1843
+ declare class ScrollableComponent {
1844
+ scrollableDir: ScrollableDirective;
1845
+ renderMasks: _angular_core.InputSignal<boolean>;
1846
+ maskVariant: _angular_core.InputSignal<ScrollableMaskVariant>;
1847
+ renderButtons: _angular_core.InputSignal<boolean>;
1848
+ buttonPosition: _angular_core.InputSignal<ScrollableButtonPosition>;
1849
+ renderNavigation: _angular_core.InputSignal<boolean>;
1850
+ snap: _angular_core.InputSignal<boolean>;
1851
+ cursorDragScroll: _angular_core.InputSignal<boolean>;
1852
+ darkenNonIntersectingItems: _angular_core.InputSignal<boolean>;
1853
+ stickyButtons: _angular_core.InputSignal<boolean>;
1854
+ showLoadingTemplate: _angular_core.InputSignal<boolean>;
1855
+ loadingTemplatePosition: _angular_core.InputSignal<ScrollableLoadingTemplatePosition>;
1856
+ scrollableRole: _angular_core.InputSignal<string | null>;
1857
+ scrollableClass: _angular_core.InputSignal<string | null>;
1858
+ intersectionChange: _angular_core.OutputRef<ScrollableIntersectionChange[]>;
1859
+ scrollStateChange: _angular_core.OutputRef<ScrollableScrollState>;
1860
+ private scrollContainerEl;
1861
+ private scrollObserver;
1862
+ renderButtonsInside: _angular_core.Signal<boolean>;
1863
+ renderButtonsInFooter: _angular_core.Signal<boolean>;
1864
+ canAnimate: {
1865
+ state: _angular_core.Signal<boolean>;
1866
+ };
1867
+ constructor();
1868
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableComponent, never>;
1869
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollableComponent, "et-scrollable", never, { "renderMasks": { "alias": "renderMasks"; "required": false; "isSignal": true; }; "maskVariant": { "alias": "maskVariant"; "required": false; "isSignal": true; }; "renderButtons": { "alias": "renderButtons"; "required": false; "isSignal": true; }; "buttonPosition": { "alias": "buttonPosition"; "required": false; "isSignal": true; }; "renderNavigation": { "alias": "renderNavigation"; "required": false; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; "cursorDragScroll": { "alias": "cursorDragScroll"; "required": false; "isSignal": true; }; "darkenNonIntersectingItems": { "alias": "darkenNonIntersectingItems"; "required": false; "isSignal": true; }; "stickyButtons": { "alias": "stickyButtons"; "required": false; "isSignal": true; }; "showLoadingTemplate": { "alias": "showLoadingTemplate"; "required": false; "isSignal": true; }; "loadingTemplatePosition": { "alias": "loadingTemplatePosition"; "required": false; "isSignal": true; }; "scrollableRole": { "alias": "scrollableRole"; "required": false; "isSignal": true; }; "scrollableClass": { "alias": "scrollableClass"; "required": false; "isSignal": true; }; }, { "intersectionChange": "intersectionChange"; "scrollStateChange": "scrollStateChange"; }, never, ["*"], true, [{ directive: typeof ScrollableDirective; inputs: { "itemSize": "itemSize"; "direction": "direction"; "scrollMode": "scrollMode"; "scrollOrigin": "scrollOrigin"; "scrollMargin": "scrollMargin"; "renderScrollbars": "renderScrollbars"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
1870
+ }
1871
+
1872
+ declare const SCROLLABLE_IMPORTS: readonly [typeof ScrollableComponent, typeof ScrollableActiveChildDirective, typeof ScrollableIgnoreChildDirective, typeof ScrollableLoadingTemplateDirective];
1873
+
1874
+ declare class StreamConsentAcceptDirective {
1875
+ protected consent: _ethlete_components.StreamConsentDirective;
1876
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamConsentAcceptDirective, never>;
1877
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StreamConsentAcceptDirective, "[etStreamConsentAccept]", never, {}, {}, never, never, true, never>;
1878
+ }
1879
+
1880
+ declare const STREAM_CONSENT_TOKEN: InjectionToken<StreamConsentDirective>;
1881
+ declare const STREAM_USER_CONSENT_PROVIDER_TOKEN: InjectionToken<ConsentHandler | null>;
1882
+ declare const injectStreamUserConsentProvider: () => ConsentHandler | null;
1883
+ declare class StreamConsentDirective {
1884
+ private handler;
1885
+ private localGranted;
1886
+ isGranted: _angular_core.Signal<boolean>;
1887
+ grant(): void;
1888
+ revoke(): void;
1889
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamConsentDirective, never>;
1890
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StreamConsentDirective, "[etStreamConsent]", never, {}, {}, never, never, true, never>;
1891
+ }
1892
+
1893
+ type StreamConsentConfig = {
1894
+ /** The heading displayed in the consent placeholder. */
1895
+ heading: string;
1896
+ /** The description text displayed below the heading. */
1897
+ description: string;
1898
+ /** The label for the accept button. */
1899
+ acceptLabel: string;
1900
+ /**
1901
+ * The color theme name to apply on the accept button.
1902
+ * When set, applies `[etProvideColor]` on the button element.
1903
+ */
1904
+ acceptButtonColor: string | null;
1905
+ /**
1906
+ * A function to transform text based on the current locale.
1907
+ * Use `provideLocale()` to update the locale dynamically.
1908
+ */
1909
+ transformer: (text: string, locale: string) => string;
1910
+ };
1911
+ declare const provideStreamConsentConfig: (valueOverride?: Partial<StreamConsentConfig> | undefined) => _angular_core.Provider[];
1912
+ declare const injectStreamConsentConfig: {
1913
+ (): StreamConsentConfig;
1914
+ (options: _angular_core.InjectOptions & {
1915
+ optional?: false;
1916
+ }): StreamConsentConfig;
1917
+ (options: _angular_core.InjectOptions): StreamConsentConfig | null;
1918
+ };
1919
+
1920
+ declare class StreamConsentComponent {
1921
+ private parentSurfaceProvider;
1922
+ private config;
1923
+ private locale;
1924
+ private surfaceThemes;
1925
+ cardSurface: _angular_core.Signal<string | null>;
1926
+ heading: _angular_core.Signal<string>;
1927
+ description: _angular_core.Signal<string>;
1928
+ acceptLabel: _angular_core.Signal<string>;
1929
+ acceptButtonColor: _angular_core.Signal<string | null>;
1930
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamConsentComponent, never>;
1931
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StreamConsentComponent, "et-stream-consent", never, {}, {}, never, never, true, [{ directive: typeof StreamConsentDirective; inputs: {}; outputs: {}; }]>;
1932
+ }
1933
+
1934
+ type StreamPlayerErrorContext = {
1935
+ readonly error: Signal<unknown>;
1936
+ retry(): void;
1937
+ };
1938
+ declare const STREAM_PLAYER_ERROR_CONTEXT_TOKEN: InjectionToken<StreamPlayerErrorContext>;
1939
+ declare const STREAM_PLAYER_ERROR_TOKEN: InjectionToken<StreamPlayerErrorDirective>;
1940
+ declare class StreamPlayerErrorDirective {
1941
+ context: StreamPlayerErrorContext;
1942
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamPlayerErrorDirective, never>;
1943
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StreamPlayerErrorDirective, "[etStreamPlayerError]", never, {}, {}, never, never, true, never>;
1944
+ }
1945
+
1946
+ type StreamPlayerErrorConfig = {
1947
+ /** The heading displayed in the error overlay. */
1948
+ heading: string;
1949
+ /** The description text displayed below the heading. */
1950
+ description: string;
1951
+ /** The label for the retry button. */
1952
+ retryLabel: string;
1953
+ /**
1954
+ * The color theme name to apply on the retry button.
1955
+ * When set, applies `[color]` on the button element.
1956
+ */
1957
+ retryButtonColor: string | null;
1958
+ /**
1959
+ * A function to transform text based on the current locale.
1960
+ * Use `provideLocale()` to update the locale dynamically.
1961
+ */
1962
+ transformer: (text: string, locale: string) => string;
1963
+ };
1964
+ declare const provideStreamPlayerErrorConfig: (valueOverride?: Partial<StreamPlayerErrorConfig> | undefined) => _angular_core.Provider[];
1965
+ declare const injectStreamPlayerErrorConfig: {
1966
+ (): StreamPlayerErrorConfig;
1967
+ (options: _angular_core.InjectOptions & {
1968
+ optional?: false;
1969
+ }): StreamPlayerErrorConfig;
1970
+ (options: _angular_core.InjectOptions): StreamPlayerErrorConfig | null;
1971
+ };
1972
+
1973
+ declare class StreamPlayerErrorComponent {
1974
+ private errorDirective;
1975
+ private parentSurfaceProvider;
1976
+ private config;
1977
+ private locale;
1978
+ private surfaceThemes;
1979
+ cardSurface: _angular_core.Signal<string | null>;
1980
+ heading: _angular_core.Signal<string>;
1981
+ description: _angular_core.Signal<string>;
1982
+ retryLabel: _angular_core.Signal<string>;
1983
+ retryButtonColor: _angular_core.Signal<string | null>;
1984
+ retry(): void;
1985
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamPlayerErrorComponent, never>;
1986
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StreamPlayerErrorComponent, "et-stream-player-error", never, {}, {}, never, never, true, [{ directive: typeof StreamPlayerErrorDirective; inputs: {}; outputs: {}; }]>;
1987
+ }
1988
+
1989
+ type StreamPlayerLoadingConfig = {
1990
+ /** Diameter of the loading spinner in px. */
1991
+ spinnerDiameter: number;
1992
+ /** Stroke width of the loading spinner in px. */
1993
+ spinnerStrokeWidth: number;
1994
+ };
1995
+ declare const provideStreamPlayerLoadingConfig: (valueOverride?: Partial<StreamPlayerLoadingConfig> | undefined) => _angular_core.Provider[];
1996
+ declare const injectStreamPlayerLoadingConfig: {
1997
+ (): StreamPlayerLoadingConfig;
1998
+ (options: _angular_core.InjectOptions & {
1999
+ optional?: false;
2000
+ }): StreamPlayerLoadingConfig;
2001
+ (options: _angular_core.InjectOptions): StreamPlayerLoadingConfig | null;
2002
+ };
2003
+
2004
+ declare class StreamPlayerLoadingComponent {
2005
+ protected config: _ethlete_components.StreamPlayerLoadingConfig;
2006
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamPlayerLoadingComponent, never>;
2007
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StreamPlayerLoadingComponent, "et-stream-player-loading", never, {}, {}, never, never, true, never>;
2008
+ }
2009
+
2010
+ type StreamPipChromeConfig = {
2011
+ /**
2012
+ * Optional color key applied to built-in PiP titlebar controls.
2013
+ * Uses the button's neutral fallback styling when omitted.
2014
+ */
2015
+ controlsColor?: string;
2016
+ };
2017
+
2018
+ /**
2019
+ * Unique id for a stream player entry.
2020
+ * Convention: `'{platform}-{resourceId}'`, e.g. `'youtube-dQw4w9WgXcQ'`.
2021
+ */
2022
+ type StreamPlayerId = string;
2023
+ /**
2024
+ * Token provided by player-slot directives/components (e.g. `YoutubePlayerSlotDirective`).
2025
+ * Yields a reactive signal of the current player id the slot is bound to, or `null` when
2026
+ * the slot has not yet initialised. Consumed by `PipSlotPlaceholderComponent` to
2027
+ * auto-detect whether its hosting slot currently has its player in PIP mode.
2028
+ */
2029
+ declare const STREAM_SLOT_PLAYER_ID_TOKEN: InjectionToken<Signal<string | null>>;
2030
+ type StreamSlotEntry = {
2031
+ /**
2032
+ * The player id this slot wants to display (e.g. `'youtube-dQw4w9WgXcQ'`).
2033
+ * Multiple slots may share the same id — priority resolves which one is shown.
2034
+ */
2035
+ playerId: StreamPlayerId;
2036
+ /**
2037
+ * Whether this slot is considered high priority.
2038
+ * Among all slots registered for the same player id, `priority = true`
2039
+ * wins. If multiple high-priority slots exist, the last-registered wins.
2040
+ */
2041
+ priority: boolean;
2042
+ /**
2043
+ * The host element of the slot — used as the unique key in the manager.
2044
+ * The player element will be moved into this element when the slot is active.
2045
+ */
2046
+ element: HTMLElement;
2047
+ /**
2048
+ * Optional callback invoked when the user presses the "back" action inside the
2049
+ * PIP chrome while this slot's player is in PIP mode.
2050
+ */
2051
+ onPipBack?: () => void;
2052
+ };
2053
+ type StreamPlayerEntry = {
2054
+ /** The stream player id (e.g. `'youtube-dQw4w9WgXcQ'`). */
2055
+ id: StreamPlayerId;
2056
+ /** The live DOM element of the player (lives in the body container by default). */
2057
+ element: HTMLElement;
2058
+ /**
2059
+ * Called by the manager when the player is no longer needed (no slot claims it
2060
+ * and it is not in PIP mode). Use this to destroy the underlying component ref.
2061
+ */
2062
+ onDestroy?: () => void;
2063
+ /** Reactive thumbnail URL from the player, forwarded to PIP entries. */
2064
+ thumbnail?: Signal<string | null>;
2065
+ };
2066
+ type StreamPipEntry = {
2067
+ /** The player that is currently in PIP mode. */
2068
+ playerId: StreamPlayerId;
2069
+ /**
2070
+ * Optional callback invoked when the user presses the "back" action inside
2071
+ * the PIP chrome for this PIP entry.
2072
+ */
2073
+ onBack?: () => void;
2074
+ /** Reactive thumbnail URL for the player, used to render preview tiles. */
2075
+ thumbnail?: Signal<string | null>;
2076
+ /** The chrome component to use while this entry is active in PIP. */
2077
+ pipChromeComponent?: Type<unknown>;
2078
+ /** Appearance config for the active PIP chrome. */
2079
+ pipChromeConfig?: StreamPipChromeConfig;
2080
+ /**
2081
+ * The player's natural aspect ratio (width / height).
2082
+ * Used by the PIP chrome to resize the floating window and letterbox grid cells.
2083
+ * Defaults to `16 / 9` if not provided.
2084
+ */
2085
+ aspectRatio: number;
2086
+ };
2087
+ type StreamManager = {
2088
+ /** Returns true if at least one registered slot exists for the given player id. */
2089
+ hasSlotFor(playerId: StreamPlayerId): boolean;
2090
+ /**
2091
+ * Registers a stream player element with the manager. The element is appended
2092
+ * to the body-level manager container. If a slot is already waiting for this
2093
+ * player id, the player is immediately moved into it (FLIP-animated).
2094
+ */
2095
+ registerPlayer(entry: StreamPlayerEntry): void;
2096
+ /**
2097
+ * Unregisters a player and removes its element from the DOM.
2098
+ * Only call this when the player is not in PIP mode — PipManager handles
2099
+ * clean-up for orphaned players when PIP is closed.
2100
+ */
2101
+ unregisterPlayer(playerId: StreamPlayerId): void;
2102
+ /**
2103
+ * Registers a slot. If a player with a matching id already exists, it is
2104
+ * immediately moved into the best available slot (FLIP-animated).
2105
+ */
2106
+ registerSlot(entry: StreamSlotEntry): void;
2107
+ /**
2108
+ * Unregisters the slot identified by `element`. If the player was in this
2109
+ * slot and is not currently in PIP mode, it is moved to the next best slot
2110
+ * or fully unregistered when no slots remain. If the player IS in PIP mode,
2111
+ * it stays in PIP until deactivated.
2112
+ */
2113
+ unregisterSlot(element: HTMLElement): void;
2114
+ /**
2115
+ * Re-keys a player entry from `oldId` to `newId` without touching the DOM.
2116
+ * Use this when the video id changes on an existing slot (e.g. playlist navigation)
2117
+ * so the manager's internal tracking stays consistent.
2118
+ */
2119
+ transferPlayer(oldId: StreamPlayerId, newId: StreamPlayerId): void;
2120
+ /**
2121
+ * Returns the live DOM element for `playerId`, or `null` if the player is not
2122
+ * registered.
2123
+ */
2124
+ getPlayerElement(playerId: StreamPlayerId): HTMLElement | null;
2125
+ /**
2126
+ * Returns the full `StreamPlayerEntry` for `playerId`, or `null` if not
2127
+ * registered. Useful for reading `thumbnail` and other metadata.
2128
+ */
2129
+ getPlayerEntry(playerId: StreamPlayerId): StreamPlayerEntry | null;
2130
+ /**
2131
+ * Returns the `StreamSlotEntry` associated with `element`, or `null` if not
2132
+ * registered.
2133
+ */
2134
+ getSlot(element: HTMLElement): StreamSlotEntry | null;
2135
+ /**
2136
+ * Returns the highest-priority slot registered for `playerId`, or `null` if
2137
+ * none exists.
2138
+ */
2139
+ resolveBestSlot(playerId: StreamPlayerId): StreamSlotEntry | null;
2140
+ /**
2141
+ * Moves the player element into the manager's body container.
2142
+ * Used by PipManager for `pipActivate` and `parkPlayerElement`.
2143
+ */
2144
+ movePlayerToContainer(playerId: StreamPlayerId): void;
2145
+ /**
2146
+ * Marks the player as being in (or leaving) PIP mode. PipManager calls this
2147
+ * to keep the stream manager's internal routing decisions (e.g. `reassignPlayer`,
2148
+ * `unregisterSlot`) consistent with PIP state.
2149
+ */
2150
+ setPlayerInPip(playerId: StreamPlayerId, inPip: boolean): void;
2151
+ /** Returns `true` if the player is currently in PIP mode. */
2152
+ isPlayerInPip(playerId: StreamPlayerId): boolean;
2153
+ /**
2154
+ * Marks the player as currently running a PIP-exit animation so that
2155
+ * `reassignPlayer` does not interfere while the animation is in flight.
2156
+ */
2157
+ setPlayerAnimatingOut(playerId: StreamPlayerId, animating: boolean): void;
2158
+ };
2159
+ type PipManager = {
2160
+ /** Currently active PIP entries (one per player in PIP mode). */
2161
+ readonly pips: Signal<StreamPipEntry[]>;
2162
+ /** The chrome component to use for the currently active PIP chrome. */
2163
+ readonly pipChromeComponent: Signal<Type<unknown> | null>;
2164
+ /** Appearance config for the currently active PIP chrome. */
2165
+ readonly pipChromeConfig: Signal<StreamPipChromeConfig>;
2166
+ /**
2167
+ * The player id of the currently featured (visible) pip in single mode.
2168
+ * `null` when in grid mode or when no chrome is active.
2169
+ * Set by the chrome so that `pipDeactivate` can automatically choose
2170
+ * `scaleFadeIn` for non-featured pips instead of FLIP.
2171
+ */
2172
+ readonly featuredPipId: Signal<StreamPlayerId | null>;
2173
+ /**
2174
+ * Called by the chrome to keep `featuredPipId` in sync.
2175
+ * Pass `null` when switching to grid mode or when no pip is active.
2176
+ */
2177
+ setFeaturedPip(playerId: StreamPlayerId | null): void;
2178
+ /**
2179
+ * Increments each time `notifyBackPressed` is called. Useful for reactive
2180
+ * consumers (e.g. `viewChild` effects in slot placeholders) that need to
2181
+ * re-check `consumeBackPulse` without polling.
2182
+ */
2183
+ readonly backPulseCounter: Signal<number>;
2184
+ /**
2185
+ * Records that the user pressed the "back" button in the PIP chrome for this
2186
+ * player. The matching `etPipBringBack` button will consume this on its first
2187
+ * render and play an attention-pulse + scroll-into-view.
2188
+ */
2189
+ notifyBackPressed(playerId: StreamPlayerId): void;
2190
+ /**
2191
+ * Returns true (and clears the flag) if `notifyBackPressed` was called for this
2192
+ * player since the last consume. Used by `etPipBringBack` on init.
2193
+ */
2194
+ consumeBackPulse(playerId: StreamPlayerId): boolean;
2195
+ /**
2196
+ * Moves the player currently in the slot identified by `element` into the
2197
+ * body PIP container, activating PIP mode.
2198
+ */
2199
+ pipActivate(element: HTMLElement, options?: {
2200
+ onBack?: () => void;
2201
+ aspectRatio?: number;
2202
+ pipChromeComponent?: Type<unknown>;
2203
+ pipChromeConfig?: StreamPipChromeConfig;
2204
+ }): void;
2205
+ /**
2206
+ * Deactivates PIP for `playerId` and moves the player back to the best
2207
+ * available slot (highest priority / last registered). If no slot exists, the
2208
+ * player is fully unregistered.
2209
+ *
2210
+ * Pass `{ skipAnimation: true }` to skip the exit animation.
2211
+ */
2212
+ pipDeactivate(playerId: StreamPlayerId, options?: {
2213
+ skipAnimation?: boolean;
2214
+ animation?: 'flip' | 'scaleFadeIn';
2215
+ }): void;
2216
+ /**
2217
+ * Consumes and returns the rect captured just before `pipActivate` moved the player
2218
+ * to the body container. Returns `null` if no rect was stored.
2219
+ * Deleted on first read so the enter animation only fires once.
2220
+ */
2221
+ getInitialRect(playerId: StreamPlayerId): DOMRect | null;
2222
+ /**
2223
+ * Moves the player element back to the manager's body container without
2224
+ * changing PIP state. Call this before a pip-player component is destroyed so
2225
+ * the iframe remains connected to the document and `moveBefore` can preserve
2226
+ * its state when another pip-player picks it up immediately after.
2227
+ */
2228
+ parkPlayerElement(playerId: StreamPlayerId): void;
2229
+ };
2230
+
2231
+ declare class PipBackDirective {
2232
+ private chrome;
2233
+ private tokenEntry;
2234
+ entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2235
+ private pipManager;
2236
+ back(event: Event): void;
2237
+ private resolveEntry;
2238
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipBackDirective, never>;
2239
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipBackDirective, "[etPipBack]", never, { "entry": { "alias": "entry"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2240
+ }
2241
+
2242
+ declare class PipBringBackDirective {
2243
+ private slotPlayerId;
2244
+ private el;
2245
+ private pipManager;
2246
+ private intersection;
2247
+ private pendingPulse;
2248
+ constructor();
2249
+ pulse(): void;
2250
+ bringBack(event: Event): void;
2251
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipBringBackDirective, never>;
2252
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipBringBackDirective, "[etPipBringBack]", never, {}, {}, never, never, true, never>;
2253
+ }
2254
+
2255
+ declare class PipWindowParamsDirective {
2256
+ aspectRatio: _angular_core.Signal<number>;
2257
+ private config;
2258
+ minWidth: _angular_core.WritableSignal<number>;
2259
+ maxWidth: _angular_core.WritableSignal<number>;
2260
+ minHeight: _angular_core.WritableSignal<number>;
2261
+ maxHeight: _angular_core.WritableSignal<number>;
2262
+ desiredSize: _angular_core.WritableSignal<number>;
2263
+ collapsePeek: _angular_core.WritableSignal<number>;
2264
+ viewportPadding: _angular_core.WritableSignal<number>;
2265
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipWindowParamsDirective, never>;
2266
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipWindowParamsDirective, never, never, {}, {}, never, never, true, never>;
2267
+ }
2268
+
2269
+ type PipWindowSize = {
2270
+ w: Signal<number | null>;
2271
+ h: Signal<number | null>;
2272
+ get(): {
2273
+ w: number | null;
2274
+ h: number | null;
2275
+ };
2276
+ update(fn: (prev: {
2277
+ w: number | null;
2278
+ h: number | null;
2279
+ }) => {
2280
+ w: number | null;
2281
+ h: number | null;
2282
+ }): void;
2283
+ setResize(w: number, h: number): void;
2284
+ clearResize(): void;
2285
+ };
2286
+
2287
+ type PipWindowPosition = {
2288
+ position: Signal<string>;
2289
+ positionInitialized: WritableSignal<boolean>;
2290
+ isCollapsed: WritableSignal<boolean>;
2291
+ isDragging: Signal<boolean>;
2292
+ isResizing: Signal<boolean>;
2293
+ initPosition(): void;
2294
+ checkAndCollapse(): void;
2295
+ snapToViewport(): void;
2296
+ animateExit(callback: () => void): void;
2297
+ startModeTransition(duration?: number): void;
2298
+ };
2299
+
2300
+ declare class PipTitleBarTemplateDirective {
2301
+ template: TemplateRef<unknown>;
2302
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipTitleBarTemplateDirective, never>;
2303
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipTitleBarTemplateDirective, "ng-template[etPipTitleBar]", never, {}, {}, never, never, true, never>;
2304
+ }
2305
+
2306
+ declare class PipWindowComponent {
2307
+ protected params: PipWindowParamsDirective;
2308
+ private resizeHandles;
2309
+ private titleBar;
2310
+ protected titleBarTemplate: _angular_core.Signal<PipTitleBarTemplateDirective>;
2311
+ protected dragHandle: _angular_core.Signal<_ethlete_core.DragHandleDirective>;
2312
+ protected titleBarH: _angular_core.Signal<number>;
2313
+ sizeState: PipWindowSize;
2314
+ forcedTitleBar: _angular_core.WritableSignal<boolean>;
2315
+ posState: PipWindowPosition;
2316
+ readonly RESIZE_EDGES: ResizeEdge[];
2317
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipWindowComponent, never>;
2318
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PipWindowComponent, "et-pip-window", never, {}, {}, ["titleBarTemplate"], ["*"], true, [{ directive: typeof PipWindowParamsDirective; inputs: {}; outputs: {}; }]>;
2319
+ }
2320
+
2321
+ type PipCellData = {
2322
+ /** The underlying pip entry. */
2323
+ pip: StreamPipEntry;
2324
+ /** Shortcut to `pip.playerId`. */
2325
+ playerId: StreamPlayerId;
2326
+ /** CSS grid column (1-based). */
2327
+ col: number;
2328
+ /** CSS grid row (1-based). */
2329
+ row: number;
2330
+ /** Horizontal exit direction offset (used for CSS `--et-cell-exit-h`). */
2331
+ exitH: number;
2332
+ /** Vertical exit direction offset (used for CSS `--et-cell-exit-v`). */
2333
+ exitV: number;
2334
+ /** Whether this is the currently featured pip. */
2335
+ isFeatured: boolean;
2336
+ /** `''` when this cell should be inert (single mode, non-featured), `null` otherwise. */
2337
+ inertAttr: '' | null;
2338
+ /** `''` when the player inside this cell should be inert, `null` otherwise. */
2339
+ playerInertAttr: '' | null;
2340
+ /** `'button'` in grid mode (cells are interactive), `null` in single mode. */
2341
+ gridRole: 'button' | null;
2342
+ /** `0` in grid mode, `null` in single mode. */
2343
+ gridTabIndex: 0 | null;
2344
+ };
2345
+ type PipChromeState = {
2346
+ featuredId: WritableSignal<StreamPlayerId | null>;
2347
+ multiView: WritableSignal<boolean>;
2348
+ isExiting: WritableSignal<boolean>;
2349
+ allPips: Signal<StreamPipEntry[]>;
2350
+ /** The currently featured pip, or `undefined` when none is active. */
2351
+ featuredPip: Signal<StreamPipEntry | undefined>;
2352
+ gridCols: Signal<number>;
2353
+ gridRows: Signal<number>;
2354
+ /** Per-cell layout data — iterate over this in `@for` instead of calling methods. */
2355
+ cells: Signal<PipCellData[]>;
2356
+ /** True when more than one pip is active (shows the grid-toggle button). */
2357
+ hasMultiplePips: Signal<boolean>;
2358
+ /** True when the back button should be visible. */
2359
+ showBackButton: Signal<boolean>;
2360
+ /** Accessible label for the grid toggle button. */
2361
+ gridToggleLabel: Signal<string>;
2362
+ /** The natural aspect ratio of the currently featured pip. */
2363
+ featuredAspectRatio: Signal<number>;
2364
+ /**
2365
+ * The aspect ratio to apply to the pip window.
2366
+ * In single mode: tracks the featured pip's ratio.
2367
+ * In grid mode: locked to the ratio at the time grid was entered; unlocks when a pip is removed.
2368
+ */
2369
+ windowAspectRatio: Signal<number>;
2370
+ setFeatured(playerId: StreamPlayerId): void;
2371
+ /** Closes all pip entries, optionally animating via the pip window. */
2372
+ close(event: Event, pipWindow: PipWindowComponent | undefined): void;
2373
+ /** @internal Map from playerId to the host HTMLElement. Populated by PipCellDirective. */
2374
+ cellElements: Map<StreamPlayerId, HTMLElement>;
2375
+ /** @internal */
2376
+ registerCell(playerId: StreamPlayerId, el: HTMLElement): void;
2377
+ /** @internal */
2378
+ unregisterCell(playerId: StreamPlayerId): void;
2379
+ };
2380
+ declare const createPipChromeState: () => PipChromeState;
2381
+
2382
+ declare class PipCellDirective {
2383
+ private chrome;
2384
+ cell: _angular_core.InputSignal<PipCellData>;
2385
+ constructor();
2386
+ selectCell(): void;
2387
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipCellDirective, never>;
2388
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipCellDirective, "[etPipCell]", never, { "cell": { "alias": "etPipCell"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
2389
+ }
2390
+
2391
+ type PipChromeAnimationRefs = {
2392
+ stageRef: Signal<ElementRef<HTMLElement> | undefined>;
2393
+ gridBtnRef: Signal<ElementRef<HTMLElement> | undefined>;
2394
+ pipWindowRef: Signal<PipWindowComponent | undefined>;
2395
+ };
2396
+ type PipChromeAnimations = {
2397
+ enterMultiView(): void;
2398
+ exitMultiView(): void;
2399
+ toggleMultiView(): void;
2400
+ selectCell(playerId: StreamPlayerId): void;
2401
+ };
2402
+ declare const createPipChromeAnimations: (state: PipChromeState, refs: PipChromeAnimationRefs) => PipChromeAnimations;
2403
+
2404
+ type PipChromeRef = {
2405
+ state: PipChromeState;
2406
+ animations: PipChromeAnimations;
2407
+ };
2408
+ declare const PIP_CHROME_REF_TOKEN: InjectionToken<PipChromeRef>;
2409
+
2410
+ declare class PipCloseDirective {
2411
+ private chrome;
2412
+ private pipWindow;
2413
+ private tokenEntry;
2414
+ entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2415
+ private pipManager;
2416
+ close(event: Event): void;
2417
+ private resolveEntry;
2418
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipCloseDirective, never>;
2419
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipCloseDirective, "[etPipClose]", never, { "entry": { "alias": "entry"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2420
+ }
2421
+
2422
+ declare class PipCollapseOverlayDirective {
2423
+ dragHandle: _angular_core.InputSignal<DragHandleDirective>;
2424
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipCollapseOverlayDirective, never>;
2425
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipCollapseOverlayDirective, "[etPipCollapseOverlay]", never, { "dragHandle": { "alias": "dragHandle"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
2426
+ }
2427
+
2428
+ declare const PIP_ENTRY_TOKEN: InjectionToken<Signal<StreamPipEntry>>;
2429
+
2430
+ declare class PipGridToggleDirective {
2431
+ protected chrome: _ethlete_components.PipChromeRef | null;
2432
+ toggle(event: Event): void;
2433
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipGridToggleDirective, never>;
2434
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipGridToggleDirective, "[etPipGridToggle]", never, {}, {}, never, never, true, never>;
2435
+ }
2436
+
2437
+ declare class PipStageDirective {
2438
+ protected chrome: _ethlete_components.PipChromeRef;
2439
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipStageDirective, never>;
2440
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipStageDirective, "[etPipStage]", never, {}, {}, never, never, true, never>;
2441
+ }
2442
+
2443
+ declare class PipTitleBarDirective {
2444
+ dragHandle: DragHandleDirective;
2445
+ private dims;
2446
+ titleBarH: _angular_core.Signal<number>;
2447
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipTitleBarDirective, never>;
2448
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PipTitleBarDirective, "[etPipTitleBar]", never, {}, {}, never, never, true, [{ directive: typeof _ethlete_core.DragHandleDirective; inputs: { "disabled": "dragDisabled"; }; outputs: { "dragTapped": "dragTapped"; "dragStarted": "dragStarted"; "dragMoved": "dragMoved"; "dragEnded": "dragEnded"; }; }]>;
2449
+ }
2450
+
2451
+ declare const PIP_WINDOW_ASPECT_RATIO_TOKEN: InjectionToken<Signal<number>>;
2452
+
2453
+ declare class StreamPipChromeComponent implements PipChromeRef {
2454
+ stageRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2455
+ pipWindowRef: _angular_core.Signal<PipWindowComponent | undefined>;
2456
+ gridBtnRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2457
+ pipManager: _ethlete_components.PipManager;
2458
+ state: _ethlete_components.PipChromeState;
2459
+ animations: _ethlete_components.PipChromeAnimations;
2460
+ readonly CLOSE_KIND: "close";
2461
+ controlsColor: _angular_core.Signal<string | undefined>;
2462
+ readonly WINDOW_CONTROL_BUTTON_SIZE: "sm";
2463
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamPipChromeComponent, never>;
2464
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StreamPipChromeComponent, "et-stream-pip-chrome", never, {}, {}, never, never, true, never>;
2465
+ }
2466
+
2467
+ declare class PipPlayerComponent {
2468
+ private document;
2469
+ private el;
2470
+ protected pipCell: PipCellDirective | null;
2471
+ entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
2472
+ showThumbnail: _angular_core.InputSignal<boolean | undefined>;
2473
+ private streamManager;
2474
+ private pipManager;
2475
+ private renderer;
2476
+ isReady: _angular_core.WritableSignal<boolean>;
2477
+ resolvedEntry: _angular_core.Signal<StreamPipEntry>;
2478
+ thumbnailUrl: _angular_core.Signal<string | null>;
2479
+ isThumbVisible: _angular_core.Signal<boolean>;
2480
+ constructor();
2481
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipPlayerComponent, never>;
2482
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PipPlayerComponent, "et-pip-player", never, { "entry": { "alias": "entry"; "required": false; "isSignal": true; }; "showThumbnail": { "alias": "showThumbnail"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2483
+ }
2484
+
2485
+ type PipSlotPlaceholderConfig = {
2486
+ /** The message displayed in the placeholder overlay. */
2487
+ message: string;
2488
+ /** The label for the "back to player" button. */
2489
+ backLabel: string;
2490
+ /**
2491
+ * The color theme name to apply on the back button.
2492
+ * When set, applies `[color]` on the button element.
2493
+ */
2494
+ backButtonColor: string | null;
2495
+ /**
2496
+ * A function to transform text based on the current locale.
2497
+ * Use `provideLocale()` to update the locale dynamically.
2498
+ */
2499
+ transformer: (text: string, locale: string) => string;
2500
+ };
2501
+ declare const providePipSlotPlaceholderConfig: (valueOverride?: Partial<PipSlotPlaceholderConfig> | undefined) => _angular_core.Provider[];
2502
+ declare const injectPipSlotPlaceholderConfig: {
2503
+ (): PipSlotPlaceholderConfig;
2504
+ (options: _angular_core.InjectOptions & {
2505
+ optional?: false;
2506
+ }): PipSlotPlaceholderConfig;
2507
+ (options: _angular_core.InjectOptions): PipSlotPlaceholderConfig | null;
2508
+ };
2509
+
2510
+ declare class PipSlotPlaceholderComponent {
2511
+ private slotPlayerId;
2512
+ private parentSurfaceProvider;
2513
+ private bringBackDir;
2514
+ private pipManager;
2515
+ private config;
2516
+ private locale;
2517
+ private surfaceThemes;
2518
+ cardSurface: _angular_core.Signal<string | null>;
2519
+ isInPip: _angular_core.Signal<boolean>;
2520
+ message: _angular_core.Signal<string>;
2521
+ backLabel: _angular_core.Signal<string>;
2522
+ backButtonColor: _angular_core.Signal<string | null>;
2523
+ constructor();
2524
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PipSlotPlaceholderComponent, never>;
2525
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PipSlotPlaceholderComponent, "et-pip-slot-placeholder", never, {}, {}, never, never, true, never>;
2526
+ }
2527
+
2528
+ declare const providePipChromeManager: () => _angular_core.Provider[];
2529
+ declare const injectPipChromeManager: {
2530
+ (): void;
2531
+ (options: _angular_core.InjectOptions & {
2532
+ optional?: false;
2533
+ }): void;
2534
+ (options: _angular_core.InjectOptions): void | null;
2535
+ };
2536
+
2537
+ declare const providePipManager: () => _angular_core.Provider[];
2538
+ declare const injectPipManager: {
2539
+ (): PipManager;
2540
+ (options: _angular_core.InjectOptions & {
2541
+ optional?: false;
2542
+ }): PipManager;
2543
+ (options: _angular_core.InjectOptions): PipManager | null;
2544
+ };
2545
+
2546
+ type StreamPlayerParams = {
2547
+ readonly playerId: Signal<StreamPlayerId>;
2548
+ /** Natural aspect ratio (width / height) of the player. Defaults to 16/9 if absent. */
2549
+ readonly ASPECT_RATIO?: number;
2550
+ createBindings(): Binding[];
2551
+ };
2552
+ declare const STREAM_PLAYER_PARAMS_TOKEN: InjectionToken<StreamPlayerParams>;
2553
+ declare const STREAM_PLAYER_COMPONENT_TOKEN: InjectionToken<Type<unknown>>;
2554
+ declare const STREAM_PLAYER_SLOT_TOKEN: InjectionToken<StreamPlayerSlotDirective>;
2555
+ declare class StreamPlayerSlotDirective {
2556
+ private params;
2557
+ private playerComponent;
2558
+ private provideSurface;
2559
+ private parentSurfaceProvider;
2560
+ streamSlotPriority: _angular_core.InputSignalWithTransform<boolean, unknown>;
2561
+ streamSlotOnPipBack: _angular_core.InputSignal<(() => void) | undefined>;
2562
+ private surfaceThemes;
2563
+ private styleManager;
2564
+ private resolvedSurface;
2565
+ slot: _ethlete_components.StreamPlayerSlotHandle;
2566
+ constructor();
2567
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamPlayerSlotDirective, never>;
2568
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StreamPlayerSlotDirective, never, never, { "streamSlotPriority": { "alias": "streamSlotPriority"; "required": false; "isSignal": true; }; "streamSlotOnPipBack": { "alias": "streamSlotOnPipBack"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }]>;
2569
+ }
2570
+
2571
+ declare class DailymotionPlayerParamsDirective implements StreamPlayerParams {
2572
+ videoId: _angular_core.InputSignal<string>;
2573
+ startTime: _angular_core.InputSignalWithTransform<number, unknown>;
2574
+ width: _angular_core.InputSignal<string | number>;
2575
+ height: _angular_core.InputSignal<string | number>;
2576
+ playerId: _angular_core.Signal<string>;
2577
+ createBindings(): _angular_core.Binding[];
2578
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DailymotionPlayerParamsDirective, never>;
2579
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DailymotionPlayerParamsDirective, never, never, { "videoId": { "alias": "videoId"; "required": true; "isSignal": true; }; "startTime": { "alias": "startTime"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2580
+ }
2581
+
2582
+ type StreamPlayerCapabilities = {
2583
+ canPlay: boolean;
2584
+ canPause: boolean;
2585
+ canMute: boolean;
2586
+ canSeek: boolean;
2587
+ canGetDuration: boolean;
2588
+ isLiveCapable: boolean;
2589
+ hasThumbnail: boolean;
2590
+ };
2591
+ type StreamPlayerState = {
2592
+ isReady: boolean;
2593
+ isLoading: boolean;
2594
+ error: null | unknown;
2595
+ isPlaying: boolean;
2596
+ isMuted: boolean;
2597
+ isEnded: boolean;
2598
+ /** null until the player is ready and duration is available */
2599
+ duration: number | null;
2600
+ /** null for live streams */
2601
+ currentTime: number | null;
2602
+ };
2603
+ declare const DEFAULT_STREAM_PLAYER_STATE: StreamPlayerState;
2604
+
2605
+ type StreamPlayer = {
2606
+ /** Capabilities of the player, e.g. whether it supports seeking. */
2607
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2608
+ /**
2609
+ * Current state of the player, e.g. whether it's playing or paused.
2610
+ * Note that the state depends on the capabilities - e.g. a player that doesn't support seeking will always have currentTime = null.
2611
+ */
2612
+ state: Signal<StreamPlayerState>;
2613
+ /**
2614
+ * A reactive thumbnail URL for this player, or `null` if unavailable.
2615
+ * Only populated when `CAPABILITIES.hasThumbnail` is true.
2616
+ */
2617
+ thumbnail: Signal<string | null>;
2618
+ /** Start playback. No-op if already playing or if canPlay capability is false. */
2619
+ play(): void;
2620
+ /** Pause playback. No-op if already paused or if canPause capability is false. */
2621
+ pause(): void;
2622
+ /** Mute playback. No-op if already muted or if canMute capability is false. */
2623
+ mute(): void;
2624
+ /** Unmute playback. No-op if already unmuted or if canMute capability is false. */
2625
+ unmute(): void;
2626
+ /** Seek to time in seconds. No-op if canSeek capability is false. */
2627
+ seek(seconds: number): void;
2628
+ /** Reload the player resource, e.g. after a script load failure. */
2629
+ retry(): void;
2630
+ };
2631
+ declare const STREAM_PLAYER_TOKEN: InjectionToken<StreamPlayer>;
2632
+
2633
+ declare const DAILYMOTION_PLAYER_TOKEN: InjectionToken<DailymotionPlayerDirective>;
2634
+ declare class DailymotionPlayerDirective implements StreamPlayer {
2635
+ private platformId;
2636
+ private params;
2637
+ private el;
2638
+ private renderer;
2639
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2640
+ state: _angular_core.WritableSignal<StreamPlayerState>;
2641
+ thumbnail: _angular_core.WritableSignal<string | null>;
2642
+ private playerResource;
2643
+ constructor();
2644
+ play(): void;
2645
+ pause(): void;
2646
+ mute(): void;
2647
+ unmute(): void;
2648
+ seek(): void;
2649
+ retry(): void;
2650
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DailymotionPlayerDirective, never>;
2651
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DailymotionPlayerDirective, never, never, {}, {}, never, never, true, never>;
2652
+ }
2653
+
2654
+ declare class DailymotionPlayerSlotComponent {
2655
+ slotDirective: StreamPlayerSlotDirective;
2656
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DailymotionPlayerSlotComponent, never>;
2657
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DailymotionPlayerSlotComponent, "et-dailymotion-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof DailymotionPlayerParamsDirective; inputs: { "videoId": "videoId"; "startTime": "startTime"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
2658
+ }
2659
+
2660
+ declare class DailymotionPlayerComponent {
2661
+ player: DailymotionPlayerDirective;
2662
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DailymotionPlayerComponent, never>;
2663
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DailymotionPlayerComponent, "et-dailymotion-player", never, {}, {}, never, never, true, [{ directive: typeof DailymotionPlayerParamsDirective; inputs: { "videoId": "videoId"; "startTime": "startTime"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof DailymotionPlayerDirective; inputs: {}; outputs: {}; }]>;
2664
+ }
2665
+
2666
+ declare class FacebookPlayerParamsDirective implements StreamPlayerParams {
2667
+ videoId: _angular_core.InputSignal<string>;
2668
+ width: _angular_core.InputSignal<string | number>;
2669
+ height: _angular_core.InputSignal<string | number>;
2670
+ playerId: _angular_core.Signal<string>;
2671
+ createBindings(): _angular_core.Binding[];
2672
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FacebookPlayerParamsDirective, never>;
2673
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FacebookPlayerParamsDirective, never, never, { "videoId": { "alias": "videoId"; "required": true; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2674
+ }
2675
+
2676
+ declare const FACEBOOK_PLAYER_TOKEN: InjectionToken<FacebookPlayerDirective>;
2677
+ declare class FacebookPlayerDirective implements StreamPlayer {
2678
+ private platformId;
2679
+ private document;
2680
+ private params;
2681
+ private el;
2682
+ private scriptLoader;
2683
+ private renderer;
2684
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2685
+ state: _angular_core.WritableSignal<StreamPlayerState>;
2686
+ thumbnail: _angular_core.WritableSignal<string | null>;
2687
+ private playerResource;
2688
+ constructor();
2689
+ play(): void;
2690
+ pause(): void;
2691
+ mute(): void;
2692
+ unmute(): void;
2693
+ seek(seconds: number): void;
2694
+ retry(): void;
2695
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FacebookPlayerDirective, never>;
2696
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FacebookPlayerDirective, never, never, {}, {}, never, never, true, never>;
2697
+ }
2698
+
2699
+ type FacebookVideoPlayer = {
2700
+ play(): void;
2701
+ pause(): void;
2702
+ seek(seconds: number): void;
2703
+ mute(): void;
2704
+ unmute(): void;
2705
+ isMuted(): boolean;
2706
+ getCurrentPosition(): number;
2707
+ getDuration(): number;
2708
+ subscribe(event: 'startedPlaying' | 'paused' | 'finishedPlaying' | 'startedBuffering' | 'finishedBuffering', handler: () => void): {
2709
+ release(): void;
2710
+ };
2711
+ };
2712
+ type FacebookWindow = Window & {
2713
+ FB: {
2714
+ Event: {
2715
+ subscribe(event: string, handler: (msg: unknown) => void): void;
2716
+ unsubscribe(event: string, handler: (msg: unknown) => void): void;
2717
+ };
2718
+ XFBML: {
2719
+ parse(element?: Element): void;
2720
+ };
2721
+ };
2722
+ fbAsyncInit?: () => void;
2723
+ };
2724
+
2725
+ declare class FacebookPlayerSlotComponent {
2726
+ slotDirective: StreamPlayerSlotDirective;
2727
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FacebookPlayerSlotComponent, never>;
2728
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FacebookPlayerSlotComponent, "et-facebook-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof FacebookPlayerParamsDirective; inputs: { "videoId": "videoId"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
2729
+ }
2730
+
2731
+ declare class FacebookPlayerComponent {
2732
+ player: FacebookPlayerDirective;
2733
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FacebookPlayerComponent, never>;
2734
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FacebookPlayerComponent, "et-facebook-player", never, {}, {}, never, never, true, [{ directive: typeof FacebookPlayerParamsDirective; inputs: { "videoId": "videoId"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof FacebookPlayerDirective; inputs: {}; outputs: {}; }]>;
2735
+ }
2736
+
2737
+ declare class KickPlayerParamsDirective implements StreamPlayerParams {
2738
+ channel: _angular_core.InputSignal<string>;
2739
+ width: _angular_core.InputSignal<string | number>;
2740
+ height: _angular_core.InputSignal<string | number>;
2741
+ muted: _angular_core.InputSignalWithTransform<boolean, unknown>;
2742
+ playerId: _angular_core.Signal<string>;
2743
+ createBindings(): _angular_core.Binding[];
2744
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KickPlayerParamsDirective, never>;
2745
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KickPlayerParamsDirective, never, never, { "channel": { "alias": "channel"; "required": true; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "muted": { "alias": "muted"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2746
+ }
2747
+
2748
+ declare const KICK_PLAYER_TOKEN: InjectionToken<KickPlayerDirective>;
2749
+ declare class KickPlayerDirective implements StreamPlayer {
2750
+ private platformId;
2751
+ private document;
2752
+ private params;
2753
+ private el;
2754
+ private renderer;
2755
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2756
+ state: _angular_core.WritableSignal<StreamPlayerState>;
2757
+ thumbnail: _angular_core.WritableSignal<string | null>;
2758
+ private playerResource;
2759
+ constructor();
2760
+ play(): void;
2761
+ pause(): void;
2762
+ mute(): void;
2763
+ unmute(): void;
2764
+ seek(): void;
2765
+ retry(): void;
2766
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KickPlayerDirective, never>;
2767
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KickPlayerDirective, never, never, {}, {}, never, never, true, never>;
2768
+ }
2769
+
2770
+ declare class KickPlayerSlotComponent {
2771
+ slotDirective: StreamPlayerSlotDirective;
2772
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KickPlayerSlotComponent, never>;
2773
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<KickPlayerSlotComponent, "et-kick-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof KickPlayerParamsDirective; inputs: { "channel": "channel"; "width": "width"; "height": "height"; "muted": "muted"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
2774
+ }
2775
+
2776
+ declare class KickPlayerComponent {
2777
+ player: KickPlayerDirective;
2778
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KickPlayerComponent, never>;
2779
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<KickPlayerComponent, "et-kick-player", never, {}, {}, never, never, true, [{ directive: typeof KickPlayerParamsDirective; inputs: { "channel": "channel"; "width": "width"; "height": "height"; "muted": "muted"; }; outputs: {}; }, { directive: typeof KickPlayerDirective; inputs: {}; outputs: {}; }]>;
2780
+ }
2781
+
2782
+ declare class SoopPlayerParamsDirective implements StreamPlayerParams {
2783
+ userId: _angular_core.InputSignal<string | null>;
2784
+ videoId: _angular_core.InputSignal<string | null>;
2785
+ width: _angular_core.InputSignal<string | number>;
2786
+ height: _angular_core.InputSignal<string | number>;
2787
+ playerId: _angular_core.Signal<string>;
2788
+ createBindings(): _angular_core.Binding[];
2789
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SoopPlayerParamsDirective, never>;
2790
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SoopPlayerParamsDirective, never, never, { "userId": { "alias": "userId"; "required": false; "isSignal": true; }; "videoId": { "alias": "videoId"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2791
+ }
2792
+
2793
+ declare const SOOP_PLAYER_TOKEN: InjectionToken<SoopPlayerDirective>;
2794
+ declare class SoopPlayerDirective implements StreamPlayer {
2795
+ private platformId;
2796
+ private params;
2797
+ private el;
2798
+ private renderer;
2799
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2800
+ state: _angular_core.WritableSignal<StreamPlayerState>;
2801
+ thumbnail: _angular_core.WritableSignal<string | null>;
2802
+ private playerResource;
2803
+ constructor();
2804
+ play(): void;
2805
+ pause(): void;
2806
+ mute(): void;
2807
+ unmute(): void;
2808
+ seek(): void;
2809
+ retry(): void;
2810
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SoopPlayerDirective, never>;
2811
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SoopPlayerDirective, never, never, {}, {}, never, never, true, never>;
2812
+ }
2813
+
2814
+ declare class SoopPlayerSlotComponent {
2815
+ slotDirective: StreamPlayerSlotDirective;
2816
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SoopPlayerSlotComponent, never>;
2817
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SoopPlayerSlotComponent, "et-soop-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof SoopPlayerParamsDirective; inputs: { "userId": "userId"; "videoId": "videoId"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
2818
+ }
2819
+
2820
+ declare class SoopPlayerComponent {
2821
+ player: SoopPlayerDirective;
2822
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SoopPlayerComponent, never>;
2823
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SoopPlayerComponent, "et-soop-player", never, {}, {}, never, never, true, [{ directive: typeof SoopPlayerParamsDirective; inputs: { "userId": "userId"; "videoId": "videoId"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof SoopPlayerDirective; inputs: {}; outputs: {}; }]>;
2824
+ }
2825
+
2826
+ declare class TikTokPlayerParamsDirective implements StreamPlayerParams {
2827
+ videoId: _angular_core.InputSignal<string>;
2828
+ width: _angular_core.InputSignal<string | number>;
2829
+ height: _angular_core.InputSignal<string | number>;
2830
+ readonly ASPECT_RATIO: number;
2831
+ playerId: _angular_core.Signal<string>;
2832
+ createBindings(): _angular_core.Binding[];
2833
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TikTokPlayerParamsDirective, never>;
2834
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TikTokPlayerParamsDirective, never, never, { "videoId": { "alias": "videoId"; "required": true; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2835
+ }
2836
+
2837
+ declare const TIKTOK_PLAYER_TOKEN: InjectionToken<TikTokPlayerDirective>;
2838
+ declare class TikTokPlayerDirective implements StreamPlayer {
2839
+ private platformId;
2840
+ private params;
2841
+ private el;
2842
+ private renderer;
2843
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2844
+ state: _angular_core.WritableSignal<StreamPlayerState>;
2845
+ thumbnail: _angular_core.WritableSignal<string | null>;
2846
+ private iframe;
2847
+ private playerResource;
2848
+ constructor();
2849
+ play(): void;
2850
+ pause(): void;
2851
+ mute(): void;
2852
+ unmute(): void;
2853
+ seek(seconds: number): void;
2854
+ retry(): void;
2855
+ private post;
2856
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TikTokPlayerDirective, never>;
2857
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TikTokPlayerDirective, never, never, {}, {}, never, never, true, never>;
2858
+ }
2859
+
2860
+ declare class TikTokPlayerSlotComponent {
2861
+ slotDirective: StreamPlayerSlotDirective;
2862
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TikTokPlayerSlotComponent, never>;
2863
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TikTokPlayerSlotComponent, "et-tiktok-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof TikTokPlayerParamsDirective; inputs: { "videoId": "videoId"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
2864
+ }
2865
+
2866
+ declare class TikTokPlayerComponent {
2867
+ player: TikTokPlayerDirective;
2868
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TikTokPlayerComponent, never>;
2869
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TikTokPlayerComponent, "et-tiktok-player", never, {}, {}, never, never, true, [{ directive: typeof TikTokPlayerParamsDirective; inputs: { "videoId": "videoId"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof TikTokPlayerDirective; inputs: {}; outputs: {}; }]>;
2870
+ }
2871
+
2872
+ declare class TwitchPlayerParamsDirective implements StreamPlayerParams {
2873
+ src: _angular_core.InputSignal<string>;
2874
+ width: _angular_core.InputSignal<string | number>;
2875
+ height: _angular_core.InputSignal<string | number>;
2876
+ autoplay: _angular_core.InputSignalWithTransform<boolean, unknown>;
2877
+ chat: _angular_core.InputSignalWithTransform<boolean, unknown>;
2878
+ startTime: _angular_core.InputSignalWithTransform<number, unknown>;
2879
+ channel: _angular_core.Signal<string | null>;
2880
+ video: _angular_core.Signal<string | null>;
2881
+ playerId: _angular_core.Signal<string>;
2882
+ createBindings(): _angular_core.Binding[];
2883
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TwitchPlayerParamsDirective, never>;
2884
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TwitchPlayerParamsDirective, never, never, { "src": { "alias": "src"; "required": true; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "autoplay": { "alias": "autoplay"; "required": false; "isSignal": true; }; "chat": { "alias": "chat"; "required": false; "isSignal": true; }; "startTime": { "alias": "startTime"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2885
+ }
2886
+
2887
+ declare const TWITCH_PLAYER_TOKEN: InjectionToken<TwitchPlayerDirective>;
2888
+ declare class TwitchPlayerDirective implements StreamPlayer {
2889
+ private platformId;
2890
+ private document;
2891
+ private params;
2892
+ private el;
2893
+ private scriptLoader;
2894
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2895
+ state: _angular_core.WritableSignal<StreamPlayerState>;
2896
+ thumbnail: _angular_core.WritableSignal<string | null>;
2897
+ private playerResource;
2898
+ constructor();
2899
+ play(): void;
2900
+ pause(): void;
2901
+ mute(): void;
2902
+ unmute(): void;
2903
+ seek(seconds: number): void;
2904
+ retry(): void;
2905
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TwitchPlayerDirective, never>;
2906
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TwitchPlayerDirective, never, never, {}, {}, never, never, true, never>;
2907
+ }
2908
+
2909
+ type TwitchEmbedPlayer = {
2910
+ play(): void;
2911
+ pause(): void;
2912
+ setMuted(muted: boolean): void;
2913
+ getMuted(): boolean;
2914
+ seek(timestamp: number): void;
2915
+ getCurrentTime(): number;
2916
+ getDuration(): number;
2917
+ addEventListener(event: string, callback: () => void): void;
2918
+ };
2919
+ type TwitchEmbed = {
2920
+ getPlayer(): TwitchEmbedPlayer;
2921
+ addEventListener(event: string, callback: () => void): void;
2922
+ };
2923
+ type TwitchEmbedConstructor = {
2924
+ new (elementId: string | HTMLElement, options: {
2925
+ width: string | number;
2926
+ height: string | number;
2927
+ channel?: string;
2928
+ video?: string;
2929
+ parent?: string[];
2930
+ autoplay?: boolean;
2931
+ muted?: boolean;
2932
+ time?: string;
2933
+ layout?: 'video-with-chat' | 'video';
2934
+ }): TwitchEmbed;
2935
+ READY: string;
2936
+ PLAY: string;
2937
+ PAUSE: string;
2938
+ ENDED: string;
2939
+ };
2940
+ type TwitchWindow = Window & {
2941
+ Twitch?: {
2942
+ Embed: TwitchEmbedConstructor;
2943
+ };
2944
+ };
2945
+ type TwitchPlayerParams = {
2946
+ channel: string | null;
2947
+ video: string | null;
2948
+ };
2949
+
2950
+ declare class TwitchPlayerSlotComponent {
2951
+ slotDirective: StreamPlayerSlotDirective;
2952
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TwitchPlayerSlotComponent, never>;
2953
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TwitchPlayerSlotComponent, "et-twitch-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof TwitchPlayerParamsDirective; inputs: { "src": "src"; "width": "width"; "height": "height"; "autoplay": "autoplay"; "chat": "chat"; "startTime": "startTime"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
2954
+ }
2955
+
2956
+ declare class TwitchPlayerComponent {
2957
+ player: TwitchPlayerDirective;
2958
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TwitchPlayerComponent, never>;
2959
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TwitchPlayerComponent, "et-twitch-player", never, {}, {}, never, never, true, [{ directive: typeof TwitchPlayerParamsDirective; inputs: { "src": "src"; "width": "width"; "height": "height"; "autoplay": "autoplay"; "chat": "chat"; "startTime": "startTime"; }; outputs: {}; }, { directive: typeof TwitchPlayerDirective; inputs: {}; outputs: {}; }]>;
2960
+ }
2961
+
2962
+ declare class VimeoPlayerParamsDirective implements StreamPlayerParams {
2963
+ videoId: _angular_core.InputSignal<string | number>;
2964
+ startTime: _angular_core.InputSignalWithTransform<number, unknown>;
2965
+ width: _angular_core.InputSignal<string | number>;
2966
+ height: _angular_core.InputSignal<string | number>;
2967
+ playerId: _angular_core.Signal<string>;
2968
+ createBindings(): _angular_core.Binding[];
2969
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VimeoPlayerParamsDirective, never>;
2970
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<VimeoPlayerParamsDirective, never, never, { "videoId": { "alias": "videoId"; "required": true; "isSignal": true; }; "startTime": { "alias": "startTime"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2971
+ }
2972
+
2973
+ declare const VIMEO_PLAYER_TOKEN: InjectionToken<VimeoPlayerDirective>;
2974
+ declare class VimeoPlayerDirective implements StreamPlayer {
2975
+ private platformId;
2976
+ private document;
2977
+ private params;
2978
+ private el;
2979
+ private scriptLoader;
2980
+ private renderer;
2981
+ readonly CAPABILITIES: StreamPlayerCapabilities;
2982
+ state: _angular_core.WritableSignal<StreamPlayerState>;
2983
+ thumbnail: _angular_core.WritableSignal<string | null>;
2984
+ private playerResource;
2985
+ constructor();
2986
+ play(): void;
2987
+ pause(): void;
2988
+ mute(): void;
2989
+ unmute(): void;
2990
+ seek(seconds: number): void;
2991
+ retry(): void;
2992
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VimeoPlayerDirective, never>;
2993
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<VimeoPlayerDirective, never, never, {}, {}, never, never, true, never>;
2994
+ }
2995
+
2996
+ type VimeoWindow = Window & {
2997
+ Vimeo: {
2998
+ Player: new (element: HTMLElement | string, options: VimeoPlayerOptions) => VimeoPlayer;
2999
+ };
3000
+ };
3001
+ type VimeoPlayerOptions = {
3002
+ id?: number | string;
3003
+ url?: string;
3004
+ width?: number | string;
3005
+ height?: number | string;
3006
+ responsive?: boolean;
3007
+ autopause?: boolean;
3008
+ autoplay?: boolean;
3009
+ muted?: boolean;
3010
+ loop?: boolean;
3011
+ controls?: boolean;
3012
+ };
3013
+ type VimeoPlayer = {
3014
+ play(): Promise<void>;
3015
+ pause(): Promise<void>;
3016
+ getMuted(): Promise<boolean>;
3017
+ setMuted(muted: boolean): Promise<boolean>;
3018
+ getCurrentTime(): Promise<number>;
3019
+ getDuration(): Promise<number>;
3020
+ setCurrentTime(seconds: number): Promise<number>;
3021
+ on(event: string, callback: (data: unknown) => void): void;
3022
+ off(event: string, callback?: (data: unknown) => void): void;
3023
+ destroy(): Promise<void>;
3024
+ ready(): Promise<void>;
3025
+ };
3026
+ type VimeoPlaybackEvent = {
3027
+ duration: number;
3028
+ percent: number;
3029
+ seconds: number;
3030
+ };
3031
+ type VimeoDurationChangeEvent = {
3032
+ duration: number;
3033
+ };
3034
+
3035
+ declare class VimeoPlayerSlotComponent {
3036
+ slotDirective: StreamPlayerSlotDirective;
3037
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VimeoPlayerSlotComponent, never>;
3038
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<VimeoPlayerSlotComponent, "et-vimeo-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof VimeoPlayerParamsDirective; inputs: { "videoId": "videoId"; "startTime": "startTime"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
3039
+ }
3040
+
3041
+ declare class VimeoPlayerComponent {
3042
+ player: VimeoPlayerDirective;
3043
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VimeoPlayerComponent, never>;
3044
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<VimeoPlayerComponent, "et-vimeo-player", never, {}, {}, never, never, true, [{ directive: typeof VimeoPlayerParamsDirective; inputs: { "videoId": "videoId"; "startTime": "startTime"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof VimeoPlayerDirective; inputs: {}; outputs: {}; }]>;
3045
+ }
3046
+
3047
+ declare class YoutubePlayerParamsDirective implements StreamPlayerParams {
3048
+ videoId: _angular_core.InputSignal<string>;
3049
+ startTime: _angular_core.InputSignalWithTransform<number, unknown>;
3050
+ width: _angular_core.InputSignal<string | number>;
3051
+ height: _angular_core.InputSignal<string | number>;
3052
+ playerId: _angular_core.Signal<string>;
3053
+ createBindings(): _angular_core.Binding[];
3054
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YoutubePlayerParamsDirective, never>;
3055
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YoutubePlayerParamsDirective, never, never, { "videoId": { "alias": "videoId"; "required": true; "isSignal": true; }; "startTime": { "alias": "startTime"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3056
+ }
3057
+
3058
+ declare const YOUTUBE_PLAYER_SLOT_TOKEN: InjectionToken<YoutubePlayerSlotDirective>;
3059
+ declare class YoutubePlayerSlotDirective {
3060
+ private params;
3061
+ streamSlotPriority: _angular_core.InputSignalWithTransform<boolean, unknown>;
3062
+ streamSlotOnPipBack: _angular_core.InputSignal<(() => void) | undefined>;
3063
+ slot: _ethlete_components.StreamPlayerSlotHandle;
3064
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YoutubePlayerSlotDirective, never>;
3065
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YoutubePlayerSlotDirective, never, never, { "streamSlotPriority": { "alias": "streamSlotPriority"; "required": false; "isSignal": true; }; "streamSlotOnPipBack": { "alias": "streamSlotOnPipBack"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3066
+ }
3067
+
3068
+ declare const YOUTUBE_PLAYER_TOKEN: InjectionToken<YoutubePlayerDirective>;
3069
+ declare class YoutubePlayerDirective implements StreamPlayer {
3070
+ private platformId;
3071
+ private document;
3072
+ private params;
3073
+ private el;
3074
+ private scriptLoader;
3075
+ private renderer;
3076
+ readonly CAPABILITIES: StreamPlayerCapabilities;
3077
+ state: _angular_core.WritableSignal<StreamPlayerState>;
3078
+ thumbnail: _angular_core.Signal<string>;
3079
+ private playerResource;
3080
+ constructor();
3081
+ play(): void;
3082
+ pause(): void;
3083
+ mute(): void;
3084
+ unmute(): void;
3085
+ seek(seconds: number): void;
3086
+ retry(): void;
3087
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YoutubePlayerDirective, never>;
3088
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YoutubePlayerDirective, never, never, {}, {}, never, never, true, never>;
3089
+ }
3090
+
3091
+ type YtWindow = Window & {
3092
+ YT: {
3093
+ Player: new (elementOrId: HTMLElement | string, config: YtPlayerConfig) => YtPlayer;
3094
+ PlayerState: {
3095
+ UNSTARTED: -1;
3096
+ ENDED: 0;
3097
+ PLAYING: 1;
3098
+ PAUSED: 2;
3099
+ BUFFERING: 3;
3100
+ CUED: 5;
3101
+ };
3102
+ ready(callback: () => void): void;
3103
+ };
3104
+ onYouTubeIframeAPIReady?: () => void;
3105
+ };
3106
+ type YtPlayerConfig = {
3107
+ width?: string | number;
3108
+ height?: string | number;
3109
+ videoId?: string;
3110
+ playerVars?: YtPlayerVars;
3111
+ events?: {
3112
+ onReady?: (event: YtPlayerEvent) => void;
3113
+ onStateChange?: (event: YtPlayerStateChangeEvent) => void;
3114
+ onError?: (event: YtPlayerErrorEvent) => void;
3115
+ };
3116
+ };
3117
+ type YtPlayerVars = {
3118
+ autoplay?: 0 | 1;
3119
+ controls?: 0 | 1 | 2;
3120
+ rel?: 0 | 1;
3121
+ modestbranding?: 0 | 1;
3122
+ start?: number;
3123
+ mute?: 0 | 1;
3124
+ enablejsapi?: 0 | 1;
3125
+ origin?: string;
3126
+ [key: string]: unknown;
3127
+ };
3128
+ type YtPlayer = {
3129
+ playVideo(): void;
3130
+ pauseVideo(): void;
3131
+ stopVideo(): void;
3132
+ seekTo(seconds: number, allowSeekAhead: boolean): void;
3133
+ mute(): void;
3134
+ unMute(): void;
3135
+ isMuted(): boolean;
3136
+ getPlayerState(): number;
3137
+ getCurrentTime(): number;
3138
+ getDuration(): number;
3139
+ cueVideoById(videoId: string, startSeconds?: number): void;
3140
+ loadVideoById(videoId: string, startSeconds?: number): void;
3141
+ destroy(): void;
3142
+ };
3143
+ type YtPlayerEvent = {
3144
+ target: YtPlayer;
3145
+ };
3146
+ type YtPlayerStateChangeEvent = {
3147
+ target: YtPlayer;
3148
+ data: number;
3149
+ };
3150
+ type YtPlayerErrorEvent = {
3151
+ target: YtPlayer;
3152
+ data: number;
3153
+ };
3154
+
3155
+ declare class YoutubePlayerSlotComponent {
3156
+ slotDirective: StreamPlayerSlotDirective;
3157
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YoutubePlayerSlotComponent, never>;
3158
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<YoutubePlayerSlotComponent, "et-youtube-player-slot", never, {}, {}, never, ["*"], true, [{ directive: typeof YoutubePlayerParamsDirective; inputs: { "videoId": "videoId"; "startTime": "startTime"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof StreamPlayerSlotDirective; inputs: { "streamSlotPriority": "streamSlotPriority"; "streamSlotOnPipBack": "streamSlotOnPipBack"; }; outputs: {}; }]>;
3159
+ }
3160
+
3161
+ declare class YoutubePlayerComponent {
3162
+ player: YoutubePlayerDirective;
3163
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YoutubePlayerComponent, never>;
3164
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<YoutubePlayerComponent, "et-youtube-player", never, {}, {}, never, never, true, [{ directive: typeof YoutubePlayerParamsDirective; inputs: { "videoId": "videoId"; "startTime": "startTime"; "width": "width"; "height": "height"; }; outputs: {}; }, { directive: typeof YoutubePlayerDirective; inputs: {}; outputs: {}; }]>;
3165
+ }
3166
+
3167
+ type StreamPipWindowConfig = {
3168
+ /** Minimum allowed width in px. @default 160 */
3169
+ minWidth: number;
3170
+ /** Maximum allowed width in px. @default 640 */
3171
+ maxWidth: number;
3172
+ /** Minimum allowed height in px. @default 90 */
3173
+ minHeight: number;
3174
+ /** Maximum allowed height in px. @default 360 */
3175
+ maxHeight: number;
3176
+ /** Desired initial size (longest side) in px. @default 400 */
3177
+ desiredSize: number;
3178
+ /** Height in px of the collapsed peek strip. @default 40 */
3179
+ collapsePeek: number;
3180
+ /** Minimum distance from the viewport edge in px. @default 8 */
3181
+ viewportPadding: number;
3182
+ };
3183
+ /**
3184
+ * Default pip window sizing / layout config.
3185
+ * Spread this when you only want to override a subset of values:
3186
+ * `{ ...DEFAULT_PIP_WINDOW_CONFIG, minWidth: 200 }`
3187
+ */
3188
+ declare const DEFAULT_PIP_WINDOW_CONFIG: StreamPipWindowConfig;
3189
+ type StreamConfig = {
3190
+ /**
3191
+ * An optional consent component to automatically render around stream player components.
3192
+ * When set, any stream player component will use this component as its consent gate.
3193
+ *
3194
+ * The component must have `[etStreamConsent]` as a `hostDirective` (or equivalent consent
3195
+ * directive) so the stream player can read the consent state from the injector tree.
3196
+ */
3197
+ consentComponent: Type<unknown> | null;
3198
+ /**
3199
+ * An optional component to render inside every player slot as a PIP overlay.
3200
+ */
3201
+ pipSlotPlaceholderComponent: Type<unknown> | null;
3202
+ /**
3203
+ * An optional component shown while the player is initializing (before `isReady`).
3204
+ * It is automatically destroyed once the player fires its ready event.
3205
+ *
3206
+ * @default `StreamPlayerLoadingComponent`
3207
+ */
3208
+ loadingComponent: Type<unknown>;
3209
+ /**
3210
+ * An optional component shown when the player fails to load (e.g. SDK blocked by an ad-blocker).
3211
+ * It is automatically destroyed when the player is retried and hid again when retry succeeds.
3212
+ *
3213
+ * @default `StreamPlayerErrorComponent`
3214
+ */
3215
+ errorComponent: Type<unknown>;
3216
+ /**
3217
+ * The component rendered by `PipManager` when at least one pip is active.
3218
+ * It is automatically created when the first pip activates and destroyed
3219
+ * after the last pip exits (including exit animations).
3220
+ *
3221
+ * Supply a custom component that provides `PIP_CHROME_REF_TOKEN` to fully
3222
+ * replace the built-in pip chrome UI.
3223
+ *
3224
+ * @default `StreamPipChromeComponent`
3225
+ */
3226
+ pipChromeComponent: Type<unknown>;
3227
+ /**
3228
+ * Sizing and layout defaults for the floating pip window.
3229
+ * Override individual values by spreading `DEFAULT_PIP_WINDOW_CONFIG`:
3230
+ * `{ ...DEFAULT_PIP_WINDOW_CONFIG, minWidth: 200 }`
3231
+ *
3232
+ * @default `DEFAULT_PIP_WINDOW_CONFIG`
3233
+ */
3234
+ pipWindow: StreamPipWindowConfig;
3235
+ /**
3236
+ * Appearance defaults for the built-in pip chrome UI.
3237
+ * Custom `pipChromeComponent` implementations may ignore this entirely.
3238
+ *
3239
+ * @default `DEFAULT_PIP_CHROME_CONFIG`
3240
+ */
3241
+ pipChrome: StreamPipChromeConfig;
3242
+ };
3243
+ declare const injectStreamConfig: {
3244
+ (): StreamConfig;
3245
+ (options: _angular_core.InjectOptions & {
3246
+ optional?: false;
3247
+ }): StreamConfig;
3248
+ (options: _angular_core.InjectOptions): StreamConfig | null;
3249
+ };
3250
+ declare const createStreamConfig: (valueOverride?: Partial<StreamConfig>) => {
3251
+ pipWindow: {
3252
+ minWidth: number;
3253
+ maxWidth: number;
3254
+ minHeight: number;
3255
+ maxHeight: number;
3256
+ desiredSize: number;
3257
+ collapsePeek: number;
3258
+ viewportPadding: number;
3259
+ };
3260
+ pipChrome: {
3261
+ controlsColor?: string;
3262
+ };
3263
+ consentComponent: Type<unknown> | null;
3264
+ pipSlotPlaceholderComponent: Type<unknown> | null;
3265
+ loadingComponent: Type<unknown>;
3266
+ errorComponent: Type<unknown>;
3267
+ pipChromeComponent: Type<unknown>;
3268
+ };
3269
+ declare const provideStreamConfig: (valueOverride?: Partial<StreamConfig>) => _angular_core.Provider[];
3270
+
3271
+ declare const provideStreamManager: () => _angular_core.Provider[];
3272
+ declare const injectStreamManager: {
3273
+ (): StreamManager;
3274
+ (options: _angular_core.InjectOptions & {
3275
+ optional?: false;
3276
+ }): StreamManager;
3277
+ (options: _angular_core.InjectOptions): StreamManager | null;
3278
+ };
3279
+
3280
+ type StreamPlayerSlotOptions = {
3281
+ /** Reactive player id derived from platform-specific params (e.g. `computed(() => \`youtube-\${params.videoId()}\`)`). */
3282
+ playerId: Signal<StreamPlayerId>;
3283
+ /** Natural aspect ratio (width / height) of the player. Passed to PIP entries so the chrome can resize accordingly. */
3284
+ aspectRatio: number;
3285
+ /** Forwarded from the host directive's `streamSlotPriority` input. */
3286
+ streamSlotPriority: Signal<boolean>;
3287
+ /** Forwarded from the host directive's `streamSlotOnPipBack` input. */
3288
+ streamSlotOnPipBack: Signal<(() => void) | undefined>;
3289
+ /**
3290
+ * Creates and returns the platform player `ComponentRef`.
3291
+ * Receives the environment and element injectors so input bindings have the
3292
+ * correct injection context.
3293
+ */
3294
+ createPlayer: (envInjector: EnvironmentInjector, elementInjector: Injector) => ComponentRef<unknown>;
3295
+ /** Used in dev-mode warnings to identify which directive misconfigured consent. */
3296
+ directiveName?: string;
3297
+ };
3298
+ type StreamPlayerSlotHandle = {
3299
+ currentPlayerIdSignal: WritableSignal<StreamPlayerId | null>;
3300
+ currentState: Signal<StreamPlayerState>;
3301
+ pipActivate(onBack?: () => void): void;
3302
+ pipDeactivate(): void;
3303
+ };
3304
+ declare const createStreamPlayerSlot: (options: StreamPlayerSlotOptions) => StreamPlayerSlotHandle;
3305
+
3306
+ declare const injectStreamScriptLoader: {
3307
+ (): {
3308
+ load: (src: string) => Observable<void>;
3309
+ };
3310
+ (options: _angular_core.InjectOptions & {
3311
+ optional?: false;
3312
+ }): {
3313
+ load: (src: string) => Observable<void>;
3314
+ };
3315
+ (options: _angular_core.InjectOptions): {
3316
+ load: (src: string) => Observable<void>;
3317
+ } | null;
3318
+ };
3319
+ type StreamScriptLoader = ReturnType<typeof injectStreamScriptLoader>;
3320
+
3321
+ declare const StreamImports: readonly [typeof StreamConsentComponent, typeof StreamConsentAcceptDirective, typeof StreamPlayerLoadingComponent, typeof StreamPlayerErrorComponent, typeof StreamPlayerErrorDirective, typeof YoutubePlayerComponent, typeof YoutubePlayerDirective, typeof YoutubePlayerParamsDirective, typeof YoutubePlayerSlotComponent, typeof StreamPlayerSlotDirective, typeof TwitchPlayerComponent, typeof TwitchPlayerDirective, typeof TwitchPlayerSlotComponent, typeof VimeoPlayerComponent, typeof VimeoPlayerDirective, typeof VimeoPlayerSlotComponent, typeof DailymotionPlayerComponent, typeof DailymotionPlayerDirective, typeof DailymotionPlayerSlotComponent, typeof KickPlayerComponent, typeof KickPlayerDirective, typeof KickPlayerSlotComponent, typeof FacebookPlayerComponent, typeof FacebookPlayerDirective, typeof FacebookPlayerSlotComponent, typeof TikTokPlayerComponent, typeof TikTokPlayerDirective, typeof TikTokPlayerSlotComponent, typeof SoopPlayerComponent, typeof SoopPlayerDirective, typeof SoopPlayerSlotComponent, typeof PipWindowComponent, typeof PipPlayerComponent, typeof PipCloseDirective, typeof PipBackDirective, typeof PipBringBackDirective, typeof PipGridToggleDirective];
3322
+
3323
+ declare class TabBarTriggerDirective {
3324
+ private elementRef;
3325
+ private scrollable;
3326
+ protected tabBar: _ethlete_components.TabBarDirective;
3327
+ disabled: _angular_core.InputSignal<boolean>;
3328
+ readonly ID: string;
3329
+ justActivated: _angular_core.WritableSignal<boolean>;
3330
+ isSelected: _angular_core.Signal<boolean>;
3331
+ tabIndex: _angular_core.Signal<0 | -1>;
3332
+ constructor();
3333
+ /** @internal */
3334
+ focus(): void;
3335
+ /** @internal */
3336
+ getElement(): HTMLElement;
3337
+ handleClick(): void;
3338
+ private scrollIntoView;
3339
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabBarTriggerDirective, never>;
3340
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabBarTriggerDirective, "[etTabBarTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.SurfaceInteractiveDirective; inputs: {}; outputs: {}; }]>;
3341
+ }
3342
+
3343
+ declare class TabBarUnderlineDirective {
3344
+ private tabBar;
3345
+ private trigger;
3346
+ private elementRef;
3347
+ isActive: _angular_core.Signal<boolean>;
3348
+ constructor();
3349
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabBarUnderlineDirective, never>;
3350
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabBarUnderlineDirective, "[etTabBarUnderline]", never, {}, {}, never, never, true, never>;
3351
+ }
3352
+
3353
+ declare const TAB_BAR_ORIENTATIONS: {
3354
+ readonly HORIZONTAL: "horizontal";
3355
+ readonly VERTICAL: "vertical";
3356
+ };
3357
+ type TabBarOrientation = (typeof TAB_BAR_ORIENTATIONS)[keyof typeof TAB_BAR_ORIENTATIONS];
3358
+ declare const TAB_BAR_FITS: {
3359
+ readonly CONTENT: "content";
3360
+ readonly FILL: "fill";
3361
+ };
3362
+ type TabBarFit = (typeof TAB_BAR_FITS)[keyof typeof TAB_BAR_FITS];
3363
+ declare const TAB_BAR_VARIANTS: {
3364
+ readonly PRIMARY: "primary";
3365
+ readonly SECONDARY: "secondary";
3366
+ };
3367
+ type TabBarVariant = (typeof TAB_BAR_VARIANTS)[keyof typeof TAB_BAR_VARIANTS];
3368
+
3369
+ declare class TabBarDirective {
3370
+ private destroyRef;
3371
+ orientation: _angular_core.InputSignal<TabBarOrientation>;
3372
+ fit: _angular_core.InputSignal<TabBarFit>;
3373
+ variant: _angular_core.InputSignal<TabBarVariant>;
3374
+ divider: _angular_core.InputSignal<boolean>;
3375
+ /** @internal */
3376
+ triggers: _angular_core.WritableSignal<TabBarTriggerDirective[]>;
3377
+ /** @internal */
3378
+ focusedIndex: _angular_core.WritableSignal<number>;
3379
+ selectedIndex: _angular_core.WritableSignal<number>;
3380
+ /** @internal */
3381
+ readonly ID: string;
3382
+ /** @internal */
3383
+ lastActiveUnderlineElement: _angular_core.WritableSignal<HTMLElement | null>;
3384
+ /** @internal */
3385
+ animationsReady: _angular_core.WritableSignal<boolean>;
3386
+ activeTrigger: _angular_core.Signal<TabBarTriggerDirective | null>;
3387
+ constructor();
3388
+ /** @internal */
3389
+ registerTrigger(trigger: TabBarTriggerDirective): void;
3390
+ /** @internal */
3391
+ unregisterTrigger(trigger: TabBarTriggerDirective): void;
3392
+ /** @internal */
3393
+ selectTrigger(trigger: TabBarTriggerDirective): void;
3394
+ handleKeydown(event: KeyboardEvent): void;
3395
+ handleFocusout(event: FocusEvent): void;
3396
+ private moveFocus;
3397
+ private focusFirst;
3398
+ private focusLast;
3399
+ private activateFocused;
3400
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabBarDirective, never>;
3401
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabBarDirective, "[etTabBar]", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "fit": { "alias": "fit"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3402
+ }
3403
+
3404
+ declare const TAB_BAR_TOKEN: InjectionToken<TabBarDirective>;
3405
+ declare const TAB_BAR_TRIGGER_TOKEN: InjectionToken<TabBarTriggerDirective>;
3406
+
3407
+ declare class NavTabLinkDirective {
3408
+ private routerLinkActive;
3409
+ private tabBar;
3410
+ private destroyRef;
3411
+ trigger: TabBarTriggerDirective;
3412
+ private routerLinkIsActive;
3413
+ isActive: _angular_core.Signal<boolean>;
3414
+ constructor();
3415
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabLinkDirective, never>;
3416
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavTabLinkDirective, "[etNavTabLink]", never, {}, {}, never, never, true, never>;
3417
+ }
3418
+
3419
+ declare class NavTabsOutletDirective {
3420
+ private tabBar;
3421
+ readonly ID: string;
3422
+ activeTriggerId: _angular_core.Signal<string | null>;
3423
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabsOutletDirective, never>;
3424
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavTabsOutletDirective, "[etNavTabsOutlet]", never, {}, {}, never, never, true, never>;
3425
+ }
3426
+
3427
+ declare class NavTabsDirective {
3428
+ private routerEvent;
3429
+ /** @internal */
3430
+ navigationVersion: _angular_core.Signal<number>;
3431
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabsDirective, never>;
3432
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavTabsDirective, "[etNavTabs]", never, {}, {}, never, never, true, never>;
3433
+ }
3434
+
3435
+ declare const NAV_TABS_TOKEN: InjectionToken<NavTabsDirective>;
3436
+
3437
+ declare class NavTabLinkComponent {
3438
+ protected navTabLink: NavTabLinkDirective;
3439
+ private elementRef;
3440
+ protected handleSpace(event: Event): void;
3441
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabLinkComponent, never>;
3442
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavTabLinkComponent, "a[et-nav-tab-link]", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.RouterLink; inputs: { "routerLink": "et-nav-tab-link"; "queryParams": "queryParams"; "fragment": "fragment"; "queryParamsHandling": "queryParamsHandling"; "preserveFragment": "preserveFragment"; "skipLocationChange": "skipLocationChange"; "replaceUrl": "replaceUrl"; "state": "state"; "relativeTo": "relativeTo"; }; outputs: {}; }, { directive: typeof i1.RouterLinkActive; inputs: { "routerLinkActive": "routerLinkActive"; "routerLinkActiveOptions": "routerLinkActiveOptions"; "ariaCurrentWhenActive": "ariaCurrentWhenActive"; }; outputs: {}; }, { directive: typeof TabBarTriggerDirective; inputs: { "disabled": "disabled"; }; outputs: {}; }, { directive: typeof NavTabLinkDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }]>;
3443
+ }
3444
+
3445
+ declare class NavTabsOutletComponent {
3446
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabsOutletComponent, never>;
3447
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavTabsOutletComponent, "et-nav-tabs-outlet", never, {}, {}, never, ["*"], true, [{ directive: typeof NavTabsOutletDirective; inputs: {}; outputs: {}; }]>;
3448
+ }
3449
+
3450
+ declare const TAB_SIZES: {
3451
+ readonly SM: "sm";
3452
+ readonly MD: "md";
3453
+ readonly LG: "lg";
3454
+ };
3455
+ type TabSize = (typeof TAB_SIZES)[keyof typeof TAB_SIZES];
3456
+
3457
+ declare class NavTabsComponent {
3458
+ protected tabBar: TabBarDirective;
3459
+ size: _angular_core.InputSignal<TabSize>;
3460
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabsComponent, never>;
3461
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavTabsComponent, "et-nav-tabs", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }, { directive: typeof TabBarDirective; inputs: { "orientation": "orientation"; "fit": "fit"; "divider": "divider"; "variant": "variant"; }; outputs: {}; }, { directive: typeof NavTabsDirective; inputs: {}; outputs: {}; }]>;
3462
+ }
3463
+
3464
+ declare const TAB_ERROR_CODES: {
3465
+ readonly MISSING_TAB_BAR: 1800;
3466
+ readonly MISSING_TAB_GROUP: 1801;
3467
+ readonly MISSING_TAB_PANEL: 1802;
3468
+ readonly MISSING_NAV_TABS: 1803;
3469
+ };
3470
+
3471
+ declare class TabPanelDirective {
3472
+ private tabGroup;
3473
+ triggerId: _angular_core.InputSignal<string | null>;
3474
+ readonly ID: string;
3475
+ isActive: _angular_core.Signal<boolean>;
3476
+ isInactive: _angular_core.Signal<boolean>;
3477
+ isHidden: _angular_core.Signal<boolean>;
3478
+ shouldRender: _angular_core.Signal<boolean>;
3479
+ constructor();
3480
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabPanelDirective, never>;
3481
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabPanelDirective, "[etTabPanel]", never, { "triggerId": { "alias": "triggerId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3482
+ }
3483
+
3484
+ declare class TabGroupDirective {
3485
+ tabBar: TabBarDirective;
3486
+ private elementRef;
3487
+ preserveContent: _angular_core.InputSignal<boolean>;
3488
+ selectedIndex: _angular_core.ModelSignal<number>;
3489
+ sessionMemoryKey: _angular_core.InputSignal<string | null>;
3490
+ private sessionMemoryAvailable;
3491
+ /** @internal */
3492
+ panels: _angular_core.WritableSignal<TabPanelDirective[]>;
3493
+ restoredSessionMemoryKey: _angular_core.WritableSignal<string>;
3494
+ constructor();
3495
+ /** @internal */
3496
+ registerPanel(panel: TabPanelDirective): void;
3497
+ /** @internal */
3498
+ unregisterPanel(panel: TabPanelDirective): void;
3499
+ private resolveSelectedIndex;
3500
+ private getSessionMemoryStorageKey;
3501
+ private getResolvedSessionMemoryKey;
3502
+ private getSessionMemory;
3503
+ private parseSelectedIndex;
3504
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupDirective, never>;
3505
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabGroupDirective, "[etTabGroup]", never, { "preserveContent": { "alias": "preserveContent"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "sessionMemoryKey": { "alias": "sessionMemoryKey"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; }, never, never, true, never>;
3506
+ }
3507
+
3508
+ declare const TAB_GROUP_TOKEN: InjectionToken<TabGroupDirective>;
3509
+ declare const TAB_PANEL_TOKEN: InjectionToken<TabPanelDirective>;
3510
+
3511
+ declare class TabTriggerDirective {
3512
+ panelId: _angular_core.InputSignal<string | null>;
3513
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabTriggerDirective, never>;
3514
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabTriggerDirective, "[etTabTrigger]", never, { "panelId": { "alias": "panelId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3515
+ }
3516
+
3517
+ declare class TabLabelDirective {
3518
+ templateRef: TemplateRef<unknown>;
3519
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabLabelDirective, never>;
3520
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabLabelDirective, "[etTabLabel]", never, {}, {}, never, never, true, never>;
3521
+ }
3522
+
3523
+ declare class TabComponent {
3524
+ label: _angular_core.InputSignal<string>;
3525
+ icon: _angular_core.InputSignal<string | null>;
3526
+ disabled: _angular_core.InputSignal<boolean>;
3527
+ customLabel: _angular_core.Signal<TabLabelDirective | undefined>;
3528
+ /** @internal */
3529
+ implicitLabelRef: _angular_core.Signal<TemplateRef<unknown>>;
3530
+ /** @internal */
3531
+ contentRef: _angular_core.Signal<TemplateRef<unknown>>;
3532
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
3533
+ 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>;
3534
+ }
3535
+
3536
+ declare class TabGroupComponent {
3537
+ protected tabGroup: TabGroupDirective;
3538
+ size: _angular_core.InputSignal<TabSize>;
3539
+ tabs: _angular_core.Signal<readonly TabComponent[]>;
3540
+ protected triggerElements: _angular_core.Signal<TabBarTriggerDirective[]>;
3541
+ /** @internal */
3542
+ tabGroupId: string;
3543
+ protected isPanelHidden(index: number): boolean;
3544
+ protected shouldRenderPanel(index: number): boolean;
3545
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupComponent, never>;
3546
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabGroupComponent, "et-tab-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, ["tabs"], never, true, [{ directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }, { directive: typeof TabBarDirective; inputs: { "orientation": "orientation"; "fit": "fit"; "divider": "divider"; "variant": "variant"; }; outputs: {}; }, { directive: typeof TabGroupDirective; inputs: { "preserveContent": "preserveContent"; "selectedIndex": "selectedIndex"; "sessionMemoryKey": "sessionMemoryKey"; }; outputs: { "selectedIndexChange": "selectedIndexChange"; }; }]>;
3547
+ }
3548
+
3549
+ declare const NavTabImports: readonly [typeof NavTabsComponent, typeof NavTabLinkComponent, typeof NavTabsOutletComponent];
3550
+ declare const TabImports: readonly [typeof TabGroupComponent, typeof TabComponent, typeof TabLabelDirective];
3551
+
3552
+ type ToggletipContent = string | TemplateRef<unknown>;
3553
+ declare class ToggletipDirective {
3554
+ private destroyRef;
3555
+ private elementRef;
3556
+ private colorProvider;
3557
+ private surfaceProvider;
3558
+ content: _angular_core.InputSignal<ToggletipContent | null>;
3559
+ ariaLabel: _angular_core.InputSignal<string | null>;
3560
+ ariaLabelledBy: _angular_core.InputSignal<string | null>;
3561
+ placement: _angular_core.InputSignal<Placement>;
3562
+ fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
3563
+ offset: _angular_core.InputSignal<OffsetOptions | null>;
3564
+ arrowPadding: _angular_core.InputSignal<Padding | null>;
3565
+ viewportPadding: _angular_core.InputSignal<Padding | null>;
3566
+ disabled: _angular_core.InputSignal<boolean>;
3567
+ open: _angular_core.ModelSignal<boolean>;
3568
+ private overlayManager;
3569
+ /** @internal */
3570
+ overlayRef: _angular_core.WritableSignal<OverlayRef<ToggletipComponent, unknown> | null>;
3571
+ private toggletipId;
3572
+ private contentId;
3573
+ private resolvedAriaLabel;
3574
+ private resolvedAriaDescribedBy;
3575
+ constructor();
3576
+ toggle(): void;
3577
+ show(): void;
3578
+ hide(): void;
3579
+ isOpen(): boolean;
3580
+ controls(): string | null;
3581
+ expanded(): boolean | null;
3582
+ popupRole(): "dialog" | null;
3583
+ private mountToggletip;
3584
+ private closeOverlay;
3585
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggletipDirective, never>;
3586
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToggletipDirective, "[etToggletip]", ["etToggletip"], { "content": { "alias": "etToggletip"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "etToggletipAriaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "etToggletipAriaLabelledBy"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; "isSignal": true; }; "disabled": { "alias": "etToggletipDisabled"; "required": false; "isSignal": true; }; "open": { "alias": "etToggletipOpen"; "required": false; "isSignal": true; }; }, { "open": "etToggletipOpenChange"; }, never, never, true, never>;
3587
+ }
3588
+
3589
+ declare class ToggletipComponent {
3590
+ private ownColorProvider;
3591
+ private ownSurfaceProvider;
3592
+ private triggerColorProvider;
3593
+ private triggerSurfaceProvider;
3594
+ protected injector: Injector;
3595
+ toggletipId: _angular_core.InputSignal<string>;
3596
+ protected contentId: _angular_core.InputSignal<string>;
3597
+ content: _angular_core.InputSignal<ToggletipContent>;
3598
+ colorProvider: _angular_core.InputSignal<ProvideColorDirective | null>;
3599
+ surfaceProvider: _angular_core.InputSignal<ProvideSurfaceDirective | null>;
3600
+ animatedLifecycle: _angular_core.Signal<AnimatedLifecycleDirective | undefined>;
3601
+ private surfaceThemes;
3602
+ hasTemplate: _angular_core.Signal<boolean>;
3603
+ contentText: _angular_core.Signal<string | null>;
3604
+ contentTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
3605
+ resolvedSurface: _angular_core.Signal<string | null>;
3606
+ constructor();
3607
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggletipComponent, never>;
3608
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggletipComponent, "et-toggletip", never, { "toggletipId": { "alias": "toggletipId"; "required": true; "isSignal": true; }; "contentId": { "alias": "contentId"; "required": true; "isSignal": true; }; "content": { "alias": "content"; "required": true; "isSignal": true; }; "colorProvider": { "alias": "colorProvider"; "required": true; "isSignal": true; }; "surfaceProvider": { "alias": "surfaceProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
3609
+ }
3610
+
3611
+ declare class ToggletipCloseDirective {
3612
+ protected overlayRef: OverlayRef<ToggletipComponent, unknown>;
3613
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggletipCloseDirective, never>;
3614
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToggletipCloseDirective, "[etToggletipClose]", never, {}, {}, never, never, true, never>;
3615
+ }
3616
+
3617
+ declare class ToggletipTriggerDirective {
3618
+ private button;
3619
+ private destroyRef;
3620
+ private elementRef;
3621
+ private toggletip;
3622
+ constructor();
3623
+ isOpen(): boolean;
3624
+ pressedVariant(): string | null;
3625
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggletipTriggerDirective, never>;
3626
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToggletipTriggerDirective, "[etToggletipTrigger]", ["etToggletipTrigger"], {}, {}, never, never, true, never>;
3627
+ }
3628
+
3629
+ declare const TOGGLETIP_ERROR_CODES: {
3630
+ readonly TEMPLATE_TOGGLETIP_REQUIRES_LABEL: 1500;
3631
+ readonly TRIGGER_REQUIRES_BUTTON: 1501;
3632
+ readonly TRIGGER_REQUIRES_TOGGLETIP: 1502;
3633
+ };
3634
+
3635
+ declare const TOGGLETIP_IMPORTS: readonly [typeof ToggletipDirective, typeof ToggletipCloseDirective, typeof ToggletipTriggerDirective, typeof ToggletipComponent];
3636
+
3637
+ declare class TooltipComponent {
3638
+ private ownColorProvider;
3639
+ private ownSurfaceProvider;
3640
+ private triggerColorProvider;
3641
+ private triggerSurfaceProvider;
3642
+ tooltipId: _angular_core.InputSignal<string>;
3643
+ content: _angular_core.InputSignal<TooltipContent>;
3644
+ colorProvider: _angular_core.InputSignal<ProvideColorDirective | null>;
3645
+ surfaceProvider: _angular_core.InputSignal<ProvideSurfaceDirective | null>;
3646
+ animatedLifecycle: _angular_core.Signal<AnimatedLifecycleDirective | undefined>;
3647
+ private surfaceThemes;
3648
+ hasTemplate: _angular_core.Signal<boolean>;
3649
+ contentText: _angular_core.Signal<string | null>;
3650
+ contentTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
3651
+ resolvedSurface: _angular_core.Signal<string | null>;
3652
+ constructor();
3653
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
3654
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "et-tooltip", never, { "tooltipId": { "alias": "tooltipId"; "required": true; "isSignal": true; }; "content": { "alias": "content"; "required": true; "isSignal": true; }; "colorProvider": { "alias": "colorProvider"; "required": true; "isSignal": true; }; "surfaceProvider": { "alias": "surfaceProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
3655
+ }
3656
+
3657
+ type TooltipContent = string | TemplateRef<unknown>;
3658
+ declare class TooltipDirective {
3659
+ private document;
3660
+ private destroyRef;
3661
+ private elementRef;
3662
+ private colorProvider;
3663
+ private surfaceProvider;
3664
+ content: _angular_core.InputSignal<TooltipContent | null>;
3665
+ ariaDescription: _angular_core.InputSignal<string | null>;
3666
+ placement: _angular_core.InputSignal<Placement>;
3667
+ fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
3668
+ offset: _angular_core.InputSignal<OffsetOptions | null>;
3669
+ arrowPadding: _angular_core.InputSignal<Padding | null>;
3670
+ viewportPadding: _angular_core.InputSignal<Padding | null>;
3671
+ showDelay: _angular_core.InputSignal<number>;
3672
+ disabled: _angular_core.InputSignal<boolean>;
3673
+ private overlayManager;
3674
+ private focusVisibleTracker;
3675
+ private renderer;
3676
+ /** @internal */
3677
+ overlayRef: _angular_core.WritableSignal<OverlayRef<TooltipComponent, unknown> | null>;
3678
+ private hasHover;
3679
+ private hasFocus;
3680
+ private descriptionId;
3681
+ private descriptionElement;
3682
+ private accessibleDescription;
3683
+ constructor();
3684
+ show(): void;
3685
+ hide(): void;
3686
+ private setupHoverBehavior;
3687
+ private setupFocusBehavior;
3688
+ private syncHostDescription;
3689
+ private syncDescriptionElement;
3690
+ private removeDescriptionElement;
3691
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
3692
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[etTooltip]", ["etTooltip"], { "content": { "alias": "etTooltip"; "required": false; "isSignal": true; }; "ariaDescription": { "alias": "etTooltipAriaDescription"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "etTooltipDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3693
+ }
3694
+
3695
+ declare const TOOLTIP_ERROR_CODES: {
3696
+ readonly TEMPLATE_TOOLTIP_REQUIRES_DESCRIPTION: 1400;
3697
+ };
3698
+
3699
+ declare const TOOLTIP_IMPORTS: readonly [typeof TooltipDirective, typeof TooltipComponent];
3700
+
3701
+ export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, FACEBOOK_PLAYER_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDirective, GridDragDirective, GridImports, GridItemComponent, GridItemDirective, GridItemRef, GridResizeDirective, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LOCK_ICON, LabelDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, OVERLAY_ERROR_CODES, OVERLAY_IMPORTS, OVERLAY_REF, OverlayAnchorDirective, OverlayDirective, OverlaySurfaceDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, RadioComponent, RadioGroupComponent, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SOOP_PLAYER_TOKEN, STREAM_CONSENT_TOKEN, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableErrorCode, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, createGridAdapter, createNotificationRef, createOverlayRef, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, fromGridPosition, injectFormSupport, injectGridConfig, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, provideFormSupport, provideGridConfig, provideIcons, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlayManager, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, toGridPosition };
3702
+ export type { ButtonIconAlignment, ButtonSize, FacebookVideoPlayer, FacebookWindow, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldSize, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridItemConfig, GridItemConstraints, GridItemPosition, GridLayoutEntry, GridSerializedState, HintComponentBase, IconDefinition, InputTextAlignment, LabelDirectiveBase, NotificationAction, NotificationConfig, NotificationEntry, NotificationManager, NotificationManagerConfig, NotificationRef, NotificationStackContext, NotificationStatus, OverlayAutoFocusTarget, OverlayConfig, OverlayManager, OverlayMode, OverlayPositionStrategy, OverlayRef, OverlayRole, OverlaySurfaceContext, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SelectionListDirectiveBase, SelectionListItem, StreamConfig, StreamConsentConfig, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, ToggletipContent, TooltipContent, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };