@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,432 +1,395 @@
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 { InjectionToken, Provider, Signal, ElementRef } from '@angular/core';
3
+ import * as i1 from '@radix-ng/primitives/presence';
4
+ import { 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_tooltip from '@radix-ng/primitives/tooltip';
5
- import * as rxjs from 'rxjs';
6
- import { Subject } from 'rxjs';
7
- import * as i1 from '@angular/cdk/overlay';
8
- import { CdkOverlayOrigin } from '@angular/cdk/overlay';
9
- import { RdxPositionSide, RdxPositionAlign } from '@radix-ng/primitives/core';
8
+ import * as i1$2 from '@radix-ng/primitives/portal';
9
+ import { RdxPortalContainer } from '@radix-ng/primitives/portal';
10
+ import * as i1$3 from '@radix-ng/primitives/dismissable-layer';
10
11
 
11
- declare class RdxTooltipArrowDirective {
12
- /** @ignore */
13
- private readonly renderer;
14
- /** @ignore */
15
- private readonly rootDirective;
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<RdxTooltipArrowDirective, never>;
46
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipArrowDirective, "[rdxTooltipArrow]", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ declare class RdxTooltipPortalPresence {
13
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPortalPresence, never>;
14
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPortalPresence, "ng-template[rdxTooltipPortalPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
47
15
  }
48
16
 
49
- /**
50
- * TODO: to be removed? But it seems to be useful when controlled from outside
51
- */
52
- declare class RdxTooltipCloseDirective {
53
- /** @ignore */
54
- protected readonly rootDirective: _radix_ng_primitives_tooltip.RdxTooltipRootDirective;
55
- /** @ignore */
56
- readonly elementRef: ElementRef<any>;
57
- /** @ignore */
58
- private readonly renderer;
59
- constructor();
60
- /** @ignore */
61
- private onIsControlledExternallyEffect;
62
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipCloseDirective, never>;
63
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipCloseDirective, "[rdxTooltipClose]", never, {}, {}, never, never, true, never>;
17
+ declare class RdxTooltipHandle<Payload = unknown> {
18
+ private readonly rootContext;
19
+ private readonly triggers;
20
+ private readonly rootTriggerCleanups;
21
+ readonly isOpen: _angular_core.Signal<boolean>;
22
+ open(triggerId: string): void;
23
+ close(): void;
24
+ registerRoot(rootContext: RdxTooltipContext): () => void;
25
+ registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined): () => void;
26
+ context(): RdxTooltipContext | undefined;
64
27
  }
28
+ declare function createRdxTooltipHandle<Payload = unknown>(): RdxTooltipHandle<Payload>;
65
29
 
66
- declare class RdxTooltipContentDirective implements OnInit {
67
- /** @ignore */
68
- private readonly rootDirective;
69
- /** @ignore */
70
- private readonly templateRef;
71
- /** @ignore */
72
- private readonly overlay;
73
- /** @ignore */
30
+ type RdxTrackCursorAxis = 'none' | 'x' | 'y' | 'both';
31
+ type RdxTooltipConfig = {
32
+ /**
33
+ * How long to wait before opening the tooltip. Specified in milliseconds.
34
+ * @defaultValue 600
35
+ */
36
+ delay?: number;
37
+ /**
38
+ * How long to wait before closing the tooltip. Specified in milliseconds.
39
+ * @defaultValue 0
40
+ */
41
+ closeDelay?: number;
42
+ /**
43
+ * Another tooltip within the same provider opens instantly when this window
44
+ * has not yet elapsed since the previous one closed. Specified in milliseconds.
45
+ * @defaultValue 400
46
+ */
47
+ timeout?: number;
48
+ /**
49
+ * When `true`, the tooltip closes as the pointer leaves the trigger instead of
50
+ * staying open while the pointer moves over the popup.
51
+ * @defaultValue false
52
+ */
53
+ disableHoverablePopup?: boolean;
54
+ };
55
+ declare const defaultTooltipConfig: Required<RdxTooltipConfig>;
56
+ declare const RdxTooltipDefaultsToken: InjectionToken<RdxTooltipConfig>;
57
+ declare function provideRdxTooltipConfig(config: Partial<RdxTooltipConfig>): Provider[];
58
+ declare function injectRdxTooltipConfig(): Required<RdxTooltipConfig>;
59
+
60
+ interface RdxTooltipContext {
61
+ contentId: string;
62
+ isOpen: Signal<boolean>;
63
+ /** Whether the tooltip opened/closed without waiting for the delay. */
64
+ instant: Signal<boolean>;
65
+ disabled: Signal<boolean>;
66
+ disableHoverablePopup: Signal<boolean>;
67
+ trackCursorAxis: Signal<RdxTrackCursorAxis>;
68
+ /** The active trigger element. */
69
+ trigger: Signal<HTMLElement | undefined>;
70
+ triggers: Signal<HTMLElement[]>;
71
+ payload: Signal<unknown>;
72
+ open: (trigger?: HTMLElement, payload?: unknown) => void;
73
+ close: () => void;
74
+ /** Closes after the resolved close delay (used when hover/focus is lost). */
75
+ closeDelayed: () => void;
76
+ registerTrigger: (trigger: HTMLElement) => () => void;
77
+ /** Hover entered a trigger — opens after the resolved delay (or instantly). */
78
+ onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => void;
79
+ /** Hover left a trigger — cancels a pending open and closes when appropriate. */
80
+ onTriggerLeave: () => void;
81
+ setCursorPosition: (position: {
82
+ x: number;
83
+ y: number;
84
+ } | undefined) => void;
85
+ setDelays: (delay: number | undefined, closeDelay: number | undefined) => void;
86
+ }
87
+ declare const injectRdxTooltipContext: (optional?: boolean) => RdxTooltipContext | null;
88
+ declare const provideRdxTooltipContext: (useFactory: () => RdxTooltipContext) => _angular_core.Provider;
89
+ declare class RdxTooltip {
90
+ private readonly defaultConfig;
91
+ private readonly provider;
92
+ private readonly popper;
74
93
  private readonly destroyRef;
75
- /** @ignore */
76
- private readonly connectedOverlay;
77
- /** @ignore */
78
- readonly name: _angular_core.Signal<string>;
94
+ private hasAppliedDefaultOpen;
79
95
  /**
80
- * @description The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
81
- * @default top
96
+ * Whether the tooltip is currently open.
82
97
  */
83
- readonly side: _angular_core.InputSignal<RdxPositionSide>;
98
+ readonly open: _angular_core.ModelSignal<boolean>;
84
99
  /**
85
- * @description The distance in pixels from the trigger.
86
- * @default undefined
100
+ * Whether the tooltip is initially open. Uncontrolled.
87
101
  */
88
- readonly sideOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
102
+ readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
89
103
  /**
90
- * @description The preferred alignment against the trigger. May change when collisions occur.
91
- * @default center
104
+ * How long to wait before opening the tooltip. Specified in milliseconds.
105
+ * Falls back to the surrounding provider, then to the global config.
92
106
  */
93
- readonly align: _angular_core.InputSignal<RdxPositionAlign>;
107
+ readonly delay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
94
108
  /**
95
- * @description An offset in pixels from the "start" or "end" alignment options.
96
- * @default undefined
109
+ * How long to wait before closing the tooltip. Specified in milliseconds.
97
110
  */
98
- readonly alignOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
111
+ readonly closeDelay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
99
112
  /**
100
- * @description Whether to add some alternate positions of the content.
101
- * @default false
113
+ * When `true`, the tooltip closes as the pointer leaves the trigger instead of
114
+ * staying open while the pointer moves over the popup.
102
115
  */
103
- readonly alternatePositionsDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
104
- /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */
105
- readonly onOverlayEscapeKeyDownDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
106
- /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */
107
- readonly onOverlayOutsideClickDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
116
+ readonly disableHoverablePopup: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
108
117
  /**
109
- * @description Event handler called when the escape key is down.
110
- * It can be prevented by setting `onOverlayEscapeKeyDownDisabled` input to `true`.
118
+ * Determines which axis the tooltip should track the cursor on.
111
119
  */
112
- readonly onOverlayEscapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
120
+ readonly trackCursorAxis: _angular_core.InputSignal<RdxTrackCursorAxis>;
113
121
  /**
114
- * @description Event handler called when a pointer event occurs outside the bounds of the component.
115
- * It can be prevented by setting `onOverlayOutsideClickDisabled` input to `true`.
122
+ * When `true`, the tooltip will not open.
116
123
  */
117
- readonly onOverlayOutsideClick: _angular_core.OutputEmitterRef<MouseEvent>;
124
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
118
125
  /**
119
- * @description Event handler called after the overlay is open
126
+ * Associates this root with detached trigger elements.
120
127
  */
121
- readonly onOpen: _angular_core.OutputEmitterRef<void>;
128
+ readonly handle: _angular_core.InputSignal<RdxTooltipHandle<any> | undefined>;
122
129
  /**
123
- * @description Event handler called after the overlay is closed
130
+ * Event handler called when the open state changes.
124
131
  */
125
- readonly onClosed: _angular_core.OutputEmitterRef<void>;
126
- /** @ingore */
127
- readonly positions: _angular_core.Signal<i1.ConnectedPosition[]>;
132
+ readonly onOpenChange: _angular_core.OutputEmitterRef<boolean>;
133
+ readonly contentId: string;
134
+ readonly trigger: _angular_core.WritableSignal<HTMLElement | undefined>;
135
+ readonly triggers: _angular_core.WritableSignal<HTMLElement[]>;
136
+ readonly payload: _angular_core.WritableSignal<unknown>;
137
+ readonly cursorPosition: _angular_core.WritableSignal<{
138
+ x: number;
139
+ y: number;
140
+ } | undefined>;
141
+ private readonly openedInstant;
142
+ /** Local instant window used when this tooltip is not inside a provider. */
143
+ private readonly localInstant;
144
+ private readonly instantGroup;
145
+ /** Per-trigger overrides set by the active trigger, taking precedence over the root/provider. */
146
+ private readonly triggerDelay;
147
+ private readonly triggerCloseDelay;
148
+ private readonly resolvedDelay;
149
+ private readonly resolvedCloseDelay;
150
+ /** Whether the most recent open happened without the delay. */
151
+ readonly instant: Signal<boolean>;
152
+ private readonly virtualAnchor;
153
+ private readonly openTimer;
154
+ private readonly closeTimer;
128
155
  constructor();
129
- /** @ignore */
130
- ngOnInit(): void;
131
- /** @ignore */
132
- open(): void;
133
- /** @ignore */
156
+ /** Opens immediately, optionally switching the active trigger/payload. */
157
+ show(trigger?: HTMLElement | undefined, payload?: unknown): void;
134
158
  close(): void;
135
- /** @ignore */
136
- positionChange(): rxjs.Observable<i1.ConnectedOverlayPositionChange>;
137
- /** @ignore */
138
- private connectKeydownEscape;
139
- /** @ignore */
140
- private connectOutsideClick;
141
- /** @ignore */
142
- private onAttach;
143
- /** @ignore */
144
- private onDetach;
145
- /** @ignore */
146
- private setScrollStrategy;
147
- /** @ignore */
148
- private setHasBackdrop;
149
- /** @ignore */
150
- private setDisableClose;
151
- /** @ignore */
152
- private setOrigin;
153
- /** @ignore */
154
- private setPositions;
155
- /** @ignore */
156
- private computePositions;
157
- private onOriginChangeEffect;
158
- /** @ignore */
159
- private onPositionChangeEffect;
160
- /** @ignore */
161
- private fireOverlayNgOnChanges;
162
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipContentDirective, never>;
163
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipContentDirective, "[rdxTooltipContent]", 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: {}; }]>;
159
+ /** Closes after the resolved close delay, e.g. when the pointer or focus leaves. */
160
+ scheduleClose(): void;
161
+ /** Hover/focus entered — open after the delay, or instantly within the instant window. */
162
+ onTriggerEnter(trigger?: HTMLElement | undefined, payload?: unknown): void;
163
+ onTriggerLeave(): void;
164
+ registerTrigger(trigger: HTMLElement): () => void;
165
+ setCursorPosition(position: {
166
+ x: number;
167
+ y: number;
168
+ } | undefined): void;
169
+ /** Applies per-trigger delay overrides from the trigger that is becoming active. */
170
+ setDelays(delay: number | undefined, closeDelay: number | undefined): void;
171
+ private applyOpen;
172
+ private applyClose;
173
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltip, never>;
174
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltip, "[rdxTooltip]", ["rdxTooltip"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "disableHoverablePopup": { "alias": "disableHoverablePopup"; "required": false; "isSignal": true; }; "trackCursorAxis": { "alias": "trackCursorAxis"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "handle": { "alias": "handle"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "onOpenChange": "onOpenChange"; }, never, never, true, [{ directive: typeof i1$1.RdxPopper; inputs: {}; outputs: {}; }]>;
164
175
  }
165
176
 
166
- declare class RdxTooltipTriggerDirective {
167
- /** @ignore */
168
- protected readonly rootDirective: _radix_ng_primitives_tooltip.RdxTooltipRootDirective;
169
- /** @ignore */
170
- readonly elementRef: ElementRef<HTMLElement>;
171
- /** @ignore */
172
- readonly overlayOrigin: CdkOverlayOrigin;
173
- /** @ignore */
174
- readonly name: _angular_core.Signal<string>;
175
- /** @ignore */
176
- pointerenter(): void;
177
- /** @ignore */
178
- pointerleave(): void;
179
- /** @ignore */
180
- focus(): void;
181
- /** @ignore */
182
- blur(): void;
183
- /** @ignore */
184
- click(): void;
185
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipTriggerDirective, never>;
186
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipTriggerDirective, "[rdxTooltipTrigger]", never, {}, {}, never, never, true, [{ directive: typeof i1.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
177
+ declare class RdxTooltipArrow {
178
+ protected readonly rootContext: _radix_ng_primitives_tooltip.RdxTooltipContext;
179
+ private readonly wrapper;
180
+ protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
181
+ protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
182
+ protected readonly uncentered: _angular_core.Signal<boolean>;
183
+ protected readonly isVisuallyHidden: boolean;
184
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipArrow, never>;
185
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipArrow, "[rdxTooltipArrow]", never, {}, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperArrow; inputs: {}; outputs: {}; }]>;
187
186
  }
188
187
 
189
- type EventType = 'cdkOverlayOutsideClick' | 'cdkOverlayEscapeKeyDown';
190
- type EventTypeCapitalized<R extends EventType = EventType> = Capitalize<R>;
191
- type EventTypeAsPrimitiveConfigKey<R extends EventType = EventType> = `prevent${EventTypeCapitalized<R>}`;
192
- type PrimitiveConfig = {
193
- [value in EventTypeAsPrimitiveConfigKey]?: boolean;
194
- };
195
- type PrimitiveConfigs = Map<object, PrimitiveConfig>;
196
-
197
- declare class RdxTooltipAnchorDirective {
198
- /**
199
- * @ignore
200
- * If outside the rootDirective then null, otherwise the rootDirective directive - with optional `true` passed in as the first param.
201
- * If outside the rootDirective and non-null value that means the html structure is wrong - tooltip inside tooltip.
202
- * */
203
- protected rootDirective: RdxTooltipRootDirective | null;
204
- /** @ignore */
205
- readonly elementRef: ElementRef<any>;
206
- /** @ignore */
207
- readonly overlayOrigin: CdkOverlayOrigin;
208
- /** @ignore */
209
- readonly document: Document;
210
- /** @ignore */
211
- readonly name: _angular_core.Signal<string>;
212
- /** @ignore */
213
- click(): void;
214
- /** @ignore */
215
- setRoot(root: RdxTooltipRootDirective): void;
216
- private emitOutsideClick;
217
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipAnchorDirective, never>;
218
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipAnchorDirective, "[rdxTooltipAnchor]", ["rdxTooltipAnchor"], {}, {}, never, never, true, [{ directive: typeof i1.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
188
+ /**
189
+ * The tooltip popup. Renders the content with `role="tooltip"`.
190
+ */
191
+ declare class RdxTooltipPopup {
192
+ protected readonly rootContext: _radix_ng_primitives_tooltip.RdxTooltipContext;
193
+ private readonly wrapper;
194
+ protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
195
+ protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
196
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPopup, never>;
197
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPopup, "[rdxTooltipPopup]", never, {}, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }]>;
219
198
  }
220
199
 
221
- declare enum RdxTooltipState {
222
- OPEN = "open",
223
- CLOSED = "closed"
224
- }
225
- declare enum RdxTooltipAction {
226
- OPEN = "open",
227
- CLOSE = "close"
228
- }
229
- declare enum RdxTooltipAttachDetachEvent {
230
- ATTACH = "attach",
231
- DETACH = "detach"
232
- }
233
- declare enum RdxTooltipAnimationStatus {
234
- OPEN_STARTED = "open_started",
235
- OPEN_ENDED = "open_ended",
236
- CLOSED_STARTED = "closed_started",
237
- CLOSED_ENDED = "closed_ended"
200
+ /**
201
+ * Moves the tooltip to a different part of the DOM.
202
+ */
203
+ declare class RdxTooltipPortal {
204
+ readonly container: _angular_core.InputSignal<RdxPortalContainer>;
205
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPortal, never>;
206
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPortal, "[rdxTooltipPortal]", never, { "container": { "alias": "container"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$2.RdxPortal; inputs: { "container": "container"; }; outputs: {}; }]>;
238
207
  }
239
208
 
240
- declare class RdxTooltipRootDirective {
241
- /** @ignore */
242
- readonly uniqueId: _angular_core.WritableSignal<number>;
243
- /** @ignore */
244
- readonly name: _angular_core.Signal<string>;
209
+ /**
210
+ * Positions the tooltip popup against its trigger (or a custom anchor).
211
+ */
212
+ declare class RdxTooltipPositioner {
213
+ protected readonly rootContext: _radix_ng_primitives_tooltip.RdxTooltipContext;
214
+ protected readonly wrapper: RdxPopperContentWrapper;
215
+ private readonly destroyRef;
216
+ private readonly dismissableLayer;
217
+ private readonly elementRef;
245
218
  /**
246
- * @description The anchor directive that comes form outside the tooltip rootDirective
247
- * @default undefined
219
+ * An element to position the popup against. Defaults to the trigger.
248
220
  */
249
- readonly anchor: _angular_core.InputSignal<RdxTooltipAnchorDirective | undefined>;
221
+ readonly anchor: _angular_core.InputSignal<RdxPopperAnchorElement>;
250
222
  /**
251
- * @description The open state of the tooltip when it is initially rendered. Use when you do not need to control its open state.
252
- * @default false
223
+ * The preferred side of the anchor to render against when open.
253
224
  */
254
- readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
225
+ readonly side: _angular_core.InputSignal<"top" | "right" | "bottom" | "left">;
255
226
  /**
256
- * @description The controlled state of the tooltip. `open` input take precedence of `defaultOpen` input.
257
- * @default undefined
258
- */
259
- readonly open: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
260
- /**
261
- * To customise the open delay for a specific tooltip.
262
- */
263
- readonly openDelay: _angular_core.InputSignalWithTransform<number, NumberInput>;
264
- /**
265
- * To customise the close delay for a specific tooltip.
266
- */
267
- readonly closeDelay: _angular_core.InputSignalWithTransform<number, NumberInput>;
268
- /**
269
- * @description Whether to control the state of the tooltip from external. Use in conjunction with `open` input.
270
- * @default undefined
271
- */
272
- readonly externalControl: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
273
- /**
274
- * @description Whether to take into account CSS opening/closing animations.
275
- * @default false
276
- */
277
- readonly cssAnimation: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
278
- /**
279
- * @description Whether to take into account CSS opening animations. `cssAnimation` input must be set to 'true'
280
- * @default false
281
- */
282
- readonly cssOpeningAnimation: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
283
- /**
284
- * @description Whether to take into account CSS closing animations. `cssAnimation` input must be set to 'true'
285
- * @default false
286
- */
287
- readonly cssClosingAnimation: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
288
- /** @ignore */
289
- readonly cssAnimationStatus: _angular_core.WritableSignal<RdxTooltipAnimationStatus | null>;
290
- /** @ignore */
291
- readonly contentDirective: _angular_core.Signal<RdxTooltipContentDirective>;
292
- /** @ignore */
293
- readonly triggerDirective: _angular_core.Signal<RdxTooltipTriggerDirective>;
294
- /** @ignore */
295
- readonly arrowDirective: _angular_core.Signal<_radix_ng_primitives_tooltip.RdxTooltipArrowDirective | undefined>;
296
- /** @ignore */
297
- readonly closeDirective: _angular_core.Signal<_radix_ng_primitives_tooltip.RdxTooltipCloseDirective | undefined>;
298
- /** @ignore */
299
- readonly contentAttributesComponent: _angular_core.Signal<_radix_ng_primitives_tooltip.RdxTooltipContentAttributesComponent | undefined>;
300
- /** @ignore */
301
- private readonly internalAnchorDirective;
302
- /** @ignore */
303
- readonly viewContainerRef: ViewContainerRef;
304
- /** @ignore */
305
- readonly rdxCdkEventService: {
306
- document: Document;
307
- destroyRef: DestroyRef;
308
- ngZone: _angular_core.NgZone;
309
- renderer2: _angular_core.Renderer2;
310
- window: Window & typeof globalThis;
311
- primitiveConfigs?: PrimitiveConfigs;
312
- onDestroyCallbacks: Set<() => void>;
313
- #clickDomRootEventCallbacks: Set<(event: MouseEvent) => void>;
314
- registerPrimitive<T extends object>(primitiveInstance: T): void;
315
- deregisterPrimitive<T extends object>(primitiveInstance: T): void;
316
- preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): void;
317
- allowPrimitiveForCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): void;
318
- preventPrimitiveFromCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]): void;
319
- allowPrimitiveForCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]): void;
320
- setPreventPrimitiveFromCdkMixEvents<T extends object>(primitiveInstance: T, eventTypes: PrimitiveConfig): void;
321
- primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): boolean | undefined;
322
- addClickDomRootEventCallback(callback: (event: MouseEvent) => void): void;
323
- removeClickDomRootEventCallback(callback: (event: MouseEvent) => void): boolean;
324
- #setPreventPrimitiveFromCdkEvent<T extends object, R extends EventType, K extends PrimitiveConfig[`prevent${Capitalize<R>}`]>(primitiveInstance: T, eventType: R, value: K): void;
325
- #registerOnDestroyCallbacks(): void;
326
- #listenToClickDomRootEvent(): void;
327
- } | null;
328
- /** @ignore */
329
- readonly destroyRef: DestroyRef;
330
- /** @ignore */
331
- readonly state: _angular_core.WritableSignal<RdxTooltipState>;
332
- /** @ignore */
333
- readonly attachDetachEvent: _angular_core.WritableSignal<RdxTooltipAttachDetachEvent>;
334
- /** @ignore */
335
- private readonly isFirstDefaultOpen;
336
- /** @ignore */
337
- readonly anchorDirective: _angular_core.Signal<RdxTooltipAnchorDirective | undefined>;
338
- /** @ignore */
339
- readonly actionSubject$: Subject<RdxTooltipAction>;
227
+ * The distance in pixels from the anchor.
228
+ */
229
+ readonly sideOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
230
+ /**
231
+ * The preferred alignment against the anchor.
232
+ */
233
+ readonly align: _angular_core.InputSignal<"start" | "center" | "end">;
234
+ /**
235
+ * An offset in pixels from the `start` or `end` alignment options.
236
+ */
237
+ readonly alignOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
238
+ /**
239
+ * The padding between the arrow and the edges of the content.
240
+ */
241
+ readonly arrowPadding: _angular_core.InputSignalWithTransform<number, NumberInput>;
242
+ /**
243
+ * When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges.
244
+ */
245
+ readonly avoidCollisions: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
246
+ /**
247
+ * The element used as the collision boundary.
248
+ */
249
+ readonly collisionBoundary: _angular_core.InputSignal<ElementRef<HTMLElement> | ElementRef<HTMLElement>[] | undefined>;
250
+ /**
251
+ * The distance in pixels from the boundary edges where collision detection should occur.
252
+ */
253
+ readonly collisionPadding: _angular_core.InputSignal<number | Partial<Record<"top" | "right" | "bottom" | "left", number>>>;
254
+ /**
255
+ * The sticky behavior on the `align` axis.
256
+ */
257
+ readonly sticky: _angular_core.InputSignal<"partial" | "always">;
258
+ /**
259
+ * Whether to hide the content when the trigger becomes fully occluded.
260
+ */
261
+ readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
262
+ /**
263
+ * The CSS position strategy used by Floating UI.
264
+ */
265
+ readonly positionStrategy: _angular_core.InputSignal<"fixed" | "absolute">;
266
+ /**
267
+ * Whether to update the position of the floating element on every animation frame if required.
268
+ */
269
+ readonly updatePositionStrategy: _angular_core.InputSignal<"always" | "optimized">;
270
+ /**
271
+ * Emits when the element is placed.
272
+ */
273
+ readonly placed: _angular_core.OutputRef<void>;
274
+ /**
275
+ * Event handler called when the escape key is down. Can be prevented.
276
+ */
277
+ readonly escapeKeyDown: _angular_core.OutputRef<KeyboardEvent>;
278
+ /**
279
+ * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented.
280
+ */
281
+ readonly pointerDownOutside: _angular_core.OutputRef<PointerEvent>;
282
+ private readonly triggerEl;
283
+ private readonly containerEl;
284
+ private readonly graceArea;
285
+ private readonly afterNextRender;
340
286
  constructor();
341
- /** @ignore */
342
- getAnimationParamsSnapshot(): {
343
- cssAnimation: boolean;
344
- cssOpeningAnimation: boolean;
345
- cssClosingAnimation: boolean;
346
- cssAnimationStatus: RdxTooltipAnimationStatus | null;
347
- attachDetachEvent: RdxTooltipAttachDetachEvent;
348
- state: RdxTooltipState;
349
- canEmitOnOpenOrOnClosed: boolean;
350
- };
351
- /** @ignore */
352
- controlledExternally(): _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
353
- /** @ignore */
354
- firstDefaultOpen(): boolean;
355
- /** @ignore */
356
- handleOpen(): void;
357
- /** @ignore */
358
- handleClose(closeButton?: boolean): void;
359
- /** @ignore */
360
- handleToggle(): void;
361
- /** @ignore */
362
- isOpen(state?: RdxTooltipState): boolean;
363
- /** @ignore */
364
- private setState;
365
- /** @ignore */
366
- private openContent;
367
- /** @ignore */
368
- private closeContent;
369
- /** @ignore */
370
- private emitOnOpen;
371
- /** @ignore */
372
- private emitOnClosed;
373
- /** @ignore */
374
- private ifOpenOrCloseWithoutAnimations;
375
- /** @ignore */
376
- private ifOpenOrCloseWithAnimations;
377
- /** @ignore */
378
- private openOrClose;
379
- /** @ignore */
380
- private emitOnOpenOrOnClosed;
381
- /** @ignore */
382
- private canEmitOnOpenOrOnClosed;
383
- /** @ignore */
384
- private onStateChangeEffect;
385
- /** @ignore */
386
- private onCssAnimationStatusChangeChangeEffect;
387
- /** @ignore */
388
- private emitOpenOrClosedEventEffect;
389
- /** @ignore */
390
- private onOpenChangeEffect;
391
- /** @ignore */
392
- private onIsFirstDefaultOpenChangeEffect;
393
- /** @ignore */
394
- private onAnchorChangeEffect;
395
- /** @ignore */
396
- private actionSubscription;
397
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipRootDirective, never>;
398
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipRootDirective, "[rdxTooltipRoot]", ["rdxTooltipRoot"], { "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "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; }; }, {}, ["contentDirective", "triggerDirective", "arrowDirective", "closeDirective", "contentAttributesComponent", "internalAnchorDirective"], never, true, never>;
287
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPositioner, never>;
288
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPositioner, "[rdxTooltipPositioner]", 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"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, never, never, true, [{ directive: typeof i1$3.RdxDismissableLayer; inputs: {}; outputs: {}; }, { 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: {}; }]>;
399
289
  }
