@truenas/ui-components 0.1.14 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truenas/ui-components",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public"
@@ -47,7 +47,13 @@
47
47
  --tn-icon-xl: 32px;
48
48
 
49
49
  /* Dialog content padding */
50
- --tn-content-padding: 24px;
50
+ --tn-content-padding: 16px;
51
+ }
52
+
53
+ @media (min-width: 768px) {
54
+ :root {
55
+ --tn-content-padding: 24px;
56
+ }
51
57
  }
52
58
 
53
59
 
@@ -530,6 +536,7 @@ tn-dialog-shell {
530
536
  overflow-y: auto;
531
537
  overflow-x: hidden;
532
538
  box-sizing: border-box;
539
+ padding: var(--tn-content-padding, 16px);
533
540
  }
534
541
 
535
542
  /* Dialog actions */
@@ -1039,6 +1039,7 @@ declare class TnTabComponent implements AfterContentInit {
1039
1039
  isActive: _angular_core.WritableSignal<boolean>;
1040
1040
  tabsComponent?: {
1041
1041
  onKeydown: (event: KeyboardEvent, index: number) => void;
1042
+ selectTab: (index: number) => void;
1042
1043
  };
1043
1044
  elementRef: ElementRef<any>;
1044
1045
  protected hasIconContent: _angular_core.WritableSignal<boolean>;
@@ -1108,6 +1109,364 @@ declare class TnTabsComponent implements AfterContentInit, AfterViewInit, OnDest
1108
1109
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnTabsComponent, "tn-tabs", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "highlightPosition": { "alias": "highlightPosition"; "required": false; "isSignal": true; }; }, { "selectedIndexChange": "selectedIndexChange"; "tabChange": "tabChange"; }, ["tabs", "panels"], ["tn-tab", "tn-tab-panel"], true, never>;
1109
1110
  }
1110
1111
 
