@fundamental-ngx/core 0.65.0-rc.8 → 0.65.0

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.
Files changed (44) hide show
  1. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +118 -39
  2. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-combobox.mjs +166 -22
  4. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-date-picker.mjs +1 -4
  6. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +21 -0
  8. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
  10. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-list.mjs +10 -6
  12. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-menu.mjs +63 -2
  14. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +21 -36
  16. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
  18. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-popover.mjs +22 -40
  20. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-select.mjs +1 -1
  22. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-settings.mjs +113 -13
  24. package/fesm2022/fundamental-ngx-core-settings.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-table.mjs +373 -499
  26. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-token.mjs +1 -1
  28. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +1 -1
  30. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +1 -1
  32. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  33. package/package.json +3 -3
  34. package/schematics/package.json +1 -1
  35. package/types/fundamental-ngx-core-avatar-group.d.ts +52 -19
  36. package/types/fundamental-ngx-core-combobox.d.ts +44 -6
  37. package/types/fundamental-ngx-core-datetime-picker.d.ts +3 -1
  38. package/types/fundamental-ngx-core-list.d.ts +4 -1
  39. package/types/fundamental-ngx-core-menu.d.ts +8 -1
  40. package/types/fundamental-ngx-core-mobile-mode.d.ts +2 -0
  41. package/types/fundamental-ngx-core-multi-combobox.d.ts +1 -1
  42. package/types/fundamental-ngx-core-popover.d.ts +11 -16
  43. package/types/fundamental-ngx-core-settings.d.ts +57 -5
  44. package/types/fundamental-ngx-core-table.d.ts +133 -164
@@ -30,7 +30,7 @@ interface ComboboxInterface extends MobileMode {
30
30
  inShellbar: boolean;
31
31
  getValue(): any;
32
32
  dialogApprove(): void;
33
- dialogDismiss(backup: string): void;
33
+ dialogDismiss(term?: any): void;
34
34
  }
