@nanahoshi/mona-ui 0.24.4 → 0.24.6

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 (80) hide show
  1. package/README.md +3 -0
  2. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +95 -70
  3. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +196 -137
  4. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +136 -89
  5. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +164 -3
  6. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +124 -140
  7. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +205 -202
  8. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +108 -56
  9. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +68 -59
  10. package/fesm2022/nanahoshi-mona-ui-editor.mjs +3 -3
  11. package/fesm2022/nanahoshi-mona-ui-filter.mjs +1 -1
  12. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-row.component-DLOPRuFv.mjs → nanahoshi-mona-ui-grid-grid-footer-row.component-CD_ODHpU.mjs} +2 -2
  13. package/fesm2022/{nanahoshi-mona-ui-grid-grid-list.component-Dw5U9H0a.mjs → nanahoshi-mona-ui-grid-grid-list.component-0jN7I1jo.mjs} +4 -4
  14. package/fesm2022/{nanahoshi-mona-ui-grid-grid-row.component-D1kyAzD8.mjs → nanahoshi-mona-ui-grid-grid-row.component-BI_iE7pl.mjs} +3 -3
  15. package/fesm2022/{nanahoshi-mona-ui-grid-grid-virtual-list.component-ECK1_smx.mjs → nanahoshi-mona-ui-grid-grid-virtual-list.component-Sa1aAtJ-.mjs} +4 -4
  16. package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-D4lUDbfx.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-BvUM9nPt.mjs} +8 -8
  17. package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
  18. package/fesm2022/nanahoshi-mona-ui-i18n-icu.mjs +2 -1
  19. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +2 -2
  20. package/fesm2022/nanahoshi-mona-ui-internal.mjs +4 -2
  21. package/fesm2022/nanahoshi-mona-ui-locales-ar-sa.mjs +2 -1
  22. package/fesm2022/nanahoshi-mona-ui-locales-de-de.mjs +4 -1
  23. package/fesm2022/nanahoshi-mona-ui-locales-es-es.mjs +4 -1
  24. package/fesm2022/nanahoshi-mona-ui-locales-fr-fr.mjs +4 -1
  25. package/fesm2022/nanahoshi-mona-ui-locales-id-id.mjs +2 -1
  26. package/fesm2022/nanahoshi-mona-ui-locales-it-it.mjs +2 -1
  27. package/fesm2022/nanahoshi-mona-ui-locales-ja-jp.mjs +2 -1
  28. package/fesm2022/nanahoshi-mona-ui-locales-ko-kr.mjs +2 -1
  29. package/fesm2022/nanahoshi-mona-ui-locales-pt-br.mjs +2 -1
  30. package/fesm2022/nanahoshi-mona-ui-locales-ru-ru.mjs +2 -1
  31. package/fesm2022/nanahoshi-mona-ui-locales-tr-tr.mjs +2 -1
  32. package/fesm2022/nanahoshi-mona-ui-locales-zh-cn.mjs +2 -1
  33. package/fesm2022/nanahoshi-mona-ui-locales-zh-tw.mjs +2 -1
  34. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +118 -66
  35. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +195 -122
  36. package/fesm2022/nanahoshi-mona-ui-pager.mjs +1 -1
  37. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +149 -167
  38. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +182 -137
  39. package/i18n/catalogs/en-US.messages.json +2 -1
  40. package/locales/ar-sa/ar-sa.messages.json +2 -1
  41. package/locales/de-de/de-de.messages.json +2 -1
  42. package/locales/es-es/es-es.messages.json +2 -1
  43. package/locales/fr-fr/fr-fr.messages.json +2 -1
  44. package/locales/id-id/id-id.messages.json +2 -1
  45. package/locales/it-it/it-it.messages.json +2 -1
  46. package/locales/ja-jp/ja-jp.messages.json +2 -1
  47. package/locales/ko-kr/ko-kr.messages.json +2 -1
  48. package/locales/pt-br/pt-br.messages.json +2 -1
  49. package/locales/ru-ru/ru-ru.messages.json +2 -1
  50. package/locales/tr-tr/tr-tr.messages.json +2 -1
  51. package/locales/zh-cn/zh-cn.messages.json +2 -1
  52. package/locales/zh-tw/zh-tw.messages.json +2 -1
  53. package/package.json +2 -2
  54. package/types/nanahoshi-mona-ui-auto-complete.d.ts +34 -20
  55. package/types/nanahoshi-mona-ui-calendar.d.ts +30 -11
  56. package/types/nanahoshi-mona-ui-combo-box.d.ts +42 -23
  57. package/types/nanahoshi-mona-ui-date-input.d.ts +74 -3
  58. package/types/nanahoshi-mona-ui-date-picker.d.ts +61 -33
  59. package/types/nanahoshi-mona-ui-datetime-picker.d.ts +79 -38
  60. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +29 -15
  61. package/types/nanahoshi-mona-ui-dropdowns.d.ts +30 -19
  62. package/types/nanahoshi-mona-ui-i18n.d.ts +1 -0
  63. package/types/nanahoshi-mona-ui-internal.d.ts +3 -1
  64. package/types/nanahoshi-mona-ui-locales-ar-sa.d.ts +1 -0
  65. package/types/nanahoshi-mona-ui-locales-de-de.d.ts +1 -0
  66. package/types/nanahoshi-mona-ui-locales-es-es.d.ts +1 -0
  67. package/types/nanahoshi-mona-ui-locales-fr-fr.d.ts +1 -0
  68. package/types/nanahoshi-mona-ui-locales-id-id.d.ts +1 -0
  69. package/types/nanahoshi-mona-ui-locales-it-it.d.ts +1 -0
  70. package/types/nanahoshi-mona-ui-locales-ja-jp.d.ts +1 -0
  71. package/types/nanahoshi-mona-ui-locales-ko-kr.d.ts +1 -0
  72. package/types/nanahoshi-mona-ui-locales-pt-br.d.ts +1 -0
  73. package/types/nanahoshi-mona-ui-locales-ru-ru.d.ts +1 -0
  74. package/types/nanahoshi-mona-ui-locales-tr-tr.d.ts +1 -0
  75. package/types/nanahoshi-mona-ui-locales-zh-cn.d.ts +1 -0
  76. package/types/nanahoshi-mona-ui-locales-zh-tw.d.ts +1 -0
  77. package/types/nanahoshi-mona-ui-multi-select.d.ts +45 -21
  78. package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +57 -16
  79. package/types/nanahoshi-mona-ui-time-picker.d.ts +72 -42
  80. package/types/nanahoshi-mona-ui-time-selector.d.ts +78 -46
