@almoamendev/ngx-md3 0.0.8

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,1298 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ViewContainerRef, Injector, ElementRef, AfterViewInit, OnDestroy, OnInit, Renderer2, Signal, InputSignal, AfterContentInit, Type, ComponentRef, InjectionToken, TemplateRef } from '@angular/core';
3
+ import { FlexibleConnectedPositionStrategyOrigin, ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';
4
+ import * as i1 from '@angular/cdk/scrolling';
5
+ import { AbstractControl } from '@angular/forms';
6
+ import * as i1$1 from '@angular/router';
7
+ import { Observable } from 'rxjs';
8
+ import { CdkPortalOutlet } from '@angular/cdk/portal';
9
+
10
+ type TextSize = 'large' | 'medium' | 'small';
11
+
12
+ type TextColor = 'on-primary' | 'on-primary-container' | 'on-secondary' | 'on-secondary-container' | 'on-tertiary' | 'on-tertiary-container' | 'on-primary-fixed' | 'on-primary-fixed-variant' | 'on-secondary-fixed' | 'on-secondary-fixed-variant' | 'on-tertiary-fixed' | 'on-tertiary-fixed-variant' | 'on-error' | 'on-error-container' | 'on-surface' | 'on-surface-variant' | 'inverse-on-surface';
13
+
14
+ type CardType = 'elevated' | 'filled' | 'outlined';
15
+
16
+ type ButtonSize = 'x-small' | 'small' | 'medium' | 'large' | 'x-large';
17
+
18
+ type ButtonType = 'elevated' | 'filled' | 'tonal' | 'outlined' | 'text';
19
+
20
+ type IconButtonType = 'filled' | 'tonal' | 'outlined' | 'standard';
21
+
22
+ type IconButtonWidth = 'default' | 'narrow' | 'wide';
23
+
24
+ type SplitButtonType = 'elevated' | 'filled' | 'tonal' | 'outlined';
25
+
26
+ type ButtonGroupType = 'standard' | 'connected';
27
+
28
+ type ButtonGroupSelection = 'none' | 'single' | 'multiple';
29
+
30
+ type FabSize = 'small' | 'medium' | 'large';
31
+
32
+ type FabType = 'tonal-primary' | 'tonal-secondary' | 'tonal-tertiary' | 'primary' | 'secondary' | 'tertiary';
33
+
34
+ type SliderSize = 'x-small' | 'small' | 'medium' | 'large' | 'x-large';
35
+
36
+ type DialogRole = 'dialog' | 'alertdialog';
37
+
38
+ type ChipType = 'assist' | 'filter' | 'input' | 'suggestion';
39
+
40
+ type ChipStyle = 'default' | 'surface' | 'elevated';
41
+
42
+ type ListLeadingType = 'icon' | 'avatar' | 'media' | 'selection-input';
43
+
44
+ type ListLeadingSize = 'image' | 'small-video' | 'large-video';
45
+
46
+ interface DialogConfig<D = unknown> {
47
+ /**
48
+ * Optional data passed to the component opened inside the dialog.
49
+ * The dynamic component can read it by injecting DIALOG_DATA.
50
+ */
51
+ data?: D;
52
+ /**
53
+ * When enabled, object keys from data are also assigned to matching inputs
54
+ * on the dynamic component through Angular's setInput API.
55
+ */
56
+ bindDataToInputs?: boolean;
57
+ disableCloseEvents?: boolean;
58
+ role?: DialogRole;
59
+ ariaLabel?: string;
60
+ ariaLabelledBy?: string;
61
+ ariaDescribedBy?: string;
62
+ scheme?: 'inherit' | 'dark' | 'light';
63
+ direction?: null | 'ltr' | 'rtl';
64
+ /**
65
+ * Optional Angular context for the dynamic component. Passing a
66
+ * ViewContainerRef keeps dependency lookup close to the caller.
67
+ */
68
+ viewContainerRef?: ViewContainerRef;
69
+ injector?: Injector;
70
+ }
71
+
72
+ type MenuPositionX = 'start' | 'end' | 'before' | 'after' | 'center';
73
+ type MenuPositionY = 'above' | 'below' | 'center';
74
+ type MenuScrollStrategy = 'reposition' | 'block' | 'close' | 'noop';
75
+ type MenuPositionOrigin = FlexibleConnectedPositionStrategyOrigin | MouseEvent;
76
+ interface MenuConfig<D = unknown> {
77
+ /**
78
+ * Optional data passed to the component opened inside the menu.
79
+ * The dynamic component can read it by injecting MENU_DATA.
80
+ */
81
+ data?: D;
82
+ /**
83
+ * When enabled, object keys from data are also assigned to matching inputs
84
+ * on the dynamic component through Angular's setInput API.
85
+ */
86
+ bindDataToInputs?: boolean;
87
+ menuColors?: 'standard' | 'vibrant';
88
+ /**
89
+ * Element or point the menu should open from. If omitted, the service uses
90
+ * the currently focused element, which usually is the trigger button.
91
+ */
92
+ origin?: MenuPositionOrigin;
93
+ /**
94
+ * Horizontal alignment against the origin.
95
+ * start/end align edges, before/after place the menu beside the origin.
96
+ */
97
+ xPosition?: MenuPositionX;
98
+ /**
99
+ * Vertical alignment against the origin.
100
+ */
101
+ yPosition?: MenuPositionY;
102
+ /**
103
+ * Keep the menu on top of the trigger instead of opening outside it.
104
+ */
105
+ overlapTrigger?: boolean;
106
+ /**
107
+ * Additional pixel offsets from the resolved connected position.
108
+ */
109
+ offsetX?: number;
110
+ offsetY?: number;
111
+ /**
112
+ * Distance in pixels the menu should keep from the viewport edge.
113
+ * Values below 0.5em are raised to 0.5em.
114
+ */
115
+ viewportMargin?: number;
116
+ /**
117
+ * Custom CDK connected positions. When provided, these replace the default
118
+ * Material-style fallback positions.
119
+ */
120
+ positions?: ConnectedPosition[];
121
+ /**
122
+ * How the menu reacts when the page scrolls.
123
+ */
124
+ scrollStrategy?: MenuScrollStrategy;
125
+ /**
126
+ * Menu scheme colors
127
+ * @default inherit
128
+ */
129
+ scheme?: 'inherit' | 'dark' | 'light';
130
+ /**
131
+ * Menu direction. when null the direction will depends on default page direction.
132
+ * @default null
133
+ */
134
+ direction?: null | 'ltr' | 'rtl';
135
+ /**
136
+ * Optional Angular context for the dynamic component. Passing a
137
+ * ViewContainerRef keeps dependency lookup close to the caller.
138
+ */
139
+ viewContainerRef?: ViewContainerRef;
140
+ /**
141
+ * Optional Angular injector used when creating the menu component.
142
+ */
143
+ injector?: Injector;
144
+ }
145
+
146
+ type SideSheetSide = 'start' | 'end';
147
+ type SideSheetType = 'default' | 'standard' | 'modal';
148
+ interface SideSheetConfig<D = unknown> {
149
+ data?: D;
150
+ bindDataToInputs?: boolean;
151
+ side?: SideSheetSide;
152
+ type?: SideSheetType;
153
+ inset?: boolean;
154
+ divider?: boolean;
155
+ closeExisting?: boolean;
156
+ viewContainerRef?: ViewContainerRef;
157
+ injector?: Injector;
158
+ }
159
+ interface SideSheetContainer {
160
+ element: HTMLElement;
161
+ showSheet(value: boolean): void;
162
+ setHidden(value: boolean): void;
163
+ }
164
+
165
+ type SnackbarPoliteness = 'polite' | 'assertive';
166
+ interface SnackbarConfig<D = unknown> {
167
+ /**
168
+ * Context object passed to the message when it is a TemplateRef (read via
169
+ * NgTemplateOutlet's context). Ignored when the message is a plain string.
170
+ */
171
+ data?: D;
172
+ /**
173
+ * Shows a close (dismiss) icon instead of a text action. Material Design 3
174
+ * snackbars support only one or the other, never both — passing an
175
+ * actionLabel to SnackbarService.open() together with showCloseIcon: true
176
+ * throws, since that combination isn't a valid MD3 snackbar.
177
+ */
178
+ showCloseIcon?: boolean;
179
+ /**
180
+ * Stacks the action below the message on its own line, aligned to the
181
+ * inline-end, instead of placing it beside the message on one row. Use
182
+ * this when the action label is too long to comfortably share a line
183
+ * with the message — Material Design 3's "long action" snackbar layout.
184
+ * Has no effect when there's no actionLabel.
185
+ */
186
+ stackedAction?: boolean;
187
+ /**
188
+ * Called when the action button is clicked, right before the snackbar
189
+ * closes with reason 'action'. Only fires for the action button — never
190
+ * for the close icon, which always just dismisses. Equivalent to
191
+ * subscribing to SnackbarRef.onAction(), but handy when you don't want
192
+ * to hold onto the ref just to react to the click.
193
+ */
194
+ onAction?: () => void;
195
+ /**
196
+ * Auto-dismiss delay in milliseconds. Defaults to 4000. Pass 0 to disable
197
+ * auto-dismiss entirely — the snackbar then stays open until the action,
198
+ * the close icon, SnackbarRef.close(), or SnackbarService.dismiss() is
199
+ * used. Useful for progress/status snackbars driven by a TemplateRef.
200
+ */
201
+ duration?: number;
202
+ /**
203
+ * Controls aria-live politeness and the implicit role: 'polite' renders
204
+ * role="status" (announced without interrupting), 'assertive' renders
205
+ * role="alert" (announced immediately). Defaults to 'polite'.
206
+ */
207
+ politeness?: SnackbarPoliteness;
208
+ /**
209
+ * When true, immediately dismisses whatever snackbar is currently showing
210
+ * and moves this one to the front of the queue instead of waiting its
211
+ * turn behind already-queued snackbars.
212
+ */
213
+ replaceCurrent?: boolean;
214
+ ariaLabel?: string;
215
+ scheme?: 'inherit' | 'dark' | 'light';
216
+ direction?: null | 'ltr' | 'rtl';
217
+ position?: 'start' | 'center' | 'end';
218
+ /**
219
+ * Extra space, in pixels, to add below the snackbar on top of the
220
+ * automatic inset the scaffold already applies to clear a bottom
221
+ * navigation bar. Use this to clear your own fixed bottom elements —
222
+ * a custom bottom bar, a FAB, etc. — that the scaffold doesn't know
223
+ * about. Defaults to 0.
224
+ */
225
+ bottomOffset?: number;
226
+ /**
227
+ * Optional Angular context for the message TemplateRef.
228
+ */
229
+ viewContainerRef?: ViewContainerRef;
230
+ injector?: Injector;
231
+ }
232
+
233
+ declare class TypeDisplay {
234
+ el: ElementRef;
235
+ size: _angular_core.InputSignal<TextSize | "default">;
236
+ color: _angular_core.InputSignal<TextColor | "default">;
237
+ emphasized: _angular_core.InputSignalWithTransform<boolean, unknown>;
238
+ constructor(el: ElementRef);
239
+ get element(): HTMLElement;
240
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TypeDisplay, never>;
241
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TypeDisplay, "md3-type-display, [md3-type-display]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emphasized": { "alias": "emphasized"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
242
+ }
243
+
244
+ declare class TypeHeadline {
245
+ el: ElementRef;
246
+ size: _angular_core.InputSignal<TextSize | "default">;
247
+ color: _angular_core.InputSignal<TextColor | "default">;
248
+ emphasized: _angular_core.InputSignalWithTransform<boolean, unknown>;
249
+ constructor(el: ElementRef);
250
+ get element(): HTMLElement;
251
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TypeHeadline, never>;
252
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TypeHeadline, "md3-type-headline, [md3-type-headline]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emphasized": { "alias": "emphasized"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
253
+ }
254
+
255
+ declare class TypeTitle {
256
+ el: ElementRef;
257
+ size: _angular_core.InputSignal<TextSize | "default">;
258
+ color: _angular_core.InputSignal<TextColor | "default">;
259
+ emphasized: _angular_core.InputSignalWithTransform<boolean, unknown>;
260
+ constructor(el: ElementRef);
261
+ get element(): HTMLElement;
262
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TypeTitle, never>;
263
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TypeTitle, "md3-type-title, [md3-type-title]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emphasized": { "alias": "emphasized"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
264
+ }
265
+
266
+ declare class TypeBody {
267
+ el: ElementRef;
268
+ size: _angular_core.InputSignal<TextSize | "default">;
269
+ color: _angular_core.InputSignal<TextColor | "default">;
270
+ emphasized: _angular_core.InputSignalWithTransform<boolean, unknown>;
271
+ constructor(el: ElementRef);
272
+ get element(): HTMLElement;
273
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TypeBody, never>;
274
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TypeBody, "md3-type-body, [md3-type-body]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emphasized": { "alias": "emphasized"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
275
+ }
276
+
277
+ declare class TypeLabel {
278
+ el: ElementRef;
279
+ size: _angular_core.InputSignal<TextSize | "default">;
280
+ color: _angular_core.InputSignal<TextColor | "default">;
281
+ emphasized: _angular_core.InputSignalWithTransform<boolean, unknown>;
282
+ constructor(el: ElementRef);
283
+ get element(): HTMLElement;
284
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TypeLabel, never>;
285
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TypeLabel, "md3-type-label, [md3-type-label]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emphasized": { "alias": "emphasized"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
286
+ }
287
+
288
+ type ViewportWidth = 'compact' | 'medium' | 'expanded' | 'large' | 'extra-large';
289
+
290
+ type ViewportHeight = 'compact' | 'medium' | 'expanded';
291
+
292
+ type Md3NavigationMode = 'none' | 'navigation-bar' | 'navigation-rail' | 'standard-drawer' | 'modal-drawer';
293
+ declare class LayoutService {
294
+ private readonly document;
295
+ private readonly breakpointObserver;
296
+ private readonly router;
297
+ private readonly widthQueries;
298
+ private readonly heightQueries;
299
+ private mainPaneSub?;
300
+ private mainPaneEl?;
301
+ private panesContainerResizeObserver?;
302
+ private panesContainerResizeListener?;
303
+ readonly mainScrollTop: _angular_core.WritableSignal<number>;
304
+ readonly mainIsScrolled: _angular_core.Signal<boolean>;
305
+ /**
306
+ * Distance, in pixels, between the viewport bottom and the bottom edge of
307
+ * the scaffold's .md3-panes-container — i.e. whatever the bottom scaffold
308
+ * bar (nav bar) currently reserves, or 0 when there is none. Overlay-based
309
+ * components anchored to the viewport bottom (like Snackbar) read this so
310
+ * they never render lower than the panes container.
311
+ */
312
+ readonly bottomInset: _angular_core.WritableSignal<number>;
313
+ readonly viewport: _angular_core.Signal<{
314
+ width: number;
315
+ height: number;
316
+ } | {
317
+ readonly width: number;
318
+ readonly height: number;
319
+ }>;
320
+ readonly widthClass: _angular_core.Signal<ViewportWidth>;
321
+ readonly heightClass: _angular_core.Signal<ViewportHeight>;
322
+ readonly direction: _angular_core.WritableSignal<"ltr" | "rtl">;
323
+ readonly isCompact: _angular_core.Signal<boolean>;
324
+ readonly isMedium: _angular_core.Signal<boolean>;
325
+ readonly isExpanded: _angular_core.Signal<boolean>;
326
+ readonly isLarge: _angular_core.Signal<boolean>;
327
+ readonly isExtraLarge: _angular_core.Signal<boolean>;
328
+ readonly isPortrait: _angular_core.Signal<boolean>;
329
+ readonly isLandscape: _angular_core.Signal<boolean>;
330
+ readonly preferredNavigationMode: _angular_core.Signal<"navigation-bar" | "navigation-rail" | "standard-drawer">;
331
+ darkMode: _angular_core.WritableSignal<boolean>;
332
+ constructor();
333
+ setDirection(direction: 'ltr' | 'rtl'): void;
334
+ private scrollMainPaneToTop;
335
+ registerMainPane(element: HTMLElement): void;
336
+ unregisterMainPane(element: HTMLElement): void;
337
+ registerPanesContainer(element: HTMLElement): void;
338
+ unregisterPanesContainer(): void;
339
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutService, never>;
340
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<LayoutService>;
341
+ }
342
+
343
+ declare class Scaffold implements AfterViewInit, OnDestroy {
344
+ private startOutlet;
345
+ private endOutlet;
346
+ private panesContainer;
347
+ private sheets;
348
+ private layout;
349
+ ngAfterViewInit(): void;
350
+ ngOnDestroy(): void;
351
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Scaffold, never>;
352
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Scaffold, "md3-scaffold", never, {}, {}, never, ["[md3-scaffold-bar=top]", "[md3-scaffold-rail=leading]", "[md3-scaffold-pane=start]", "[md3-scaffold-pane=main]", "[md3-scaffold-pane=end]", "[md3-scaffold-rail=trailing]", "[md3-scaffold-bar=bottom]"], true, never>;
353
+ }
354
+
355
+ declare class ScaffoldBar {
356
+ region: _angular_core.InputSignal<"top" | "bottom">;
357
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScaffoldBar, never>;
358
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScaffoldBar, "[md3-scaffold-bar]", never, { "region": { "alias": "md3-scaffold-bar"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
359
+ }
360
+
361
+ declare class ScaffoldRail {
362
+ region: _angular_core.InputSignal<"leading" | "trailing">;
363
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScaffoldRail, never>;
364
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScaffoldRail, "[md3-scaffold-rail]", never, { "region": { "alias": "md3-scaffold-rail"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
365
+ }
366
+
367
+ declare class ScaffoldPane implements OnDestroy {
368
+ private el;
369
+ private layout;
370
+ role: _angular_core.InputSignal<"start" | "end" | "main">;
371
+ constructor(el: ElementRef, layout: LayoutService);
372
+ ngOnDestroy(): void;
373
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScaffoldPane, never>;
374
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScaffoldPane, "[md3-scaffold-pane]", never, { "role": { "alias": "md3-scaffold-pane"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkScrollable; inputs: {}; outputs: {}; }]>;
375
+ }
376
+
377
+ declare class Grid {
378
+ private readonly layout;
379
+ readonly cols: _angular_core.InputSignal<number | undefined>;
380
+ protected readonly columns: _angular_core.Signal<number>;
381
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Grid, never>;
382
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Grid, "md3-grid, [md3-grid]", never, { "cols": { "alias": "cols"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
383
+ }
384
+
385
+ declare class GridItem {
386
+ readonly colSpan: _angular_core.InputSignalWithTransform<number, unknown>;
387
+ protected readonly span: _angular_core.Signal<string>;
388
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridItem, never>;
389
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridItem, "md3-grid-item, [md3-grid-item]", never, { "colSpan": { "alias": "col-span"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
390
+ }
391
+
392
+ declare class InputElement {
393
+ private el;
394
+ constructor(el: ElementRef<HTMLInputElement>);
395
+ get nativeElement(): HTMLInputElement;
396
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputElement, never>;
397
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputElement, "[md3-input-element]", never, {}, {}, never, never, true, never>;
398
+ }
399
+
400
+ declare class StateComponent implements OnInit {
401
+ private el;
402
+ private renderer;
403
+ private stateLayer?;
404
+ private stateLayerSignal;
405
+ constructor(el: ElementRef<HTMLElement>, renderer: Renderer2);
406
+ ngOnInit(): void;
407
+ private init;
408
+ setStateLayer(value: boolean): void;
409
+ private enable;
410
+ private disable;
411
+ onPointerDown(event: PointerEvent): void;
412
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StateComponent, never>;
413
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StateComponent, "[md3-state-component]", never, {}, {}, never, never, true, never>;
414
+ }
415
+
416
+ declare class IconElement {
417
+ private el;
418
+ iconType: _angular_core.InputSignal<string | null>;
419
+ constructor(el: ElementRef);
420
+ get element(): HTMLElement;
421
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconElement, never>;
422
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IconElement, "[md3-icon-element]", never, { "iconType": { "alias": "md3-icon-element"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
423
+ }
424
+
425
+ declare class MaterialIcon {
426
+ private el;
427
+ iconVersion: _angular_core.InputSignal<"MaterialIcons" | "MaterialSymbols">;
428
+ isFilled: _angular_core.InputSignalWithTransform<boolean, unknown>;
429
+ iconStyle: _angular_core.InputSignal<"outlined" | "normal" | "rounded" | "sharp" | "two-tone">;
430
+ iconSize: _angular_core.InputSignal<48 | 36 | 24 | 18>;
431
+ biDirectional: _angular_core.InputSignalWithTransform<boolean, unknown>;
432
+ constructor(el: ElementRef);
433
+ get element(): HTMLElement;
434
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MaterialIcon, never>;
435
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MaterialIcon, "md3-icon", never, { "iconVersion": { "alias": "icon-version"; "required": false; "isSignal": true; }; "isFilled": { "alias": "filled"; "required": false; "isSignal": true; }; "iconStyle": { "alias": "icon-style"; "required": false; "isSignal": true; }; "iconSize": { "alias": "icon-size"; "required": false; "isSignal": true; }; "biDirectional": { "alias": "bi-directional"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
436
+ }
437
+
438
+ declare class Divider {
439
+ dividerType: _angular_core.InputSignal<string | null>;
440
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Divider, never>;
441
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Divider, "md3-divider", never, { "dividerType": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
442
+ }
443
+
444
+ declare class Badge {
445
+ private el;
446
+ isSmall: _angular_core.InputSignalWithTransform<boolean, unknown>;
447
+ constructor(el: ElementRef);
448
+ get element(): HTMLElement;
449
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Badge, never>;
450
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Badge, "md3-badge", never, { "isSmall": { "alias": "small"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
451
+ }
452
+
453
+ declare class Avatar {
454
+ constructor();
455
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Avatar, never>;
456
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Avatar, "[md3-avatar]", never, {}, {}, never, never, true, [{ directive: typeof StateComponent; inputs: {}; outputs: {}; }]>;
457
+ }
458
+
459
+ declare class Button {
460
+ private el;
461
+ private context;
462
+ onClick(event: Event): void;
463
+ buttonSize: _angular_core.InputSignal<ButtonSize>;
464
+ buttonType: _angular_core.InputSignal<ButtonType>;
465
+ isSquared: _angular_core.InputSignalWithTransform<boolean, unknown>;
466
+ isSelected: _angular_core.ModelSignal<boolean | null>;
467
+ effectiveSize: _angular_core.Signal<ButtonSize>;
468
+ effectiveType: _angular_core.Signal<"elevated" | "filled" | "outlined" | "tonal" | "text">;
469
+ effectiveSquared: _angular_core.Signal<boolean>;
470
+ constructor(el: ElementRef);
471
+ get element(): HTMLElement;
472
+ enableSelection(): void;
473
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
474
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "button[md3-button], a[md3-button]", never, { "buttonSize": { "alias": "button-size"; "required": false; "isSignal": true; }; "buttonType": { "alias": "button-type"; "required": false; "isSignal": true; }; "isSquared": { "alias": "button-squared"; "required": false; "isSignal": true; }; "isSelected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "isSelected": "selectedChange"; }, never, ["[md3-icon-element]", "*"], true, [{ directive: typeof StateComponent; inputs: {}; outputs: {}; }]>;
475
+ }
476
+
477
+ declare class FloatingActionButton {
478
+ private el;
479
+ private context;
480
+ buttonSize: _angular_core.InputSignal<FabSize>;
481
+ buttonType: _angular_core.InputSignal<FabType>;
482
+ isExtended: _angular_core.InputSignalWithTransform<boolean, unknown>;
483
+ effectiveSize: _angular_core.Signal<"large" | "medium" | "small" | "x-small" | "x-large">;
484
+ effectiveExtended: _angular_core.Signal<boolean>;
485
+ constructor(el: ElementRef);
486
+ get element(): HTMLElement;
487
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingActionButton, never>;
488
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingActionButton, "button[md3-fab], a[md3-fab]", never, { "buttonSize": { "alias": "button-size"; "required": false; "isSignal": true; }; "buttonType": { "alias": "button-type"; "required": false; "isSignal": true; }; "isExtended": { "alias": "extended"; "required": false; "isSignal": true; }; }, {}, never, ["[md3-icon-element]", "*"], true, [{ directive: typeof StateComponent; inputs: {}; outputs: {}; }]>;
489
+ }
490
+
491
+ declare class IconButton {
492
+ private el;
493
+ private context;
494
+ onClick(event: Event): void;
495
+ buttonSize: _angular_core.InputSignal<ButtonSize>;
496
+ buttonType: _angular_core.InputSignal<IconButtonType>;
497
+ buttonWidth: _angular_core.InputSignal<IconButtonWidth>;
498
+ isSquared: _angular_core.InputSignalWithTransform<boolean, unknown>;
499
+ isSelected: _angular_core.ModelSignal<boolean | null>;
500
+ effectiveSize: _angular_core.Signal<ButtonSize>;
501
+ effectiveType: _angular_core.Signal<IconButtonType>;
502
+ effectiveWidth: _angular_core.Signal<IconButtonWidth>;
503
+ effectiveSquared: _angular_core.Signal<boolean>;
504
+ constructor(el: ElementRef);
505
+ get element(): HTMLElement;
506
+ enableSelection(): void;
507
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconButton, never>;
508
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButton, "button[md3-icon-button], a[md3-icon-button]", never, { "buttonSize": { "alias": "button-size"; "required": false; "isSignal": true; }; "buttonType": { "alias": "button-type"; "required": false; "isSignal": true; }; "buttonWidth": { "alias": "button-width"; "required": false; "isSignal": true; }; "isSquared": { "alias": "button-squared"; "required": false; "isSignal": true; }; "isSelected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "isSelected": "selectedChange"; }, never, ["[md3-icon-element]", "*"], true, [{ directive: typeof StateComponent; inputs: {}; outputs: {}; }]>;
509
+ }
510
+
511
+ interface ButtonContext {
512
+ buttonContextSize?: Signal<ButtonSize>;
513
+ buttonContextType?: Signal<SplitButtonType>;
514
+ buttonContextWidth?: Signal<IconButtonWidth>;
515
+ buttonContextSquared?: Signal<boolean>;
516
+ buttonContextExtended?: Signal<boolean>;
517
+ }
518
+
519
+ declare class SplitButton implements ButtonContext {
520
+ private el;
521
+ buttonSize: _angular_core.InputSignal<ButtonSize>;
522
+ buttonType: _angular_core.InputSignal<SplitButtonType>;
523
+ flipTrailingIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
524
+ private button;
525
+ private iconButtons;
526
+ buttonContextSize: Signal<ButtonSize>;
527
+ buttonContextType: Signal<SplitButtonType>;
528
+ buttonContextWidth: Signal<IconButtonWidth>;
529
+ buttonContextSquared?: Signal<boolean>;
530
+ constructor(el: ElementRef);
531
+ get element(): HTMLElement;
532
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitButton, never>;
533
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SplitButton, "md3-split-button", never, { "buttonSize": { "alias": "button-size"; "required": false; "isSignal": true; }; "buttonType": { "alias": "button-type"; "required": false; "isSignal": true; }; "flipTrailingIcon": { "alias": "flip-trailing-icon"; "required": false; "isSignal": true; }; }, {}, ["button", "iconButtons"], ["button[md3-button], button[md3-icon-button][md3-main-action], a[md3-button], a[md3-icon-button][md3-main-action]", "button[md3-icon-button], a[md3-icon-button]"], true, never>;
534
+ }
535
+
536
+ declare class ButtonGroup implements ButtonContext {
537
+ private el;
538
+ onClick(event: PointerEvent): void;
539
+ buttonSize: InputSignal<ButtonSize>;
540
+ groupType: InputSignal<ButtonGroupType>;
541
+ groupSelection: InputSignal<ButtonGroupSelection>;
542
+ private buttons;
543
+ private iconButtons;
544
+ buttonContextSize: Signal<ButtonSize>;
545
+ constructor(el: ElementRef);
546
+ get element(): HTMLElement;
547
+ private findEventButton;
548
+ private normalizeSingleSelection;
549
+ private clearOtherSelections;
550
+ private allButtons;
551
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonGroup, never>;
552
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonGroup, "md3-button-group", never, { "buttonSize": { "alias": "button-size"; "required": false; "isSignal": true; }; "groupType": { "alias": "group-type"; "required": false; "isSignal": true; }; "groupSelection": { "alias": "selection"; "required": false; "isSignal": true; }; }, {}, ["buttons", "iconButtons"], ["button[md3-button], button[md3-icon-button], a[md3-button], a[md3-icon-button]"], true, never>;
553
+ }
554
+
555
+ declare class Card implements AfterViewInit {
556
+ private el;
557
+ private state;
558
+ cardType: _angular_core.InputSignal<CardType>;
559
+ isInteractive: _angular_core.InputSignalWithTransform<boolean, unknown>;
560
+ private isActionTag;
561
+ constructor(el: ElementRef, state: StateComponent);
562
+ get element(): HTMLElement;
563
+ ngAfterViewInit(): void;
564
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Card, never>;
565
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Card, "md3-card, button[md3-card], a[md3-card]", never, { "cardType": { "alias": "card-type"; "required": false; "isSignal": true; }; "isInteractive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof StateComponent; inputs: {}; outputs: {}; }]>;
566
+ }
567
+
568
+ declare class ChipAvatar {
569
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChipAvatar, never>;
570
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ChipAvatar, "[md3-chip-avatar]", never, {}, {}, never, never, true, never>;
571
+ }
572
+ declare class Chips {
573
+ private el;
574
+ chipType: _angular_core.InputSignal<ChipType>;
575
+ chipStyle: _angular_core.InputSignal<ChipStyle>;
576
+ trailingFunction: _angular_core.OutputEmitterRef<void>;
577
+ protected onTrailingClick(event: Event): void;
578
+ private avatar;
579
+ private iconElements;
580
+ hasSurface: _angular_core.InputSignalWithTransform<boolean, unknown>;
581
+ isElevated: _angular_core.InputSignalWithTransform<boolean, unknown>;
582
+ leading: _angular_core.Signal<IconElement | undefined>;
583
+ trailing: _angular_core.Signal<IconElement | undefined>;
584
+ isSelectable: _angular_core.Signal<boolean>;
585
+ showCheckIcon: _angular_core.Signal<boolean>;
586
+ hasAvatar: _angular_core.Signal<boolean>;
587
+ hasRemove: _angular_core.Signal<boolean>;
588
+ constructor(el: ElementRef);
589
+ get element(): HTMLElement;
590
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Chips, never>;
591
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Chips, "button[md3-chip], a[md3-chip], label[md3-chip]", never, { "chipType": { "alias": "chip-type"; "required": false; "isSignal": true; }; "chipStyle": { "alias": "chip-style"; "required": false; "isSignal": true; }; "hasSurface": { "alias": "surface"; "required": false; "isSignal": true; }; "isElevated": { "alias": "elevated"; "required": false; "isSignal": true; }; }, { "trailingFunction": "on-trailing"; }, ["avatar", "iconElements"], ["[md3-input-element]", "[md3-icon-element=leading], [md3-chip-avatar]", "*", "[md3-icon-element=trailing]"], true, never>;
592
+ }
593
+
594
+ declare class Checkbox {
595
+ control: _angular_core.InputSignal<AbstractControl<any, any, any> | undefined>;
596
+ private stateComponent;
597
+ private input;
598
+ private controlName;
599
+ private controlError;
600
+ private nativeInputError;
601
+ disableStateLayer: _angular_core.InputSignalWithTransform<boolean, unknown>;
602
+ protected checkboxIcon: 'check_small' | 'check_indeterminate_small';
603
+ state: _angular_core.WritableSignal<boolean | null>;
604
+ protected formControl: Signal<AbstractControl<any, any, any> | undefined>;
605
+ private inputError;
606
+ private inputDisabledState;
607
+ isDisabled: Signal<boolean>;
608
+ constructor();
609
+ private syncInitialState;
610
+ private updateState;
611
+ private syncStateFromInput;
612
+ private syncInputFromState;
613
+ private syncControlFromState;
614
+ private syncStateFromControl;
615
+ private syncNativeInputState;
616
+ private syncControlError;
617
+ private syncInputDisabledState;
618
+ private hasNativeInputError;
619
+ private hasControlError;
620
+ private syncAriaInvalidAttribute;
621
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Checkbox, never>;
622
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Checkbox, "md3-checkbox", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "disableStateLayer": { "alias": "disable-state-layer"; "required": false; "isSignal": true; }; }, {}, ["input", "controlName"], ["[md3-input-element]"], true, never>;
623
+ }
624
+
625
+ declare class RadioButton {
626
+ control: _angular_core.InputSignal<AbstractControl<any, any, any> | undefined>;
627
+ private stateComponent;
628
+ private input;
629
+ private controlName;
630
+ private controlError;
631
+ private nativeInputError;
632
+ disableStateLayer: _angular_core.InputSignalWithTransform<boolean, unknown>;
633
+ state: _angular_core.WritableSignal<boolean>;
634
+ protected formControl: _angular_core.Signal<AbstractControl<any, any, any> | undefined>;
635
+ private inputError;
636
+ private inputDisabledState;
637
+ isDisabled: _angular_core.Signal<boolean>;
638
+ constructor();
639
+ private syncInitialState;
640
+ private getInputValue;
641
+ private updateState;
642
+ private syncStateFromInput;
643
+ private syncInputFromState;
644
+ private syncControlFromInput;
645
+ private syncStateFromControl;
646
+ private isSameRadioGroup;
647
+ private syncNativeInputState;
648
+ private syncControlError;
649
+ private syncInputDisabledState;
650
+ private hasNativeInputError;
651
+ private hasControlError;
652
+ private syncAriaInvalidAttribute;
653
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioButton, never>;
654
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioButton, "md3-radio-button", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "disableStateLayer": { "alias": "disable-state-layer"; "required": false; "isSignal": true; }; }, {}, ["input", "controlName"], ["[md3-input-element]"], true, never>;
655
+ }
656
+
657
+ declare class Switch {
658
+ control: _angular_core.InputSignal<AbstractControl<any, any, any> | undefined>;
659
+ private stateComponent;
660
+ private input;
661
+ private controlName;
662
+ private controlError;
663
+ private nativeInputError;
664
+ disableStateLayer: _angular_core.InputSignalWithTransform<boolean, unknown>;
665
+ state: _angular_core.WritableSignal<boolean>;
666
+ protected formControl: _angular_core.Signal<AbstractControl<any, any, any> | undefined>;
667
+ private inputError;
668
+ private inputDisabledState;
669
+ isDisabled: _angular_core.Signal<boolean>;
670
+ constructor();
671
+ private syncInitialState;
672
+ private updateState;
673
+ private syncStateFromInput;
674
+ private syncInputFromState;
675
+ private syncControlFromState;
676
+ private syncStateFromControl;
677
+ private syncNativeInputState;
678
+ private syncControlError;
679
+ private syncInputDisabledState;
680
+ private hasNativeInputError;
681
+ private hasControlError;
682
+ private syncAriaInvalidAttribute;
683
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Switch, never>;
684
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Switch, "md3-switch", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "disableStateLayer": { "alias": "disable-state-layer"; "required": false; "isSignal": true; }; }, {}, ["input", "controlName"], ["[md3-input-element]", "[md3-icon-element]"], true, never>;
685
+ }
686
+
687
+ declare class Slider {
688
+ private el;
689
+ control: _angular_core.InputSignal<AbstractControl<any, any, any> | undefined>;
690
+ sliderSize: _angular_core.InputSignal<SliderSize>;
691
+ showValueLabel: _angular_core.InputSignal<boolean>;
692
+ private input;
693
+ private controlName;
694
+ value: _angular_core.WritableSignal<number>;
695
+ min: _angular_core.WritableSignal<number>;
696
+ max: _angular_core.WritableSignal<number>;
697
+ progress: _angular_core.WritableSignal<number>;
698
+ protected formControl: _angular_core.Signal<AbstractControl<any, any, any> | undefined>;
699
+ constructor(el: ElementRef<HTMLElement>);
700
+ get element(): HTMLElement;
701
+ private syncInitialState;
702
+ private updateState;
703
+ private syncLimitsFromInput;
704
+ private syncStateFromInput;
705
+ private syncInputFromState;
706
+ private syncControlFromState;
707
+ private syncStateFromControl;
708
+ private syncInputDisabledState;
709
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Slider, never>;
710
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Slider, "md3-slider", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "sliderSize": { "alias": "slider-size"; "required": false; "isSignal": true; }; "showValueLabel": { "alias": "show-value-label"; "required": false; "isSignal": true; }; }, {}, ["input", "controlName"], ["[md3-input-element]", "[md3-icon-element]"], true, never>;
711
+ }
712
+
713
+ declare class List {
714
+ private el;
715
+ variant: _angular_core.InputSignal<"expressive" | "baseline">;
716
+ type: _angular_core.InputSignal<"standard" | "segmented">;
717
+ constructor(el: ElementRef);
718
+ get element(): HTMLElement;
719
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<List, never>;
720
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<List, "md3-list", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
721
+ }
722
+
723
+ declare class ListItemPrimaryAction {
724
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListItemPrimaryAction, never>;
725
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ListItemPrimaryAction, "button[md3-item-primary-action], a[md3-item-primary-action]", never, {}, {}, never, never, true, [{ directive: typeof StateComponent; inputs: {}; outputs: {}; }]>;
726
+ }
727
+ declare class ListItem implements AfterViewInit {
728
+ private el;
729
+ private state;
730
+ slotsAlignment: _angular_core.InputSignal<"start" | "end" | "center">;
731
+ selected: _angular_core.InputSignalWithTransform<boolean, unknown>;
732
+ isActionTag: boolean;
733
+ private isLabelTag;
734
+ private checkbox;
735
+ private radioButton;
736
+ private switch;
737
+ isSelected: _angular_core.Signal<boolean>;
738
+ isInputDisabled: _angular_core.Signal<boolean | undefined>;
739
+ constructor(el: ElementRef, state: StateComponent);
740
+ get element(): HTMLElement;
741
+ ngAfterViewInit(): void;
742
+ protected onFocusIn(event: FocusEvent): void;
743
+ protected onKeyDown(event: KeyboardEvent): void;
744
+ private setLabelInputTabIndex;
745
+ private getLabelActivationInput;
746
+ private getLabelInputs;
747
+ private focusLabel;
748
+ private isInputElement;
749
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListItem, never>;
750
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListItem, "md3-list-item, label[md3-list-item], button[md3-list-item], a[md3-list-item]", never, { "slotsAlignment": { "alias": "slots-alignment"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, {}, ["checkbox", "radioButton", "switch"], ["[md3-item-primary-action]", "md3-list-leading", "[md3-list-slot=content]", "[md3-list-slot=trailing]"], true, [{ directive: typeof StateComponent; inputs: {}; outputs: {}; }]>;
751
+ }
752
+
753
+ declare class ListLeading {
754
+ private el;
755
+ type: _angular_core.InputSignal<ListLeadingType>;
756
+ size: _angular_core.InputSignal<ListLeadingSize>;
757
+ constructor(el: ElementRef);
758
+ get element(): HTMLElement;
759
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListLeading, never>;
760
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListLeading, "md3-list-leading", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
761
+ }
762
+
763
+ declare class ListSlot {
764
+ private el;
765
+ position: _angular_core.InputSignal<"trailing" | "content">;
766
+ constructor(el: ElementRef);
767
+ get nativeElement(): HTMLElement;
768
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListSlot, never>;
769
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ListSlot, "[md3-list-slot]", never, { "position": { "alias": "md3-list-slot"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
770
+ }
771
+
772
+ declare class LoadingIndicator {
773
+ private el;
774
+ contained: _angular_core.InputSignal<boolean>;
775
+ size: _angular_core.InputSignal<number>;
776
+ dpSize: _angular_core.Signal<number>;
777
+ constructor(el: ElementRef);
778
+ get element(): HTMLElement;
779
+ private getHostFontSize;
780
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingIndicator, never>;
781
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoadingIndicator, "md3-loading-indicator", never, { "contained": { "alias": "contained"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
782
+ }
783
+
784
+ declare class LinearProgressIndicator {
785
+ indeterminate: _angular_core.InputSignal<boolean>;
786
+ thickness: _angular_core.InputSignal<4 | 8>;
787
+ progress: _angular_core.InputSignal<number>;
788
+ progressValue: _angular_core.Signal<number>;
789
+ constructor();
790
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LinearProgressIndicator, never>;
791
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LinearProgressIndicator, "md3-linear-progress-indicator", never, { "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
792
+ }
793
+
794
+ declare class CircularProgressIndicator {
795
+ indeterminate: _angular_core.InputSignal<boolean>;
796
+ thickness: _angular_core.InputSignal<4 | 8>;
797
+ progress: _angular_core.InputSignal<number>;
798
+ progressValue: _angular_core.Signal<number>;
799
+ constructor();
800
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CircularProgressIndicator, never>;
801
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CircularProgressIndicator, "md3-circular-progress-indicator", never, { "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
802
+ }
803
+
804
+ type AppBarType = 'small' | 'medium' | 'large' | 'search';
805
+ type AppBarScrollingStyle = 'none' | 'transparent' | 'elevate';
806
+ declare class AppBar implements ButtonContext {
807
+ private el;
808
+ private layoutService;
809
+ title: _angular_core.InputSignal<string | null>;
810
+ subtitle: _angular_core.InputSignal<string | null>;
811
+ appBarType: _angular_core.InputSignal<AppBarType>;
812
+ appBarScrollingStyle: _angular_core.InputSignal<AppBarScrollingStyle>;
813
+ autoHide: _angular_core.InputSignalWithTransform<boolean, unknown>;
814
+ centerAligned: _angular_core.InputSignalWithTransform<boolean, unknown>;
815
+ private logo;
816
+ private avatar;
817
+ hasLogo: Signal<boolean>;
818
+ hasAvatar: Signal<boolean>;
819
+ mainIsScrolled: Signal<boolean>;
820
+ isScrollingDown: _angular_core.WritableSignal<boolean>;
821
+ private scrollPosition;
822
+ private bottomExpandedHeight;
823
+ private bottomCollapse;
824
+ buttonContextSize: Signal<ButtonSize>;
825
+ constructor(el: ElementRef, layoutService: LayoutService);
826
+ get element(): HTMLElement;
827
+ private getBottomOpacity;
828
+ private isBottomCollapsed;
829
+ private updateScrollDirection;
830
+ private hasCollapsibleBottom;
831
+ private getHostFontSize;
832
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppBar, never>;
833
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppBar, "md3-app-bar", never, { "title": { "alias": "bar-title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "bar-subtitle"; "required": false; "isSignal": true; }; "appBarType": { "alias": "bar-type"; "required": false; "isSignal": true; }; "appBarScrollingStyle": { "alias": "scroll-style"; "required": false; "isSignal": true; }; "autoHide": { "alias": "auto-hide"; "required": false; "isSignal": true; }; "centerAligned": { "alias": "center-aligned"; "required": false; "isSignal": true; }; }, {}, ["logo", "avatar"], ["[md3-app-bar-leading]", "[md3-search-leading]", "[md3-input-element]", "[md3-search-trailing]", "[md3-app-bar-logo]", "[md3-app-bar-trailing]", "[md3-avatar]"], true, never>;
834
+ }
835
+
836
+ declare class AppBarLogo {
837
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppBarLogo, never>;
838
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AppBarLogo, "[md3-app-bar-logo]", never, {}, {}, never, never, true, never>;
839
+ }
840
+
841
+ declare class NavigationItem {
842
+ private readonly el;
843
+ private routerLinkActive;
844
+ hideOnCollapse: _angular_core.InputSignalWithTransform<boolean, unknown>;
845
+ private icons;
846
+ hasIcons: _angular_core.Signal<boolean>;
847
+ badge: _angular_core.Signal<Badge | undefined>;
848
+ get isRouteActive(): boolean;
849
+ get active(): boolean;
850
+ get element(): HTMLElement;
851
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationItem, never>;
852
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationItem, "button[md3-nav-item], a[md3-nav-item]", ["md3NavItem"], { "hideOnCollapse": { "alias": "hide-on-collapse"; "required": false; "isSignal": true; }; }, {}, ["icons", "badge"], ["[md3-icon-element=active]", "[md3-icon-element]", "*", "md3-badge"], true, [{ directive: typeof i1$1.RouterLinkActive; inputs: { "routerLinkActiveOptions": "routerLinkActiveOptions"; "ariaCurrentWhenActive": "ariaCurrentWhenActive"; }; outputs: {}; }]>;
853
+ }
854
+
855
+ declare class NavigationGroup {
856
+ private readonly el;
857
+ label: _angular_core.InputSignal<string | undefined>;
858
+ hideOnCollapse: _angular_core.InputSignalWithTransform<boolean, unknown>;
859
+ get element(): HTMLElement;
860
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationGroup, never>;
861
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationGroup, "md3-nav-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hideOnCollapse": { "alias": "hide-on-collapse"; "required": false; "isSignal": true; }; }, {}, never, ["[md3-nav-item]"], true, never>;
862
+ }
863
+
864
+ type ExpandedLayout = 'standard' | 'modal';
865
+ type CollapsedLayout = 'compact' | 'narrow' | 'hidden';
866
+ type ContainerStyle = 'none' | 'elevated' | 'divider';
867
+ declare class NavigationRail implements ButtonContext {
868
+ private readonly el;
869
+ private readonly layoutService;
870
+ expanded: _angular_core.ModelSignal<boolean>;
871
+ hideMenuButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
872
+ fullWidthIndicator: _angular_core.InputSignalWithTransform<boolean, unknown>;
873
+ containerStyle: _angular_core.InputSignal<ContainerStyle>;
874
+ collapsedMode: _angular_core.InputSignal<CollapsedLayout>;
875
+ expandedMode: _angular_core.InputSignal<ExpandedLayout>;
876
+ private readonly resolvedCollapsedLayout;
877
+ private readonly resolvedExpandedLayout;
878
+ private menuIcons;
879
+ private floatingActionButton;
880
+ menuExpandIcon: Signal<IconElement | undefined>;
881
+ menuCollapseIcon: Signal<IconElement | undefined>;
882
+ hasFab: Signal<boolean>;
883
+ buttonContextSize: Signal<ButtonSize>;
884
+ buttonContextExtended: Signal<boolean>;
885
+ constructor();
886
+ get element(): HTMLElement;
887
+ toggle(): void;
888
+ collapse(): void;
889
+ expand(): void;
890
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationRail, never>;
891
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationRail, "md3-navigation-rail", never, { "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "hideMenuButton": { "alias": "hide-menu-button"; "required": false; "isSignal": true; }; "fullWidthIndicator": { "alias": "full-width-indicator"; "required": false; "isSignal": true; }; "containerStyle": { "alias": "container-style"; "required": false; "isSignal": true; }; "collapsedMode": { "alias": "collapsed-layout"; "required": false; "isSignal": true; }; "expandedMode": { "alias": "expanded-layout"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, ["menuIcons", "floatingActionButton"], ["[md3-icon-element=expand]", "[md3-icon-element=collapse]", "[md3-fab]", "[md3-nav-item], md3-nav-group"], true, never>;
892
+ }
893
+
894
+ declare class NavigationBar {
895
+ private readonly el;
896
+ private readonly layoutService;
897
+ private readonly resolvedLayout;
898
+ constructor();
899
+ get element(): HTMLElement;
900
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationBar, never>;
901
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationBar, "md3-navigation-bar", never, {}, {}, never, ["[md3-nav-item]"], true, never>;
902
+ }
903
+
904
+ declare class TextField implements ButtonContext {
905
+ label: _angular_core.InputSignal<string | null>;
906
+ fieldType: _angular_core.InputSignal<"filled" | "outlined">;
907
+ inputCounter: _angular_core.InputSignal<number | boolean>;
908
+ control: _angular_core.InputSignal<AbstractControl<any, any, any> | undefined>;
909
+ private inputContainer;
910
+ private input;
911
+ private iconElements;
912
+ private iconButtons;
913
+ private controlName;
914
+ private controlError;
915
+ private nativeInputError;
916
+ private lastSyncedAriaInvalid;
917
+ formControl: Signal<AbstractControl<any, any, any> | undefined>;
918
+ inputError: Signal<boolean>;
919
+ maxLength: Signal<number | undefined>;
920
+ valueLength: _angular_core.WritableSignal<number>;
921
+ buttonContextSize: Signal<ButtonSize>;
922
+ constructor();
923
+ private syncNativeInputState;
924
+ private syncControlError;
925
+ private hasNativeInputError;
926
+ private hasControlError;
927
+ private syncAriaInvalidAttribute;
928
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextField, never>;
929
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextField, "md3-text-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "fieldType": { "alias": "field-type"; "required": false; "isSignal": true; }; "inputCounter": { "alias": "input-counter"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; }, {}, ["input", "iconElements", "iconButtons", "controlName"], ["*", "[md3-icon-element=leading]", "[md3-icon-button], [md3-icon-element=trailing]", "[md3-supporting-text]"], true, never>;
930
+ }
931
+
932
+ declare class SupportingText {
933
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SupportingText, never>;
934
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SupportingText, "[md3-supporting-text]", never, {}, {}, never, never, true, never>;
935
+ }
936
+
937
+ declare class Dialog implements AfterContentInit {
938
+ private readonly portalOutlet;
939
+ isActive: _angular_core.WritableSignal<boolean>;
940
+ protected readonly config: DialogConfig<unknown>;
941
+ protected get role(): string;
942
+ ngAfterContentInit(): void;
943
+ /**
944
+ * The service creates this wrapper first, then calls this method to mount
945
+ * the user supplied component into the dialog container.
946
+ */
947
+ attachContent<T>(component: Type<T>, injector: Injector): ComponentRef<T>;
948
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dialog, never>;
949
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dialog, "md3-dialog", never, {}, {}, never, never, true, never>;
950
+ }
951
+
952
+ declare const DIALOG_DATA: InjectionToken<unknown>;
953
+ declare const DIALOG_CONFIG: InjectionToken<DialogConfig<unknown>>;
954
+ declare const DIALOG_COMPONENT: InjectionToken<Type<unknown>>;
955
+ declare class DialogRef<T = unknown, R = unknown> {
956
+ private readonly overlayRef;
957
+ private readonly previouslyFocusedElement;
958
+ private readonly closed;
959
+ private isClosed;
960
+ dialogInstance?: Dialog;
961
+ /**
962
+ * Filled by DialogService after the user component is attached. Keeping the
963
+ * instance here lets callers imperatively update inputs when that is useful.
964
+ */
965
+ componentInstance?: T;
966
+ constructor(overlayRef: OverlayRef, previouslyFocusedElement: HTMLElement | null);
967
+ close(result?: R): void;
968
+ private startCloseAnimation;
969
+ afterClosed(): Observable<R | undefined>;
970
+ }
971
+
972
+ declare class DialogService {
973
+ private readonly overlay;
974
+ private readonly injector;
975
+ private readonly document;
976
+ open<T, D = unknown, R = unknown>(component: Type<T>, config?: DialogConfig<D>): DialogRef<T, R>;
977
+ private mergeConfig;
978
+ private createOverlay;
979
+ private startOpenAnimation;
980
+ private createInjector;
981
+ private bindDataToInputs;
982
+ private connectCloseEvents;
983
+ private focusDialog;
984
+ private getFocusedElement;
985
+ private canBindDataToInputs;
986
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogService, never>;
987
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DialogService>;
988
+ }
989
+
990
+ declare class DialogHeader {
991
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogHeader, never>;
992
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogHeader, "md3-dialog-header", never, {}, {}, never, ["[md3-icon-element]", "*"], true, never>;
993
+ }
994
+
995
+ declare class DialogBody {
996
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogBody, never>;
997
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogBody, "md3-dialog-body", never, {}, {}, never, ["*"], true, never>;
998
+ }
999
+
1000
+ declare class DialogActions {
1001
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogActions, never>;
1002
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogActions, "md3-dialog-actions", never, {}, {}, never, ["*"], true, never>;
1003
+ }
1004
+
1005
+ declare class Menu implements AfterContentInit {
1006
+ private el;
1007
+ private readonly portalOutlet;
1008
+ protected readonly config: MenuConfig<unknown>;
1009
+ protected menuColors: _angular_core.WritableSignal<"standard" | "vibrant">;
1010
+ protected isVisible: _angular_core.WritableSignal<boolean>;
1011
+ protected scheme: _angular_core.WritableSignal<"inherit" | "dark" | "light">;
1012
+ protected direction: _angular_core.WritableSignal<"ltr" | "rtl" | null>;
1013
+ isActive: _angular_core.WritableSignal<boolean>;
1014
+ get element(): HTMLElement;
1015
+ constructor(el: ElementRef);
1016
+ ngAfterContentInit(): void;
1017
+ showMenu(value: boolean): void;
1018
+ /**
1019
+ * The service creates this wrapper first, then calls this method to mount
1020
+ * the user supplied component into the dialog container.
1021
+ */
1022
+ attachContent<T>(component: Type<T>, injector: Injector): ComponentRef<T>;
1023
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Menu, never>;
1024
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Menu, "md3-menu", never, {}, {}, never, never, true, never>;
1025
+ }
1026
+
1027
+ declare const MENU_DATA: InjectionToken<unknown>;
1028
+ declare const MENU_CONFIG: InjectionToken<MenuConfig<unknown>>;
1029
+ declare const MENU_COMPONENT: InjectionToken<Type<unknown>>;
1030
+ declare class MenuRef<T = unknown, R = unknown> {
1031
+ private readonly overlayRef;
1032
+ private readonly previouslyFocusedElement;
1033
+ private readonly closed;
1034
+ private isClosed;
1035
+ menuInstance?: Menu;
1036
+ /**
1037
+ * Filled by MenuService after the user component is attached. Keeping the
1038
+ * instance here lets callers imperatively update inputs when that is useful.
1039
+ */
1040
+ componentInstance?: T;
1041
+ constructor(overlayRef: OverlayRef, previouslyFocusedElement: HTMLElement | null);
1042
+ close(result?: R): void;
1043
+ private startCloseAnimation;
1044
+ afterClosed(): Observable<R | undefined>;
1045
+ }
1046
+
1047
+ declare class MenuService {
1048
+ private readonly overlay;
1049
+ private readonly injector;
1050
+ private readonly document;
1051
+ open<T, D = unknown, R = unknown>(component: Type<T>, config?: MenuConfig<D>): MenuRef<T, R>;
1052
+ openSubMenu<T, D = unknown, R = unknown>(component: Type<T>, config?: MenuConfig<D>): MenuRef<T, R>;
1053
+ private mergeConfig;
1054
+ private createOverlay;
1055
+ private bindTriggerActiveState;
1056
+ private resolveOrigin;
1057
+ private resolveTriggerElement;
1058
+ private flipPositionIfPushBreaksAnchor;
1059
+ private getInitialConnectedPositions;
1060
+ private getPreferredConnectedPosition;
1061
+ private getFallbackPositionAfterPush;
1062
+ private shouldFlipXPosition;
1063
+ private shouldFlipYPosition;
1064
+ private createConnectedPosition;
1065
+ private createSubMenuConnectedPosition;
1066
+ private getHorizontalPosition;
1067
+ private getVerticalPosition;
1068
+ private getFallbackXPosition;
1069
+ private getSubMenuXPosition;
1070
+ private getFallbackYPosition;
1071
+ private getSubMenuVerticalAlignment;
1072
+ private getOriginClientRect;
1073
+ private getViewportMargin;
1074
+ private getHalfEmInPixels;
1075
+ private getOffsetY;
1076
+ private getSubMenuOffsetX;
1077
+ private getSubMenuOffsetY;
1078
+ private getScrollStrategy;
1079
+ private isMouseEvent;
1080
+ private isElementRef;
1081
+ private startOpenAnimation;
1082
+ private createInjector;
1083
+ private bindDataToInputs;
1084
+ private connectCloseEvents;
1085
+ private getFocusedElement;
1086
+ private canBindDataToInputs;
1087
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuService, never>;
1088
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<MenuService>;
1089
+ }
1090
+
1091
+ declare class MenuGroup {
1092
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuGroup, never>;
1093
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuGroup, "md3-menu-group", never, {}, {}, never, ["*"], true, never>;
1094
+ }
1095
+
1096
+ declare class MenuItem {
1097
+ private el;
1098
+ label: _angular_core.InputSignal<string>;
1099
+ supportingText: _angular_core.InputSignal<string | null>;
1100
+ trailingText: _angular_core.InputSignal<string | null>;
1101
+ selected: _angular_core.ModelSignal<boolean | null>;
1102
+ private iconElements;
1103
+ get leading(): IconElement | undefined;
1104
+ get trailing(): IconElement | undefined;
1105
+ get showLeadingIcon(): boolean;
1106
+ onHostClick(): void;
1107
+ constructor(el: ElementRef<HTMLElement>);
1108
+ get element(): HTMLElement;
1109
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItem, never>;
1110
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItem, "button[md3-menu-item], a[md3-menu-item]", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "supportingText": { "alias": "supporting-text"; "required": false; "isSignal": true; }; "trailingText": { "alias": "trailing-text"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; }, ["iconElements"], ["[md3-icon-element=leading]", "md3-badge", "[md3-icon-element=trailing]"], true, never>;
1111
+ }
1112
+
1113
+ declare class SideSheet implements AfterContentInit {
1114
+ private layoutService;
1115
+ private el;
1116
+ private readonly portalOutlet;
1117
+ protected readonly config: SideSheetConfig<unknown>;
1118
+ private readonly sideSheetRef;
1119
+ readonly isActive: _angular_core.WritableSignal<boolean>;
1120
+ readonly isHidden: _angular_core.WritableSignal<boolean>;
1121
+ readonly side: _angular_core.WritableSignal<SideSheetSide>;
1122
+ readonly sheetType: _angular_core.WritableSignal<SideSheetType>;
1123
+ readonly isInset: _angular_core.WritableSignal<boolean>;
1124
+ readonly showDivider: _angular_core.WritableSignal<boolean>;
1125
+ private readonly resolvedSheetType;
1126
+ constructor(layoutService: LayoutService, el: ElementRef<HTMLElement>);
1127
+ get element(): HTMLElement;
1128
+ ngAfterContentInit(): void;
1129
+ showSheet(value: boolean): void;
1130
+ setHidden(value: boolean): void;
1131
+ close(): void;
1132
+ attachContent<T>(component: Type<T>, injector: Injector): ComponentRef<T>;
1133
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SideSheet, never>;
1134
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideSheet, "md3-side-sheet", never, {}, {}, never, never, true, never>;
1135
+ }
1136
+
1137
+ declare const SIDE_SHEET_DATA: InjectionToken<unknown>;
1138
+ declare const SIDE_SHEET_CONFIG: InjectionToken<SideSheetConfig<unknown>>;
1139
+ declare const SIDE_SHEET_COMPONENT: InjectionToken<Type<unknown>>;
1140
+ declare class SideSheetRef<T = unknown, R = unknown> {
1141
+ readonly side: SideSheetSide;
1142
+ private readonly onClosed;
1143
+ private readonly closed;
1144
+ private isClosed;
1145
+ private isHidden;
1146
+ private sheetComponentRef?;
1147
+ componentInstance?: T;
1148
+ sheetInstance?: SideSheetContainer;
1149
+ constructor(side: SideSheetSide, onClosed: () => void);
1150
+ attachSheetComponentRef(sheetComponentRef: ComponentRef<SideSheet>): void;
1151
+ setSide(side: SideSheetSide): void;
1152
+ setSheetType(type: SideSheetType): void;
1153
+ setInset(isInset: boolean): void;
1154
+ setDivider(showDivider: boolean): void;
1155
+ hide(): void;
1156
+ show(): void;
1157
+ close(result?: R): void;
1158
+ dispose(result?: R): void;
1159
+ afterClosed(): Observable<R | undefined>;
1160
+ private destroySheet;
1161
+ private startCloseAnimation;
1162
+ }
1163
+
1164
+ declare class SheetsService {
1165
+ private readonly injector;
1166
+ private readonly states;
1167
+ registerSideSheetOutlet(side: SideSheetSide, outlet: CdkPortalOutlet): void;
1168
+ unregisterSideSheetOutlet(side: SideSheetSide, outlet: CdkPortalOutlet): void;
1169
+ openSideSheet<T = unknown, D = unknown, R = unknown>(component: Type<T>, config?: SideSheetConfig<D>): SideSheetRef<T, R>;
1170
+ closeSideSheet<R = unknown>(side?: SideSheetSide, result?: R): void;
1171
+ private mergeConfig;
1172
+ private createInjector;
1173
+ private bindDataToInputs;
1174
+ private canBindDataToInputs;
1175
+ private disposeOutletState;
1176
+ private disposeSideSheetRefs;
1177
+ private removeSideSheetRef;
1178
+ private getVisibleRef;
1179
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SheetsService, never>;
1180
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SheetsService>;
1181
+ }
1182
+
1183
+ declare class SideSheetHeader implements ButtonContext {
1184
+ title: _angular_core.InputSignal<string>;
1185
+ buttonContextSize: Signal<ButtonSize>;
1186
+ buttonContextWidth: Signal<IconButtonWidth>;
1187
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SideSheetHeader, never>;
1188
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideSheetHeader, "md3-side-sheet-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, ["[md3-icon-button][leading]", "[md3-icon-button][trailing]"], true, never>;
1189
+ }
1190
+
1191
+ declare class SideSheetBody {
1192
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SideSheetBody, never>;
1193
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideSheetBody, "md3-side-sheet-body", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.CdkScrollable; inputs: {}; outputs: {}; }]>;
1194
+ }
1195
+
1196
+ declare class SideSheetActions {
1197
+ showDivider: _angular_core.InputSignalWithTransform<boolean, unknown>;
1198
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SideSheetActions, never>;
1199
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideSheetActions, "md3-side-sheet-actions", never, { "showDivider": { "alias": "show-divider"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1200
+ }
1201
+
1202
+ declare class Snackbar implements OnInit, OnDestroy {
1203
+ private readonly el;
1204
+ private readonly snackbarRef;
1205
+ private readonly layout;
1206
+ isActive: _angular_core.WritableSignal<boolean>;
1207
+ protected readonly config: SnackbarConfig<unknown>;
1208
+ protected readonly message: string | TemplateRef<unknown>;
1209
+ protected readonly actionLabel: string | null | undefined;
1210
+ protected get role(): string;
1211
+ protected get isTemplateMessage(): boolean;
1212
+ protected get templateMessage(): TemplateRef<unknown>;
1213
+ protected get textMessage(): string;
1214
+ protected get templateContext(): unknown;
1215
+ protected get isStacked(): boolean;
1216
+ constructor(el: ElementRef<HTMLElement>);
1217
+ protected onInteractionStart(): void;
1218
+ protected onInteractionEnd(): void;
1219
+ ngOnInit(): void;
1220
+ ngOnDestroy(): void;
1221
+ protected onActionClick(): void;
1222
+ protected onCloseClick(): void;
1223
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Snackbar, never>;
1224
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Snackbar, "md3-snackbar", never, {}, {}, never, never, true, never>;
1225
+ }
1226
+
1227
+ declare const SNACKBAR_MESSAGE: InjectionToken<string | TemplateRef<unknown>>;
1228
+ declare const SNACKBAR_ACTION_LABEL: InjectionToken<string | undefined>;
1229
+ declare const SNACKBAR_CONFIG: InjectionToken<SnackbarConfig<unknown>>;
1230
+ type SnackbarDismissReason = 'timeout' | 'action' | 'manual';
1231
+ interface SnackbarDismiss<R = unknown> {
1232
+ reason: SnackbarDismissReason;
1233
+ result?: R;
1234
+ }
1235
+ declare class SnackbarRef<R = unknown> {
1236
+ private readonly duration;
1237
+ private readonly closed;
1238
+ private readonly actionTriggered;
1239
+ private isClosed;
1240
+ private overlayRef?;
1241
+ private timeoutId?;
1242
+ private timerStartedAt;
1243
+ private remainingMs;
1244
+ snackbarInstance?: Snackbar;
1245
+ constructor(duration: number);
1246
+ /**
1247
+ * Called by SnackbarService once this snackbar is dequeued and actually
1248
+ * attached to the overlay. Queued-but-never-shown refs never get one, and
1249
+ * close() below handles that case without trying to animate or dispose.
1250
+ */
1251
+ attachOverlay(overlayRef: OverlayRef): void;
1252
+ startTimer(): void;
1253
+ pauseTimer(): void;
1254
+ resumeTimer(): void;
1255
+ triggerAction(result?: R): void;
1256
+ close(reason?: SnackbarDismissReason, result?: R): void;
1257
+ onAction(): Observable<void>;
1258
+ afterDismissed(): Observable<SnackbarDismiss<R>>;
1259
+ private startCloseAnimation;
1260
+ }
1261
+
1262
+ declare class SnackbarService {
1263
+ private readonly overlay;
1264
+ private readonly injector;
1265
+ private readonly queue;
1266
+ private active?;
1267
+ /**
1268
+ * Opens a snackbar. Only one is ever visible at a time — if another is
1269
+ * already showing, this one waits in a FIFO queue unless
1270
+ * config.replaceCurrent is set.
1271
+ *
1272
+ * message can be a plain string, or a TemplateRef for cases like a
1273
+ * progress indicator that needs to keep re-rendering as the caller's own
1274
+ * state changes. The surrounding surface, action button, close icon,
1275
+ * positioning, and animation are always owned by the Snackbar shell —
1276
+ * there's no arbitrary custom-component API, since that's how you end up
1277
+ * with something that isn't a snackbar anymore per MD3.
1278
+ *
1279
+ * config.onAction, if provided, is called when the action button (never
1280
+ * the close icon) is clicked — an alternative to ref.onAction().subscribe()
1281
+ * for callers that don't want to hold onto the returned ref.
1282
+ */
1283
+ open<D = unknown, R = unknown>(message: string | TemplateRef<D>, actionLabel?: string, config?: SnackbarConfig<D>): SnackbarRef<R>;
1284
+ /** Dismisses whichever snackbar is currently showing, if any. */
1285
+ dismiss<R = unknown>(result?: R): void;
1286
+ /** Dismisses the visible snackbar and clears everything still queued. */
1287
+ dismissAll(): void;
1288
+ private show;
1289
+ private onDismissed;
1290
+ private mergeConfig;
1291
+ private createOverlay;
1292
+ private createInjector;
1293
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SnackbarService, never>;
1294
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SnackbarService>;
1295
+ }
1296
+
1297
+ export { AppBar, AppBarLogo, Avatar, Badge, Button, ButtonGroup, Card, Checkbox, ChipAvatar, Chips, CircularProgressIndicator, DIALOG_COMPONENT, DIALOG_CONFIG, DIALOG_DATA, Dialog, DialogActions, DialogBody, DialogHeader, DialogRef, DialogService, Divider, FloatingActionButton, Grid, GridItem, IconButton, IconElement, InputElement, LayoutService, LinearProgressIndicator, List, ListItem, ListItemPrimaryAction, ListLeading, ListSlot, LoadingIndicator, MENU_COMPONENT, MENU_CONFIG, MENU_DATA, MaterialIcon, Menu, MenuGroup, MenuItem, MenuRef, MenuService, NavigationBar, NavigationGroup, NavigationItem, NavigationRail, RadioButton, SIDE_SHEET_COMPONENT, SIDE_SHEET_CONFIG, SIDE_SHEET_DATA, SNACKBAR_ACTION_LABEL, SNACKBAR_CONFIG, SNACKBAR_MESSAGE, Scaffold, ScaffoldBar, ScaffoldPane, ScaffoldRail, SheetsService, SideSheetActions, SideSheetBody, SideSheetHeader, SideSheetRef, Slider, Snackbar, SnackbarRef, SnackbarService, SplitButton, StateComponent, SupportingText, Switch, TextField, TypeBody, TypeDisplay, TypeHeadline, TypeLabel, TypeTitle };
1298
+ export type { AppBarScrollingStyle, AppBarType, ButtonGroupSelection, ButtonGroupType, ButtonSize, ButtonType, CardType, ChipStyle, ChipType, DialogConfig, DialogRole, FabSize, FabType, IconButtonType, IconButtonWidth, ListLeadingSize, ListLeadingType, Md3NavigationMode, MenuConfig, MenuPositionOrigin, MenuPositionX, MenuPositionY, MenuScrollStrategy, SideSheetConfig, SideSheetContainer, SideSheetSide, SideSheetType, SliderSize, SnackbarConfig, SnackbarDismiss, SnackbarDismissReason, SnackbarPoliteness, SplitButtonType, TextColor, TextSize };