@nanahoshi/mona-ui 0.24.2 → 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 (85) hide show
  1. package/README.md +3 -0
  2. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +96 -71
  3. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +1 -1
  4. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +1 -1
  5. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +1 -1
  6. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +140 -91
  7. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +1 -1
  8. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +8 -4
  9. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +8 -4
  10. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +112 -58
  11. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +80 -61
  12. package/fesm2022/nanahoshi-mona-ui-editor.mjs +4 -4
  13. package/fesm2022/nanahoshi-mona-ui-filter.mjs +1 -1
  14. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-row.component-x_euoNnS.mjs → nanahoshi-mona-ui-grid-grid-footer-row.component-BMCM0W8s.mjs} +2 -2
  15. package/fesm2022/{nanahoshi-mona-ui-grid-grid-list.component-C1_6vq77.mjs → nanahoshi-mona-ui-grid-grid-list.component-BSlV8Sua.mjs} +4 -4
  16. package/fesm2022/{nanahoshi-mona-ui-grid-grid-row.component-BhukVWIy.mjs → nanahoshi-mona-ui-grid-grid-row.component-CTOdnH29.mjs} +3 -3
  17. package/fesm2022/{nanahoshi-mona-ui-grid-grid-virtual-list.component-XQKOPPVs.mjs → nanahoshi-mona-ui-grid-grid-virtual-list.component-C2kf5MwO.mjs} +4 -4
  18. package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-Iw-wvKGl.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-Dh42tUui.mjs} +10 -15
  19. package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
  20. package/fesm2022/nanahoshi-mona-ui-i18n-icu.mjs +2 -1
  21. package/fesm2022/nanahoshi-mona-ui-internal-filter-input.mjs +2 -2
  22. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +2 -2
  23. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +1 -1
  24. package/fesm2022/nanahoshi-mona-ui-internal.mjs +18 -2
  25. package/fesm2022/nanahoshi-mona-ui-locales-ar-sa.mjs +2 -1
  26. package/fesm2022/nanahoshi-mona-ui-locales-de-de.mjs +4 -1
  27. package/fesm2022/nanahoshi-mona-ui-locales-es-es.mjs +4 -1
  28. package/fesm2022/nanahoshi-mona-ui-locales-fr-fr.mjs +4 -1
  29. package/fesm2022/nanahoshi-mona-ui-locales-id-id.mjs +2 -1
  30. package/fesm2022/nanahoshi-mona-ui-locales-it-it.mjs +2 -1
  31. package/fesm2022/nanahoshi-mona-ui-locales-ja-jp.mjs +2 -1
  32. package/fesm2022/nanahoshi-mona-ui-locales-ko-kr.mjs +2 -1
  33. package/fesm2022/nanahoshi-mona-ui-locales-pt-br.mjs +2 -1
  34. package/fesm2022/nanahoshi-mona-ui-locales-ru-ru.mjs +2 -1
  35. package/fesm2022/nanahoshi-mona-ui-locales-tr-tr.mjs +2 -1
  36. package/fesm2022/nanahoshi-mona-ui-locales-zh-cn.mjs +2 -1
  37. package/fesm2022/nanahoshi-mona-ui-locales-zh-tw.mjs +2 -1
  38. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +3 -3
  39. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +119 -67
  40. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +1 -1
  41. package/fesm2022/nanahoshi-mona-ui-otp-input.mjs +1 -1
  42. package/fesm2022/nanahoshi-mona-ui-pager.mjs +1 -1
  43. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +2 -2
  44. package/fesm2022/nanahoshi-mona-ui-popup.mjs +269 -182
  45. package/fesm2022/nanahoshi-mona-ui-switch.mjs +1 -1
  46. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +95 -58
  47. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +7 -5
  48. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +1 -1
  49. package/i18n/catalogs/en-US.messages.json +2 -1
  50. package/locales/ar-sa/ar-sa.messages.json +2 -1
  51. package/locales/de-de/de-de.messages.json +2 -1
  52. package/locales/es-es/es-es.messages.json +2 -1
  53. package/locales/fr-fr/fr-fr.messages.json +2 -1
  54. package/locales/id-id/id-id.messages.json +2 -1
  55. package/locales/it-it/it-it.messages.json +2 -1
  56. package/locales/ja-jp/ja-jp.messages.json +2 -1
  57. package/locales/ko-kr/ko-kr.messages.json +2 -1
  58. package/locales/pt-br/pt-br.messages.json +2 -1
  59. package/locales/ru-ru/ru-ru.messages.json +2 -1
  60. package/locales/tr-tr/tr-tr.messages.json +2 -1
  61. package/locales/zh-cn/zh-cn.messages.json +2 -1
  62. package/locales/zh-tw/zh-tw.messages.json +2 -1
  63. package/package.json +1 -1
  64. package/types/nanahoshi-mona-ui-auto-complete.d.ts +34 -20
  65. package/types/nanahoshi-mona-ui-combo-box.d.ts +42 -23
  66. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +29 -15
  67. package/types/nanahoshi-mona-ui-dropdowns.d.ts +36 -19
  68. package/types/nanahoshi-mona-ui-i18n.d.ts +1 -0
  69. package/types/nanahoshi-mona-ui-internal.d.ts +11 -1
  70. package/types/nanahoshi-mona-ui-locales-ar-sa.d.ts +1 -0
  71. package/types/nanahoshi-mona-ui-locales-de-de.d.ts +1 -0
  72. package/types/nanahoshi-mona-ui-locales-es-es.d.ts +1 -0
  73. package/types/nanahoshi-mona-ui-locales-fr-fr.d.ts +1 -0
  74. package/types/nanahoshi-mona-ui-locales-id-id.d.ts +1 -0
  75. package/types/nanahoshi-mona-ui-locales-it-it.d.ts +1 -0
  76. package/types/nanahoshi-mona-ui-locales-ja-jp.d.ts +1 -0
  77. package/types/nanahoshi-mona-ui-locales-ko-kr.d.ts +1 -0
  78. package/types/nanahoshi-mona-ui-locales-pt-br.d.ts +1 -0
  79. package/types/nanahoshi-mona-ui-locales-ru-ru.d.ts +1 -0
  80. package/types/nanahoshi-mona-ui-locales-tr-tr.d.ts +1 -0
  81. package/types/nanahoshi-mona-ui-locales-zh-cn.d.ts +1 -0
  82. package/types/nanahoshi-mona-ui-locales-zh-tw.d.ts +1 -0
  83. package/types/nanahoshi-mona-ui-multi-select.d.ts +45 -21
  84. package/types/nanahoshi-mona-ui-popup.d.ts +97 -36
  85. package/types/nanahoshi-mona-ui-text-box.d.ts +62 -14