@@ -5,7 +5,7 @@ import { TemplateRef } from '@angular/core';
5
5
  import { FormValueControl } from '@angular/forms/signals';
6
6
  import { CalendarDecadeCellTemplateDirective, CalendarMonthCellTemplateDirective, CalendarYearCellTemplateDirective, FirstDayOfWeek } from '@nanahoshi/mona-ui/calendar';
7
7
  import { PreventableEvent } from '@nanahoshi/mona-ui/common';
8
- import { DateDisabledType, HourFormat } from '@nanahoshi/mona-ui/date-input';
8
+ import { HourFormat, TypedDateInput, DateDisabledType } from '@nanahoshi/mona-ui/date-input';
9
9
  import * as i1 from '@nanahoshi/mona-ui/dropdowns';
10
10
  import { DropdownPopupInput } from '@nanahoshi/mona-ui/dropdowns';
11
11
  import { AttributeConfig, VariantInputs } from '@nanahoshi/mona-ui/internal';
@@ -20,10 +20,13 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
20
20
  #private;
21
21
  protected readonly activeView: _angular_core.WritableSignal<ActiveView>;
22
22
  protected readonly baseClass: _angular_core.Signal<string>;
23
- protected readonly currentDateString: _angular_core.WritableSignal<string>;
23
+ protected readonly dateTabId: string;
24
24
  protected readonly decadeCellTemplate: _angular_core.Signal<CalendarDecadeCellTemplateDirective | undefined>;
25
25
  protected readonly effectiveFormat: _angular_core.Signal<string>;
26
+ protected readonly effectiveHourFormat: _angular_core.Signal<HourFormat>;
26
27
  protected readonly expanded: _angular_core.Signal<boolean>;
