@nanahoshi/mona-ui 0.24.4 → 0.24.5

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 (66) hide show
  1. package/README.md +1 -0
  2. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +95 -70
  3. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +136 -89
  4. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +108 -56
  5. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +68 -59
  6. package/fesm2022/nanahoshi-mona-ui-editor.mjs +3 -3
  7. package/fesm2022/nanahoshi-mona-ui-filter.mjs +1 -1
  8. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-row.component-DLOPRuFv.mjs → nanahoshi-mona-ui-grid-grid-footer-row.component-BMCM0W8s.mjs} +2 -2
  9. package/fesm2022/{nanahoshi-mona-ui-grid-grid-list.component-Dw5U9H0a.mjs → nanahoshi-mona-ui-grid-grid-list.component-BSlV8Sua.mjs} +4 -4
  10. package/fesm2022/{nanahoshi-mona-ui-grid-grid-row.component-D1kyAzD8.mjs → nanahoshi-mona-ui-grid-grid-row.component-CTOdnH29.mjs} +2 -2
  11. package/fesm2022/{nanahoshi-mona-ui-grid-grid-virtual-list.component-ECK1_smx.mjs → nanahoshi-mona-ui-grid-grid-virtual-list.component-C2kf5MwO.mjs} +4 -4
  12. package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-D4lUDbfx.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-Dh42tUui.mjs} +8 -8
  13. package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
  14. package/fesm2022/nanahoshi-mona-ui-i18n-icu.mjs +2 -1
  15. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +2 -2
  16. package/fesm2022/nanahoshi-mona-ui-internal.mjs +4 -2
  17. package/fesm2022/nanahoshi-mona-ui-locales-ar-sa.mjs +2 -1
  18. package/fesm2022/nanahoshi-mona-ui-locales-de-de.mjs +4 -1
  19. package/fesm2022/nanahoshi-mona-ui-locales-es-es.mjs +4 -1
  20. package/fesm2022/nanahoshi-mona-ui-locales-fr-fr.mjs +4 -1
  21. package/fesm2022/nanahoshi-mona-ui-locales-id-id.mjs +2 -1
  22. package/fesm2022/nanahoshi-mona-ui-locales-it-it.mjs +2 -1
  23. package/fesm2022/nanahoshi-mona-ui-locales-ja-jp.mjs +2 -1
  24. package/fesm2022/nanahoshi-mona-ui-locales-ko-kr.mjs +2 -1
  25. package/fesm2022/nanahoshi-mona-ui-locales-pt-br.mjs +2 -1
  26. package/fesm2022/nanahoshi-mona-ui-locales-ru-ru.mjs +2 -1
  27. package/fesm2022/nanahoshi-mona-ui-locales-tr-tr.mjs +2 -1
  28. package/fesm2022/nanahoshi-mona-ui-locales-zh-cn.mjs +2 -1
  29. package/fesm2022/nanahoshi-mona-ui-locales-zh-tw.mjs +2 -1
  30. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +118 -66
  31. package/fesm2022/nanahoshi-mona-ui-pager.mjs +1 -1
  32. package/i18n/catalogs/en-US.messages.json +2 -1
  33. package/locales/ar-sa/ar-sa.messages.json +2 -1
  34. package/locales/de-de/de-de.messages.json +2 -1
  35. package/locales/es-es/es-es.messages.json +2 -1
  36. package/locales/fr-fr/fr-fr.messages.json +2 -1
  37. package/locales/id-id/id-id.messages.json +2 -1
  38. package/locales/it-it/it-it.messages.json +2 -1
  39. package/locales/ja-jp/ja-jp.messages.json +2 -1
  40. package/locales/ko-kr/ko-kr.messages.json +2 -1
  41. package/locales/pt-br/pt-br.messages.json +2 -1
  42. package/locales/ru-ru/ru-ru.messages.json +2 -1
  43. package/locales/tr-tr/tr-tr.messages.json +2 -1
  44. package/locales/zh-cn/zh-cn.messages.json +2 -1
  45. package/locales/zh-tw/zh-tw.messages.json +2 -1
  46. package/package.json +1 -1
  47. package/types/nanahoshi-mona-ui-auto-complete.d.ts +34 -20
  48. package/types/nanahoshi-mona-ui-combo-box.d.ts +42 -23
  49. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +29 -15
  50. package/types/nanahoshi-mona-ui-dropdowns.d.ts +30 -19
  51. package/types/nanahoshi-mona-ui-i18n.d.ts +1 -0
  52. package/types/nanahoshi-mona-ui-internal.d.ts +3 -1
  53. package/types/nanahoshi-mona-ui-locales-ar-sa.d.ts +1 -0
  54. package/types/nanahoshi-mona-ui-locales-de-de.d.ts +1 -0
  55. package/types/nanahoshi-mona-ui-locales-es-es.d.ts +1 -0
  56. package/types/nanahoshi-mona-ui-locales-fr-fr.d.ts +1 -0
  57. package/types/nanahoshi-mona-ui-locales-id-id.d.ts +1 -0
  58. package/types/nanahoshi-mona-ui-locales-it-it.d.ts +1 -0
  59. package/types/nanahoshi-mona-ui-locales-ja-jp.d.ts +1 -0
  60. package/types/nanahoshi-mona-ui-locales-ko-kr.d.ts +1 -0
  61. package/types/nanahoshi-mona-ui-locales-pt-br.d.ts +1 -0
  62. package/types/nanahoshi-mona-ui-locales-ru-ru.d.ts +1 -0
  63. package/types/nanahoshi-mona-ui-locales-tr-tr.d.ts +1 -0
  64. package/types/nanahoshi-mona-ui-locales-zh-cn.d.ts +1 -0
  65. package/types/nanahoshi-mona-ui-locales-zh-tw.d.ts +1 -0
  66. package/types/nanahoshi-mona-ui-multi-select.d.ts +45 -21
