@truenas/ui-components 0.1.72 → 0.1.73

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truenas/ui-components",
3
- "version": "0.1.72",
3
+ "version": "0.1.73",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public"
@@ -1,9 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, OnDestroy, ElementRef, AfterViewInit, OnInit, TemplateRef, AfterContentInit, Provider, ChangeDetectorRef, Signal, PipeTransform, ViewContainerRef, AfterViewChecked, ComponentRef } from '@angular/core';
3
- import { ControlValueAccessor, NgControl } from '@angular/forms';
2
+ import { InjectionToken, Renderer2, OnDestroy, ElementRef, AfterViewInit, OnInit, TemplateRef, AfterContentInit, Provider, ChangeDetectorRef, Signal, PipeTransform, ViewContainerRef, AfterViewChecked, ComponentRef } from '@angular/core';
3
+ import { ControlValueAccessor, NgControl, AbstractControl } from '@angular/forms';
4
4
  import { ComponentHarness, BaseHarnessFilters, HarnessPredicate, HarnessLoader } from '@angular/cdk/testing';
5
5
  import { SafeHtml, SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';
6
6
  import { ComponentFixture } from '@angular/core/testing';
7
+ import * as _truenas_ui_components from '@truenas/ui-components';
7
8
  import { SelectionModel, DataSource } from '@angular/cdk/collections';
8
9
  import * as rxjs from 'rxjs';
9
10
  import { Observable } from 'rxjs';
@@ -143,6 +144,18 @@ declare class TnTestIdDirective {
143
144
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TnTestIdDirective, "[tnTestId]", never, { "testId": { "alias": "tnTestId"; "required": false; "isSignal": true; }; "tnTestIdType": { "alias": "tnTestIdType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
144
145
  }
145
146
 
147
+ /**
148
+ * Apply a composed test-id string to `element`'s `attrName`, removing the
149
+ * attribute entirely when `composed` is empty (avoids `attr=""`).
150
+ *
151
+ * Shared by {@link TnTestIdDirective} and by components that must write the
152
+ * attribute imperatively because they also read their base back — notably
153
+ * `tn-table-pager`, where injecting a host directive to read its input signal
154
+ * is unreliable in the AOT-linked package build. Centralizing the set/remove
155
+ * branch keeps those write semantics in one place so they can't drift.
156
+ */
157
+ declare function writeTestId(renderer: Renderer2, element: Element, attrName: string, composed: string): void;
158
+
146
159
  declare class TnAutocompleteComponent<T = unknown> implements ControlValueAccessor, OnDestroy {
147
160
  private readonly elementRef;
148
161
  private readonly overlay;
@@ -3148,19 +3161,106 @@ declare class TnFormFieldComponent implements AfterContentInit {
3148
3161
  tooltip: _angular_core.InputSignal<string>;
3149
3162
  /** Placement of the tooltip relative to its help icon. */
3150
3163
  tooltipPosition: _angular_core.InputSignal<TooltipPosition>;
3164
+ /**
3165
+ * Per-field overrides for validation messages, keyed by error key. Values may
3166
+ * be a string or a function that receives the error's detail value. Takes
3167
+ * precedence over the app-wide {@link TN_FORM_FIELD_ERRORS} resolver and the
3168
+ * built-in defaults.
3169
+ */
3170
+ errorMessages: _angular_core.InputSignal<Partial<Record<string, _truenas_ui_components.TnFormFieldErrorMessage>>>;
3151
3171
  control: _angular_core.Signal<NgControl | undefined>;
3152
- protected hasError: _angular_core.WritableSignal<boolean>;
3153
- protected errorMessage: _angular_core.WritableSignal<string>;
3172
+ private destroyRef;
3173
+ /**
3174
+ * App-wide message resolver, captured once at construction. Unlike the
3175
+ * `errorMessages` input it is not reactive — swapping the provided function at
3176
+ * runtime will not be picked up by an already-created field.
3177
+ */
3178
+ private errorResolver;
3179
+ /**
3180
+ * Snapshot of the relevant control state. Updated from the control's status
3181
+ * stream because `NgControl` itself is not signal-based; downstream `computed`s
3182
+ * read this so the derived state stays reactive.
3183
+ */
3184
+ private controlState;
3185
+ protected hasError: _angular_core.Signal<boolean>;
3186
+ protected errorMessage: _angular_core.Signal<string>;
3154
3187
  ngAfterContentInit(): void;
3155
- private updateErrorState;
3156
- private getErrorMessage;
3188
+ private syncControlState;
3189
+ /**
3190
+ * Resolves a user-facing message for the active error. Reads the
3191
+ * `errorMessages` input (and the injected resolver), so it is reactive: the
3192
+ * displayed message updates when either the control errors or the overrides
3193
+ * change — e.g. a runtime locale switch.
3194
+ */
3195
+ private resolveErrorMessage;
3196
+ /**
3197
+ * Runs a caller-supplied message provider, swallowing any throw so a buggy
3198
+ * override or resolver cannot break change detection. Logs in dev mode and
3199
+ * returns null so resolution falls through to the next layer.
3200
+ */
3201
+ private runGuarded;
3157
3202
  showError: _angular_core.Signal<boolean>;
3158
3203
  showHint: _angular_core.Signal<boolean>;
3159
3204
  protected showSubscript: _angular_core.Signal<boolean>;
3160
3205
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TnFormFieldComponent, never>;
3161
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnFormFieldComponent, "tn-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; }, {}, ["control"], ["*"], true, never>;
3206
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnFormFieldComponent, "tn-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; }, {}, ["control"], ["*"], true, never>;
3162
3207
  }
3163
3208
 
3209
+ /**
3210
+ * A user-friendly message for a single validation error, or a function that
3211
+ * builds one from the error's detail value.
3212
+ *
3213
+ * The function form receives the error value Angular stored for that key, which
3214
+ * lets you interpolate validator metadata, e.g.
3215
+ * `minlength: (e) => \`At least ${e.requiredLength} characters\``.
3216
+ */
3217
+ type TnFormFieldErrorMessage = string | ((errorValue: unknown) => string);
3218
+ /**
3219
+ * A per-field map of validation error key -> message (or message factory).
3220
+ *
3221
+ * @example
3222
+ * ```html
3223
+ * <tn-form-field [errorMessages]="{
3224
+ * required: 'Please enter a name',
3225
+ * pattern: 'Letters only',
3226
+ * minlength: messageFn
3227
+ * }">
3228
+ * ```
3229
+ */
3230
+ type TnFormFieldErrorMessages = Partial<Record<string, TnFormFieldErrorMessage>>;
3231
+ /**
3232
+ * App-wide resolver for validation messages. Register one with the
3233
+ * {@link TN_FORM_FIELD_ERRORS} token to centralize wording and i18n.
3234
+ *
3235
+ * Return a string to provide a message, or `null`/`undefined` to defer to the
3236
+ * next layer (built-in defaults, then the raw error key).
3237
+ *
3238
+ * @param errorKey The active validation error key (e.g. `'required'`).
3239
+ * @param errorValue The value Angular stored for that key.
3240
+ * @param control The control that failed validation, if available.
3241
+ */
3242
+ type TnFormFieldErrorResolver = (errorKey: string, errorValue: unknown, control: AbstractControl | null) => string | null | undefined;
3243
+ /**
3244
+ * Injection token for an app-wide {@link TnFormFieldErrorResolver}.
3245
+ *
3246
+ * Because the library ships no localized strings, this is the recommended hook
3247
+ * for wiring a translation service so every `tn-form-field` resolves messages
3248
+ * consistently. Per-field `errorMessages` still take precedence over it.
3249
+ *
3250
+ * @example
3251
+ * ```ts
3252
+ * providers: [
3253
+ * {
3254
+ * provide: TN_FORM_FIELD_ERRORS,
3255
+ * useFactory: (translate: TranslateService): TnFormFieldErrorResolver =>
3256
+ * (key, value) => translate.instant(`errors.${key}`, value as object),
3257
+ * deps: [TranslateService],
3258
+ * },
3259
+ * ];
3260
+ * ```
3261
+ */
3262
+ declare const TN_FORM_FIELD_ERRORS: InjectionToken<TnFormFieldErrorResolver>;
3263
+
3164
3264
  /**
3165
3265
  * Harness for interacting with `tn-form-field` in tests.
3166
3266
  * Provides methods for querying label, hint, error state, and accessing
@@ -4660,7 +4760,22 @@ interface TnTableDataProvider {
4660
4760
  */
4661
4761
  declare class TnTablePagerComponent {
4662
4762
  private destroyRef;
4663
- private readonly testIdDirective;
4763
+ private renderer;
4764
+ private hostRef;
4765
+ private testAttrName;
4766
+ /**
4767
+ * Semantic base applied to the host (via the `tnTestId` host directive) and
4768
+ * used to scope each child control, so multiple pagers on one page don't
4769
+ * collide on `select-page-size` / `button-first-page`. With a base of
4770
+ * `storage` the children become `select-storage-page-size`,
4771
+ * `button-storage-first-page`, etc.; with no base they stay
4772
+ * `select-page-size` / `button-first-page`.
4773
+ *
4774
+ * The page-size dropdown also scopes each option by its value, so individual
4775
+ * sizes are addressable: `option-page-size-10` / `-20` / `-50` / `-100` (or
4776
+ * `option-storage-page-size-10` under a base).
4777
+ */
4778
+ testId: _angular_core.InputSignal<TnTestIdValue>;
4664
4779
  /**
4665
4780
  * Build a child control's test-id base by joining the pager's `testId` with
4666
4781
  * `suffix` into a single string (kebab-joined). Returning a string keeps it
@@ -4759,7 +4874,7 @@ declare class TnTablePagerComponent {
4759
4874
  /** Forwards the current page/size to the data provider, if one is bound. */
4760
4875
  private pushToProvider;
4761
4876
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TnTablePagerComponent, never>;
4762
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnTablePagerComponent, "tn-table-pager", never, { "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "dataProvider": { "alias": "dataProvider"; "required": false; "isSignal": true; }; "itemsPerPageLabel": { "alias": "itemsPerPageLabel"; "required": false; "isSignal": true; }; "ofLabel": { "alias": "ofLabel"; "required": false; "isSignal": true; }; "firstPageLabel": { "alias": "firstPageLabel"; "required": false; "isSignal": true; }; "previousPageLabel": { "alias": "previousPageLabel"; "required": false; "isSignal": true; }; "nextPageLabel": { "alias": "nextPageLabel"; "required": false; "isSignal": true; }; "lastPageLabel": { "alias": "lastPageLabel"; "required": false; "isSignal": true; }; "tablePaginationLabel": { "alias": "tablePaginationLabel"; "required": false; "isSignal": true; }; }, { "currentPage": "currentPageChange"; "pageSize": "pageSizeChange"; "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, [{ directive: typeof TnTestIdDirective; inputs: { "tnTestId": "testId"; }; outputs: {}; }]>;
4877
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnTablePagerComponent, "tn-table-pager", never, { "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "dataProvider": { "alias": "dataProvider"; "required": false; "isSignal": true; }; "itemsPerPageLabel": { "alias": "itemsPerPageLabel"; "required": false; "isSignal": true; }; "ofLabel": { "alias": "ofLabel"; "required": false; "isSignal": true; }; "firstPageLabel": { "alias": "firstPageLabel"; "required": false; "isSignal": true; }; "previousPageLabel": { "alias": "previousPageLabel"; "required": false; "isSignal": true; }; "nextPageLabel": { "alias": "nextPageLabel"; "required": false; "isSignal": true; }; "lastPageLabel": { "alias": "lastPageLabel"; "required": false; "isSignal": true; }; "tablePaginationLabel": { "alias": "tablePaginationLabel"; "required": false; "isSignal": true; }; }, { "currentPage": "currentPageChange"; "pageSize": "pageSizeChange"; "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
4763
4878
  }
4764
4879
 
4765
4880
  /**
@@ -7198,5 +7313,5 @@ declare const TN_THEME_DEFINITIONS: readonly TnThemeDefinition[];
7198
7313
  */
7199
7314
  declare const THEME_MAP: Map<TnTheme, TnThemeDefinition>;
7200
7315
 
7201
- export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, StripMntPrefixPipe, THEME_MAP, THEME_STORAGE_KEY, 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, TnCardHeaderDirective, TnCellDefDirective, TnCheckboxComponent, TnCheckboxHarness, TnCheckboxLabelDirective, TnChipComponent, TnConfirmDialogComponent, TnDateInputComponent, TnDateInputHarness, TnDateRangeInputComponent, TnDateRangeInputHarness, TnDetailRowDefDirective, TnDialog, TnDialogHarness, TnDialogShellComponent, TnDialogTesting, TnDividerComponent, TnDividerDirective, TnDrawerComponent, TnDrawerContainerComponent, TnDrawerContainerHarness, TnDrawerContentComponent, TnDrawerHarness, TnEmptyComponent, TnEmptyHarness, TnExpansionPanelComponent, TnExpansionPanelHarness, TnFilePickerComponent, TnFilePickerPopupComponent, TnFormFieldComponent, TnFormFieldHarness, 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, kebabTestSegment, libIconMarker, registerLucideIcons, scopeTestId, setupLucideIntegration, tnIconMarker };
7202
- export type { AutocompleteHarnessFilters, BannerHarnessFilters, ButtonHarnessFilters, ButtonToggleHarnessFilters, CalendarCell, CheckboxHarnessFilters, ChipColor, CreateFolderEvent, DateInputHarnessFilters, DateRange, DateRangeInputHarnessFilters, DialogHarnessFilters, EmptyHarnessFilters, ExpansionPanelHarnessFilters, FilePickerCallbacks, FilePickerError, FilePickerMode, FileSystemItem, FormFieldHarnessFilters, IconButtonHarnessFilters, IconHarnessFilters, IconLibrary, IconLibraryType, IconResult, IconSize, IconSource, IconTestingMockOverrides, InputHarnessFilters, KeyCombination, LabelType, LucideIconOptions, MenuHarnessFilters, MockIconRegistry, MockSpriteLoader, PathSegment, PlatformType, ProgressBarMode, RadioHarnessFilters, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SidePanelHarnessFilters, SlideToggleColor, SlideToggleHarnessFilters, SpinnerMode, SpriteConfig, SubscriptSizing, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnBannerType, TnButtonToggleType, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnConfirmDialogData, TnDialogDefaults, TnDialogOpenTarget, TnDrawerMode, TnDrawerPosition, TnEmptySize, TnFlatTreeNode, TnMenuItem, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnSortEvent, TnTableDataProvider, TnTableDataSource, TnTableHarnessFilters, TnTablePagerHarnessFilters, TnTablePagerLabels, TnTablePagination, TnTestAttrName, TnTestIdValue, TnThemeDefinition, TnToastCall, TnToastConfig, TooltipPosition, YearCell };
7316
+ export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, 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, TnCardHeaderDirective, TnCellDefDirective, TnCheckboxComponent, TnCheckboxHarness, TnCheckboxLabelDirective, TnChipComponent, TnConfirmDialogComponent, TnDateInputComponent, TnDateInputHarness, TnDateRangeInputComponent, TnDateRangeInputHarness, TnDetailRowDefDirective, TnDialog, TnDialogHarness, TnDialogShellComponent, TnDialogTesting, TnDividerComponent, TnDividerDirective, TnDrawerComponent, TnDrawerContainerComponent, TnDrawerContainerHarness, TnDrawerContentComponent, TnDrawerHarness, TnEmptyComponent, TnEmptyHarness, TnExpansionPanelComponent, TnExpansionPanelHarness, TnFilePickerComponent, TnFilePickerPopupComponent, TnFormFieldComponent, TnFormFieldHarness, 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, kebabTestSegment, libIconMarker, registerLucideIcons, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
7317
+ export type { AutocompleteHarnessFilters, BannerHarnessFilters, ButtonHarnessFilters, ButtonToggleHarnessFilters, CalendarCell, CheckboxHarnessFilters, ChipColor, CreateFolderEvent, DateInputHarnessFilters, DateRange, DateRangeInputHarnessFilters, DialogHarnessFilters, EmptyHarnessFilters, ExpansionPanelHarnessFilters, FilePickerCallbacks, FilePickerError, FilePickerMode, FileSystemItem, FormFieldHarnessFilters, IconButtonHarnessFilters, IconHarnessFilters, IconLibrary, IconLibraryType, IconResult, IconSize, IconSource, IconTestingMockOverrides, InputHarnessFilters, KeyCombination, LabelType, LucideIconOptions, MenuHarnessFilters, MockIconRegistry, MockSpriteLoader, PathSegment, PlatformType, ProgressBarMode, RadioHarnessFilters, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SidePanelHarnessFilters, SlideToggleColor, SlideToggleHarnessFilters, SpinnerMode, SpriteConfig, SubscriptSizing, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnBannerType, TnButtonToggleType, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, 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 };