@@ -40,12 +40,11 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
40
40
  protected readonly autoCompleteValue: _angular_core.WritableSignal<string>;
41
41
  protected readonly autoCompleteValue$: Subject<string | null>;
42
42
  protected readonly baseClass: _angular_core.Signal<string>;
43
- protected readonly effectiveAriaLabel: _angular_core.Signal<string>;
43
+ protected readonly clearButtonVisible: _angular_core.Signal<boolean>;
44
44
  protected readonly expanded: _angular_core.Signal<boolean>;
45
45
  protected readonly footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
46
46
  protected readonly groupHeaderTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
47
47
  protected readonly headerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
48
- protected readonly id: string;
49
48
  protected readonly inputClass: _angular_core.Signal<string>;
50
49
  protected readonly invalidState: _angular_core.Signal<boolean>;
51
50
  protected readonly isEmpty: _angular_core.Signal<boolean>;
@@ -65,8 +64,9 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
65
64
  */
66
65
  readonly ariaDescribedBy: _angular_core.InputSignal<string>;
67
66
  /**
68
- * @description Accessible name for the input. Describe what the autocomplete represents.
69
- * Falls back to {@link placeholder} when neither this nor {@link ariaLabelledBy} is set.
67
+ * @description Accessible name for the input. Describe what the autocomplete represents. Prefer a visible label,
68
+ * linked through {@link inputId} or {@link ariaLabelledBy}; without any of them, browsers fall back to the
69
+ * {@link placeholder}.
70
70
  * @default ""
71
71
  */
