@eagami/ui 5.56.0 → 5.58.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/eagami-ui.mjs +902 -196
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles/_mixins.scss +49 -0
- package/types/eagami-ui.d.ts +173 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eagami/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.58.0",
|
|
4
4
|
"description": "Lightweight, accessible, themeable Angular UI component library and icon set built on CSS custom properties",
|
|
5
5
|
"author": "Michal Wiraszka <michal@eagami.com>",
|
|
6
6
|
"license": "MIT",
|
package/src/styles/_mixins.scss
CHANGED
|
@@ -191,6 +191,55 @@ $target-size-min: 24px;
|
|
|
191
191
|
user-select: none;
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
+
// Floating surface of a menu-like list, sized in em so it scales with the host
|
|
195
|
+
// component's `size`. Positioned by the host `<ea-popover>`; the background is
|
|
196
|
+
// the caller's to set.
|
|
197
|
+
@mixin menu-surface {
|
|
198
|
+
overflow-y: auto;
|
|
199
|
+
min-width: 10em;
|
|
200
|
+
padding: 0.25em 0;
|
|
201
|
+
border: var(--border-width-thin) solid var(--color-border-default);
|
|
202
|
+
border-radius: var(--radius-md);
|
|
203
|
+
box-shadow: var(--shadow-lg);
|
|
204
|
+
@include elevated-surface-border;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Row of a menu-like list. `$disabled` is the selector marking a row that cannot
|
|
208
|
+
// be activated, which is left out of the hover and focus highlight.
|
|
209
|
+
@mixin menu-row($disabled) {
|
|
210
|
+
display: flex;
|
|
211
|
+
align-items: center;
|
|
212
|
+
gap: 0.5em;
|
|
213
|
+
width: 100%;
|
|
214
|
+
padding: 0.5em 0.75em;
|
|
215
|
+
// Buttons do not inherit font-size by default, so take the list's; every
|
|
216
|
+
// dimension here is in em and scales with it
|
|
217
|
+
font-size: inherit;
|
|
218
|
+
text-align: start;
|
|
219
|
+
font-family: var(--font-family-sans);
|
|
220
|
+
border: none;
|
|
221
|
+
background: transparent;
|
|
222
|
+
color: var(--color-text-primary);
|
|
223
|
+
cursor: pointer;
|
|
224
|
+
transition: var(--transition-colors);
|
|
225
|
+
|
|
226
|
+
// state-hover (a translucent wash) reads on the elevated menu surface in both
|
|
227
|
+
// themes; bg-muted collapses onto that surface's shade in dark mode.
|
|
228
|
+
&:hover:not(#{$disabled}),
|
|
229
|
+
&:focus-visible:not(#{$disabled}) {
|
|
230
|
+
background-color: var(--color-state-hover);
|
|
231
|
+
|
|
232
|
+
@media (forced-colors: active) {
|
|
233
|
+
background-color: Highlight;
|
|
234
|
+
color: HighlightText;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
&:focus-visible {
|
|
239
|
+
outline: none;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
194
243
|
// Strips the geometry the UA stylesheet forces on a `[popover]` element (a
|
|
195
244
|
// centred, viewport-filling, scrollable box) so a surface promoted into the top
|
|
196
245
|
// layer keeps the box it has in the normal layer. Colour and spacing chrome
|
package/types/eagami-ui.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export interface EagamiMessages {
|
|
|
56
56
|
};
|
|
57
57
|
breadcrumbs: {
|
|
58
58
|
label: string;
|
|
59
|
+
showHidden: string;
|
|
59
60
|
};
|
|
60
61
|
chart: {
|
|
61
62
|
/** Announced role of a chart's plot, in place of the generic "group". */
|
|
@@ -135,6 +136,10 @@ export interface EagamiMessages {
|
|
|
135
136
|
};
|
|
136
137
|
dropdown: {
|
|
137
138
|
placeholder: string;
|
|
139
|
+
clear: string;
|
|
140
|
+
dialogLabel: string;
|
|
141
|
+
searchPlaceholder: string;
|
|
142
|
+
searchEmpty: string;
|
|
138
143
|
};
|
|
139
144
|
fieldLabel: {
|
|
140
145
|
/** Accessible name of the button that reveals a field label's help. */
|
|
@@ -1679,6 +1684,8 @@ export declare class BarChartComponent {
|
|
|
1679
1684
|
export type BreadcrumbsSeparator = 'chevron' | 'slash';
|
|
1680
1685
|
/** Visual size of the breadcrumb trail. */
|
|
1681
1686
|
export type BreadcrumbsSize = EaSize;
|
|
1687
|
+
/** What a trail wider than its container does: move levels into a menu, or scroll sideways. */
|
|
1688
|
+
export type BreadcrumbsOverflow = 'menu' | 'scroll';
|
|
1682
1689
|
/** Single entry in a breadcrumb trail. */
|
|
1683
1690
|
export interface BreadcrumbItem {
|
|
1684
1691
|
label: string;
|
|
@@ -1691,24 +1698,77 @@ export interface BreadcrumbClickEvent {
|
|
|
1691
1698
|
index: number;
|
|
1692
1699
|
event: MouseEvent;
|
|
1693
1700
|
}
|
|
1701
|
+
/** A breadcrumb paired with its position in the full trail. */
|
|
1702
|
+
interface IndexedBreadcrumb {
|
|
1703
|
+
item: BreadcrumbItem;
|
|
1704
|
+
index: number;
|
|
1705
|
+
}
|
|
1694
1706
|
/**
|
|
1695
1707
|
* Navigation trail that shows the user's location within a hierarchy. Items
|
|
1696
1708
|
* with an `href` render as links, others render as buttons; the final item is
|
|
1697
|
-
* always treated as the current page and is non-interactive.
|
|
1709
|
+
* always treated as the current page and is non-interactive. Levels that go
|
|
1710
|
+
* past `maxItems`, or that the container has no room for, move into a menu
|
|
1711
|
+
* behind a button after the first item, earliest levels first, and return to
|
|
1712
|
+
* the trail as room opens up.
|
|
1698
1713
|
*/
|
|
1699
1714
|
export declare class BreadcrumbsComponent {
|
|
1700
|
-
|
|
1715
|
+
protected readonly i18n: EagamiI18nService;
|
|
1716
|
+
private readonly popover;
|
|
1717
|
+
protected readonly expandEl: import("@angular/core").Signal<ElementRef<HTMLButtonElement> | undefined>;
|
|
1718
|
+
private readonly menuEl;
|
|
1719
|
+
private readonly sizerEl;
|
|
1720
|
+
private readonly sizerItemEls;
|
|
1721
|
+
private readonly sizerExpandEl;
|
|
1701
1722
|
readonly items: import("@angular/core").InputSignal<BreadcrumbItem[]>;
|
|
1702
1723
|
readonly separator: import("@angular/core").InputSignal<BreadcrumbsSeparator>;
|
|
1703
1724
|
/** Visual size of the breadcrumb trail. */
|
|
1704
1725
|
readonly size: import("@angular/core").InputSignal<EaSize>;
|
|
1726
|
+
/**
|
|
1727
|
+
* Most items shown in the trail at once. The earliest levels after the first
|
|
1728
|
+
* item move into a menu to stay within it. Never fewer than two.
|
|
1729
|
+
*/
|
|
1730
|
+
readonly maxItems: import("@angular/core").InputSignal<number | undefined>;
|
|
1731
|
+
/**
|
|
1732
|
+
* What happens when the trail is wider than its container. `menu` moves as
|
|
1733
|
+
* many levels as it takes into a menu, earliest first, keeping the first and
|
|
1734
|
+
* last item in the trail. `scroll` keeps every level and scrolls sideways.
|
|
1735
|
+
*/
|
|
1736
|
+
readonly overflow: import("@angular/core").InputSignal<BreadcrumbsOverflow>;
|
|
1705
1737
|
readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
1706
1738
|
/** Fires when a non-disabled, non-final breadcrumb is activated. */
|
|
1707
1739
|
readonly clicked: import("@angular/core").OutputEmitterRef<BreadcrumbClickEvent>;
|
|
1740
|
+
protected readonly menuId: string;
|
|
1741
|
+
protected readonly menuOpen: import("@angular/core").WritableSignal<boolean>;
|
|
1742
|
+
private menuPinned;
|
|
1743
|
+
private readonly menuFocusPending;
|
|
1744
|
+
/** Levels the container has no room for, counted from the one after the first item. */
|
|
1745
|
+
private readonly crowdedOut;
|
|
1708
1746
|
/** Accessible label for the breadcrumb nav, falling back to the active locale. */
|
|
1709
1747
|
readonly resolvedAriaLabel: import("@angular/core").Signal<string>;
|
|
1748
|
+
private readonly indexed;
|
|
1749
|
+
private readonly menuCount;
|
|
1750
|
+
/** Items in the trail, each carrying its index into the full list. */
|
|
1751
|
+
protected readonly crumbs: import("@angular/core").Signal<IndexedBreadcrumb[]>;
|
|
1752
|
+
/** Items moved into the menu, in trail order. */
|
|
1753
|
+
protected readonly menuCrumbs: import("@angular/core").Signal<IndexedBreadcrumb[]>;
|
|
1754
|
+
constructor();
|
|
1710
1755
|
isLast(index: number): boolean;
|
|
1711
1756
|
handleClick(item: BreadcrumbItem, index: number, event: MouseEvent): void;
|
|
1757
|
+
protected toggleMenu(): void;
|
|
1758
|
+
protected handleExpandKeydown(event: KeyboardEvent): void;
|
|
1759
|
+
protected handleExpandEnter(): void;
|
|
1760
|
+
protected handleHoverLeave(event: MouseEvent): void;
|
|
1761
|
+
protected handleMenuClick(crumb: IndexedBreadcrumb, event: MouseEvent): void;
|
|
1762
|
+
protected handleMenuKeydown(event: KeyboardEvent): void;
|
|
1763
|
+
protected closeMenu(restoreFocus?: boolean): void;
|
|
1764
|
+
private openMenu;
|
|
1765
|
+
private menuItems;
|
|
1766
|
+
/**
|
|
1767
|
+
* Works out how many levels the container has no room for. The widths come
|
|
1768
|
+
* from the sizer, which lays out the whole trail whatever is collapsed, so
|
|
1769
|
+
* the answer never depends on what is currently in the menu.
|
|
1770
|
+
*/
|
|
1771
|
+
private fit;
|
|
1712
1772
|
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
|
|
1713
1773
|
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbsComponent, "ea-breadcrumbs", never, {
|
|
1714
1774
|
"items": {
|
|
@@ -1726,6 +1786,16 @@ export declare class BreadcrumbsComponent {
|
|
|
1726
1786
|
"required": false;
|
|
1727
1787
|
"isSignal": true;
|
|
1728
1788
|
};
|
|
1789
|
+
"maxItems": {
|
|
1790
|
+
"alias": "maxItems";
|
|
1791
|
+
"required": false;
|
|
1792
|
+
"isSignal": true;
|
|
1793
|
+
};
|
|
1794
|
+
"overflow": {
|
|
1795
|
+
"alias": "overflow";
|
|
1796
|
+
"required": false;
|
|
1797
|
+
"isSignal": true;
|
|
1798
|
+
};
|
|
1729
1799
|
"ariaLabel": {
|
|
1730
1800
|
"alias": "aria-label";
|
|
1731
1801
|
"required": false;
|
|
@@ -3500,6 +3570,11 @@ export type DatePickerFormat = 'short' | 'medium' | 'long';
|
|
|
3500
3570
|
export type DatePickerWeekStart = 0 | 1;
|
|
3501
3571
|
/** Value accepted via `writeValue`: a `Date`, ISO/parseable string, or `null`. */
|
|
3502
3572
|
export type DatePickerValue = Date | string | null;
|
|
3573
|
+
/** Span of dates that includes both its start and its end. */
|
|
3574
|
+
export interface DatePickerDateRange {
|
|
3575
|
+
start: Date;
|
|
3576
|
+
end: Date;
|
|
3577
|
+
}
|
|
3503
3578
|
interface CalendarDay {
|
|
3504
3579
|
date: Date;
|
|
3505
3580
|
day: number;
|
|
@@ -3513,10 +3588,10 @@ interface CalendarDay {
|
|
|
3513
3588
|
* Date field with a calendar popover. The date can be typed straight into the
|
|
3514
3589
|
* field in any reasonable shape (ISO, all-numeric in the locale's field order,
|
|
3515
3590
|
* or with a month name) and is rewritten in the configured `format` on commit.
|
|
3516
|
-
* Supports `min`/`max` bounds,
|
|
3517
|
-
* via `Intl.DateTimeFormat`, and full keyboard
|
|
3518
|
-
* PageUp/PageDown, Home/End, Enter, Escape). Integrates
|
|
3519
|
-
* `ControlValueAccessor`.
|
|
3591
|
+
* Supports `min`/`max` bounds, disabled weekdays and dates, configurable week
|
|
3592
|
+
* start, locale-aware formatting via `Intl.DateTimeFormat`, and full keyboard
|
|
3593
|
+
* navigation (arrows, PageUp/PageDown, Home/End, Enter, Escape). Integrates
|
|
3594
|
+
* with Angular forms via `ControlValueAccessor`.
|
|
3520
3595
|
*/
|
|
3521
3596
|
export declare class DatePickerComponent implements ControlValueAccessor {
|
|
3522
3597
|
protected readonly fieldEl: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
|
|
@@ -3540,6 +3615,10 @@ export declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
3540
3615
|
readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string>> | undefined>;
|
|
3541
3616
|
readonly minDate: import("@angular/core").InputSignal<Date | null>;
|
|
3542
3617
|
readonly maxDate: import("@angular/core").InputSignal<Date | null>;
|
|
3618
|
+
/** Weekdays that cannot be picked, numbered as `Date.getDay()` does: 0 for Sunday through 6 for Saturday. */
|
|
3619
|
+
readonly disabledWeekdays: import("@angular/core").InputSignal<readonly number[]>;
|
|
3620
|
+
/** Individual dates and ranges that cannot be picked, on top of the `minDate` and `maxDate` bounds. */
|
|
3621
|
+
readonly disabledDates: import("@angular/core").InputSignal<readonly (Date | DatePickerDateRange)[]>;
|
|
3543
3622
|
readonly format: import("@angular/core").InputSignal<DatePickerFormat>;
|
|
3544
3623
|
readonly weekStartsOn: import("@angular/core").InputSignal<DatePickerWeekStart>;
|
|
3545
3624
|
readonly locale: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -3628,7 +3707,8 @@ export declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
3628
3707
|
protected handleInputKeydown(event: KeyboardEvent): void;
|
|
3629
3708
|
private commitDraft;
|
|
3630
3709
|
private applyValue;
|
|
3631
|
-
private
|
|
3710
|
+
private isUnavailable;
|
|
3711
|
+
private covers;
|
|
3632
3712
|
handleGridKeydown(event: KeyboardEvent): void;
|
|
3633
3713
|
/** Called by `<ea-popover>` when the user clicks outside the picker. */
|
|
3634
3714
|
onPopoverCloseRequested(): void;
|
|
@@ -3705,6 +3785,16 @@ export declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
3705
3785
|
"required": false;
|
|
3706
3786
|
"isSignal": true;
|
|
3707
3787
|
};
|
|
3788
|
+
"disabledWeekdays": {
|
|
3789
|
+
"alias": "disabledWeekdays";
|
|
3790
|
+
"required": false;
|
|
3791
|
+
"isSignal": true;
|
|
3792
|
+
};
|
|
3793
|
+
"disabledDates": {
|
|
3794
|
+
"alias": "disabledDates";
|
|
3795
|
+
"required": false;
|
|
3796
|
+
"isSignal": true;
|
|
3797
|
+
};
|
|
3708
3798
|
"format": {
|
|
3709
3799
|
"alias": "format";
|
|
3710
3800
|
"required": false;
|
|
@@ -4146,12 +4236,16 @@ export type DropdownSize = EaSize;
|
|
|
4146
4236
|
* Single-select dropdown with a custom popup list. Supports keyboard
|
|
4147
4237
|
* navigation (arrow keys, Enter/Space to select, Escape to close), closes
|
|
4148
4238
|
* on outside click or viewport scroll/resize, and integrates with Angular
|
|
4149
|
-
* forms via `ControlValueAccessor`.
|
|
4150
|
-
*
|
|
4239
|
+
* forms via `ControlValueAccessor`. Optionally offers a clear button on the
|
|
4240
|
+
* trigger and a search field above the options. Positioning, dismissal, and
|
|
4241
|
+
* SSR-safe scroll handling are provided by `<ea-popover>`.
|
|
4151
4242
|
*/
|
|
4152
4243
|
export declare class DropdownComponent implements ControlValueAccessor {
|
|
4153
4244
|
private readonly elRef;
|
|
4154
|
-
private readonly
|
|
4245
|
+
private readonly popover;
|
|
4246
|
+
private readonly searchEl;
|
|
4247
|
+
protected readonly i18n: EagamiI18nService;
|
|
4248
|
+
private readonly injector;
|
|
4155
4249
|
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
4156
4250
|
/** Optional icon component rendered before the label text. */
|
|
4157
4251
|
readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
|
|
@@ -4164,16 +4258,21 @@ export declare class DropdownComponent implements ControlValueAccessor {
|
|
|
4164
4258
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
4165
4259
|
readonly readonly: import("@angular/core").InputSignal<boolean>;
|
|
4166
4260
|
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
4261
|
+
/** Shows a clear button on the trigger while an option is selected. */
|
|
4262
|
+
readonly clearable: import("@angular/core").InputSignal<boolean>;
|
|
4263
|
+
/** Adds a search field above the options that filters them as the user types. */
|
|
4264
|
+
readonly searchable: import("@angular/core").InputSignal<boolean>;
|
|
4167
4265
|
readonly hint: import("@angular/core").InputSignal<string | undefined>;
|
|
4168
4266
|
readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
|
|
4169
4267
|
/** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
|
|
4170
4268
|
readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string>> | undefined>;
|
|
4171
4269
|
readonly id: import("@angular/core").InputSignal<string>;
|
|
4172
4270
|
readonly value: import("@angular/core").ModelSignal<string>;
|
|
4173
|
-
/** Fires with the new value when the user selects an option. */
|
|
4271
|
+
/** Fires with the new value when the user selects an option or clears the selection. */
|
|
4174
4272
|
readonly changed: import("@angular/core").OutputEmitterRef<string>;
|
|
4175
4273
|
readonly isOpen: import("@angular/core").WritableSignal<boolean>;
|
|
4176
4274
|
readonly focusedIndex: import("@angular/core").WritableSignal<number>;
|
|
4275
|
+
protected readonly searchTerm: import("@angular/core").WritableSignal<string>;
|
|
4177
4276
|
private readonly _formDisabled;
|
|
4178
4277
|
private typeaheadQuery;
|
|
4179
4278
|
private typeaheadTimer;
|
|
@@ -4189,21 +4288,29 @@ export declare class DropdownComponent implements ControlValueAccessor {
|
|
|
4189
4288
|
private readonly optionGroups;
|
|
4190
4289
|
/** Whether the consumer supplied groups, which the list exposes as ARIA groups. */
|
|
4191
4290
|
protected readonly grouped: import("@angular/core").Signal<boolean>;
|
|
4192
|
-
/** Every option in the order given, flattened across groups
|
|
4291
|
+
/** Every option in the order given, flattened across groups. */
|
|
4193
4292
|
private readonly flatOptions;
|
|
4194
|
-
|
|
4293
|
+
private readonly filteredGroups;
|
|
4294
|
+
/** Options matching the search text, flattened across groups; drives all index maths. */
|
|
4295
|
+
protected readonly filteredOptions: import("@angular/core").Signal<SelectOption[]>;
|
|
4296
|
+
/** Groups to render, each option carrying its index into the filtered list. */
|
|
4195
4297
|
protected readonly renderedGroups: import("@angular/core").Signal<RenderedGroup[]>;
|
|
4196
4298
|
protected readonly selectedIndex: import("@angular/core").Signal<number>;
|
|
4197
4299
|
readonly selectedLabel: import("@angular/core").Signal<string>;
|
|
4198
4300
|
/** Placeholder text, falling back to the active locale's translation. */
|
|
4199
4301
|
readonly resolvedPlaceholder: import("@angular/core").Signal<string>;
|
|
4200
4302
|
readonly triggerLabelledBy: import("@angular/core").Signal<string | null>;
|
|
4303
|
+
protected readonly showClear: import("@angular/core").Signal<boolean>;
|
|
4304
|
+
protected readonly listboxId: import("@angular/core").Signal<string>;
|
|
4305
|
+
/** Id of the keyboard-focused option, for `aria-activedescendant`. */
|
|
4306
|
+
protected readonly activeOptionId: import("@angular/core").Signal<string | null>;
|
|
4201
4307
|
readonly triggerClasses: import("@angular/core").Signal<{
|
|
4202
4308
|
[x: string]: boolean;
|
|
4203
4309
|
'ea-dropdown__trigger--error': boolean;
|
|
4204
4310
|
'ea-dropdown__trigger--open': boolean;
|
|
4205
4311
|
'ea-dropdown__trigger--disabled': boolean;
|
|
4206
4312
|
'ea-dropdown__trigger--readonly': boolean;
|
|
4313
|
+
'ea-dropdown__trigger--clearable': boolean;
|
|
4207
4314
|
}>;
|
|
4208
4315
|
readonly menuClasses: import("@angular/core").Signal<{
|
|
4209
4316
|
[x: string]: boolean;
|
|
@@ -4218,15 +4325,23 @@ export declare class DropdownComponent implements ControlValueAccessor {
|
|
|
4218
4325
|
select(option: SelectOption): void;
|
|
4219
4326
|
/** Closes the dropdown list without changing the current value. */
|
|
4220
4327
|
close(): void;
|
|
4328
|
+
protected clear(): void;
|
|
4221
4329
|
/** Moves keyboard focus to the dropdown trigger. */
|
|
4222
4330
|
focus(): void;
|
|
4223
4331
|
/** Called by `<ea-popover>` when the user clicks outside the dropdown. */
|
|
4224
4332
|
onPopoverCloseRequested(): void;
|
|
4225
4333
|
handleKeydown(event: KeyboardEvent): void;
|
|
4334
|
+
protected onSearchInput(term: string): void;
|
|
4335
|
+
protected handleSearchKeydown(event: KeyboardEvent): void;
|
|
4336
|
+
protected onMenuMousedown(event: MouseEvent): void;
|
|
4337
|
+
private commit;
|
|
4338
|
+
private startSearch;
|
|
4339
|
+
private focusFirstMatch;
|
|
4226
4340
|
private selectFocusedOrOpen;
|
|
4227
4341
|
private focusEdge;
|
|
4228
4342
|
/** Keeps the keyboard-focused option visible inside the scrolling listbox. */
|
|
4229
4343
|
private setFocusedIndex;
|
|
4344
|
+
private scrollOptionIntoView;
|
|
4230
4345
|
private handleTypeahead;
|
|
4231
4346
|
private moveFocus;
|
|
4232
4347
|
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
|
|
@@ -4276,6 +4391,16 @@ export declare class DropdownComponent implements ControlValueAccessor {
|
|
|
4276
4391
|
"required": false;
|
|
4277
4392
|
"isSignal": true;
|
|
4278
4393
|
};
|
|
4394
|
+
"clearable": {
|
|
4395
|
+
"alias": "clearable";
|
|
4396
|
+
"required": false;
|
|
4397
|
+
"isSignal": true;
|
|
4398
|
+
};
|
|
4399
|
+
"searchable": {
|
|
4400
|
+
"alias": "searchable";
|
|
4401
|
+
"required": false;
|
|
4402
|
+
"isSignal": true;
|
|
4403
|
+
};
|
|
4279
4404
|
"hint": {
|
|
4280
4405
|
"alias": "hint";
|
|
4281
4406
|
"required": false;
|
|
@@ -7738,6 +7863,7 @@ export declare class TabComponent implements OnInit, OnDestroy {
|
|
|
7738
7863
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
7739
7864
|
readonly id: import("@angular/core").InputSignal<string>;
|
|
7740
7865
|
readonly isActive: import("@angular/core").Signal<boolean>;
|
|
7866
|
+
protected readonly vertical: import("@angular/core").Signal<boolean>;
|
|
7741
7867
|
ngOnInit(): void;
|
|
7742
7868
|
ngOnDestroy(): void;
|
|
7743
7869
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabComponent, never>;
|
|
@@ -7768,6 +7894,8 @@ export declare class TabComponent implements OnInit, OnDestroy {
|
|
|
7768
7894
|
export type TabsVariant = 'underline' | 'filled';
|
|
7769
7895
|
/** Visual size of the tabs. */
|
|
7770
7896
|
export type TabsSize = EaSize;
|
|
7897
|
+
/** Whether the tab bar runs along the top of the panel or down its side. */
|
|
7898
|
+
export type TabsOrientation = 'horizontal' | 'vertical';
|
|
7771
7899
|
/**
|
|
7772
7900
|
* Tab bar paired with content panels. Child `ea-tab` components register
|
|
7773
7901
|
* themselves automatically and the active panel is shown based on the
|
|
@@ -7778,6 +7906,8 @@ export declare class TabsComponent {
|
|
|
7778
7906
|
readonly registeredTabs: import("@angular/core").WritableSignal<TabComponent[]>;
|
|
7779
7907
|
readonly variant: import("@angular/core").InputSignal<TabsVariant>;
|
|
7780
7908
|
readonly size: import("@angular/core").InputSignal<EaSize>;
|
|
7909
|
+
/** Places the tab bar above the panel, or in a column beside it. */
|
|
7910
|
+
readonly orientation: import("@angular/core").InputSignal<TabsOrientation>;
|
|
7781
7911
|
/** Accessible name for the tablist, announced by screen readers. */
|
|
7782
7912
|
readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
7783
7913
|
readonly activeTab: import("@angular/core").ModelSignal<string>;
|
|
@@ -7802,6 +7932,11 @@ export declare class TabsComponent {
|
|
|
7802
7932
|
"required": false;
|
|
7803
7933
|
"isSignal": true;
|
|
7804
7934
|
};
|
|
7935
|
+
"orientation": {
|
|
7936
|
+
"alias": "orientation";
|
|
7937
|
+
"required": false;
|
|
7938
|
+
"isSignal": true;
|
|
7939
|
+
};
|
|
7805
7940
|
"ariaLabel": {
|
|
7806
7941
|
"alias": "ariaLabel";
|
|
7807
7942
|
"required": false;
|
|
@@ -7864,6 +7999,12 @@ export declare class TooltipDirective implements OnDestroy {
|
|
|
7864
7999
|
* to the viewport, which no value can push the bubble past.
|
|
7865
8000
|
*/
|
|
7866
8001
|
readonly maxWidth: import("@angular/core").InputSignal<number | undefined>;
|
|
8002
|
+
/**
|
|
8003
|
+
* Wait in ms before the bubble appears on hover or keyboard focus, so a
|
|
8004
|
+
* pointer passing over the trigger does not flash it. Leaving the trigger
|
|
8005
|
+
* within the wait cancels the bubble.
|
|
8006
|
+
*/
|
|
8007
|
+
readonly showDelay: import("@angular/core").InputSignal<number>;
|
|
7867
8008
|
/**
|
|
7868
8009
|
* Grace period in ms before a bubble the viewport clamp made scrollable hides
|
|
7869
8010
|
* after the pointer leaves, long enough to cross the gap onto the bubble and
|
|
@@ -7881,6 +8022,7 @@ export declare class TooltipDirective implements OnDestroy {
|
|
|
7881
8022
|
private placedPosition;
|
|
7882
8023
|
private templateView;
|
|
7883
8024
|
private scrollable;
|
|
8025
|
+
private showTimer;
|
|
7884
8026
|
private hideTimer;
|
|
7885
8027
|
private pointerInside;
|
|
7886
8028
|
private readonly tooltipId;
|
|
@@ -7903,6 +8045,8 @@ export declare class TooltipDirective implements OnDestroy {
|
|
|
7903
8045
|
private controlled;
|
|
7904
8046
|
ngOnDestroy(): void;
|
|
7905
8047
|
private syncPointerListeners;
|
|
8048
|
+
private requestShow;
|
|
8049
|
+
private cancelPendingShow;
|
|
7906
8050
|
private show;
|
|
7907
8051
|
private shrinkToContent;
|
|
7908
8052
|
private requestHide;
|
|
@@ -7943,6 +8087,11 @@ export declare class TooltipDirective implements OnDestroy {
|
|
|
7943
8087
|
"required": false;
|
|
7944
8088
|
"isSignal": true;
|
|
7945
8089
|
};
|
|
8090
|
+
"showDelay": {
|
|
8091
|
+
"alias": "showDelay";
|
|
8092
|
+
"required": false;
|
|
8093
|
+
"isSignal": true;
|
|
8094
|
+
};
|
|
7946
8095
|
"dismissDelay": {
|
|
7947
8096
|
"alias": "dismissDelay";
|
|
7948
8097
|
"required": false;
|
|
@@ -8112,8 +8261,8 @@ export interface TextareaSelection {
|
|
|
8112
8261
|
}
|
|
8113
8262
|
/**
|
|
8114
8263
|
* Multiline text field that mirrors the `ea-input` API. Supports configurable
|
|
8115
|
-
* `resize` direction
|
|
8116
|
-
* `getSelection()` and `insertText()`, and integrates with Angular
|
|
8264
|
+
* `resize` direction, `maxlength` and a character count, exposes the caret
|
|
8265
|
+
* through `getSelection()` and `insertText()`, and integrates with Angular
|
|
8117
8266
|
* forms via `ControlValueAccessor`.
|
|
8118
8267
|
*/
|
|
8119
8268
|
export declare class TextareaComponent implements ControlValueAccessor {
|
|
@@ -8136,6 +8285,8 @@ export declare class TextareaComponent implements ControlValueAccessor {
|
|
|
8136
8285
|
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
8137
8286
|
readonly resize: import("@angular/core").InputSignal<TextareaResize>;
|
|
8138
8287
|
readonly maxlength: import("@angular/core").InputSignal<number | undefined>;
|
|
8288
|
+
/** Shows the number of characters typed below the field, against `maxlength` when one is set. */
|
|
8289
|
+
readonly showCount: import("@angular/core").InputSignal<boolean>;
|
|
8139
8290
|
/** Optional pixel ceiling for the textarea's height. Beyond it, the inner
|
|
8140
8291
|
* field scrolls vertically instead of growing. */
|
|
8141
8292
|
readonly maxHeight: import("@angular/core").InputSignal<number | undefined>;
|
|
@@ -8158,6 +8309,8 @@ export declare class TextareaComponent implements ControlValueAccessor {
|
|
|
8158
8309
|
readonly hasError: import("@angular/core").Signal<boolean>;
|
|
8159
8310
|
readonly showError: import("@angular/core").Signal<boolean>;
|
|
8160
8311
|
readonly showHint: import("@angular/core").Signal<boolean>;
|
|
8312
|
+
protected readonly countText: import("@angular/core").Signal<string>;
|
|
8313
|
+
protected readonly describedBy: import("@angular/core").Signal<string | null>;
|
|
8161
8314
|
readonly wrapperClasses: import("@angular/core").Signal<{
|
|
8162
8315
|
[x: string]: boolean;
|
|
8163
8316
|
'ea-textarea-wrapper--error': boolean;
|
|
@@ -8260,6 +8413,11 @@ export declare class TextareaComponent implements ControlValueAccessor {
|
|
|
8260
8413
|
"required": false;
|
|
8261
8414
|
"isSignal": true;
|
|
8262
8415
|
};
|
|
8416
|
+
"showCount": {
|
|
8417
|
+
"alias": "showCount";
|
|
8418
|
+
"required": false;
|
|
8419
|
+
"isSignal": true;
|
|
8420
|
+
};
|
|
8263
8421
|
"maxHeight": {
|
|
8264
8422
|
"alias": "maxHeight";
|
|
8265
8423
|
"required": false;
|