28
+ /** Whether the view shown next takes focus: yes after picking a day, no when a tab is chosen. */
29
+ protected readonly focusViewOnMount: _angular_core.WritableSignal<boolean>;
27
30
  protected readonly footerClass: _angular_core.Signal<string>;
28
31
  protected readonly headerClass: _angular_core.Signal<string>;
29
32
  protected readonly inputAttributes: _angular_core.Signal<AttributeConfig>;
@@ -32,13 +35,33 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
32
35
  protected readonly messages: _angular_core.Signal<_nanahoshi_mona_ui_i18n.MonaDateTimePickerMessages>;
33
36
  protected readonly monthCellTemplate: _angular_core.Signal<CalendarMonthCellTemplateDirective | undefined>;
34
37
  protected readonly navigatedDate: _angular_core.WritableSignal<Date>;
38
+ protected readonly panelId: string;
35
39
  protected readonly pickerPopupClass: _angular_core.Signal<string>;
36
40
  protected readonly popupId: string;
37
41
  protected readonly popupTemplate: _angular_core.Signal<TemplateRef<unknown>>;
38
42
  protected readonly prefixTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
39
43
  protected readonly timePickerMax: _angular_core.Signal<Date | null>;
40
44
  protected readonly timePickerMin: _angular_core.Signal<Date | null>;
45
+ protected readonly timeTabId: string;
46
+ /** Set in the constructor, which runs after the `value` model it writes to exists. */
47
+ protected readonly typedInput: TypedDateInput;
41
48
  protected readonly yearCellTemplate: _angular_core.Signal<CalendarYearCellTemplateDirective | undefined>;
49
+ /**
50
+ * @description Id of an element that describes the input, such as a hint or an error message.
51
+ * @default ""
52
+ */
53
+ readonly ariaDescribedBy: _angular_core.InputSignal<string>;
54
+ /**
55
+ * @description Accessible name of the input. Prefer a visible label, linked through {@link inputId} or
56
+ * {@link ariaLabelledBy}; the placeholder is not a label.
57
+ * @default ""
58
+ */
59
+ readonly ariaLabel: _angular_core.InputSignal<string>;
60
+ /**
61
+ * @description Id of the element that labels the input.
62
+ * @default ""
63
+ */
64
+ readonly ariaLabelledBy: _angular_core.InputSignal<string>;
42
65
  /**
43
66
  * @description Emits when the popup is about to close. This event is preventable.
44
67
  */
@@ -49,11 +72,13 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
49
72
  readonly closed: _angular_core.OutputEmitterRef<void>;
50
73
  /**
51
74
  * @description Sets the disabled state of the date time picker.
75
+ * @default false
52
76
  */
53
- readonly disabled: _angular_core.InputSignal<boolean>;
77
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
54
78
  /**
55
79
  * @description Sets the disabled dates of the date time picker.
56
- * Accepts either an iterable of Date objects or a predicate function.
80
+ * Accepts either an iterable of Date objects or a predicate function. Typing a disabled date is reported as a
81
+ * `disabledDate` error instead of setting the value.
57
82
  */
58
83
  readonly disabledDates: _angular_core.InputSignal<DateDisabledType>;
59
84
  /**
@@ -62,32 +87,41 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
62
87
  */
63
88
  readonly firstDay: _angular_core.InputSignal<FirstDayOfWeek | null>;
64
89
  /**
65
- * @description Sets the date format of the date time picker. If not specified, derives from the active locale, hourFormat, and showSeconds.
90
+ * @description Sets the date format of the date time picker. If not specified, derives from the active locale,
91
+ * hourFormat, and showSeconds. Typed text is also accepted with one-digit parts and a two-digit year.
66
92
  * @default null
67
93
  */
68
94
  readonly format: _angular_core.InputSignal<string | null>;
69
95
  /**
70
- * @description Sets the hour format of the time picker.
71
- * @default 24
96
+ * @description Sets the hour format of the date time picker. When null, the active locale's clock is used: 12-hour
97
+ * for en-US, 24-hour for de-DE.
98
+ * @default null
72
99
  */
73
- readonly hourFormat: _angular_core.InputSignal<HourFormat>;
100
+ readonly hourFormat: _angular_core.InputSignal<HourFormat | null>;
74
101
  /**
75
102
  * @description Sets the hour step of the time picker.
76
103
  * @default 1
77
104
  */