@@ -39,6 +39,7 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
39
39
  protected readonly activeDescendant: _angular_core.Signal<string | null>;
40
40
  protected readonly affixClass: _angular_core.Signal<string>;
41
41
  protected readonly baseClass: _angular_core.Signal<string>;
42
+ protected readonly clearButtonVisible: _angular_core.Signal<boolean>;
42
43
  protected readonly effectiveAriaLabel: _angular_core.Signal<string>;
43
44
  protected readonly expanded: _angular_core.Signal<boolean>;
44
45
  protected readonly footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
@@ -59,6 +60,11 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
59
60
  protected readonly valueContainerClass: _angular_core.Signal<string>;
60
61
  protected readonly valueTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
61
62
  protected readonly valueText: _angular_core.Signal<string>;
63
+ /**
64
+ * @description ID of an element that describes the dropdown list, such as help text or an error message.
65
+ * @default ""
66
+ */
67
+ readonly ariaDescribedBy: _angular_core.InputSignal<string>;
62
68
  /**
63
69
  * @description Accessible name for the host element. Describe what the component represents.
64
70
  * When empty, falls back to the placeholder text.
@@ -87,22 +93,23 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
87
93
  * @description Renders the component with reduced visual emphasis and removes pointer interaction.
88
94
  * @default false
89
95
  */
90
- readonly disabled: _angular_core.ModelSignal<boolean>;
96
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
91
97
  /**
92
98
  * @description Marks the field as invalid. Set automatically by the `FormField` directive when bound via `[formField]`.
93
99
  * @default false
94
100
  */
95
- readonly invalid: _angular_core.InputSignal<boolean>;
101
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
96
102
  /**
97
103
  * @description Predicate or field name used to determine whether an individual item is disabled.
98
104
  * @default undefined
99
105
  */
100
106
  readonly itemDisabled: _angular_core.InputSignal<DropdownFieldPredicateType<TData>>;
101
107
  /**
102
- * @description Displays a loading indicator and prevents interaction while an operation is in progress.
108
+ * @description Shows a loading indicator, in place of the clear button, and marks the field busy. It doesn't
109
+ * block interaction: the field stays usable while data loads.
103
110
  * @default false
104
111
  */
105
- readonly loading: _angular_core.InputSignal<boolean>;
112
+ readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
106
113
  /**
107
114
  * @description Emitted when the popup is about to open. This event is preventable.
108
115
  */
@@ -122,7 +129,8 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
122
129
  */
123
130
  readonly popupClass: _angular_core.InputSignal<string>;
124
131
  /**
125
- * @description Height of the popup element.
132
+ * @description Maximum height of the popup, in pixels or as a CSS length. Shorter lists shrink to fit. When
133
+ * unset, the popup is at most 200 pixels tall.
126
134
  * @default null
127
135
  */
128
136
  readonly popupHeight: _angular_core.InputSignal<ListSizeInputType>;
@@ -135,12 +143,12 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
135
143
  * @description Prevents value changes while preserving the component's visual state.
136
144
  * @default false
137
145
  */
138
- readonly readonly: _angular_core.InputSignal<boolean>;
146
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
139
147
  /**
140
148
  * @description Marks the field as required for form validation.
141
149
  * @default false
142
150
  */
143
- readonly required: _angular_core.InputSignal<boolean>;
151
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
144
152
  /**
145
153
  * @description Border-radius preset applied to the component.
146
154
  * @default "medium"
@@ -150,7 +158,7 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
150
158
  * @description Shows a clear button that resets the selected value when clicked.
151
159
  * @default false
152
160
  */