400
290
 
401
- declare class RdxTooltipContentAttributesComponent {
402
- /** @ignore */
403
- protected readonly rootDirective: _radix_ng_primitives_tooltip.RdxTooltipRootDirective;
404
- /** @ignore */
405
- readonly name: _angular_core.Signal<string>;
406
- /** @ignore */
407
- readonly disableAnimation: _angular_core.Signal<boolean>;
408
- /** @ignore */
409
- protected onAnimationStart(_: AnimationEvent): void;
410
- /** @ignore */
411
- protected onAnimationEnd(_: AnimationEvent): void;
412
- /** @ignore */
413
- protected pointerenter(): void;
414
- /** @ignore */
415
- protected pointerleave(): void;
416
- /** @ignore */
417
- protected focus(): void;
418
- /** @ignore */
419
- protected blur(): void;
420
- /** @ignore */
421
- private canAnimate;
422
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipContentAttributesComponent, never>;
423
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RdxTooltipContentAttributesComponent, "[rdxTooltipContentAttributes]", never, {}, {}, never, ["*"], true, never>;
291
+ type TooltipInstantController = {
292
+ /** Whether the next tooltip in the group should open without waiting for the delay. */
293
+ isInstant: Signal<boolean>;
294
+ /** Call when a tooltip opens — leaves the group in the instant phase. */
295
+ onOpen: () => void;
296
+ /** Call when a tooltip closes — keeps the group instant for `timeout` ms, then re-arms the delay. */
297
+ onClose: () => void;
298
+ };
299
+
300
+ interface RdxTooltipProviderContext {
301
+ /** Default open delay for tooltips in this group, in milliseconds. */
302
+ delay: Signal<number | undefined>;
303
+ /** Default close delay for tooltips in this group, in milliseconds. */
304
+ closeDelay: Signal<number | undefined>;
305
+ /** Whether sibling tooltips should currently open instantly. */
306
+ isInstant: Signal<boolean>;
307
+ /** Notifies the group that a tooltip has opened. */
308
+ onOpen: () => void;
309
+ /** Notifies the group that a tooltip has closed. */
310
+ onClose: () => void;
311
+ }
312
+ declare const injectRdxTooltipProviderContext: (optional?: boolean) => RdxTooltipProviderContext | null;
313
+ declare const provideRdxTooltipProviderContext: (useFactory: () => RdxTooltipProviderContext) => _angular_core.Provider;
314
+ /**
315
+ * Shares delay configuration and an instant-open window across a group of tooltips.
316
+ * Once one tooltip opens, adjacent ones open instantly until `timeout` ms after the last close.
317
+ */
318
+ declare class RdxTooltipProvider {
319
+ private readonly defaultConfig;
320
+ private readonly destroyRef;
321
+ /**
322
+ * How long to wait before opening tooltips in this group. Specified in milliseconds.
323
+ */
324
+ readonly delay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
325
+ /**
326
+ * How long to wait before closing tooltips in this group. Specified in milliseconds.
327
+ */
328
+ readonly closeDelay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
329
+ /**
330
+ * The window during which an adjacent tooltip opens instantly. Specified in milliseconds.
331
+ */
332
+ readonly timeout: _angular_core.InputSignalWithTransform<number, NumberInput>;
333
+ readonly instant: TooltipInstantController;
334
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipProvider, never>;
335
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipProvider, "[rdxTooltipProvider]", ["rdxTooltipProvider"], { "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "timeout": { "alias": "timeout"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
424
336
  }
425
337
 
426
- declare class RdxTooltipModule {
427
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipModule, never>;
428
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxTooltipModule, never, [typeof RdxTooltipArrowDirective, typeof RdxTooltipCloseDirective, typeof RdxTooltipContentDirective, typeof RdxTooltipTriggerDirective, typeof RdxTooltipRootDirective, typeof RdxTooltipAnchorDirective, typeof RdxTooltipContentAttributesComponent], [typeof RdxTooltipArrowDirective, typeof RdxTooltipCloseDirective, typeof RdxTooltipContentDirective, typeof RdxTooltipTriggerDirective, typeof RdxTooltipRootDirective, typeof RdxTooltipAnchorDirective, typeof RdxTooltipContentAttributesComponent]>;
429
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxTooltipModule>;
338
+ declare class RdxTooltipTrigger {
339
+ private readonly parentRootContext;
340
+ readonly elementRef: ElementRef<HTMLElement>;
341
+ private readonly generatedId;
342
+ /**
343
+ * Associates this trigger with a detached tooltip root.
344
+ */
345
+ readonly handle: _angular_core.InputSignal<RdxTooltipHandle<any> | undefined>;
346
+ /**
347
+ * Data associated with this trigger while it is active.
348
+ */
349
+ readonly payload: _angular_core.InputSignal<unknown>;
350
+ /**
351
+ * ID used to identify this trigger when opening a detached tooltip imperatively.
352
+ */
353
+ readonly id: _angular_core.InputSignal<string | undefined>;
354
+ /**
355
+ * Whether the tooltip should close when the trigger is clicked.
356
+ * @defaultValue true
357
+ */
358
+ readonly closeOnClick: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
359
+ /**
360
+ * Whether this trigger is disabled. A disabled trigger never opens the tooltip.
361
+ * @defaultValue false
362
+ */
363
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
364
+ /**
365
+ * Overrides the open delay (ms) for this trigger. Falls back to the root/provider/global delay.
366
+ */
367
+ readonly delay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
368
+ /**
369
+ * Overrides the close delay (ms) for this trigger. Falls back to the root/provider/global delay.
370
+ */
371
+ readonly closeDelay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
372
+ readonly userOnPointerDown: _angular_core.InputSignal<((event: PointerEvent) => void | boolean | Promise<void | boolean> | undefined) | undefined>;
373
+ protected readonly triggerId: _angular_core.Signal<string>;
374
+ protected readonly rootContext: _angular_core.Signal<_radix_ng_primitives_tooltip.RdxTooltipContext | null>;
375
+ /** Disabled if either the root or this trigger is disabled. */
376
+ protected readonly isDisabled: _angular_core.Signal<boolean>;
377
+ /** Whether this specific trigger is the active anchor of an open tooltip. */
378
+ protected readonly isOpen: _angular_core.Signal<boolean>;
379
+ private readonly isPointerDown;
380
+ private readonly hasPointerMoveOpened;
381
+ constructor();
382
+ protected handleFocus(): void;
383
+ protected handleBlur(): void;
384
+ protected handleClick(): void;
385
+ protected handlePointerMove(event: PointerEvent): void;
386
+ protected handlePointerLeave(): void;
387
+ protected handlePointerDown(event: PointerEvent): Promise<void>;
388
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipTrigger, never>;
389
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipTrigger, "[rdxTooltipTrigger]", never, { "handle": { "alias": "handle"; "required": false; "isSignal": true; }; "payload": { "alias": "payload"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "userOnPointerDown": { "alias": "rdxOnPointerDown"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
430
390
  }
431
391
 
432
- export { RdxTooltipAnchorDirective, RdxTooltipArrowDirective, RdxTooltipCloseDirective, RdxTooltipContentAttributesComponent, RdxTooltipContentDirective, RdxTooltipModule, RdxTooltipRootDirective, RdxTooltipTriggerDirective };
392
+ declare const tooltipImports: (typeof RdxTooltipPortalPresence)[];
393
+
394
+ export { RdxTooltip, RdxTooltipArrow, RdxTooltipDefaultsToken, RdxTooltipHandle, RdxTooltipPopup, RdxTooltipPortal, RdxTooltipPortalPresence, RdxTooltipPositioner, RdxTooltipProvider, RdxTooltipTrigger, createRdxTooltipHandle, defaultTooltipConfig, injectRdxTooltipConfig, injectRdxTooltipContext, injectRdxTooltipProviderContext, provideRdxTooltipConfig, provideRdxTooltipContext, provideRdxTooltipProviderContext, tooltipImports };
395
+ export type { RdxTooltipConfig, RdxTooltipContext, RdxTooltipProviderContext, RdxTrackCursorAxis };