78
105
  readonly hourStep: _angular_core.InputSignal<number>;
106
+ /**
107
+ * @description Id of the inner `<input>` element. Point a `<label for>` or `<mona-label for>` at it to label the
108
+ * date time picker. A unique id is generated when it isn't set.
109
+ * @default generated
110
+ */
111
+ readonly inputId: _angular_core.InputSignal<string>;
79
112
  /**
80
113
  * @description Marks the date time picker as invalid. When bound to a signal form field via `[formField]`,
81
114
  * this is written by the `FormField` directive.
82
115
  * @default false
83
116
  */
84
- readonly invalid: _angular_core.InputSignal<boolean>;
117
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
85
118
  /**
86
- * @description Sets the maximum date of the date time picker.
119
+ * @description Sets the maximum date of the date time picker. A later typed date is reported as a `maxDate` error.
87
120
  */
88
121
  readonly max: _angular_core.InputSignalWithTransform<Date | undefined, unknown>;
89
122
  /**
90
- * @description Sets the minimum date of the date time picker.
123
+ * @description Sets the minimum date of the date time picker. An earlier typed date is reported as a `minDate`
124
+ * error.
91
125
  */
92
126
  readonly min: _angular_core.InputSignalWithTransform<Date | undefined, unknown>;
93
127
  /**
@@ -113,30 +147,31 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
113
147
  */
114
148
  readonly popupClass: _angular_core.InputSignal<string>;
115
149
  /**
116
- * @description Sets the height of the popup element.
117
- * @default 200
150
+ * @description Sets the height of the popup element. When not set, the popup fits its content.
151
+ * @default undefined
118
152
  */
119
153
  readonly popupHeight: _angular_core.InputSignal<ListSizeInputType>;
120
154
  /**
121
- * @description Sets the width of the popup element.
122
- * @default null
155
+ * @description Sets the width of the popup element. When not set, the popup is at least as wide as the input.
156
+ * @default undefined
123
157
  */
124
158
  readonly popupWidth: _angular_core.InputSignal<ListSizeInputType>;
125
159
  /**
126
160
  * @description Sets the readonly state of the date time picker.
161
+ * @default false
127
162
  */
128
- readonly readonly: _angular_core.InputSignal<boolean>;
163
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
129
164
  /**
130
165
  * @description When true, the input is readonly but the popup button remains enabled.
131
166
  * @default false
132
167
  */
133
- readonly readonlyInput: _angular_core.InputSignal<boolean>;
168
+ readonly readonlyInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
134
169
  /**
135
170
  * @description Sets the required state of the date time picker.
136
171
  * When bound to a signal form field via `[formField]`, this is written by the `FormField` directive.
137
172
  * @default false
138
173
  */
139
- readonly required: _angular_core.InputSignal<boolean>;
174
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
140
175
  /**
141
176
  * @description Sets the border radius of the date time picker.
142
177
  */
@@ -147,19 +182,21 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
147
182
  */
148
183
  readonly secondStep: _angular_core.InputSignal<number>;
149
184
  /**
150
- * @description Sets the visibility of the clear button.
185
+ * @description Sets the visibility of the clear button. Clearing empties the value at once.
186
+ * @default false
151
187
  */
152
- readonly showClearButton: _angular_core.InputSignal<boolean>;
188
+ readonly showClearButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
153
189
  /**
154
190
  * @description Sets the visibility of the second selector.
191
+ * @default false
155
192
  */
156
- readonly showSeconds: _angular_core.InputSignal<boolean>;
193
+ readonly showSeconds: _angular_core.InputSignalWithTransform<boolean, unknown>;
157
194
  /**
158
195
  * @description Sets the size of the date time picker.
159
196
  */
160
197
  readonly size: _angular_core.InputSignal<"large" | "medium" | "small" | null | undefined>;
161
198
  /**
162
- * @description Emitted when the date time picker is interacted with via blur, selection, or clear.
199
+ * @description Emitted when focus leaves the date time picker and its popup.
163
200
  * The `FormField` directive listens to this to mark the field as touched.
164
201
  */
165
202
  readonly touch: _angular_core.OutputEmitterRef<void>;
