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