@truenas/ui-components 0.1.75 → 0.1.77

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.75",
3
+ "version": "0.1.77",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public"
@@ -26,6 +26,7 @@
26
26
  "@types/svg-sprite": "~0.0.39",
27
27
  "@types/vinyl": "~2.0.12",
28
28
  "cheerio": "~1.0.0",
29
+ "filesize": "~11.0.17",
29
30
  "svg-sprite": "~2.0.4",
30
31
  "tslib": "^2.3.0",
31
32
  "tsx": "~4.19.1",
@@ -713,6 +713,14 @@ declare class TnButtonComponent implements AfterViewInit {
713
713
  backgroundColor: _angular_core.InputSignal<string | undefined>;
714
714
  label: _angular_core.InputSignal<string>;
715
715
  disabled: _angular_core.InputSignal<boolean>;
716
+ /**
717
+ * Native `type` of the rendered `<button>`. Defaults to `button` so stray
718
+ * clicks never submit an enclosing form. Set to `submit` for a form's save
719
+ * button — this is what makes pressing Enter in a form field fire the
720
+ * form's `(submit)`/`(ngSubmit)` handler; a `(onClick)` binding alone does
721
+ * not. Ignored in anchor mode (`href`/`routerLink`).
722
+ */
723
+ type: _angular_core.InputSignal<"button" | "submit" | "reset">;
716
724
  /**
717
725
  * Semantic test-id base for the rendered element. The library prepends the
718
726
  * element type (`button`) and renders the result under whichever attribute
@@ -749,7 +757,7 @@ declare class TnButtonComponent implements AfterViewInit {
749
757
  private innerRef;
750
758
  ngAfterViewInit(): void;
751
759
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TnButtonComponent, never>;
752
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnButtonComponent, "tn-button", never, { "primary": { "alias": "primary"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "queryParams": { "alias": "queryParams"; "required": false; "isSignal": true; }; "fragment": { "alias": "fragment"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "rel": { "alias": "rel"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, never, true, never>;
760
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnButtonComponent, "tn-button", never, { "primary": { "alias": "primary"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "queryParams": { "alias": "queryParams"; "required": false; "isSignal": true; }; "fragment": { "alias": "fragment"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "rel": { "alias": "rel"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, never, true, never>;
753
761
  }
754
762
 
755
763
  /**
@@ -818,6 +826,17 @@ declare class TnButtonHarness extends ComponentHarness {
818
826
  * ```
819
827
  */
820
828
  isDisabled(): Promise<boolean>;
829
+ /**
830
+ * Gets the native `type` of the rendered `<button>` (`button`, `submit`, or
831
+ * `reset`). Returns `null` for anchor-mode renders.
832
+ *
833
+ * @example
834
+ * ```typescript
835
+ * const saveBtn = await loader.getHarness(TnButtonHarness.with({ label: 'Save' }));
836
+ * expect(await saveBtn.getType()).toBe('submit');
837
+ * ```
838
+ */
839
+ getType(): Promise<string | null>;
821
840
  /**
822
841
  * Gets the resolved URL of the rendered element. Returns the `href` for
823
842
  * anchor-mode renders (both plain `href` and `routerLink`) and `null` for
@@ -1148,9 +1167,52 @@ declare enum InputType {
1148
1167
  Email = "email",
1149
1168
  Number = "number",
1150
1169
  Password = "password",
1151
- PlainText = "text"
1170
+ PlainText = "text",
1171
+ /**
1172
+ * Data-size field: the form model holds a raw byte count (a number), while the
1173
+ * field displays/accepts a human-readable string (e.g. `2 GiB`, `500M`, `2 TB`).
1174
+ * See `tn-input`'s `sizeStandard` / `sizeDefaultUnit` inputs to tune formatting
1175
+ * and bare-number parsing.
1176
+ */
1177
+ Size = "size"
1152
1178
  }
1153
1179
 
