@truenas/ui-components 0.7.1 → 0.7.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.7.1",
3
+ "version": "0.7.2",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public"
@@ -4704,6 +4704,294 @@ interface CheckboxHarnessFilters extends BaseHarnessFilters {
4704
4704
  testId?: string;
4705
4705
  }
4706
4706
 
4707
+ /** One option of a `tn-checkbox-group`, rendered as a single `tn-checkbox`. */
4708
+ interface TnCheckboxOption<T = unknown> {
4709
+ value: T;
4710
+ label: string;
4711
+ disabled?: boolean;
4712
+ }
4713
+ /**
4714
+ * A `role="group"` wrapper that owns the selection for a set of `tn-checkbox`es, as one control
4715
+ * whose value is the ARRAY of checked option values.
4716
+ *
4717
+ * `tn-checkbox` is a boolean `ControlValueAccessor` — one control per box. A multi-select field
4718
+ * ("which USB devices to pass through", "which catalog trains to offer") has a single
4719
+ * array-valued control instead, and nothing in the library spoke that shape: consumers either
4720
+ * exploded it into one boolean control per option and reassembled the array by hand on submit, or
4721
+ * kept a bespoke component outside the library. This is that shape, with the same
4722
+ * `options`/`compareWith`/`testId` surface as {@link TnRadioGroupComponent} so the single-select
4723
+ * and multi-select forms of the same field read alike.
4724
+ *
4725
+ * ```html
4726
+ * <tn-form-field label="USB Devices" tooltip="Devices to pass through to the container">
4727
+ * <tn-checkbox-group formControlName="usb_devices" [options]="usbOptions" />
4728
+ * </tn-form-field>
4729
+ * ```
4730
+ *
4731
+ * Inside a `tn-form-field` the group is a normal control: the field names it via
4732
+ * `aria-labelledby`, infers the required indicator from its validators, and renders its validation
4733
+ * message — none of which a loose pile of checkboxes gets.
4734
+ *
4735
+ * Options come from the `options` input only. Unlike `tn-radio`, `tn-checkbox` is not group-aware,
4736
+ * so a projected child would render as an independent boolean control that silently ignores the
4737
+ * group's value; the group therefore projects nothing rather than accepting content it cannot
4738
+ * drive.
4739
+ */
4740
+ declare class TnCheckboxGroupComponent<T = unknown> implements ControlValueAccessor {
4741
+ /**
4742
+ * Options to render, one checkbox each.
4743
+ *
4744
+ * Options are tracked by `value`, so object values must be referentially stable — rebuilding
4745
+ * them as fresh literals on every change detection pass re-creates the whole list. Same
4746
+ * requirement the `compareWith` case implies; hold the objects in a field.
4747
+ */
4748
+ options: _angular_core.InputSignal<TnCheckboxOption<T>[]>;
4749
+ /**
4750
+ * Lays the options out in a wrapping row of equal columns instead of stacking them. Column width
4751
+ * comes from `--tn-checkbox-group-inline-basis` (default `50%`), and collapses to one column on
4752
+ * a narrow viewport.
4753
+ */
4754
+ inline: _angular_core.InputSignal<boolean>;
4755
+ /**
4756
+ * Explicit accessible name for the group. Inside a `tn-form-field` with a label this is
4757
+ * unnecessary — the field names the group automatically — but a group with neither is announced
4758
+ * as an unlabeled group.
4759
+ *
4760
+ * A required group appends "required" to whatever this says, since that is the only channel
4761
+ * `role="group"` leaves open for it — see the `required` input.
4762
+ */
4763
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
4764
+ disabled: _angular_core.InputSignal<boolean>;
4765
+ /**
4766
+ * Whether the group announces itself as required.
4767
+ *
4768
+ * Deliberately NOT propagated to the options' native `required`, which is the opposite of the
4769
+ * choice `tn-radio-group` makes — and the difference is in the HTML, not in taste. A required
4770
+ * radio is satisfied by any one option in the `name` group; a required checkbox is satisfied
4771
+ * only by ITSELF being checked, so propagating it here would have the browser demand every box.
4772
+ * "At least one" is a validator's job.
4773
+ *
4774
+ * Nor does it become `aria-required`, which is the OTHER place `tn-radio-group` cannot be
4775
+ * copied: WAI-ARIA 1.2 supports only the globals plus `aria-activedescendant`/`aria-disabled`
4776
+ * on `role="group"`, so an `aria-required` there is dropped by assistive tech and flagged by
4777
+ * axe, whereas `role="radiogroup"` genuinely supports it. The state instead rides in the
4778
+ * group's accessible NAME, as a "required" suffix — see {@link labelledBy}.
4779
+ */
4780
+ required: _angular_core.InputSignal<boolean>;
4781
+ /**
4782
+ * Test-id base for the group and, scoped by the option label, for every option: base
4783
+ * `usb_devices` yields `checkbox-group-usb-devices` on the group and
4784
+ * `checkbox-usb-devices-web-cam` on its options. Falls back to the bound control name.
4785
+ */
4786
+ testId: _angular_core.InputSignal<TnTestIdValue>;
4787
+ /**
4788
+ * Custom comparator for matching option values against the selected ones. Provide it when option
4789
+ * values are objects — the default is identity, so a structurally-equal-but-distinct object
4790
+ * would leave the group rendering nothing as checked.
4791
+ *
4792
+ * Called with an option value on the right and a currently-selected value on the left, and must
4793
+ * tolerate `null`/`undefined` on either side rather than dereferencing straight into a property.
4794
+ *
4795
+ * @example
4796
+ * ```ts
4797
+ * compareWith = (a, b) => a?.id === b?.id;
4798
+ * ```
4799
+ */
4800
+ compareWith: _angular_core.InputSignal<((a: T | null, b: T | null) => boolean) | undefined>;
4801
+ /** Emits the new value array on every user toggle (not on programmatic writes). */
4802
+ change: _angular_core.OutputEmitterRef<T[]>;
4803
+ /**
4804
+ * ARIA wiring from an enclosing `tn-form-field` (label, error/hint, invalid, required).
4805
+ * All-null standalone, or when `ariaLabel` overrides the field's label.
4806
+ */
4807
+ protected readonly fieldAria: _truenas_ui_components.TnFormFieldAriaBindings;
4808
+ /** Test-id base, falling back to the bound control name when `testId` is unset. */
4809
+ protected readonly resolvedTestId: _angular_core.Signal<TnTestIdValue>;
4810
+ private readonly selectedValues;
4811
+ private readonly formDisabled;
4812
+ /**
4813
+ * Combined disabled state (own input plus a disabled bound control). The native `disabled` on
4814
+ * each option is what blocks interaction; `aria-disabled` on the group is what tells a screen
4815
+ * reader landing on the container about it, and gives styling a hook for the group as a whole.
4816
+ */
4817
+ readonly isDisabled: _angular_core.Signal<boolean>;
4818
+ /** Whether the group announces itself as required: its own input, or the field's inferred state. */
4819
+ protected readonly ariaRequired: _angular_core.Signal<boolean>;
4820
+ /** Id of the visually hidden "required" text this group contributes to its own name. */
4821
+ protected readonly requiredTextId: string;
4822
+ /**
4823
+ * `aria-label` for the group: the `ariaLabel` input with the required-ness folded in, since
4824
+ * `role="group"` gives it nowhere else to go (see the `required` input).
4825
+ */
4826
+ protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
4827
+ /**
4828
+ * `aria-labelledby` for the group: the enclosing field's label, plus this group's own hidden
4829
+ * "required" text when required. A multi-id `aria-labelledby` concatenates, so the field keeps
4830
+ * naming the group and the required-ness reaches a screen reader as part of that name.
4831
+ *
4832
+ * Null when the name comes from `ariaLabel` instead — that path carries the suffix itself,
4833
+ * because `aria-labelledby` would otherwise win over the very label it is meant to extend.
4834
+ */
4835
+ protected readonly labelledBy: _angular_core.Signal<string | null>;
4836
+ private onChange;
4837
+ private onTouched;
4838
+ /** Whether `value` is among the currently selected values. */
4839
+ protected isSelected(value: T): boolean;
4840
+ /**
4841
+ * Adds or removes an option's value.
4842
+ *
4843
+ * The emitted array is rebuilt in `options` order rather than appended to in click order, so the
4844
+ * value a given set of checked boxes produces is the same however the user got there — which is
4845
+ * what makes a payload diff (and a spec asserting one) stable.
4846
+ *
4847
+ * Ordering is all the rebuild changes: an already-selected value is re-emitted as the object the
4848
+ * consumer wrote, not as the equal-under-`compareWith` object the option holds. A control loaded
4849
+ * with `{ id: 2, name: 'usb-cam' }` against an option of `{ id: 2 }` keeps its `name` when an
4850
+ * unrelated box is toggled; only a newly checked option contributes the option's own value.
4851
+ */
4852
+ protected toggle(value: T, checked: boolean): void;
4853
+ private matches;
4854
+ writeValue(value: T[] | null | undefined): void;
4855
+ registerOnChange(fn: (value: T[]) => void): void;
4856
+ registerOnTouched(fn: () => void): void;
4857
+ setDisabledState(isDisabled: boolean): void;
4858
+ /**
4859
+ * Marks the control touched when focus leaves the group. `focusout` also fires while moving
4860
+ * between the group's own options, which is harmless — the user has interacted either way — and
4861
+ * it is the only blur signal available, since a checkbox's blur does not bubble.
4862
+ */
4863
+ protected onFocusOut(): void;
4864
+ /** Per-option test-id segments: the group's base scoped by the option label. */
4865
+ protected optionTestId(option: TnCheckboxOption<T>): TnTestIdValue;
4866
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TnCheckboxGroupComponent<any>, never>;
4867
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnCheckboxGroupComponent<any>, "tn-checkbox-group", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, never, true, never>;
4868
+ }
4869
+
4870
+ /**
4871
+ * Harness for interacting with `tn-checkbox-group` in tests.
4872
+ * Drives the group as a whole — reading the checked set, replacing it wholesale, toggling one
4873
+ * option by label — rather than reaching for each `tn-checkbox` individually.
4874
+ *
4875
+ * @example
4876
+ * ```typescript
4877
+ * const group = await loader.getHarness(TnCheckboxGroupHarness.with({ testId: 'checkbox-group-trains' }));
4878
+ * // Labels, not option values — the DOM only carries what the user can read.
4879
+ * await group.setValue(['Stable', 'Enterprise']);
4880
+ * expect(await group.getValue()).toEqual(['Stable', 'Enterprise']);
4881
+ * ```
4882
+ */
4883
+ declare class TnCheckboxGroupHarness extends ComponentHarness {
4884
+ /** The selector for the host element of a `TnCheckboxGroupComponent` instance. */
4885
+ static hostSelector: string;
4886
+ private _root;
4887
+ private _checkboxes;
4888
+ /**
4889
+ * Gets a `HarnessPredicate` that can be used to search for a checkbox group with specific
4890
+ * attributes.
4891
+ *
4892
+ * @param options Options for filtering which checkbox group instances are considered a match.
4893
+ * @returns A `HarnessPredicate` configured with the given options.
4894
+ *
4895
+ * @example
4896
+ * ```typescript
4897
+ * // Find by accessible name
4898
+ * const group = await loader.getHarness(TnCheckboxGroupHarness.with({ ariaLabel: 'USB Devices' }));
4899
+ *
4900
+ * // Find by testId
4901
+ * const group = await loader.getHarness(TnCheckboxGroupHarness.with({ testId: 'checkbox-group-usb-devices' }));
4902
+ * ```
4903
+ */
4904
+ static with(options?: CheckboxGroupHarnessFilters): HarnessPredicate<TnCheckboxGroupHarness>;
4905
+ /**
4906
+ * Gets the harnesses for the group's options, in DOM order.
4907
+ *
4908
+ * @example
4909
+ * ```typescript
4910
+ * const options = await group.getOptions();
4911
+ * expect(options).toHaveLength(3);
4912
+ * ```
4913
+ */
4914
+ getOptions(): Promise<TnCheckboxHarness[]>;
4915
+ /**
4916
+ * Gets the label text of every option, in DOM order.
4917
+ *
4918
+ * @example
4919
+ * ```typescript
4920
+ * expect(await group.getOptionLabels()).toEqual(['Stable', 'Enterprise']);
4921
+ * ```
4922
+ */
4923
+ getOptionLabels(): Promise<string[]>;
4924
+ /**
4925
+ * Gets the labels of the currently checked options, in DOM order.
4926
+ *
4927
+ * Labels rather than values, because the values live in the bound control and the DOM only ever
4928
+ * carries what the user can read.
4929
+ *
4930
+ * @example
4931
+ * ```typescript
4932
+ * expect(await group.getValue()).toEqual(['Stable']);
4933
+ * ```
4934
+ */
4935
+ getValue(): Promise<string[]>;
4936
+ /**
4937
+ * Makes the checked set exactly the options with the given labels — checking the ones listed and
4938
+ * unchecking every other.
4939
+ *
4940
+ * @param labels Label text of the options that should end up checked.
4941
+ *
4942
+ * @example
4943
+ * ```typescript
4944
+ * await group.setValue(['Stable']);
4945
+ * ```
4946
+ */
4947
+ setValue(labels: string[]): Promise<void>;
4948
+ /**
4949
+ * Toggles the option with the given label. Throws when the group has no such option, so a
4950
+ * renamed or missing option fails loudly instead of silently leaving the selection unchanged.
4951
+ *
4952
+ * @param label Label text of the option to toggle.
4953
+ *
4954
+ * @example
4955
+ * ```typescript
4956
+ * await group.toggle('Enterprise');
4957
+ * ```
4958
+ */
4959
+ toggle(label: string): Promise<void>;
4960
+ /**
4961
+ * Checks whether every option is disabled — the state a disabled group or a disabled bound form
4962
+ * control produces. Use {@link getOptions} to inspect a single per-option `disabled`.
4963
+ *
4964
+ * @example
4965
+ * ```typescript
4966
+ * expect(await group.isDisabled()).toBe(true);
4967
+ * ```
4968
+ */
4969
+ isDisabled(): Promise<boolean>;
4970
+ /**
4971
+ * Gets the group's accessible name as written by the `ariaLabel` input, or null when the name
4972
+ * comes from an enclosing `tn-form-field` (see {@link getAriaLabelledBy}).
4973
+ */
4974
+ getAriaLabel(): Promise<string | null>;
4975
+ /** Gets the id the group's accessible name is delegated to, or null. */
4976
+ getAriaLabelledBy(): Promise<string | null>;
4977
+ /**
4978
+ * Gets the test ID attribute value of the group root.
4979
+ *
4980
+ * @example
4981
+ * ```typescript
4982
+ * expect(await group.getTestId()).toBe('checkbox-group-trains');
4983
+ * ```
4984
+ */
4985
+ getTestId(): Promise<string | null>;
4986
+ }
4987
+ /** A set of criteria that can be used to filter a list of `TnCheckboxGroupHarness` instances. */
4988
+ interface CheckboxGroupHarnessFilters extends BaseHarnessFilters {
4989
+ /** Filters by the group's `aria-label`. Supports string or regex matching. */
4990
+ ariaLabel?: string | RegExp;
4991
+ /** Filters by the resolved test-id attribute on the group root. */
4992
+ testId?: string;
4993
+ }
4994
+
4707
4995
  declare class TnRadioComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {
4708
4996
  radioEl: _angular_core.Signal<ElementRef<HTMLInputElement>>;
4709
4997
  label: _angular_core.InputSignal<string>;
@@ -15343,5 +15631,5 @@ declare const TN_THEME_DEFINITIONS: readonly TnThemeDefinition[];
15343
15631
  */
15344
15632
  declare const THEME_MAP: Map<TnTheme, TnThemeDefinition>;
15345
15633
 
15346
- export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, LabelMarkupPipe, LabelTextPipe, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, THEME_MAP, THEME_STORAGE_KEY, TN_AUTOCOMPLETE_DEFAULT_LABELS, TN_AUTOCOMPLETE_LABELS, TN_BRANDED_SPINNER_DEFAULT_LABEL, TN_CALENDAR_INTL, TN_CALENDAR_INTL_DEFAULTS, TN_DEFAULT_FALLBACK_LABELS, TN_DIALOG_CHROME_LABELS, TN_DIALOG_DEFAULT_CHROME_LABELS, TN_DIALOG_SHELL_DEFAULT_LABEL, TN_DRAWER_CONTENT_LABEL, TN_DRAWER_DEFAULT_LABEL, TN_FALLBACK_LABELS, TN_FORM_FIELD_CONTEXT, TN_FORM_FIELD_DISMISSIBLE_ERRORS, TN_FORM_FIELD_ERRORS, TN_FORM_LIST_CONTEXT, TN_PARTICLE_PROGRESS_BAR_DEFAULT_LABEL, TN_PROGRESS_BAR_DEFAULT_LABEL, TN_RADIO_GROUP, TN_SELECT_DEFAULT_LABELS, TN_SELECT_LABELS, TN_SIDE_PANEL_CONTENT_LABEL, TN_SIDE_PANEL_DEFAULT_LABEL, TN_SIDE_PANEL_OVERFLOW_TOLERANCE_PX, TN_SPINNER_DEFAULT_LABEL, TN_STEPPER_STATUS_COMPLETED, TN_STEPPER_STATUS_ERROR, TN_TABLE_DEFAULT_LABELS, TN_TABLE_LABELS, TN_TABLE_PAGER_DEFAULT_LABELS, TN_TABLE_PAGER_LABELS, TN_TABLE_SCROLL_REGION_LABEL, TN_TAB_PANEL_CONTENT_LABEL, TN_TEST_ATTR, TN_THEME_DEFINITIONS, TN_TOAST_ANNOUNCE_DELAY_MS, TnAutocompleteComponent, TnAutocompleteHarness, TnBannerActionDirective, TnBannerActionHarness, TnBannerComponent, TnBannerHarness, TnBrandedSpinnerComponent, TnButtonComponent, TnButtonHarness, TnButtonToggleComponent, TnButtonToggleGroupComponent, TnButtonToggleGroupHarness, TnButtonToggleHarness, TnCalendarCellHarness, TnCalendarComponent, TnCalendarHarness, 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, TnFormErrorsComponent, TnFormErrorsHarness, TnFormFieldComponent, TnFormFieldHarness, TnFormListComponent, TnFormListHarness, TnFormListItemComponent, TnFormListItemHarness, 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, TnRadioGroupComponent, TnRadioGroupHarness, TnRadioHarness, TnRowActionsDefDirective, 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, TnTableTesting, TnTabsComponent, TnTabsHarness, TnTestIdDirective, TnTheme, TnThemeService, TnTimeInputComponent, TnToastComponent, TnToastMock, TnToastPosition, TnToastRef, TnToastService, TnToastTesting, TnToastType, TnTooltipComponent, TnTooltipDirective, TnTooltipHarness, TnTooltipTesting, TnTreeComponent, TnTreeFlatDataSource, TnTreeFlattener, TnTreeHarness, TnTreeNodeComponent, TnTreeNodeHarness, TnTreeNodeOutletDirective, TnTreeVirtualScrollNodeOutletDirective, TnTreeVirtualScrollViewComponent, TnTreeVirtualScrollViewHarness, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, allowsCurrentDirectorySelection, canonicalizeSize, composeTestId, controlTestId, createFlatTreeControl, createLucideLibrary, createNestedTreeControl, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, defaultTreeItemSize, formatSize, formatSizeExact, formatSizeForEditing, getSelectableTypes, injectTnCalendarIntl, injectTnFallbackName, injectTnFormFieldAria, injectTnLabels, isPathWithinRoot, kebabTestSegment, labelMarkupToHtml, labelMarkupToText, libIconMarker, normalizeRootPath, optionTestId, parseLabelMarkup, parseSize, parseSizeParts, registerLucideIcons, resolveErrorMessage, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
15347
- export type { AutocompleteHarnessFilters, BannerActionHarnessFilters, BannerHarnessFilters, ButtonHarnessFilters, ButtonToggleHarnessFilters, CalendarCell, CalendarCellFill, CalendarCellHarnessFilters, CalendarHarnessFilters, 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, ParsedSize, PathSegment, PlatformType, ProgressBarMode, RadioGroupHarnessFilters, RadioHarnessFilters, ResolveErrorMessageOptions, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SidePanelHarnessFilters, SizeStandard, SlideToggleColor, SlideToggleHarnessFilters, SpinnerMode, SpriteConfig, StepperHarnessFilters, SubscriptSizing, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnAutocompleteLabels, TnAutocompleteOption, TnBannerType, TnButtonToggleType, TnCalendarIntl, TnCalendarIntlInput, TnCalendarView, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnChipInputHarnessFilters, TnChipInputOption, TnConfirmDialogData, TnDialogChromeLabels, TnDialogDefaults, TnDialogOpenTarget, TnDrawerMode, TnDrawerPosition, TnEmptySize, TnFallbackLabels, TnFallbackName, TnFlatTreeNode, TnFormErrorsHarnessFilters, TnFormFieldAriaBindings, TnFormFieldContext, TnFormFieldErrorMessage, TnFormFieldErrorMessages, TnFormFieldErrorResolver, TnFormListContext, TnFormListHarnessFilters, TnFormListItemHarnessFilters, TnMenuItem, TnOptionTestIdSource, TnRadioGroupApi, TnRadioOption, TnSelectLabels, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnSortEvent, TnTableDataProvider, TnTableDataSource, TnTableHarnessFilters, TnTableLabels, TnTableMobileLayout, TnTablePagerHarnessFilters, TnTablePagerLabels, TnTablePagination, TnTestAttrName, TnTestIdValue, TnThemeDefinition, TnToastCall, TnToastConfig, TnTreeExpansion, TnTreeHarnessFilters, TnTreeNodeHarnessFilters, TnTreeVirtualNodeData, TnTreeVirtualScrollViewHarnessFilters, TooltipHarnessFilters, TooltipPosition, YearCell };
15634
+ export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LIGHT_THEME, LabelMarkupPipe, LabelTextPipe, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, THEME_MAP, THEME_STORAGE_KEY, TN_AUTOCOMPLETE_DEFAULT_LABELS, TN_AUTOCOMPLETE_LABELS, TN_BRANDED_SPINNER_DEFAULT_LABEL, TN_CALENDAR_INTL, TN_CALENDAR_INTL_DEFAULTS, TN_DEFAULT_FALLBACK_LABELS, TN_DIALOG_CHROME_LABELS, TN_DIALOG_DEFAULT_CHROME_LABELS, TN_DIALOG_SHELL_DEFAULT_LABEL, TN_DRAWER_CONTENT_LABEL, TN_DRAWER_DEFAULT_LABEL, TN_FALLBACK_LABELS, TN_FORM_FIELD_CONTEXT, TN_FORM_FIELD_DISMISSIBLE_ERRORS, TN_FORM_FIELD_ERRORS, TN_FORM_LIST_CONTEXT, TN_PARTICLE_PROGRESS_BAR_DEFAULT_LABEL, TN_PROGRESS_BAR_DEFAULT_LABEL, TN_RADIO_GROUP, TN_SELECT_DEFAULT_LABELS, TN_SELECT_LABELS, TN_SIDE_PANEL_CONTENT_LABEL, TN_SIDE_PANEL_DEFAULT_LABEL, TN_SIDE_PANEL_OVERFLOW_TOLERANCE_PX, TN_SPINNER_DEFAULT_LABEL, TN_STEPPER_STATUS_COMPLETED, TN_STEPPER_STATUS_ERROR, TN_TABLE_DEFAULT_LABELS, TN_TABLE_LABELS, TN_TABLE_PAGER_DEFAULT_LABELS, TN_TABLE_PAGER_LABELS, TN_TABLE_SCROLL_REGION_LABEL, TN_TAB_PANEL_CONTENT_LABEL, TN_TEST_ATTR, TN_THEME_DEFINITIONS, TN_TOAST_ANNOUNCE_DELAY_MS, TnAutocompleteComponent, TnAutocompleteHarness, TnBannerActionDirective, TnBannerActionHarness, TnBannerComponent, TnBannerHarness, TnBrandedSpinnerComponent, TnButtonComponent, TnButtonHarness, TnButtonToggleComponent, TnButtonToggleGroupComponent, TnButtonToggleGroupHarness, TnButtonToggleHarness, TnCalendarCellHarness, TnCalendarComponent, TnCalendarHarness, TnCalendarHeaderComponent, TnCardComponent, TnCardFooterActionsDirective, TnCardHeaderActionsDirective, TnCardHeaderDirective, TnCellDefDirective, TnCheckboxComponent, TnCheckboxGroupComponent, TnCheckboxGroupHarness, 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, TnFormErrorsComponent, TnFormErrorsHarness, TnFormFieldComponent, TnFormFieldHarness, TnFormListComponent, TnFormListHarness, TnFormListItemComponent, TnFormListItemHarness, 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, TnRadioGroupComponent, TnRadioGroupHarness, TnRadioHarness, TnRowActionsDefDirective, 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, TnTableTesting, TnTabsComponent, TnTabsHarness, TnTestIdDirective, TnTheme, TnThemeService, TnTimeInputComponent, TnToastComponent, TnToastMock, TnToastPosition, TnToastRef, TnToastService, TnToastTesting, TnToastType, TnTooltipComponent, TnTooltipDirective, TnTooltipHarness, TnTooltipTesting, TnTreeComponent, TnTreeFlatDataSource, TnTreeFlattener, TnTreeHarness, TnTreeNodeComponent, TnTreeNodeHarness, TnTreeNodeOutletDirective, TnTreeVirtualScrollNodeOutletDirective, TnTreeVirtualScrollViewComponent, TnTreeVirtualScrollViewHarness, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, allowsCurrentDirectorySelection, canonicalizeSize, composeTestId, controlTestId, createFlatTreeControl, createLucideLibrary, createNestedTreeControl, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, defaultTreeItemSize, formatSize, formatSizeExact, formatSizeForEditing, getSelectableTypes, injectTnCalendarIntl, injectTnFallbackName, injectTnFormFieldAria, injectTnLabels, isPathWithinRoot, kebabTestSegment, labelMarkupToHtml, labelMarkupToText, libIconMarker, normalizeRootPath, optionTestId, parseLabelMarkup, parseSize, parseSizeParts, registerLucideIcons, resolveErrorMessage, scopeTestId, setupLucideIntegration, tnIconMarker, writeTestId };
15635
+ export type { AutocompleteHarnessFilters, BannerActionHarnessFilters, BannerHarnessFilters, ButtonHarnessFilters, ButtonToggleHarnessFilters, CalendarCell, CalendarCellFill, CalendarCellHarnessFilters, CalendarHarnessFilters, CheckboxGroupHarnessFilters, 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, ParsedSize, PathSegment, PlatformType, ProgressBarMode, RadioGroupHarnessFilters, RadioHarnessFilters, ResolveErrorMessageOptions, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SidePanelHarnessFilters, SizeStandard, SlideToggleColor, SlideToggleHarnessFilters, SpinnerMode, SpriteConfig, StepperHarnessFilters, SubscriptSizing, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnAutocompleteLabels, TnAutocompleteOption, TnBannerType, TnButtonToggleType, TnCalendarIntl, TnCalendarIntlInput, TnCalendarView, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnCheckboxOption, TnChipInputHarnessFilters, TnChipInputOption, TnConfirmDialogData, TnDialogChromeLabels, TnDialogDefaults, TnDialogOpenTarget, TnDrawerMode, TnDrawerPosition, TnEmptySize, TnFallbackLabels, TnFallbackName, TnFlatTreeNode, TnFormErrorsHarnessFilters, TnFormFieldAriaBindings, TnFormFieldContext, TnFormFieldErrorMessage, TnFormFieldErrorMessages, TnFormFieldErrorResolver, TnFormListContext, TnFormListHarnessFilters, TnFormListItemHarnessFilters, TnMenuItem, TnOptionTestIdSource, TnRadioGroupApi, TnRadioOption, TnSelectLabels, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnSortEvent, TnTableDataProvider, TnTableDataSource, TnTableHarnessFilters, TnTableLabels, TnTableMobileLayout, TnTablePagerHarnessFilters, TnTablePagerLabels, TnTablePagination, TnTestAttrName, TnTestIdValue, TnThemeDefinition, TnToastCall, TnToastConfig, TnTreeExpansion, TnTreeHarnessFilters, TnTreeNodeHarnessFilters, TnTreeVirtualNodeData, TnTreeVirtualScrollViewHarnessFilters, TooltipHarnessFilters, TooltipPosition, YearCell };