@truenas/ui-components 0.3.14 → 0.3.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.
package/package.json
CHANGED
package/src/styles/themes.css
CHANGED
|
@@ -657,3 +657,102 @@ tn-dialog-shell {
|
|
|
657
657
|
box-shadow: none;
|
|
658
658
|
margin: 0;
|
|
659
659
|
}
|
|
660
|
+
|
|
661
|
+
/* ================================
|
|
662
|
+
CDK Overlay base styles
|
|
663
|
+
================================
|
|
664
|
+
Mirrors @angular/cdk/overlay-prebuilt.css. These structural rules are
|
|
665
|
+
REQUIRED for any component built on the CDK connected-position overlay
|
|
666
|
+
(tn-select, tn-autocomplete, tn-tooltip, tn-file-picker, tn-date-input…).
|
|
667
|
+
Consuming apps that only import this themes.css would otherwise never load
|
|
668
|
+
them, with two visible symptoms:
|
|
669
|
+
|
|
670
|
+
1. pointer-events: none on the overlay container is INHERITED by the
|
|
671
|
+
connected-position bounding box (a flex column anchored to the trigger
|
|
672
|
+
that is typically far wider/taller than the visible panel). Without it
|
|
673
|
+
the bounding box keeps the default `auto` and silently eats clicks in
|
|
674
|
+
the empty area around the panel — so a no-backdrop dropdown like
|
|
675
|
+
tn-select can't be dismissed by clicking "outside" it (the click lands
|
|
676
|
+
on the bounding box, which is technically inside the overlay, so CDK's
|
|
677
|
+
outsidePointerEvents() never fires).
|
|
678
|
+
2. .cdk-overlay-pane { max-height: 100% } keeps panels constrained to the
|
|
679
|
+
viewport so their internal `overflow-y: auto` regions actually scroll.
|
|
680
|
+
|
|
681
|
+
Only .cdk-overlay-pane re-enables pointer-events: auto, so the panel itself
|
|
682
|
+
stays interactive while everything around it is click-through. */
|
|
683
|
+
.cdk-overlay-container,
|
|
684
|
+
.cdk-global-overlay-wrapper {
|
|
685
|
+
pointer-events: none;
|
|
686
|
+
top: 0;
|
|
687
|
+
left: 0;
|
|
688
|
+
height: 100%;
|
|
689
|
+
width: 100%;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.cdk-overlay-container {
|
|
693
|
+
position: fixed;
|
|
694
|
+
z-index: 1000;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
.cdk-overlay-container:empty {
|
|
698
|
+
display: none;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
.cdk-global-overlay-wrapper {
|
|
702
|
+
display: flex;
|
|
703
|
+
position: absolute;
|
|
704
|
+
z-index: 1000;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
.cdk-overlay-pane {
|
|
708
|
+
position: absolute;
|
|
709
|
+
pointer-events: auto;
|
|
710
|
+
box-sizing: border-box;
|
|
711
|
+
display: flex;
|
|
712
|
+
max-width: 100%;
|
|
713
|
+
max-height: 100%;
|
|
714
|
+
z-index: 1000;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.cdk-overlay-connected-position-bounding-box {
|
|
718
|
+
position: absolute;
|
|
719
|
+
display: flex;
|
|
720
|
+
flex-direction: column;
|
|
721
|
+
min-width: 1px;
|
|
722
|
+
min-height: 1px;
|
|
723
|
+
z-index: 1000;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
.cdk-overlay-backdrop {
|
|
727
|
+
position: absolute;
|
|
728
|
+
top: 0;
|
|
729
|
+
bottom: 0;
|
|
730
|
+
left: 0;
|
|
731
|
+
right: 0;
|
|
732
|
+
pointer-events: auto;
|
|
733
|
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
734
|
+
opacity: 0;
|
|
735
|
+
z-index: 1000;
|
|
736
|
+
transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
.cdk-overlay-backdrop-showing {
|
|
740
|
+
opacity: 1;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
.cdk-overlay-transparent-backdrop {
|
|
744
|
+
transition: visibility 1ms linear, opacity 1ms linear;
|
|
745
|
+
visibility: hidden;
|
|
746
|
+
opacity: 1;
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
|
|
750
|
+
opacity: 0;
|
|
751
|
+
visibility: visible;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
.cdk-global-scrollblock {
|
|
755
|
+
position: fixed;
|
|
756
|
+
width: 100%;
|
|
757
|
+
overflow-y: scroll;
|
|
758
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, Renderer2, OnDestroy, ElementRef, AfterViewInit, OnInit, TemplateRef, AfterContentInit, Provider, ChangeDetectorRef,
|
|
2
|
+
import { Signal, InjectionToken, Renderer2, OnDestroy, ElementRef, AfterViewInit, OnInit, TemplateRef, AfterContentInit, Provider, ChangeDetectorRef, PipeTransform, ViewContainerRef, AfterViewChecked, ComponentRef } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor, NgControl, AbstractControl } from '@angular/forms';
|
|
4
4
|
import { ComponentHarness, BaseHarnessFilters, HarnessPredicate, TestKey, HarnessLoader } from '@angular/cdk/testing';
|
|
5
5
|
import { SafeHtml, SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';
|
|
@@ -82,6 +82,42 @@ declare function scopeTestId(base: TnTestIdValue, ...suffix: (string | number |
|
|
|
82
82
|
*/
|
|
83
83
|
declare function composeTestId(type: string | null | undefined, value: TnTestIdValue): string;
|
|
84
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Resolve a form control's test-id base, falling back to the bound control's
|
|
87
|
+
* name (`formControlName`, a named `[formControl]`, or `ngModel`) when the
|
|
88
|
+
* consumer provides no explicit `testId`.
|
|
89
|
+
*
|
|
90
|
+
* Call from a form control's field initializer and bind the result on the
|
|
91
|
+
* element that represents the control:
|
|
92
|
+
*
|
|
93
|
+
* ```ts
|
|
94
|
+
* protected resolvedTestId = controlTestId(this.testId);
|
|
95
|
+
* ```
|
|
96
|
+
* ```html
|
|
97
|
+
* <input tnTestIdType="input" [tnTestId]="resolvedTestId()" />
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* The element-type prefix (`tnTestIdType`) still applies, so a
|
|
101
|
+
* `<tn-input formControlName="sshPort">` with no `testId` emits
|
|
102
|
+
* `input-ssh-port` — exactly what a consumer would otherwise hand-write as
|
|
103
|
+
* `testId="ssh-port"`. An explicit `testId` always wins.
|
|
104
|
+
*
|
|
105
|
+
* Two deliberate constraints make this safe inside a `ControlValueAccessor`:
|
|
106
|
+
*
|
|
107
|
+
* - **`self`-scoped**: the lookup reads only the `NgControl` on the component's
|
|
108
|
+
* OWN host element, never an ancestor's. A composite control whose template
|
|
109
|
+
* embeds child controls therefore can't leak its own name onto those children
|
|
110
|
+
* (which would make their ids collide).
|
|
111
|
+
* - **lazy**: the `NgControl` is resolved on first read, not in the injection
|
|
112
|
+
* context. Eagerly injecting `NgControl` into a component that provides
|
|
113
|
+
* `NG_VALUE_ACCESSOR` is circular (the control needs the value accessor, the
|
|
114
|
+
* accessor would need the control); reading it after construction is not.
|
|
115
|
+
*
|
|
116
|
+
* Must be called within an injection context (a field initializer or
|
|
117
|
+
* constructor).
|
|
118
|
+
*/
|
|
119
|
+
declare function controlTestId(testId: Signal<TnTestIdValue>): Signal<TnTestIdValue>;
|
|
120
|
+
|
|
85
121
|
/**
|
|
86
122
|
* Test-id attribute names supported by the library.
|
|
87
123
|
*
|
|
@@ -118,6 +154,10 @@ declare const TN_TEST_ATTR: InjectionToken<TnTestAttrName>;
|
|
|
118
154
|
* {@link composeTestId}). When no `tnTestIdType` is set the value is written
|
|
119
155
|
* verbatim, so existing call sites are unaffected.
|
|
120
156
|
*
|
|
157
|
+
* Form controls derive an unset base from the bound control's name via
|
|
158
|
+
* {@link controlTestId} before passing it here, so a control stays targetable by
|
|
159
|
+
* automation without the consumer repeating the name as a `testId`.
|
|
160
|
+
*
|
|
121
161
|
* @example
|
|
122
162
|
* ```html
|
|
123
163
|
* <!-- component-owned prefix: emits data-testid="button-save" -->
|
|
@@ -200,6 +240,8 @@ declare class TnSelectComponent<T = unknown> implements ControlValueAccessor, On
|
|
|
200
240
|
emptyLabel: _angular_core.InputSignal<string>;
|
|
201
241
|
disabled: _angular_core.InputSignal<boolean>;
|
|
202
242
|
testId: _angular_core.InputSignal<TnTestIdValue>;
|
|
243
|
+
/** Test-id base, falling back to the bound control name when `testId` is unset. */
|
|
244
|
+
protected resolvedTestId: _angular_core.Signal<TnTestIdValue>;
|
|
203
245
|
multiple: _angular_core.InputSignal<boolean>;
|
|
204
246
|
/**
|
|
205
247
|
* Optional extractor for the per-option test-id discriminator. Defaults to
|
|
@@ -245,8 +287,9 @@ declare class TnSelectComponent<T = unknown> implements ControlValueAccessor, On
|
|
|
245
287
|
private instanceId;
|
|
246
288
|
/**
|
|
247
289
|
* Id namespace used by all DOM ids the template emits (dropdown panel,
|
|
248
|
-
* option rows, group labels). Prefers
|
|
249
|
-
*
|
|
290
|
+
* option rows, group labels). Prefers the resolved test-id base (explicit
|
|
291
|
+
* `testId`, else the bound control name) so tests can target specific
|
|
292
|
+
* instances; otherwise falls back to a per-instance counter so two
|
|
250
293
|
* `<tn-select>`s on the same page never collide on `aria-controls`/group ids.
|
|
251
294
|
*/
|
|
252
295
|
protected idNamespace: _angular_core.Signal<string>;
|
|
@@ -279,16 +322,15 @@ declare class TnSelectComponent<T = unknown> implements ControlValueAccessor, On
|
|
|
279
322
|
isOptionFocused(option: TnSelectOption<T>): boolean;
|
|
280
323
|
/**
|
|
281
324
|
* Test-id segments for an option row, consumed by `[tnTestId]` with
|
|
282
|
-
* `tnTestIdType="option"`. The select's
|
|
283
|
-
*
|
|
284
|
-
* `
|
|
285
|
-
* comes from `optionTestIdKey` when
|
|
286
|
-
* `value`, else its `label`.
|
|
325
|
+
* `tnTestIdType="option"`. The select's resolved base (explicit `testId`, else
|
|
326
|
+
* the bound control name) scopes each option so ids stay unique across selects:
|
|
327
|
+
* base `quick-filters` + option value `ssd` → `option-quick-filters-ssd`; with
|
|
328
|
+
* no base → `option-ssd`. The discriminator comes from `optionTestIdKey` when
|
|
329
|
+
* provided, else the option's primitive `value`, else its `label`.
|
|
287
330
|
*/
|
|
288
331
|
protected optionTestIdParts(option: TnSelectOption<T>): (string | number | null | undefined)[];
|
|
289
332
|
private onChange;
|
|
290
333
|
private onTouched;
|
|
291
|
-
private elementRef;
|
|
292
334
|
private cdr;
|
|
293
335
|
private overlay;
|
|
294
336
|
private viewContainerRef;
|
|
@@ -307,11 +349,19 @@ declare class TnSelectComponent<T = unknown> implements ControlValueAccessor, On
|
|
|
307
349
|
*
|
|
308
350
|
* Why an overlay (vs. an inline absolutely-positioned panel):
|
|
309
351
|
* - Escapes parent `overflow: hidden`/clipping in surrounding layouts.
|
|
310
|
-
* - `outsidePointerEvents()` notifies on outside pointerdown WITHOUT
|
|
311
|
-
* intercepting the click (no backdrop) — so the user's click reaches
|
|
312
|
-
* the underlying target while the select closes silently.
|
|
313
352
|
* - Position is recomputed on scroll so the panel stays attached.
|
|
314
|
-
*
|
|
353
|
+
*
|
|
354
|
+
* Dismissal uses a transparent, full-viewport backdrop (`backdropClick()`).
|
|
355
|
+
* We previously ran backdrop-less with `outsidePointerEvents()`, but that
|
|
356
|
+
* only closes when the click lands strictly OUTSIDE the overlay pane — and
|
|
357
|
+
* the pane was sized to the (often full-width) trigger while the panel itself
|
|
358
|
+
* is only as wide as its content. The empty pane area to the right of the
|
|
359
|
+
* options stayed `pointer-events: auto`, so clicks there never counted as
|
|
360
|
+
* "outside" and the dropdown wouldn't close. A transparent backdrop closes on
|
|
361
|
+
* ANY click outside the panel regardless of pane geometry — the standard
|
|
362
|
+
* pattern used by native `<select>` and Material's `mat-select`. We therefore
|
|
363
|
+
* also drop the explicit `width`: the pane sizes to the panel content so the
|
|
364
|
+
* clickable surface matches what the user sees.
|
|
315
365
|
*/
|
|
316
366
|
private attachOverlay;
|
|
317
367
|
private detachOverlay;
|
|
@@ -1608,6 +1658,8 @@ declare class TnInputComponent implements AfterViewInit, OnDestroy, ControlValue
|
|
|
1608
1658
|
inputType: _angular_core.InputSignal<InputType>;
|
|
1609
1659
|
placeholder: _angular_core.InputSignal<string>;
|
|
1610
1660
|
testId: _angular_core.InputSignal<TnTestIdValue>;
|
|
1661
|
+
/** Test-id base, falling back to the bound control name when `testId` is unset. */
|
|
1662
|
+
protected resolvedTestId: _angular_core.Signal<TnTestIdValue>;
|
|
1611
1663
|
disabled: _angular_core.InputSignal<boolean>;
|
|
1612
1664
|
multiline: _angular_core.InputSignal<boolean>;
|
|
1613
1665
|
rows: _angular_core.InputSignal<number>;
|
|
@@ -3240,6 +3292,8 @@ declare class TnCheckboxComponent implements AfterViewInit, OnDestroy, ControlVa
|
|
|
3240
3292
|
required: _angular_core.InputSignal<boolean>;
|
|
3241
3293
|
indeterminate: _angular_core.InputSignal<boolean>;
|
|
3242
3294
|
testId: _angular_core.InputSignal<TnTestIdValue>;
|
|
3295
|
+
/** Test-id base, falling back to the bound control name when `testId` is unset. */
|
|
3296
|
+
protected resolvedTestId: _angular_core.Signal<TnTestIdValue>;
|
|
3243
3297
|
error: _angular_core.InputSignal<string | null>;
|
|
3244
3298
|
checked: _angular_core.InputSignal<boolean>;
|
|
3245
3299
|
change: _angular_core.OutputEmitterRef<boolean>;
|
|
@@ -3449,6 +3503,8 @@ declare class TnRadioComponent implements AfterViewInit, OnDestroy, ControlValue
|
|
|
3449
3503
|
disabled: _angular_core.InputSignal<boolean>;
|
|
3450
3504
|
required: _angular_core.InputSignal<boolean>;
|
|
3451
3505
|
testId: _angular_core.InputSignal<TnTestIdValue>;
|
|
3506
|
+
/** Test-id base, falling back to the bound control name when `testId` is unset. */
|
|
3507
|
+
protected resolvedTestId: _angular_core.Signal<TnTestIdValue>;
|
|
3452
3508
|
error: _angular_core.InputSignal<string | null>;
|
|
3453
3509
|
change: _angular_core.OutputEmitterRef<unknown>;
|
|
3454
3510
|
id: string;
|
|
@@ -3592,6 +3648,8 @@ declare class TnSlideToggleComponent implements AfterViewInit, OnDestroy, Contro
|
|
|
3592
3648
|
required: _angular_core.InputSignal<boolean>;
|
|
3593
3649
|
color: _angular_core.InputSignal<SlideToggleColor>;
|
|
3594
3650
|
testId: _angular_core.InputSignal<TnTestIdValue>;
|
|
3651
|
+
/** Test-id base, falling back to the bound control name when `testId` is unset. */
|
|
3652
|
+
protected resolvedTestId: _angular_core.Signal<TnTestIdValue>;
|
|
3595
3653
|
ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
3596
3654
|
ariaLabelledby: _angular_core.InputSignal<string | undefined>;
|
|
3597
3655
|
checked: _angular_core.InputSignal<boolean>;
|
|
@@ -8678,5 +8736,5 @@ declare const TN_THEME_DEFINITIONS: readonly TnThemeDefinition[];
|
|
|
8678
8736
|
*/
|
|
8679
8737
|
declare const THEME_MAP: Map<TnTheme, TnThemeDefinition>;
|
|
8680
8738
|
|
|
8681
|
-
export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, LabelMarkupPipe, LabelTextPipe, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, StripMntPrefixPipe, THEME_MAP, THEME_STORAGE_KEY, TN_FORM_FIELD_ERRORS, TN_TABLE_PAGER_DEFAULT_LABELS, TN_TABLE_PAGER_LABELS, TN_TEST_ATTR, TN_THEME_DEFINITIONS, TnAutocompleteComponent, TnAutocompleteHarness, TnBannerActionDirective, TnBannerComponent, TnBannerHarness, TnBrandedSpinnerComponent, TnButtonComponent, TnButtonHarness, TnButtonToggleComponent, TnButtonToggleGroupComponent, TnButtonToggleGroupHarness, TnButtonToggleHarness, TnCalendarComponent, TnCalendarHeaderComponent, TnCardComponent, TnCardFooterActionsDirective, TnCardHeaderActionsDirective, TnCardHeaderDirective, TnCellDefDirective, TnCheckboxComponent, TnCheckboxHarness, TnCheckboxLabelDirective, TnChipComponent, TnChipHarness, TnChipInputComponent, TnChipInputHarness, TnConfirmDialogComponent, TnDateInputComponent, TnDateInputHarness, TnDateRangeInputComponent, TnDateRangeInputHarness, TnDetailRowDefDirective, TnDialog, TnDialogHarness, TnDialogShellComponent, TnDialogTesting, TnDividerComponent, TnDividerDirective, TnDrawerComponent, TnDrawerContainerComponent, TnDrawerContainerHarness, TnDrawerContentComponent, TnDrawerHarness, TnEmptyComponent, TnEmptyHarness, TnExpansionPanelComponent, TnExpansionPanelHarness, TnFileInputComponent, TnFileInputHarness, TnFilePickerComponent, TnFilePickerPopupComponent, TnFormFieldComponent, TnFormFieldHarness, TnFormSectionComponent, TnFormSectionHarness, TnHeaderCellDefDirective, TnIconButtonComponent, TnIconButtonHarness, TnIconComponent, TnIconHarness, TnIconRegistryService, TnIconTesting, TnInputComponent, TnInputDirective, TnInputHarness, TnKeyboardShortcutComponent, TnKeyboardShortcutService, TnListAvatarDirective, TnListComponent, TnListIconDirective, TnListItemComponent, TnListItemLineDirective, TnListItemPrimaryDirective, TnListItemSecondaryDirective, TnListItemTitleDirective, TnListItemTrailingDirective, TnListOptionComponent, TnListSubheaderComponent, TnMenuActivateHoverDirective, TnMenuComponent, TnMenuHarness, TnMenuItemComponent, TnMenuTesting, TnMenuTriggerDirective, TnMonthViewComponent, TnMultiYearViewComponent, TnNestedTreeNodeComponent, TnParticleProgressBarComponent, TnProgressBarComponent, TnRadioComponent, TnRadioHarness, TnSelectComponent, TnSelectHarness, TnSelectionListComponent, TnSidePanelActionDirective, TnSidePanelComponent, TnSidePanelHarness, TnSidePanelHeaderActionDirective, TnSlideToggleComponent, TnSlideToggleHarness, TnSliderComponent, TnSliderThumbDirective, TnSliderWithLabelDirective, TnSpinnerComponent, TnSpriteLoaderService, TnStepComponent, TnStepperComponent, TnTabComponent, TnTabHarness, TnTabPanelComponent, TnTabPanelHarness, TnTableColumnDirective, TnTableComponent, TnTableHarness, TnTablePagerComponent, TnTablePagerHarness, TnTabsComponent, TnTabsHarness, TnTestIdDirective, TnTheme, TnThemeService, TnTimeInputComponent, TnToastComponent, TnToastMock, TnToastPosition, TnToastRef, TnToastService, TnToastTesting, TnToastType, TnTooltipComponent, TnTooltipDirective, TnTreeComponent, TnTreeFlatDataSource, TnTreeFlattener, TnTreeNodeComponent, TnTreeNodeOutletDirective, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, composeTestId, createLucideLibrary, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, formatSize, kebabTestSegment, labelMarkupToHtml, labelMarkupToText, libIconMarker, parseLabelMarkup, parseSize, registerLucideIcons, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
|
|
8739
|
+
export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, LabelMarkupPipe, LabelTextPipe, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, StripMntPrefixPipe, THEME_MAP, THEME_STORAGE_KEY, TN_FORM_FIELD_ERRORS, TN_TABLE_PAGER_DEFAULT_LABELS, TN_TABLE_PAGER_LABELS, TN_TEST_ATTR, TN_THEME_DEFINITIONS, TnAutocompleteComponent, TnAutocompleteHarness, TnBannerActionDirective, TnBannerComponent, TnBannerHarness, TnBrandedSpinnerComponent, TnButtonComponent, TnButtonHarness, TnButtonToggleComponent, TnButtonToggleGroupComponent, TnButtonToggleGroupHarness, TnButtonToggleHarness, TnCalendarComponent, TnCalendarHeaderComponent, TnCardComponent, TnCardFooterActionsDirective, TnCardHeaderActionsDirective, TnCardHeaderDirective, TnCellDefDirective, TnCheckboxComponent, TnCheckboxHarness, TnCheckboxLabelDirective, TnChipComponent, TnChipHarness, TnChipInputComponent, TnChipInputHarness, TnConfirmDialogComponent, TnDateInputComponent, TnDateInputHarness, TnDateRangeInputComponent, TnDateRangeInputHarness, TnDetailRowDefDirective, TnDialog, TnDialogHarness, TnDialogShellComponent, TnDialogTesting, TnDividerComponent, TnDividerDirective, TnDrawerComponent, TnDrawerContainerComponent, TnDrawerContainerHarness, TnDrawerContentComponent, TnDrawerHarness, TnEmptyComponent, TnEmptyHarness, TnExpansionPanelComponent, TnExpansionPanelHarness, TnFileInputComponent, TnFileInputHarness, TnFilePickerComponent, TnFilePickerPopupComponent, TnFormFieldComponent, TnFormFieldHarness, TnFormSectionComponent, TnFormSectionHarness, TnHeaderCellDefDirective, TnIconButtonComponent, TnIconButtonHarness, TnIconComponent, TnIconHarness, TnIconRegistryService, TnIconTesting, TnInputComponent, TnInputDirective, TnInputHarness, TnKeyboardShortcutComponent, TnKeyboardShortcutService, TnListAvatarDirective, TnListComponent, TnListIconDirective, TnListItemComponent, TnListItemLineDirective, TnListItemPrimaryDirective, TnListItemSecondaryDirective, TnListItemTitleDirective, TnListItemTrailingDirective, TnListOptionComponent, TnListSubheaderComponent, TnMenuActivateHoverDirective, TnMenuComponent, TnMenuHarness, TnMenuItemComponent, TnMenuTesting, TnMenuTriggerDirective, TnMonthViewComponent, TnMultiYearViewComponent, TnNestedTreeNodeComponent, TnParticleProgressBarComponent, TnProgressBarComponent, TnRadioComponent, TnRadioHarness, TnSelectComponent, TnSelectHarness, TnSelectionListComponent, TnSidePanelActionDirective, TnSidePanelComponent, TnSidePanelHarness, TnSidePanelHeaderActionDirective, TnSlideToggleComponent, TnSlideToggleHarness, TnSliderComponent, TnSliderThumbDirective, TnSliderWithLabelDirective, TnSpinnerComponent, TnSpriteLoaderService, TnStepComponent, TnStepperComponent, TnTabComponent, TnTabHarness, TnTabPanelComponent, TnTabPanelHarness, TnTableColumnDirective, TnTableComponent, TnTableHarness, TnTablePagerComponent, TnTablePagerHarness, TnTabsComponent, TnTabsHarness, TnTestIdDirective, TnTheme, TnThemeService, TnTimeInputComponent, TnToastComponent, TnToastMock, TnToastPosition, TnToastRef, TnToastService, TnToastTesting, TnToastType, TnTooltipComponent, TnTooltipDirective, TnTreeComponent, TnTreeFlatDataSource, TnTreeFlattener, TnTreeNodeComponent, TnTreeNodeOutletDirective, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, composeTestId, controlTestId, createLucideLibrary, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, formatSize, kebabTestSegment, labelMarkupToHtml, labelMarkupToText, libIconMarker, parseLabelMarkup, parseSize, registerLucideIcons, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
|
|
8682
8740
|
export type { AutocompleteHarnessFilters, BannerHarnessFilters, ButtonHarnessFilters, ButtonToggleHarnessFilters, CalendarCell, CheckboxHarnessFilters, ChipColor, ChipHarnessFilters, CreateFolderEvent, DateInputHarnessFilters, DateRange, DateRangeInputHarnessFilters, DialogHarnessFilters, EmptyHarnessFilters, ExpansionPanelHarnessFilters, FileInputHarnessFilters, FilePickerCallbacks, FilePickerError, FilePickerMode, FileSystemItem, FormFieldHarnessFilters, FormSectionHarnessFilters, IconButtonHarnessFilters, IconHarnessFilters, IconLibrary, IconLibraryType, IconResult, IconSize, IconSource, IconTestingMockOverrides, InputHarnessFilters, KeyCombination, LabelMarkupSegment, LabelMarkupSegmentType, LabelType, LucideIconOptions, MenuHarnessFilters, MockIconRegistry, MockSpriteLoader, PathSegment, PlatformType, ProgressBarMode, RadioHarnessFilters, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SidePanelHarnessFilters, SizeStandard, SlideToggleColor, SlideToggleHarnessFilters, SpinnerMode, SpriteConfig, SubscriptSizing, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnAutocompleteOption, TnBannerType, TnButtonToggleType, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnChipInputHarnessFilters, TnChipInputOption, TnConfirmDialogData, TnDialogDefaults, TnDialogOpenTarget, TnDrawerMode, TnDrawerPosition, TnEmptySize, TnFlatTreeNode, TnFormFieldErrorMessage, TnFormFieldErrorMessages, TnFormFieldErrorResolver, TnMenuItem, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnSortEvent, TnTableDataProvider, TnTableDataSource, TnTableHarnessFilters, TnTablePagerHarnessFilters, TnTablePagerLabels, TnTablePagination, TnTestAttrName, TnTestIdValue, TnThemeDefinition, TnToastCall, TnToastConfig, TooltipPosition, YearCell };
|