@truenas/ui-components 0.4.1 → 0.4.2

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.4.1",
3
+ "version": "0.4.2",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public"
@@ -9121,8 +9121,12 @@ declare class TnFilePickerComponent implements ControlValueAccessor, OnInit, OnD
9121
9121
  placeholder: _angular_core.InputSignal<string>;
9122
9122
  disabled: _angular_core.InputSignal<boolean>;
9123
9123
  /**
9124
- * Test-id applied to the file-picker container. Rendered under whichever attribute name
9125
- * is configured via `TN_TEST_ATTR` (default `data-testid`).
9124
+ * Test-id base applied to the file-picker container (`file-picker-` prefixed)
9125
+ * and derived onto the inner chrome: the path input (`input-<base>`), the
9126
+ * browse toggle (`button-toggle-<base>`), and the popup and its contents.
9127
+ * Falls back to the bound control's name (`formControlName` etc.) when unset.
9128
+ * Rendered under whichever attribute name is configured via `TN_TEST_ATTR`
9129
+ * (default `data-testid`).
9126
9130
  */
9127
9131
  testId: _angular_core.InputSignal<TnTestIdValue>;
9128
9132
  startPath: _angular_core.InputSignal<string>;
@@ -9149,6 +9153,15 @@ declare class TnFilePickerComponent implements ControlValueAccessor, OnInit, OnD
9149
9153
  hasError: _angular_core.WritableSignal<boolean>;
9150
9154
  private formDisabled;
9151
9155
  isDisabled: _angular_core.Signal<boolean>;
9156
+ /** Explicit `testId` wins; otherwise the bound control's name (formControlName etc.). */
9157
+ protected resolvedTestId: _angular_core.Signal<TnTestIdValue>;
9158
+ /**
9159
+ * Role-first test-id segments for the browse toggle: `button-toggle-<base>`.
9160
+ * Gated on a usable base — with several pickers on a page a bare
9161
+ * `button-toggle` on each would be non-unique, so unidentified pickers
9162
+ * stay attribute-free (mirroring tn-tree's toggle derivation).
9163
+ */
9164
+ protected toggleTestId: _angular_core.Signal<TnTestIdValue>;
9152
9165
  effectiveRootPath: _angular_core.Signal<string>;
9153
9166
  private onChange;
9154
9167
  private onTouched;
@@ -9226,6 +9239,280 @@ declare class TnFilePickerComponent implements ControlValueAccessor, OnInit, OnD
9226
9239
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnFilePickerComponent, "tn-file-picker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiSelect": { "alias": "multiSelect"; "required": false; "isSignal": true; }; "createActions": { "alias": "createActions"; "required": false; "isSignal": true; }; "allowManualInput": { "alias": "allowManualInput"; "required": false; "isSignal": true; }; "openOnClick": { "alias": "openOnClick"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "startPath": { "alias": "startPath"; "required": false; "isSignal": true; }; "rootPath": { "alias": "rootPath"; "required": false; "isSignal": true; }; "fileExtensions": { "alias": "fileExtensions"; "required": false; "isSignal": true; }; "callbacks": { "alias": "callbacks"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "pathChange": "pathChange"; "createAction": "createAction"; "error": "error"; }, never, never, true, never>;
9227
9240
  }
9228
9241
 