@@ -168,10 +205,11 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
168
205
  * this is written by the `FormField` directive.
169
206
  * @default false
170
207
  */
171
- readonly touched: _angular_core.InputSignal<boolean>;
208
+ readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
172
209
  readonly userClass: _angular_core.InputSignal<string>;
173
210
  /**
174
- * @description Two-way bindable current date time value.
211
+ * @description Two-way bindable current date time value. Typed text is written on Enter and when the input loses
212
+ * focus; text that isn't a valid date and time keeps the previous value and marks the field invalid.
175
213
  * @default null
176
214
  */
177
215
  readonly value: _angular_core.ModelSignal<Date | null>;
@@ -179,30 +217,33 @@ declare class DateTimePickerComponent implements FormValueControl<Date | null>,
179
217
  * @description Enables the display of week numbers in the calendar.
180
218
  * @default false
181
219
  */
182
- readonly weekNumber: _angular_core.InputSignal<boolean>;
220
+ readonly weekNumber: _angular_core.InputSignalWithTransform<boolean, unknown>;
183
221
  constructor();
184
- focus(): void;
222
+ /**
223
+ * Focuses the input and places the caret after the text. Read-only pickers take focus too.
224
+ * @param options Options passed to the native `focus()` call, such as `preventScroll`.
225
+ */
226
+ focus(options?: FocusOptions): void;
185
227
  protected onCalendarValueChange(date: Date | Date[] | null): void;
186
228
  protected onCancelClick(): void;
187
- protected onDateInputBlur(): void;
188
229
  protected onDateInputButtonClick(): void;
189
- protected onDateStringEdit(dateString: string): void;
230
+ protected onFocusIn(event: FocusEvent): void;
231
+ protected onFocusOut(event: FocusEvent): void;
232
+ protected onInputBlur(): void;
233
+ protected onKeydown(event: KeyboardEvent): void;
190
234
  protected onSetDateClick(): void;
235
+ /** Arrow keys, Home and End move between the Date and Time tabs, as in the APG tabs pattern. */
236
+ protected onTabKeydown(event: KeyboardEvent): void;
191
237
  protected onTimeSelectorValueChange(date: Date | null): void;
238
+ /** Shows a view from its tab; focus stays on the tab, as in the APG tabs pattern. */
239
+ protected selectTab(view: ActiveView): void;
192
240
  private closePopup;
193
- private compareDatesEqual;
194
- private dateStringEquals;
195
- private handleKeydown;
196
- private isDateDisabledByInput;
197
241
  private openPopup;
198
- private setCurrentDate;
199
- private setKeyboardSubscriptions;
200
- private setPopupCloseSubscriptions;
201
- private setSubscriptions;
202
- private updateCurrentDateString;
242
+ private setPopupCloseSubscription;
243
+ private setPopupKeyboardSubscription;
203
244
  private updateDateIfNotInRange;
204
245
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimePickerComponent, never>;
205
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimePickerComponent, "mona-datetime-picker", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "firstDay": { "alias": "firstDay"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "hourStep": { "alias": "hourStep"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "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; }; "readonlyInput": { "alias": "readonlyInput"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "secondStep": { "alias": "secondStep"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "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; }; "weekNumber": { "alias": "weekNumber"; "required": false; "isSignal": true; }; }, { "close": "close"; "closed": "closed"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["decadeCellTemplate", "monthCellTemplate", "prefixTemplate", "yearCellTemplate"], never, true, [{ directive: typeof i1.DropdownPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
246
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimePickerComponent, "mona-datetime-picker", 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; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "firstDay": { "alias": "firstDay"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "hourStep": { "alias": "hourStep"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "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; }; "readonlyInput": { "alias": "readonlyInput"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "secondStep": { "alias": "secondStep"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "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; }; "weekNumber": { "alias": "weekNumber"; "required": false; "isSignal": true; }; }, { "close": "close"; "closed": "closed"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, ["decadeCellTemplate", "monthCellTemplate", "prefixTemplate", "yearCellTemplate"], never, true, [{ directive: typeof i1.DropdownPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
206
247
  }
207
248
 
208
249
  declare const DATETIME_PICKER_DEFAULT_MESSAGES: MonaDateTimePickerMessages;
@@ -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;