35
35
  interface ComboboxItemDirectiveContext<T = unknown> {
36
36
  $implicit: T;
@@ -51,7 +51,11 @@ declare class ComboboxItemDirective<T = unknown> {
51
51
  static ɵdir: i0.ɵɵDirectiveDeclaration<ComboboxItemDirective<any>, "[fdComboboxItem]", never, { "fdComboboxItemUse": { "alias": "fdComboboxItemUse"; "required": false; }; }, {}, never, never, true, never>;
52
52
  }
53
53
 
54
- declare class ComboboxMobileComponent extends MobileModeBase<ComboboxInterface> implements OnInit {
54
+ interface ComboboxMobileBridge extends ComboboxInterface {
55
+ setMobileModeConfig(config: MobileModeConfig): void;
56
+ hasMobileApproveAction(): boolean;
57
+ }
58
+ declare class ComboboxMobileComponent extends MobileModeBase<ComboboxMobileBridge> implements OnInit {
55
59
  /** @hidden */
56
60
  dialogTemplate: TemplateRef<any>;
57
61
  /**
@@ -65,9 +69,11 @@ declare class ComboboxMobileComponent extends MobileModeBase<ComboboxInterface>
65
69
  controlTemplate: TemplateRef<any>;
66
70
  } | null;
67
71
  /** @hidden */
68
- private _selectedBackup;
72
+ private _handlingDialogAction;
73
+ /** @hidden */
74
+ private _dismissedByAction;
69
75
  /** @hidden */
70
- constructor(comboboxComponent: ComboboxInterface);
76
+ constructor(comboboxComponent: ComboboxMobileBridge);
71
77
  /** @hidden */
72
78
  ngOnInit(): void;
73
79
  /** @hidden */
@@ -81,6 +87,12 @@ declare class ComboboxMobileComponent extends MobileModeBase<ComboboxInterface>
81
87
  /** @hidden */
82
88
  private _open;
83
89
  /** @hidden */
90
+ private _closeDialog;
91
+ /** @hidden */
92
+ private _dismissDialog;
93
+ /** @hidden */
94
+ private _canCloseDialog;
95
+ /** @hidden */
84
96
  private _focusInputElementOnceOpened;
85
97
  static ɵfac: i0.ɵɵFactoryDeclaration<ComboboxMobileComponent, never>;
86
98
  static ɵcmp: i0.ɵɵComponentDeclaration<ComboboxMobileComponent, "fd-combobox-mobile", never, {}, {}, never, never, true, never>;
@@ -306,6 +318,10 @@ declare class ComboboxComponent<T = any> implements ComboboxInterface, SingleDro
306
318
  private _value;
307
319
  /** Last value confirmed by an explicit selection (item click) or external writeValue. */
308
320
  private _lastConfirmedValue;
321
+ /** Value state to restore when a mobile confirmation dialog is dismissed. */
322
+ private _mobileConfirmationSnapshot?;
323
+ /** Resolved global and local mobile configuration supplied by the mobile wrapper. */
324
+ private _mobileModeConfig?;
309
325
  private readonly _elementRef;
310
326
  private readonly _destroyRef;
311
327
  /** @hidden */
@@ -330,8 +346,18 @@ declare class ComboboxComponent<T = any> implements ComboboxInterface, SingleDro
330
346
  onItemFocused(value: any): void;
331
347
  /** @hidden */
332
348
  onMenuClickHandler(value: any, shouldClosePopover?: boolean): void;
333
- /** Handle dialog dismissing, closes popover and sets backup data. */
334
- dialogDismiss(term: any): void;
349
+ /**
350
+ * @hidden
351
+ * Receives the resolved mobile configuration from the mobile wrapper.
352
+ */
353
+ setMobileModeConfig(config: MobileModeConfig): void;
354
+ /**
355
+ * @hidden
356
+ * Whether the resolved mobile configuration provides a usable Approve action.
357
+ */
358
+ hasMobileApproveAction(): boolean;
359
+ /** Handle dialog dismissing, restoring an unconfirmed mobile selection when needed. */
360
+ dialogDismiss(term?: any): void;
335
361
  /** Handle dialog approval, closes popover and propagates data changes. */
336
362
  dialogApprove(): void;
337
363
  /** If true value empty */
@@ -377,6 +403,10 @@ declare class ComboboxComponent<T = any> implements ComboboxInterface, SingleDro
377
403
  private _popoverOverlayPane;
378
404
  /** @hidden */
379
405
  private _isInputDirtyVsModel;
406
+ /** @hidden */
407
+ private _getCompletedAutocompleteValue;
408
+ /** @hidden */
409
+ private _commitCompletedAutocompleteValue;
380
410
  /** Method that picks other value moved from current one by offset, called only when combobox is closed */
381
411
  private _chooseOtherItem;
382
412
  /** Method that reset filtering for displayed values. It overrides displayed values by all possible dropdown values */
@@ -392,6 +422,14 @@ declare class ComboboxComponent<T = any> implements ComboboxInterface, SingleDro
392
422
  /** @hidden */
393
423
  private _getOptionObjectByDisplayedValue;
394
424
  /** @hidden */
425
+ private _isMobileConfirmationMode;
426
+ /** @hidden */
427
+ private _captureMobileConfirmationSnapshot;
428
+ /** @hidden */
429
+ private _restoreMobileConfirmationSnapshot;
430
+ /** @hidden */
431
+ private _confirmMobileSelection;
432
+ /** @hidden */
395
433
  private _refreshDisplayedValues;
396
434
  /** @hidden */
397
435
  private _propagateChange;
@@ -175,7 +175,7 @@ declare class DatetimePickerComponent<D> implements DateTimePicker<D>, OnInit, O
175
175
  /** Event thrown every time calendar active view is changed */
176
176
  readonly activeViewChange: EventEmitter<FdCalendarView>;
177
177
  /** Event emitted when the date changes. This can be a time or day change. */
178
- readonly dateChange: EventEmitter<D>;
178
+ readonly dateChange: EventEmitter<D | null>;
179
179
  /** Event emitted when the day changes from the calendar. */
180
180
  readonly calendarChange: EventEmitter<D>;
181
181
  /** Event emitted when the time changes from the time component. */
@@ -374,6 +374,8 @@ declare class DatetimePickerComponent<D> implements DateTimePicker<D>, OnInit, O
374
374
  private _calculateTimeOptions;
375
375
  /** @hidden */
376
376
  private _setUpMobileMode;
377
+ private _emitDateChange;
378
+ private _datesAreEqual;
377
379
  static ɵfac: i0.ɵɵFactoryDeclaration<DatetimePickerComponent<any>, [null, null, { optional: true; }, { optional: true; }, null]>;
378
380
  static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePickerComponent<any>, "fd-datetime-picker", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "required": { "alias": "required"; "required": false; }; "customDateTimeFormat": { "alias": "customDateTimeFormat"; "required": false; }; "meridian": { "alias": "meridian"; "required": false; }; "displaySeconds": { "alias": "displaySeconds"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "message": { "alias": "message"; "required": false; }; "messageTriggers": { "alias": "messageTriggers"; "required": false; }; "displayMinutes": { "alias": "displayMinutes"; "required": false; }; "displayHours": { "alias": "displayHours"; "required": false; }; "useValidation": { "alias": "useValidation"; "required": false; }; "date": { "alias": "date"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "startingDayOfWeek": { "alias": "startingDayOfWeek"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; "keepTwoDigitsTime": { "alias": "keepTwoDigitsTime"; "required": false; }; "state": { "alias": "state"; "required": false; }; "buttonFocusable": { "alias": "buttonFocusable"; "required": false; }; "yearGrid": { "alias": "yearGrid"; "required": false; }; "aggregatedYearGrid": { "alias": "aggregatedYearGrid"; "required": false; }; "markWeekends": { "alias": "markWeekends"; "required": false; }; "spinnerButtons": { "alias": "spinnerButtons"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "processInputOnBlur": { "alias": "processInputOnBlur"; "required": false; }; "preventScrollOnFocus": { "alias": "preventScrollOnFocus"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "mobileConfig": { "alias": "mobileConfig"; "required": false; }; "mobileLandscape": { "alias": "mobileLandscape"; "required": false; }; "mobilePortrait": { "alias": "mobilePortrait"; "required": false; }; "isFullWidth": { "alias": "isFullWidth"; "required": false; }; "specialDaysRules": { "alias": "specialDaysRules"; "required": false; "isSignal": true; }; "showCalendarLegend": { "alias": "showCalendarLegend"; "required": false; "isSignal": true; }; "legendCol": { "alias": "legendCol"; "required": false; "isSignal": true; }; "disableFunction": { "alias": "disableFunction"; "required": false; }; }, { "isOpenChange": "isOpenChange"; "activeViewChange": "activeViewChange"; "dateChange": "dateChange"; "calendarChange": "calendarChange"; "timeChange": "timeChange"; "onClose": "onClose"; "touched": "touched"; }, never, ["*"], true, never>;
379
381
  static ngAcceptInputType_processInputOnBlur: unknown;
@@ -520,6 +520,8 @@ declare class ListComponent implements ListComponentInterface, ListUnreadIndicat
520
520
  settingsList: i0.InputSignalWithTransform<boolean, unknown>;
521
521
  /** Whether the list is used inside Settings Dialog Footer */
522
522
  settingsListFooter: i0.InputSignalWithTransform<boolean, unknown>;
523
+ /** Whether the list is a notification list used inside Settings Dialog */
524
+ notification: i0.InputSignalWithTransform<boolean, unknown>;
523
525
  /** @hidden Whether the list is the shell search results list. */
524
526
  searchResultsList: i0.InputSignal<boolean>;
525
527
  /** @hidden */
@@ -570,7 +572,8 @@ declare class ListComponent implements ListComponentInterface, ListUnreadIndicat
570
572
  /** @hidden */
571
573
  private _listenOnListFocusEscape;
572
574
  static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
573
- static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "[fd-list], [fdList]", never, { "dropdownMode": { "alias": "dropdownMode"; "required": false; }; "multiInputMode": { "alias": "multiInputMode"; "required": false; }; "mobileMode": { "alias": "mobileMode"; "required": false; }; "hasMessage": { "alias": "hasMessage"; "required": false; }; "noBorder": { "alias": "noBorder"; "required": false; }; "navigationIndicator": { "alias": "navigationIndicator"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "keyboardSupport": { "alias": "keyboardSupport"; "required": false; }; "byline": { "alias": "byline"; "required": false; }; "subline": { "alias": "subline"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "unreadIndicator": { "alias": "unreadIndicator"; "required": false; }; "role": { "alias": "role"; "required": false; }; "settingsList": { "alias": "settingsList"; "required": false; "isSignal": true; }; "settingsListFooter": { "alias": "settingsListFooter"; "required": false; "isSignal": true; }; "searchResultsList": { "alias": "searchResultsList"; "required": false; "isSignal": true; }; }, { "focusEscapeList": "focusEscapeList"; }, ["items", "_navItems", "_focusItems"], ["*"], true, never>;
575
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "[fd-list], [fdList]", never, { "dropdownMode": { "alias": "dropdownMode"; "required": false; }; "multiInputMode": { "alias": "multiInputMode"; "required": false; }; "mobileMode": { "alias": "mobileMode"; "required": false; }; "hasMessage": { "alias": "hasMessage"; "required": false; }; "noBorder": { "alias": "noBorder"; "required": false; }; "navigationIndicator": { "alias": "navigationIndicator"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "keyboardSupport": { "alias": "keyboardSupport"; "required": false; }; "byline": { "alias": "byline"; "required": false; }; "subline": { "alias": "subline"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "unreadIndicator": { "alias": "unreadIndicator"; "required": false; }; "role": { "alias": "role"; "required": false; }; "settingsList": { "alias": "settingsList"; "required": false; "isSignal": true; }; "settingsListFooter": { "alias": "settingsListFooter"; "required": false; "isSignal": true; }; "notification": { "alias": "notification"; "required": false; "isSignal": true; }; "searchResultsList": { "alias": "searchResultsList"; "required": false; "isSignal": true; }; }, { "focusEscapeList": "focusEscapeList"; }, ["items", "_navItems", "_focusItems"], ["*"], true, never>;
576
+ static ngAcceptInputType_byline: unknown;
574
577
  }
575
578
 
576
579
  /**
@@ -486,6 +486,8 @@ declare class MenuService implements OnDestroy {
486
486
  private _emitActivePath;
487
487
  /** @hidden Depending on direction returns closest enabled sibling of given node */
488
488
  private _closestEnabled;
489
+ /** @hidden Returns first/last enabled sibling for Home/End keyboard support */
490
+ private _boundaryEnabled;
489
491
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuService, never>;
490
492
  static ɵprov: i0.ɵɵInjectableDeclaration<MenuService>;
491
493
  }
@@ -701,12 +703,17 @@ declare class MenuKeyboardService {
701
703
  focusEscapeAfterList: () => void;
702
704
  /** Function that should be called every time, keydown event is used on some menu item,
703
705
  * it provides whole functionality for handling
704
- * ArrowDown - focus, ArrowUp - focus, Space bar - simulate click, Enter key - simulate click.
706
+ * ArrowDown - focus, ArrowUp - focus, Home - focus first enabled item, End - focus last enabled item,
707
+ * Space bar - simulate click, Enter key - simulate click.
705
708
  * @param event KeyboardEvent
706
709
  * @param index index of items starts from 0
707
710
  * @param menuItems array of menu item directives
708
711
  * */
709
712
  keyDownHandler(event: KeyboardEvent, index: number, menuItems: DefaultMenuItem[] | ListItemComponent[]): void;
713
+ /** @hidden Returns index of first/last enabled item. Falls back to first/last if disabled state is unavailable. */
714
+ private _findBoundaryEnabledIndex;
715
+ /** @hidden Detects disabled state if supported by the item implementation. */
716
+ private _isItemDisabled;
710
717
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuKeyboardService, never>;
711
718
  static ɵprov: i0.ɵɵInjectableDeclaration<MenuKeyboardService>;
712
719
  }
@@ -5,6 +5,8 @@ import { InjectionToken, DestroyRef, ElementRef } from '@angular/core';
5
5
  interface MobileModeConfig {
6
6
  /** Dialog Title */
7
7
  title?: string;
8
+ /** Short instruction text rendered below the dialog title to guide the user. */
9
+ instruction?: string;
8
10
  /** Approve Button Label. If empty, button will not appear */
9
11
  approveButtonText?: string;
10
12
  /** Cancel Button Label. If empty, button will not appear */
@@ -341,7 +341,7 @@ declare abstract class BaseMultiCombobox<T = any> {
341
341
  */
342
342
  protected _emitChangeEvent(): void;
343
343
  /** @hidden */
344
- protected _setSelectedSuggestions(): void;
344
+ protected _setSelectedSuggestions(selectedItems?: T[]): void;
345
345
  /**
346
346
  * Convert original data to SelectableOptionItems Interface
347
347
  * @hidden
@@ -923,23 +923,18 @@ declare class PopoverService {
923
923
  private _focusLastActiveElementBeforeOpen;
924
924
  /**
925
925
  * @hidden
926
- * Starts a MutationObserver on the nearest scrollable ancestor of the trigger element (falling
927
- * back to document.body) to detect layout shifts that would invalidate the overlay position.
928
- * Two mutation types are observed within the subtree:
929
- * - `childList`: catches elements being added to or removed from the DOM (e.g. a banner/toast
930
- * that is fully removed after its timer expires).
931
- * - `attributes` with `attributeFilter: ['style', 'class']`: catches visibility toggling via
932
- * CSS (e.g. `display: none` applied inline or through a utility class, as the
933
- * `fd-message-strip` autoDismiss directive does).
934
- * The callback is debounced through `requestAnimationFrame` so that rapid batched mutations
935
- * (Angular rendering a whole subtree at once) only trigger a single `updatePosition()` call.
936
- */
937
- private _startAncestorResizeObserver;
938
- /**
939
- * @hidden
940
- * Returns the nearest scrollable ancestor, or document.body when none is found.
926
+ * Starts a MutationObserver on document.body to detect any layout shift that could
927
+ * invalidate the overlay position — including mutations in elements outside the trigger's
928
+ * nearest scroll container (e.g. a collapsible header above a table pushing the trigger down).
929
+ *
930
+ * Observed mutation types:
931
+ * - `childList`: elements added/removed from the DOM (Angular `@if`, ngIf, toast dismissed).
932
+ * - `attributes` with `attributeFilter: ['style', 'class']`: visibility toggled via CSS.
933
+ *
934
+ * The callback is debounced through `requestAnimationFrame` so rapid batched mutations
935
+ * only trigger a single `updatePosition()` call per frame.
941
936
  */
942
- private _findScrollableAncestor;
937
+ private _startLayoutShiftObserver;
943
938
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverService, never>;
944
939
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<PopoverService>;
945
940
  }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnDestroy, AfterViewInit, ViewContainerRef } from '@angular/core';
2
+ import { OnDestroy, AfterViewInit, ViewContainerRef, TemplateRef } from '@angular/core';
3
3
  import { ListItemComponent } from '@fundamental-ngx/core/list';
4
4
 
5
5
  type SettingsViewMode = 'lg' | 'md' | 'sm';
@@ -8,6 +8,13 @@ declare enum VIEW_MODE {
8
8
  MD = "md",
9
9
  SM = "sm"
10
10
  }
11
+ /** Represents a secondary view in the view stack */
12
+ interface SettingsStackedView {
13
+ /** The template to render */
14
+ template: TemplateRef<any>;
15
+ /** The title to display in the header */
16
+ title: string;
17
+ }
11
18
  declare class SettingsContainerComponent implements OnDestroy, AfterViewInit {
12
19
  /**
13
20
  * Heading level for the title in the Details Area
@@ -41,15 +48,30 @@ declare class SettingsContainerComponent implements OnDestroy, AfterViewInit {
41
48
  readonly showDetailArea: i0.WritableSignal<boolean>;
42
49
  /** @hidden */
43
50
  readonly activeTitle: i0.WritableSignal<string>;
51
+ /** Whether there is a stacked (secondary) view currently displayed */
52
+ readonly hasStackedView: i0.Signal<boolean>;
53
+ /**
54
+ * The current title to display in the header.
55
+ * Returns the stacked view's title if one exists, otherwise the active list item's title.
56
+ * Computed from the view stack to reactively update when navigating between views.
57
+ */
58
+ readonly currentTitle: i0.Signal<string>;
44
59
  /**
45
60
  * Handle the navigation icon (arrow) of the Back button in RTL mode
46
61
  */
47
62
  protected readonly navigationArrow: i0.Signal<"navigation-right-arrow" | "navigation-left-arrow">;
63
+ /**
64
+ * Stack of secondary views pushed on top of the main template.
65
+ * This enables drill-down navigation within a settings section.
66
+ */
67
+ private readonly _viewStack;
48
68
  /** @hidden */
49
69
  private _eventUnlisteners;
50
70
  /** @hidden */
51
71
  private readonly _rtlService;
52
72
  /** @hidden */
73
+ private readonly _elementRef;
74
+ /** @hidden */
53
75
  private _renderer;
54
76
  /** @hidden */
55
77
  constructor();
@@ -59,6 +81,22 @@ declare class SettingsContainerComponent implements OnDestroy, AfterViewInit {
59
81
  ngAfterViewInit(): void;
60
82
  /** @hidden */
61
83
  ngOnDestroy(): void;
84
+ /**
85
+ * Push a secondary view onto the stack.
86
+ * Use this to navigate to a drill-down view within a settings section.
87
+ * @param template The template to render
88
+ * @param title The title to display in the header
89
+ */
90
+ pushView(template: TemplateRef<any>, title: string): void;
91
+ /**
92
+ * Pop the top view from the stack, returning to the previous view.
93
+ * If no stacked views exist, this method does nothing.
94
+ */
95
+ popView(): void;
96
+ /**
97
+ * Clear all stacked views and return to the main template.
98
+ */
99
+ clearViewStack(): void;
62
100
  /** @hidden */
63
101
  onHeaderBackClick(): void;
64
102
  /** @hidden */
@@ -66,11 +104,13 @@ declare class SettingsContainerComponent implements OnDestroy, AfterViewInit {
66
104
  /** @hidden */
67
105
  private _setupListItemListeners;
68
106
  /** @hidden */
69
- private _renderTemplate;
107
+ private _renderCurrentView;
70
108
  /** @hidden */
71
109
  private _updateActiveTitle;
72
110
  /** @hidden */
73
111
  private _focusInitialListItem;
112
+ /** @hidden Focus the back button in the header */
113
+ private _focusBackButton;
74
114
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsContainerComponent, never>;
75
115
  static ɵcmp: i0.ɵɵComponentDeclaration<SettingsContainerComponent, "fd-settings-container", never, { "detailsAreaTitleHeading": { "alias": "detailsAreaTitleHeading"; "required": false; "isSignal": true; }; "detailsAreaTitleHeadingSize": { "alias": "detailsAreaTitleHeadingSize"; "required": false; "isSignal": true; }; "backBtnAriaLabel": { "alias": "backBtnAriaLabel"; "required": false; "isSignal": true; }; }, {}, ["listItems"], ["[fd-settings-list-area]"], true, never>;
76
116
  }
@@ -145,6 +185,18 @@ declare class SettingsProfileCardDirective {
145
185
  static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsProfileCardDirective, "[fd-settings-profile-card]", never, {}, {}, never, never, true, never>;
146
186
  }
147
187
 
188
+ type SettingsSpacingSize = 'small' | 'medium' | 'large' | 'form' | undefined;
189
+ declare class SettingsSpacingDirective {
190
+ readonly size: i0.InputSignal<SettingsSpacingSize>;
191
+ /**
192
+ * Computed CSS class string that reactively updates based on the size input.
193
+ * Combines base class with optional size modifier.
194
+ */
195
+ protected readonly cssClass: i0.Signal<string>;
196
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsSpacingDirective, never>;
197
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsSpacingDirective, "[fd-settings-spacing]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
198
+ }
199
+
148
200
  declare class SettingsComponent {
149
201
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsComponent, never>;
150
202
  static ɵcmp: i0.ɵɵComponentDeclaration<SettingsComponent, "[fd-settings]", never, {}, {}, never, ["*"], true, never>;
@@ -156,9 +208,9 @@ declare class SettingsComponent {
156
208
  */
157
209
  declare class SettingsModule {
158
210
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsModule, never>;
159
- static ɵmod: i0.ɵɵNgModuleDeclaration<SettingsModule, never, [typeof SettingsListAreaDirective, typeof SettingsDetailAreaDirective, typeof SettingsListContainerDirective, typeof SettingsContentDirective, typeof SettingsContentContainerDirective, typeof SettingsProfileCardDirective, typeof SettingsProfileCardNameDirective, typeof SettingsProfileCardSublineDirective, typeof SettingsHeaderDirective, typeof SettingsHeaderButtonDirective, typeof SettingsDialogContentDirective, typeof SettingsDialogBodyDirective, typeof SettingsContainerComponent, typeof SettingsComponent], [typeof SettingsListAreaDirective, typeof SettingsDetailAreaDirective, typeof SettingsListContainerDirective, typeof SettingsContentDirective, typeof SettingsContentContainerDirective, typeof SettingsProfileCardDirective, typeof SettingsProfileCardNameDirective, typeof SettingsProfileCardSublineDirective, typeof SettingsHeaderDirective, typeof SettingsHeaderButtonDirective, typeof SettingsDialogContentDirective, typeof SettingsDialogBodyDirective, typeof SettingsContainerComponent, typeof SettingsComponent]>;
211
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SettingsModule, never, [typeof SettingsListAreaDirective, typeof SettingsDetailAreaDirective, typeof SettingsListContainerDirective, typeof SettingsContentDirective, typeof SettingsContentContainerDirective, typeof SettingsProfileCardDirective, typeof SettingsProfileCardNameDirective, typeof SettingsProfileCardSublineDirective, typeof SettingsHeaderDirective, typeof SettingsHeaderButtonDirective, typeof SettingsDialogContentDirective, typeof SettingsDialogBodyDirective, typeof SettingsContainerComponent, typeof SettingsComponent, typeof SettingsSpacingDirective], [typeof SettingsListAreaDirective, typeof SettingsDetailAreaDirective, typeof SettingsListContainerDirective, typeof SettingsContentDirective, typeof SettingsContentContainerDirective, typeof SettingsProfileCardDirective, typeof SettingsProfileCardNameDirective, typeof SettingsProfileCardSublineDirective, typeof SettingsHeaderDirective, typeof SettingsHeaderButtonDirective, typeof SettingsDialogContentDirective, typeof SettingsDialogBodyDirective, typeof SettingsContainerComponent, typeof SettingsComponent, typeof SettingsSpacingDirective]>;
160
212
  static ɵinj: i0.ɵɵInjectorDeclaration<SettingsModule>;
161
213
  }
162
214
 
163
- export { SettingsComponent, SettingsContainerComponent, SettingsContentContainerDirective, SettingsContentDirective, SettingsDetailAreaDirective, SettingsDialogBodyDirective, SettingsDialogContentDirective, SettingsHeaderButtonDirective, SettingsHeaderDirective, SettingsListAreaDirective, SettingsListContainerDirective, SettingsModule, SettingsProfileCardDirective, SettingsProfileCardNameDirective, SettingsProfileCardSublineDirective, VIEW_MODE };
164
- export type { SettingsViewMode };
215
+ export { SettingsComponent, SettingsContainerComponent, SettingsContentContainerDirective, SettingsContentDirective, SettingsDetailAreaDirective, SettingsDialogBodyDirective, SettingsDialogContentDirective, SettingsHeaderButtonDirective, SettingsHeaderDirective, SettingsListAreaDirective, SettingsListContainerDirective, SettingsModule, SettingsProfileCardDirective, SettingsProfileCardNameDirective, SettingsProfileCardSublineDirective, SettingsSpacingDirective, VIEW_MODE };
216
+ export type { SettingsSpacingSize, SettingsStackedView, SettingsViewMode };