@frame-ui-ng/components 0.4.0-beta.0 → 0.4.1

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 (161) hide show
  1. package/confirm-popover/src/styles/confirm-popover.css +20 -0
  2. package/drag-drop/src/styles/_vars.css +28 -0
  3. package/drag-drop/src/styles/drag-drop.css +132 -0
  4. package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -21
  5. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  6. package/fesm2022/frame-ui-ng-components-alert.mjs +4 -0
  7. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
  8. package/fesm2022/frame-ui-ng-components-avatar.mjs +7 -0
  9. package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -1
  10. package/fesm2022/frame-ui-ng-components-badge.mjs +4 -0
  11. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
  12. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +13 -6
  13. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/frame-ui-ng-components-button-group.mjs +1 -0
  15. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
  16. package/fesm2022/frame-ui-ng-components-button.mjs +5 -0
  17. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  18. package/fesm2022/frame-ui-ng-components-calendar.mjs +4 -0
  19. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  20. package/fesm2022/frame-ui-ng-components-card.mjs +15 -15
  21. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
  22. package/fesm2022/frame-ui-ng-components-carousel.mjs +33 -16
  23. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
  24. package/fesm2022/frame-ui-ng-components-checkbox.mjs +7 -9
  25. package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-collapsible.mjs +24 -23
  27. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-combobox.mjs +66 -18
  29. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-command.mjs +47 -16
  31. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +3 -0
  33. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +423 -0
  35. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -0
  36. package/fesm2022/frame-ui-ng-components-context-menu.mjs +71 -45
  37. package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -1
  38. package/fesm2022/frame-ui-ng-components-date-picker.mjs +3 -0
  39. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-drag-drop.mjs +293 -0
  41. package/fesm2022/frame-ui-ng-components-drag-drop.mjs.map +1 -0
  42. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +73 -36
  43. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  44. package/fesm2022/frame-ui-ng-components-empty.mjs +6 -0
  45. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-field.mjs +21 -12
  47. package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components-forms.mjs +1 -0
  49. package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -1
  50. package/fesm2022/frame-ui-ng-components-hover-card.mjs +49 -43
  51. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
  52. package/fesm2022/frame-ui-ng-components-input-otp.mjs +5 -0
  53. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  54. package/fesm2022/frame-ui-ng-components-input.mjs +13 -0
  55. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  56. package/fesm2022/frame-ui-ng-components-item.mjs +10 -0
  57. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
  58. package/fesm2022/frame-ui-ng-components-menubar.mjs +15 -0
  59. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
  60. package/fesm2022/frame-ui-ng-components-modal.mjs +128 -114
  61. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  62. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +14 -0
  63. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
  64. package/fesm2022/frame-ui-ng-components-pagination.mjs +8 -0
  65. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  66. package/fesm2022/frame-ui-ng-components-popover.mjs +63 -51
  67. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
  68. package/fesm2022/frame-ui-ng-components-progress.mjs +2 -0
  69. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
  70. package/fesm2022/frame-ui-ng-components-radio-group.mjs +5 -0
  71. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
  72. package/fesm2022/frame-ui-ng-components-resizable.mjs +6 -0
  73. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  74. package/fesm2022/frame-ui-ng-components-select.mjs +62 -14
  75. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
  76. package/fesm2022/frame-ui-ng-components-separator.mjs +1 -0
  77. package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -1
  78. package/fesm2022/frame-ui-ng-components-sheet.mjs +99 -88
  79. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  80. package/fesm2022/frame-ui-ng-components-sidebar.mjs +27 -12
  81. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
  82. package/fesm2022/frame-ui-ng-components-skeleton.mjs +1 -0
  83. package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -1
  84. package/fesm2022/frame-ui-ng-components-slider.mjs +29 -16
  85. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
  86. package/fesm2022/frame-ui-ng-components-spinner.mjs +1 -0
  87. package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -1
  88. package/fesm2022/frame-ui-ng-components-switch.mjs +6 -0
  89. package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -1
  90. package/fesm2022/frame-ui-ng-components-table.mjs +76 -50
  91. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
  92. package/fesm2022/frame-ui-ng-components-tabs.mjs +4 -0
  93. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
  94. package/fesm2022/frame-ui-ng-components-textarea.mjs +1 -0
  95. package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -1
  96. package/fesm2022/frame-ui-ng-components-toast.mjs +2 -0
  97. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  98. package/fesm2022/frame-ui-ng-components-toggle.mjs +23 -16
  99. package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -1
  100. package/fesm2022/frame-ui-ng-components-tooltip.mjs +30 -25
  101. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  102. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +26 -8
  103. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  104. package/fesm2022/frame-ui-ng-components.mjs +1387 -552
  105. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  106. package/package.json +10 -2
  107. package/popover/src/styles/popover.css +106 -101
  108. package/src/styles/components.css +6 -4
  109. package/styles/components.css +6 -4
  110. package/styles.css +6 -4
  111. package/types/frame-ui-ng-components-accordion.d.ts +11 -4
  112. package/types/frame-ui-ng-components-alert.d.ts +4 -0
  113. package/types/frame-ui-ng-components-avatar.d.ts +7 -0
  114. package/types/frame-ui-ng-components-badge.d.ts +4 -0
  115. package/types/frame-ui-ng-components-breadcrumb.d.ts +7 -0
  116. package/types/frame-ui-ng-components-button-group.d.ts +1 -0
  117. package/types/frame-ui-ng-components-button.d.ts +5 -0
  118. package/types/frame-ui-ng-components-calendar.d.ts +1 -0
  119. package/types/frame-ui-ng-components-card.d.ts +8 -3
  120. package/types/frame-ui-ng-components-carousel.d.ts +11 -2
  121. package/types/frame-ui-ng-components-checkbox.d.ts +3 -2
  122. package/types/frame-ui-ng-components-collapsible.d.ts +9 -4
  123. package/types/frame-ui-ng-components-combobox.d.ts +32 -3
  124. package/types/frame-ui-ng-components-command.d.ts +26 -4
  125. package/types/frame-ui-ng-components-confirm-modal.d.ts +2 -0
  126. package/types/frame-ui-ng-components-confirm-popover.d.ts +87 -0
  127. package/types/frame-ui-ng-components-context-menu.d.ts +29 -10
  128. package/types/frame-ui-ng-components-date-picker.d.ts +1 -0
  129. package/types/frame-ui-ng-components-drag-drop.d.ts +103 -0
  130. package/types/frame-ui-ng-components-dropdown-menu.d.ts +32 -9
  131. package/types/frame-ui-ng-components-empty.d.ts +6 -0
  132. package/types/frame-ui-ng-components-field.d.ts +9 -0
  133. package/types/frame-ui-ng-components-forms.d.ts +1 -0
  134. package/types/frame-ui-ng-components-hover-card.d.ts +8 -2
  135. package/types/frame-ui-ng-components-input-otp.d.ts +4 -0
  136. package/types/frame-ui-ng-components-input.d.ts +13 -0
  137. package/types/frame-ui-ng-components-item.d.ts +10 -0
  138. package/types/frame-ui-ng-components-menubar.d.ts +15 -0
  139. package/types/frame-ui-ng-components-modal.d.ts +12 -0
  140. package/types/frame-ui-ng-components-navigation-menu.d.ts +14 -0
  141. package/types/frame-ui-ng-components-pagination.d.ts +8 -0
  142. package/types/frame-ui-ng-components-popover.d.ts +14 -2
  143. package/types/frame-ui-ng-components-progress.d.ts +2 -0
  144. package/types/frame-ui-ng-components-radio-group.d.ts +5 -0
  145. package/types/frame-ui-ng-components-resizable.d.ts +3 -0
  146. package/types/frame-ui-ng-components-select.d.ts +23 -2
  147. package/types/frame-ui-ng-components-separator.d.ts +1 -0
  148. package/types/frame-ui-ng-components-sheet.d.ts +11 -0
  149. package/types/frame-ui-ng-components-sidebar.d.ts +21 -0
  150. package/types/frame-ui-ng-components-skeleton.d.ts +1 -0
  151. package/types/frame-ui-ng-components-slider.d.ts +5 -2
  152. package/types/frame-ui-ng-components-spinner.d.ts +1 -0
  153. package/types/frame-ui-ng-components-switch.d.ts +6 -0
  154. package/types/frame-ui-ng-components-table.d.ts +26 -0
  155. package/types/frame-ui-ng-components-tabs.d.ts +4 -0
  156. package/types/frame-ui-ng-components-textarea.d.ts +1 -0
  157. package/types/frame-ui-ng-components-toast.d.ts +2 -0
  158. package/types/frame-ui-ng-components-toggle.d.ts +8 -2
  159. package/types/frame-ui-ng-components-tooltip.d.ts +6 -2
  160. package/types/frame-ui-ng-components-virtual-scroll.d.ts +11 -2
  161. package/types/frame-ui-ng-components.d.ts +492 -76
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AfterViewInit } from '@angular/core';
2
+ import { AfterViewInit, DoCheck } from '@angular/core';
3
3
  import * as i1 from '@frame-ui-ng/components/button';