72
72
  readonly ariaLabel: _angular_core.InputSignal<string>;
@@ -92,28 +92,35 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
92
92
  * @description Renders the component with reduced visual emphasis and removes pointer interaction.
93
93
  * @default false
94
94
  */
95
- readonly disabled: _angular_core.ModelSignal<boolean>;
95
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
96
96
  /**
97
97
  * @description Defines whether the first matching item should be highlighted while typing.
98
98
  * @default true
99
99
  */
100
- readonly highlightFirst: _angular_core.InputSignal<boolean>;
100
+ readonly highlightFirst: _angular_core.InputSignalWithTransform<boolean, unknown>;
101
+ /**
102
+ * @description Id of the inner `<input>` element. Point a `<label for>` or `<mona-label for>` at it to label the
103
+ * autocomplete. A unique id is generated when it isn't set.
104
+ * @default generated
105
+ */
106
+ readonly inputId: _angular_core.InputSignal<string>;
101
107
  /**
102
108
  * @description Marks the autocomplete as invalid. When bound to a signal form field via `[formField]`,
103
109
  * this is written by the `FormField` directive.
104
110
  * @default false
105
111
  */
106
- readonly invalid: _angular_core.InputSignal<boolean>;
112
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
107
113
  /**
108
114
  * @description Predicate or field name used to determine whether an individual item is disabled.
109
115
  * @default undefined
110
116
  */
111
117
  readonly itemDisabled: _angular_core.InputSignal<DropdownFieldPredicateType<TData>>;
112
118
  /**
113
- * @description Displays a loading indicator and prevents interaction while an operation is in progress.
119
+ * @description Shows a loading indicator, in place of the clear button, and marks the field busy. It doesn't
120
+ * block interaction: the field stays usable while data loads.
114
121
  * @default false
115
122
  */
116
- readonly loading: _angular_core.InputSignal<boolean>;
123
+ readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
117
124
  /**
118
125
  * @description Emits when the popup is about to open. This event is preventable.
119
126
  */
@@ -133,7 +140,8 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
133
140
  */
134
141
  readonly popupClass: _angular_core.InputSignal<string>;
135
142
  /**
136
- * @description Height of the popup element.
143
+ * @description Maximum height of the popup, in pixels or as a CSS length. Shorter lists shrink to fit. When
144
+ * unset, the popup is at most 200 pixels tall.
137
145
  * @default null
138
146
  */
139
147
  readonly popupHeight: _angular_core.InputSignal<ListSizeInputType>;
@@ -146,22 +154,23 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
146
154
  * @description Prevents value changes while preserving the component's visual state.
147
155
  * @default false
148
156
  */
149
- readonly readonly: _angular_core.InputSignal<boolean>;
157
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
150
158
  /**
151
159
  * @description Marks the field as required for form validation.
152
160
  * @default false
153
161
  */
154
- readonly required: _angular_core.InputSignal<boolean>;
162
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
155
163
  /**
156
164
  * @description Border-radius preset applied to the component.
157
165
  * @default "medium"
158
166
  */
159
167
  readonly rounded: _angular_core.InputSignal<"none" | "small" | "medium" | "large" | "full" | null | undefined>;
160
168
  /**
161
- * @description Displays a button that clears the current value when clicked.
169
+ * @description Displays a button that clears the current value when clicked. Unlike the other dropdowns, this
170
+ * defaults to `true`.
162
171
  * @default true
163
172
  */
164
- readonly showClearButton: _angular_core.InputSignal<boolean>;
173
+ readonly showClearButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
165
174
  /**
166
175
  * @description Size preset controlling the component's dimensions.
167
176
  * @default "medium"
@@ -174,8 +183,8 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
174
183
  */
175
184
  readonly textField: _angular_core.InputSignal<DropdownFieldSelectorType<TData, string>>;
