@radix-ng/primitives 0.51.0 → 1.0.0-beta.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 (178) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
  6. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
  9. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  11. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  12. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
  18. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +735 -744
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-cropper.mjs +1 -0
  25. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-date-field.mjs +51 -45
  27. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
  29. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
  31. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  33. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  34. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  36. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  37. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  38. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  39. package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  42. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  43. package/fesm2022/radix-ng-primitives-label.mjs +6 -6
  44. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-menu.mjs +1480 -344
  46. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  48. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  50. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
  52. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
  54. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +91 -41
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  65. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  66. package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
  67. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
  71. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select.mjs +791 -509
  73. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +381 -108
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1071
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
  95. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  96. package/meter/README.md +3 -0
  97. package/navigation-menu/README.md +2 -1
  98. package/package.json +31 -18
  99. package/portal/README.md +2 -0
  100. package/preview-card/README.md +3 -0
  101. package/schematics/collection.json +1 -0
  102. package/schematics/ng-add/index.d.ts +3 -2
  103. package/schematics/ng-add/index.js +62 -31
  104. package/schematics/ng-add/index.js.map +1 -1
  105. package/schematics/ng-add/package-config.d.ts +4 -2
  106. package/schematics/ng-add/package-config.js +10 -2
  107. package/schematics/ng-add/package-config.js.map +1 -1
  108. package/schematics/ng-add/schema.d.ts +3 -0
  109. package/schematics/ng-add/schema.js +3 -0
  110. package/schematics/ng-add/schema.js.map +1 -0
  111. package/schematics/ng-add/schema.json +14 -0
  112. package/select/README.md +2 -0
  113. package/types/radix-ng-primitives-accordion.d.ts +48 -14
  114. package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
  115. package/types/radix-ng-primitives-arrow.d.ts +1 -1
  116. package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
  117. package/types/radix-ng-primitives-avatar.d.ts +7 -11
  118. package/types/radix-ng-primitives-button.d.ts +73 -0
  119. package/types/radix-ng-primitives-calendar.d.ts +1 -2
  120. package/types/radix-ng-primitives-checkbox.d.ts +201 -32
  121. package/types/radix-ng-primitives-collapsible.d.ts +112 -39
  122. package/types/radix-ng-primitives-collection.d.ts +38 -34
  123. package/types/radix-ng-primitives-config.d.ts +1 -1
  124. package/types/radix-ng-primitives-context-menu.d.ts +60 -116
  125. package/types/radix-ng-primitives-core.d.ts +307 -236
  126. package/types/radix-ng-primitives-cropper.d.ts +2 -2
  127. package/types/radix-ng-primitives-date-field.d.ts +38 -23
  128. package/types/radix-ng-primitives-dialog.d.ts +282 -165
  129. package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
  130. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  131. package/types/radix-ng-primitives-editable.d.ts +1 -1
  132. package/types/radix-ng-primitives-field.d.ts +373 -0
  133. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  134. package/types/radix-ng-primitives-focus-scope.d.ts +13 -5
  135. package/types/radix-ng-primitives-input.d.ts +87 -0
  136. package/types/radix-ng-primitives-label.d.ts +0 -1
  137. package/types/radix-ng-primitives-menu.d.ts +572 -99
  138. package/types/radix-ng-primitives-menubar.d.ts +60 -50
  139. package/types/radix-ng-primitives-meter.d.ts +193 -0
  140. package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
  141. package/types/radix-ng-primitives-number-field.d.ts +405 -145
  142. package/types/radix-ng-primitives-pagination.d.ts +2 -2
  143. package/types/radix-ng-primitives-popover.d.ts +365 -351
  144. package/types/radix-ng-primitives-popper.d.ts +49 -9
  145. package/types/radix-ng-primitives-portal.d.ts +14 -6
  146. package/types/radix-ng-primitives-presence.d.ts +28 -76
  147. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  148. package/types/radix-ng-primitives-progress.d.ts +174 -48
  149. package/types/radix-ng-primitives-radio.d.ts +55 -25
  150. package/types/radix-ng-primitives-roving-focus.d.ts +30 -21
  151. package/types/radix-ng-primitives-select.d.ts +475 -177
  152. package/types/radix-ng-primitives-separator.d.ts +7 -32
  153. package/types/radix-ng-primitives-slider.d.ts +315 -201
  154. package/types/radix-ng-primitives-stepper.d.ts +5 -7
  155. package/types/radix-ng-primitives-switch.d.ts +86 -71
  156. package/types/radix-ng-primitives-tabs.d.ts +213 -79
  157. package/types/radix-ng-primitives-time-field.d.ts +42 -27
  158. package/types/radix-ng-primitives-toggle-group.d.ts +85 -164
  159. package/types/radix-ng-primitives-toggle.d.ts +43 -53
  160. package/types/radix-ng-primitives-toolbar.d.ts +163 -38
  161. package/types/radix-ng-primitives-tooltip.d.ts +347 -384
  162. package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
  163. package/dropdown-menu/README.md +0 -1
  164. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
  165. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  166. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
  167. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  168. package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
  169. package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
  170. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
  171. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  172. package/hover-card/README.md +0 -3
  173. package/select2/README.md +0 -3
  174. package/tooltip2/README.md +0 -3
  175. package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
  176. package/types/radix-ng-primitives-hover-card.d.ts +0 -471
  177. package/types/radix-ng-primitives-select2.d.ts +0 -511
  178. package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
@@ -1,402 +1,416 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ElementRef, OnInit, ViewContainerRef, DestroyRef } from '@angular/core';
3
- import { NumberInput, BooleanInput } from '@angular/cdk/coercion';
2
+ import { Signal, ElementRef } from '@angular/core';
3
+ import * as i1 from '@radix-ng/primitives/presence';
4
+ import { RdxTransitionStatus, BooleanInput, NumberInput } from '@radix-ng/primitives/core';
5
+ import * as i1$1 from '@radix-ng/primitives/popper';
6
+ import { RdxPopperContentWrapper, RdxPopperAnchorElement } from '@radix-ng/primitives/popper';
4
7
  import * as _radix_ng_primitives_popover from '@radix-ng/primitives/popover';