4
4
 
5
5
  declare const FR_CAROUSEL_ORIENTATIONS: readonly ["horizontal", "vertical"];
@@ -25,7 +25,8 @@ type FrCarouselApi = {
25
25
  selectedScrollSnap: () => number;
26
26
  on: (event: FrCarouselEvent, callback: () => void) => () => void;
27
27
  };
28
- declare class FrCarousel implements AfterViewInit {
28
+ /** Carousel root that coordinates scroll state and navigation. */
29
+ declare class FrCarousel implements AfterViewInit, DoCheck {
29
30
  private readonly destroyRef;
30
31
  private readonly listeners;
31
32
  private readonly pluginCleanups;
@@ -36,6 +37,8 @@ declare class FrCarousel implements AfterViewInit {
36
37
  private loopBoundaryClone;
37
38
  private contentElement;
38
39
  private itemElements;
40
+ private lastLoop;
41
+ private lastPlugins;
39
42
  readonly align: _angular_core.InputSignal<"start" | "center" | "end">;
40
43
  readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
41
44
  readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
@@ -50,6 +53,7 @@ declare class FrCarousel implements AfterViewInit {
50
53
  private readonly effectiveLoop;
51
54
  readonly api: FrCarouselApi;
52
55
  constructor();
56
+ ngDoCheck(): void;
53
57
  ngAfterViewInit(): void;
54
58
  registerContent(element: HTMLElement): void;
55
59
  registerItem(element: HTMLElement): void;
@@ -62,6 +66,7 @@ declare class FrCarousel implements AfterViewInit {
62
66
  handleKeydown(event: KeyboardEvent): void;
63
67
  private on;
64
68
  private emit;
69
+ private syncPlugins;
65
70
  private recalculate;
66
71
  private syncSelectedFromScroll;
67
72
  private scrollItemIntoView;
@@ -79,6 +84,7 @@ declare class FrCarousel implements AfterViewInit {
79
84
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCarousel, never>;
80
85
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCarousel, "[frCarousel], frame-carousel", ["frCarousel"], { "align": { "alias": "align"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "opts": { "alias": "opts"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; }, { "apiReady": "apiReady"; "selectedChange": "selectedChange"; }, never, never, true, never>;
81
86
  }
87
+ /** Content slot for carousel. */
82
88
  declare class FrCarouselContent implements AfterViewInit {
83
89
  protected readonly carousel: FrCarousel;
84
90
  private readonly elementRef;
@@ -86,6 +92,7 @@ declare class FrCarouselContent implements AfterViewInit {
86
92
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCarouselContent, never>;
87
93
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCarouselContent, "[frCarouselContent]", never, {}, {}, never, never, true, never>;
88
94
  }
95
+ /** Item slot for carousel. */
89
96
  declare class FrCarouselItem implements AfterViewInit {
90
97
  private readonly carousel;
91
98
  private readonly destroyRef;
@@ -94,12 +101,14 @@ declare class FrCarouselItem implements AfterViewInit {
94
101
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCarouselItem, never>;
95
102
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCarouselItem, "[frCarouselItem]", never, {}, {}, never, never, true, never>;
96
103
  }
104
+ /** Previous-slide control for carousel. */
97
105
  declare class FrCarouselPrevious {
98
106
  protected readonly carousel: FrCarousel;
99
107
  readonly label: _angular_core.InputSignal<string>;
100
108
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCarouselPrevious, never>;
101
109
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCarouselPrevious, "button[frCarouselPrevious]", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.FrButton; inputs: { "appearance": "appearance"; "disabled": "disabled"; "radius": "radius"; "size": "size"; }; outputs: {}; }]>;
102
110
  }
111
+ /** Next-slide control for carousel. */
103
112
  declare class FrCarouselNext {
104
113
  protected readonly carousel: FrCarousel;
105
114
  readonly label: _angular_core.InputSignal<string>;
@@ -1,16 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
2
 
3
+ /** Checkbox input styled as a FrameUI control. */
3
4
  declare class FrCheckbox {
4
- private readonly elementRef;
5
5
  readonly indeterminate: i0.InputSignalWithTransform<boolean, unknown>;
6
- constructor();
7
6
  static ɵfac: i0.ɵɵFactoryDeclaration<FrCheckbox, never>;
8
7
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrCheckbox, "input[type=checkbox][frCheckbox]", never, { "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
8
  }
9
+ /** Field slot for checkbox. */
10
10
  declare class FrCheckboxField {
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<FrCheckboxField, never>;
12
12
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrCheckboxField, "label[frCheckboxField]", never, {}, {}, never, never, true, never>;
13
13
  }
14
+ /** Label slot for checkbox. */
14
15
  declare class FrCheckboxLabel {
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<FrCheckboxLabel, never>;
16
17
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrCheckboxLabel, "[frCheckboxLabel]", never, {}, {}, never, never, true, never>;
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Signal } from '@angular/core';
2
+ import { Signal, AfterViewInit, DoCheck, OnDestroy } from '@angular/core';
3
3
 
4
4
  interface FrCollapsibleContext {
5
5
  readonly contentId: Signal<string>;
@@ -9,12 +9,16 @@ interface FrCollapsibleContext {
9
9
  toggle(): void;
10
10
  }
11
11
 
12
- declare class FrCollapsibleContent {
12
+ /** Content slot for collapsible. */
13
+ declare class FrCollapsibleContent implements AfterViewInit, DoCheck, OnDestroy {
13
14
  private readonly host;
14
15
  protected readonly collapsible: FrCollapsibleContext;
15
16
  private initialized;
17
+ private lastOpen;
16
18
  private rafId;
17
- constructor();
19
+ ngAfterViewInit(): void;
20
+ ngDoCheck(): void;
21
+ ngOnDestroy(): void;
18
22
  onTransitionEnd(event: TransitionEvent): void;
19
23
  private animate;
20
24
  private applyStaticState;
@@ -23,6 +27,7 @@ declare class FrCollapsibleContent {
23
27
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrCollapsibleContent, "[frCollapsibleContent]", never, {}, {}, never, never, true, never>;
24
28
  }
25
29
 
30
+ /** Root controller for expandable collapsible content. */
26
31
  declare class FrCollapsible {
27
32
  private readonly collapsibleId;
28
33
  private readonly internalOpen;
@@ -33,13 +38,13 @@ declare class FrCollapsible {
33
38
  readonly open: i0.Signal<boolean>;
34
39
  readonly triggerId: i0.Signal<string>;
35
40
  readonly contentId: i0.Signal<string>;
36
- constructor();
37
41
  toggle(): void;
38
42
  setOpen(open: boolean): void;
39
43
  static ɵfac: i0.ɵɵFactoryDeclaration<FrCollapsible, never>;
40
44
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrCollapsible, "[frCollapsible], frame-collapsible", ["frCollapsible"], { "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "openInput": { "alias": "open"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, never, true, never>;
41
45
  }
42
46
 
47
+ /** Trigger control for collapsible. */
43
48
  declare class FrCollapsibleTrigger {
44
49
  protected readonly collapsible: FrCollapsibleContext;
45
50
  static ɵfac: i0.ɵɵFactoryDeclaration<FrCollapsibleTrigger, never>;
@@ -1,48 +1,58 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef } from '@angular/core';
2
+ import { TemplateRef, DoCheck, AfterViewInit } from '@angular/core';
3
3
  import { ConnectedPosition, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';
4
4
  import { FrControlValueAccessor } from '@frame-ui-ng/components/forms';
5
5
 
6
+ /** Content slot for combobox. */
6
7
  declare class FrComboboxContent {
7
8
  readonly templateRef: TemplateRef<any>;
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxContent, never>;
9
10
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxContent, "ng-template[frComboboxContent]", ["frComboboxContent"], {}, {}, never, never, true, never>;
10
11
  }
12
+ /** Panel slot for combobox. */
11
13
  declare class FrComboboxPanel {
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxPanel, never>;
13
15
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxPanel, "[frComboboxPanel], frame-combobox-panel", never, {}, {}, never, never, true, never>;
14
16
  }
17
+ /** List slot for combobox. */
15
18
  declare class FrComboboxList {
16
19
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxList, never>;
17
20
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxList, "[frComboboxList], frame-combobox-list", never, {}, {}, never, never, true, never>;
18
21
  }
22
+ /** Empty-state slot for combobox results. */
19
23
  declare class FrComboboxEmpty {
20
24
  private readonly root;
21
25
  protected hidden(): boolean;
22
26
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxEmpty, never>;
23
27
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxEmpty, "[frComboboxEmpty], frame-combobox-empty", never, {}, {}, never, never, true, never>;
24
28
  }
29
+ /** Group slot for combobox. */
25
30
  declare class FrComboboxGroup {
26
31
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxGroup, never>;
27
32
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxGroup, "[frComboboxGroup], frame-combobox-group", never, {}, {}, never, never, true, never>;
28
33
  }
34
+ /** Label slot for combobox. */
29
35
  declare class FrComboboxLabel {
30
36
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxLabel, never>;
31
37
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxLabel, "[frComboboxLabel], frame-combobox-label", never, {}, {}, never, never, true, never>;
32
38
  }
39
+ /** Separator slot for combobox. */
33
40
  declare class FrComboboxSeparator {
34
41
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxSeparator, never>;
35
42
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxSeparator, "[frComboboxSeparator], frame-combobox-separator", never, {}, {}, never, never, true, never>;
36
43
  }
44
+ /** Collection host for combobox options. */
37
45
  declare class FrComboboxCollection {
38
46
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxCollection, never>;
39
47
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxCollection, "[frComboboxCollection], frame-combobox-collection", never, {}, {}, never, never, true, never>;
40
48
  }
49
+ /** Base API for combobox root lookup. */
41
50
  declare abstract class FrComboboxRootLookup {
42
51
  abstract visibleCount(): number;
43
52
  }
44
53
 
45
- declare class FrComboboxItem {
54
+ /** Item slot for combobox. */
55
+ declare class FrComboboxItem implements DoCheck {
46
56
  private readonly destroyRef;
47
57
  private readonly elementRef;
48
58
  private readonly root;
@@ -51,9 +61,11 @@ declare class FrComboboxItem {
51
61
  readonly itemLabel: i0.InputSignal<string | null>;
52
62
  readonly value: i0.InputSignal<unknown>;
53
63
  readonly resolvedLabel: i0.WritableSignal<string>;
64
+ private lastItemStateKey;
54
65
  readonly label: i0.Signal<string>;
55
66
  readonly visible: i0.Signal<boolean>;
56
67
  constructor();
68
+ ngDoCheck(): void;
57
69
  isVisible(): boolean;
58
70
  isSelected(): boolean;
59
71
  isHighlighted(): boolean;
@@ -65,6 +77,7 @@ declare class FrComboboxItem {
65
77
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxItem, never>;
66
78
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxItem, "button[frComboboxItem]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "itemLabel": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
67
79
  }
80
+ /** Indicator slot for combobox item. */
68
81
  declare class FrComboboxItemIndicator {
69
82
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxItemIndicator, never>;
70
83
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxItemIndicator, "[frComboboxItemIndicator]", never, {}, {}, never, never, true, never>;
@@ -72,12 +85,16 @@ declare class FrComboboxItemIndicator {
72
85
 
73
86
  type FrComboboxValue = unknown;
74
87
  type FrComboboxStringifier = (item: FrComboboxValue) => string;
75
- declare class FrCombobox extends FrControlValueAccessor<FrComboboxValue | FrComboboxValue[] | null> {
88
+ /** Combobox control with single and multi-value support. */
89
+ declare class FrCombobox extends FrControlValueAccessor<FrComboboxValue | FrComboboxValue[] | null> implements AfterViewInit, DoCheck {
76
90
  private readonly destroyRef;
77
91
  private readonly elementRef;
78
92
  private readonly items;
79
93
  private readonly itemsVersion;
80
94
  private readonly selectedLabels;
95
+ private lastAutoHighlight;
96
+ private lastItemsVersion;
97
+ private lastQuery;
81
98
  private resizeObserver;
82
99
  private readonly origin;
83
100
  readonly content: i0.Signal<FrComboboxContent | undefined>;
@@ -101,8 +118,11 @@ declare class FrCombobox extends FrControlValueAccessor<FrComboboxValue | FrComb
101
118
  readonly displayValue: i0.Signal<string>;
102
119
  readonly hasValue: i0.Signal<boolean>;
103
120
  constructor();
121
+ ngAfterViewInit(): void;
122
+ ngDoCheck(): void;
104
123
  registerItem(item: FrComboboxItem): void;
105
124
  unregisterItem(item: FrComboboxItem): void;
125
+ refreshItems(): void;
106
126
  visibleItems(): FrComboboxItem[];
107
127
  visibleCount(): number;
108
128
  overlayMinWidth(): number;
@@ -129,6 +149,7 @@ declare class FrCombobox extends FrControlValueAccessor<FrComboboxValue | FrComb
129
149
  static ɵcmp: i0.ɵɵComponentDeclaration<FrCombobox, "[frCombobox], frame-combobox", ["frCombobox"], { "autoHighlight": { "alias": "autoHighlight"; "required": false; "isSignal": true; }; "debugVisible": { "alias": "debugVisible"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalidInput": { "alias": "invalid"; "required": false; "isSignal": true; }; "itemToStringValue": { "alias": "itemToStringValue"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["content"], ["*"], true, never>;
130
150
  }
131
151
 
152
+ /** Search input for combobox filtering. */
132
153
  declare class FrComboboxInput {
133
154
  protected readonly root: FrCombobox;
134
155
  private readonly elementRef;
@@ -138,11 +159,13 @@ declare class FrComboboxInput {
138
159
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxInput, never>;
139
160
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxInput, "input[frComboboxInput]", never, {}, {}, never, never, true, never>;
140
161
  }
162
+ /** Trigger control for combobox. */
141
163
  declare class FrComboboxTrigger {
142
164
  protected readonly root: FrCombobox;
143
165
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxTrigger, never>;
144
166
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxTrigger, "button[frComboboxTrigger]", never, {}, {}, never, never, true, never>;
145
167
  }
168
+ /** Clear control for combobox values. */
146
169
  declare class FrComboboxClear {
147
170
  protected readonly root: FrCombobox;
148
171
  protected hidden(): boolean;
@@ -150,17 +173,20 @@ declare class FrComboboxClear {
150
173
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxClear, "button[frComboboxClear]", never, {}, {}, never, never, true, never>;
151
174
  }
152
175
 
176
+ /** Chip list for multi-value combobox selections. */
153
177
  declare class FrComboboxChips {
154
178
  protected readonly root: FrCombobox;
155
179
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxChips, never>;
156
180
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxChips, "[frComboboxChips], frame-combobox-chips", never, {}, {}, never, never, true, never>;
157
181
  }
182
+ /** List slot for combobox value. */
158
183
  declare class FrComboboxValueList {
159
184
  private readonly root;
160
185
  values(): FrComboboxValue[];
161
186
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxValueList, never>;
162
187
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxValueList, "[frComboboxValue], frame-combobox-value", ["frComboboxValue"], {}, {}, never, never, true, never>;
163
188
  }
189
+ /** Selected value chip for combobox. */
164
190
  declare class FrComboboxChip {
165
191
  private readonly root;
166
192
  private readonly elementRef;
@@ -173,12 +199,14 @@ declare class FrComboboxChip {
173
199
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxChip, never>;
174
200
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxChip, "[frComboboxChip], frame-combobox-chip", ["frComboboxChip"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
175
201
  }
202
+ /** Remove control for a combobox chip. */
176
203
  declare class FrComboboxChipRemove {
177
204
  private readonly chip;
178
205
  protected remove(event: MouseEvent): void;
179
206
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxChipRemove, never>;
180
207
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxChipRemove, "button[frComboboxChipRemove]", never, {}, {}, never, never, true, never>;
181
208
  }
209
+ /** Inline text input inside combobox chips. */
182
210
  declare class FrComboboxChipsInput {
183
211
  protected readonly root: FrCombobox;
184
212
  protected handleInput(event: Event): void;
@@ -186,6 +214,7 @@ declare class FrComboboxChipsInput {
186
214
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxChipsInput, never>;
187
215
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxChipsInput, "input[frComboboxChipsInput]", never, {}, {}, never, never, true, never>;
188
216
  }
217
+ /** Error slot for combobox. */
189
218
  declare class FrComboboxError {
190
219
  static ɵfac: i0.ɵɵFactoryDeclaration<FrComboboxError, never>;
191
220
  static ɵdir: i0.ɵɵDirectiveDeclaration<FrComboboxError, "[frComboboxError], frame-combobox-error", never, {}, {}, never, never, true, never>;
@@ -1,11 +1,12 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { TemplateRef, ViewContainerRef, Signal, WritableSignal } from '@angular/core';
2
+ import { TemplateRef, ViewContainerRef, DoCheck, Signal, WritableSignal } from '@angular/core';
3
3
  import { Direction } from '@angular/cdk/bidi';
4
4
  import { ComponentType } from '@angular/cdk/portal';
5
5
  import { DialogConfig, DialogRef } from '@angular/cdk/dialog';
6
6
 
7
7
  type FrCommandDialogRef<Result = unknown, Component = unknown> = DialogRef<Result, Component>;
8
8
  type FrCommandDialogConfig<Data = unknown, Result = unknown, Component = unknown> = DialogConfig<Data, DialogRef<Result, Component>>;
9
+ /** Template configuration for a command dialog. */
9
10
  declare class FrCommandDialog {
10
11
  readonly templateRef: TemplateRef<any>;
11
12
  readonly ariaLabel: _angular_core.InputSignal<string | null>;
@@ -29,6 +30,7 @@ declare class FrCommandDialog {
29
30
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandDialog, never>;
30
31
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandDialog, "ng-template[frCommandDialog]", ["frCommandDialog"], { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "closeOnDestroy": { "alias": "closeOnDestroy"; "required": false; "isSignal": true; }; "closeOnNavigation": { "alias": "closeOnNavigation"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
31
32
  }
33
+ /** Trigger control for command dialog. */
32
34
  declare class FrCommandDialogTrigger {
33
35
  private readonly commandDialog;
34
36
  private readonly destroyRef;
@@ -43,6 +45,7 @@ declare class FrCommandDialogTrigger {
43
45
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandDialogTrigger, never>;
44
46
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandDialogTrigger, "[frCommandDialogTrigger]", never, { "content": { "alias": "frCommandDialogTrigger"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
45
47
  }
48
+ /** Service for opening command dialogs. */
46
49
  declare class FrCommandService {
47
50
  private readonly dialog;
48
51
  open<Result = unknown, Data = unknown, Component = unknown>(content: ComponentType<Component>, config?: FrCommandDialogConfig<Data, Result, Component>): FrCommandDialogRef<Result, Component>;
@@ -53,12 +56,14 @@ declare class FrCommandService {
53
56
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FrCommandService>;
54
57
  }
55
58
 
59
+ /** Footer slot for command. */
56
60
  declare class FrCommandFooter {
57
61
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandFooter, never>;
58
62
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandFooter, "[frCommandFooter]", never, {}, {}, never, never, true, never>;
59
63
  }
60
64
 
61
- declare class FrCommandItem {
65
+ /** Item slot for command. */
66
+ declare class FrCommandItem implements DoCheck {
62
67
  private readonly destroyRef;
63
68
  private readonly elementRef;
64
69
  private readonly command;
@@ -74,7 +79,9 @@ declare class FrCommandItem {
74
79
  readonly keywords: _angular_core.Signal<string[]>;
75
80
  readonly value: _angular_core.Signal<{}>;
76
81
  readonly visible: _angular_core.Signal<boolean>;
82
+ private lastSearchKey;
77
83
  constructor();
84
+ ngDoCheck(): void;
78
85
  isVisible(): boolean;
79
86
  isHighlighted(): boolean;
80
87
  isSelected(): boolean;
@@ -87,15 +94,18 @@ declare class FrCommandItem {
87
94
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandItem, never>;
88
95
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandItem, "button[frCommandItem]", ["frCommandItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "itemKeywords": { "alias": "keywords"; "required": false; "isSignal": true; }; "itemLabel": { "alias": "label"; "required": false; "isSignal": true; }; "valueInput": { "alias": "value"; "required": false; "isSignal": true; }; }, { "itemSelected": "selected"; }, never, never, true, never>;
89
96
  }
97
+ /** Icon slot for command item. */
90
98
  declare class FrCommandItemIcon {
91
99
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandItemIcon, never>;
92
100
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandItemIcon, "[frCommandItemIcon]", never, {}, {}, never, never, true, never>;
93
101
  }
102
+ /** Shortcut slot for command. */
94
103
  declare class FrCommandShortcut {
95
104
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandShortcut, never>;
96
105
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandShortcut, "[frCommandShortcut]", never, {}, {}, never, never, true, never>;
97
106
  }
98
107
 
108
+ /** Group slot for command. */
99
109
  declare class FrCommandGroup {
100
110
  private readonly items;
101
111
  private readonly itemsVersion;
@@ -108,6 +118,7 @@ declare class FrCommandGroup {
108
118
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandGroup, never>;
109
119
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandGroup, "[frCommandGroup]", ["frCommandGroup"], { "forceMount": { "alias": "forceMount"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
110
120
  }
121
+ /** Heading slot for a command group. */
111
122
  declare class FrCommandGroupHeading {
112
123
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandGroupHeading, never>;
113
124
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandGroupHeading, "[frCommandGroupHeading]", never, {}, {}, never, never, true, never>;
@@ -123,6 +134,7 @@ interface FrCommandRootContext {
123
134
  isHighlighted(item: FrCommandItem): boolean;
124
135
  isItemSelected(value: unknown): boolean;
125
136
  moveHighlight(delta: number): void;
137
+ refreshItems(): void;
126
138
  registerItem(item: FrCommandItem): void;
127
139
  selectItem(item: FrCommandItem): void;
128
140
  setQuery(query: string): void;
@@ -131,6 +143,7 @@ interface FrCommandRootContext {
131
143
  visibleItems(): FrCommandItem[];
132
144
  }
133
145
 
146
+ /** Command input component primitive. */
134
147
  declare class FrCommandInput {
135
148
  private readonly elementRef;
136
149
  protected readonly command: FrCommandRootContext;
@@ -140,10 +153,12 @@ declare class FrCommandInput {
140
153
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandInput, "input[frCommandInput]", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
141
154
  }
142
155
 
156
+ /** List slot for command. */
143
157
  declare class FrCommandList {
144
158
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandList, never>;
145
159
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandList, "[frCommandList]", never, {}, {}, never, never, true, never>;
146
160
  }
161
+ /** Empty-state slot for command results. */
147
162
  declare class FrCommandEmpty {
148
163
  protected readonly command: FrCommandRootContext;
149
164
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandEmpty, never>;
@@ -151,10 +166,15 @@ declare class FrCommandEmpty {
151
166
  }
152
167
 
153
168
  type FrCommandFilter = (query: string, label: string, keywords: readonly string[]) => boolean;
154
- declare class FrCommand {
169
+ /** Command menu root that coordinates filtering and selection. */
170
+ declare class FrCommand implements DoCheck {
155
171
  private readonly dialogRef;
156
172
  private readonly items;
157
173
  private readonly itemsVersion;
174
+ private lastFilter;
175
+ private lastHighlightedIndex;
176
+ private lastItemsVersion;
177
+ private lastQuery;
158
178
  readonly closeOnSelect: _angular_core.InputSignalWithTransform<boolean, unknown>;
159
179
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
160
180
  readonly filter: _angular_core.InputSignal<FrCommandFilter>;
@@ -165,9 +185,10 @@ declare class FrCommand {
165
185
  readonly query: _angular_core.WritableSignal<string>;
166
186
  readonly highlightedIndex: _angular_core.WritableSignal<number>;
167
187
  readonly selectedValue: _angular_core.Signal<unknown>;
168
- constructor();
188
+ ngDoCheck(): void;
169
189
  registerItem(item: FrCommandItem): void;
170
190
  unregisterItem(item: FrCommandItem): void;
191
+ refreshItems(): void;
171
192
  visibleItems(): FrCommandItem[];
172
193
  visibleCount(): number;
173
194
  filteredItemVisible(label: string, keywords: readonly string[]): boolean;
@@ -188,6 +209,7 @@ declare class FrCommand {
188
209
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommand, "[frCommand], frame-command", ["frCommand"], { "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "itemSelected": "itemSelected"; "queryChange": "queryChange"; }, never, never, true, never>;
189
210
  }
190
211
 
212
+ /** Separator slot for command. */
191
213
  declare class FrCommandSeparator {
192
214
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrCommandSeparator, never>;
193
215
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrCommandSeparator, "[frCommandSeparator]", never, {}, {}, never, never, true, never>;
@@ -15,6 +15,7 @@ type FrConfirmModalConfig = Omit<FrModalConfig<FrConfirmModalData, FrConfirmModa
15
15
  description?: string;
16
16
  title?: string;
17
17
  };
18
+ /** Service for opening confirmation dialogs. */
18
19
  declare class FrConfirmModalService {
19
20
  private readonly modal;
20
21
  open(config?: FrConfirmModalConfig): FrModalRef<unknown, FrConfirmModalResult>;
@@ -22,6 +23,7 @@ declare class FrConfirmModalService {
22
23
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FrConfirmModalService>;
23
24
  }
24
25
 
26
+ /** Trigger control for confirm modal. */
25
27
  declare class FrConfirmModalTrigger {
26
28
  private readonly confirmModal;
27
29
  readonly config: _angular_core.InputSignal<string | FrConfirmModalConfig>;
@@ -0,0 +1,87 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { FrButtonSize, FrButtonAppearance } from '@frame-ui-ng/components/button';
3
+ import { FrPopoverAlignment, FrPopoverSide } from '@frame-ui-ng/components/popover';
4
+
5
+ type FrConfirmPopoverResult = 'cancel' | 'confirm';
6
+ type FrConfirmPopoverConfig = {
7
+ align?: FrPopoverAlignment;
8
+ alignOffset?: number;
9
+ buttonSize?: FrButtonSize;
10
+ cancelAppearance?: FrButtonAppearance;
11
+ cancelLabel?: string;
12
+ confirmAppearance?: FrButtonAppearance;
13
+ confirmLabel?: string;
14
+ description?: string;
15
+ disabled?: boolean;
16
+ side?: FrPopoverSide;
17
+ sideOffset?: number;
18
+ title?: string;
19
+ };
20
+ /** Flexible confirmation popover trigger that can attach to any host element. */
21
+ declare class FrConfirmPopover {
22
+ private readonly destroyRef;
23
+ private readonly elementRef;
24
+ private readonly overlay;
25
+ private readonly platformId;
26
+ readonly config: _angular_core.InputSignal<string | FrConfirmPopoverConfig>;
27
+ readonly align: _angular_core.InputSignal<"start" | "center" | "end" | undefined>;
28
+ readonly alignOffset: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
29
+ readonly buttonSize: _angular_core.InputSignal<"sm" | "md" | "lg" | undefined>;
30
+ readonly cancelAppearance: _angular_core.InputSignal<"ghost" | "outline" | "primary" | undefined>;
31
+ readonly cancelLabel: _angular_core.InputSignal<string | undefined>;
32
+ readonly confirmAppearance: _angular_core.InputSignal<"ghost" | "outline" | "primary" | undefined>;
33
+ readonly confirmLabel: _angular_core.InputSignal<string | undefined>;
34
+ readonly description: _angular_core.InputSignal<string | undefined>;
35
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
36
+ readonly side: _angular_core.InputSignal<"top" | "right" | "bottom" | "left" | undefined>;
37
+ readonly sideOffset: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
38
+ readonly title: _angular_core.InputSignal<string | undefined>;
39
+ readonly closed: _angular_core.OutputEmitterRef<FrConfirmPopoverResult | undefined>;
40
+ readonly cancelled: _angular_core.OutputEmitterRef<void>;
41
+ readonly confirmed: _angular_core.OutputEmitterRef<void>;
42
+ protected readonly isOpen: _angular_core.WritableSignal<boolean>;
43
+ private overlayRef;
44
+ private panelRef;
45
+ private currentSide;
46
+ constructor();
47
+ open(): void;
48
+ close(result?: FrConfirmPopoverResult): void;
49
+ toggle(): void;
50
+ protected handleClick(event: Event): void;
51
+ protected handleKeydown(event: KeyboardEvent): void;
52
+ private createOverlay;
53
+ private handlePositionChange;
54
+ private updatePanelInputs;
55
+ private resolvedConfig;
56
+ private syncCustomPropertiesToOverlay;
57
+ private isNativeInteractiveElement;
58
+ private destroy;
59
+ private detachPanel;
60
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrConfirmPopover, never>;
61
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FrConfirmPopover, " [frConfirmPopover], [frConfirmPopoverAlign], [frConfirmPopoverAlignOffset], [frConfirmPopoverButtonSize], [frConfirmPopoverCancelAppearance], [frConfirmPopoverCancelLabel], [frConfirmPopoverConfirmAppearance], [frConfirmPopoverConfirmLabel], [frConfirmPopoverDescription], [frConfirmPopoverDisabled], [frConfirmPopoverSide], [frConfirmPopoverSideOffset], [frConfirmPopoverTitle] ", ["frConfirmPopover"], { "config": { "alias": "frConfirmPopover"; "required": false; "isSignal": true; }; "align": { "alias": "frConfirmPopoverAlign"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "frConfirmPopoverAlignOffset"; "required": false; "isSignal": true; }; "buttonSize": { "alias": "frConfirmPopoverButtonSize"; "required": false; "isSignal": true; }; "cancelAppearance": { "alias": "frConfirmPopoverCancelAppearance"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "frConfirmPopoverCancelLabel"; "required": false; "isSignal": true; }; "confirmAppearance": { "alias": "frConfirmPopoverConfirmAppearance"; "required": false; "isSignal": true; }; "confirmLabel": { "alias": "frConfirmPopoverConfirmLabel"; "required": false; "isSignal": true; }; "description": { "alias": "frConfirmPopoverDescription"; "required": false; "isSignal": true; }; "disabled": { "alias": "frConfirmPopoverDisabled"; "required": false; "isSignal": true; }; "side": { "alias": "frConfirmPopoverSide"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "frConfirmPopoverSideOffset"; "required": false; "isSignal": true; }; "title": { "alias": "frConfirmPopoverTitle"; "required": false; "isSignal": true; }; }, { "closed": "frConfirmPopoverClosed"; "cancelled": "frConfirmPopoverCancelled"; "confirmed": "frConfirmPopoverConfirmed"; }, never, never, true, never>;
62
+ }
63
+ declare class FrConfirmPopoverPanel {
64
+ readonly buttonSize: _angular_core.InputSignal<"sm" | "md" | "lg">;
65
+ readonly cancelAppearance: _angular_core.InputSignal<"ghost" | "outline" | "primary">;
66
+ readonly cancelLabel: _angular_core.InputSignal<string>;
67
+ readonly confirmAppearance: _angular_core.InputSignal<"ghost" | "outline" | "primary">;
68
+ readonly confirmLabel: _angular_core.InputSignal<string>;
69
+ readonly description: _angular_core.InputSignal<string | undefined>;
70
+ readonly descriptionId: _angular_core.InputSignal<string | null>;
71
+ readonly side: _angular_core.InputSignal<"top" | "right" | "bottom" | "left">;
72
+ readonly title: _angular_core.InputSignal<string>;
73
+ readonly titleId: _angular_core.InputSignal<string>;
74
+ readonly cancelled: _angular_core.OutputEmitterRef<void>;
75
+ readonly confirmed: _angular_core.OutputEmitterRef<void>;
76
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrConfirmPopoverPanel, never>;
77
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FrConfirmPopoverPanel, "frame-confirm-popover-panel", never, { "buttonSize": { "alias": "buttonSize"; "required": false; "isSignal": true; }; "cancelAppearance": { "alias": "cancelAppearance"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "confirmAppearance": { "alias": "confirmAppearance"; "required": false; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "descriptionId": { "alias": "descriptionId"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleId": { "alias": "titleId"; "required": true; "isSignal": true; }; }, { "cancelled": "cancelled"; "confirmed": "confirmed"; }, never, never, true, never>;
78
+ }
79
+
80
+ declare class FrConfirmPopoverModule {
81
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FrConfirmPopoverModule, never>;
82
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FrConfirmPopoverModule, never, [typeof FrConfirmPopover], [typeof FrConfirmPopover]>;
83
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<FrConfirmPopoverModule>;
84
+ }
85
+
86
+ export { FrConfirmPopover, FrConfirmPopoverModule, FrConfirmPopoverPanel };
87
+ export type { FrConfirmPopoverConfig, FrConfirmPopoverResult };