1112
+ /**
1113
+ * Harness for interacting with tn-tab in tests.
1114
+ * Provides methods for querying individual tab state and simulating selection.
1115
+ *
1116
+ * @example
1117
+ * ```typescript
1118
+ * // Find a tab by label
1119
+ * const tab = await loader.getHarness(TnTabHarness.with({ label: 'Settings' }));
1120
+ *
1121
+ * // Check if active
1122
+ * expect(await tab.isSelected()).toBe(false);
1123
+ *
1124
+ * // Select it
1125
+ * await tab.select();
1126
+ * expect(await tab.isSelected()).toBe(true);
1127
+ * ```
1128
+ */
1129
+ declare class TnTabHarness extends ComponentHarness {
1130
+ /**
1131
+ * The selector for the host element of a `TnTabComponent` instance.
1132
+ */
1133
+ static hostSelector: string;
1134
+ private _button;
1135
+ /**
1136
+ * Gets a `HarnessPredicate` that can be used to search for a tab
1137
+ * with specific attributes.
1138
+ *
1139
+ * @param options Options for filtering which tab instances are considered a match.
1140
+ * @returns A `HarnessPredicate` configured with the given options.
1141
+ *
1142
+ * @example
1143
+ * ```typescript
1144
+ * // Find tab by exact label
1145
+ * const tab = await loader.getHarness(TnTabHarness.with({ label: 'Overview' }));
1146
+ *
1147
+ * // Find tab by regex
1148
+ * const tab = await loader.getHarness(TnTabHarness.with({ label: /settings/i }));
1149
+ * ```
1150
+ */
1151
+ static with(options?: TabHarnessFilters): HarnessPredicate<TnTabHarness>;
1152
+ /**
1153
+ * Gets the tab's label text.
1154
+ *
1155
+ * @returns Promise resolving to the tab's label string.
1156
+ *
1157
+ * @example
1158
+ * ```typescript
1159
+ * const tab = await loader.getHarness(TnTabHarness);
1160
+ * expect(await tab.getLabel()).toBe('Overview');
1161
+ * ```
1162
+ */
1163
+ getLabel(): Promise<string>;
1164
+ /**
1165
+ * Checks whether the tab is currently selected (active).
1166
+ *
1167
+ * @returns Promise resolving to true if the tab is selected.
1168
+ *
1169
+ * @example
1170
+ * ```typescript
1171
+ * const tab = await loader.getHarness(TnTabHarness.with({ label: 'Overview' }));
1172
+ * expect(await tab.isSelected()).toBe(true);
1173
+ * ```
1174
+ */
1175
+ isSelected(): Promise<boolean>;
1176
+ /**
1177
+ * Checks whether the tab is disabled.
1178
+ *
1179
+ * @returns Promise resolving to true if the tab is disabled.
1180
+ *
1181
+ * @example
1182
+ * ```typescript
1183
+ * const tab = await loader.getHarness(TnTabHarness.with({ label: 'Disabled Tab' }));
1184
+ * expect(await tab.isDisabled()).toBe(true);
1185
+ * ```
1186
+ */
1187
+ isDisabled(): Promise<boolean>;
1188
+ /**
1189
+ * Selects the tab by clicking it.
1190
+ *
1191
+ * @returns Promise that resolves when the tab has been clicked.
1192
+ *
1193
+ * @example
1194
+ * ```typescript
1195
+ * const tab = await loader.getHarness(TnTabHarness.with({ label: 'Settings' }));
1196
+ * await tab.select();
1197
+ * ```
1198
+ */
1199
+ select(): Promise<void>;
1200
+ /**
1201
+ * Gets the tab's testId attribute value.
1202
+ *
1203
+ * @returns Promise resolving to the data-testid value, or null if not set.
1204
+ *
1205
+ * @example
1206
+ * ```typescript
1207
+ * const tab = await loader.getHarness(TnTabHarness);
1208
+ * expect(await tab.getTestId()).toBe('my-tab');
1209
+ * ```
1210
+ */
1211
+ getTestId(): Promise<string | null>;
1212
+ }
1213
+ /**
1214
+ * A set of criteria that can be used to filter a list of `TnTabHarness` instances.
1215
+ */
1216
+ interface TabHarnessFilters extends BaseHarnessFilters {
1217
+ /** Filters by tab label text. Supports string or regex matching. */
1218
+ label?: string | RegExp;
1219
+ }
1220
+
1221
+ /**
1222
+ * Harness for interacting with tn-tab-panel in tests.
1223
+ * Provides methods for querying panel visibility and content.
1224
+ *
1225
+ * @example
1226
+ * ```typescript
1227
+ * // Get all panels
1228
+ * const panels = await loader.getAllHarnesses(TnTabPanelHarness);
1229
+ *
1230
+ * // Check which panel is active
1231
+ * for (const panel of panels) {
1232
+ * if (await panel.isActive()) {
1233
+ * const text = await panel.getTextContent();
1234
+ * expect(text).toContain('Overview');
1235
+ * }
1236
+ * }
1237
+ * ```
1238
+ */
1239
+ declare class TnTabPanelHarness extends ComponentHarness {
1240
+ /**
1241
+ * The selector for the host element of a `TnTabPanelComponent` instance.
1242
+ */
1243
+ static hostSelector: string;
1244
+ private _panel;
1245
+ /**
1246
+ * Gets a `HarnessPredicate` that can be used to search for a tab panel
1247
+ * with specific attributes.
1248
+ *
1249
+ * @param options Options for filtering which panel instances are considered a match.
1250
+ * @returns A `HarnessPredicate` configured with the given options.
1251
+ *
1252
+ * @example
1253
+ * ```typescript
1254
+ * const panel = await loader.getHarness(
1255
+ * TnTabPanelHarness.with({ textContains: 'Overview' })
1256
+ * );
1257
+ * ```
1258
+ */
1259
+ static with(options?: TabPanelHarnessFilters): HarnessPredicate<TnTabPanelHarness>;
1260
+ /**
1261
+ * Checks whether the panel is currently active (visible).
1262
+ *
1263
+ * @returns Promise resolving to true if the panel is active.
1264
+ *
1265
+ * @example
1266
+ * ```typescript
1267
+ * const panel = await loader.getHarness(TnTabPanelHarness);
1268
+ * expect(await panel.isActive()).toBe(true);
1269
+ * ```
1270
+ */
1271
+ isActive(): Promise<boolean>;
1272
+ /**
1273
+ * Gets the text content of the panel.
1274
+ *
1275
+ * @returns Promise resolving to the panel's text content.
1276
+ *
1277
+ * @example
1278
+ * ```typescript
1279
+ * const panel = await loader.getHarness(TnTabPanelHarness);
1280
+ * expect(await panel.getTextContent()).toContain('Overview');
1281
+ * ```
1282
+ */
1283
+ getTextContent(): Promise<string>;
1284
+ /**
1285
+ * Gets the panel's testId attribute value.
1286
+ *
1287
+ * @returns Promise resolving to the data-testid value, or null if not set.
1288
+ *
1289
+ * @example
1290
+ * ```typescript
1291
+ * const panel = await loader.getHarness(TnTabPanelHarness);
1292
+ * expect(await panel.getTestId()).toBe('my-panel');
1293
+ * ```
1294
+ */
1295
+ getTestId(): Promise<string | null>;
1296
+ }
1297
+ /**
1298
+ * A set of criteria that can be used to filter a list of `TnTabPanelHarness` instances.
1299
+ */
1300
+ interface TabPanelHarnessFilters extends BaseHarnessFilters {
1301
+ /** Filters by text content within panel. Supports string or regex matching. */
1302
+ textContains?: string | RegExp;
1303
+ }
1304
+
1305
+ /**
1306
+ * Harness for interacting with tn-tabs in tests.
1307
+ * Provides methods for querying tab state, selecting tabs, and inspecting panels.
1308
+ *
1309
+ * @example
1310
+ * ```typescript
1311
+ * // Get the tabs harness
1312
+ * const tabs = await loader.getHarness(TnTabsHarness);
1313
+ *
1314
+ * // Select a tab by label
1315
+ * await tabs.selectTab({ label: 'Settings' });
1316
+ *
1317
+ * // Get the selected tab label
1318
+ * const selected = await tabs.getSelectedTab();
1319
+ * expect(await selected.getLabel()).toBe('Settings');
1320
+ *
1321
+ * // Get all tab labels
1322
+ * const labels = await tabs.getTabLabels();
1323
+ * expect(labels).toEqual(['Overview', 'Details', 'Settings']);
1324
+ * ```
1325
+ */
1326
+ declare class TnTabsHarness extends ComponentHarness {
1327
+ /**
1328
+ * The selector for the host element of a `TnTabsComponent` instance.
1329
+ */
1330
+ static hostSelector: string;
1331
+ /**
1332
+ * Gets a `HarnessPredicate` that can be used to search for tabs
1333
+ * with specific attributes.
1334
+ *
1335
+ * @param options Options for filtering which tabs instances are considered a match.
1336
+ * @returns A `HarnessPredicate` configured with the given options.
1337
+ *
1338
+ * @example
1339
+ * ```typescript
1340
+ * // Find by orientation
1341
+ * const tabs = await loader.getHarness(TnTabsHarness.with({ orientation: 'vertical' }));
1342
+ *
1343
+ * // Find the tab group containing a "Settings" tab
1344
+ * const tabs = await loader.getHarness(TnTabsHarness.with({ hasTab: 'Settings' }));
1345
+ *
1346
+ * // Find by regex
1347
+ * const tabs = await loader.getHarness(TnTabsHarness.with({ hasTab: /settings/i }));
1348
+ * ```
1349
+ */
1350
+ static with(options?: TabsHarnessFilters): HarnessPredicate<TnTabsHarness>;
1351
+ /**
1352
+ * Gets all tab harnesses within this tab group.
1353
+ *
1354
+ * @returns Promise resolving to an array of `TnTabHarness` instances.
1355
+ *
1356
+ * @example
1357
+ * ```typescript
1358
+ * const tabs = await loader.getHarness(TnTabsHarness);
1359
+ * const allTabs = await tabs.getTabs();
1360
+ * expect(allTabs.length).toBe(3);
1361
+ * ```
1362
+ */
1363
+ getTabs(): Promise<TnTabHarness[]>;
1364
+ /**
1365
+ * Gets a specific tab by filter criteria.
1366
+ *
1367
+ * @param filter Optional filter to match a specific tab.
1368
+ * @returns Promise resolving to the matching `TnTabHarness`.
1369
+ *
1370
+ * @example
1371
+ * ```typescript
1372
+ * const tabs = await loader.getHarness(TnTabsHarness);
1373
+ * const settingsTab = await tabs.getTab({ label: 'Settings' });
1374
+ * ```
1375
+ */
1376
+ getTab(filter?: TabHarnessFilters): Promise<TnTabHarness>;
1377
+ /**
1378
+ * Gets all panel harnesses within this tab group.
1379
+ *
1380
+ * @returns Promise resolving to an array of `TnTabPanelHarness` instances.
1381
+ *
1382
+ * @example
1383
+ * ```typescript
1384
+ * const tabs = await loader.getHarness(TnTabsHarness);
1385
+ * const panels = await tabs.getPanels();
1386
+ * expect(panels.length).toBe(3);
1387
+ * ```
1388
+ */
1389
+ getPanels(): Promise<TnTabPanelHarness[]>;
1390
+ /**
1391
+ * Gets all tab labels as strings.
1392
+ *
1393
+ * @returns Promise resolving to an array of tab label strings.
1394
+ *
1395
+ * @example
1396
+ * ```typescript
1397
+ * const tabs = await loader.getHarness(TnTabsHarness);
1398
+ * const labels = await tabs.getTabLabels();
1399
+ * expect(labels).toEqual(['Overview', 'Details', 'Settings']);
1400
+ * ```
1401
+ */
1402
+ getTabLabels(): Promise<string[]>;
1403
+ /**
1404
+ * Gets the currently selected (active) tab.
1405
+ *
1406
+ * @returns Promise resolving to the active `TnTabHarness`.
1407
+ * @throws If no active tab is found.
1408
+ *
1409
+ * @example
1410
+ * ```typescript
1411
+ * const tabs = await loader.getHarness(TnTabsHarness);
1412
+ * const selected = await tabs.getSelectedTab();
1413
+ * expect(await selected.getLabel()).toBe('Overview');
1414
+ * ```
1415
+ */
1416
+ getSelectedTab(): Promise<TnTabHarness>;
1417
+ /**
1418
+ * Selects a tab by filter criteria. Clicks the matching tab button.
1419
+ *
1420
+ * @param filter Filter to identify which tab to select.
1421
+ * @returns Promise that resolves when the tab has been selected.
1422
+ *
1423
+ * @example
1424
+ * ```typescript
1425
+ * const tabs = await loader.getHarness(TnTabsHarness);
1426
+ *
1427
+ * // Select by label
1428
+ * await tabs.selectTab({ label: 'Settings' });
1429
+ *
1430
+ * // Select by regex
1431
+ * await tabs.selectTab({ label: /detail/i });
1432
+ * ```
1433
+ */
1434
+ selectTab(filter: TabHarnessFilters): Promise<void>;
1435
+ /**
1436
+ * Gets the orientation of the tab group.
1437
+ *
1438
+ * @returns Promise resolving to 'horizontal' or 'vertical'.
1439
+ *
1440
+ * @example
1441
+ * ```typescript
1442
+ * const tabs = await loader.getHarness(TnTabsHarness);
1443
+ * expect(await tabs.getOrientation()).toBe('horizontal');
1444
+ * ```
1445
+ */
1446
+ getOrientation(): Promise<string>;
1447
+ /**
1448
+ * Gets the number of tabs.
1449
+ *
1450
+ * @returns Promise resolving to the tab count.
1451
+ *
1452
+ * @example
1453
+ * ```typescript
1454
+ * const tabs = await loader.getHarness(TnTabsHarness);
1455
+ * expect(await tabs.getTabCount()).toBe(3);
1456
+ * ```
1457
+ */
1458
+ getTabCount(): Promise<number>;
1459
+ }
1460
+ /**
1461
+ * A set of criteria that can be used to filter a list of `TnTabsHarness` instances.
1462
+ */
1463
+ interface TabsHarnessFilters extends BaseHarnessFilters {
1464
+ /** Filters by tab group orientation. */
1465
+ orientation?: 'horizontal' | 'vertical';
1466
+ /** Filters by the presence of a tab with a matching label. Supports string or regex. */
1467
+ hasTab?: string | RegExp;
1468
+ }
1469
+
1111
1470
  /**
1112
1471
  * Directive that attaches a menu to any element.
1113
1472
  * Usage: <button [tnMenuTriggerFor]="menu">Open Menu</button>
@@ -3378,5 +3737,5 @@ declare const TN_THEME_DEFINITIONS: readonly TnThemeDefinition[];
3378
3737
  */
