@underlayerdev/ui 0.6.6 → 0.8.0
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.
- package/fesm2022/underlayerdev-ui.mjs +625 -63
- package/fesm2022/underlayerdev-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/foundations.css +11 -30
- package/types/underlayerdev-ui.d.ts +260 -43
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { AfterViewInit, OnDestroy, ElementRef, PipeTransform } from '@angular/core';
|
|
2
|
+
import { AfterViewInit, OnDestroy, ElementRef, TemplateRef, PipeTransform } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/cdk/accordion';
|
|
4
4
|
import { CdkAccordionItem } from '@angular/cdk/accordion';
|
|
5
5
|
import { FormValueControl, WithOptionalFieldTree, ValidationError, FormCheckboxControl } from '@angular/forms/signals';
|
|
6
6
|
import Splide, { Options } from '@splidejs/splide';
|
|
7
7
|
import { CurrencyPipe } from '@angular/common';
|
|
8
|
+
import * as _underlayerdev_ui from '@underlayerdev/ui';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* AccordionItemComponent is a standalone Angular component that extends CdkAccordionItem.
|
|
@@ -77,7 +78,7 @@ declare class AreaCodeComponent {
|
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
type UiSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
80
|
-
type UiCheckboxSize = 'default' | 'sm';
|
|
81
|
+
type UiCheckboxSize = 'default' | 'sm' | 'lg';
|
|
81
82
|
type UiTheme = 'fill-purple' | 'fill-white' | 'fill-yellow' | 'fill-red' | 'transparent-purple' | 'transparent-white' | 'transparent-red' | 'transparent-black' | 'ghost-purple' | 'ghost-white' | 'ghost-red' | 'ghost-green' | 'outline-white' | 'outline-purple' | 'outline-red' | 'outline-green';
|
|
82
83
|
|
|
83
84
|
type IconSize$1 = '5' | '6' | '7' | '8';
|
|
@@ -246,6 +247,7 @@ declare class CalendarComponent implements FormValueControl<Date | null> {
|
|
|
246
247
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
247
248
|
readonly readOnly: _angular_core.InputSignal<boolean>;
|
|
248
249
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
250
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
249
251
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
250
252
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
251
253
|
readonly helperText: _angular_core.InputSignal<string | null>;
|
|
@@ -301,7 +303,7 @@ declare class CalendarComponent implements FormValueControl<Date | null> {
|
|
|
301
303
|
onMenuClosed(): void;
|
|
302
304
|
focus(): void;
|
|
303
305
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarComponent, never>;
|
|
304
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent, "ul-calendar", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "showCalendarIcon": { "alias": "showCalendarIcon"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
306
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent, "ul-calendar", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "showCalendarIcon": { "alias": "showCalendarIcon"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
305
307
|
}
|
|
306
308
|
|
|
307
309
|
type CardDirection = 'horizontal' | 'vertical';
|
|
@@ -359,18 +361,19 @@ type CheckboxZoneType = 'none' | 'accessible' | 'visible' | 'checked-visible';
|
|
|
359
361
|
* Uses shared form field label and helper for alignment with input, textarea, radio-group.
|
|
360
362
|
*/
|
|
361
363
|
declare class CheckboxComponent implements FormCheckboxControl {
|
|
362
|
-
checked: _angular_core.ModelSignal<boolean>;
|
|
363
|
-
disabled: _angular_core.ModelSignal<boolean>;
|
|
364
|
-
indeterminate: _angular_core.ModelSignal<boolean>;
|
|
365
|
-
zone: _angular_core.InputSignal<CheckboxZoneType>;
|
|
366
|
-
size: _angular_core.InputSignal<UiCheckboxSize>;
|
|
367
|
-
label: _angular_core.InputSignal<string | null>;
|
|
368
|
-
helperText: _angular_core.InputSignal<string | null>;
|
|
369
|
-
required: _angular_core.InputSignal<boolean>;
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
364
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
365
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
366
|
+
readonly indeterminate: _angular_core.ModelSignal<boolean>;
|
|
367
|
+
readonly zone: _angular_core.InputSignal<CheckboxZoneType>;
|
|
368
|
+
readonly size: _angular_core.InputSignal<UiCheckboxSize>;
|
|
369
|
+
readonly label: _angular_core.InputSignal<string | null>;
|
|
370
|
+
readonly helperText: _angular_core.InputSignal<string | null>;
|
|
371
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
372
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
373
|
+
readonly error: _angular_core.InputSignal<boolean>;
|
|
374
|
+
readonly errorText: _angular_core.InputSignal<string | null>;
|
|
375
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
376
|
+
readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
374
377
|
protected readonly ids: {
|
|
375
378
|
controlId: string;
|
|
376
379
|
helperId: string;
|
|
@@ -381,7 +384,7 @@ declare class CheckboxComponent implements FormCheckboxControl {
|
|
|
381
384
|
protected readonly describedBy: _angular_core.Signal<string | undefined>;
|
|
382
385
|
onChange(event: Event): void;
|
|
383
386
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
384
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ul-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "zone": { "alias": "zone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "indeterminate": "indeterminateChange"; }, never, ["*"], true, never>;
|
|
387
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ul-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "zone": { "alias": "zone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "indeterminate": "indeterminateChange"; }, never, ["*"], true, never>;
|
|
385
388
|
}
|
|
386
389
|
|
|
387
390
|
type CollapseVariant = 'text' | 'icon';
|
|
@@ -517,21 +520,41 @@ declare class ListItemComponent {
|
|
|
517
520
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListItemComponent, "ul-list-item", never, { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hideFocusOutline": { "alias": "hideFocusOutline"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, ["checkbox"], ["[ul-list-item-before-label]", "[ul-list-item-label]", "[ul-list-item-after-label]"], true, never>;
|
|
518
521
|
}
|
|
519
522
|
|
|
520
|
-
/**
|
|
521
|
-
|
|
522
|
-
*/
|
|
523
|
-
type DropdownItem = {
|
|
524
|
-
/** Display text for the dropdown item */
|
|
523
|
+
/** A single row in a `ul-menu` or `ul-dropdown` menu panel. */
|
|
524
|
+
type MenuItem = {
|
|
525
|
+
/** Display text for the item. */
|
|
525
526
|
label: string;
|
|
526
|
-
/** Optional value associated with the item */
|
|
527
|
+
/** Optional value associated with the item. */
|
|
527
528
|
value?: string;
|
|
528
|
-
/** Icons to display on the left side of the item */
|
|
529
|
+
/** Icons to display on the left side of the item. */
|
|
529
530
|
leftIcons?: IconName[];
|
|
530
|
-
/** Icons to display on the right side of the item */
|
|
531
|
+
/** Icons to display on the right side of the item. */
|
|
531
532
|
rightIcons?: IconName[];
|
|
532
|
-
/** Whether the item is disabled and cannot be
|
|
533
|
+
/** Whether the item is disabled and cannot be triggered. */
|
|
533
534
|
disabled?: boolean;
|
|
534
535
|
};
|
|
536
|
+
/**
|
|
537
|
+
* Renders `items` as `ul-list-item` + `cdkMenuItem` rows inside an
|
|
538
|
+
* already-open `cdkMenu` panel. Shared by `ul-dropdown` (which passes
|
|
539
|
+
* `selectedIndex` so the current choice renders with a checkmark) and
|
|
540
|
+
* `ul-menu` (which leaves `selectedIndex` as `null` — every item there is a
|
|
541
|
+
* one-off action, never a persisted "current selection").
|
|
542
|
+
*/
|
|
543
|
+
declare class MenuItemsComponent {
|
|
544
|
+
items: _angular_core.InputSignal<MenuItem[]>;
|
|
545
|
+
theme: _angular_core.InputSignal<ListItemTheme>;
|
|
546
|
+
/**
|
|
547
|
+
* Index of the item to render as checked/selected.
|
|
548
|
+
* @default null - no item is ever shown as checked (the action-menu case).
|
|
549
|
+
*/
|
|
550
|
+
selectedIndex: _angular_core.InputSignal<number | null>;
|
|
551
|
+
itemTriggered: _angular_core.OutputEmitterRef<number>;
|
|
552
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItemsComponent, never>;
|
|
553
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItemsComponent, "ul-menu-items", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, { "itemTriggered": "itemTriggered"; }, never, never, true, never>;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
/** @deprecated Import from `../menu/menu-items` instead — kept here so existing `DropdownItem` imports keep working. */
|
|
557
|
+
type DropdownItem = MenuItem;
|
|
535
558
|
/**
|
|
536
559
|
* A customizable dropdown component that displays a list of selectable items.
|
|
537
560
|
*
|
|
@@ -568,7 +591,7 @@ declare class DropdownComponent {
|
|
|
568
591
|
* Array of items to display in the dropdown menu.
|
|
569
592
|
* @default []
|
|
570
593
|
*/
|
|
571
|
-
items: _angular_core.InputSignal<
|
|
594
|
+
items: _angular_core.InputSignal<MenuItem[]>;
|
|
572
595
|
/**
|
|
573
596
|
* Whether the dropdown is disabled.
|
|
574
597
|
* @default false
|
|
@@ -577,7 +600,7 @@ declare class DropdownComponent {
|
|
|
577
600
|
/**
|
|
578
601
|
* Overrides the icons of the selected item in the trigger button.
|
|
579
602
|
* Can override leftIcons, rightIcons, or both.
|
|
580
|
-
* @default {}
|
|
603
|
+
* @default { rightIcons: ['chevron_down'] }
|
|
581
604
|
*
|
|
582
605
|
* @example
|
|
583
606
|
* ```typescript
|
|
@@ -586,7 +609,7 @@ declare class DropdownComponent {
|
|
|
586
609
|
* }
|
|
587
610
|
* ```
|
|
588
611
|
*/
|
|
589
|
-
menuTriggerIcons: _angular_core.InputSignal<Pick<
|
|
612
|
+
menuTriggerIcons: _angular_core.InputSignal<Pick<MenuItem, "leftIcons" | "rightIcons"> | undefined>;
|
|
590
613
|
/**
|
|
591
614
|
* Shows only a single icon in the trigger button, hiding the selected item's label and icons.
|
|
592
615
|
* Commonly used with 'more_options' for action menus.
|
|
@@ -615,11 +638,8 @@ declare class DropdownComponent {
|
|
|
615
638
|
selectedItem: _angular_core.Signal<{
|
|
616
639
|
leftIcons?: IconName[];
|
|
617
640
|
rightIcons?: IconName[];
|
|
618
|
-
/** Display text for the dropdown item */
|
|
619
641
|
label: string;
|
|
620
|
-
/** Optional value associated with the item */
|
|
621
642
|
value?: string;
|
|
622
|
-
/** Whether the item is disabled and cannot be selected */
|
|
623
643
|
disabled?: boolean;
|
|
624
644
|
}>;
|
|
625
645
|
/**
|
|
@@ -638,18 +658,24 @@ declare class DropdownComponent {
|
|
|
638
658
|
/**
|
|
639
659
|
* Emitted when a new item is selected from the dropdown.
|
|
640
660
|
*/
|
|
641
|
-
selectedItemChange: _angular_core.OutputEmitterRef<
|
|
661
|
+
selectedItemChange: _angular_core.OutputEmitterRef<MenuItem>;
|
|
642
662
|
/**
|
|
643
663
|
* Emitted when the menu closes, whether or not a selection was made —
|
|
644
664
|
* the closest thing this component has to a "blur" for form controls
|
|
645
665
|
* built on top of it (see ul-select's touch output).
|
|
646
666
|
*/
|
|
647
667
|
closed: _angular_core.OutputEmitterRef<void>;
|
|
668
|
+
private readonly trigger;
|
|
648
669
|
/**
|
|
649
670
|
* Handles the selection of a dropdown item.
|
|
650
671
|
* @param index - The index of the selected item
|
|
651
672
|
*/
|
|
652
673
|
handleItemTriggered(index: number): void;
|
|
674
|
+
/**
|
|
675
|
+
* Closes the panel. CDK auto-closes on a `cdkMenuItem` trigger already —
|
|
676
|
+
* this is for the mobile backdrop tap, which isn't one.
|
|
677
|
+
*/
|
|
678
|
+
closeMenu(): void;
|
|
653
679
|
onMenuOpened(): void;
|
|
654
680
|
onMenuClosed(): void;
|
|
655
681
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
|
|
@@ -672,6 +698,7 @@ declare class FileInputComponent implements FormValueControl<FileList | null> {
|
|
|
672
698
|
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
673
699
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
674
700
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
701
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
675
702
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
676
703
|
readonly helperText: _angular_core.InputSignal<string | null>;
|
|
677
704
|
readonly errorText: _angular_core.InputSignal<string | null>;
|
|
@@ -708,7 +735,7 @@ declare class FileInputComponent implements FormValueControl<FileList | null> {
|
|
|
708
735
|
triggerClick(): void;
|
|
709
736
|
focus(): void;
|
|
710
737
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileInputComponent, never>;
|
|
711
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileInputComponent, "ul-file-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "placeholderText": { "alias": "placeholderText"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; "inputBlur": "inputBlur"; "inputFocus": "inputFocus"; }, never, ["[ul-file-input-left-elements]", "[ul-file-input-right-elements]"], true, never>;
|
|
738
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileInputComponent, "ul-file-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "placeholderText": { "alias": "placeholderText"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; "inputBlur": "inputBlur"; "inputFocus": "inputFocus"; }, never, ["[ul-file-input-left-elements]", "[ul-file-input-right-elements]"], true, never>;
|
|
712
739
|
}
|
|
713
740
|
|
|
714
741
|
declare class FooterComponent {
|
|
@@ -864,6 +891,7 @@ declare class InputComponent implements FormValueControl<string> {
|
|
|
864
891
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
865
892
|
readonly readOnly: _angular_core.InputSignal<boolean>;
|
|
866
893
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
894
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
867
895
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
868
896
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
869
897
|
readonly helperText: _angular_core.InputSignal<string | null>;
|
|
@@ -924,7 +952,119 @@ declare class InputComponent implements FormValueControl<string> {
|
|
|
924
952
|
focus(): void;
|
|
925
953
|
select(): void;
|
|
926
954
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
927
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ul-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "showPasswordLabel": { "alias": "showPasswordLabel"; "required": false; "isSignal": true; }; "hidePasswordLabel": { "alias": "hidePasswordLabel"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; "inputBlur": "inputBlur"; "inputFocus": "inputFocus"; "inputEnter": "inputEnter"; }, never, ["[ul-input-left-elements]", "[ul-input-right-elements]"], true, never>;
|
|
955
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ul-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "showPasswordLabel": { "alias": "showPasswordLabel"; "required": false; "isSignal": true; }; "hidePasswordLabel": { "alias": "hidePasswordLabel"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; "inputBlur": "inputBlur"; "inputFocus": "inputFocus"; "inputEnter": "inputEnter"; }, never, ["[ul-input-left-elements]", "[ul-input-right-elements]"], true, never>;
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
/**
|
|
959
|
+
* Emits `ulLongPress` when the pointer (mouse, touch, or pen) is held down
|
|
960
|
+
* on the host element for `ulLongPressDuration` without moving more than a
|
|
961
|
+
* few pixels. Also suppresses the `click` that follows the triggering
|
|
962
|
+
* press's release, so long-press-to-select gestures don't also activate a
|
|
963
|
+
* link/button underneath.
|
|
964
|
+
*/
|
|
965
|
+
declare class LongPressDirective {
|
|
966
|
+
ulLongPressDuration: _angular_core.InputSignal<number>;
|
|
967
|
+
ulLongPress: _angular_core.OutputEmitterRef<void>;
|
|
968
|
+
private timeoutId;
|
|
969
|
+
private startX;
|
|
970
|
+
private startY;
|
|
971
|
+
private triggered;
|
|
972
|
+
handlePointerDown(event: PointerEvent): void;
|
|
973
|
+
handlePointerMove(event: PointerEvent): void;
|
|
974
|
+
handlePointerEnd(): void;
|
|
975
|
+
handleClick(event: MouseEvent): void;
|
|
976
|
+
private cancelTimer;
|
|
977
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LongPressDirective, never>;
|
|
978
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LongPressDirective, "[ulLongPress]", never, { "ulLongPressDuration": { "alias": "ulLongPressDuration"; "required": false; "isSignal": true; }; }, { "ulLongPress": "ulLongPress"; }, never, never, true, never>;
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
/**
|
|
982
|
+
* A trigger + panel for an action menu (edit, delete, share, ...). Unlike
|
|
983
|
+
* `ul-dropdown`, there is no notion of a "currently selected" item — every
|
|
984
|
+
* item is a one-off action, so nothing is ever shown as checked.
|
|
985
|
+
*
|
|
986
|
+
* Pass `items` for the common label+icon action-list case, and/or project
|
|
987
|
+
* custom content (e.g. a `ul-list-item cdkMenuItem routerLink="...">` for a
|
|
988
|
+
* navigation item) — both can be combined, or you can skip `items`
|
|
989
|
+
* entirely and compose the panel purely from projected content.
|
|
990
|
+
*
|
|
991
|
+
* Below the 'md' breakpoint the panel renders as a bottom sheet (full
|
|
992
|
+
* width, pinned to the viewport, tap-outside-to-dismiss) instead of a
|
|
993
|
+
* small anchored popover — the same behavior `ul-dropdown` gets.
|
|
994
|
+
*
|
|
995
|
+
* @example
|
|
996
|
+
* ```html
|
|
997
|
+
* <ul-menu
|
|
998
|
+
* [items]="[{ label: 'Edit', value: 'edit', leftIcons: ['edit'] },
|
|
999
|
+
* { label: 'Delete', value: 'delete', leftIcons: ['trash'] }]"
|
|
1000
|
+
* triggerIconOnly="more_options"
|
|
1001
|
+
* (itemSelected)="onAction($event)">
|
|
1002
|
+
* </ul-menu>
|
|
1003
|
+
* ```
|
|
1004
|
+
*/
|
|
1005
|
+
declare class MenuComponent {
|
|
1006
|
+
/** Visual theme, passed through to the trigger and to any items rendered via `items`. */
|
|
1007
|
+
theme: _angular_core.InputSignal<ListItemTheme>;
|
|
1008
|
+
/** Simple label+icon action items. Optional — content projection covers everything else. */
|
|
1009
|
+
items: _angular_core.InputSignal<MenuItem[]>;
|
|
1010
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
1011
|
+
/**
|
|
1012
|
+
* Shows only a single icon in the trigger, hiding any label. Commonly
|
|
1013
|
+
* `'more_options'` for a row-level "⋮" action menu.
|
|
1014
|
+
*/
|
|
1015
|
+
triggerIconOnly: _angular_core.InputSignal<string | undefined>;
|
|
1016
|
+
/** Accessible label for the icon-only trigger. */
|
|
1017
|
+
iconOnlyLabel: _angular_core.InputSignal<string>;
|
|
1018
|
+
/** Static label for a non-icon-only trigger (there is no "current selection" to show instead). */
|
|
1019
|
+
triggerLabel: _angular_core.InputSignal<string>;
|
|
1020
|
+
triggerLeftIcons: _angular_core.InputSignal<string[]>;
|
|
1021
|
+
triggerRightIcons: _angular_core.InputSignal<string[]>;
|
|
1022
|
+
/** Emitted when an `items`-provided entry is triggered. */
|
|
1023
|
+
itemSelected: _angular_core.OutputEmitterRef<MenuItem>;
|
|
1024
|
+
/** Emitted when the menu closes, whether or not a selection was made. */
|
|
1025
|
+
closed: _angular_core.OutputEmitterRef<void>;
|
|
1026
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
1027
|
+
readonly menuId: string;
|
|
1028
|
+
private readonly trigger;
|
|
1029
|
+
handleItemTriggered(index: number): void;
|
|
1030
|
+
/**
|
|
1031
|
+
* Closes the panel. CDK auto-closes on a `cdkMenuItem` trigger already —
|
|
1032
|
+
* this is for the mobile backdrop tap, which isn't one.
|
|
1033
|
+
*/
|
|
1034
|
+
closeMenu(): void;
|
|
1035
|
+
onMenuOpened(): void;
|
|
1036
|
+
onMenuClosed(): void;
|
|
1037
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
|
|
1038
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "ul-menu", never, { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "triggerIconOnly": { "alias": "triggerIconOnly"; "required": false; "isSignal": true; }; "iconOnlyLabel": { "alias": "iconOnlyLabel"; "required": false; "isSignal": true; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; "isSignal": true; }; "triggerLeftIcons": { "alias": "triggerLeftIcons"; "required": false; "isSignal": true; }; "triggerRightIcons": { "alias": "triggerRightIcons"; "required": false; "isSignal": true; }; }, { "itemSelected": "itemSelected"; "closed": "closed"; }, never, ["*"], true, never>;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
/**
|
|
1042
|
+
* The trigger button shared by `ul-dropdown` and `ul-menu`: either an
|
|
1043
|
+
* icon-only button (`iconOnly`, e.g. a "more options" `⋮`) or a
|
|
1044
|
+
* `ul-list-item`-styled button showing a label with optional icons on
|
|
1045
|
+
* either side. Wires `cdkMenuTriggerFor` plus the ARIA attributes a menu
|
|
1046
|
+
* trigger needs, and exposes `close()` so the panel it opens can be
|
|
1047
|
+
* dismissed programmatically (e.g. a tap on a mobile bottom-sheet backdrop,
|
|
1048
|
+
* which CDK's own outside-click handling won't catch since the backdrop
|
|
1049
|
+
* lives inside the same overlay pane).
|
|
1050
|
+
*/
|
|
1051
|
+
declare class MenuTriggerComponent {
|
|
1052
|
+
theme: _angular_core.InputSignal<ListItemTheme>;
|
|
1053
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
1054
|
+
iconOnly: _angular_core.InputSignal<string | undefined>;
|
|
1055
|
+
iconOnlyLabel: _angular_core.InputSignal<string>;
|
|
1056
|
+
label: _angular_core.InputSignal<string>;
|
|
1057
|
+
leftIcons: _angular_core.InputSignal<string[]>;
|
|
1058
|
+
rightIcons: _angular_core.InputSignal<string[]>;
|
|
1059
|
+
menuTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
1060
|
+
menuId: _angular_core.InputSignal<string>;
|
|
1061
|
+
isOpen: _angular_core.InputSignal<boolean>;
|
|
1062
|
+
opened: _angular_core.OutputEmitterRef<void>;
|
|
1063
|
+
closed: _angular_core.OutputEmitterRef<void>;
|
|
1064
|
+
private readonly trigger;
|
|
1065
|
+
close(): void;
|
|
1066
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTriggerComponent, never>;
|
|
1067
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuTriggerComponent, "ul-menu-trigger", never, { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "iconOnlyLabel": { "alias": "iconOnlyLabel"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "leftIcons": { "alias": "leftIcons"; "required": false; "isSignal": true; }; "rightIcons": { "alias": "rightIcons"; "required": false; "isSignal": true; }; "menuTemplate": { "alias": "menuTemplate"; "required": true; "isSignal": true; }; "menuId": { "alias": "menuId"; "required": true; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
928
1068
|
}
|
|
929
1069
|
|
|
930
1070
|
type ModalVariant = 'default' | 'success' | 'error' | 'custom' | 'bottom-sheet' | 'confirmation';
|
|
@@ -1031,7 +1171,7 @@ declare class NavbarComponent {
|
|
|
1031
1171
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarComponent, "ul-navbar", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "logoHref": { "alias": "logoHref"; "required": false; "isSignal": true; }; "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "logoAlt": { "alias": "logoAlt"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "avatarInitials": { "alias": "avatarInitials"; "required": false; "isSignal": true; }; "avatarAlt": { "alias": "avatarAlt"; "required": false; "isSignal": true; }; "sidebarOpen": { "alias": "sidebarOpen"; "required": false; "isSignal": true; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; "isSignal": true; }; "searchCollapsible": { "alias": "searchCollapsible"; "required": false; "isSignal": true; }; }, { "sidebarToggle": "sidebarToggle"; }, ["logoSlot", "searchSlot", "avatarSlot", "appNameSlot"], ["[ul-navbar-logo]", "[ul-navbar-app-name]", "[ul-navbar-search]", "[ul-navbar-avatar]"], true, never>;
|
|
1032
1172
|
}
|
|
1033
1173
|
|
|
1034
|
-
type PillSize = 'md' | 'lg';
|
|
1174
|
+
type PillSize = 'sm' | 'md' | 'lg';
|
|
1035
1175
|
type PillVariant = 'interactive' | 'interactive-rounded' | 'read-only' | 'dismissible' | 'selectable';
|
|
1036
1176
|
type PillTheme = 'fill-white' | 'fill-black' | 'fill-purple' | 'fill-red' | 'fill-green' | 'transparent-white' | 'transparent-purple' | 'transparent-red' | 'transparent-green' | 'stroke-white' | 'outline-white' | 'outline-purple' | 'outline-red' | 'outline-green';
|
|
1037
1177
|
declare class PillComponent {
|
|
@@ -1178,6 +1318,7 @@ declare class RadioGroupComponent implements FormValueControl<string | null> {
|
|
|
1178
1318
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
1179
1319
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1180
1320
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1321
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
1181
1322
|
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1182
1323
|
readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
1183
1324
|
readonly value: _angular_core.ModelSignal<string | null>;
|
|
@@ -1189,7 +1330,7 @@ declare class RadioGroupComponent implements FormValueControl<string | null> {
|
|
|
1189
1330
|
protected readonly hasError: _angular_core.Signal<boolean>;
|
|
1190
1331
|
protected readonly describedBy: _angular_core.Signal<string | undefined>;
|
|
1191
1332
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
|
|
1192
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "ul-radio-group", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
1333
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "ul-radio-group", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
1193
1334
|
}
|
|
1194
1335
|
|
|
1195
1336
|
type RadialSize = 96 | 64 | 48 | 32 | 24 | 20 | 16;
|
|
@@ -1330,6 +1471,7 @@ declare class SearchSelectComponent implements FormValueControl<string | null> {
|
|
|
1330
1471
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
1331
1472
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1332
1473
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1474
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
1333
1475
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1334
1476
|
readonly options: _angular_core.InputSignal<SearchSelectOption[]>;
|
|
1335
1477
|
readonly minCharsToOpen: _angular_core.InputSignal<number>;
|
|
@@ -1364,7 +1506,7 @@ declare class SearchSelectComponent implements FormValueControl<string | null> {
|
|
|
1364
1506
|
selectOption(opt: SearchSelectOption): void;
|
|
1365
1507
|
private cancelBlurClose;
|
|
1366
1508
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchSelectComponent, never>;
|
|
1367
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchSelectComponent, "ul-search-select", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "minCharsToOpen": { "alias": "minCharsToOpen"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
1509
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchSelectComponent, "ul-search-select", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "minCharsToOpen": { "alias": "minCharsToOpen"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
1368
1510
|
}
|
|
1369
1511
|
|
|
1370
1512
|
interface SelectOption extends DropdownItem {
|
|
@@ -1387,6 +1529,7 @@ declare class SelectComponent implements FormValueControl<string | null> {
|
|
|
1387
1529
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
1388
1530
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1389
1531
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1532
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
1390
1533
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1391
1534
|
readonly options: _angular_core.InputSignal<SelectOption[]>;
|
|
1392
1535
|
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
@@ -1400,7 +1543,7 @@ declare class SelectComponent implements FormValueControl<string | null> {
|
|
|
1400
1543
|
helperId: string;
|
|
1401
1544
|
errorId: string;
|
|
1402
1545
|
};
|
|
1403
|
-
protected readonly items: _angular_core.Signal<
|
|
1546
|
+
protected readonly items: _angular_core.Signal<_underlayerdev_ui.MenuItem[]>;
|
|
1404
1547
|
protected readonly hasError: _angular_core.Signal<boolean>;
|
|
1405
1548
|
protected readonly describedBy: _angular_core.Signal<string | undefined>;
|
|
1406
1549
|
constructor();
|
|
@@ -1408,7 +1551,79 @@ declare class SelectComponent implements FormValueControl<string | null> {
|
|
|
1408
1551
|
protected onSelectedIndexChange(index: number): void;
|
|
1409
1552
|
protected onDropdownClosed(): void;
|
|
1410
1553
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
1411
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "ul-select", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, { "touch": "touch"; "value": "valueChange"; "selectedIndex": "selectedIndexChange"; }, never, never, true, never>;
|
|
1554
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "ul-select", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, { "touch": "touch"; "value": "valueChange"; "selectedIndex": "selectedIndexChange"; }, never, never, true, never>;
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
/**
|
|
1558
|
+
* Makes any row of projected content (thumbnail/media + label content, plus
|
|
1559
|
+
* anything else — a status pill, actions) selectable in a bulk-select list,
|
|
1560
|
+
* without the consumer having to hand-roll device detection or gesture
|
|
1561
|
+
* wiring themselves:
|
|
1562
|
+
*
|
|
1563
|
+
* - Fine-pointer/real-hover devices (desktop): a checkbox is always present
|
|
1564
|
+
* but invisible until the row is hovered, keyboard-focused, or already
|
|
1565
|
+
* checked — Gmail-list style.
|
|
1566
|
+
* - Coarse-pointer/no-hover devices (touch): long-press a row to select it;
|
|
1567
|
+
* every row then swaps its projected `[ul-selectable-row-media]` content
|
|
1568
|
+
* for a large checkbox — there's rarely room for both a thumbnail and an
|
|
1569
|
+
* easy-to-hit checkbox on a small card.
|
|
1570
|
+
*
|
|
1571
|
+
* This component only decides what to *show* and detects the long-press
|
|
1572
|
+
* gesture — it doesn't know about routing, so a consumer whose media/content
|
|
1573
|
+
* slots contain a routerLink-driven anchor still needs to null that binding
|
|
1574
|
+
* out itself while `selectionActive` (see ul-selectable-row's own usage in
|
|
1575
|
+
* undermarket's profile-listings for the pattern).
|
|
1576
|
+
*
|
|
1577
|
+
* @example
|
|
1578
|
+
* ```html
|
|
1579
|
+
* <ul-selectable-row
|
|
1580
|
+
* [selected]="isSelected(item.id)"
|
|
1581
|
+
* [selectionActive]="hasSelection()"
|
|
1582
|
+
* [ariaLabel]="'Select ' + item.title"
|
|
1583
|
+
* (selectedChange)="toggleSelect(item.id, $event)"
|
|
1584
|
+
* (longPress)="onRowLongPress(item.id)"
|
|
1585
|
+
* >
|
|
1586
|
+
* <img ul-selectable-row-media [src]="item.imageUrl" alt="" />
|
|
1587
|
+
* <div ul-selectable-row-content>{{ item.title }}</div>
|
|
1588
|
+
* <ul-pill>{{ item.status }}</ul-pill>
|
|
1589
|
+
* </ul-selectable-row>
|
|
1590
|
+
* ```
|
|
1591
|
+
*/
|
|
1592
|
+
declare class SelectableRowComponent {
|
|
1593
|
+
/** Whether this row is currently selected. */
|
|
1594
|
+
selected: _angular_core.InputSignal<boolean>;
|
|
1595
|
+
/**
|
|
1596
|
+
* Whether the list is in selection mode (something, anywhere, is
|
|
1597
|
+
* selected) — drives the compact-mode media-for-checkbox swap.
|
|
1598
|
+
*/
|
|
1599
|
+
selectionActive: _angular_core.InputSignal<boolean>;
|
|
1600
|
+
/** Accessible label for this row's checkbox(es). */
|
|
1601
|
+
ariaLabel: _angular_core.InputSignal<string | null>;
|
|
1602
|
+
selectedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
1603
|
+
longPress: _angular_core.OutputEmitterRef<void>;
|
|
1604
|
+
/**
|
|
1605
|
+
* Same distinction the hover-reveal CSS relies on — a width breakpoint
|
|
1606
|
+
* alone would misclassify a wide tablet in landscape, which has no real
|
|
1607
|
+
* hover, as "desktop".
|
|
1608
|
+
*/
|
|
1609
|
+
private readonly hasFinePointer;
|
|
1610
|
+
readonly isCompact: _angular_core.Signal<boolean>;
|
|
1611
|
+
private justLongPressed;
|
|
1612
|
+
constructor();
|
|
1613
|
+
/**
|
|
1614
|
+
* Once every row shows a checkbox in place of its media (compact +
|
|
1615
|
+
* selecting), the checkbox is the only thing with its own toggle handler
|
|
1616
|
+
* — everything else in the row (the content slot, empty space) does
|
|
1617
|
+
* nothing on tap, which defeats the point of showing a large, easy-to-hit
|
|
1618
|
+
* target. Toggling on any tap in that state fixes it; it's safe to do
|
|
1619
|
+
* unconditionally (regardless of what's projected) because a consumer
|
|
1620
|
+
* whose content contains a routerLink is already expected to have nulled
|
|
1621
|
+
* that binding out while `selectionActive` — so there's no competing
|
|
1622
|
+
* navigation to accidentally trigger.
|
|
1623
|
+
*/
|
|
1624
|
+
onHostClick(event: MouseEvent): void;
|
|
1625
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectableRowComponent, never>;
|
|
1626
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectableRowComponent, "ul-selectable-row", never, { "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "selectionActive": { "alias": "selectionActive"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "selectedChange": "selectedChange"; "longPress": "longPress"; }, never, ["[ul-selectable-row-media]", "[ul-selectable-row-content]", "*"], true, [{ directive: typeof LongPressDirective; inputs: {}; outputs: {}; }]>;
|
|
1412
1627
|
}
|
|
1413
1628
|
|
|
1414
1629
|
/**
|
|
@@ -1434,8 +1649,9 @@ declare class FormFieldLabelComponent {
|
|
|
1434
1649
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1435
1650
|
readonly for: _angular_core.InputSignal<string>;
|
|
1436
1651
|
readonly size: _angular_core.InputSignal<UiSize>;
|
|
1652
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
1437
1653
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldLabelComponent, never>;
|
|
1438
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldLabelComponent, "ul-form-field-label", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "for": { "alias": "for"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1654
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldLabelComponent, "ul-form-field-label", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "for": { "alias": "for"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1439
1655
|
}
|
|
1440
1656
|
|
|
1441
1657
|
/**
|
|
@@ -1553,6 +1769,7 @@ declare class TextareaComponent implements FormValueControl<string> {
|
|
|
1553
1769
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1554
1770
|
readonly readOnly: _angular_core.InputSignal<boolean>;
|
|
1555
1771
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1772
|
+
readonly showRequiredIndicator: _angular_core.InputSignal<boolean>;
|
|
1556
1773
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1557
1774
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
1558
1775
|
readonly helperText: _angular_core.InputSignal<string | null>;
|
|
@@ -1588,8 +1805,8 @@ declare class TextareaComponent implements FormValueControl<string> {
|
|
|
1588
1805
|
focus(): void;
|
|
1589
1806
|
select(): void;
|
|
1590
1807
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
1591
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ul-textarea", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "groupFocused": { "alias": "groupFocused"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; "inputBlur": "inputBlur"; "inputFocus": "inputFocus"; }, ["customField"], ["[ul-textarea-left-elements]", "[ul-textarea-field]", "[ul-textarea-right-elements]"], true, never>;
|
|
1808
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ul-textarea", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "groupFocused": { "alias": "groupFocused"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; "inputBlur": "inputBlur"; "inputFocus": "inputFocus"; }, ["customField"], ["[ul-textarea-left-elements]", "[ul-textarea-field]", "[ul-textarea-right-elements]"], true, never>;
|
|
1592
1809
|
}
|
|
1593
1810
|
|
|
1594
|
-
export { AccordionComponent, AccordionItemComponent, AreaCodeComponent, AvatarComponent, AvatarGroupComponent, BreadcrumbComponent, ButtonComponent, CalendarComponent, CardComponent, CarouselComponent, CarouselItemComponent, CheckboxComponent, CollapseComponent, CustomCurrencyPipe, DockComponent, DockItemComponent, DockItemContentSlotDirective, DropdownComponent, FileInputComponent, FooterComponent, FormFieldHelperComponent, FormFieldLabelComponent, HeroComponent, IconComponent, ImageNotFoundDirective, InputComponent, ListItemComponent, ModalComponent, NavbarAppNameSlotDirective, NavbarAvatarSlotDirective, NavbarComponent, NavbarLogoSlotDirective, NavbarSearchSlotDirective, PeHeroActionsSlotDirective, PeHeroBadgesSlotDirective, PeHeroContentSlotDirective, PeHeroSubtitleSlotDirective, PeHeroTitleSlotDirective, PillComponent, PriceButtonComponent, RadialComponent, RadioComponent, RadioGroupComponent, RichTextComponent, SearchSelectComponent, SelectComponent, SidebarComponent, SkeletonComponent, StatusComponent, TableComponent, TextareaComponent, TextareaFieldDirective, ToastContainerComponent, ToastService, TooltipComponent, createFormFieldIds, getFormFieldDescribedBy, toastIcon };
|
|
1595
|
-
export type { ActionsDistribution, AvatarData, BreadcrumbItem, BreadcrumbSeparator, CalendarDay, CalendarMode, CardCaptionSize, CardDirection, CheckboxZoneType, CollapseVariant, Currency, DockItemVariant, DropdownItem, FileInputAppearance, HeroAction, HeroAlignment, HeroSize, IconName, IconSize, IconWeight, InputAppearance, InputType, ListItemTheme, MediaAspectRatio, ModalVariant, PillSize, PillTheme, PillVariant, RadioGroupOption, RichTextSize, RichTextTone, SalePosition, SearchSelectOption, SelectOption, SidebarItem, SkeletonBorderRadius, SkeletonVariant, SortDirection, Status, TableColumn, TextareaResize, TimeSelection, ToastConfig, ToastKind, ToastWithRole, TooltipPosition };
|
|
1811
|
+
export { AccordionComponent, AccordionItemComponent, AreaCodeComponent, AvatarComponent, AvatarGroupComponent, BreadcrumbComponent, ButtonComponent, CalendarComponent, CardComponent, CarouselComponent, CarouselItemComponent, CheckboxComponent, CollapseComponent, CustomCurrencyPipe, DockComponent, DockItemComponent, DockItemContentSlotDirective, DropdownComponent, FileInputComponent, FooterComponent, FormFieldHelperComponent, FormFieldLabelComponent, HeroComponent, IconComponent, ImageNotFoundDirective, InputComponent, ListItemComponent, LongPressDirective, MenuComponent, MenuItemsComponent, MenuTriggerComponent, ModalComponent, NavbarAppNameSlotDirective, NavbarAvatarSlotDirective, NavbarComponent, NavbarLogoSlotDirective, NavbarSearchSlotDirective, PeHeroActionsSlotDirective, PeHeroBadgesSlotDirective, PeHeroContentSlotDirective, PeHeroSubtitleSlotDirective, PeHeroTitleSlotDirective, PillComponent, PriceButtonComponent, RadialComponent, RadioComponent, RadioGroupComponent, RichTextComponent, SearchSelectComponent, SelectComponent, SelectableRowComponent, SidebarComponent, SkeletonComponent, StatusComponent, TableComponent, TextareaComponent, TextareaFieldDirective, ToastContainerComponent, ToastService, TooltipComponent, createFormFieldIds, getFormFieldDescribedBy, toastIcon };
|
|
1812
|
+
export type { ActionsDistribution, AvatarData, BreadcrumbItem, BreadcrumbSeparator, CalendarDay, CalendarMode, CardCaptionSize, CardDirection, CheckboxZoneType, CollapseVariant, Currency, DockItemVariant, DropdownItem, FileInputAppearance, HeroAction, HeroAlignment, HeroSize, IconName, IconSize, IconWeight, InputAppearance, InputType, ListItemTheme, MediaAspectRatio, MenuItem, ModalVariant, PillSize, PillTheme, PillVariant, RadioGroupOption, RichTextSize, RichTextTone, SalePosition, SearchSelectOption, SelectOption, SidebarItem, SkeletonBorderRadius, SkeletonVariant, SortDirection, Status, TableColumn, TextareaResize, TimeSelection, ToastConfig, ToastKind, ToastWithRole, TooltipPosition };
|