@almoamendev/ngx-md3 0.7.5 → 0.8.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almoamendev/ngx-md3",
3
- "version": "0.7.5",
3
+ "version": "0.8.1",
4
4
  "description": "MD3-style Angular components & style library",
5
5
  "author": "Murtadha (Hussain) Almoamen",
6
6
  "license": "MIT",
@@ -1,9 +1,9 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ViewContainerRef, Injector, Signal, ElementRef, AfterViewInit, OnDestroy, OnInit, Renderer2, InputSignal, InjectionToken, Type, AfterContentInit, ComponentRef, TemplateRef } from '@angular/core';
2
+ import { ViewContainerRef, Injector, Signal, ElementRef, AfterViewInit, OnDestroy, OnInit, Renderer2, InputSignal, AfterContentInit, Type, ComponentRef, InjectionToken, TemplateRef } from '@angular/core';
3
3
  import { FlexibleConnectedPositionStrategyOrigin, ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';
4
4
  import { Observable, Subject } from 'rxjs';
5
5
  import * as i1 from '@angular/cdk/scrolling';
6
- import { AbstractControl } from '@angular/forms';
6
+ import { AbstractControl, ControlValueAccessor } from '@angular/forms';
7
7
  import * as i1$1 from '@angular/router';
8
8
  import { CdkDialogContainer, DialogRef as DialogRef$1 } from '@angular/cdk/dialog';
9
9
  import { CdkPortalOutlet } from '@angular/cdk/portal';
@@ -131,6 +131,20 @@ type CarouselOrientation = 'horizontal';
131
131
  */
132
132
  type CarouselItemSize = 'large' | 'medium' | 'small';
133
133
 
134
+ type SelectOptionValue = string | number;
135
+ /**
136
+ * Value shape exposed to Angular forms by md3-select-field.
137
+ * Single selection emits a single value (or null), multiple selection emits an array.
138
+ */
139
+ type SelectFieldValue = SelectOptionValue | SelectOptionValue[] | null;
140
+ type SelectOption = {
141
+ value: SelectOptionValue;
142
+ label: string;
143
+ supportingText?: string;
144
+ trailingText?: string;
145
+ selected?: boolean;
146
+ };
147
+
134
148
  /**
135
149
  * What happens to a dialog that is already open when a new dialog opens.
136
150
  * - close: the open dialogs are closed before the new one opens.
@@ -1771,6 +1785,198 @@ declare class SupportingText {
1771
1785
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SupportingText, "[md3-supporting-text]", never, {}, {}, never, never, true, never>;
1772
1786
  }
1773
1787
 
1788
+ declare class Menu implements AfterContentInit {
1789
+ private el;
1790
+ private readonly portalOutlet;
1791
+ protected readonly config: MenuConfig<unknown>;
1792
+ protected menuColors: _angular_core.WritableSignal<"standard" | "vibrant">;
1793
+ protected isVisible: _angular_core.WritableSignal<boolean>;
1794
+ protected scheme: _angular_core.WritableSignal<"inherit" | "dark" | "light">;
1795
+ protected direction: _angular_core.WritableSignal<"ltr" | "rtl" | null>;
1796
+ isActive: _angular_core.WritableSignal<boolean>;
1797
+ get element(): HTMLElement;
1798
+ constructor(el: ElementRef);
1799
+ ngAfterContentInit(): void;
1800
+ showMenu(value: boolean): void;
1801
+ /**
1802
+ * The service creates this wrapper first, then calls this method to mount
1803
+ * the user supplied component into the dialog container.
1804
+ */
1805
+ attachContent<T>(component: Type<T>, injector: Injector): ComponentRef<T>;
1806
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Menu, never>;
1807
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Menu, "md3-menu", never, {}, {}, never, never, true, never>;
1808
+ }
1809
+
1810
+ declare const MENU_DATA: InjectionToken<unknown>;
1811
+ declare const MENU_CONFIG: InjectionToken<MenuConfig<unknown>>;
1812
+ declare const MENU_COMPONENT: InjectionToken<Type<unknown>>;
1813
+ declare class MenuRef<T = unknown, R = unknown> {
1814
+ private readonly overlayRef;
1815
+ private readonly previouslyFocusedElement;
1816
+ private readonly closed;
1817
+ private isClosed;
1818
+ menuInstance?: Menu;
1819
+ /**
1820
+ * Filled by MenuService after the user component is attached. Keeping the
1821
+ * instance here lets callers imperatively update inputs when that is useful.
1822
+ */
1823
+ componentInstance?: T;
1824
+ constructor(overlayRef: OverlayRef, previouslyFocusedElement: HTMLElement | null);
1825
+ close(result?: R): void;
1826
+ private startCloseAnimation;
1827
+ afterClosed(): Observable<R | undefined>;
1828
+ }
1829
+
1830
+ declare class MenuService {
1831
+ private readonly overlay;
1832
+ private readonly injector;
1833
+ private readonly document;
1834
+ open<T, D = unknown, R = unknown>(component: Type<T>, config?: MenuConfig<D>): MenuRef<T, R>;
1835
+ openSubMenu<T, D = unknown, R = unknown>(component: Type<T>, config?: MenuConfig<D>): MenuRef<T, R>;
1836
+ private mergeConfig;
1837
+ private isSelectInput;
1838
+ private createOverlay;
1839
+ private bindTriggerActiveState;
1840
+ private resolveOrigin;
1841
+ private resolveTriggerElement;
1842
+ private flipPositionIfPushBreaksAnchor;
1843
+ private getInitialConnectedPositions;
1844
+ private getPreferredConnectedPosition;
1845
+ private getFallbackPositionAfterPush;
1846
+ private shouldFlipXPosition;
1847
+ private shouldFlipYPosition;
1848
+ private createConnectedPosition;
1849
+ private createSubMenuConnectedPosition;
1850
+ private getHorizontalPosition;
1851
+ private getVerticalPosition;
1852
+ private getFallbackXPosition;
1853
+ private getSubMenuXPosition;
1854
+ private getFallbackYPosition;
1855
+ private getSubMenuVerticalAlignment;
1856
+ private getOriginClientRect;
1857
+ private getViewportMargin;
1858
+ private getHalfEmInPixels;
1859
+ private getOffsetY;
1860
+ private getSubMenuOffsetX;
1861
+ private getSubMenuOffsetY;
1862
+ private getScrollStrategy;
1863
+ private isMouseEvent;
1864
+ private isElementRef;
1865
+ private startOpenAnimation;
1866
+ private createInjector;
1867
+ private bindDataToInputs;
1868
+ private connectCloseEvents;
1869
+ private getFocusedElement;
1870
+ private canBindDataToInputs;
1871
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuService, never>;
1872
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<MenuService>;
1873
+ }
1874
+
1875
+ declare class SelectField implements ControlValueAccessor {
1876
+ private menuService;
1877
+ private viewContainerRef;
1878
+ /**
1879
+ * Form directive placed on the host element: [formControl], formControlName or [(ngModel)].
1880
+ * The accessor is registered from the constructor instead of through an NG_VALUE_ACCESSOR
1881
+ * provider, which keeps the directive injectable here and gives access to the control
1882
+ * itself for the error state forwarded to md3-text-field.
1883
+ */
1884
+ private readonly ngControl;
1885
+ options: _angular_core.InputSignal<SelectOption[]>;
1886
+ multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
1887
+ /**
1888
+ * Lets the user type in the field to filter the options. While the field has focus it
1889
+ * acts as a search box; the selected options are shown again as soon as it loses focus.
1890
+ */
1891
+ searchable: _angular_core.InputSignalWithTransform<boolean, unknown>;
1892
+ label: _angular_core.InputSignal<string | null>;
1893
+ /**
1894
+ * Formats the text shown in the field. The default joins the labels of the selected
1895
+ * options with a comma, so the field shows as many labels as its width allows.
1896
+ * The formatter is not called for an empty selection: the field stays empty, which keeps
1897
+ * the floating label in its place.
1898
+ */
1899
+ displayWith: _angular_core.InputSignal<((selected: SelectOption[]) => string) | null>;
1900
+ /**
1901
+ * Disables the field outside of a form. With reactive forms prefer control.disable().
1902
+ */
1903
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
1904
+ menuColors: _angular_core.InputSignal<"standard" | "vibrant">;
1905
+ fieldType: _angular_core.InputSignal<"filled" | "outlined">;
1906
+ /**
1907
+ * Control passed explicitly, mirroring md3-text-field. Takes precedence over a form
1908
+ * directive on the host element.
1909
+ */
1910
+ control: _angular_core.InputSignal<AbstractControl<any, any, any> | undefined>;
1911
+ private iconElements;
1912
+ hasLeadingIcon: _angular_core.Signal<boolean>;
1913
+ hasArrowIcon: _angular_core.Signal<boolean>;
1914
+ protected isMenuOpen: _angular_core.WritableSignal<boolean>;
1915
+ private menuRef;
1916
+ private inputElement;
1917
+ /** Control resolved from the host form directive, captured when the accessor is wired up. */
1918
+ private hostControl;
1919
+ /** Disabled state pushed by the control, either through setDisabledState or control.disabled. */
1920
+ private controlDisabled;
1921
+ /**
1922
+ * Set as soon as a control writes a value. From then on the control owns the selection and
1923
+ * SelectOption.selected no longer seeds it.
1924
+ */
1925
+ private controlOwnsValue;
1926
+ private onChange;
1927
+ private onTouched;
1928
+ /** Selection is kept by value so it survives options arriving or being replaced later. */
1929
+ private selectedValues;
1930
+ private searchQuery;
1931
+ private isInputFocused;
1932
+ formControl: _angular_core.Signal<AbstractControl<any, any, any> | undefined>;
1933
+ isDisabled: _angular_core.Signal<boolean>;
1934
+ selectedOptions: _angular_core.Signal<SelectOption[]>;
1935
+ selectedText: _angular_core.Signal<string | null>;
1936
+ /** True while the field acts as a search box instead of showing the selection. */
1937
+ isSearching: _angular_core.Signal<boolean>;
1938
+ /** What the input element shows: the search query while searching, the selection otherwise. */
1939
+ displayText: _angular_core.Signal<string | null>;
1940
+ /**
1941
+ * Each option paired with the text the search runs against. It is rebuilt only when the
1942
+ * options array changes, so typing does not normalize the same text again and again.
1943
+ * The fields are joined with a character the query can never contain, which stops a query
1944
+ * from matching across two fields.
1945
+ */
1946
+ private searchIndex;
1947
+ /** The options the menu shows. Options that do not match the query are hidden. */
1948
+ filteredOptions: _angular_core.Signal<SelectOption[]>;
1949
+ constructor(menuService: MenuService, viewContainerRef: ViewContainerRef);
1950
+ onSearchFocus(): void;
1951
+ onSearchBlur(): void;
1952
+ onSearchInput(event: Event): void;
1953
+ /** Lower-cases the text and removes everything that is not a letter or a digit. */
1954
+ private normalizeSearchText;
1955
+ writeValue(value: SelectFieldValue): void;
1956
+ registerOnChange(fn: (value: SelectFieldValue) => void): void;
1957
+ registerOnTouched(fn: () => void): void;
1958
+ setDisabledState(isDisabled: boolean): void;
1959
+ openMenu(): void;
1960
+ closeMenu(): void;
1961
+ toggleMenu(): void;
1962
+ private openSelectOptions;
1963
+ private selectValues;
1964
+ private setSelectedValues;
1965
+ private commitValue;
1966
+ private currentValue;
1967
+ private markAsTouched;
1968
+ private syncFromControl;
1969
+ private captureHostControl;
1970
+ /**
1971
+ * Accepts whatever a control holds and reduces it to the option values this field can show:
1972
+ * a single value for single selection, a de-duplicated list for multiple selection.
1973
+ */
1974
+ private normalizeValues;
1975
+ private valuesAreEqual;
1976
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectField, never>;
1977
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectField, "md3-select-field", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "displayWith": { "alias": "display-with"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "menuColors": { "alias": "menu-colors"; "required": false; "isSignal": true; }; "fieldType": { "alias": "field-type"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; }, {}, ["iconElements"], ["[md3-icon-element=leading]", "[md3-icon-element=arrow]", "[md3-supporting-text]"], true, never>;
1978
+ }
1979
+
1774
1980
  /**
1775
1981
  * Material 3 dialog shell. It extends the CDK dialog container, so focus
1776
1982
  * trapping, focus restoration and the ARIA attributes are handled by the CDK
@@ -2032,92 +2238,6 @@ declare class FullScreenDialog extends CdkDialogContainer implements DialogConta
2032
2238
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FullScreenDialog, "md3-fullscreen-dialog", never, {}, {}, never, never, true, never>;
2033
2239
  }
2034
2240
 
2035
- declare class Menu implements AfterContentInit {
2036
- private el;
2037
- private readonly portalOutlet;
2038
- protected readonly config: MenuConfig<unknown>;
2039
- protected menuColors: _angular_core.WritableSignal<"standard" | "vibrant">;
2040
- protected isVisible: _angular_core.WritableSignal<boolean>;
2041
- protected scheme: _angular_core.WritableSignal<"inherit" | "dark" | "light">;
2042
- protected direction: _angular_core.WritableSignal<"ltr" | "rtl" | null>;
2043
- isActive: _angular_core.WritableSignal<boolean>;
2044
- get element(): HTMLElement;
2045
- constructor(el: ElementRef);
2046
- ngAfterContentInit(): void;
2047
- showMenu(value: boolean): void;
2048
- /**
2049
- * The service creates this wrapper first, then calls this method to mount
2050
- * the user supplied component into the dialog container.
2051
- */
2052
- attachContent<T>(component: Type<T>, injector: Injector): ComponentRef<T>;
2053
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<Menu, never>;
2054
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Menu, "md3-menu", never, {}, {}, never, never, true, never>;
2055
- }
2056
-
2057
- declare const MENU_DATA: InjectionToken<unknown>;
2058
- declare const MENU_CONFIG: InjectionToken<MenuConfig<unknown>>;
2059
- declare const MENU_COMPONENT: InjectionToken<Type<unknown>>;
2060
- declare class MenuRef<T = unknown, R = unknown> {
2061
- private readonly overlayRef;
2062
- private readonly previouslyFocusedElement;
2063
- private readonly closed;
2064
- private isClosed;
2065
- menuInstance?: Menu;
2066
- /**
2067
- * Filled by MenuService after the user component is attached. Keeping the
2068
- * instance here lets callers imperatively update inputs when that is useful.
2069
- */
2070
- componentInstance?: T;
2071
- constructor(overlayRef: OverlayRef, previouslyFocusedElement: HTMLElement | null);
2072
- close(result?: R): void;
2073
- private startCloseAnimation;
2074
- afterClosed(): Observable<R | undefined>;
2075
- }
2076
-
2077
- declare class MenuService {
2078
- private readonly overlay;
2079
- private readonly injector;
2080
- private readonly document;
2081
- open<T, D = unknown, R = unknown>(component: Type<T>, config?: MenuConfig<D>): MenuRef<T, R>;
2082
- openSubMenu<T, D = unknown, R = unknown>(component: Type<T>, config?: MenuConfig<D>): MenuRef<T, R>;
2083
- private mergeConfig;
2084
- private createOverlay;
2085
- private bindTriggerActiveState;
2086
- private resolveOrigin;
2087
- private resolveTriggerElement;
2088
- private flipPositionIfPushBreaksAnchor;
2089
- private getInitialConnectedPositions;
2090
- private getPreferredConnectedPosition;
2091
- private getFallbackPositionAfterPush;
2092
- private shouldFlipXPosition;
2093
- private shouldFlipYPosition;
2094
- private createConnectedPosition;
2095
- private createSubMenuConnectedPosition;
2096
- private getHorizontalPosition;
2097
- private getVerticalPosition;
2098
- private getFallbackXPosition;
2099
- private getSubMenuXPosition;
2100
- private getFallbackYPosition;
2101
- private getSubMenuVerticalAlignment;
2102
- private getOriginClientRect;
2103
- private getViewportMargin;
2104
- private getHalfEmInPixels;
2105
- private getOffsetY;
2106
- private getSubMenuOffsetX;
2107
- private getSubMenuOffsetY;
2108
- private getScrollStrategy;
2109
- private isMouseEvent;
2110
- private isElementRef;
2111
- private startOpenAnimation;
2112
- private createInjector;
2113
- private bindDataToInputs;
2114
- private connectCloseEvents;
2115
- private getFocusedElement;
2116
- private canBindDataToInputs;
2117
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuService, never>;
2118
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<MenuService>;
2119
- }
2120
-
2121
2241
  declare class MenuGroup {
2122
2242
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuGroup, never>;
2123
2243
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuGroup, "md3-menu-group", never, {}, {}, never, ["*"], true, never>;
@@ -2466,5 +2586,5 @@ declare class SnackbarService {
2466
2586
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SnackbarService>;
2467
2587
  }
2468
2588
 
2469
- export { AppBar, AppBarLogo, Avatar, BOTTOM_SHEET_COMPONENT, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, Badge, BottomSheetRef, BottomSheetService, Button, ButtonGroup, CAROUSEL_STRATEGIES, Card, Carousel, CarouselItem, Checkbox, ChipAvatar, Chips, CircularProgressIndicator, DIALOG_COMPONENT, DIALOG_CONFIG, DIALOG_DATA, Dialog, DialogActions, DialogBody, DialogHeader, DialogRef, DialogService, Divider, FloatingActionButton, FullScreenDialog, Grid, GridItem, IconButton, IconElement, InputElement, Layout, LayoutService, LinearProgressIndicator, List, ListItem, ListItemPrimaryAction, ListLeading, ListSlot, LoadingIndicator, MENU_COMPONENT, MENU_CONFIG, MENU_DATA, MaterialIcon, Menu, MenuGroup, MenuItem, MenuRef, MenuService, ModalBottomSheetRef, 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, StandardBottomSheetRef, StateComponent, SupportingText, Switch, TextField, Toolbar, ToolbarItem, TypeBody, TypeDisplay, TypeHeadline, TypeLabel, TypeTitle, ViewportService, buildGeometry, clampIndex, indexForScrollOffset, multiBrowseStrategy, parseCarouselAspectRatio, resolveItemGeometry, resolveState, scrollOffsetForIndex, sizeBandFor };
2470
- export type { AppBarScrollingStyle, AppBarType, BottomSheetConfig, BottomSheetContainer, BottomSheetState, BottomSheetSurfaceHost, BottomSheetType, ButtonGroupSelection, ButtonGroupType, ButtonSize, ButtonType, CardType, CarouselAlignment, CarouselArrangement, CarouselGeometry, CarouselItemGeometry, CarouselItemSize, CarouselKeyline, CarouselKeylineState, CarouselLayout, CarouselOrientation, CarouselStrategy, CarouselStrategyContext, ChipStyle, ChipType, DialogConfig, DialogContainer, DialogRole, FabSize, FabType, FloatingBarSide, FloatingInset, IconButtonType, IconButtonWidth, ListLeadingSize, ListLeadingType, Md3NavigationMode, MenuConfig, MenuPositionOrigin, MenuPositionX, MenuPositionY, MenuScrollStrategy, PreviousDialog, SideSheetConfig, SideSheetContainer, SideSheetSide, SideSheetType, SliderSize, SnackbarConfig, SnackbarDismiss, SnackbarDismissReason, SnackbarPoliteness, SplitButtonType, StandardBottomSheetHost, TextColor, TextSize, ToolbarAlignment, ToolbarColor, ToolbarOrientation, ToolbarRegion, ToolbarScrollAction, ToolbarType };
2589
+ export { AppBar, AppBarLogo, Avatar, BOTTOM_SHEET_COMPONENT, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, Badge, BottomSheetRef, BottomSheetService, Button, ButtonGroup, CAROUSEL_STRATEGIES, Card, Carousel, CarouselItem, Checkbox, ChipAvatar, Chips, CircularProgressIndicator, DIALOG_COMPONENT, DIALOG_CONFIG, DIALOG_DATA, Dialog, DialogActions, DialogBody, DialogHeader, DialogRef, DialogService, Divider, FloatingActionButton, FullScreenDialog, Grid, GridItem, IconButton, IconElement, InputElement, Layout, LayoutService, LinearProgressIndicator, List, ListItem, ListItemPrimaryAction, ListLeading, ListSlot, LoadingIndicator, MENU_COMPONENT, MENU_CONFIG, MENU_DATA, MaterialIcon, Menu, MenuGroup, MenuItem, MenuRef, MenuService, ModalBottomSheetRef, 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, SelectField, SheetsService, SideSheetActions, SideSheetBody, SideSheetHeader, SideSheetRef, Slider, Snackbar, SnackbarRef, SnackbarService, SplitButton, StandardBottomSheetRef, StateComponent, SupportingText, Switch, TextField, Toolbar, ToolbarItem, TypeBody, TypeDisplay, TypeHeadline, TypeLabel, TypeTitle, ViewportService, buildGeometry, clampIndex, indexForScrollOffset, multiBrowseStrategy, parseCarouselAspectRatio, resolveItemGeometry, resolveState, scrollOffsetForIndex, sizeBandFor };
2590
+ export type { AppBarScrollingStyle, AppBarType, BottomSheetConfig, BottomSheetContainer, BottomSheetState, BottomSheetSurfaceHost, BottomSheetType, ButtonGroupSelection, ButtonGroupType, ButtonSize, ButtonType, CardType, CarouselAlignment, CarouselArrangement, CarouselGeometry, CarouselItemGeometry, CarouselItemSize, CarouselKeyline, CarouselKeylineState, CarouselLayout, CarouselOrientation, CarouselStrategy, CarouselStrategyContext, ChipStyle, ChipType, DialogConfig, DialogContainer, DialogRole, FabSize, FabType, FloatingBarSide, FloatingInset, IconButtonType, IconButtonWidth, ListLeadingSize, ListLeadingType, Md3NavigationMode, MenuConfig, MenuPositionOrigin, MenuPositionX, MenuPositionY, MenuScrollStrategy, PreviousDialog, SelectFieldValue, SelectOption, SelectOptionValue, SideSheetConfig, SideSheetContainer, SideSheetSide, SideSheetType, SliderSize, SnackbarConfig, SnackbarDismiss, SnackbarDismissReason, SnackbarPoliteness, SplitButtonType, StandardBottomSheetHost, TextColor, TextSize, ToolbarAlignment, ToolbarColor, ToolbarOrientation, ToolbarRegion, ToolbarScrollAction, ToolbarType };