5
- import * as rxjs from 'rxjs';
6
- import * as i1 from '@angular/cdk/overlay';
7
- import { CdkOverlayOrigin } from '@angular/cdk/overlay';
8
- import { RdxPositionSide, RdxPositionAlign } from '@radix-ng/primitives/core';
9
- import * as i1$1 from '@angular/cdk/a11y';
8
+ import * as i1$2 from '@radix-ng/primitives/portal';
9
+ import { RdxPortalContainer } from '@radix-ng/primitives/portal';
10
+ import * as i2 from '@radix-ng/primitives/dismissable-layer';
11
+ import * as i3 from '@radix-ng/primitives/focus-scope';
10
12
 
11
- declare class RdxPopoverArrowDirective {
12
- /** @ignore */
13
- private readonly renderer;
14
- /** @ignore */
15
- private readonly popoverRoot;
16
- /** @ignore */
17
- readonly elementRef: ElementRef<any>;
18
- /**
19
- * @description The width of the arrow in pixels.
20
- * @default 10
21
- */
22
- readonly width: _angular_core.InputSignalWithTransform<number, NumberInput>;
23
- /**
24
- * @description The height of the arrow in pixels.
25
- * @default 5
26
- */
27
- readonly height: _angular_core.InputSignalWithTransform<number, NumberInput>;
28
- /** @ignore */
29
- readonly arrowSvgElement: _angular_core.Signal<HTMLElement>;
30
- /** @ignore */
31
- private readonly currentArrowSvgElement;
32
- /** @ignore */
33
- private readonly position;
34
- /** @ignore */
35
- private anchorOrTriggerRect;
36
- constructor();
37
- /** @ignore */
38
- private setAnchorOrTriggerRect;
39
- /** @ignore */
40
- private setPosition;
41
- /** @ignore */
42
- private onArrowSvgElementChangeEffect;
43
- /** @ignore */
44
- private onContentPositionAndArrowDimensionsChangeEffect;
45
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverArrowDirective, never>;
46
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverArrowDirective, "[rdxPopoverArrow]", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
+ /**
14
+ * Mounts the portal while the popover is open and waits for CSS exit keyframes before unmounting.
15
+ */
16
+ declare class RdxPopoverPortalPresence {
17
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverPortalPresence, never>;
18
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverPortalPresence, "ng-template[rdxPopoverPortalPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
47
19
  }
48
20
 
49
- declare class RdxPopoverCloseDirective {
50
- /** @ignore */
51
- protected readonly popoverRoot: _radix_ng_primitives_popover.RdxPopoverRootDirective;
52
- /** @ignore */
53
- readonly elementRef: ElementRef<any>;
54
- /** @ignore */
55
- private readonly renderer;
56
- constructor();
57
- /** @ignore */
58
- private onIsControlledExternallyEffect;
59
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverCloseDirective, never>;
60
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverCloseDirective, "[rdxPopoverClose]", never, {}, {}, never, never, true, never>;
21
+ declare class RdxPopoverHandle<Payload = unknown> {
22
+ private readonly rootContext;
23
+ private readonly triggers;
24
+ private readonly rootTriggerCleanups;
25
+ readonly isOpen: _angular_core.Signal<boolean>;
26
+ open(triggerId: string): void;
27
+ close(): void;
28
+ toggle(triggerId: string, event?: Event): void;
29
+ registerRoot(rootContext: RdxPopoverRootContext): () => void;
30
+ registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined): () => void;
31
+ context(): RdxPopoverRootContext | undefined;
61
32
  }
33
+ declare function createRdxPopoverHandle<Payload = unknown>(): RdxPopoverHandle<Payload>;
62
34
 
63
- declare class RdxPopoverContentDirective implements OnInit {
64
- /** @ignore */
65
- private readonly popoverRoot;
66
- /** @ignore */
67
- private readonly templateRef;
68
- /** @ignore */
69
- private readonly overlay;
70
- /** @ignore */
35
+ type RdxPopoverModal = boolean | 'trap-focus';
36
+ type RdxPopoverOpenChangeReason = 'trigger-hover' | 'trigger-focus' | 'trigger-press' | 'outside-press' | 'escape-key' | 'close-press' | 'focus-out' | 'imperative-action' | 'none';
37
+ interface RdxPopoverOpenChange {
38
+ open: boolean;
39
+ triggerId: string | null;
40
+ trigger: HTMLElement | undefined;
41
+ reason: RdxPopoverOpenChangeReason;
42
+ event: Event;
43
+ }
44
+ interface RdxPopoverRootContext {
45
+ contentId: string;
46
+ descriptionId: Signal<string | undefined>;
47
+ isOpen: Signal<boolean>;
48
+ modal: Signal<RdxPopoverModal>;
49
+ titleId: Signal<string | undefined>;
50
+ trigger: Signal<HTMLElement | undefined>;
51
+ triggers: Signal<HTMLElement[]>;
52
+ hasPopupClose: Signal<boolean>;
53
+ isHoverActive: Signal<boolean>;
54
+ instant: Signal<boolean>;
55
+ openChangeReason: Signal<RdxPopoverOpenChangeReason>;
56
+ isPointerDownOnTrigger: Signal<boolean>;
57
+ close: (reason?: RdxPopoverOpenChangeReason, event?: Event) => void;
58
+ cancelHoverClose: () => void;
59
+ cancelHoverOpen: () => void;
60
+ closeOnHover: () => void;
61
+ payload: Signal<unknown>;
62
+ open: (trigger?: HTMLElement, payload?: unknown, triggerId?: string, reason?: RdxPopoverOpenChangeReason, event?: Event) => void;
63
+ openOnHover: (trigger: HTMLElement, payload: unknown, triggerId: string, event: PointerEvent) => void;
64
+ registerTrigger: (id: string, trigger: HTMLElement, payload: () => unknown) => () => void;
65
+ setDescriptionId: (id: string | undefined) => void;
66
+ setTitleId: (id: string | undefined) => void;
67
+ setPointerDownOnTrigger: (pointerDown: boolean) => void;
68
+ setHoverDelays: (delay: number, closeDelay: number) => void;
69
+ registerPopupClose: () => () => void;
70
+ registerTransitionElement: (element: HTMLElement) => () => void;
71
+ transitionStatus: Signal<RdxPopoverTransitionStatus>;
72
+ registerViewport: (onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void) => () => void;
73
+ toggle: (triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event) => void;
74
+ }
75
+ declare const injectRdxPopoverRootContext: (optional?: boolean) => RdxPopoverRootContext | null;
76
+ declare const provideRdxPopoverRootContext: (useFactory: () => RdxPopoverRootContext) => _angular_core.Provider;
77
+ type RdxPopoverTransitionStatus = RdxTransitionStatus;
78
+ /**
79
+ * Groups all parts of the popover.
80
+ */
81
+ declare class RdxPopoverRoot {
82
+ private readonly popper;
71
83
  private readonly destroyRef;
72
- /** @ignore */
73
- private readonly connectedOverlay;
74
- /** @ignore */
75
- readonly name: _angular_core.Signal<string>;
84
+ private hasAppliedDefaultOpen;
85
+ private hasAppliedDefaultTriggerId;
86
+ private openTimer;
87
+ private closeTimer;
88
+ private hoverDelay;
89
+ private hoverCloseDelay;
90
+ private instantFrame;
91
+ private readonly transition;
92
+ readonly isHoverActive: _angular_core.WritableSignal<boolean>;
93
+ readonly instant: _angular_core.WritableSignal<boolean>;
94
+ readonly openChangeReason: _angular_core.WritableSignal<RdxPopoverOpenChangeReason>;
95
+ readonly transitionStatus: Signal<RdxTransitionStatus>;
76
96
  /**
77
- * @description The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
78
- * @default top
97
+ * Whether the popover is currently open.
79
98
  */
80
- readonly side: _angular_core.InputSignal<RdxPositionSide>;
99
+ readonly open: _angular_core.ModelSignal<boolean>;
81
100
  /**
82
- * @description The distance in pixels from the trigger.
83
- * @default undefined
101
+ * Whether the popover is initially open.
84
102
  */
85
- readonly sideOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
103
+ readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
86
104
  /**
87
- * @description The preferred alignment against the trigger. May change when collisions occur.
88
- * @default center
105
+ * ID of the trigger associated with a controlled popover.
89
106
  */
90
- readonly align: _angular_core.InputSignal<RdxPositionAlign>;
107
+ readonly triggerId: _angular_core.ModelSignal<string | null>;
91
108
  /**
92
- * @description An offset in pixels from the "start" or "end" alignment options.
93
- * @default undefined
109
+ * ID of the trigger associated with an initially open uncontrolled popover.
94
110
  */
95
- readonly alignOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
111
+ readonly defaultTriggerId: _angular_core.InputSignal<string | null>;
112
+ /**
113
+ * Determines whether the popover blocks outside interaction or only traps focus.
114
+ */
115
+ readonly modal: _angular_core.InputSignalWithTransform<RdxPopoverModal, BooleanInput>;
116
+ /**
117
+ * Associates this root with detached trigger elements.
118
+ */
119
+ readonly handle: _angular_core.InputSignal<RdxPopoverHandle<any> | undefined>;
120
+ readonly contentId: string;
121
+ readonly descriptionId: _angular_core.WritableSignal<string | undefined>;
122
+ readonly titleId: _angular_core.WritableSignal<string | undefined>;
123
+ readonly trigger: _angular_core.WritableSignal<HTMLElement | undefined>;
124
+ readonly triggers: _angular_core.WritableSignal<HTMLElement[]>;
125
+ readonly payload: _angular_core.WritableSignal<unknown>;
126
+ readonly isPointerDownOnTrigger: _angular_core.WritableSignal<boolean>;
127
+ readonly popupCloseCount: _angular_core.WritableSignal<number>;
128
+ readonly onOpenChange: _angular_core.OutputEmitterRef<RdxPopoverOpenChange>;
129
+ readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
130
+ private readonly registeredTriggers;
131
+ private readonly viewportTriggerChange;
132
+ readonly state: Signal<"open" | "closed">;
133
+ constructor();
134
+ show(trigger?: HTMLElement | undefined, payload?: unknown, triggerId?: string, reason?: RdxPopoverOpenChangeReason, event?: Event, fromHover?: boolean): void;
135
+ close(reason?: RdxPopoverOpenChangeReason, event?: Event): void;
136
+ toggle(triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event): void;
137
+ openOnHover(trigger: HTMLElement, payload: unknown, triggerId: string, event: PointerEvent): void;
138
+ closeOnHover(): void;
139
+ cancelHoverClose(): void;
140
+ cancelHoverOpen(): void;
141
+ setHoverDelays(delay: number, closeDelay: number): void;
142
+ registerTrigger(id: string, trigger: HTMLElement, payload: () => unknown): () => void;
143
+ registerViewport(onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void): () => boolean;
144
+ registerTransitionElement(element: HTMLElement): () => void;
145
+ private syncTriggerId;
146
+ private emitOpenChange;
147
+ private clearHoverTimers;
148
+ private clearOpenTimer;
149
+ private clearCloseTimer;
150
+ private scheduleInstantReset;
151
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverRoot, never>;
152
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverRoot, "[rdxPopoverRoot]", ["rdxPopoverRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "triggerId": { "alias": "triggerId"; "required": false; "isSignal": true; }; "defaultTriggerId": { "alias": "defaultTriggerId"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "handle": { "alias": "handle"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "triggerId": "triggerIdChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1$1.RdxPopper; inputs: {}; outputs: {}; }]>;
153
+ }
154
+
155
+ /**
156
+ * A button that opens the popover.
157
+ */
158
+ declare class RdxPopoverTrigger {
159
+ private readonly parentRootContext;
160
+ readonly elementRef: ElementRef<HTMLElement>;
161
+ /**
162
+ * Associates this trigger with a detached popover root.
163
+ */
164
+ readonly handle: _angular_core.InputSignal<RdxPopoverHandle<any> | undefined>;
165
+ /**
166
+ * Data associated with this trigger while it is active.
167
+ */
168
+ readonly payload: _angular_core.InputSignal<unknown>;
96
169
  /**
97
- * @description Whether to add some alternate positions of the content.
98
- * @default false
170
+ * ID used to identify this trigger when opening a detached popover imperatively.
99
171
  */
100
- readonly alternatePositionsDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
101
- /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */
102
- readonly onOverlayEscapeKeyDownDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
103
- /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */
104
- readonly onOverlayOutsideClickDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
172
+ readonly id: _angular_core.InputSignal<string | undefined>;
105
173
  /**
106
- * @description Event handler called when the escape key is down.
107
- * It can be prevented by setting `onOverlayEscapeKeyDownDisabled` input to `true`.
174
+ * Whether the trigger should ignore user interaction.
108
175
  */
109
- readonly onOverlayEscapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
176
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
110
177
  /**
111
- * @description Event handler called when a pointer event occurs outside the bounds of the component.
112
- * It can be prevented by setting `onOverlayOutsideClickDisabled` input to `true`.
178
+ * Whether the popover should also open when this trigger is hovered.
113
179
  */
114
- readonly onOverlayOutsideClick: _angular_core.OutputEmitterRef<MouseEvent>;
180
+ readonly openOnHover: _angular_core.InputSignalWithTransform<boolean, unknown>;
115
181
  /**
116
- * @description Event handler called after the overlay is open
182
+ * How long to wait before opening the popover on hover, in milliseconds.
117
183
  */
118
- readonly onOpen: _angular_core.OutputEmitterRef<void>;
184
+ readonly delay: _angular_core.InputSignalWithTransform<number, NumberInput>;
119
185
  /**
120
- * @description Event handler called after the overlay is closed
186
+ * How long to wait before closing a hover-opened popover, in milliseconds.
121
187
  */
122
- readonly onClosed: _angular_core.OutputEmitterRef<void>;
123
- /** @ingore */
124
- readonly positions: _angular_core.Signal<i1.ConnectedPosition[]>;
188
+ readonly closeDelay: _angular_core.InputSignalWithTransform<number, NumberInput>;
189
+ protected readonly triggerId: _angular_core.Signal<string>;
190
+ protected readonly rootContext: _angular_core.Signal<_radix_ng_primitives_popover.RdxPopoverRootContext | null>;
191
+ protected readonly isOpen: _angular_core.Signal<boolean>;
192
+ protected readonly isPressed: _angular_core.Signal<boolean>;
193
+ private readonly generatedId;
125
194
  constructor();
126
- /** @ignore */
127
- ngOnInit(): void;
128
- /** @ignore */
129
- open(): void;
130
- /** @ignore */
131
- close(): void;
132
- /** @ignore */
133
- positionChange(): rxjs.Observable<i1.ConnectedOverlayPositionChange>;
134
- /** @ignore */
135
- private connectKeydownEscape;
136
- /** @ignore */
137
- private connectOutsideClick;
138
- /** @ignore */
139
- private onAttach;
140
- /** @ignore */
141
- private onDetach;
142
- /** @ignore */
143
- private setScrollStrategy;
144
- /** @ignore */
145
- private setHasBackdrop;
146
- /** @ignore */
147
- private setDisableClose;
148
- /** @ignore */
149
- private setOrigin;
150
- /** @ignore */
151
- private setPositions;
152
- /** @ignore */
153
- private computePositions;
154
- private onOriginChangeEffect;
155
- /** @ignore */
156
- private onPositionChangeEffect;
157
- /** @ignore */
158
- private fireOverlayNgOnChanges;
159
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverContentDirective, never>;
160
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverContentDirective, "[rdxPopoverContent]", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "alternatePositionsDisabled": { "alias": "alternatePositionsDisabled"; "required": false; "isSignal": true; }; "onOverlayEscapeKeyDownDisabled": { "alias": "onOverlayEscapeKeyDownDisabled"; "required": false; "isSignal": true; }; "onOverlayOutsideClickDisabled": { "alias": "onOverlayOutsideClickDisabled"; "required": false; "isSignal": true; }; }, { "onOverlayEscapeKeyDown": "onOverlayEscapeKeyDown"; "onOverlayOutsideClick": "onOverlayOutsideClick"; "onOpen": "onOpen"; "onClosed": "onClosed"; }, never, never, true, [{ directive: typeof i1.CdkConnectedOverlay; inputs: {}; outputs: {}; }]>;
195
+ protected handleClick(event: MouseEvent): void;
196
+ protected handlePointerEnter(event: PointerEvent): void;
197
+ protected handlePointerLeave(event: PointerEvent): void;
198
+ protected handlePointerDown(): void;
199
+ protected handlePointerUp(): void;
200
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverTrigger, never>;
201
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverTrigger, "button[rdxPopoverTrigger]", never, { "handle": { "alias": "handle"; "required": false; "isSignal": true; }; "payload": { "alias": "payload"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "openOnHover": { "alias": "openOnHover"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
161
202
  }
162
203
 
163
- declare class RdxPopoverTriggerDirective {
164
- /** @ignore */
165
- protected readonly popoverRoot: _radix_ng_primitives_popover.RdxPopoverRootDirective;
166
- /** @ignore */
167
- readonly elementRef: ElementRef<HTMLElement>;
168
- /** @ignore */
169
- readonly overlayOrigin: CdkOverlayOrigin;
170
- /** @ignore */
171
- readonly name: _angular_core.Signal<string>;
172
- /** @ignore */
173
- protected click(): void;
174
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverTriggerDirective, never>;
175
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverTriggerDirective, "[rdxPopoverTrigger]", never, {}, {}, never, never, true, [{ directive: typeof i1.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
204
+ /**
205
+ * Moves the popover to a different part of the DOM.
206
+ */
207
+ declare class RdxPopoverPortal {
208
+ protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
209
+ /**
210
+ * Optional container to portal the content into. Defaults to `document.body`.
211
+ */
212
+ readonly container: _angular_core.InputSignal<RdxPortalContainer | undefined>;
213
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverPortal, never>;
214
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverPortal, "[rdxPopoverPortal]", never, { "container": { "alias": "container"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$2.RdxPortal; inputs: { "container": "container"; }; outputs: {}; }]>;
176
215
  }
177
216
 
178
- type EventType = 'cdkOverlayOutsideClick' | 'cdkOverlayEscapeKeyDown';
179
- type EventTypeCapitalized<R extends EventType = EventType> = Capitalize<R>;
180
- type EventTypeAsPrimitiveConfigKey<R extends EventType = EventType> = `prevent${EventTypeCapitalized<R>}`;
181
- type PrimitiveConfig = {
182
- [value in EventTypeAsPrimitiveConfigKey]?: boolean;
183
- };
184
- type PrimitiveConfigs = Map<object, PrimitiveConfig>;
185
-
186
- declare class RdxPopoverAnchorDirective {
187
- /**
188
- * @ignore
189
- * If outside the root then null, otherwise the root directive - with optional `true` passed in as the first param.
190
- * If outside the root and non-null value that means the html structure is wrong - popover inside popover.
191
- * */
192
- protected popoverRoot: RdxPopoverRootDirective | null;
193
- /** @ignore */
194
- readonly elementRef: ElementRef<any>;
195
- /** @ignore */
196
- readonly overlayOrigin: CdkOverlayOrigin;
197
- /** @ignore */
198
- readonly document: Document;
199
- /** @ignore */
200
- readonly name: _angular_core.Signal<string>;
201
- /** @ignore */
202
- click(): void;
203
- /** @ignore */
204
- setPopoverRoot(popoverRoot: RdxPopoverRootDirective): void;
205
- private emitOutsideClick;
206
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverAnchorDirective, never>;
207
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverAnchorDirective, "[rdxPopoverAnchor]", ["rdxPopoverAnchor"], {}, {}, never, never, true, [{ directive: typeof i1.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
217
+ /**
218
+ * An optional backdrop rendered behind the popup.
219
+ */
220
+ declare class RdxPopoverBackdrop {
221
+ protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
222
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverBackdrop, never>;
223
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverBackdrop, "[rdxPopoverBackdrop]", never, {}, {}, never, never, true, never>;
208
224
  }
209
225
 
210
- declare enum RdxPopoverState {
211
- OPEN = "open",
212
- CLOSED = "closed"
213
- }
214
- declare enum RdxPopoverAttachDetachEvent {
215
- ATTACH = "attach",
216
- DETACH = "detach"
217
- }
218
- declare enum RdxPopoverAnimationStatus {
219
- OPEN_STARTED = "open_started",
220
- OPEN_ENDED = "open_ended",
221
- CLOSED_STARTED = "closed_started",
222
- CLOSED_ENDED = "closed_ended"
226
+ /**
227
+ * Positions the popover against its trigger.
228
+ */
229
+ declare class RdxPopoverPositioner {
230
+ protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
231
+ protected readonly wrapper: RdxPopperContentWrapper;
232
+ private readonly elementRef;
233
+ private readonly triggerEl;
234
+ private readonly containerEl;
235
+ private readonly graceArea;
236
+ /**
237
+ * An element to position the popup against. Defaults to the trigger.
238
+ */
239
+ readonly anchor: _angular_core.InputSignal<RdxPopperAnchorElement>;
240
+ /**
241
+ * The preferred side of the trigger to render against when open.
242
+ */
243
+ readonly side: _angular_core.InputSignal<"top" | "right" | "bottom" | "left">;
244
+ /**
245
+ * Distance between the trigger and the popup in pixels.
246
+ */
247
+ readonly sideOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
248
+ /**
249
+ * How to align the popup relative to the specified side.
250
+ */
251
+ readonly align: _angular_core.InputSignal<"start" | "center" | "end">;
252
+ /**
253
+ * An offset in pixels from the `start` or `end` alignment options.
254
+ */
255
+ readonly alignOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
256
+ /**
257
+ * Minimum distance to maintain between the arrow and the edges of the popup.
258
+ */
259
+ readonly arrowPadding: _angular_core.InputSignalWithTransform<number, NumberInput>;
260
+ /**
261
+ * Whether to override side and alignment preferences to prevent collisions.
262
+ */
263
+ readonly avoidCollisions: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
264
+ /**
265
+ * The element used as the collision boundary.
266
+ */
267
+ readonly collisionBoundary: _angular_core.InputSignal<ElementRef<HTMLElement> | ElementRef<HTMLElement>[] | undefined>;
268
+ /**
269
+ * Distance in pixels from the boundary edges where collision detection should occur.
270
+ */
271
+ readonly collisionPadding: _angular_core.InputSignal<number | Partial<Record<"top" | "right" | "bottom" | "left", number>>>;
272
+ /**
273
+ * The sticky behavior on the alignment axis.
274
+ */
275
+ readonly sticky: _angular_core.InputSignal<"always" | "partial">;
276
+ /**
277
+ * Whether to hide the popup when the trigger becomes fully occluded.
278
+ */
279
+ readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
280
+ /**
281
+ * The CSS position strategy used by Floating UI.
282
+ */
283
+ readonly positionStrategy: _angular_core.InputSignal<"fixed" | "absolute">;
284
+ /**
285
+ * Whether to update position on every animation frame.
286
+ */
287
+ readonly updatePositionStrategy: _angular_core.InputSignal<"always" | "optimized">;
288
+ /**
289
+ * Emits when the popup has been placed.
290
+ */
291
+ readonly placed: _angular_core.OutputRef<void>;
292
+ constructor();
293
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverPositioner, never>;
294
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverPositioner, "[rdxPopoverPositioner]", never, { "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionBoundary": { "alias": "collisionBoundary"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "positionStrategy": { "alias": "positionStrategy"; "required": false; "isSignal": true; }; "updatePositionStrategy": { "alias": "updatePositionStrategy"; "required": false; "isSignal": true; }; }, { "placed": "placed"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContentWrapper; inputs: { "anchor": "anchor"; "side": "side"; "sideOffset": "sideOffset"; "align": "align"; "alignOffset": "alignOffset"; "arrowPadding": "arrowPadding"; "avoidCollisions": "avoidCollisions"; "collisionBoundary": "collisionBoundary"; "collisionPadding": "collisionPadding"; "sticky": "sticky"; "hideWhenDetached": "hideWhenDetached"; "positionStrategy": "positionStrategy"; "updatePositionStrategy": "updatePositionStrategy"; }; outputs: {}; }]>;
223
295
  }
224
296
 
225
- declare class RdxPopoverRootDirective {
226
- /** @ignore */
227
- readonly uniqueId: _angular_core.WritableSignal<number>;
228
- /** @ignore */
229
- readonly name: _angular_core.Signal<string>;
297
+ /**
298
+ * A container for the popover contents.
299
+ */
300
+ declare class RdxPopoverPopup {
301
+ protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
302
+ private readonly dismissableLayer;
303
+ private readonly focusScope;
304
+ private readonly wrapper;
305
+ protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
306
+ protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
307
+ private dismissDetails;
230
308
  /**
231
- * @description The anchor directive that comes form outside the popover root
232
- * @default undefined
309
+ * Event handler called when the escape key is down. Can be prevented.
233
310
  */
234
- readonly anchor: _angular_core.InputSignal<RdxPopoverAnchorDirective | undefined>;
311
+ readonly escapeKeyDown: _angular_core.OutputRef<KeyboardEvent>;
235
312
  /**
236
- * @description The open state of the popover when it is initially rendered. Use when you do not need to control its open state.
237
- * @default false
313
+ * Event handler called when a pointerdown event happens outside of the popup. Can be prevented.
238
314
  */
239
- readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
315
+ readonly pointerDownOutside: _angular_core.OutputRef<PointerEvent>;
240
316
  /**
241
- * @description The controlled state of the popover. `open` input take precedence of `defaultOpen` input.
242
- * @default undefined
243
- */
244
- readonly open: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
245
- /**
246
- * @description Whether to control the state of the popover from external. Use in conjunction with `open` input.
247
- * @default undefined
248
- */
249
- readonly externalControl: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
250
- /**
251
- * @description Whether to take into account CSS opening/closing animations.
252
- * @default false
253
- */
254
- readonly cssAnimation: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
255
- /**
256
- * @description Whether to take into account CSS opening animations. `cssAnimation` input must be set to 'true'
257
- * @default false
258
- */
259
- readonly cssOpeningAnimation: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
260
- /**
261
- * @description Whether to take into account CSS closing animations. `cssAnimation` input must be set to 'true'
262
- * @default false
263
- */
264
- readonly cssClosingAnimation: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
265
- /** @ignore */
266
- readonly cssAnimationStatus: _angular_core.WritableSignal<RdxPopoverAnimationStatus | null>;
267
- /** @ignore */
268
- readonly popoverContentDirective: _angular_core.Signal<RdxPopoverContentDirective>;
269
- /** @ignore */
270
- readonly popoverTriggerDirective: _angular_core.Signal<RdxPopoverTriggerDirective>;
271
- /** @ignore */
272
- readonly popoverArrowDirective: _angular_core.Signal<_radix_ng_primitives_popover.RdxPopoverArrowDirective | undefined>;
273
- /** @ignore */
274
- readonly popoverCloseDirective: _angular_core.Signal<_radix_ng_primitives_popover.RdxPopoverCloseDirective | undefined>;
275
- /** @ignore */
276
- readonly popoverContentAttributesComponent: _angular_core.Signal<_radix_ng_primitives_popover.RdxPopoverContentAttributesComponent | undefined>;
277
- /** @ignore */
278
- private readonly internalPopoverAnchorDirective;
279
- /** @ignore */
280
- readonly viewContainerRef: ViewContainerRef;
281
- /** @ignore */
282
- readonly rdxCdkEventService: {
283
- document: Document;
284
- destroyRef: DestroyRef;
285
- ngZone: _angular_core.NgZone;
286
- renderer2: _angular_core.Renderer2;
287
- window: Window & typeof globalThis;
288
- primitiveConfigs?: PrimitiveConfigs;
289
- onDestroyCallbacks: Set<() => void>;
290
- #clickDomRootEventCallbacks: Set<(event: MouseEvent) => void>;
291
- registerPrimitive<T extends object>(primitiveInstance: T): void;
292
- deregisterPrimitive<T extends object>(primitiveInstance: T): void;
293
- preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): void;
294
- allowPrimitiveForCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): void;
295
- preventPrimitiveFromCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]): void;
296
- allowPrimitiveForCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]): void;
297
- setPreventPrimitiveFromCdkMixEvents<T extends object>(primitiveInstance: T, eventTypes: PrimitiveConfig): void;
298
- primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): boolean | undefined;
299
- addClickDomRootEventCallback(callback: (event: MouseEvent) => void): void;
300
- removeClickDomRootEventCallback(callback: (event: MouseEvent) => void): boolean;
301
- #setPreventPrimitiveFromCdkEvent<T extends object, R extends EventType, K extends PrimitiveConfig[`prevent${Capitalize<R>}`]>(primitiveInstance: T, eventType: R, value: K): void;
302
- #registerOnDestroyCallbacks(): void;
303
- #listenToClickDomRootEvent(): void;
304
- } | null;
305
- /** @ignore */
306
- readonly destroyRef: DestroyRef;
307
- /** @ignore */
308
- readonly state: _angular_core.WritableSignal<RdxPopoverState>;
309
- /** @ignore */
310
- readonly attachDetachEvent: _angular_core.WritableSignal<RdxPopoverAttachDetachEvent>;
311
- /** @ignore */
312
- private readonly isFirstDefaultOpen;
313
- /** @ignore */
314
- readonly popoverAnchorDirective: _angular_core.Signal<RdxPopoverAnchorDirective | undefined>;
317
+ * Event handler called when focus moves outside of the popup. Can be prevented.
318
+ */
319
+ readonly focusOutside: _angular_core.OutputRef<FocusEvent>;
320
+ /**
321
+ * Event handler called when an interaction happens outside of the popup. Can be prevented.
322
+ */
323
+ readonly interactOutside: _angular_core.OutputRef<PointerEvent | FocusEvent>;
324
+ /**
325
+ * Event handler called before focus moves into the popup. Can be prevented.
326
+ */
327
+ readonly openAutoFocus: _angular_core.OutputRef<Event>;
328
+ /**
329
+ * Event handler called before focus returns after the popup is removed. Can be prevented.
330
+ */
331
+ readonly closeAutoFocus: _angular_core.OutputRef<Event>;
315
332
  constructor();
316
- /** @ignore */
317
- getAnimationParamsSnapshot(): {
318
- cssAnimation: boolean;
319
- cssOpeningAnimation: boolean;
320
- cssClosingAnimation: boolean;
321
- cssAnimationStatus: RdxPopoverAnimationStatus | null;
322
- attachDetachEvent: RdxPopoverAttachDetachEvent;
323
- state: RdxPopoverState;
324
- canEmitOnOpenOrOnClosed: boolean;
325
- };
326
- /** @ignore */
327
- controlledExternally(): _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
328
- /** @ignore */
329
- firstDefaultOpen(): boolean;
330
- /** @ignore */
331
- handleOpen(): void;
332
- /** @ignore */
333
- handleClose(): void;
334
- /** @ignore */
335
- handleToggle(): void;
336
- /** @ignore */
337
- isOpen(state?: RdxPopoverState): boolean;
338
- /** @ignore */
339
- private setState;
340
- /** @ignore */
341
- private openContent;
342
- /** @ignore */
343
- private closeContent;
344
- /** @ignore */
345
- private emitOnOpen;
346
- /** @ignore */
347
- private emitOnClosed;
348
- /** @ignore */
349
- private ifOpenOrCloseWithoutAnimations;
350
- /** @ignore */
351
- private ifOpenOrCloseWithAnimations;
352
- /** @ignore */
353
- private openOrClose;
354
- /** @ignore */
355
- private emitOnOpenOrOnClosed;
356
- /** @ignore */
357
- private canEmitOnOpenOrOnClosed;
358
- /** @ignore */
359
- private onStateChangeEffect;
360
- /** @ignore */
361
- private onCssAnimationStatusChangeChangeEffect;
362
- /** @ignore */
363
- private emitOpenOrClosedEventEffect;
364
- /** @ignore */
365
- private onOpenChangeEffect;
366
- /** @ignore */
367
- private onIsFirstDefaultOpenChangeEffect;
368
- /** @ignore */
369
- private onAnchorChangeEffect;
370
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverRootDirective, never>;
371
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverRootDirective, "[rdxPopoverRoot]", ["rdxPopoverRoot"], { "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "externalControl": { "alias": "externalControl"; "required": false; "isSignal": true; }; "cssAnimation": { "alias": "cssAnimation"; "required": false; "isSignal": true; }; "cssOpeningAnimation": { "alias": "cssOpeningAnimation"; "required": false; "isSignal": true; }; "cssClosingAnimation": { "alias": "cssClosingAnimation"; "required": false; "isSignal": true; }; }, {}, ["popoverContentDirective", "popoverTriggerDirective", "popoverArrowDirective", "popoverCloseDirective", "popoverContentAttributesComponent", "internalPopoverAnchorDirective"], never, true, never>;
333
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverPopup, never>;
334
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverPopup, "[rdxPopoverPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "openAutoFocus": "openAutoFocus"; "closeAutoFocus": "closeAutoFocus"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof i2.RdxDismissableLayer; inputs: {}; outputs: {}; }, { directive: typeof i3.RdxFocusScope; inputs: {}; outputs: {}; }]>;
372
335
  }
373
336
 
374
- declare class RdxPopoverContentAttributesComponent {
375
- /** @ignore */
376
- private readonly focusTrapDirective;
377
- /** @ignore */
378
- private readonly focusInitialDirective;
379
- /** @ignore */
380
- protected readonly popoverRoot: _radix_ng_primitives_popover.RdxPopoverRootDirective;
381
- /** @ignore */
382
- readonly name: _angular_core.Signal<string>;
383
- /** @ignore */
384
- readonly disableAnimation: _angular_core.Signal<boolean>;
337
+ /**
338
+ * An optional arrow element rendered alongside the popover.
339
+ */
340
+ declare class RdxPopoverArrow {
341
+ protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
342
+ private readonly wrapper;
343
+ protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
344
+ protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
345
+ protected readonly uncentered: _angular_core.Signal<boolean>;
346
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverArrow, never>;
347
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverArrow, "[rdxPopoverArrow]", never, {}, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperArrow; inputs: {}; outputs: {}; }]>;
348
+ }
349
+
350
+ /**
351
+ * An accessible title for the popover.
352
+ */
353
+ declare class RdxPopoverTitle {
354
+ private readonly rootContext;
355
+ readonly id: string;
356
+ constructor();
357
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverTitle, never>;
358
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverTitle, "[rdxPopoverTitle]", never, {}, {}, never, never, true, never>;
359
+ }
360
+
361
+ /**
362
+ * An accessible description for the popover.
363
+ */
364
+ declare class RdxPopoverDescription {
365
+ private readonly rootContext;
366
+ readonly id: string;
367
+ constructor();
368
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverDescription, never>;
369
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverDescription, "[rdxPopoverDescription]", never, {}, {}, never, never, true, never>;
370
+ }
371
+
372
+ /**
373
+ * A button that closes the popover.
374
+ */
375
+ declare class RdxPopoverClose {
376
+ protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
377
+ constructor();
378
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverClose, never>;
379
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverClose, "button[rdxPopoverClose]", never, {}, {}, never, never, true, never>;
380
+ }
381
+
382
+ /**
383
+ * A viewport for animating content changes when a popover moves between triggers.
384
+ *
385
+ * Render one direct child inside the viewport. It is marked with `data-current`;
386
+ * when the active trigger changes, a DOM snapshot is retained as `data-previous`
387
+ * until its CSS animation or transition completes.
388
+ */
389
+ declare class RdxPopoverViewport {
390
+ private readonly rootContext;
391
+ private readonly elementRef;
392
+ private readonly destroyRef;
393
+ private previous;
394
+ private cleanupTimer;
395
+ private observer;
396
+ protected readonly activationDirection: _angular_core.WritableSignal<string | undefined>;
397
+ protected readonly transitioning: _angular_core.WritableSignal<boolean>;
385
398
  constructor();
386
- /** @ignore */
387
- protected onAnimationStart(_: AnimationEvent): void;
388
- /** @ignore */
389
- protected onAnimationEnd(_: AnimationEvent): void;
390
- /** @ignore */
391
- private canAnimate;
392
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverContentAttributesComponent, never>;
393
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RdxPopoverContentAttributesComponent, "[rdxPopoverContentAttributes]", never, {}, {}, ["focusInitialDirective"], ["*"], true, [{ directive: typeof i1$1.CdkTrapFocus; inputs: {}; outputs: {}; }]>;
399
+ private startTransition;
400
+ private markCurrent;
401
+ private current;
402
+ private scheduleCleanup;
403
+ private cleanupPrevious;
404
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverViewport, never>;
405
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverViewport, "[rdxPopoverViewport]", never, {}, {}, never, never, true, never>;
394
406
  }
395
407
 
408
+ declare const popoverImports: (typeof RdxPopoverPortalPresence)[];
396
409
  declare class RdxPopoverModule {
397
410
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverModule, never>;
398
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxPopoverModule, never, [typeof RdxPopoverArrowDirective, typeof RdxPopoverCloseDirective, typeof RdxPopoverContentDirective, typeof RdxPopoverTriggerDirective, typeof RdxPopoverRootDirective, typeof RdxPopoverAnchorDirective, typeof RdxPopoverContentAttributesComponent], [typeof RdxPopoverArrowDirective, typeof RdxPopoverCloseDirective, typeof RdxPopoverContentDirective, typeof RdxPopoverTriggerDirective, typeof RdxPopoverRootDirective, typeof RdxPopoverAnchorDirective, typeof RdxPopoverContentAttributesComponent]>;
411
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxPopoverModule, never, [typeof RdxPopoverRoot, typeof RdxPopoverTrigger, typeof RdxPopoverPortalPresence, typeof RdxPopoverPortal, typeof RdxPopoverBackdrop, typeof RdxPopoverPositioner, typeof RdxPopoverPopup, typeof RdxPopoverArrow, typeof RdxPopoverTitle, typeof RdxPopoverDescription, typeof RdxPopoverClose, typeof RdxPopoverViewport], [typeof RdxPopoverRoot, typeof RdxPopoverTrigger, typeof RdxPopoverPortalPresence, typeof RdxPopoverPortal, typeof RdxPopoverBackdrop, typeof RdxPopoverPositioner, typeof RdxPopoverPopup, typeof RdxPopoverArrow, typeof RdxPopoverTitle, typeof RdxPopoverDescription, typeof RdxPopoverClose, typeof RdxPopoverViewport]>;
399
412
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxPopoverModule>;
400
413
  }
401
414
 
402
- export { RdxPopoverAnchorDirective, RdxPopoverArrowDirective, RdxPopoverCloseDirective, RdxPopoverContentAttributesComponent, RdxPopoverContentDirective, RdxPopoverModule, RdxPopoverRootDirective, RdxPopoverTriggerDirective };
415
+ export { RdxPopoverArrow, RdxPopoverBackdrop, RdxPopoverClose, RdxPopoverDescription, RdxPopoverHandle, RdxPopoverModule, RdxPopoverPopup, RdxPopoverPortal, RdxPopoverPortalPresence, RdxPopoverPositioner, RdxPopoverRoot, RdxPopoverTitle, RdxPopoverTrigger, RdxPopoverViewport, createRdxPopoverHandle, injectRdxPopoverRootContext, popoverImports, provideRdxPopoverRootContext };
416
+ export type { RdxPopoverModal, RdxPopoverOpenChange, RdxPopoverOpenChangeReason, RdxPopoverRootContext, RdxPopoverTransitionStatus };