176
185
  /**
177
- * @description Emitted when the autocomplete is interacted with on blur, selection, clear, or committed input.
178
- * The `FormField` directive listens to this to mark the field as touched.
186
+ * @description Emitted when focus leaves the autocomplete. Moving between its input, clear button and popup
187
+ * doesn't count. The `FormField` directive listens to this to mark the field as touched.
179
188
  */
180
189
  readonly touch: _angular_core.OutputEmitterRef<void>;
181
190
  /**
@@ -183,7 +192,7 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
183
192
  * this is written by the `FormField` directive.
184
193
  * @default false
185
194
  */
186
- readonly touched: _angular_core.InputSignal<boolean>;
195
+ readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
187
196
  /**
188
197
  * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
189
198
  * @default ""
@@ -202,8 +211,13 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
202
211
  */
203
212
  readonly valueField: _angular_core.InputSignal<DropdownFieldSelectorType<TData, unknown>>;
204
213
  constructor();
205
- focus(): void;
206
- protected onInputBlur(event: FocusEvent): void;
214
+ /**
215
+ * @description Moves focus to the inner input. The caret goes to the end of the text.
216
+ * @param options Passed to `HTMLElement.focus()`, for example `{ preventScroll: true }`.
217
+ */
218
+ focus(options?: FocusOptions): void;
219
+ protected onFocusOut(event: FocusEvent): void;
220
+ protected onInput(text: string): void;
207
221
  protected onItemSelect(event: SelectionChangeEvent<TData>): void;
208
222
  protected onPopupPointerDown(event: PointerEvent): void;
209
223
  protected onValueClear(event: MouseEvent | KeyboardEvent): void;
@@ -220,7 +234,7 @@ declare class AutoCompleteComponent<TData = unknown> implements FormValueControl
220
234
  private setSubscriptions;
221
235
  private updateValue;
222
236
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutoCompleteComponent<any>, never>;
223
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutoCompleteComponent<any>, "mona-auto-complete", 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; }; "highlightFirst": { "alias": "highlightFirst"; "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; }; }, { "close": "close"; "closed": "closed"; "disabled": "disabledChange"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate", "suffixTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
237
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutoCompleteComponent<any>, "mona-auto-complete", 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; }; "highlightFirst": { "alias": "highlightFirst"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "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; }; }, { "close": "close"; "closed": "closed"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate", "suffixTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownLiveRegionDirective; inputs: {}; outputs: {}; }]>;
224
238
  }
225
239
 
226
240
  declare const AUTO_COMPLETE_DEFAULT_MESSAGES: MonaAutoCompleteMessages;
@@ -38,14 +38,13 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
38
38
  protected readonly activeDescendant: _angular_core.Signal<string | null>;
39
39
  protected readonly affixClass: _angular_core.Signal<string>;
40
40
  protected readonly baseClass: _angular_core.Signal<string>;
41
+ protected readonly clearButtonVisible: _angular_core.Signal<boolean>;
41
42
  protected readonly comboBoxValue: _angular_core.WritableSignal<string>;
42
43
  protected readonly comboBoxValue$: Subject<string | null>;
43
- protected readonly effectiveAriaLabel: _angular_core.Signal<string>;
44
44
  protected readonly expanded: _angular_core.Signal<boolean>;
45
45
  protected readonly footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
46
46
  protected readonly groupHeaderTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
47
47
  protected readonly headerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
48
- protected readonly id: string;
49
48
  protected readonly inputClass: _angular_core.Signal<string>;
50
49
  protected readonly invalidState: _angular_core.Signal<boolean>;
51
50
  protected readonly itemTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
@@ -62,15 +61,16 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
62
61
  * @description Allows a custom value to be committed when it doesn't match any item in {@link data}.
63
62
  * @default false
64
63
  */
65
- readonly allowCustomValue: _angular_core.InputSignal<boolean>;
64
+ readonly allowCustomValue: _angular_core.InputSignalWithTransform<boolean, unknown>;
66
65
  /**
67
66
  * @description ID of an element that provides an extended description for the input.
68
67
  * @default ""
69
68
  */
70
69
  readonly ariaDescribedBy: _angular_core.InputSignal<string>;
