@cute-widgets/base 20.0.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.
Files changed (183) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +191 -0
  3. package/README.md +190 -0
  4. package/abstract/index.d.ts +327 -0
  5. package/alert/index.d.ts +68 -0
  6. package/autocomplete/index.d.ts +442 -0
  7. package/badge/index.d.ts +26 -0
  8. package/bottom-sheet/index.d.ts +231 -0
  9. package/button/index.d.ts +182 -0
  10. package/button-toggle/index.d.ts +225 -0
  11. package/card/index.d.ts +163 -0
  12. package/checkbox/index.d.ts +174 -0
  13. package/chips/index.d.ts +963 -0
  14. package/collapse/index.d.ts +97 -0
  15. package/core/animation/index.d.ts +43 -0
  16. package/core/datetime/index.d.ts +404 -0
  17. package/core/directives/index.d.ts +168 -0
  18. package/core/error/index.d.ts +74 -0
  19. package/core/index.d.ts +1039 -0
  20. package/core/interfaces/index.d.ts +114 -0
  21. package/core/layout/index.d.ts +53 -0
  22. package/core/line/index.d.ts +37 -0
  23. package/core/nav/index.d.ts +321 -0
  24. package/core/observers/index.d.ts +124 -0
  25. package/core/option/index.d.ts +185 -0
  26. package/core/pipes/index.d.ts +53 -0
  27. package/core/ripple/index.d.ts +66 -0
  28. package/core/testing/index.d.ts +154 -0
  29. package/core/theming/index.d.ts +118 -0
  30. package/core/types/index.d.ts +53 -0
  31. package/core/utils/index.d.ts +129 -0
  32. package/cute-widgets-base-20.0.1.tgz +0 -0
  33. package/datepicker/index.d.ts +1817 -0
  34. package/dialog/index.d.ts +484 -0
  35. package/divider/index.d.ts +24 -0
  36. package/expansion/README.md +8 -0
  37. package/expansion/index.d.ts +308 -0
  38. package/fesm2022/cute-widgets-base-abstract.mjs +547 -0
  39. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -0
  40. package/fesm2022/cute-widgets-base-alert.mjs +198 -0
  41. package/fesm2022/cute-widgets-base-alert.mjs.map +1 -0
  42. package/fesm2022/cute-widgets-base-autocomplete.mjs +1217 -0
  43. package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -0
  44. package/fesm2022/cute-widgets-base-badge.mjs +75 -0
  45. package/fesm2022/cute-widgets-base-badge.mjs.map +1 -0
  46. package/fesm2022/cute-widgets-base-bottom-sheet.mjs +416 -0
  47. package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -0
  48. package/fesm2022/cute-widgets-base-button-toggle.mjs +640 -0
  49. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -0
  50. package/fesm2022/cute-widgets-base-button.mjs +546 -0
  51. package/fesm2022/cute-widgets-base-button.mjs.map +1 -0
  52. package/fesm2022/cute-widgets-base-card.mjs +471 -0
  53. package/fesm2022/cute-widgets-base-card.mjs.map +1 -0
  54. package/fesm2022/cute-widgets-base-checkbox.mjs +390 -0
  55. package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -0
  56. package/fesm2022/cute-widgets-base-chips.mjs +2360 -0
  57. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -0
  58. package/fesm2022/cute-widgets-base-collapse.mjs +259 -0
  59. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -0
  60. package/fesm2022/cute-widgets-base-core-animation.mjs +53 -0
  61. package/fesm2022/cute-widgets-base-core-animation.mjs.map +1 -0
  62. package/fesm2022/cute-widgets-base-core-datetime.mjs +568 -0
  63. package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -0
  64. package/fesm2022/cute-widgets-base-core-directives.mjs +404 -0
  65. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -0
  66. package/fesm2022/cute-widgets-base-core-error.mjs +105 -0
  67. package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -0
  68. package/fesm2022/cute-widgets-base-core-interfaces.mjs +22 -0
  69. package/fesm2022/cute-widgets-base-core-interfaces.mjs.map +1 -0
  70. package/fesm2022/cute-widgets-base-core-layout.mjs +74 -0
  71. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -0
  72. package/fesm2022/cute-widgets-base-core-line.mjs +87 -0
  73. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -0
  74. package/fesm2022/cute-widgets-base-core-nav.mjs +863 -0
  75. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -0
  76. package/fesm2022/cute-widgets-base-core-observers.mjs +304 -0
  77. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -0
  78. package/fesm2022/cute-widgets-base-core-option.mjs +373 -0
  79. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -0
  80. package/fesm2022/cute-widgets-base-core-pipes.mjs +97 -0
  81. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -0
  82. package/fesm2022/cute-widgets-base-core-ripple.mjs +172 -0
  83. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -0
  84. package/fesm2022/cute-widgets-base-core-testing.mjs +210 -0
  85. package/fesm2022/cute-widgets-base-core-testing.mjs.map +1 -0
  86. package/fesm2022/cute-widgets-base-core-theming.mjs +314 -0
  87. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -0
  88. package/fesm2022/cute-widgets-base-core-types.mjs +22 -0
  89. package/fesm2022/cute-widgets-base-core-types.mjs.map +1 -0
  90. package/fesm2022/cute-widgets-base-core-utils.mjs +257 -0
  91. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -0
  92. package/fesm2022/cute-widgets-base-core.mjs +1600 -0
  93. package/fesm2022/cute-widgets-base-core.mjs.map +1 -0
  94. package/fesm2022/cute-widgets-base-datepicker.mjs +4827 -0
  95. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -0
  96. package/fesm2022/cute-widgets-base-dialog.mjs +1046 -0
  97. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -0
  98. package/fesm2022/cute-widgets-base-divider.mjs +86 -0
  99. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -0
  100. package/fesm2022/cute-widgets-base-expansion.mjs +623 -0
  101. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -0
  102. package/fesm2022/cute-widgets-base-form-field.mjs +969 -0
  103. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -0
  104. package/fesm2022/cute-widgets-base-grid-list.mjs +715 -0
  105. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -0
  106. package/fesm2022/cute-widgets-base-icon.mjs +1105 -0
  107. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -0
  108. package/fesm2022/cute-widgets-base-input.mjs +726 -0
  109. package/fesm2022/cute-widgets-base-input.mjs.map +1 -0
  110. package/fesm2022/cute-widgets-base-layout-container.mjs +95 -0
  111. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -0
  112. package/fesm2022/cute-widgets-base-layout-stack.mjs +166 -0
  113. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -0
  114. package/fesm2022/cute-widgets-base-layout.mjs +250 -0
  115. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -0
  116. package/fesm2022/cute-widgets-base-list.mjs +1557 -0
  117. package/fesm2022/cute-widgets-base-list.mjs.map +1 -0
  118. package/fesm2022/cute-widgets-base-menu.mjs +1283 -0
  119. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -0
  120. package/fesm2022/cute-widgets-base-navbar.mjs +359 -0
  121. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -0
  122. package/fesm2022/cute-widgets-base-paginator.mjs +485 -0
  123. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -0
  124. package/fesm2022/cute-widgets-base-progress.mjs +321 -0
  125. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -0
  126. package/fesm2022/cute-widgets-base-radio.mjs +637 -0
  127. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -0
  128. package/fesm2022/cute-widgets-base-select.mjs +1208 -0
  129. package/fesm2022/cute-widgets-base-select.mjs.map +1 -0
  130. package/fesm2022/cute-widgets-base-sidenav.mjs +1095 -0
  131. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -0
  132. package/fesm2022/cute-widgets-base-slider.mjs +99 -0
  133. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -0
  134. package/fesm2022/cute-widgets-base-snack-bar.mjs +897 -0
  135. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -0
  136. package/fesm2022/cute-widgets-base-sort.mjs +639 -0
  137. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -0
  138. package/fesm2022/cute-widgets-base-spinner.mjs +154 -0
  139. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -0
  140. package/fesm2022/cute-widgets-base-stepper.mjs +673 -0
  141. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -0
  142. package/fesm2022/cute-widgets-base-table.mjs +1023 -0
  143. package/fesm2022/cute-widgets-base-table.mjs.map +1 -0
  144. package/fesm2022/cute-widgets-base-tabs.mjs +729 -0
  145. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -0
  146. package/fesm2022/cute-widgets-base-timepicker.mjs +965 -0
  147. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -0
  148. package/fesm2022/cute-widgets-base-toolbar.mjs +120 -0
  149. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -0
  150. package/fesm2022/cute-widgets-base-tooltip.mjs +947 -0
  151. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -0
  152. package/fesm2022/cute-widgets-base-tree.mjs +598 -0
  153. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -0
  154. package/fesm2022/cute-widgets-base.mjs +68 -0
  155. package/fesm2022/cute-widgets-base.mjs.map +1 -0
  156. package/form-field/index.d.ts +401 -0
  157. package/grid-list/index.d.ts +361 -0
  158. package/icon/index.d.ts +477 -0
  159. package/index.d.ts +3 -0
  160. package/input/index.d.ts +256 -0
  161. package/layout/container/index.d.ts +31 -0
  162. package/layout/index.d.ts +78 -0
  163. package/layout/stack/index.d.ts +52 -0
  164. package/list/index.d.ts +659 -0
  165. package/menu/index.d.ts +497 -0
  166. package/navbar/index.d.ts +91 -0
  167. package/package.json +279 -0
  168. package/paginator/index.d.ts +216 -0
  169. package/progress/index.d.ts +130 -0
  170. package/radio/index.d.ts +259 -0
  171. package/select/index.d.ts +426 -0
  172. package/sidenav/index.d.ts +369 -0
  173. package/slider/index.d.ts +48 -0
  174. package/snack-bar/index.d.ts +374 -0
  175. package/sort/index.d.ts +334 -0
  176. package/spinner/index.d.ts +70 -0
  177. package/stepper/index.d.ts +295 -0
  178. package/table/index.d.ts +395 -0
  179. package/tabs/index.d.ts +307 -0
  180. package/timepicker/index.d.ts +350 -0
  181. package/toolbar/index.d.ts +36 -0
  182. package/tooltip/index.d.ts +299 -0
  183. package/tree/index.d.ts +314 -0