153
- readonly showClearButton: _angular_core.InputSignal<boolean>;
161
+ readonly showClearButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
154
162
  /**
155
163
  * @description Size preset controlling the component's dimensions.
156
164
  * @default "medium"
@@ -163,15 +171,15 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
163
171
  */
164
172
  readonly textField: _angular_core.InputSignal<DropdownFieldSelectorType<TData, string>>;
165
173
  /**
166
- * @description Emitted when the control is interacted with via blur, selection, or clear.
167
- * The `FormField` directive listens to this to mark the field as touched.
174
+ * @description Emitted when focus leaves the dropdown list. Moving between it, its clear button and its popup
175
+ * doesn't count. The `FormField` directive listens to this to mark the field as touched.
168
176
  */
169
177
  readonly touch: _angular_core.OutputEmitterRef<void>;
170
178
  /**
171
179
  * @description Marks the control as touched. Set automatically by the `FormField` directive when bound via `[formField]`.
172
180
  * @default false
173
181
  */
174
- readonly touched: _angular_core.InputSignal<boolean>;
182
+ readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
175
183
  /**
176
184
  * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
177
185
  * @default ""
@@ -202,11 +210,15 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
202
210
  *
203
211
  * @default false
204
212
  */
205
- readonly valuePrimitive: _angular_core.InputSignal<boolean>;
213
+ readonly valuePrimitive: _angular_core.InputSignalWithTransform<boolean, unknown>;
206
214
  constructor();
207
- focus(): void;
215
+ /**
216
+ * @description Moves focus to the dropdown list.
217
+ * @param options Passed to `HTMLElement.focus()`, for example `{ preventScroll: true }`.
218
+ */
219
+ focus(options?: FocusOptions): void;
208
220
  setValue(value: TValue): void;
209
- protected onBlur(event?: FocusEvent): void;
221
+ protected onFocusOut(event: FocusEvent): void;
210
222
  protected onItemSelect(event: SelectionChangeEvent<TData>): void;
211
223
  protected onPopupPointerDown(event: PointerEvent): void;
212
224
  protected onValueClear(event: MouseEvent | KeyboardEvent): void;
@@ -216,17 +228,19 @@ declare class DropdownListComponent<TData = unknown, TValue = TData> implements
216
228
  private handleEnterKey;
217
229
  private handleHomeEndKeys;
218
230
  private initialize;
231
+ private pushTypeaheadKey;
219
232
  private scrollToSelectedItem;
220
233
  private setArrowKeyNavigationSubscription;
221
234
  private setFilterChangeSubscription;
222
235
  private setKeydownSubscription;
223
236
  private setPopupCloseSubscriptions;
224
237
  private setSubscriptions;
238
+ private setTypeaheadSpaceSubscription;
225
239
  private setTypeaheadSubscription;
226
240
  private synchronizeSelection;
227
241
  private updateValue;