71
70
  /**
72
- * @description Accessible name for the input. Describe what the combo box represents.
73
- * Falls back to {@link placeholder} when neither this nor {@link ariaLabelledBy} is set.
71
+ * @description Accessible name for the input. Describe what the combo box represents. Prefer a visible label,
72
+ * linked through {@link inputId} or {@link ariaLabelledBy}; without any of them, browsers fall back to the
73
+ * {@link placeholder}.
74
74
  * @default ""
75
75
  */
76
76
  readonly ariaLabel: _angular_core.InputSignal<string>;
@@ -96,23 +96,30 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
96
96
  * @description Renders the component with reduced visual emphasis and removes pointer interaction.
97
97
  * @default false
98
98
  */
99
- readonly disabled: _angular_core.ModelSignal<boolean>;
99
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
100
+ /**
101
+ * @description Id of the inner `<input>` element. Point a `<label for>` or `<mona-label for>` at it to label the
102
+ * combo box. A unique id is generated when it isn't set.
103
+ * @default generated
104
+ */
105
+ readonly inputId: _angular_core.InputSignal<string>;
100
106
  /**
101
107
  * @description Marks the combo box as invalid. When bound to a signal form field via `[formField]`,
102
108
  * this is written by the `FormField` directive.
103
109
  * @default false
104
110
  */
105
- readonly invalid: _angular_core.InputSignal<boolean>;
111
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
106
112
  /**
107
113
  * @description A predicate function or the name of the field that determines whether an item is disabled.
108
114
  * @default undefined
109
115
  */
110
116
  readonly itemDisabled: _angular_core.InputSignal<DropdownFieldPredicateType<TData>>;
111
117
  /**
112
- * @description Displays a loading indicator and prevents interaction while an operation is in progress.
118
+ * @description Shows a loading indicator, in place of the clear button, and marks the field busy. It doesn't
119
+ * block interaction: the field stays usable while data loads.
113
120
  * @default false
114
121
  */
115
- readonly loading: _angular_core.InputSignal<boolean>;
122
+ readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
116
123
  /**
117
124
  * @description Emitted when the popup is about to open. This event is preventable.
118
125
  */
@@ -132,7 +139,8 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
132
139
  */
133
140
  readonly popupClass: _angular_core.InputSignal<string>;
134
141
  /**
135
- * @description Sets the height of the popup element.
142
+ * @description Maximum height of the popup, in pixels or as a CSS length. Shorter lists shrink to fit. When
143
+ * unset, the popup is at most 200 pixels tall.
136
144
  * @default null
137
145
  */
138
146
  readonly popupHeight: _angular_core.InputSignal<ListSizeInputType>;
@@ -145,12 +153,12 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
145
153
  * @description Prevents value changes while preserving the component's visual state.
146
154
  * @default false
147
155
  */
148
- readonly readonly: _angular_core.InputSignal<boolean>;
156
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
149
157
  /**
150
158
  * @description Sets the required state of the combo box component.
151
159
  * @default false
152
160
  */
153
- readonly required: _angular_core.InputSignal<boolean>;
161
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
154
162
  /**
155
163
  * @description Border-radius preset applied to the component.
156
164
  * @default "medium"
@@ -160,7 +168,7 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
160
168
  * @description Displays a button that resets the value to empty when an item is selected.
161
169
  * @default false
162
170
  */
163
- readonly showClearButton: _angular_core.InputSignal<boolean>;
171
+ readonly showClearButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
164
172
  /**
165
173
  * @description Size preset controlling the component's dimensions.
166
174
  * @default "medium"
@@ -173,8 +181,8 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
173
181
  */
174
182
  readonly textField: _angular_core.InputSignal<DropdownFieldSelectorType<TData, string>>;
175
183
  /**
176
- * @description Emitted when the combo box is interacted with on blur, selection, clear, or committed input.
177
- * The `FormField` directive listens to this to mark the field as touched.
184
+ * @description Emitted when focus leaves the combo box. Moving between its input, clear button and popup doesn't
185
+ * count. The `FormField` directive listens to this to mark the field as touched.
178
186
  */