3379
3738
  declare const THEME_MAP: Map<TnTheme, TnThemeDefinition>;
3380
3739
 
3381
- export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, StripMntPrefixPipe, THEME_MAP, THEME_STORAGE_KEY, TN_THEME_DEFINITIONS, TnBannerActionDirective, TnBannerComponent, TnBannerHarness, TnBrandedSpinnerComponent, TnButtonComponent, TnButtonHarness, TnButtonToggleComponent, TnButtonToggleGroupComponent, TnCalendarComponent, TnCalendarHeaderComponent, TnCardComponent, TnCellDefDirective, TnCheckboxComponent, TnChipComponent, TnConfirmDialogComponent, TnDateInputComponent, TnDateRangeInputComponent, TnDialog, TnDialogShellComponent, TnDividerComponent, TnDividerDirective, TnExpansionPanelComponent, TnFilePickerComponent, TnFilePickerPopupComponent, TnFormFieldComponent, TnHeaderCellDefDirective, TnIconButtonComponent, TnIconButtonHarness, TnIconComponent, TnIconHarness, TnIconRegistryService, TnIconTesting, TnInputComponent, TnInputDirective, TnInputHarness, TnKeyboardShortcutComponent, TnKeyboardShortcutService, TnListAvatarDirective, TnListComponent, TnListIconDirective, TnListItemComponent, TnListItemLineDirective, TnListItemPrimaryDirective, TnListItemSecondaryDirective, TnListItemTitleDirective, TnListItemTrailingDirective, TnListOptionComponent, TnListSubheaderComponent, TnMenuComponent, TnMenuTriggerDirective, TnMonthViewComponent, TnMultiYearViewComponent, TnNestedTreeNodeComponent, TnParticleProgressBarComponent, TnProgressBarComponent, TnRadioComponent, TnSelectComponent, TnSelectHarness, TnSelectionListComponent, TnSlideToggleComponent, TnSliderComponent, TnSliderThumbDirective, TnSliderWithLabelDirective, TnSpinnerComponent, TnSpriteLoaderService, TnStepComponent, TnStepperComponent, TnTabComponent, TnTabPanelComponent, TnTableColumnDirective, TnTableComponent, TnTabsComponent, TnTheme, TnThemeService, TnTimeInputComponent, TnTooltipComponent, TnTooltipDirective, TnTreeComponent, TnTreeFlatDataSource, TnTreeFlattener, TnTreeNodeComponent, TnTreeNodeOutletDirective, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, createLucideLibrary, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, libIconMarker, registerLucideIcons, setupLucideIntegration, tnIconMarker };
3382
- export type { BannerHarnessFilters, ButtonHarnessFilters, CalendarCell, ChipColor, CreateFolderEvent, DateRange, FilePickerCallbacks, FilePickerError, FilePickerMode, FileSystemItem, IconButtonHarnessFilters, IconHarnessFilters, IconLibrary, IconLibraryType, IconResult, IconSize, IconSource, IconTestingMockOverrides, InputHarnessFilters, KeyCombination, LabelType, LucideIconOptions, MockIconRegistry, MockSpriteLoader, PathSegment, PlatformType, ProgressBarMode, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SlideToggleColor, SpinnerMode, SpriteConfig, TabChangeEvent, TnBannerType, TnButtonToggleType, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnConfirmDialogData, TnDialogDefaults, TnDialogOpenTarget, TnFlatTreeNode, TnMenuItem, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnTableDataSource, TnThemeDefinition, TooltipPosition, YearCell };
3740
+ export { CommonShortcuts, DEFAULT_THEME, DiskIconComponent, DiskType, FileSizePipe, InputType, LinuxModifierKeys, LinuxShortcuts, ModifierKeys, QuickShortcuts, ShortcutBuilder, StripMntPrefixPipe, THEME_MAP, THEME_STORAGE_KEY, TN_THEME_DEFINITIONS, TnBannerActionDirective, TnBannerComponent, TnBannerHarness, TnBrandedSpinnerComponent, TnButtonComponent, TnButtonHarness, TnButtonToggleComponent, TnButtonToggleGroupComponent, TnCalendarComponent, TnCalendarHeaderComponent, TnCardComponent, TnCellDefDirective, TnCheckboxComponent, TnChipComponent, TnConfirmDialogComponent, TnDateInputComponent, TnDateRangeInputComponent, TnDialog, TnDialogShellComponent, TnDividerComponent, TnDividerDirective, TnExpansionPanelComponent, TnFilePickerComponent, TnFilePickerPopupComponent, TnFormFieldComponent, TnHeaderCellDefDirective, TnIconButtonComponent, TnIconButtonHarness, TnIconComponent, TnIconHarness, TnIconRegistryService, TnIconTesting, TnInputComponent, TnInputDirective, TnInputHarness, TnKeyboardShortcutComponent, TnKeyboardShortcutService, TnListAvatarDirective, TnListComponent, TnListIconDirective, TnListItemComponent, TnListItemLineDirective, TnListItemPrimaryDirective, TnListItemSecondaryDirective, TnListItemTitleDirective, TnListItemTrailingDirective, TnListOptionComponent, TnListSubheaderComponent, TnMenuComponent, TnMenuTriggerDirective, TnMonthViewComponent, TnMultiYearViewComponent, TnNestedTreeNodeComponent, TnParticleProgressBarComponent, TnProgressBarComponent, TnRadioComponent, TnSelectComponent, TnSelectHarness, TnSelectionListComponent, TnSlideToggleComponent, TnSliderComponent, TnSliderThumbDirective, TnSliderWithLabelDirective, TnSpinnerComponent, TnSpriteLoaderService, TnStepComponent, TnStepperComponent, TnTabComponent, TnTabHarness, TnTabPanelComponent, TnTabPanelHarness, TnTableColumnDirective, TnTableComponent, TnTabsComponent, TnTabsHarness, TnTheme, TnThemeService, TnTimeInputComponent, TnTooltipComponent, TnTooltipDirective, TnTreeComponent, TnTreeFlatDataSource, TnTreeFlattener, TnTreeNodeComponent, TnTreeNodeOutletDirective, TruncatePathPipe, WindowsModifierKeys, WindowsShortcuts, createLucideLibrary, createShortcut, defaultSpriteBasePath, defaultSpriteConfigPath, libIconMarker, registerLucideIcons, setupLucideIntegration, tnIconMarker };
3741
+ export type { BannerHarnessFilters, ButtonHarnessFilters, CalendarCell, ChipColor, CreateFolderEvent, DateRange, FilePickerCallbacks, FilePickerError, FilePickerMode, FileSystemItem, IconButtonHarnessFilters, IconHarnessFilters, IconLibrary, IconLibraryType, IconResult, IconSize, IconSource, IconTestingMockOverrides, InputHarnessFilters, KeyCombination, LabelType, LucideIconOptions, MockIconRegistry, MockSpriteLoader, PathSegment, PlatformType, ProgressBarMode, ResolvedIcon, SelectHarnessFilters, ShortcutHandler, SlideToggleColor, SpinnerMode, SpriteConfig, TabChangeEvent, TabHarnessFilters, TabPanelHarnessFilters, TabsHarnessFilters, TnBannerType, TnButtonToggleType, TnCardAction, TnCardControl, TnCardFooterLink, TnCardHeaderStatus, TnConfirmDialogData, TnDialogDefaults, TnDialogOpenTarget, TnFlatTreeNode, TnMenuItem, TnSelectOption, TnSelectOptionGroup, TnSelectionChange, TnTableDataSource, TnThemeDefinition, TooltipPosition, YearCell };