228
242
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownListComponent<any, any>, never>;
229
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownListComponent<any, any>, "mona-dropdown-list", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "itemDisabled": { "alias": "itemDisabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "popupClass": { "alias": "popupClass"; "required": false; "isSignal": true; }; "popupHeight": { "alias": "popupHeight"; "required": false; "isSignal": true; }; "popupWidth": { "alias": "popupWidth"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "valuePrimitive": { "alias": "valuePrimitive"; "required": false; "isSignal": true; }; }, { "close": "close"; "closed": "closed"; "disabled": "disabledChange"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate", "valueTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
243
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownListComponent<any, any>, "mona-dropdown-list", never, { "ariaDescribedBy": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "itemDisabled": { "alias": "itemDisabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "popupClass": { "alias": "popupClass"; "required": false; "isSignal": true; }; "popupHeight": { "alias": "popupHeight"; "required": false; "isSignal": true; }; "popupWidth": { "alias": "popupWidth"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "valuePrimitive": { "alias": "valuePrimitive"; "required": false; "isSignal": true; }; }, { "close": "close"; "closed": "closed"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate", "valueTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownLiveRegionDirective; inputs: {}; outputs: {}; }]>;
230
244
  }
231
245
 
232
246
  declare class DropdownListValueTemplateDirective {
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InputSignal, InjectionToken, OutputEmitterRef, TemplateRef } from '@angular/core';
2
+ import { InjectionToken, InputSignal, OutputEmitterRef, Signal, TemplateRef } from '@angular/core';
3
3
  import { Predicate, Selector } from '@mirei/ts-collections';
4
4
  import { ListSizeInputType, GroupableOptions, ListItem } from '@nanahoshi/mona-ui/internal/list';
5
5
  import { PopupCloseEvent, PopupRef, PopupSettings } from '@nanahoshi/mona-ui/popup';
@@ -20,30 +20,34 @@ interface DropdownDataInput<TData> {
20
20
  readonly textField: InputSignal<DropdownFieldSelectorType<TData, string>>;
21
21
  readonly valueField: InputSignal<DropdownFieldSelectorType<TData, unknown>>;
22
22
  }
23
+ declare const DROPDOWN_DATA_INPUT_TOKEN: InjectionToken<DropdownDataInput<unknown>>;
24
+ /**
25
+ * @deprecated Use {@link DROPDOWN_DATA_INPUT_TOKEN}.
26
+ */
23
27
  declare const DropdownDataInputToken: InjectionToken<DropdownDataInput<unknown>>;
24
28
 
25
29
  interface DropdownPopupInput {
26
30
  readonly close: OutputEmitterRef<PopupCloseEvent>;
27
31
  readonly closed: OutputEmitterRef<void>;
28
- readonly disabled: InputSignal<boolean>;
32
+ readonly disabled: Signal<boolean>;
29
33
  readonly open: OutputEmitterRef<PreventableEvent>;
30
34
  readonly opened: OutputEmitterRef<void>;
31
35
  readonly popupHeight: InputSignal<ListSizeInputType>;
32
36
  readonly popupWidth: InputSignal<ListSizeInputType>;
33
- readonly readonly: InputSignal<boolean>;
37
+ readonly readonly: Signal<boolean>;
34
38
  readonly touch: OutputEmitterRef<void>;
35
39
  }
36
40
  declare const DROPDOWN_POPUP_INPUT_TOKEN: InjectionToken<DropdownPopupInput>;
37
41
 
38
- declare class DropdownFilterableDirective<TData> {
42
+ declare class DropdownFilterableDirective {
39
43
  #private;
40
44
  readonly filter: i0.InputSignal<string>;
41
45
  readonly filterChange: i0.OutputEmitterRef<FilterChangeEvent>;
42
46
  readonly filterPlaceholder: i0.InputSignal<string>;
43
47
  readonly options: i0.InputSignal<"" | Partial<FilterableOptions>>;
44
48
  constructor();
45
- static ɵfac: i0.ɵɵFactoryDeclaration<DropdownFilterableDirective<any>, never>;
46
- static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownFilterableDirective<any>, " mona-auto-complete[monaDropDownFilterable], mona-dropdown-list[monaDropDownFilterable], mona-combo-box[monaDropDownFilterable], mona-multi-select[monaDropDownFilterable] ", never, { "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "options": { "alias": "monaDropDownFilterable"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
49
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownFilterableDirective, never>;
50
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownFilterableDirective, " mona-auto-complete[monaDropDownFilterable], mona-dropdown-list[monaDropDownFilterable], mona-combo-box[monaDropDownFilterable], mona-multi-select[monaDropDownFilterable] ", never, { "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "options": { "alias": "monaDropDownFilterable"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
47
51
  }
48
52
 
49
53
  declare class DropdownFooterTemplateDirective {
@@ -58,11 +62,11 @@ declare class DropdownGroupHeaderTemplateDirective {
58
62
 
59
63
  declare class DropdownGroupableDirective<TData> {
60
64
  #private;
61
- readonly groupBy: i0.InputSignal<string | Selector<TData, any> | null | undefined>;
62
- readonly options: i0.InputSignal<"" | GroupableOptions<TData, any>>;
65
+ readonly groupBy: i0.InputSignal<string | Selector<TData, unknown> | null | undefined>;
66
+ readonly options: i0.InputSignal<"" | GroupableOptions<TData, unknown>>;
63
67
  constructor();
64
68
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownGroupableDirective<any>, never>;
65
- static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownGroupableDirective<any>, " mona-auto-complete[monaDropDownGroupable], mona-combo-box[monaDropDownGroupable], mona-dropdown-list[monaDropDownGroupable], mona-multi-select[monaDropDownGroupable], ", never, { "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "options": { "alias": "monaDropDownGroupable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
69
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownGroupableDirective<any>, " mona-auto-complete[monaDropDownGroupable], mona-combo-box[monaDropDownGroupable], mona-dropdown-list[monaDropDownGroupable], mona-multi-select[monaDropDownGroupable] ", never, { "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "options": { "alias": "monaDropDownGroupable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
66
70
  }
67
71
 
68
72
  declare class DropdownHeaderTemplateDirective {
@@ -80,12 +84,12 @@ declare class DropdownNoDataTemplateDirective {
80
84
  static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownNoDataTemplateDirective, " ng-template[monaDropDownNoDataTemplate], ng-template[monaAutoCompleteNoDataTemplate], ng-template[monaDropDownListNoDataTemplate], ng-template[monaDropDownTreeNoDataTemplate], ng-template[monaComboBoxNoDataTemplate], ng-template[monaMultiSelectNoDataTemplate] ", never, {}, {}, never, never, true, never>;
81
85
  }
82
86
 
83
- declare class DropdownVirtualScrollDirective<TData> {
87
+ declare class DropdownVirtualScrollDirective {
84
88
  #private;
85
89
  readonly options: i0.InputSignal<"" | Partial<VirtualScrollOptions>>;
86
90
  constructor();
87
- static ɵfac: i0.ɵɵFactoryDeclaration<DropdownVirtualScrollDirective<any>, never>;
88
- static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownVirtualScrollDirective<any>, " mona-auto-complete[monaDropDownVirtualScroll], mona-dropdown-list[monaDropDownVirtualScroll], mona-combo-box[monaDropDownVirtualScroll], mona-multi-select[monaDropDownVirtualScroll] ", never, { "options": { "alias": "monaDropDownVirtualScroll"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
91
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownVirtualScrollDirective, never>;
92
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownVirtualScrollDirective, " mona-auto-complete[monaDropDownVirtualScroll], mona-dropdown-list[monaDropDownVirtualScroll], mona-combo-box[monaDropDownVirtualScroll], mona-multi-select[monaDropDownVirtualScroll] ", never, { "options": { "alias": "monaDropDownVirtualScroll"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
89
93
  }
90
94
 
91
95
  declare class DropdownDataHandlerDirective {
@@ -123,12 +127,19 @@ declare class DropdownListPopupHandlerDirective {
123
127
  static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownListPopupHandlerDirective, "[monaDropdownListPopupHandler]", never, {}, {}, never, never, true, [{ directive: typeof DropdownPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
124
128
  }
125
129
 
130
+ /**
131
+ * Announces how many results a dropdown shows after its list is filtered, or after its items change, while the
132
+ * popup is open ("3 results available", "No results found").
133
+ *
134
+ * The announcement goes through the CDK `LiveAnnouncer`, whose live region lives at the end of the document, so it
135
+ * never becomes part of the combobox's content. The highlighted option isn't announced here:
136
+ * `aria-activedescendant` already does that.
137
+ */
126
138
  declare class DropdownLiveRegionDirective {
127
139
  #private;
128
- protected readonly liveRegionText: i0.Signal<string>;
129
140
  constructor();
130
141
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownLiveRegionDirective, never>;
131
- static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownLiveRegionDirective, "span[monaDropdownLiveRegion]", never, {}, {}, never, never, true, never>;
142
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownLiveRegionDirective, "[monaDropdownLiveRegion]", never, {}, {}, never, never, true, never>;
132
143
  }
133
144
 
134
145
  declare class DropdownPrefixTemplateDirective {
@@ -165,12 +176,12 @@ declare class DropdownService {
165
176
  static ɵprov: i0.ɵɵInjectableDeclaration<DropdownService>;
166
177
  }
167
178
 
168
- declare class DropdownListService {
179
+ declare class DropdownListService<TData = unknown> {
169
180
  readonly navigate$: Subject<{
170
- item: ListItem<any>;
181
+ item: ListItem<TData>;
171
182
  }>;
172
- static ɵfac: i0.ɵɵFactoryDeclaration<DropdownListService, never>;
173
- static ɵprov: i0.ɵɵInjectableDeclaration<DropdownListService>;
183
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownListService<any>, never>;
184
+ static ɵprov: i0.ɵɵInjectableDeclaration<DropdownListService<any>>;
174
185
  }
175
186
 
176
187
  declare const dropdownPopupThemeVariants: (props?: ({
@@ -182,5 +193,5 @@ type DropdownPopupVariantInput = VariantInputs<DropdownPopupVariantProps>;
182
193
 
183
194
  declare const DROPDOWNS_DEFAULT_MESSAGES: MonaDropdownsMessages;
184
195
 
185
- export { DROPDOWNS_DEFAULT_MESSAGES, DROPDOWN_POPUP_INPUT_TOKEN, DropdownDataHandlerDirective, DropdownDataInputToken, DropdownFilterableDirective, DropdownFooterTemplateDirective, DropdownGroupHeaderTemplateDirective, DropdownGroupableDirective, DropdownHeaderTemplateDirective, DropdownItemTemplateDirective, DropdownListPopupHandlerDirective, DropdownListService, DropdownLiveRegionDirective, DropdownNoDataTemplateDirective, DropdownPopupHandlerDirective, DropdownPrefixTemplateDirective, DropdownService, DropdownSuffixTemplateDirective, DropdownVirtualScrollDirective, dropdownPopupThemeVariants };
196
+ export { DROPDOWNS_DEFAULT_MESSAGES, DROPDOWN_DATA_INPUT_TOKEN, DROPDOWN_POPUP_INPUT_TOKEN, DropdownDataHandlerDirective, DropdownDataInputToken, DropdownFilterableDirective, DropdownFooterTemplateDirective, DropdownGroupHeaderTemplateDirective, DropdownGroupableDirective, DropdownHeaderTemplateDirective, DropdownItemTemplateDirective, DropdownListPopupHandlerDirective, DropdownListService, DropdownLiveRegionDirective, DropdownNoDataTemplateDirective, DropdownPopupHandlerDirective, DropdownPrefixTemplateDirective, DropdownService, DropdownSuffixTemplateDirective, DropdownVirtualScrollDirective, dropdownPopupThemeVariants };
186
197
  export type { DropdownDataInput, DropdownFieldPredicateType, DropdownFieldSelectorType, DropdownPopupInput, DropdownPopupVariantInput, DropdownPopupVariantProps };
@@ -289,6 +289,7 @@ interface MonaListBoxMessages {
289
289
  interface MonaMultiSelectMessages {
290
290
  readonly clear: string;
291
291
  readonly itemsCount: (count: number) => string;
292
+ readonly removeMoreItems: (count: number) => string;
292
293
  }
293
294
 
294
295
  interface MonaNotificationMessages {
@@ -159,7 +159,9 @@ interface TypeaheadModifiers {
159
159
  * Any single letter or digit in any script counts, plus space, `-` and `_`.
160
160
  */
161
161
  declare const isTypeaheadKey: (key: string, modifiers?: TypeaheadModifiers) => boolean;
162
+ /** How long typeahead waits after the last key before it starts a new search, in milliseconds. */
163
+ declare const TYPEAHEAD_RESET_DELAY = 200;
162
164
  declare const setupTypeahead: (typeaheadKey$: Observable<string>) => Observable<string>;
163
165
 
164
- export { AttributeBinderDirective, NavigationKeys, NavigationKeysList, createElementControlId, focusCanReturn, focusElement, hex2rgba, hsla2hsva, hsva2rgba, isNavigationKey, isTypeaheadKey, isValidHex, isValidHsla, isValidRgb, restoreOverlayScroll, rgba2hex, rgba2hsla, rgba2hsva, rxFromResize, rxTimeout, setWindowStyles, setupTypeahead, string2Hsla, string2rgba, themeControlBackdropClasses, themeControlSurfaceClasses, themeOverlayBackdropClasses, themeOverlaySurfaceClasses, themeRaisedBackdropClasses, themeRaisedSurfaceClasses, toCssValue };
166
+ export { AttributeBinderDirective, NavigationKeys, NavigationKeysList, TYPEAHEAD_RESET_DELAY, createElementControlId, focusCanReturn, focusElement, hex2rgba, hsla2hsva, hsva2rgba, isNavigationKey, isTypeaheadKey, isValidHex, isValidHsla, isValidRgb, restoreOverlayScroll, rgba2hex, rgba2hsla, rgba2hsva, rxFromResize, rxTimeout, setWindowStyles, setupTypeahead, string2Hsla, string2rgba, themeControlBackdropClasses, themeControlSurfaceClasses, themeOverlayBackdropClasses, themeOverlaySurfaceClasses, themeRaisedBackdropClasses, themeRaisedSurfaceClasses, toCssValue };
165
167
  export type { Action, AttributeConfig, Channel, ColorScheme, HSL, HSLA, HSV, HSVA, HSVChannel, RGB, RGBA, RGBAChannel, RGBChannel, TypeaheadModifiers, VariantInputs, WindowStyleSettings };
@@ -255,6 +255,7 @@ declare const MONA_AR_SA_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_DE_DE_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_ES_ES_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_FR_FR_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_ID_ID_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_IT_IT_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_JA_JP_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_KO_KR_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_PT_BR_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_RU_RU_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_TR_TR_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_ZH_CN_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -255,6 +255,7 @@ declare const MONA_ZH_TW_LOCALE: {
255
255
  multiSelect: {
256
256
  clear: string;
257
257
  itemsCount: (count: number) => string;
258
+ removeMoreItems: (count: number) => string;
258
259
  };
259
260
  notification: {
260
261
  close: string;
@@ -43,6 +43,9 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
43
43
  protected readonly activeDescendant: _angular_core.Signal<string | null>;
44
44
  protected readonly affixClass: _angular_core.Signal<string>;
45
45
  protected readonly baseClass: _angular_core.Signal<string>;
46
+ protected readonly chipMessages: _angular_core.Signal<_nanahoshi_mona_ui_i18n.MonaChipMessages>;
47
+ protected readonly clearButtonVisible: _angular_core.Signal<boolean>;
48
+ protected readonly effectiveAriaLabel: _angular_core.Signal<string>;
46
49
  protected readonly expanded: _angular_core.Signal<boolean>;
47
50
  protected readonly footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
48
51
  protected readonly groupHeaderTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
@@ -65,7 +68,13 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
65
68
  protected readonly valueTextMap: _angular_core.Signal<_mirei_ts_collections.ImmutableDictionary<ListItem<TData>, string>>;
66
69
  protected readonly visibleTagCount: _angular_core.Signal<number>;
67
70
  /**
68
- * @description Sets the aria-label attribute of the multi select component.
71
+ * @description ID of an element that describes the multi select, such as help text or an error message.
72
+ * @default ""
73
+ */
74
+ readonly ariaDescribedBy: _angular_core.InputSignal<string>;
75
+ /**
76
+ * @description Accessible name for the multi select. Describe what it represents.
77
+ * Falls back to {@link placeholder} when neither this nor {@link ariaLabelledBy} is set.
69
78
  * @default ""
70
79
  */
71
80
  readonly ariaLabel: _angular_core.InputSignal<string>;
@@ -78,12 +87,12 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
78
87
  * @description Closes the popup automatically after an item is selected or deselected.
79
88
  * @default false
80
89
  */
81
- readonly autoClose: _angular_core.InputSignal<boolean>;
90
+ readonly autoClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
82
91
  /**
83
92
  * @description Renders a checkbox next to each item in the popup list to indicate its selected state.
84
93
  * @default false
85
94
  */
86
- readonly checkboxes: _angular_core.InputSignal<boolean>;
95
+ readonly checkboxes: _angular_core.InputSignalWithTransform<boolean, unknown>;
87
96
  /**
88
97
  * @description Emits when the popup is about to close. This event is preventable.
89
98
  */
@@ -101,22 +110,23 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
101
110
  * @description Disables the component, preventing the popup from opening and blocking tag removal.
102
111
  * @default false
103
112
  */
104
- readonly disabled: _angular_core.ModelSignal<boolean>;
113
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
105
114
  /**
106
115
  * @description Marks the multi select as invalid. When bound to a signal form field via `[formField]`,
107
116
  * this is written by the `FormField` directive.
108
117
  * @default false
109
118
  */
110
- readonly invalid: _angular_core.InputSignal<boolean>;
119
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
111
120
  /**
112
121
  * @description A predicate function or the name of the field that determines whether an item is disabled.
113
122
  */
114
123
  readonly itemDisabled: _angular_core.InputSignal<DropdownFieldPredicateType<TData>>;
115
124
  /**
116
- * @description Sets the loading state of the multi select component.
125
+ * @description Shows a loading indicator, in place of the clear button, and marks the field busy. It doesn't
126
+ * block interaction: the field stays usable while data loads.
117
127
  * @default false
118
128
  */
119
- readonly loading: _angular_core.InputSignal<boolean>;
129
+ readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
120
130
  /**
121
131
  * @description Emits when the popup is about to open. This event is preventable.
122
132
  */
@@ -125,13 +135,20 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
125
135
  * @description Emits after the popup is opened.
126
136
  */
127
137
  readonly opened: _angular_core.OutputEmitterRef<void>;
138
+ /**
139
+ * @description Text shown when nothing is selected. It also names the multi select when neither {@link ariaLabel}
140
+ * nor {@link ariaLabelledBy} is set.
141
+ * @default ""
142
+ */
143
+ readonly placeholder: _angular_core.InputSignal<string>;
128
144
  /**
129
145
  * @description Sets the class of the popup element.
130
146
  * @default ""
131
147
  */
132
148
  readonly popupClass: _angular_core.InputSignal<string>;
133
149
  /**
134
- * @description Sets the height of the popup element.
150
+ * @description Maximum height of the popup, in pixels or as a CSS length. Shorter lists shrink to fit. When
151
+ * unset, the popup is at most 200 pixels tall.
135
152
  * @default null
136
153
  */
137
154
  readonly popupHeight: _angular_core.InputSignal<ListSizeInputType>;
@@ -144,12 +161,12 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
144
161
  * @description Sets the readonly state of the multi select component.
145
162
  * @default false
146
163
  */
147
- readonly readonly: _angular_core.InputSignal<boolean>;
164
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
148
165
  /**
149
166
  * @description Sets the required state of the multi select component.
150
167
  * @default false
151
168
  */
152
- readonly required: _angular_core.InputSignal<boolean>;
169
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
153
170
  /**
154
171
  * @description Sets the border radius of the multi select component.
155
172
  * @default "medium"
@@ -159,7 +176,7 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
159
176
  * @description Renders a button that clears all selected items when at least one item is selected.
160
177
  * @default false
161
178
  */
162
- readonly showClearButton: _angular_core.InputSignal<boolean>;
179
+ readonly showClearButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
163
180
  /**
164
181
  * @description The size of the multi select component.
165
182
  * @default "medium"
@@ -173,8 +190,8 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
173
190
  */
174
191
  readonly textField: _angular_core.InputSignal<DropdownFieldSelectorType<TData, string>>;
175
192
  /**
176
- * @description Emitted when the multi select is interacted with on blur, selection, remove, or clear.
177
- * The `FormField` directive listens to this to mark the field as touched.
193
+ * @description Emitted when focus leaves the multi select. Moving between it, its chips, its clear button and its
194
+ * popup doesn't count. The `FormField` directive listens to this to mark the field as touched.
178
195
  */
179
196
  readonly touch: _angular_core.OutputEmitterRef<void>;
180
197
  /**
@@ -182,7 +199,7 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
182
199
  * this is written by the `FormField` directive.
183
200
  * @default false
184
201
  */
185
- readonly touched: _angular_core.InputSignal<boolean>;
202
+ readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
186
203
  /**
187
204
  * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
188
205
  * @default ""
@@ -215,10 +232,14 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
215
232
  *
216
233
  * @default false
217
234
  */
218
- readonly valuePrimitive: _angular_core.InputSignal<boolean>;
235
+ readonly valuePrimitive: _angular_core.InputSignalWithTransform<boolean, unknown>;
219
236
  constructor();
220
- focus(): void;
221
- protected onBlur(event?: FocusEvent): void;
237
+ /**
238
+ * @description Moves focus to the multi select.
239
+ * @param options Passed to `HTMLElement.focus()`, for example `{ preventScroll: true }`.
240
+ */
241
+ focus(options?: FocusOptions): void;
242
+ protected onFocusOut(event: FocusEvent): void;
222
243
  protected onItemSelect(): void;
223
244
  protected onPopupPointerDown(event: PointerEvent): void;
224
245
  protected onSelectedItemGroupRemove(event: Event): void;
@@ -231,14 +252,17 @@ declare class MultiSelectComponent<TData = unknown, TValue = TData> implements F
231
252
  private setBackspaceKeySubscription;
232
253
  private setEnterKeySubscription;
233
254
  private setEventListeners;
255
+ private setPopupCloseSubscription;
256
+ private setSpaceKeySubscription;
234
257
  private setSubscriptions;
235
258
  private synchronizeSelection;
259
+ private toggleHighlightedItem;
236
260
  private updateValue;
237
261
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultiSelectComponent<any, any>, never>;
238
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultiSelectComponent<any, any>, "mona-multi-select", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; "checkboxes": { "alias": "checkboxes"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "itemDisabled": { "alias": "itemDisabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "popupClass": { "alias": "popupClass"; "required": false; "isSignal": true; }; "popupHeight": { "alias": "popupHeight"; "required": false; "isSignal": true; }; "popupWidth": { "alias": "popupWidth"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "valuePrimitive": { "alias": "valuePrimitive"; "required": false; "isSignal": true; }; }, { "close": "close"; "closed": "closed"; "disabled": "disabledChange"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate", "tagTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
262
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultiSelectComponent<any, any>, "mona-multi-select", never, { "ariaDescribedBy": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; "checkboxes": { "alias": "checkboxes"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "itemDisabled": { "alias": "itemDisabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "popupClass": { "alias": "popupClass"; "required": false; "isSignal": true; }; "popupHeight": { "alias": "popupHeight"; "required": false; "isSignal": true; }; "popupWidth": { "alias": "popupWidth"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "valuePrimitive": { "alias": "valuePrimitive"; "required": false; "isSignal": true; }; }, { "close": "close"; "closed": "closed"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate", "tagTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownLiveRegionDirective; inputs: {}; outputs: {}; }]>;
239
263
  }
240
264
 
241
- declare class MultiSelectSummaryTagDirective<TData> {
265
+ declare class MultiSelectSummaryTagDirective {
242
266
  #private;
243
267
  private readonly summaryTagTemplate;
244
268
  /**
@@ -248,8 +272,8 @@ declare class MultiSelectSummaryTagDirective<TData> {
248
272
  */
249
273
  readonly tagCount: _angular_core.InputSignal<number>;
250
274
  constructor();
251
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultiSelectSummaryTagDirective<any>, never>;
252
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MultiSelectSummaryTagDirective<any>, "mona-multi-select[monaMultiSelectSummaryTag]", never, { "tagCount": { "alias": "monaMultiSelectSummaryTag"; "required": false; "isSignal": true; }; }, {}, ["summaryTagTemplate"], never, true, never>;
275
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultiSelectSummaryTagDirective, never>;
276
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MultiSelectSummaryTagDirective, "mona-multi-select[monaMultiSelectSummaryTag]", never, { "tagCount": { "alias": "monaMultiSelectSummaryTag"; "required": false; "isSignal": true; }; }, {}, ["summaryTagTemplate"], never, true, never>;
253
277
  }
254
278
 
255
279
  declare class MultiSelectSummaryTagTemplateDirective {