@filip.mazev/blocks 1.4.15 → 1.4.16

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.
@@ -1,21 +1,33 @@
1
1
  import * as i0 from "@angular/core";
2
- import { ElementRef, OnDestroy, OnInit } from "@angular/core";
2
+ import { ElementRef, InjectionToken, OnDestroy, OnInit, Signal, TemplateRef } from "@angular/core";
3
+ import { DisabledReason, FormCheckboxControl, FormValueControl, ValidationError, WithOptionalFieldTree } from "@angular/forms/signals";
4
+ import { NgControl } from "@angular/forms";
3
5
  import { BxBaseControl, ResolvableText } from "@filip.mazev/blocks/core";
4
6
  import { CdkConnectedOverlay, ConnectionPositionPair } from "@angular/cdk/overlay";
7
+ import { ITagConfig, TruncateDirective } from "@filip.mazev/blocks/primitives";
5
8
  import { IconName } from "@filip.mazev/blocks/icons";
6
9
  export type ButtonVariant = 'text' | 'filled' | 'tonal' | 'icon' | 'fab' | 'mini-fab' | 'extended-fab';
7
10
  export type ButtonColor = 'primary' | 'accent' | 'success' | 'danger' | 'info' | 'warn' | 'grayscale';
8
- export type InputFieldTypes = 'text' | 'password' | 'email' | 'number' | 'date' | 'time' | 'datetime-local';
11
+ export type InputFieldTypes = 'text' | 'password' | 'email' | 'number' | 'date' | 'time' | 'datetime-local' | 'tel' | 'url' | 'search' | 'color';
9
12
  export declare class Button {
10
13
  private readonly appearance;
11
14
  private readonly a11y;
15
+ private readonly projectedIcon;
16
+ private readonly iconElement;
17
+ private readonly customIcon;
18
+ protected readonly spinnerSize: import("@angular/core").WritableSignal<number>;
12
19
  readonly isAnimated: import("@angular/core").Signal<boolean>;
13
20
  readonly variant: import("@angular/core").InputSignal<ButtonVariant>;
14
21
  readonly color: import("@angular/core").InputSignal<ButtonColor>;
15
22
  readonly outlined: import("@angular/core").InputSignal<boolean>;
16
23
  readonly elevated: import("@angular/core").InputSignal<boolean>;
17
24
  readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
25
+ readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
26
+ readonly isDisabled: import("@angular/core").Signal<boolean>;
18
27
  readonly interactive: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
28
+ /** Enable runtime glass lighting and deformation; defaults to true. Disable for dense collections while retaining button styling and semantics. */
29
+ readonly surfaceEffects: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
30
+ constructor();
19
31
  protected onClick(event: Event): void;
20
32
  static ɵfac: i0.ɵɵFactoryDeclaration<Button, never>;
21
33
  static ɵcmp: i0.ɵɵComponentDeclaration<Button, "bx-button, button[bx-button], a[bx-button]", never, {
@@ -44,42 +56,430 @@ export declare class Button {
44
56
  "required": false;
45
57
  "isSignal": true;
46
58
  };
59
+ "loading": {
60
+ "alias": "loading";
61
+ "required": false;
62
+ "isSignal": true;
63
+ };
47
64
  "interactive": {
48
65
  "alias": "interactive";
49
66
  "required": false;
50
67
  "isSignal": true;
51
68
  };
52
- }, {}, never, ["*"], true, never>;
69
+ "surfaceEffects": {
70
+ "alias": "surfaceEffects";
71
+ "required": false;
72
+ "isSignal": true;
73
+ };
74
+ }, {}, ["projectedIcon", "iconElement", "customIcon"], ["*"], true, never>;
53
75
  }