179
187
  readonly touch: _angular_core.OutputEmitterRef<void>;
180
188
  /**
@@ -182,7 +190,7 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
182
190
  * this is written by the `FormField` directive.
183
191
  * @default false
184
192
  */
185
- readonly touched: _angular_core.InputSignal<boolean>;
193
+ readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
186
194
  /**
187
195
  * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
188
196
  * @default ""
@@ -197,8 +205,8 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
197
205
  */
198
206
  readonly value: _angular_core.ModelSignal<TValue | null>;
199
207
  /**
200
- * @description Emitted with the entered text when the user presses Enter on unmatched input.
201
- * Only emitted when {@link allowCustomValue} is true.
208
+ * @description Emitted with the entered text when the user presses Enter on text that matches no item, or leaves
209
+ * the field with it. Only emitted when {@link allowCustomValue} is true.
202
210
  */
203
211
  readonly valueAdd: _angular_core.OutputEmitterRef<string>;
204
212
  /**
@@ -219,10 +227,16 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
219
227
  *
220
228
  * @default false
221
229
  */
222
- readonly valuePrimitive: _angular_core.InputSignal<boolean>;
230
+ readonly valuePrimitive: _angular_core.InputSignalWithTransform<boolean, unknown>;
223
231
  constructor();
224
- focus(): void;
225
- protected onInputBlur(event: FocusEvent): void;
232
+ /**
233
+ * @description Moves focus to the inner input. The caret goes to the end of the text.
234
+ * @param options Passed to `HTMLElement.focus()`, for example `{ preventScroll: true }`.
235
+ */
236
+ focus(options?: FocusOptions): void;
237
+ protected onFocusOut(event: FocusEvent): void;
238
+ protected onHostPointerDown(event: PointerEvent): void;
239
+ protected onInput(text: string): void;
226
240
  protected onItemSelect(event: SelectionChangeEvent<TData>): void;
227
241
  protected onPopupPointerDown(event: PointerEvent): void;
228
242
  protected onValueClear(event: Event): void;
@@ -232,19 +246,24 @@ declare class ComboBoxComponent<TData = unknown, TValue = TData> implements Form
232
246
  private handleEnterKey;
233
247
  private initialize;
234
248
  private notifyFilterChange;
249
+ /**
250
+ * Settles typed text when focus leaves the combo box, so the field never shows text that isn't its value:
251
+ * an item whose text matches is selected, empty text clears the value, other text is offered through
252
+ * `valueAdd` when custom values are allowed, and otherwise the selected item's text comes back.
253
+ */
254
+ private resolveText;
235
255
  private selectItem;
236
256
  private setArrowNavigationSubscription;
237
257
  private setComboboxValueSubscription;
238
258
  private setEscapeKeySubscription;
239
259
  private setKeydownSubscription;
240
- private setNavigatedItemSubscription;
241
260
  private setPopupCloseSubscriptions;
242
261
  private setSpaceKeySubscription;
243
262
  private setSubscriptions;
244
263
  private synchronizeSelection;
245
264
  private updateValue;
246
265
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ComboBoxComponent<any, any>, never>;
247
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ComboBoxComponent<any, any>, "mona-combo-box", never, { "allowCustomValue": { "alias": "allowCustomValue"; "required": false; "isSignal": true; }; "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"; "disabled": "disabledChange"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; "valueAdd": "valueAdd"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
266
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ComboBoxComponent<any, any>, "mona-combo-box", never, { "allowCustomValue": { "alias": "allowCustomValue"; "required": false; "isSignal": true; }; "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; }; "inputId": { "alias": "inputId"; "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"; "valueAdd": "valueAdd"; }, ["footerTemplate", "groupHeaderTemplate", "headerTemplate", "itemTemplate", "noDataTemplate", "prefixTemplate"], never, true, [{ directive: typeof i1.DropdownDataHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownListPopupHandlerDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.DropdownLiveRegionDirective; inputs: {}; outputs: {}; }]>;
248
267
  }
249
268
 
250
269
  declare const COMBO_BOX_DEFAULT_MESSAGES: MonaComboBoxMessages;
@@ -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 {