1180
+ /**
1181
+ * Unit standard used to format and parse data sizes.
1182
+ *
1183
+ * - `iec` — base-2 with `KiB`/`MiB`/`GiB` symbols (1 KiB = 1024 B). The TrueNAS
1184
+ * convention and `tn-input`'s default.
1185
+ * - `si` — base-10 with `kB`/`MB`/`GB` symbols (1 kB = 1000 B).
1186
+ */
1187
+ type SizeStandard = 'iec' | 'si';
1188
+ /**
1189
+ * Formats a raw byte count into a human-readable string (e.g. `2 GiB`).
1190
+ *
1191
+ * Returns an empty string for `null`/`undefined`/empty/non-numeric input so the
1192
+ * field renders blank rather than `NaN`.
1193
+ *
1194
+ * @param bytes The byte count to format.
1195
+ * @param standard Unit standard (defaults to IEC base-2).
1196
+ * @param round Decimal places to round to (defaults to 2).
1197
+ */
1198
+ declare function formatSize(bytes: number | string | null | undefined, standard?: SizeStandard, round?: number): string;
1199
+ /**
1200
+ * Parses a human-readable size string into a raw byte count.
1201
+ *
1202
+ * Lenient by design: accepts IEC (`KiB`), short (`KB`), and human (`K`) unit
1203
+ * spellings, optional whitespace, and a bare number (which is interpreted using
1204
+ * `defaultUnit`). The chosen `standard` decides the multiplier — under `iec`,
1205
+ * `MB`/`M`/`MiB` are all treated as 1024-based; under `si` they are 1000-based.
1206
+ *
1207
+ * Returns `null` for empty, malformed, or unrecognized-unit input so callers can
1208
+ * map invalid entries to a null form-model value (never `0`).
1209
+ *
1210
+ * @param raw The human-readable string to parse.
1211
+ * @param defaultUnit Unit assumed when the input carries no unit (defaults to `MiB`).
1212
+ * @param standard Unit standard (defaults to IEC base-2).
1213
+ */
1214
+ declare function parseSize(raw: string | number | null | undefined, defaultUnit?: string, standard?: SizeStandard): number | null;
1215
+
1154
1216
  declare class TnInputComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {
1155
1217
  inputEl: _angular_core.Signal<ElementRef<HTMLInputElement | HTMLTextAreaElement>>;
1156
1218
  inputType: _angular_core.InputSignal<InputType>;
@@ -1178,6 +1240,24 @@ declare class TnInputComponent implements AfterViewInit, OnDestroy, ControlValue
1178
1240
  * (e.g. `Validators.min`/`max`), which work because the control emits real numbers.
1179
1241
  */
1180
1242
  allowDecimals: _angular_core.InputSignal<boolean>;
1243
+ /**
1244
+ * Unit standard for the `Size` input type — `iec` (base-2, `KiB`/`MiB`) or
1245
+ * `si` (base-10, `kB`/`MB`). Drives both the formatted display and how bare
1246
+ * numbers are scaled when parsing. Ignored unless `inputType` is `Size`.
1247
+ */
1248
+ sizeStandard: _angular_core.InputSignal<SizeStandard>;
1249
+ /**
1250
+ * Unit assumed when a user types a bare number (no unit) into a `Size` field —
1251
+ * e.g. with the default `MiB`, typing `200` yields 200 MiB. Accepts IEC
1252
+ * (`KiB`), short (`KB`), or human (`K`) spellings. Ignored unless `inputType`
1253
+ * is `Size`.
1254
+ */
1255
+ sizeDefaultUnit: _angular_core.InputSignal<string>;
1256
+ /**
1257
+ * Decimal places used when formatting a `Size` field's value for display
1258
+ * (e.g. `1.5 GiB`). Ignored unless `inputType` is `Size`.
1259
+ */
1260
+ sizeRound: _angular_core.InputSignal<number>;
1181
1261
  prefixIcon: _angular_core.InputSignal<string | undefined>;
1182
1262
  prefixIconLibrary: _angular_core.InputSignal<IconLibraryType | undefined>;
1183
1263
  suffixIcon: _angular_core.InputSignal<string | undefined>;
@@ -1187,13 +1267,15 @@ declare class TnInputComponent implements AfterViewInit, OnDestroy, ControlValue
1187
1267
  hasPrefixIcon: _angular_core.Signal<boolean>;
1188
1268
  hasSuffixIcon: _angular_core.Signal<boolean>;
1189
1269
  isNumeric: _angular_core.Signal<boolean>;
1270
+ /** True when the field is in data-size mode (human-readable string ⇄ byte-count model). */
1271
+ isSize: _angular_core.Signal<boolean>;
1190
1272
  /** True when the field only accepts whole numbers (i.e. `allowDecimals` is false). */
1191
1273
  integerOnly: _angular_core.Signal<boolean>;
1192
- /** The `type` attribute actually rendered. Number mode uses a text input + inputmode to avoid the native type="number" footguns. */
1274
+ /** The `type` attribute actually rendered. Number and size modes use a text input: number avoids the native type="number" footguns, size must accept unit letters. */
1193
1275
  resolvedType: _angular_core.Signal<InputType>;
1194
- /** `inputmode` hint: numeric keypad for integers, decimal keypad otherwise. Null (omitted) when not in number mode. */
1276
+ /** `inputmode` hint: numeric keypad for integers, decimal keypad otherwise. Null (omitted) outside number mode size fields accept unit letters, so they keep the full keyboard. */
1195
1277
  numericInputMode: _angular_core.Signal<"numeric" | "decimal" | null>;
1196
- /** Number mode is always single-line; it wins over `multiline` if both are set. */
1278
+ /** Number and size modes are always single-line; they win over `multiline` if both are set. */
1197
1279
  showTextarea: _angular_core.Signal<boolean>;
1198
1280
  id: string;
1199
1281
  protected value: string;
@@ -1216,7 +1298,7 @@ declare class TnInputComponent implements AfterViewInit, OnDestroy, ControlValue
1216
1298
  /** Parses a sanitized string to a number, mapping empty/partial input to null (never 0). */
1217
1299
  private parseNumeric;
1218
1300
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TnInputComponent, never>;
1219
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnInputComponent, "tn-input", never, { "inputType": { "alias": "inputType"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "multiline": { "alias": "multiline"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "allowDecimals": { "alias": "allowDecimals"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "prefixIconLibrary": { "alias": "prefixIconLibrary"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "suffixIconLibrary": { "alias": "suffixIconLibrary"; "required": false; "isSignal": true; }; "suffixIconAriaLabel": { "alias": "suffixIconAriaLabel"; "required": false; "isSignal": true; }; }, { "onSuffixAction": "onSuffixAction"; }, never, never, true, never>;
1301
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnInputComponent, "tn-input", never, { "inputType": { "alias": "inputType"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "multiline": { "alias": "multiline"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "allowDecimals": { "alias": "allowDecimals"; "required": false; "isSignal": true; }; "sizeStandard": { "alias": "sizeStandard"; "required": false; "isSignal": true; }; "sizeDefaultUnit": { "alias": "sizeDefaultUnit"; "required": false; "isSignal": true; }; "sizeRound": { "alias": "sizeRound"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "prefixIconLibrary": { "alias": "prefixIconLibrary"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "suffixIconLibrary": { "alias": "suffixIconLibrary"; "required": false; "isSignal": true; }; "suffixIconAriaLabel": { "alias": "suffixIconAriaLabel"; "required": false; "isSignal": true; }; }, { "onSuffixAction": "onSuffixAction"; }, never, never, true, never>;
1220
1302
  }
1221
1303
 
1222
1304
  /**
@@ -1473,6 +1555,20 @@ declare class TnInputHarness extends ComponentHarness {
1473
1555
  * @returns Promise resolving to the numeric value, or null.
1474
1556
  */
1475
1557
  getNumericValue(): Promise<number | null>;
1558
+ /**
1559
+ * Gets the displayed value of a `Size`-type input parsed into a byte count,
1560
+ * mirroring what the control emits to the form model.
1561
+ *
1562
+ * The harness reads only the DOM, so it can't see the component's configured
1563
+ * `sizeStandard`/`sizeDefaultUnit` — pass them here to match the field under
1564
+ * test. Defaults to IEC base-2 with a `MiB` default unit (the component
1565
+ * defaults). Empty/invalid input resolves to `null`.
1566
+ *
1567
+ * @param standard Unit standard the field uses (defaults to `'iec'`).
1568
+ * @param defaultUnit Unit assumed for bare numbers (defaults to `'MiB'`).
1569
+ * @returns Promise resolving to the byte count, or null.
1570
+ */
1571
+ getByteValue(standard?: SizeStandard, defaultUnit?: string): Promise<number | null>;
1476
1572
  /**
1477
1573
  * Gets the `inputmode` attribute (e.g. 'numeric' or 'decimal' in number mode).
1478
1574
  *
@@ -7332,5 +7428,5 @@ declare const TN_THEME_DEFINITIONS: readonly TnThemeDefinition[];
7332
7428
  */
7333
7429
  declare const THEME_MAP: Map<TnTheme, TnThemeDefinition>;
7334
7430
 
7335
- 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 };
7336
- 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 };
7431
+ 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, formatSize, kebabTestSegment, libIconMarker, parseSize, registerLucideIcons, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
7432
+ 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, SizeStandard, 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 };