9242
+ /**
9243
+ * Harness for interacting with tn-file-picker in tests.
9244
+ *
9245
+ * The core API (`getValue` / `setValue` / `isDisabled`) mirrors webui's
9246
+ * `IxExplorerHarness` so tests migrate with minimal changes: `setValue`
9247
+ * commits a path the way a user would — by typing into the path input and
9248
+ * triggering its `change` event. Two deliberate divergences from ix-explorer:
9249
+ * the component renders no label of its own (labels come from a wrapping
9250
+ * `tn-form-field`), so instances are filtered by `testId` or `placeholder`
9251
+ * instead; and `setValue` takes a single path only — tn-file-picker does not
9252
+ * split typed input on commas in multi-select mode (a comma is part of the
9253
+ * path), so build multi-selections through the popup with
9254
+ * `clickItem` + `clickSelect`.
9255
+ *
9256
+ * Popup helpers (`open`, `getItemNames`, `clickItem`, …) drive the browse
9257
+ * flow. The popup renders in a CDK overlay outside the component, so these
9258
+ * find it at the document root — with several pickers on a page they address
9259
+ * whichever popup is open (only one can be, thanks to the overlay backdrop).
9260
+ *
9261
+ * @example
9262
+ * ```typescript
9263
+ * // Type a path, ix-explorer style
9264
+ * const picker = await loader.getHarness(TnFilePickerHarness.with({ testId: 'file-picker-source-path' }));
9265
+ * await picker.setValue('/mnt/tank/media');
9266
+ * expect(await picker.getValue()).toBe('/mnt/tank/media');
9267
+ *
9268
+ * // Browse and pick an item through the popup
9269
+ * await picker.open();
9270
+ * await picker.clickItem('Documents');
9271
+ * await picker.clickSelect();
9272
+ * ```
9273
+ */
9274
+ declare class TnFilePickerHarness extends ComponentHarness {
9275
+ /**
9276
+ * The selector for the host element of a `TnFilePickerComponent` instance.
9277
+ */
9278
+ static hostSelector: string;
9279
+ private _container;
9280
+ private _input;
9281
+ private _toggle;
9282
+ private _popup;
9283
+ /**
9284
+ * Gets a `HarnessPredicate` that can be used to search for a file picker
9285
+ * with specific attributes.
9286
+ *
9287
+ * The `testId` filter (like {@link getTestId}) reads the default test
9288
+ * attributes (`data-testid`, falling back to `data-test`); an app that
9289
+ * overrides `TN_TEST_ATTR` to a custom attribute name will silently
9290
+ * match nothing.
9291
+ *
9292
+ * @param options Options for filtering which file picker instances are considered a match.
9293
+ * @returns A `HarnessPredicate` configured with the given options.
9294
+ *
9295
+ * @example
9296
+ * ```typescript
9297
+ * // Find by testId (the rendered attribute, i.e. including the 'file-picker-' prefix)
9298
+ * const picker = await loader.getHarness(TnFilePickerHarness.with({ testId: 'file-picker-source-path' }));
9299
+ *
9300
+ * // Find by placeholder
9301
+ * const picker = await loader.getHarness(TnFilePickerHarness.with({ placeholder: 'Select folder' }));
9302
+ * ```
9303
+ */
9304
+ static with(options?: FilePickerHarnessFilters): HarnessPredicate<TnFilePickerHarness>;
9305
+ /**
9306
+ * Gets the current value shown in the path input.
9307
+ *
9308
+ * Note: with `multiSelect`, the component displays the selected paths
9309
+ * joined with `', '` (comma-space), so that is what this resolves to.
9310
+ *
9311
+ * @returns Promise resolving to the input's value.
9312
+ *
9313
+ * @example
9314
+ * ```typescript
9315
+ * expect(await picker.getValue()).toBe('/mnt/tank/media');
9316
+ * ```
9317
+ */
9318
+ getValue(): Promise<string>;
9319
+ /**
9320
+ * Sets the picker's value by typing a single path into the path input and
9321
+ * committing it via the input's `change` event, exactly as a user pressing
9322
+ * Enter would.
9323
+ *
9324
+ * Unlike `IxExplorerHarness.setValue` there is no `string[]` overload:
9325
+ * tn-file-picker treats typed input as ONE path even in multi-select mode
9326
+ * (commas are legal in paths, so they are never list separators). In
9327
+ * multi-select, committing a typed path REPLACES the whole selection with
9328
+ * that single path; build a real multi-selection through the popup with
9329
+ * {@link clickItem} + {@link clickSelect}.
9330
+ *
9331
+ * Commits go through the component's normal validation: paths outside
9332
+ * `rootPath` are rejected (the value stays unchanged and an `error` is
9333
+ * emitted), and `callbacks.validatePath` is consulted when provided.
9334
+ * Setting an empty string clears the selection. Has no effect when
9335
+ * `allowManualInput` is false (the input is readonly).
9336
+ *
9337
+ * @param value The path to set.
9338
+ *
9339
+ * @example
9340
+ * ```typescript
9341
+ * await picker.setValue('/mnt/tank/media');
9342
+ * ```
9343
+ */
9344
+ setValue(value: string): Promise<void>;
9345
+ /**
9346
+ * Gets the path input's placeholder text.
9347
+ *
9348
+ * @returns Promise resolving to the placeholder string, or null if unset.
9349
+ *
9350
+ * @example
9351
+ * ```typescript
9352
+ * expect(await picker.getPlaceholder()).toBe('Select file or folder');
9353
+ * ```
9354
+ */
9355
+ getPlaceholder(): Promise<string | null>;
9356
+ /**
9357
+ * Checks whether the picker is disabled (via the `disabled` input or a
9358
+ * disabled form control).
9359
+ *
9360
+ * @returns Promise resolving to true if the picker is disabled.
9361
+ *
9362
+ * @example
9363
+ * ```typescript
9364
+ * expect(await picker.isDisabled()).toBe(false);
9365
+ * ```
9366
+ */
9367
+ isDisabled(): Promise<boolean>;
9368
+ /**
9369
+ * Checks whether manual path entry is disallowed (`allowManualInput` is
9370
+ * false), rendering the path input readonly.
9371
+ *
9372
+ * @returns Promise resolving to true if the input is readonly.
9373
+ *
9374
+ * @example
9375
+ * ```typescript
9376
+ * expect(await picker.isReadonly()).toBe(false);
9377
+ * ```
9378
+ */
9379
+ isReadonly(): Promise<boolean>;
9380
+ /**
9381
+ * Gets the test-id attribute value from the container.
9382
+ *
9383
+ * Reads the default test attributes (`data-testid`, falling back to
9384
+ * `data-test`). A custom `TN_TEST_ATTR` attribute name is not visible to
9385
+ * the harness and resolves to null here.
9386
+ *
9387
+ * @returns Promise resolving to the test-id, or null when unset.
9388
+ *
9389
+ * @example
9390
+ * ```typescript
9391
+ * expect(await picker.getTestId()).toBe('file-picker-source-path');
9392
+ * ```
9393
+ */
9394
+ getTestId(): Promise<string | null>;
9395
+ /**
9396
+ * Opens the browse popup by clicking the folder toggle button. No-op if
9397
+ * the popup is already open.
9398
+ *
9399
+ * @example
9400
+ * ```typescript
9401
+ * await picker.open();
9402
+ * expect(await picker.isOpen()).toBe(true);
9403
+ * ```
9404
+ */
9405
+ open(): Promise<void>;
9406
+ /**
9407
+ * Closes the browse popup without applying the pending selection, by
9408
+ * clicking the overlay backdrop (the same dismissal a user clicking
9409
+ * outside performs). No-op if the popup is not open.
9410
+ *
9411
+ * @example
9412
+ * ```typescript
9413
+ * await picker.close();
9414
+ * expect(await picker.isOpen()).toBe(false);
9415
+ * ```
9416
+ */
9417
+ close(): Promise<void>;
9418
+ /**
9419
+ * Checks whether the browse popup is currently open.
9420
+ *
9421
+ * @returns Promise resolving to true if the popup is open.
9422
+ *
9423
+ * @example
9424
+ * ```typescript
9425
+ * expect(await picker.isOpen()).toBe(false);
9426
+ * ```
9427
+ */
9428
+ isOpen(): Promise<boolean>;
9429
+ /**
9430
+ * Gets the labels of the breadcrumb segments in the popup header. Long
9431
+ * paths are truncated by the component, so a segment may be `'…'`.
9432
+ *
9433
+ * @returns Promise resolving to the breadcrumb segment labels.
9434
+ *
9435
+ * @example
9436
+ * ```typescript
9437
+ * await picker.open();
9438
+ * expect(await picker.getBreadcrumbSegments()).toEqual(['mnt']);
9439
+ * ```
9440
+ */
9441
+ getBreadcrumbSegments(): Promise<string[]>;
9442
+ /**
9443
+ * Gets the names of the items listed in the open popup.
9444
+ *
9445
+ * @returns Promise resolving to the visible item names.
9446
+ *
9447
+ * @example
9448
+ * ```typescript
9449
+ * await picker.open();
9450
+ * expect(await picker.getItemNames()).toContain('Documents');
9451
+ * ```
9452
+ */
9453
+ getItemNames(): Promise<string[]>;
9454
+ /**
9455
+ * Clicks the popup row with the given item name, toggling its selection
9456
+ * (single-select replaces the pending selection; multi-select toggles the
9457
+ * item in and out). The selection is applied with {@link clickSelect}.
9458
+ *
9459
+ * @param name The item name as displayed in the list.
9460
+ *
9461
+ * @example
9462
+ * ```typescript
9463
+ * await picker.open();
9464
+ * await picker.clickItem('Documents');
9465
+ * await picker.clickSelect();
9466
+ * ```
9467
+ */
9468
+ clickItem(name: string): Promise<void>;
9469
+ /**
9470
+ * Navigates into a directory-like item (folder, dataset, or mountpoint)
9471
+ * by clicking its navigation chevron.
9472
+ *
9473
+ * @param name The item name as displayed in the list.
9474
+ *
9475
+ * @example
9476
+ * ```typescript
9477
+ * await picker.open();
9478
+ * await picker.navigateToItem('Documents');
9479
+ * ```
9480
+ */
9481
+ navigateToItem(name: string): Promise<void>;
9482
+ /**
9483
+ * Clicks the popup's Select button, applying the pending selection as the
9484
+ * picker's value and closing the popup.
9485
+ *
9486
+ * @example
9487
+ * ```typescript
9488
+ * await picker.clickItem('Documents');
9489
+ * await picker.clickSelect();
9490
+ * expect(await picker.getValue()).toBe('/mnt/Documents');
9491
+ * ```
9492
+ */
9493
+ clickSelect(): Promise<void>;
9494
+ /**
9495
+ * Clicks the popup's Clear Selection button. Only rendered while items are
9496
+ * selected; throws otherwise.
9497
+ *
9498
+ * @example
9499
+ * ```typescript
9500
+ * await picker.clickItem('Documents');
9501
+ * await picker.clickClearSelection();
9502
+ * ```
9503
+ */
9504
+ clickClearSelection(): Promise<void>;
9505
+ }
9506
+ /**
9507
+ * A set of criteria that can be used to filter a list of `TnFilePickerHarness` instances.
9508
+ */
9509
+ interface FilePickerHarnessFilters extends BaseHarnessFilters {
9510
+ /** Filters by the path input's placeholder text. */
9511
+ placeholder?: string;
9512
+ /** Filters by the rendered data-testid attribute (includes the `file-picker-` prefix). */
9513
+ testId?: string;
9514
+ }
9515
+
9229
9516
  /** State of an open inline creation row. */