54
- export declare class Checkbox extends BxBaseControl<boolean> {
55
- private readonly i18n;
56
- protected readonly inputId: import("@angular/core").Signal<string>;
57
- protected readonly resolvedLabel: import("@angular/core").Signal<string | undefined>;
58
- protected showTooltip: boolean;
76
+ /** State passed to a custom error-display policy. */
77
+ export interface IErrorState {
78
+ /** Whether validation currently fails. */
79
+ invalid: boolean;
80
+ /** Whether interaction with the field has completed. */
81
+ touched: boolean;
82
+ /** Whether the user changed the field. */
83
+ dirty: boolean;
84
+ /** Whether the containing form has been submitted. */
85
+ submitted: boolean;
86
+ /** Whether the field is disabled. */
87
+ disabled: boolean;
88
+ /** Whether asynchronous validation is pending. */
89
+ pending: boolean;
90
+ }
91
+ /** Context available to a parameterized validation message. */
92
+ export interface IValidationMessageContext {
93
+ /** Canonical error kind, including minLength/maxLength aliases. */
94
+ kind: string;
95
+ /** Original Angular error including any validator-specific properties. */
96
+ error: ValidationError.WithOptionalFieldTree;
97
+ /** Parameters from a Reactive Forms error payload or a Signal Forms error. */
98
+ params: Record<string, unknown>;
99
+ }
100
+ export type ValidationMessage = ResolvableText | ((context: IValidationMessageContext) => ResolvableText);
101
+ export type ValidationMessages = Readonly<Record<string, ValidationMessage | undefined>>;
102
+ export type ErrorDisplayPolicy = 'touched' | 'dirty' | 'submitted' | 'always' | ((state: IErrorState) => boolean);
103
+ export type ErrorDisplayMode = 'first' | 'all';
104
+ export type FloatLabel = 'auto' | 'always';
105
+ export type SubscriptSizing = 'fixed' | 'dynamic';
106
+ export type LabelPosition = 'before' | 'after';
107
+ export type FormFieldAppearance = 'fill' | 'outline';
108
+ export type HintAlignment = 'start' | 'end';
109
+ /** Registration contract for a custom control projected into a Blocks form field. */
110
+ export interface IFormFieldControl {
111
+ /** ID of the actual focusable control. */
112
+ controlId: Signal<string>;
113
+ /** Visible field label. */
114
+ label: Signal<ResolvableText | undefined>;
115
+ /** Whether validation feedback should be shown. */
116
+ showError: Signal<boolean>;
117
+ /** Already resolved validation messages. */
118
+ errorTexts: Signal<readonly string[]>;
119
+ /** Required state used for label decoration. */
120
+ required: Signal<boolean>;
121
+ /** Disabled state of the control. */
122
+ disabled: Signal<boolean>;
123
+ /** Pending asynchronous validation. */
124
+ pending: Signal<boolean>;
125
+ /** Optional description registration for consumer controls with custom interactive elements. */
126
+ setDescribedByIds?: (ids: readonly string[]) => void;
127
+ /** Focus the internal interactive element. */
128
+ focus: (options?: FocusOptions) => void;
129
+ }
130
+ declare abstract class BxControlState implements IFormFieldControl, OnInit {
131
+ private readonly textAdapter;
132
+ private readonly defaults;
133
+ private readonly generatedId;
134
+ private readonly parentGroup;
135
+ private readonly parentTemplate;
136
+ private readonly submittedByParent;
137
+ private readonly extraDescriptions;
138
+ private readonly localTouched;
139
+ private readonly controlVersion;
140
+ private readonly destroyRef;
141
+ private readonly focusMonitor;
142
+ protected readonly hostElement: HTMLElement;
143
+ protected readonly keyboardFocused: import("@angular/core").WritableSignal<boolean>;
144
+ readonly ngControl: NgControl | null;
145
+ readonly id: import("@angular/core").InputSignal<string | undefined>;
146
+ readonly label: import("@angular/core").InputSignal<ResolvableText | undefined>;
147
+ readonly placeholder: import("@angular/core").InputSignal<ResolvableText | undefined>;
148
+ readonly tooltip: import("@angular/core").InputSignal<ResolvableText | undefined>;
149
+ readonly hint: import("@angular/core").InputSignal<ResolvableText | undefined>;
150
+ readonly hintEnd: import("@angular/core").InputSignal<ResolvableText | undefined>;
151
+ readonly error: import("@angular/core").InputSignal<ResolvableText | undefined>;
152
+ readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
153
+ readonly ariaLabelledBy: import("@angular/core").InputSignal<string | undefined>;
154
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string | undefined>;
155
+ readonly dataTestId: import("@angular/core").InputSignal<string | undefined>;
156
+ readonly name: import("@angular/core").InputSignal<string>;
157
+ readonly errors: import("@angular/core").InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
158
+ readonly invalid: import("@angular/core").InputSignal<boolean>;
159
+ readonly pending: import("@angular/core").InputSignal<boolean>;
160
+ readonly touched: import("@angular/core").InputSignal<boolean>;
161
+ readonly dirty: import("@angular/core").InputSignal<boolean>;
162
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
163
+ readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
164
+ readonly readOnly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
165
+ readonly isReadonly: import("@angular/core").Signal<boolean>;
166
+ readonly hidden: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
167
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
168
+ readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
169
+ readonly disabledReasons: import("@angular/core").InputSignal<readonly WithOptionalFieldTree<DisabledReason>[]>;
170
+ readonly submitted: import("@angular/core").InputSignal<boolean>;
171
+ readonly errorMessages: import("@angular/core").InputSignal<Readonly<Record<string, import("@filip.mazev/blocks/forms").ValidationMessage | undefined>>>;
172
+ readonly errorPriority: import("@angular/core").InputSignal<readonly string[]>;
173
+ readonly errorPolicy: import("@angular/core").InputSignal<ErrorDisplayPolicy | undefined>;
174
+ readonly errorMode: import("@angular/core").InputSignal<ErrorDisplayMode | undefined>;
175
+ readonly appearance: import("@angular/core").InputSignal<FormFieldAppearance | undefined>;
176
+ readonly floatLabel: import("@angular/core").InputSignal<FloatLabel | undefined>;
177
+ readonly hideRequiredMarker: import("@angular/core").InputSignal<boolean | undefined>;
178
+ readonly subscriptSizing: import("@angular/core").InputSignal<SubscriptSizing | undefined>;
179
+ /** Override automatic truncation tooltips while retaining ellipsis and measurement. Application default is true. */
180
+ readonly tooltipOnTruncate: import("@angular/core").InputSignal<boolean | undefined>;
181
+ readonly touch: import("@angular/core").OutputEmitterRef<void>;
182
+ readonly controlId: import("@angular/core").Signal<string>;
183
+ readonly resolvedLabel: import("@angular/core").Signal<string>;
184
+ readonly resolvedPlaceholder: import("@angular/core").Signal<string>;
185
+ readonly resolvedAppearance: import("@angular/core").Signal<FormFieldAppearance>;
186
+ readonly resolvedFloatLabel: import("@angular/core").Signal<FloatLabel>;
187
+ readonly resolvedHideRequiredMarker: import("@angular/core").Signal<boolean>;
188
+ readonly resolvedSubscriptSizing: import("@angular/core").Signal<SubscriptSizing>;
189
+ readonly resolvedTooltipOnTruncate: import("@angular/core").Signal<boolean>;
190
+ readonly describedBy: import("@angular/core").Signal<string>;
191
+ readonly effectiveDisabled: import("@angular/core").Signal<boolean>;
192
+ readonly effectiveRequired: import("@angular/core").Signal<boolean>;
193
+ private readonly currentErrors;
194
+ readonly showError: import("@angular/core").Signal<boolean>;
195
+ readonly errorTexts: import("@angular/core").Signal<readonly string[]>;
196
+ readonly fieldControl: IFormFieldControl;
197
+ constructor();
198
+ ngOnInit(): void;
199
+ focus(options?: FocusOptions): void;
200
+ /** Clears component interaction state; the owning form remains responsible for resetting its value. */
201
+ reset(): void;
202
+ protected markAsTouched(): void;
203
+ protected onControlPointerDown(): void;
204
+ protected commitPendingValue(_trigger?: 'blur'): void;
205
+ protected clearPendingEdit(): void;
206
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxControlState, never>;
207
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BxControlState, never, never, {
208
+ "id": {
209
+ "alias": "id";
210
+ "required": false;
211
+ "isSignal": true;
212
+ };
213
+ "label": {
214
+ "alias": "label";
215
+ "required": false;
216
+ "isSignal": true;
217
+ };
218
+ "placeholder": {
219
+ "alias": "placeholder";
220
+ "required": false;
221
+ "isSignal": true;
222
+ };
223
+ "tooltip": {
224
+ "alias": "tooltip";
225
+ "required": false;
226
+ "isSignal": true;
227
+ };
228
+ "hint": {
229
+ "alias": "hint";
230
+ "required": false;
231
+ "isSignal": true;
232
+ };
233
+ "hintEnd": {
234
+ "alias": "hintEnd";
235
+ "required": false;
236
+ "isSignal": true;
237
+ };
238
+ "error": {
239
+ "alias": "error";
240
+ "required": false;
241
+ "isSignal": true;
242
+ };
243
+ "ariaLabel": {
244
+ "alias": "ariaLabel";
245
+ "required": false;
246
+ "isSignal": true;
247
+ };
248
+ "ariaLabelledBy": {
249
+ "alias": "ariaLabelledBy";
250
+ "required": false;
251
+ "isSignal": true;
252
+ };
253
+ "ariaDescribedBy": {
254
+ "alias": "ariaDescribedBy";
255
+ "required": false;
256
+ "isSignal": true;
257
+ };
258
+ "dataTestId": {
259
+ "alias": "dataTestId";
260
+ "required": false;
261
+ "isSignal": true;
262
+ };
263
+ "name": {
264
+ "alias": "name";
265
+ "required": false;
266
+ "isSignal": true;
267
+ };
268
+ "errors": {
269
+ "alias": "errors";
270
+ "required": false;
271
+ "isSignal": true;
272
+ };
273
+ "invalid": {
274
+ "alias": "invalid";
275
+ "required": false;
276
+ "isSignal": true;
277
+ };
278
+ "pending": {
279
+ "alias": "pending";
280
+ "required": false;
281
+ "isSignal": true;
282
+ };
283
+ "touched": {
284
+ "alias": "touched";
285
+ "required": false;
286
+ "isSignal": true;
287
+ };
288
+ "dirty": {
289
+ "alias": "dirty";
290
+ "required": false;
291
+ "isSignal": true;
292
+ };
293
+ "disabled": {
294
+ "alias": "disabled";
295
+ "required": false;
296
+ "isSignal": true;
297
+ };
298
+ "readonly": {
299
+ "alias": "readonly";
300
+ "required": false;
301
+ "isSignal": true;
302
+ };
303
+ "readOnly": {
304
+ "alias": "readOnly";
305
+ "required": false;
306
+ "isSignal": true;
307
+ };
308
+ "hidden": {
309
+ "alias": "hidden";
310
+ "required": false;
311
+ "isSignal": true;
312
+ };
313
+ "required": {
314
+ "alias": "required";
315
+ "required": false;
316
+ "isSignal": true;
317
+ };
318
+ "loading": {
319
+ "alias": "loading";
320
+ "required": false;
321
+ "isSignal": true;
322
+ };
323
+ "disabledReasons": {
324
+ "alias": "disabledReasons";
325
+ "required": false;
326
+ "isSignal": true;
327
+ };
328
+ "submitted": {
329
+ "alias": "submitted";
330
+ "required": false;
331
+ "isSignal": true;
332
+ };
333
+ "errorMessages": {
334
+ "alias": "errorMessages";
335
+ "required": false;
336
+ "isSignal": true;
337
+ };
338
+ "errorPriority": {
339
+ "alias": "errorPriority";
340
+ "required": false;
341
+ "isSignal": true;
342
+ };
343
+ "errorPolicy": {
344
+ "alias": "errorPolicy";
345
+ "required": false;
346
+ "isSignal": true;
347
+ };
348
+ "errorMode": {
349
+ "alias": "errorMode";
350
+ "required": false;
351
+ "isSignal": true;
352
+ };
353
+ "appearance": {
354
+ "alias": "appearance";
355
+ "required": false;
356
+ "isSignal": true;
357
+ };
358
+ "floatLabel": {
359
+ "alias": "floatLabel";
360
+ "required": false;
361
+ "isSignal": true;
362
+ };
363
+ "hideRequiredMarker": {
364
+ "alias": "hideRequiredMarker";
365
+ "required": false;
366
+ "isSignal": true;
367
+ };
368
+ "subscriptSizing": {
369
+ "alias": "subscriptSizing";
370
+ "required": false;
371
+ "isSignal": true;
372
+ };
373
+ "tooltipOnTruncate": {
374
+ "alias": "tooltipOnTruncate";
375
+ "required": false;
376
+ "isSignal": true;
377
+ };
378
+ }, {
379
+ "touch": "touch";
380
+ }, never, never, true, never>;
381
+ }
382
+ declare abstract class BxCheckedControl extends BxControlState implements FormCheckboxControl {
383
+ private readonly draft;
384
+ protected readonly displayedChecked: import("@angular/core").Signal<boolean>;
385
+ readonly checked: import("@angular/core").ModelSignal<boolean>;
386
+ readonly labelPosition: import("@angular/core").InputSignal<LabelPosition>;
387
+ reset(): void;
388
+ protected clearPendingEdit(): void;
389
+ protected commitPendingValue(trigger?: 'blur'): void;
59
390
  protected onToggle(event: Event): void;
391
+ protected onReadonlyClick(event: Event): void;
60
392
  protected onBlur(): void;
393
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxCheckedControl, never>;
394
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BxCheckedControl, never, never, {
395
+ "checked": {
396
+ "alias": "checked";
397
+ "required": false;
398
+ "isSignal": true;
399
+ };
400
+ "labelPosition": {
401
+ "alias": "labelPosition";
402
+ "required": false;
403
+ "isSignal": true;
404
+ };
405
+ }, {
406
+ "checked": "checkedChange";
407
+ }, never, never, true, never>;
408
+ }
409
+ export type CheckboxClickAction = 'check-indeterminate' | 'check' | 'noop';
410
+ export declare class Checkbox extends BxCheckedControl {
411
+ readonly indeterminate: import("@angular/core").ModelSignal<boolean>;
412
+ readonly clickAction: import("@angular/core").InputSignal<CheckboxClickAction>;
413
+ protected onToggle(event: Event): void;
61
414
  static ɵfac: i0.ɵɵFactoryDeclaration<Checkbox, never>;
62
- static ɵcmp: i0.ɵɵComponentDeclaration<Checkbox, "bx-checkbox", never, {}, {}, never, never, true, never>;
415
+ static ɵcmp: i0.ɵɵComponentDeclaration<Checkbox, "bx-checkbox", never, {
416
+ "indeterminate": {
417
+ "alias": "indeterminate";
418
+ "required": false;
419
+ "isSignal": true;
420
+ };
421
+ "clickAction": {
422
+ "alias": "clickAction";
423
+ "required": false;
424
+ "isSignal": true;
425
+ };
426
+ }, {
427
+ "indeterminate": "indeterminateChange";
428
+ }, never, ["*", "bx-error", "bx-hint"], true, never>;
429
+ }
430
+ export declare class BxError {
431
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxError, never>;
432
+ static ɵcmp: i0.ɵɵComponentDeclaration<BxError, "bx-error", never, {}, {}, never, ["*"], true, never>;
433
+ }
434
+ export declare class BxHint {
435
+ readonly align: import("@angular/core").InputSignal<HintAlignment>;
436
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxHint, never>;
437
+ static ɵcmp: i0.ɵɵComponentDeclaration<BxHint, "bx-hint", never, {
438
+ "align": {
439
+ "alias": "align";
440
+ "required": false;
441
+ "isSignal": true;
442
+ };
443
+ }, {}, never, ["*"], true, never>;
63
444
  }
64
445
  export declare class FormField {
65
446
  private readonly i18n;
66
447
  private readonly a11y;
67
448
  private readonly element;
68
449
  private readonly lighting;
69
- protected readonly projectedError: import("@angular/core").Signal<ElementRef<any> | undefined>;
70
- private readonly errorElement;
71
- protected readonly resolvedLabel: import("@angular/core").Signal<string | undefined>;
72
- protected readonly resolvedError: import("@angular/core").Signal<string | undefined>;
450
+ private readonly projectedControl;
451
+ private readonly generatedId;
452
+ protected readonly projectedError: import("@angular/core").Signal<BxError | undefined>;
453
+ protected readonly projectedHint: import("@angular/core").Signal<BxHint | undefined>;
454
+ protected readonly activeControl: import("@angular/core").Signal<IFormFieldControl | undefined>;
455
+ protected readonly controlId: import("@angular/core").Signal<string>;
456
+ protected readonly resolvedLabel: import("@angular/core").Signal<string>;
457
+ protected readonly resolvedError: import("@angular/core").Signal<string>;
458
+ protected readonly resolvedHint: import("@angular/core").Signal<string>;
459
+ protected readonly resolvedHintEnd: import("@angular/core").Signal<string>;
460
+ protected readonly resolvedTooltipLabel: import("@angular/core").Signal<string>;
461
+ protected readonly showErrors: import("@angular/core").Signal<boolean>;
462
+ protected readonly messages: import("@angular/core").Signal<readonly string[]>;
463
+ protected readonly isRequired: import("@angular/core").Signal<boolean | undefined>;
464
+ protected readonly isLoading: import("@angular/core").Signal<boolean | undefined>;
465
+ protected readonly hideSubscript: import("@angular/core").Signal<boolean>;
73
466
  readonly inline: import("@angular/core").InputSignal<boolean>;
467
+ readonly control: import("@angular/core").InputSignal<IFormFieldControl | undefined>;
74
468
  readonly label: import("@angular/core").InputSignal<ResolvableText | undefined>;
75
469
  readonly tooltip: import("@angular/core").InputSignal<ResolvableText | undefined>;
470
+ readonly tooltipLabel: import("@angular/core").InputSignal<ResolvableText>;
76
471
  readonly error: import("@angular/core").InputSignal<ResolvableText | undefined>;
472
+ readonly errors: import("@angular/core").InputSignal<readonly string[]>;
473
+ readonly hint: import("@angular/core").InputSignal<ResolvableText | undefined>;
474
+ readonly hintEnd: import("@angular/core").InputSignal<ResolvableText | undefined>;
77
475
  readonly required: import("@angular/core").InputSignal<boolean>;
476
+ readonly hideRequiredMarker: import("@angular/core").InputSignal<boolean>;
78
477
  readonly loading: import("@angular/core").InputSignal<boolean>;
478
+ readonly showLoadingIndicator: import("@angular/core").InputSignal<boolean>;
79
479
  readonly forId: import("@angular/core").InputSignal<string>;
480
+ readonly subscriptSizing: import("@angular/core").InputSignal<SubscriptSizing>;
80
481
  readonly isAnimated: import("@angular/core").Signal<boolean>;
81
482
  constructor();
82
- private resolveText;
83
483
  static ɵfac: i0.ɵɵFactoryDeclaration<FormField, never>;
84
484
  static ɵcmp: i0.ɵɵComponentDeclaration<FormField, "bx-form-field", never, {
85
485
  "inline": {
@@ -87,6 +487,11 @@ export declare class FormField {
87
487
  "required": false;
88
488
  "isSignal": true;
89
489
  };
490
+ "control": {
491
+ "alias": "control";
492
+ "required": false;
493
+ "isSignal": true;
494
+ };
90
495
  "label": {
91
496
  "alias": "label";
92
497
  "required": false;
@@ -97,49 +502,128 @@ export declare class FormField {
97
502
  "required": false;
98
503
  "isSignal": true;
99
504
  };
505
+ "tooltipLabel": {
506
+ "alias": "tooltipLabel";
507
+ "required": false;
508
+ "isSignal": true;
509
+ };
100
510
  "error": {
101
511
  "alias": "error";
102
512
  "required": false;
103
513
  "isSignal": true;
104
514
  };
515
+ "errors": {
516
+ "alias": "errors";
517
+ "required": false;
518
+ "isSignal": true;
519
+ };
520
+ "hint": {
521
+ "alias": "hint";
522
+ "required": false;
523
+ "isSignal": true;
524
+ };
525
+ "hintEnd": {
526
+ "alias": "hintEnd";
527
+ "required": false;
528
+ "isSignal": true;
529
+ };
105
530
  "required": {
106
531
  "alias": "required";
107
532
  "required": false;
108
533
  "isSignal": true;
109
534
  };
535
+ "hideRequiredMarker": {
536
+ "alias": "hideRequiredMarker";
537
+ "required": false;
538
+ "isSignal": true;
539
+ };
110
540
  "loading": {
111
541
  "alias": "loading";
112
542
  "required": false;
113
543
  "isSignal": true;
114
544
  };
545
+ "showLoadingIndicator": {
546
+ "alias": "showLoadingIndicator";
547
+ "required": false;
548
+ "isSignal": true;
549
+ };
115
550
  "forId": {
116
551
  "alias": "forId";
117
552
  "required": false;
118
553
  "isSignal": true;
119
554
  };
120
- }, {}, ["projectedError"], ["*", "bx-error"], true, never>;
555
+ "subscriptSizing": {
556
+ "alias": "subscriptSizing";
557
+ "required": false;
558
+ "isSignal": true;
559
+ };
560
+ }, {}, ["projectedControl", "projectedError", "projectedHint"], ["[bxPrefix]", "*", "[bxSuffix]", "bx-error", "bx-hint"], true, never>;
561
+ }
562
+ declare abstract class BxValueControl<T> extends BxControlState implements FormValueControl<T | null> {
563
+ private readonly edit;
564
+ protected readonly internalValue: import("@angular/core").Signal<T | null>;
565
+ readonly value: import("@angular/core").ModelSignal<T | null>;
566
+ reset(): void;
567
+ protected clearPendingEdit(): void;
568
+ protected updateValue(value: T | null): void;
569
+ protected commitPendingValue(trigger?: 'blur'): void;
570
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxValueControl<any>, never>;
571
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BxValueControl<any>, never, never, {
572
+ "value": {
573
+ "alias": "value";
574
+ "required": false;
575
+ "isSignal": true;
576
+ };
577
+ }, {
578
+ "value": "valueChange";
579
+ }, never, never, true, never>;
121
580
  }
122
- export declare class InputField extends BxBaseControl<string | number | null> {
581
+ export declare class InputField extends BxValueControl<string | number> {
123
582
  private readonly i18n;
124
- protected readonly inputId: import("@angular/core").Signal<string>;
583
+ private readonly editingRaw;
584
+ private readonly badInput;
585
+ private readonly labelText;
586
+ protected readonly labelTruncated: import("@angular/core").Signal<boolean>;
125
587
  protected readonly isFocused: import("@angular/core").WritableSignal<boolean>;
588
+ protected readonly autofilled: import("@angular/core").WritableSignal<boolean>;
589
+ protected readonly rawValue: import("@angular/forms/signals").TransformedValueSignal<string>;
590
+ protected readonly displayedValue: import("@angular/core").Signal<string>;
126
591
  protected readonly isSpinDownDisabled: import("@angular/core").Signal<boolean>;
127
592
  protected readonly isSpinUpDisabled: import("@angular/core").Signal<boolean>;
128
593
  protected readonly isFloating: import("@angular/core").Signal<boolean>;
129
- protected readonly resolvedPlaceholder: import("@angular/core").Signal<string>;
130
- protected readonly resolvedLabel: import("@angular/core").Signal<string>;
594
+ protected readonly resolvedDecreaseLabel: import("@angular/core").Signal<string>;
595
+ protected readonly resolvedIncreaseLabel: import("@angular/core").Signal<string>;
131
596
  readonly type: import("@angular/core").InputSignal<InputFieldTypes>;
132
- readonly min: import("@angular/core").InputSignal<number | undefined>;
133
- readonly max: import("@angular/core").InputSignal<number | undefined>;
134
- readonly step: import("@angular/core").InputSignal<number>;
597
+ readonly min: import("@angular/core").InputSignalWithTransform<number | undefined, string | number | undefined>;
598
+ readonly max: import("@angular/core").InputSignalWithTransform<number | undefined, string | number | undefined>;
599
+ readonly minLength: import("@angular/core").InputSignal<number | undefined>;
600
+ readonly maxLength: import("@angular/core").InputSignal<number | undefined>;
601
+ readonly pattern: import("@angular/core").InputSignal<readonly RegExp[]>;
602
+ readonly step: import("@angular/core").InputSignal<number | "any">;
603
+ readonly autocomplete: import("@angular/core").InputSignal<string | undefined>;
604
+ readonly inputmode: import("@angular/core").InputSignal<string | undefined>;
605
+ readonly spellcheck: import("@angular/core").InputSignal<boolean>;
606
+ readonly multiline: import("@angular/core").InputSignal<boolean>;
607
+ readonly rows: import("@angular/core").InputSignal<number>;
608
+ readonly autosize: import("@angular/core").InputSignal<boolean>;
609
+ readonly minRows: import("@angular/core").InputSignal<number>;
610
+ readonly maxRows: import("@angular/core").InputSignal<number>;
611
+ readonly decreaseLabel: import("@angular/core").InputSignal<ResolvableText>;
612
+ readonly increaseLabel: import("@angular/core").InputSignal<ResolvableText>;
613
+ private composing;
135
614
  private spinTimeout?;
136
615
  private spinInterval?;
137
616
  constructor();
138
- startSpin(direction: number, event: MouseEvent | TouchEvent): void;
617
+ reset(): void;
618
+ startSpin(direction: number, event: Event): void;
139
619
  stopSpin(): void;
620
+ protected clearPendingEdit(): void;
140
621
  protected onInput(event: Event): void;
622
+ protected onCompositionStart(): void;
623
+ protected onCompositionEnd(event: Event): void;
141
624
  protected onFocus(): void;
142
625
  protected onBlur(): void;
626
+ protected commitPendingValue(trigger?: 'blur'): void;
143
627
  private applyStep;
144
628
  static ɵfac: i0.ɵɵFactoryDeclaration<InputField, never>;
145
629
  static ɵcmp: i0.ɵɵComponentDeclaration<InputField, "bx-input-field", never, {
@@ -158,19 +642,101 @@ export declare class InputField extends BxBaseControl<string | number | null> {
158
642
  "required": false;
159
643
  "isSignal": true;
160
644
  };
645
+ "minLength": {
646
+ "alias": "minLength";
647
+ "required": false;
648
+ "isSignal": true;
649
+ };
650
+ "maxLength": {
651
+ "alias": "maxLength";
652
+ "required": false;
653
+ "isSignal": true;
654
+ };
655
+ "pattern": {
656
+ "alias": "pattern";
657
+ "required": false;
658
+ "isSignal": true;
659
+ };
161
660
  "step": {
162
661
  "alias": "step";
163
662
  "required": false;
164
663
  "isSignal": true;
165
664
  };
166
- }, {}, never, never, true, never>;
665
+ "autocomplete": {
666
+ "alias": "autocomplete";
667
+ "required": false;
668
+ "isSignal": true;
669
+ };
670
+ "inputmode": {
671
+ "alias": "inputmode";
672
+ "required": false;
673
+ "isSignal": true;
674
+ };
675
+ "spellcheck": {
676
+ "alias": "spellcheck";
677
+ "required": false;
678
+ "isSignal": true;
679
+ };
680
+ "multiline": {
681
+ "alias": "multiline";
682
+ "required": false;
683
+ "isSignal": true;
684
+ };
685
+ "rows": {
686
+ "alias": "rows";
687
+ "required": false;
688
+ "isSignal": true;
689
+ };
690
+ "autosize": {
691
+ "alias": "autosize";
692
+ "required": false;
693
+ "isSignal": true;
694
+ };
695
+ "minRows": {
696
+ "alias": "minRows";
697
+ "required": false;
698
+ "isSignal": true;
699
+ };
700
+ "maxRows": {
701
+ "alias": "maxRows";
702
+ "required": false;
703
+ "isSignal": true;
704
+ };
705
+ "decreaseLabel": {
706
+ "alias": "decreaseLabel";
707
+ "required": false;
708
+ "isSignal": true;
709
+ };
710
+ "increaseLabel": {
711
+ "alias": "increaseLabel";
712
+ "required": false;
713
+ "isSignal": true;
714
+ };
715
+ }, {}, never, ["[bxPrefix]", "[bxSuffix]", "bx-error", "bx-hint"], true, never>;
716
+ }
717
+ /** Coordination contract shared by a radio group and its option components. */
718
+ interface IRadioGroup {
719
+ value: Signal<unknown>;
720
+ disabled: Signal<boolean>;
721
+ readonly: Signal<boolean>;
722
+ isReadonly: Signal<boolean>;
723
+ required: Signal<boolean>;
724
+ describedBy: Signal<string>;
725
+ groupName: Signal<string>;
726
+ select: (value: unknown) => void;
727
+ markTouched: () => void;
167
728
  }
168
729
  export declare class Radio extends BxBaseControl<unknown> {
730
+ protected readonly group: IRadioGroup | null;
169
731
  private readonly registry;
170
732
  private readonly element;
171
733
  private readonly i18n;
172
734
  protected readonly inputId: import("@angular/core").Signal<string>;
173
735
  protected readonly resolvedLabel: import("@angular/core").Signal<string | undefined>;
736
+ protected readonly effectiveDisabled: import("@angular/core").Signal<boolean>;
737
+ protected readonly effectiveName: import("@angular/core").Signal<string>;
738
+ protected readonly selected: import("@angular/core").Signal<boolean>;
739
+ readonly labelPosition: import("@angular/core").InputSignal<LabelPosition>;
174
740
  readonly value: import("@angular/core").InputSignal<unknown>;
175
741
  readonly name: import("@angular/core").InputSignal<string>;
176
742
  protected showTooltip: boolean;
@@ -178,9 +744,16 @@ export declare class Radio extends BxBaseControl<unknown> {
178
744
  /** Match native form/name groups and radios bound to one reactive control. */
179
745
  sharesGroup(other: Radio): boolean;
180
746
  protected onSelect(): void;
747
+ protected onReadonlyClick(event: Event): void;
748
+ protected onControlPointerDown(): void;
181
749
  protected onBlur(): void;
182
750
  static ɵfac: i0.ɵɵFactoryDeclaration<Radio, never>;
183
751
  static ɵcmp: i0.ɵɵComponentDeclaration<Radio, "bx-radio", never, {
752
+ "labelPosition": {
753
+ "alias": "labelPosition";
754
+ "required": false;
755
+ "isSignal": true;
756
+ };
184
757
  "value": {
185
758
  "alias": "value";
186
759
  "required": true;
@@ -191,80 +764,251 @@ export declare class Radio extends BxBaseControl<unknown> {
191
764
  "required": false;
192
765
  "isSignal": true;
193
766
  };
194
- }, {}, never, never, true, never>;
767
+ }, {}, never, ["*"], true, never>;
768
+ }
769
+ /** Optional presentation for the search request's retry action. */
770
+ export interface ISearchRetryConfig {
771
+ /** Accessible action name. Defaults to the resolved retryLabel and stays stable while loading. */
772
+ ariaLabel?: ResolvableText;
773
+ /** Blocks button variant. Defaults to text. */
774
+ variant?: ButtonVariant;
775
+ /** Semantic button color. Defaults to primary. */
776
+ color?: ButtonColor;
777
+ /** Whether to draw a button outline. Defaults to false. */
778
+ outlined?: boolean;
779
+ /** Additional button classes. Defaults to an empty string. */
780
+ buttonClass?: string;
195
781
  }
196
- export declare class SearchInput extends BxBaseControl<string> {
782
+ export declare class SearchInput extends BxValueControl<string> {
197
783
  private readonly i18n;
198
- protected readonly inputId: import("@angular/core").Signal<string>;
199
- protected readonly resolvedPlaceholder: import("@angular/core").Signal<string>;
784
+ private readonly retryError;
785
+ private readonly retrying;
786
+ protected readonly resolvedClearLabel: import("@angular/core").Signal<string>;
787
+ protected readonly resolvedLoadError: import("@angular/core").Signal<string>;
788
+ protected readonly resolvedLoadingLabel: import("@angular/core").Signal<string>;
789
+ protected readonly resolvedLoadingAriaLabel: import("@angular/core").Signal<string>;
790
+ protected readonly resolvedRetryLabel: import("@angular/core").Signal<string>;
791
+ protected readonly resolvedRetryAriaLabel: import("@angular/core").Signal<string>;
792
+ protected readonly resolvedRetainedError: import("@angular/core").Signal<string>;
793
+ protected readonly isBusy: import("@angular/core").Signal<boolean>;
794
+ protected readonly showRetry: import("@angular/core").Signal<boolean>;
795
+ protected readonly showStatus: import("@angular/core").Signal<boolean>;
796
+ protected readonly searchDescribedBy: import("@angular/core").Signal<string>;
797
+ readonly clearLabel: import("@angular/core").InputSignal<ResolvableText>;
798
+ readonly autocomplete: import("@angular/core").InputSignal<string>;
799
+ /** Application-owned request failure, separate from form validation. */
800
+ readonly loadError: import("@angular/core").InputSignal<ResolvableText | undefined>;
801
+ /** Optional visible loading text; otherwise only loadingAriaLabel is announced. */
802
+ readonly loadingLabel: import("@angular/core").InputSignal<ResolvableText | undefined>;
803
+ readonly loadingAriaLabel: import("@angular/core").InputSignal<ResolvableText>;
804
+ readonly retryLabel: import("@angular/core").InputSignal<ResolvableText>;
805
+ readonly retryConfig: import("@angular/core").InputSignal<ISearchRetryConfig>;
200
806
  readonly search: import("@angular/core").OutputEmitterRef<string>;
201
- private inputElement?;
807
+ /** Requests another attempt for the current query. Set loading synchronously before starting the request. */
808
+ readonly retry: import("@angular/core").OutputEmitterRef<string>;
809
+ private composing;
810
+ constructor();
202
811
  clear(): void;
203
- focus(): void;
812
+ retrySearch(): void;
204
813
  protected onInput(event: Event): void;
814
+ protected onCompositionStart(): void;
815
+ protected onCompositionEnd(event: Event): void;
205
816
  protected onBlur(): void;
206
817
  static ɵfac: i0.ɵɵFactoryDeclaration<SearchInput, never>;
207
- static ɵcmp: i0.ɵɵComponentDeclaration<SearchInput, "bx-search-input", never, {}, {
818
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchInput, "bx-search-input", never, {
819
+ "clearLabel": {
820
+ "alias": "clearLabel";
821
+ "required": false;
822
+ "isSignal": true;
823
+ };
824
+ "autocomplete": {
825
+ "alias": "autocomplete";
826
+ "required": false;
827
+ "isSignal": true;
828
+ };
829
+ "loadError": {
830
+ "alias": "loadError";
831
+ "required": false;
832
+ "isSignal": true;
833
+ };
834
+ "loadingLabel": {
835
+ "alias": "loadingLabel";
836
+ "required": false;
837
+ "isSignal": true;
838
+ };
839
+ "loadingAriaLabel": {
840
+ "alias": "loadingAriaLabel";
841
+ "required": false;
842
+ "isSignal": true;
843
+ };
844
+ "retryLabel": {
845
+ "alias": "retryLabel";
846
+ "required": false;
847
+ "isSignal": true;
848
+ };
849
+ "retryConfig": {
850
+ "alias": "retryConfig";
851
+ "required": false;
852
+ "isSignal": true;
853
+ };
854
+ }, {
208
855
  "search": "search";
209
- }, never, never, true, never>;
856
+ "retry": "retry";
857
+ }, never, ["bx-error", "bx-hint"], true, never>;
858
+ }
859
+ export type SelectionChangeSource = 'user' | 'select-all' | 'page';
860
+ export type SelectionDisplay = 'text' | 'tags';
861
+ export type LoadMoreSource = 'scroll' | 'button' | 'retry';
862
+ export type LoadMoreButtonMode = 'auto' | 'always';
863
+ /** Appearance and behavior shared by paginated surfaces. All properties are optional. */
864
+ export interface ILoadMoreConfig {
865
+ /** Auto shows the button when items cannot scroll; always keeps an explicit action. Defaults to auto. */
866
+ buttonMode?: LoadMoreButtonMode;
867
+ /** Normal action text, supporting translation keys. Defaults to Load more. */
868
+ text?: ResolvableText;
869
+ /** Text while the application is loading. Defaults to Loading. */
870
+ loadingText?: ResolvableText;
871
+ /** Optional retry text. Without a resolved label, reuse text with a retry icon. */
872
+ retryText?: ResolvableText;
873
+ /** Optional accessible action name; otherwise the visible text names the button. */
874
+ ariaLabel?: ResolvableText;
875
+ /** Button variant. Defaults to text. */
876
+ variant?: ButtonVariant;
877
+ /** Button intent color. Defaults to primary. */
878
+ color?: ButtonColor;
879
+ /** Whether to draw the button outline. Defaults to false. */
880
+ outlined?: boolean;
881
+ /** Consumer CSS classes for the button. Defaults to an empty string. */
882
+ buttonClass?: string;
883
+ /** Consumer CSS classes for the footer. Defaults to an empty string. */
884
+ footerClass?: string;
885
+ /** Distance in pixels from the scroll end at which to request a page. Defaults to 32. */
886
+ threshold?: number;
887
+ }
888
+ /** Template context supplied to a custom load-more button. */
889
+ export interface ILoadMoreContext {
890
+ /** Current visible action label. */
891
+ $implicit: string;
892
+ /** Whether the action is loading. Custom templates must expose this state accessibly. */
893
+ loading: boolean;
894
+ /** Whether requesting another page is blocked. */
895
+ disabled: boolean;
896
+ /** Requests another page through the shared guard. */
897
+ request: () => void;
210
898
  }
211
- export interface BxSelectOption<T> {
899
+ /** A transport-independent request for the next page; the application owns page/cursor state. */
900
+ export interface ILoadMoreRequest {
901
+ /** Interaction that requested the next page. */
902
+ source: LoadMoreSource;
903
+ }
904
+ /** An option whose value is independent from its translated presentation. */
905
+ export interface IBxSelectOption<T> {
906
+ /** Visible text or a translation key. */
212
907
  label: ResolvableText;
908
+ /** Value stored by the form; provide stable keys or compareWith for object values. */
213
909
  value: T;
910
+ /** Prevents user selection. Defaults to false. */
214
911
  disabled?: boolean;
912
+ /** Optional decorative option icon. */
215
913
  icon?: IconName;
914
+ /** Per-option tag appearance when selectionDisplay is tags. */
915
+ tagConfig?: ITagConfig;
916
+ /** Optional group heading, supporting translations. */
917
+ group?: ResolvableText;
918
+ /** Disables options in the associated group. Defaults to false. */
919
+ groupDisabled?: boolean;
920
+ }
921
+ interface IResolvedSelectOption<T> extends IBxSelectOption<T> {
922
+ resolvedStr: string;
923
+ resolvedGroup: string;
924
+ }
925
+ /** Context for a consumer-supplied option rendering template. */
926
+ export interface ISelectOptionContext<T> {
927
+ /** Option being rendered. */
928
+ $implicit: IBxSelectOption<T>;
929
+ /** Whether this option is selected. */
930
+ selected: boolean;
931
+ /** Position in the currently filtered options. */
932
+ index: number;
216
933
  }
217
- export declare class Select<T> extends BxBaseControl<T> implements OnInit, OnDestroy {
934
+ /** Context for customizing the select's displayed value. */
935
+ export interface ISelectTriggerContext<T> {
936
+ /** Current form value. */
937
+ $implicit: T | null;
938
+ /** Resolved labels of the loaded selected options. */
939
+ labels: readonly string[];
940
+ }
941
+ declare abstract class BxSelectBase<TValue, TOption> extends BxValueControl<TValue> implements OnDestroy {
218
942
  private readonly a11y;
219
943
  private readonly zone;
220
944
  private readonly overlay;
221
945
  private readonly overlayContext;
946
+ private readonly i18n;
947
+ private readonly debouncing;
948
+ private readonly searchRequest;
949
+ private readonly knownOptions;
222
950
  protected readonly panelScrollStrategy: import("@angular/cdk/overlay").NoopScrollStrategy;
223
951
  protected readonly isPanelAttached: import("@angular/core").WritableSignal<boolean>;
224
- private readonly i18n;
225
- protected readonly searchTerm: import("@angular/core").WritableSignal<string>;
226
- protected readonly inputId: import("@angular/core").Signal<string>;
952
+ protected readonly searchTerm: import("@angular/core").Signal<string>;
953
+ protected readonly valueOverflow: import("@angular/core").Signal<TruncateDirective | undefined>;
954
+ protected readonly labelOverflow: import("@angular/core").Signal<TruncateDirective | undefined>;
955
+ protected readonly truncatedSelectionTooltip: import("@angular/core").Signal<string>;
227
956
  protected readonly overlayPositions: ConnectionPositionPair[];
228
- protected readonly isFloating: import("@angular/core").Signal<boolean>;
229
- protected readonly resolvedLabel: import("@angular/core").Signal<string>;
230
- protected readonly resolvedPlaceholder: import("@angular/core").Signal<string>;
231
- protected readonly resolvedOptions: import("@angular/core").Signal<{
232
- resolvedStr: string;
233
- label: ResolvableText;
234
- value: T;
235
- disabled?: boolean;
236
- icon?: import("@filip.mazev/blocks/icons").IconName;
237
- }[]>;
238
- protected readonly filteredOptions: import("@angular/core").Signal<{
239
- resolvedStr: string;
240
- label: ResolvableText;
241
- value: T;
242
- disabled?: boolean;
243
- icon?: import("@filip.mazev/blocks/icons").IconName;
244
- }[]>;
957
+ protected readonly resolvedOptions: import("@angular/core").Signal<readonly IResolvedSelectOption<TOption>[]>;
958
+ protected readonly filteredOptions: import("@angular/core").Signal<readonly IResolvedSelectOption<TOption>[]>;
959
+ protected readonly selectedOptions: import("@angular/core").Signal<IResolvedSelectOption<TOption>[]>;
245
960
  protected readonly selectedOptionLabel: import("@angular/core").Signal<string>;
961
+ protected readonly isFloating: import("@angular/core").Signal<boolean>;
246
962
  protected readonly resolvedSearchPlaceholder: import("@angular/core").Signal<string>;
247
963
  protected readonly resolvedEmptyMessage: import("@angular/core").Signal<string>;
248
- readonly options: import("@angular/core").InputSignal<BxSelectOption<T>[]>;
964
+ protected readonly triggerContext: import("@angular/core").Signal<ISelectTriggerContext<TValue>>;
965
+ protected readonly visibleTags: import("@angular/core").Signal<IResolvedSelectOption<TOption>[]>;
966
+ protected readonly overflowTagLabel: import("@angular/core").Signal<string>;
967
+ protected readonly overflowTagTooltip: import("@angular/core").Signal<string>;
968
+ protected readonly resolvedLoadingAriaLabel: import("@angular/core").Signal<string>;
969
+ protected readonly resolvedLoadingLabel: import("@angular/core").Signal<string>;
970
+ readonly selectionDisplay: import("@angular/core").InputSignal<SelectionDisplay>;
971
+ readonly tagConfig: import("@angular/core").InputSignal<ITagConfig>;
972
+ readonly overflowTagConfig: import("@angular/core").InputSignal<ITagConfig>;
973
+ readonly visibleTagCount: import("@angular/core").InputSignalWithTransform<number, string | number>;
974
+ readonly tagOverflowText: import("@angular/core").InputSignal<ResolvableText>;
975
+ readonly options: import("@angular/core").InputSignal<readonly IBxSelectOption<TOption>[]>;
976
+ readonly compareWith: import("@angular/core").InputSignal<(a: TOption, b: TOption) => boolean>;
249
977
  readonly isSearchable: import("@angular/core").InputSignal<boolean>;
250
978
  readonly externalFiltering: import("@angular/core").InputSignal<boolean>;
979
+ readonly searchValue: import("@angular/core").ModelSignal<string>;
980
+ readonly searchDebounce: import("@angular/core").InputSignal<number>;
251
981
  readonly searchPlaceholder: import("@angular/core").InputSignal<ResolvableText>;
252
982
  readonly emptyMessage: import("@angular/core").InputSignal<ResolvableText>;
253
- readonly search: import("@angular/core").OutputEmitterRef<string>;
983
+ readonly loadingLabel: import("@angular/core").InputSignal<ResolvableText | undefined>;
984
+ readonly loadingAriaLabel: import("@angular/core").InputSignal<ResolvableText>;
985
+ readonly isSearching: import("@angular/core").Signal<boolean>;
986
+ readonly hasMore: import("@angular/core").InputSignal<boolean>;
987
+ readonly loadError: import("@angular/core").InputSignal<ResolvableText | undefined>;
988
+ readonly loadMoreConfig: import("@angular/core").InputSignal<ILoadMoreConfig>;
989
+ readonly loadMoreTemplate: import("@angular/core").InputSignal<TemplateRef<ILoadMoreContext> | undefined>;
990
+ readonly panelClass: import("@angular/core").InputSignal<string>;
991
+ readonly optionTemplate: import("@angular/core").InputSignal<TemplateRef<ISelectOptionContext<TOption>> | undefined>;
992
+ readonly triggerTemplate: import("@angular/core").InputSignal<TemplateRef<ISelectTriggerContext<TValue>> | undefined>;
254
993
  readonly isOpen: import("@angular/core").WritableSignal<boolean>;
994
+ readonly search: import("@angular/core").OutputEmitterRef<string>;
995
+ readonly loadMore: import("@angular/core").OutputEmitterRef<ILoadMoreRequest>;
996
+ readonly openedChange: import("@angular/core").OutputEmitterRef<boolean>;
255
997
  private transition?;
256
998
  private disconnectTheme?;
257
999
  private disconnectLighting?;
258
1000
  private disconnectOrigin?;
259
1001
  private transitionRevision;
260
1002
  private focusOnOpen;
1003
+ private searchTimeout?;
1004
+ private typeaheadTimeout?;
1005
+ private typeaheadText;
261
1006
  private connectedOverlay?;
262
1007
  private searchInputRef?;
263
1008
  private originRef?;
264
- private searchSubject;
265
- private sub?;
266
- ngOnInit(): void;
1009
+ constructor();
267
1010
  ngOnDestroy(): void;
1011
+ abstract isSelected(value: TOption): boolean;
268
1012
  toggleOpen(): void;
269
1013
  open(): void;
270
1014
  close(): void;
@@ -274,18 +1018,51 @@ export declare class Select<T> extends BxBaseControl<T> implements OnInit, OnDes
274
1018
  protected refreshPanel(): void;
275
1019
  protected onTriggerKey(event: KeyboardEvent): void;
276
1020
  protected onPanelKey(event: KeyboardEvent): void;
1021
+ protected onTriggerBlur(): void;
277
1022
  protected onOutsideClick(event: MouseEvent): void;
278
- protected selectOption(option: BxSelectOption<T>): void;
1023
+ protected abstract selectOption(option: IBxSelectOption<TOption>): void;
279
1024
  protected onSearchChange(value: string): void;
1025
+ protected selectionTagConfig(option: IBxSelectOption<TOption>): ITagConfig;
1026
+ protected requestMore(request: ILoadMoreRequest): void;
1027
+ private typeahead;
280
1028
  private panelItems;
281
- private resolveText;
282
- static ɵfac: i0.ɵɵFactoryDeclaration<Select<any>, never>;
283
- static ɵcmp: i0.ɵɵComponentDeclaration<Select<any>, "bx-select", never, {
1029
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxSelectBase<any, any>, never>;
1030
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BxSelectBase<any, any>, never, never, {
1031
+ "selectionDisplay": {
1032
+ "alias": "selectionDisplay";
1033
+ "required": false;
1034
+ "isSignal": true;
1035
+ };
1036
+ "tagConfig": {
1037
+ "alias": "tagConfig";
1038
+ "required": false;
1039
+ "isSignal": true;
1040
+ };
1041
+ "overflowTagConfig": {
1042
+ "alias": "overflowTagConfig";
1043
+ "required": false;
1044
+ "isSignal": true;
1045
+ };
1046
+ "visibleTagCount": {
1047
+ "alias": "visibleTagCount";
1048
+ "required": false;
1049
+ "isSignal": true;
1050
+ };
1051
+ "tagOverflowText": {
1052
+ "alias": "tagOverflowText";
1053
+ "required": false;
1054
+ "isSignal": true;
1055
+ };
284
1056
  "options": {
285
1057
  "alias": "options";
286
1058
  "required": true;
287
1059
  "isSignal": true;
288
1060
  };
1061
+ "compareWith": {
1062
+ "alias": "compareWith";
1063
+ "required": false;
1064
+ "isSignal": true;
1065
+ };
289
1066
  "isSearchable": {
290
1067
  "alias": "isSearchable";
291
1068
  "required": false;
@@ -296,6 +1073,16 @@ export declare class Select<T> extends BxBaseControl<T> implements OnInit, OnDes
296
1073
  "required": false;
297
1074
  "isSignal": true;
298
1075
  };
1076
+ "searchValue": {
1077
+ "alias": "searchValue";
1078
+ "required": false;
1079
+ "isSignal": true;
1080
+ };
1081
+ "searchDebounce": {
1082
+ "alias": "searchDebounce";
1083
+ "required": false;
1084
+ "isSignal": true;
1085
+ };
299
1086
  "searchPlaceholder": {
300
1087
  "alias": "searchPlaceholder";
301
1088
  "required": false;
@@ -306,31 +1093,384 @@ export declare class Select<T> extends BxBaseControl<T> implements OnInit, OnDes
306
1093
  "required": false;
307
1094
  "isSignal": true;
308
1095
  };
1096
+ "loadingLabel": {
1097
+ "alias": "loadingLabel";
1098
+ "required": false;
1099
+ "isSignal": true;
1100
+ };
1101
+ "loadingAriaLabel": {
1102
+ "alias": "loadingAriaLabel";
1103
+ "required": false;
1104
+ "isSignal": true;
1105
+ };
1106
+ "hasMore": {
1107
+ "alias": "hasMore";
1108
+ "required": false;
1109
+ "isSignal": true;
1110
+ };
1111
+ "loadError": {
1112
+ "alias": "loadError";
1113
+ "required": false;
1114
+ "isSignal": true;
1115
+ };
1116
+ "loadMoreConfig": {
1117
+ "alias": "loadMoreConfig";
1118
+ "required": false;
1119
+ "isSignal": true;
1120
+ };
1121
+ "loadMoreTemplate": {
1122
+ "alias": "loadMoreTemplate";
1123
+ "required": false;
1124
+ "isSignal": true;
1125
+ };
1126
+ "panelClass": {
1127
+ "alias": "panelClass";
1128
+ "required": false;
1129
+ "isSignal": true;
1130
+ };
1131
+ "optionTemplate": {
1132
+ "alias": "optionTemplate";
1133
+ "required": false;
1134
+ "isSignal": true;
1135
+ };
1136
+ "triggerTemplate": {
1137
+ "alias": "triggerTemplate";
1138
+ "required": false;
1139
+ "isSignal": true;
1140
+ };
309
1141
  }, {
1142
+ "searchValue": "searchValueChange";
310
1143
  "search": "search";
1144
+ "loadMore": "loadMore";
1145
+ "openedChange": "openedChange";
311
1146
  }, never, never, true, never>;
312
1147
  }
313
- export declare class SlideToggle extends BxBaseControl<boolean> {
314
- private readonly i18n;
315
- protected readonly inputId: import("@angular/core").Signal<string>;
316
- protected readonly resolvedLabel: import("@angular/core").Signal<string | undefined>;
317
- protected onToggle(event: Event): void;
318
- protected onBlur(): void;
319
- static ɵfac: i0.ɵɵFactoryDeclaration<SlideToggle, never>;
320
- static ɵcmp: i0.ɵɵComponentDeclaration<SlideToggle, "bx-slide-toggle", never, {}, {}, never, never, true, never>;
1148
+ /** Selection changes distinguish user intent from automatic page selection. */
1149
+ export interface ISelectionChange<T> {
1150
+ /** Updated form value. */
1151
+ value: T;
1152
+ /** Why the selection changed. */
1153
+ source: SelectionChangeSource;
321
1154
  }
322
- export declare class BxError {
323
- static ɵfac: i0.ɵɵFactoryDeclaration<BxError, never>;
324
- static ɵcmp: i0.ɵɵComponentDeclaration<BxError, "bx-error", never, {}, {}, never, ["*"], true, never>;
1155
+ export declare class Select<T> extends BxSelectBase<T, T> {
1156
+ readonly selectionChange: import("@angular/core").OutputEmitterRef<ISelectionChange<T | null>>;
1157
+ isSelected(value: T): boolean;
1158
+ protected selectOption(option: IBxSelectOption<T>): void;
1159
+ static ɵfac: i0.ɵɵFactoryDeclaration<Select<any>, never>;
1160
+ static ɵcmp: i0.ɵɵComponentDeclaration<Select<any>, "bx-select", never, {}, {
1161
+ "selectionChange": "selectionChange";
1162
+ }, never, ["[bxSuffix]", "bx-error", "bx-hint"], true, never>;
1163
+ }
1164
+ export declare class SlideToggle extends BxCheckedControl {
1165
+ static ɵfac: i0.ɵɵFactoryDeclaration<SlideToggle, never>;
1166
+ static ɵcmp: i0.ɵɵComponentDeclaration<SlideToggle, "bx-slide-toggle", never, {}, {}, never, ["*", "bx-error", "bx-hint"], true, never>;
325
1167
  }
326
1168
  /** Glass styling for a native range, including reactive forms and programmatic values. */
327
1169
  export declare class SliderDirective {
328
1170
  private readonly element;
329
1171
  private readonly theme;
1172
+ readonly discrete: import("@angular/core").InputSignal<boolean>;
1173
+ readonly displayWith: import("@angular/core").InputSignal<(value: number) => string>;
1174
+ readonly showTickMarks: import("@angular/core").InputSignal<boolean>;
330
1175
  private shell?;
1176
+ private valueLabel?;
1177
+ private tickList?;
331
1178
  private thumb?;
332
1179
  constructor();
333
1180
  protected sync(): void;
334
1181
  static ɵfac: i0.ɵɵFactoryDeclaration<SliderDirective, never>;
335
- static ɵdir: i0.ɵɵDirectiveDeclaration<SliderDirective, "input[type=range][bxSlider]", never, {}, {}, never, never, true, never>;
336
- }
1182
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SliderDirective, "input[type=range][bxSlider]", never, {
1183
+ "discrete": {
1184
+ "alias": "discrete";
1185
+ "required": false;
1186
+ "isSignal": true;
1187
+ };
1188
+ "displayWith": {
1189
+ "alias": "displayWith";
1190
+ "required": false;
1191
+ "isSignal": true;
1192
+ };
1193
+ "showTickMarks": {
1194
+ "alias": "showTickMarks";
1195
+ "required": false;
1196
+ "isSignal": true;
1197
+ };
1198
+ }, {}, never, never, true, never>;
1199
+ }
1200
+ export declare class RadioGroup<T> extends BxValueControl<T> {
1201
+ readonly groupName: import("@angular/core").Signal<string>;
1202
+ focus(options?: FocusOptions): void;
1203
+ select(value: T): void;
1204
+ markTouched(): void;
1205
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioGroup<any>, never>;
1206
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioGroup<any>, "bx-radio-group", never, {}, {}, never, ["*", "bx-error", "bx-hint"], true, never>;
1207
+ }
1208
+ /** Marks a custom projected action icon for replacement while the button is loading. */
1209
+ export declare class ButtonIconDirective {
1210
+ readonly element: ElementRef<HTMLElement>;
1211
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonIconDirective, never>;
1212
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ButtonIconDirective, "[bxButtonIcon]", never, {}, {}, never, never, true, never>;
1213
+ }
1214
+ /** Append to a scroll container, not a native table/list element with restricted children. */
1215
+ export declare class LoadMoreDirective {
1216
+ private readonly host;
1217
+ private readonly views;
1218
+ private readonly zone;
1219
+ private readonly destroy;
1220
+ private readonly overflowing;
1221
+ private readonly requested;
1222
+ private readonly retrying;
1223
+ private readonly keepVisible;
1224
+ readonly loadMoreHasMore: import("@angular/core").InputSignal<boolean>;
1225
+ readonly loadMoreLoading: import("@angular/core").InputSignal<boolean>;
1226
+ readonly loadMoreSuppressed: import("@angular/core").InputSignal<boolean>;
1227
+ readonly loadMoreDisabled: import("@angular/core").InputSignal<boolean>;
1228
+ readonly loadMoreError: import("@angular/core").InputSignal<ResolvableText | undefined>;
1229
+ readonly loadMoreConfig: import("@angular/core").InputSignal<ILoadMoreConfig>;
1230
+ readonly loadMoreTemplate: import("@angular/core").InputSignal<TemplateRef<ILoadMoreContext> | undefined>;
1231
+ readonly loadMoreRevision: import("@angular/core").InputSignal<unknown>;
1232
+ readonly loadMore: import("@angular/core").OutputEmitterRef<ILoadMoreRequest>;
1233
+ readonly actionVisible: import("@angular/core").Signal<boolean>;
1234
+ private footer?;
1235
+ private wasLoading;
1236
+ private previousRevision;
1237
+ constructor();
1238
+ /** Release an outstanding request when the application completes without a loading-state cycle. */
1239
+ complete(): void;
1240
+ /** The shared request guard is also available to custom footer templates. */
1241
+ request(source?: LoadMoreSource): void;
1242
+ private mount;
1243
+ private measure;
1244
+ private updateFooter;
1245
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoadMoreDirective, never>;
1246
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LoadMoreDirective, "[bxLoadMore]", ["bxLoadMore"], {
1247
+ "loadMoreHasMore": {
1248
+ "alias": "loadMoreHasMore";
1249
+ "required": false;
1250
+ "isSignal": true;
1251
+ };
1252
+ "loadMoreLoading": {
1253
+ "alias": "loadMoreLoading";
1254
+ "required": false;
1255
+ "isSignal": true;
1256
+ };
1257
+ "loadMoreSuppressed": {
1258
+ "alias": "loadMoreSuppressed";
1259
+ "required": false;
1260
+ "isSignal": true;
1261
+ };
1262
+ "loadMoreDisabled": {
1263
+ "alias": "loadMoreDisabled";
1264
+ "required": false;
1265
+ "isSignal": true;
1266
+ };
1267
+ "loadMoreError": {
1268
+ "alias": "loadMoreError";
1269
+ "required": false;
1270
+ "isSignal": true;
1271
+ };
1272
+ "loadMoreConfig": {
1273
+ "alias": "loadMoreConfig";
1274
+ "required": false;
1275
+ "isSignal": true;
1276
+ };
1277
+ "loadMoreTemplate": {
1278
+ "alias": "loadMoreTemplate";
1279
+ "required": false;
1280
+ "isSignal": true;
1281
+ };
1282
+ "loadMoreRevision": {
1283
+ "alias": "loadMoreRevision";
1284
+ "required": false;
1285
+ "isSignal": true;
1286
+ };
1287
+ }, {
1288
+ "loadMore": "loadMore";
1289
+ }, never, never, true, never>;
1290
+ }
1291
+ export declare class PrefixDirective {
1292
+ static ɵfac: i0.ɵɵFactoryDeclaration<PrefixDirective, never>;
1293
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PrefixDirective, "[bxPrefix]", never, {}, {}, never, never, true, never>;
1294
+ }
1295
+ export declare class SuffixDirective {
1296
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuffixDirective, never>;
1297
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SuffixDirective, "[bxSuffix]", never, {}, {}, never, never, true, never>;
1298
+ }
1299
+ /** Application-wide presentation defaults; instance inputs take precedence. */
1300
+ export interface IFormFieldDefaults {
1301
+ /** Error visibility policy. Defaults to touched or submitted. */
1302
+ errorPolicy: ErrorDisplayPolicy;
1303
+ /** Number of automatic messages to render. Defaults to first. */
1304
+ errorMode: ErrorDisplayMode;
1305
+ /** Default messages or translated resolvers keyed by validation kind. */
1306
+ errorMessages: ValidationMessages;
1307
+ /** Filled or outlined field container. Defaults to fill. */
1308
+ appearance: FormFieldAppearance;
1309
+ /** Floating label behavior. Defaults to auto. */
1310
+ floatLabel: FloatLabel;
1311
+ /** Whether required markers are hidden. Defaults to false. */
1312
+ hideRequiredMarker: boolean;
1313
+ /** Reserved supporting-text space. Defaults to fixed. */
1314
+ subscriptSizing: SubscriptSizing;
1315
+ /** Enables automatic tooltips for clipped labels and values. Defaults to true; explicit instance inputs take precedence. */
1316
+ tooltipOnTruncate?: boolean;
1317
+ }
1318
+ export declare class FormSettingsService {
1319
+ private readonly state;
1320
+ readonly settings: import("@angular/core").Signal<IFormFieldDefaults>;
1321
+ /** Updates only supplied defaults. Message overrides merge with existing messages. */
1322
+ update(options: Partial<IFormFieldDefaults>): void;
1323
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormSettingsService, never>;
1324
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1325
+ }
1326
+ export declare const BX_FORM_FIELD_CONTROL: InjectionToken<IFormFieldControl>;
1327
+ export type SelectAllChangeReason = 'toggle' | 'item-deselected' | 'scope-change' | 'reset';
1328
+ /** Describes select-all intent independently from the finite loaded selection. */
1329
+ export interface ISelectAllChange<T> {
1330
+ /** Whether future eligible pages in this scope should be automatically selected. */
1331
+ selected: boolean;
1332
+ /** Search/filter scope to which this intent applies. */
1333
+ scope: string;
1334
+ /** Loaded selected values; does not claim to enumerate the remote result set. */
1335
+ values: readonly T[];
1336
+ /** User toggle, individual deselection, scope change, or programmatic reset. */
1337
+ reason: SelectAllChangeReason;
1338
+ }
1339
+ export declare class MultiSelect<T> extends BxSelectBase<T[], T> {
1340
+ private readonly summaryOverflow;
1341
+ private readonly labelsAdapter;
1342
+ protected readonly resolvedSelectAllLabel: import("@angular/core").Signal<string>;
1343
+ protected readonly someSelected: import("@angular/core").Signal<boolean>;
1344
+ protected readonly usesSummary: import("@angular/core").Signal<boolean>;
1345
+ protected readonly displayedSelection: import("@angular/core").Signal<string>;
1346
+ protected readonly selectionTooltip: import("@angular/core").Signal<string>;
1347
+ readonly allSelectedText: import("@angular/core").InputSignal<ResolvableText | undefined>;
1348
+ readonly selectedCountText: import("@angular/core").InputSignal<ResolvableText>;
1349
+ readonly summaryThreshold: import("@angular/core").InputSignalWithTransform<number, string | number>;
1350
+ readonly showSelectAll: import("@angular/core").InputSignal<boolean>;
1351
+ readonly selectAllLabel: import("@angular/core").InputSignal<ResolvableText>;
1352
+ readonly selectionScope: import("@angular/core").InputSignal<string | undefined>;
1353
+ readonly selectAll: import("@angular/core").ModelSignal<boolean>;
1354
+ readonly selectionChange: import("@angular/core").OutputEmitterRef<ISelectionChange<T[]>>;
1355
+ readonly selectAllIntentChange: import("@angular/core").OutputEmitterRef<ISelectAllChange<T>>;
1356
+ private scope;
1357
+ constructor();
1358
+ isSelected(value: T): boolean;
1359
+ toggleSelectAll(): void;
1360
+ reset(): void;
1361
+ protected selectOption(option: IBxSelectOption<T>): void;
1362
+ private emitIntent;
1363
+ static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelect<any>, never>;
1364
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelect<any>, "bx-multi-select", never, {
1365
+ "allSelectedText": {
1366
+ "alias": "allSelectedText";
1367
+ "required": false;
1368
+ "isSignal": true;
1369
+ };
1370
+ "selectedCountText": {
1371
+ "alias": "selectedCountText";
1372
+ "required": false;
1373
+ "isSignal": true;
1374
+ };
1375
+ "summaryThreshold": {
1376
+ "alias": "summaryThreshold";
1377
+ "required": false;
1378
+ "isSignal": true;
1379
+ };
1380
+ "showSelectAll": {
1381
+ "alias": "showSelectAll";
1382
+ "required": false;
1383
+ "isSignal": true;
1384
+ };
1385
+ "selectAllLabel": {
1386
+ "alias": "selectAllLabel";
1387
+ "required": false;
1388
+ "isSignal": true;
1389
+ };
1390
+ "selectionScope": {
1391
+ "alias": "selectionScope";
1392
+ "required": false;
1393
+ "isSignal": true;
1394
+ };
1395
+ "selectAll": {
1396
+ "alias": "selectAll";
1397
+ "required": false;
1398
+ "isSignal": true;
1399
+ };
1400
+ }, {
1401
+ "selectAll": "selectAllChange";
1402
+ "selectionChange": "selectionChange";
1403
+ "selectAllIntentChange": "selectAllIntentChange";
1404
+ }, never, ["[bxSuffix]", "bx-error", "bx-hint"], true, never>;
1405
+ }
1406
+ /** Connects a native input, textarea, or select to the Blocks field frame. */
1407
+ export declare class NativeControlDirective extends BxControlState {
1408
+ focus(options?: FocusOptions): void;
1409
+ protected onReadonlyInteraction(event: Event): void;
1410
+ static ɵfac: i0.ɵɵFactoryDeclaration<NativeControlDirective, never>;
1411
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NativeControlDirective, "input[bxInput], textarea[bxInput], select[bxInput]", ["bxInput"], {}, {}, never, never, true, never>;
1412
+ }
1413
+ export declare class RangeSlider extends BxValueControl<[number, number]> {
1414
+ private readonly labelsAdapter;
1415
+ protected readonly start: import("@angular/core").Signal<number>;
1416
+ protected readonly end: import("@angular/core").Signal<number>;
1417
+ protected readonly startPercent: import("@angular/core").Signal<number>;
1418
+ protected readonly endPercent: import("@angular/core").Signal<number>;
1419
+ protected readonly resolvedStartLabel: import("@angular/core").Signal<string>;
1420
+ protected readonly resolvedEndLabel: import("@angular/core").Signal<string>;
1421
+ protected readonly ticks: import("@angular/core").Signal<number[]>;
1422
+ readonly min: import("@angular/core").InputSignal<number>;
1423
+ readonly max: import("@angular/core").InputSignal<number>;
1424
+ readonly step: import("@angular/core").InputSignal<number>;
1425
+ readonly discrete: import("@angular/core").InputSignal<boolean>;
1426
+ readonly showTickMarks: import("@angular/core").InputSignal<boolean>;
1427
+ readonly displayWith: import("@angular/core").InputSignal<(value: number) => string>;
1428
+ readonly startLabel: import("@angular/core").InputSignal<ResolvableText>;
1429
+ readonly endLabel: import("@angular/core").InputSignal<ResolvableText>;
1430
+ protected onRangeInput(event: Event, thumb: 'start' | 'end'): void;
1431
+ protected onBlur(): void;
1432
+ static ɵfac: i0.ɵɵFactoryDeclaration<RangeSlider, never>;
1433
+ static ɵcmp: i0.ɵɵComponentDeclaration<RangeSlider, "bx-range-slider", never, {
1434
+ "min": {
1435
+ "alias": "min";
1436
+ "required": false;
1437
+ "isSignal": true;
1438
+ };
1439
+ "max": {
1440
+ "alias": "max";
1441
+ "required": false;
1442
+ "isSignal": true;
1443
+ };
1444
+ "step": {
1445
+ "alias": "step";
1446
+ "required": false;
1447
+ "isSignal": true;
1448
+ };
1449
+ "discrete": {
1450
+ "alias": "discrete";
1451
+ "required": false;
1452
+ "isSignal": true;
1453
+ };
1454
+ "showTickMarks": {
1455
+ "alias": "showTickMarks";
1456
+ "required": false;
1457
+ "isSignal": true;
1458
+ };
1459
+ "displayWith": {
1460
+ "alias": "displayWith";
1461
+ "required": false;
1462
+ "isSignal": true;
1463
+ };
1464
+ "startLabel": {
1465
+ "alias": "startLabel";
1466
+ "required": false;
1467
+ "isSignal": true;
1468
+ };
1469
+ "endLabel": {
1470
+ "alias": "endLabel";
1471
+ "required": false;
1472
+ "isSignal": true;
1473
+ };
1474
+ }, {}, never, ["bx-error", "bx-hint"], true, never>;
1475
+ }
1476
+ export type { IBxSelectOption as BxSelectOption };