@@ -0,0 +1,426 @@
1
+ import { FocusOrigin } from '@angular/cdk/a11y';
2
+ import { ScrollStrategy, Overlay, ConnectedPosition, CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
3
+ import { ViewportRuler } from '@angular/cdk/scrolling';
4
+ import * as i0 from '@angular/core';
5
+ import { InjectionToken, DoCheck, NgZone, QueryList, ElementRef, EventEmitter, SimpleChanges } from '@angular/core';
6
+ import { NgControl } from '@angular/forms';
7
+ import { Subject, Observable } from 'rxjs';
8
+ import * as i3 from '@cute-widgets/base/core/option';
9
+ import { CuteOption, CuteOptgroup, CuteOptionSelectionChange } from '@cute-widgets/base/core/option';
10
+ import { RelativeSize } from '@cute-widgets/base/core/types';
11
+ import { CuteFormFieldControl, CuteFormField } from '@cute-widgets/base/form-field';
12
+ import { ErrorStateMatcher } from '@cute-widgets/base/core/error';
13
+ import { CuteInputDropdownControl } from '@cute-widgets/base/abstract';
14
+ import { AnimationTriggerMetadata } from '@angular/animations';
15
+ import * as i1 from '@angular/common';
16
+
17
+ /**
18
+ * @license Apache-2.0
19
+ *
20
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
21
+ *
22
+ * You may not use this file except in compliance with the License
23
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
24
+ *
25
+ * This code is a modification of the `@angular/material` original
26
+ * code licensed under MIT-style License (https://angular.dev/license).
27
+ */
28
+
29
+ /** Injection token that determines the scroll handling while a select is open. */
30
+ declare const CUTE_SELECT_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
31
+ /** @docs-private */
32
+ declare function CUTE_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;
33
+ /** Object that can be used to configure the default options for the select module. */
34
+ interface CuteSelectConfig {
35
+ /** Whether option centering should be disabled. */
36
+ disableOptionCentering?: boolean;
37
+ /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */
38
+ typeaheadDebounceInterval?: number;
39
+ /** Class or list of classes to be applied to the menu's overlay panel. */
40
+ overlayPanelClass?: string | string[];
41
+ /** Whether icon indicators should be hidden for single-selection. */
42
+ hideSingleSelectionIndicator?: boolean;
43
+ /**
44
+ * Width of the panel. If set to `auto`, the panel will match the trigger width.
45
+ * If set to _null_ or an empty string, the panel will grow to match the longest option's text.
46
+ */
47
+ panelWidth?: string | number | null;
48
+ /**
49
+ * Height of the panel. If set to `auto`, _null_ or an empty string, the panel will display all options.
50
+ * If height is not empty, its value is set as a maximum height of the panel with vertical scrolling set to `auto`.
51
+ */
52
+ panelHeight?: string | number | null;
53
+ /**
54
+ * Whether nullable options can be selected by default.
55
+ * See `CuteSelect.canSelectNullableOptions` for more information.
56
+ */
57
+ canSelectNullableOptions?: boolean;
58
+ }
59
+ /** Injection token that can be used to provide the default options the select module. */
60
+ declare const CUTE_SELECT_CONFIG: InjectionToken<CuteSelectConfig>;
61
+ /** @docs-private */
62
+ declare const CUTE_SELECT_SCROLL_STRATEGY_PROVIDER: {
63
+ provide: InjectionToken<() => ScrollStrategy>;
64
+ deps: (typeof Overlay)[];
65
+ useFactory: typeof CUTE_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY;
66
+ };
67
+ /**
68
+ * Injection token that can be used to reference instances of `CuteSelectTrigger`. It serves as
69
+ * an alternative token to the actual `CuteSelectTrigger` class which could cause unnecessary
70
+ * retention of the class and its directive metadata.
71
+ */
72
+ declare const CUTE_SELECT_TRIGGER: InjectionToken<CuteSelectTrigger>;
73
+ /** Change event object that is emitted when the select value has changed. */
74
+ declare class CuteSelectChange {
75
+ /** Reference to the select that emitted the change event. */
76
+ source: CuteSelect;
77
+ /** Current value of the select that emitted the event. */
78
+ value: any;
79
+ constructor(
80
+ /** Reference to the select that emitted the change event. */
81
+ source: CuteSelect,
82
+ /** Current value of the select that emitted the event. */
83
+ value: any);
84
+ }
85
+ declare class CuteSelect extends CuteInputDropdownControl implements DoCheck, CuteFormFieldControl<any> {
86
+ protected _viewportRuler: ViewportRuler;
87
+ protected _ngZone: NgZone;
88
+ private _dir;
89
+ protected _parentFormField: CuteFormField | null;
90
+ ngControl: NgControl;
91
+ private _liveAnnouncer;
92
+ protected _defaultOptions: CuteSelectConfig | null;
93
+ /** All the defined select options. */
94
+ options: QueryList<CuteOption> | undefined;
95
+ /** All of the defined groups of options. */
96
+ optionGroups: QueryList<CuteOptgroup> | undefined;
97
+ /** User-supplied override of the trigger element. */
98
+ customTrigger: CuteSelectTrigger | undefined;
99
+ /**
100
+ * This position config ensures that the top "start" corner of the overlay
101
+ * is aligned with the top "start" of the origin by default (overlapping
102
+ * the trigger completely). If the panel cannot fit below the trigger, it
103
+ * will fall back to a position above the trigger.
104
+ */
105
+ _positions: ConnectedPosition[];
106
+ /** Scrolls a particular option into the view. */
107
+ _scrollOptionIntoView(index: number): void;
108
+ /** Generates unique identifier */
109
+ protected generateId(): string;
110
+ /** Called when the panel has been opened and the overlay has settled on its final position. */
111
+ private _positioningSettled;
112
+ /** Creates a change event object that should be emitted by the select. */
113
+ private _getChangeEvent;
114
+ /** Factory function used to create a scroll strategy for this select. */
115
+ private _scrollStrategyFactory;
116
+ /** Whether the overlay panel is open. */
117
+ private _panelOpen;
118
+ /** Comparison function to specify which option is displayed. Defaults to object equality. */
119
+ private _compareWith;
120
+ /** Current `aria-labelledby` value for the select trigger. */
121
+ private _triggerAriaLabelledBy;
122
+ /**
123
+ * Keeps track of the previous form control assigned to the select.
124
+ * Used to detect if it has changed.
125
+ */
126
+ private _previousControl;
127
+ /** Emits whenever the component is destroyed. */
128
+ protected readonly _destroy: Subject<void>;
129
+ /** Emits when the panel element is finished transforming in. */
130
+ protected readonly _panelDoneAnimatingStream: Subject<string>;
131
+ /** Tracks the error state of the select. */
132
+ private _errorStateTracker;
133
+ /** Disable the automatic labeling to avoid issues like #27241. */
134
+ readonly disableAutomaticLabeling = true;
135
+ /** Deals with the selection logic. */
136
+ private _selectionModel;
137
+ /** Manages keyboard events for options in the panel. */
138
+ private _keyManager;
139
+ /** Ideal origin for the overlay panel. */
140
+ protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;
141
+ /** Width of the overlay panel. */
142
+ protected _overlayWidth: string | number | undefined;
143
+ /** Strategy that will be used to handle scrolling while the select panel is open. */
144
+ protected _scrollStrategy: ScrollStrategy;
145
+ protected _overlayPanelClass: string | string[];
146
+ get expanded(): boolean;
147
+ /** Whether the select is focused. */
148
+ get focused(): boolean;
149
+ private _focused;
150
+ /** A name for this control that can be used by `cute-form-field`. */
151
+ controlType: string;
152
+ /** Implemented as part of CuteFormFieldControl. */
153
+ get controlElementRef(): ElementRef;
154
+ /** Trigger that opens the select. */
155
+ trigger: ElementRef | undefined;
156
+ /** Panel containing the select options. */
157
+ panel: ElementRef | undefined;
158
+ /** Overlay pane containing the options. */
159
+ protected _overlayDir: CdkConnectedOverlay | undefined;
160
+ /** Implemented as part of CuteFormFieldControl. */
161
+ userAriaDescribedBy: string | undefined;
162
+ /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */
163
+ panelClass: string | string[] | Set<string> | {
164
+ [key: string]: any;
165
+ };
166
+ /** Whether ripples in the select are disabled. */
167
+ disableRipple: boolean;
168
+ /** Whether the checkmark indicator for single-selection options is hidden. */
169
+ get hideSingleSelectionIndicator(): boolean;
170
+ set hideSingleSelectionIndicator(value: boolean);
171
+ private _hideSingleSelectionIndicator;
172
+ /** Placeholder to be shown if no value has been selected. */
173
+ get placeholder(): string;
174
+ set placeholder(value: string);
175
+ private _placeholder;
176
+ /** Whether the component is required. */
177
+ get required(): boolean;
178
+ set required(value: boolean);
179
+ /** Whether the user should be allowed to select multiple options. */
180
+ get multiple(): boolean;
181
+ set multiple(value: boolean);
182
+ private _multiple;
183
+ /** Whether to center the active option over the trigger. */
184
+ disableOptionCentering: boolean;
185
+ /**
186
+ * Function to compare the option values with the selected values. The first argument
187
+ * is a value from an option. The second is a value from the selection. A boolean
188
+ * should be returned.
189
+ */
190
+ get compareWith(): (o1: any, o2: any) => boolean;
191
+ set compareWith(fn: (o1: any, o2: any) => boolean);
192
+ /** Value of the select control. */
193
+ get value(): any;
194
+ set value(newValue: any);
195
+ private _value;
196
+ /** Object used to control when error messages are shown. */
197
+ get errorStateMatcher(): ErrorStateMatcher;
198
+ set errorStateMatcher(value: ErrorStateMatcher);
199
+ /** Relative size of the select control */
200
+ magnitude: RelativeSize | undefined;
201
+ /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */
202
+ typeaheadDebounceInterval: number;
203
+ /**
204
+ * Function used to sort the values in a select in multiple mode.
205
+ * Follows the same logic as `Array.prototype.sort`.
206
+ */
207
+ sortComparator: ((a: CuteOption, b: CuteOption, options: CuteOption[]) => number) | undefined;
208
+ /** Whether the select is in an error state. */
209
+ get errorState(): boolean;
210
+ set errorState(value: boolean);
211
+ /**
212
+ * Width of the panel. If set to `auto`, the panel will match the trigger width.
213
+ * If set to null or an empty string, the panel will grow to match the longest option's text.
214
+ */
215
+ panelWidth: string | number | null;
216
+ /**
217
+ * Height of the panel. If set to `auto`, _null_ or an empty string, the panel will display all options.
218
+ * If height is not empty, its value is set as a maximum height of the panel with vertical scrolling set to `auto`.
219
+ */
220
+ panelHeight: string | number | null;
221
+ /**
222
+ * By default, selecting an option with a `null` or `undefined` value will reset the select's
223
+ * value. Enable this option if the reset behavior doesn't match your requirements and instead,
224
+ * the nullable options should become selected. The value of this input can be controlled app-wide
225
+ * using the `MAT_SELECT_CONFIG` injection token.
226
+ */
227
+ canSelectNullableOptions: boolean;
228
+ /** Combined stream of all of the child options' change events. */
229
+ readonly optionSelectionChanges: Observable<CuteOptionSelectionChange>;
230
+ /** Event emitted when the select panel has been toggled. */
231
+ readonly openedChange: EventEmitter<boolean>;
232
+ /** Event emitted when the select has been opened. */
233
+ readonly _openedStream: Observable<void>;
234
+ /** Event emitted when the select has been closed. */
235
+ readonly _closedStream: Observable<void>;
236
+ /** Event emitted when the selected value has been changed by the user. */
237
+ readonly selectionChange: EventEmitter<CuteSelectChange>;
238
+ /**
239
+ * Event that emits whenever the raw value of the select changes. This is here primarily
240
+ * to facilitate the two-way binding for the `value` input.
241
+ */
242
+ readonly valueChange: EventEmitter<any>;
243
+ constructor(...args: unknown[]);
244
+ ngOnInit(): void;
245
+ ngAfterContentInit(): void;
246
+ ngDoCheck(): void;
247
+ ngOnChanges(changes: SimpleChanges): void;
248
+ ngOnDestroy(): void;
249
+ /** Toggles the overlay panel open or closed. */
250
+ toggle(): void;
251
+ /** Opens the overlay panel. */
252
+ open(): void;
253
+ /**
254
+ * Track which modal we have modified the `aria-owns` attribute of. When the combobox trigger is
255
+ * inside an aria-modal, we apply aria-owns to the parent modal with the `id` of the options
256
+ * panel. Track the modal we have changed so we can undo the changes on destroy.
257
+ */
258
+ private _trackedModal;
259
+ /**
260
+ * If the autocomplete trigger is inside of an `aria-modal` element, connect
261
+ * that modal to the options panel with `aria-owns`.
262
+ *
263
+ * For some browser + screen reader combinations, when navigation is inside
264
+ * of an `aria-modal` element, the screen reader treats everything outside
265
+ * of that modal as hidden or invisible.
266
+ *
267
+ * This causes a problem when the combobox trigger is _inside_ of a modal, because the
268
+ * options panel is rendered _outside_ of that modal, preventing screen reader navigation
269
+ * from reaching the panel.
270
+ *
271
+ * We can work around this issue by applying `aria-owns` to the modal with the `id` of
272
+ * the options panel. This effectively communicates to assistive technology that the
273
+ * options panel is part of the same interaction as the modal.
274
+ *
275
+ * At the time of this writing, this issue is present in VoiceOver.
276
+ * See https://github.com/angular/components/issues/20694
277
+ */
278
+ private _applyModalPanelOwnership;
279
+ /** Clears the reference to the listbox overlay element from the modal it was added to. */
280
+ private _clearFromModal;
281
+ /** Closes the overlay panel and focuses the host element. */
282
+ close(): void;
283
+ /**
284
+ * Sets the select' value. Part of the ControlValueAccessor interface
285
+ * required to integrate with Angular core forms API.
286
+ *
287
+ * @param value New value to be written to the model.
288
+ */
289
+ writeValue(value: any): void;
290
+ /** Whether the overlay panel is open. */
291
+ get panelOpen(): boolean;
292
+ /** The currently selected option. */
293
+ get selected(): CuteOption | CuteOption[];
294
+ /** The value displayed in the trigger. */
295
+ get triggerValue(): string;
296
+ /** Refreshes the error state of the select. */
297
+ updateErrorState(): void;
298
+ /** Whether the element is in RTL mode. */
299
+ _isRtl(): boolean;
300
+ /** Handles all keydown events on the select. */
301
+ _handleKeydown(event: KeyboardEvent): void;
302
+ /** Handles keyboard events while the select is closed. */
303
+ private _handleClosedKeydown;
304
+ /** Handles keyboard events when the selected is open. */
305
+ private _handleOpenKeydown;
306
+ _onFocus(): void;
307
+ /**
308
+ * Calls the touched callback only if the panel is closed. Otherwise, the trigger will
309
+ * "blur" to the panel when it opens, causing a false positive.
310
+ */
311
+ _onBlur(): void;
312
+ /**
313
+ * Callback that is invoked when the overlay panel has been attached.
314
+ */
315
+ _onAttached(): void;
316
+ /** Returns the theme to be used on the panel. */
317
+ _getPanelTheme(): string;
318
+ /** Whether the select has a value. */
319
+ get empty(): boolean;
320
+ private _initializeSelection;
321
+ /**
322
+ * Sets the selected option based on a value. If no option can be
323
+ * found with the designated value, the select trigger is cleared.
324
+ */
325
+ private _setSelectionByValue;
326
+ /**
327
+ * Finds and selects and option based on its value.
328
+ * @returns Option that has the corresponding value.
329
+ */
330
+ private _selectOptionByValue;
331
+ /** Assigns a specific value to the select. Returns whether the value has changed. */
332
+ private _assignValue;
333
+ private _skipPredicate;
334
+ /** Gets how wide the overlay panel should be. */
335
+ private _getOverlayWidth;
336
+ /** Syncs the parent state with the individual options. */
337
+ _syncParentProperties(): void;
338
+ /** Sets up a key manager to listen to keyboard events on the overlay panel. */
339
+ private _initKeyManager;
340
+ /** Drops current option subscriptions and IDs and resets from scratch. */
341
+ private _resetOptions;
342
+ /** Invoked when an option is clicked. */
343
+ private _onSelect;
344
+ /** Sorts the selected values in the selected based on their order in the panel. */
345
+ private _sortValues;
346
+ /** Emits change event to set the model value. */
347
+ private _propagateChanges;
348
+ /**
349
+ * Highlights the selected item. If no option is selected, it will highlight
350
+ * the first *enabled* option.
351
+ */
352
+ private _highlightCorrectOption;
353
+ /** Whether the panel is allowed to open. */
354
+ protected _canOpen(): boolean;
355
+ /** Focuses the select element. */
356
+ focus(origin?: FocusOrigin, options?: FocusOptions): void;
357
+ /** Gets the aria-labelledby for the select panel. */
358
+ _getPanelAriaLabelledby(): string | null;
359
+ /** Determines the `aria-activedescendant` to be set on the host. */
360
+ protected _getAriaActiveDescendant(): string | null;
361
+ /** Gets the aria-labelledby of the select component trigger. */
362
+ private _getTriggerAriaLabelledby;
363
+ /** Called when the overlay panel is done animating. */
364
+ protected _panelDoneAnimating(isOpen: boolean): void;
365
+ /**
366
+ * Implemented as part of CuteFormFieldControl.
367
+ */
368
+ setDescribedByIds(ids: string[]): void;
369
+ /**
370
+ * Implemented as part of CuteFormFieldControl.
371
+ */
372
+ onContainerClick(): void;
373
+ /**
374
+ * Implemented as part of CuteFormFieldControl.
375
+ */
376
+ get shouldLabelFloat(): boolean;
377
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteSelect, never>;
378
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuteSelect, "cute-select", ["cuteSelect"], { "userAriaDescribedBy": { "alias": "aria-describedby"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "hideSingleSelectionIndicator": { "alias": "hideSingleSelectionIndicator"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disableOptionCentering": { "alias": "disableOptionCentering"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "magnitude": { "alias": "magnitude"; "required": false; }; "typeaheadDebounceInterval": { "alias": "typeaheadDebounceInterval"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelHeight": { "alias": "panelHeight"; "required": false; }; "canSelectNullableOptions": { "alias": "canSelectNullableOptions"; "required": false; }; }, { "openedChange": "openedChange"; "_openedStream": "opened"; "_closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["customTrigger", "options", "optionGroups"], ["cute-select-trigger", "*"], true, never>;
379
+ static ngAcceptInputType_disableRipple: unknown;
380
+ static ngAcceptInputType_hideSingleSelectionIndicator: unknown;
381
+ static ngAcceptInputType_multiple: unknown;
382
+ static ngAcceptInputType_disableOptionCentering: unknown;
383
+ static ngAcceptInputType_typeaheadDebounceInterval: unknown;
384
+ static ngAcceptInputType_canSelectNullableOptions: unknown;
385
+ }
386
+ /**
387
+ * Allows the user to customize the trigger that is displayed when the select has a value.
388
+ */
389
+ declare class CuteSelectTrigger {
390
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteSelectTrigger, never>;
391
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteSelectTrigger, "cute-select-trigger", never, {}, {}, never, never, true, never>;
392
+ }
393
+
394
+ /**
395
+ * @license Apache-2.0
396
+ *
397
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
398
+ *
399
+ * You may not use this file except in compliance with the License
400
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
401
+ */
402
+
403
+ /**
404
+ * The following are all the animations for the mat-select component, with each
405
+ * const containing the metadata for one animation.
406
+ *
407
+ * The values below match the implementation of the AngularJS Material mat-select animation.
408
+ * @docs-private
409
+ */
410
+ declare const cuteSelectAnimations: {
411
+ /**
412
+ * @deprecated No longer being used. To be removed.
413
+ * @breaking-change 12.0.0
414
+ */
415
+ readonly transformPanelWrap: AnimationTriggerMetadata;
416
+ readonly transformPanel: AnimationTriggerMetadata;
417
+ };
418
+
419
+ declare class CuteSelectModule {
420
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteSelectModule, never>;
421
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CuteSelectModule, never, [typeof i1.CommonModule, typeof CuteSelect, typeof CuteSelectTrigger, typeof i3.CuteOptgroup, typeof i3.CuteOption], [typeof CuteSelect, typeof CuteSelectTrigger, typeof i3.CuteOptgroup, typeof i3.CuteOption]>;
422
+ static ɵinj: i0.ɵɵInjectorDeclaration<CuteSelectModule>;
423
+ }
424
+
425
+ export { CUTE_SELECT_CONFIG, CUTE_SELECT_SCROLL_STRATEGY, CUTE_SELECT_SCROLL_STRATEGY_PROVIDER, CUTE_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, CUTE_SELECT_TRIGGER, CuteSelect, CuteSelectChange, CuteSelectModule, CuteSelectTrigger, cuteSelectAnimations };
426
+ export type { CuteSelectConfig };