9230
9517
  interface InlineCreationState {
9231
9518
  action: FilePickerCreateAction;
@@ -9265,6 +9552,14 @@ declare class TnFilePickerPopupComponent implements AfterViewChecked {
9265
9552
  selectedItems: _angular_core.InputSignal<string[]>;
9266
9553
  loading: _angular_core.InputSignal<boolean>;
9267
9554
  fileExtensions: _angular_core.InputSignal<string[] | undefined>;
9555
+ /**
9556
+ * Test-id base the owning picker resolved (explicit `testId`, else the bound
9557
+ * control's name). Scopes every derived id inside the popup so ids stay
9558
+ * unique across pickers; with no base the ids fall back to their bare role
9559
+ * (`button-select`, `option-<name>`), which stays addressable because only
9560
+ * one popup can be open at a time.
9561
+ */
9562
+ testIdBase: _angular_core.InputSignal<TnTestIdValue>;
9268
9563
  private iconRegistry;
9269
9564
  private elementRef;
9270
9565
  constructor();
@@ -9305,6 +9600,38 @@ declare class TnFilePickerPopupComponent implements AfterViewChecked {
9305
9600
  * selection.
9306
9601
  */
9307
9602
  allowCurrentDirectorySelection: _angular_core.Signal<boolean>;
9603
+ /**
9604
+ * The `testIdBase` normalized to a flat segment array for role-first ids.
9605
+ * Nothing is dropped here — `composeTestId` (via `[tnTestId]`) filters falsy
9606
+ * segments, so an unset base collapses to the bare role.
9607
+ */
9608
+ private readonly baseSegments;
9609
+ /**
9610
+ * Role-first segments for the footer chrome, mirroring tn-dialog-shell's
9611
+ * `button-close-<base>` convention: `button-select[-<base>]` and
9612
+ * `button-clear-selection[-<base>]`.
9613
+ */
9614
+ protected readonly selectTestId: _angular_core.Signal<(string | number | null | undefined)[]>;
9615
+ protected readonly clearSelectionTestId: _angular_core.Signal<(string | number | null | undefined)[]>;
9616
+ /** Role-first segments for the inline creation input: `input-create[-<base>]`. */
9617
+ protected readonly inlineCreateTestId: _angular_core.Signal<(string | number | null | undefined)[]>;
9618
+ /**
9619
+ * Base-first segments for a listed item's row (`option[-<base>]-<name>`) and
9620
+ * its multi-select checkbox (`checkbox[-<base>]-<name>`). The item NAME is
9621
+ * the discriminator (not the full path): it is unique within the listed
9622
+ * directory and keeps ids stable as the user browses.
9623
+ */
9624
+ itemTestId(item: FileSystemItem): TnTestIdValue;
9625
+ /** Role-first segments for an item's navigation chevron: `button-navigate[-<base>]-<name>`. */
9626
+ navigateTestId(item: FileSystemItem): TnTestIdValue;
9627
+ /**
9628
+ * Role-first segments for a breadcrumb segment: `button-breadcrumb[-<base>]-<name>`.
9629
+ * The truncation ellipsis normalizes to nothing, leaving that segment at
9630
+ * `button-breadcrumb[-<base>]` — still unique, as at most one is rendered.
9631
+ */
9632
+ breadcrumbTestId(name: string): TnTestIdValue;
9633
+ /** Base-first segments for a consumer-defined create action: `button[-<base>]-<action id>`. */
9634
+ createActionTestId(action: FilePickerCreateAction): TnTestIdValue;
9308
9635
  filteredFileItems: _angular_core.Signal<DisplayedFileItem[]>;
9309
9636
  onItemClick(item: FileSystemItem): void;
9310
9637
  onItemDoubleClick(item: FileSystemItem): void;
@@ -9348,7 +9675,7 @@ declare class TnFilePickerPopupComponent implements AfterViewChecked {
9348
9675
  isRowSelected: (row: FileSystemItem) => boolean;
9349
9676
  formatDate(date: Date): string;
9350
9677
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TnFilePickerPopupComponent, never>;
9351
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnFilePickerPopupComponent, "tn-file-picker-popup", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiSelect": { "alias": "multiSelect"; "required": false; "isSignal": true; }; "createActions": { "alias": "createActions"; "required": false; "isSignal": true; }; "currentPath": { "alias": "currentPath"; "required": false; "isSignal": true; }; "rootPath": { "alias": "rootPath"; "required": false; "isSignal": true; }; "fileItems": { "alias": "fileItems"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fileExtensions": { "alias": "fileExtensions"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "itemDoubleClick": "itemDoubleClick"; "pathNavigate": "pathNavigate"; "createAction": "createAction"; "created": "created"; "clearSelection": "clearSelection"; "close": "close"; "submit": "submit"; "cancel": "cancel"; }, never, never, true, never>;
9678
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnFilePickerPopupComponent, "tn-file-picker-popup", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiSelect": { "alias": "multiSelect"; "required": false; "isSignal": true; }; "createActions": { "alias": "createActions"; "required": false; "isSignal": true; }; "currentPath": { "alias": "currentPath"; "required": false; "isSignal": true; }; "rootPath": { "alias": "rootPath"; "required": false; "isSignal": true; }; "fileItems": { "alias": "fileItems"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fileExtensions": { "alias": "fileExtensions"; "required": false; "isSignal": true; }; "testIdBase": { "alias": "testIdBase"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "itemDoubleClick": "itemDoubleClick"; "pathNavigate": "pathNavigate"; "createAction": "createAction"; "created": "created"; "clearSelection": "clearSelection"; "close": "close"; "submit": "submit"; "cancel": "cancel"; }, never, never, true, never>;
9352
9679
  }
9353
9680
 
9354
9681
  /** Item types selectable under `mode`; null means every type is selectable. */
@@ -9947,5 +10274,5 @@ declare const TN_THEME_DEFINITIONS: readonly TnThemeDefinition[];
9947
10274
  */
9948
10275
  declare const THEME_MAP: Map<TnTheme, TnThemeDefinition>;
9949
10276
 
9950
- export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, LabelMarkupPipe, LabelTextPipe, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, THEME_MAP, THEME_STORAGE_KEY, TN_FORM_FIELD_CONTEXT, 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, TnNestedTreeDataSource, TnNestedTreeNodeComponent, TnParticleProgressBarComponent, TnProgressBarComponent, TnRadioComponent, TnRadioHarness, TnSelectComponent, TnSelectHarness, TnSelectionListComponent, TnSidePanelActionDirective, TnSidePanelComponent, TnSidePanelHarness, TnSidePanelHeaderActionDirective, TnSlideToggleComponent, TnSlideToggleHarness, TnSliderComponent, TnSliderThumbDirective, TnSliderWithLabelDirective, TnSpinnerComponent, TnSpriteLoaderService, TnStepComponent, TnStepperComponent, TnStepperHarness, TnStepperNextDirective, TnStepperPreviousDirective, 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, TnTreeHarness, TnTreeNodeComponent, TnTreeNodeHarness, TnTreeNodeOutletDirective, TnTreeVirtualScrollNodeOutletDirective, TnTreeVirtualScrollViewComponent, TnTreeVirtualScrollViewHarness, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, allowsCurrentDirectorySelection, composeTestId, controlTestId, createFlatTreeControl, createLucideLibrary, createNestedTreeControl, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, defaultTreeItemSize, formatSize, getSelectableTypes, injectTnFormFieldAria, isPathWithinRoot, kebabTestSegment, labelMarkupToHtml, labelMarkupToText, libIconMarker, normalizeRootPath, optionTestId, parseLabelMarkup, parseSize, registerLucideIcons, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
9951
- export type { AutocompleteHarnessFilters, BannerHarnessFilters, ButtonHarnessFilters, ButtonToggleHarnessFilters, CalendarCell, CheckboxHarnessFilters, ChipColor, ChipHarnessFilters, DateInputHarnessFilters, DateRange, DateRangeInputHarnessFilters, DialogHarnessFilters, EmptyHarnessFilters, ExpansionPanelHarnessFilters, FileInputHarnessFilters, FilePickerCallbacks, FilePickerCreateAction, FilePickerCreateActionEvent, FilePickerError, FilePickerMode, FileSystemItem, FileSystemItemType, FlatTreeControlOptions, FormFieldHarnessFilters, FormSectionHarnessFilters, IconButtonHarnessFilters, IconHarnessFilters, IconLibrary, IconLibraryType, IconResult, IconSize, IconSource, IconTestingMockOverrides, InputHarnessFilters, KeyCombination, LabelMarkupSegment, LabelMarkupSegmentType, LabelType, LucideIconOptions, MenuHarnessFilters, MockIconRegistry, MockSpriteLoader, NestedTreeControlOptions, PathSegment, PlatformType, ProgressBarMode, RadioHarnessFilters, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SidePanelHarnessFilters, SizeStandard, SlideToggleColor, SlideToggleHarnessFilters, SpinnerMode, SpriteConfig, StepperHarnessFilters, SubscriptSizing, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnAutocompleteOption, TnBannerType, TnButtonToggleType, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnChipInputHarnessFilters, TnChipInputOption, TnConfirmDialogData, TnDialogDefaults, TnDialogOpenTarget, TnDrawerMode, TnDrawerPosition, TnEmptySize, TnFlatTreeNode, TnFormFieldAriaBindings, TnFormFieldContext, TnFormFieldErrorMessage, TnFormFieldErrorMessages, TnFormFieldErrorResolver, TnMenuItem, TnOptionTestIdSource, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnSortEvent, TnTableDataProvider, TnTableDataSource, TnTableHarnessFilters, TnTablePagerHarnessFilters, TnTablePagerLabels, TnTablePagination, TnTestAttrName, TnTestIdValue, TnThemeDefinition, TnToastCall, TnToastConfig, TnTreeExpansion, TnTreeHarnessFilters, TnTreeNodeHarnessFilters, TnTreeVirtualNodeData, TnTreeVirtualScrollViewHarnessFilters, TooltipPosition, YearCell };
10277
+ export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, LabelMarkupPipe, LabelTextPipe, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, THEME_MAP, THEME_STORAGE_KEY, TN_FORM_FIELD_CONTEXT, 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, TnFilePickerHarness, 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, TnNestedTreeDataSource, TnNestedTreeNodeComponent, TnParticleProgressBarComponent, TnProgressBarComponent, TnRadioComponent, TnRadioHarness, TnSelectComponent, TnSelectHarness, TnSelectionListComponent, TnSidePanelActionDirective, TnSidePanelComponent, TnSidePanelHarness, TnSidePanelHeaderActionDirective, TnSlideToggleComponent, TnSlideToggleHarness, TnSliderComponent, TnSliderThumbDirective, TnSliderWithLabelDirective, TnSpinnerComponent, TnSpriteLoaderService, TnStepComponent, TnStepperComponent, TnStepperHarness, TnStepperNextDirective, TnStepperPreviousDirective, 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, TnTreeHarness, TnTreeNodeComponent, TnTreeNodeHarness, TnTreeNodeOutletDirective, TnTreeVirtualScrollNodeOutletDirective, TnTreeVirtualScrollViewComponent, TnTreeVirtualScrollViewHarness, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, allowsCurrentDirectorySelection, composeTestId, controlTestId, createFlatTreeControl, createLucideLibrary, createNestedTreeControl, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, defaultTreeItemSize, formatSize, getSelectableTypes, injectTnFormFieldAria, isPathWithinRoot, kebabTestSegment, labelMarkupToHtml, labelMarkupToText, libIconMarker, normalizeRootPath, optionTestId, parseLabelMarkup, parseSize, registerLucideIcons, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
10278
+ export type { AutocompleteHarnessFilters, BannerHarnessFilters, ButtonHarnessFilters, ButtonToggleHarnessFilters, CalendarCell, CheckboxHarnessFilters, ChipColor, ChipHarnessFilters, DateInputHarnessFilters, DateRange, DateRangeInputHarnessFilters, DialogHarnessFilters, EmptyHarnessFilters, ExpansionPanelHarnessFilters, FileInputHarnessFilters, FilePickerCallbacks, FilePickerCreateAction, FilePickerCreateActionEvent, FilePickerError, FilePickerHarnessFilters, FilePickerMode, FileSystemItem, FileSystemItemType, FlatTreeControlOptions, FormFieldHarnessFilters, FormSectionHarnessFilters, IconButtonHarnessFilters, IconHarnessFilters, IconLibrary, IconLibraryType, IconResult, IconSize, IconSource, IconTestingMockOverrides, InputHarnessFilters, KeyCombination, LabelMarkupSegment, LabelMarkupSegmentType, LabelType, LucideIconOptions, MenuHarnessFilters, MockIconRegistry, MockSpriteLoader, NestedTreeControlOptions, PathSegment, PlatformType, ProgressBarMode, RadioHarnessFilters, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SidePanelHarnessFilters, SizeStandard, SlideToggleColor, SlideToggleHarnessFilters, SpinnerMode, SpriteConfig, StepperHarnessFilters, SubscriptSizing, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnAutocompleteOption, TnBannerType, TnButtonToggleType, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnChipInputHarnessFilters, TnChipInputOption, TnConfirmDialogData, TnDialogDefaults, TnDialogOpenTarget, TnDrawerMode, TnDrawerPosition, TnEmptySize, TnFlatTreeNode, TnFormFieldAriaBindings, TnFormFieldContext, TnFormFieldErrorMessage, TnFormFieldErrorMessages, TnFormFieldErrorResolver, TnMenuItem, TnOptionTestIdSource, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnSortEvent, TnTableDataProvider, TnTableDataSource, TnTableHarnessFilters, TnTablePagerHarnessFilters, TnTablePagerLabels, TnTablePagination, TnTestAttrName, TnTestIdValue, TnThemeDefinition, TnToastCall, TnToastConfig, TnTreeExpansion, TnTreeHarnessFilters, TnTreeNodeHarnessFilters, TnTreeVirtualNodeData, TnTreeVirtualScrollViewHarnessFilters, TooltipPosition, YearCell };