@radix-ng/primitives 1.0.0-beta.3 → 1.0.0-beta.4
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.
- package/README.md +1 -1
- package/fesm2022/radix-ng-primitives-accordion.mjs +5 -3
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +3 -2
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-autocomplete.mjs +617 -659
- package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-calendar.mjs +5 -3
- package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-combobox.mjs +1305 -572
- package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-config.mjs +13 -4
- package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-context-menu.mjs +51 -10
- package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +1345 -64
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-date-field.mjs +5 -3
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dialog.mjs +240 -112
- package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-direction-provider.mjs +70 -0
- package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +519 -184
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-drawer.mjs +3 -3
- package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-field.mjs +3 -2
- package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +517 -0
- package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-focus-scope.mjs +296 -70
- package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +861 -286
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +32 -4
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs +144 -159
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +220 -205
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popper.mjs +94 -51
- package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-presence.mjs +1 -1
- package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-preview-card.mjs +141 -173
- package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +4 -2
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-scroll-area.mjs +5 -4
- package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +211 -156
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +5 -3
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-stepper.mjs +5 -3
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-time-field.mjs +5 -3
- package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toast.mjs +15 -36
- package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +5 -3
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +5 -3
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tooltip.mjs +73 -110
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
- package/package.json +10 -1
- package/types/radix-ng-primitives-accordion.d.ts +4 -3
- package/types/radix-ng-primitives-autocomplete.d.ts +217 -152
- package/types/radix-ng-primitives-calendar.d.ts +5 -3
- package/types/radix-ng-primitives-combobox.d.ts +672 -283
- package/types/radix-ng-primitives-config.d.ts +1 -1
- package/types/radix-ng-primitives-context-menu.d.ts +15 -5
- package/types/radix-ng-primitives-core.d.ts +762 -14
- package/types/radix-ng-primitives-date-field.d.ts +3 -2
- package/types/radix-ng-primitives-dialog.d.ts +77 -32
- package/types/radix-ng-primitives-direction-provider.d.ts +41 -0
- package/types/radix-ng-primitives-dismissable-layer.d.ts +147 -99
- package/types/radix-ng-primitives-field.d.ts +1 -0
- package/types/radix-ng-primitives-floating-focus-manager.d.ts +175 -0
- package/types/radix-ng-primitives-focus-scope.d.ts +132 -1
- package/types/radix-ng-primitives-menu.d.ts +186 -103
- package/types/radix-ng-primitives-navigation-menu.d.ts +37 -75
- package/types/radix-ng-primitives-popover.d.ts +59 -92
- package/types/radix-ng-primitives-popper.d.ts +39 -9
- package/types/radix-ng-primitives-preview-card.d.ts +39 -72
- package/types/radix-ng-primitives-roving-focus.d.ts +7 -6
- package/types/radix-ng-primitives-scroll-area.d.ts +2 -2
- package/types/radix-ng-primitives-select.d.ts +145 -108
- package/types/radix-ng-primitives-slider.d.ts +5 -4
- package/types/radix-ng-primitives-stepper.d.ts +4 -3
- package/types/radix-ng-primitives-time-field.d.ts +3 -2
- package/types/radix-ng-primitives-toast.d.ts +7 -7
- package/types/radix-ng-primitives-toggle-group.d.ts +5 -4
- package/types/radix-ng-primitives-toolbar.d.ts +3 -2
- package/types/radix-ng-primitives-tooltip.d.ts +24 -67
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef, Signal
|
|
2
|
+
import { TemplateRef, Signal } from '@angular/core';
|
|
3
3
|
import * as i1 from '@radix-ng/primitives/portal';
|
|
4
4
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
5
|
-
import { RdxTransitionStatus, BooleanInput, NumberInput } from '@radix-ng/primitives/core';
|
|
5
|
+
import { RdxCancelableChangeEventDetails, RdxTransitionStatus, RdxFloatingRootContext, BooleanInput, NumberInput } from '@radix-ng/primitives/core';
|
|
6
6
|
import * as i1$1 from '@radix-ng/primitives/popper';
|
|
7
|
-
import { RdxPopperContentWrapper
|
|
7
|
+
import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
|
|
8
8
|
import * as _radix_ng_primitives_navigation_menu from '@radix-ng/primitives/navigation-menu';
|
|
9
9
|
import * as i1$2 from '@radix-ng/primitives/roving-focus';
|
|
10
|
-
import
|
|
10
|
+
import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Structural directive that teleports the navigation menu popup into a container (default
|
|
@@ -36,12 +36,15 @@ declare class RdxNavigationMenuPortalMisuseGuard {
|
|
|
36
36
|
|
|
37
37
|
type NavigationMenuOrientation = 'horizontal' | 'vertical';
|
|
38
38
|
type NavigationMenuDirection = 'ltr' | 'rtl';
|
|
39
|
-
type RdxNavigationMenuOpenChangeReason = 'trigger-hover' | 'trigger-focus' | 'trigger-press' | 'outside-press' | 'focus-out' | 'escape-key' | 'link-select' | 'list-leave' | 'none';
|
|
39
|
+
type RdxNavigationMenuOpenChangeReason = 'trigger-hover' | 'trigger-focus' | 'trigger-press' | 'list-navigation' | 'outside-press' | 'focus-out' | 'escape-key' | 'link-select' | 'list-leave' | 'none';
|
|
40
|
+
type RdxNavigationMenuOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxNavigationMenuOpenChangeReason>;
|
|
40
41
|
interface RdxNavigationMenuOpenChange {
|
|
41
42
|
value: string | null;
|
|
42
43
|
open: boolean;
|
|
43
44
|
reason: RdxNavigationMenuOpenChangeReason;
|
|
44
45
|
event: Event;
|
|
46
|
+
trigger: HTMLElement | undefined;
|
|
47
|
+
eventDetails: RdxNavigationMenuOpenChangeEventDetails;
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
47
50
|
* A registered item content template, rendered into the shared viewport when its item is active.
|
|
@@ -65,6 +68,7 @@ interface RdxNavigationMenuRootContext {
|
|
|
65
68
|
/** Value of the previously open item (used for slide-direction morphing). */
|
|
66
69
|
readonly previousValue: Signal<string | null>;
|
|
67
70
|
readonly isOpen: Signal<boolean>;
|
|
71
|
+
readonly present: Signal<boolean>;
|
|
68
72
|
readonly instant: Signal<boolean>;
|
|
69
73
|
readonly transitionStatus: Signal<RdxTransitionStatus>;
|
|
70
74
|
/** The active trigger element the popup is anchored to. */
|
|
@@ -78,7 +82,7 @@ interface RdxNavigationMenuRootContext {
|
|
|
78
82
|
close(reason?: RdxNavigationMenuOpenChangeReason, event?: Event): void;
|
|
79
83
|
toggle(value: string, trigger: HTMLElement, event?: Event): void;
|
|
80
84
|
openOnHover(value: string, trigger: HTMLElement, event: PointerEvent): void;
|
|
81
|
-
closeOnHover(): void;
|
|
85
|
+
closeOnHover(event?: PointerEvent): void;
|
|
82
86
|
cancelHoverOpen(): void;
|
|
83
87
|
cancelHoverClose(): void;
|
|
84
88
|
registerTrigger(value: string, trigger: HTMLElement): () => void;
|
|
@@ -100,6 +104,9 @@ declare class RdxNavigationMenuRoot {
|
|
|
100
104
|
private readonly popper;
|
|
101
105
|
private readonly destroyRef;
|
|
102
106
|
private readonly parentRoot;
|
|
107
|
+
private readonly registration;
|
|
108
|
+
/** Per-popup floating root context (ADR 0015) — `open` / `triggers` / reference for the dismissal engine. */
|
|
109
|
+
readonly floatingContext: RdxFloatingRootContext;
|
|
103
110
|
/** Whether this root is nested inside another navigation menu's content. */
|
|
104
111
|
readonly nested: boolean;
|
|
105
112
|
readonly baseId: string;
|
|
@@ -118,7 +125,8 @@ declare class RdxNavigationMenuRoot {
|
|
|
118
125
|
/**
|
|
119
126
|
* The reading direction of the navigation menu.
|
|
120
127
|
*/
|
|
121
|
-
readonly
|
|
128
|
+
readonly dirInput: _angular_core.InputSignal<NavigationMenuDirection | undefined>;
|
|
129
|
+
readonly dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
|
|
122
130
|
/**
|
|
123
131
|
* Whether keyboard navigation loops from the last item back to the first and vice versa.
|
|
124
132
|
*/
|
|
@@ -152,6 +160,8 @@ declare class RdxNavigationMenuRoot {
|
|
|
152
160
|
readonly transitionStatus: _angular_core.Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
|
|
153
161
|
readonly previousValue: _angular_core.WritableSignal<string | null>;
|
|
154
162
|
readonly isOpen: _angular_core.Signal<boolean>;
|
|
163
|
+
private readonly preventUnmountOnClose;
|
|
164
|
+
readonly present: _angular_core.Signal<boolean>;
|
|
155
165
|
readonly trigger: _angular_core.WritableSignal<HTMLElement | undefined>;
|
|
156
166
|
readonly triggers: _angular_core.WritableSignal<HTMLElement[]>;
|
|
157
167
|
readonly contents: _angular_core.WritableSignal<Map<string, RdxNavigationMenuContentEntry>>;
|
|
@@ -166,19 +176,21 @@ declare class RdxNavigationMenuRoot {
|
|
|
166
176
|
close(reason?: RdxNavigationMenuOpenChangeReason, event?: Event): void;
|
|
167
177
|
toggle(value: string, trigger: HTMLElement, event?: Event): void;
|
|
168
178
|
openOnHover(value: string, trigger: HTMLElement, event: PointerEvent): void;
|
|
169
|
-
closeOnHover(): void;
|
|
179
|
+
closeOnHover(event?: PointerEvent): void;
|
|
170
180
|
cancelHoverOpen(): void;
|
|
171
181
|
cancelHoverClose(): void;
|
|
172
182
|
registerTrigger(value: string, trigger: HTMLElement): () => void;
|
|
173
183
|
registerContent(entry: RdxNavigationMenuContentEntry): () => void;
|
|
174
184
|
registerTransitionElement(element: HTMLElement): () => void;
|
|
175
185
|
registerViewport(onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void): () => boolean;
|
|
186
|
+
private createOpenChangeEvent;
|
|
176
187
|
private scheduleInstantReset;
|
|
177
188
|
private clearHoverTimers;
|
|
178
189
|
private clearOpenTimer;
|
|
179
190
|
private clearCloseTimer;
|
|
191
|
+
private isInsideOpenChild;
|
|
180
192
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxNavigationMenuRoot, never>;
|
|
181
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxNavigationMenuRoot, "[rdxNavigationMenuRoot]", ["rdxNavigationMenuRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "
|
|
193
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxNavigationMenuRoot, "[rdxNavigationMenuRoot]", ["rdxNavigationMenuRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1$1.RdxPopper; inputs: {}; outputs: {}; }, { directive: typeof _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }]>;
|
|
182
194
|
}
|
|
183
195
|
|
|
184
196
|
/**
|
|
@@ -322,69 +334,21 @@ declare class RdxNavigationMenuBackdrop {
|
|
|
322
334
|
|
|
323
335
|
/**
|
|
324
336
|
* Positions the shared popup against the active trigger.
|
|
337
|
+
*
|
|
338
|
+
* A "thin" positioner (ADR 0012): it inherits the popper positioning surface (inputs, `placed`
|
|
339
|
+
* output, unified vars + placement attrs) from {@link RdxPopperContentWrapper} and adds the
|
|
340
|
+
* navigation-menu defaults, the open/closed/instant state attributes, and the grace-area hover
|
|
341
|
+
* bridge. It exposes no legacy `--radix-*` aliases.
|
|
325
342
|
*/
|
|
326
|
-
declare class RdxNavigationMenuPositioner {
|
|
343
|
+
declare class RdxNavigationMenuPositioner extends RdxPopperContentWrapper {
|
|
327
344
|
protected readonly rootContext: _radix_ng_primitives_navigation_menu.RdxNavigationMenuRootContext;
|
|
328
|
-
|
|
329
|
-
private readonly elementRef;
|
|
345
|
+
private readonly containerRef;
|
|
330
346
|
private readonly triggerEl;
|
|
331
347
|
private readonly containerEl;
|
|
332
348
|
private readonly graceArea;
|
|
333
|
-
/**
|
|
334
|
-
* An element to position the popup against. Defaults to the active trigger.
|
|
335
|
-
*/
|
|
336
|
-
readonly anchor: _angular_core.InputSignal<RdxPopperAnchorElement>;
|
|
337
|
-
/**
|
|
338
|
-
* The preferred side of the trigger to render against when open.
|
|
339
|
-
*/
|
|
340
|
-
readonly side: _angular_core.InputSignal<"top" | "right" | "bottom" | "left">;
|
|
341
|
-
/**
|
|
342
|
-
* Distance between the trigger and the popup in pixels.
|
|
343
|
-
*/
|
|
344
|
-
readonly sideOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
|
|
345
|
-
/**
|
|
346
|
-
* How to align the popup relative to the specified side.
|
|
347
|
-
*/
|
|
348
|
-
readonly align: _angular_core.InputSignal<"start" | "center" | "end">;
|
|
349
|
-
/**
|
|
350
|
-
* An offset in pixels from the `start` or `end` alignment options.
|
|
351
|
-
*/
|
|
352
|
-
readonly alignOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
|
|
353
|
-
/**
|
|
354
|
-
* Minimum distance to maintain between the arrow and the edges of the popup.
|
|
355
|
-
*/
|
|
356
|
-
readonly arrowPadding: _angular_core.InputSignalWithTransform<number, NumberInput>;
|
|
357
|
-
/**
|
|
358
|
-
* Whether to override side and alignment preferences to prevent collisions.
|
|
359
|
-
*/
|
|
360
|
-
readonly avoidCollisions: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
361
|
-
/**
|
|
362
|
-
* The element used as the collision boundary.
|
|
363
|
-
*/
|
|
364
|
-
readonly collisionBoundary: _angular_core.InputSignal<ElementRef<HTMLElement> | ElementRef<HTMLElement>[] | undefined>;
|
|
365
|
-
/**
|
|
366
|
-
* Distance in pixels from the boundary edges where collision detection should occur.
|
|
367
|
-
*/
|
|
368
|
-
readonly collisionPadding: _angular_core.InputSignal<number | Partial<Record<"top" | "right" | "bottom" | "left", number>>>;
|
|
369
|
-
/**
|
|
370
|
-
* The sticky behavior on the alignment axis.
|
|
371
|
-
*/
|
|
372
|
-
readonly sticky: _angular_core.InputSignal<"always" | "partial">;
|
|
373
|
-
/**
|
|
374
|
-
* Whether to hide the popup when the trigger becomes fully occluded.
|
|
375
|
-
*/
|
|
376
|
-
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
377
|
-
/**
|
|
378
|
-
* The CSS position strategy used by Floating UI.
|
|
379
|
-
*/
|
|
380
|
-
readonly positionStrategy: _angular_core.InputSignal<"fixed" | "absolute">;
|
|
381
|
-
/**
|
|
382
|
-
* Whether to update position on every animation frame.
|
|
383
|
-
*/
|
|
384
|
-
readonly updatePositionStrategy: _angular_core.InputSignal<"always" | "optimized">;
|
|
385
349
|
constructor();
|
|
386
350
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxNavigationMenuPositioner, never>;
|
|
387
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxNavigationMenuPositioner, "[rdxNavigationMenuPositioner]", never, {
|
|
351
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxNavigationMenuPositioner, "[rdxNavigationMenuPositioner]", never, {}, {}, never, never, true, never>;
|
|
388
352
|
}
|
|
389
353
|
|
|
390
354
|
/**
|
|
@@ -392,38 +356,36 @@ declare class RdxNavigationMenuPositioner {
|
|
|
392
356
|
*/
|
|
393
357
|
declare class RdxNavigationMenuPopup {
|
|
394
358
|
protected readonly rootContext: _radix_ng_primitives_navigation_menu.RdxNavigationMenuRootContext;
|
|
395
|
-
private readonly
|
|
359
|
+
private readonly floatingContext;
|
|
360
|
+
private readonly registration;
|
|
396
361
|
private readonly wrapper;
|
|
397
|
-
private readonly layersContext;
|
|
398
362
|
private readonly elementRef;
|
|
399
363
|
protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
|
|
400
364
|
protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
|
|
401
365
|
/** Names the menu after the active trigger so the `role="menu"` element has an accessible name. */
|
|
402
366
|
protected readonly labelledBy: _angular_core.Signal<string | undefined>;
|
|
403
|
-
private dismissReason;
|
|
404
|
-
private dismissEvent;
|
|
405
367
|
/**
|
|
406
368
|
* Event handler called when the escape key is down. Can be prevented.
|
|
407
369
|
*/
|
|
408
|
-
readonly escapeKeyDown: _angular_core.
|
|
370
|
+
readonly escapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
|
|
409
371
|
/**
|
|
410
372
|
* Event handler called when a pointerdown event happens outside the popup. Can be prevented.
|
|
411
373
|
*/
|
|
412
|
-
readonly pointerDownOutside: _angular_core.
|
|
374
|
+
readonly pointerDownOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent>;
|
|
413
375
|
/**
|
|
414
376
|
* Event handler called when focus moves outside the popup. Can be prevented.
|
|
415
377
|
*/
|
|
416
|
-
readonly focusOutside: _angular_core.
|
|
378
|
+
readonly focusOutside: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
417
379
|
constructor();
|
|
418
380
|
protected onPointerLeave(event: PointerEvent): void;
|
|
419
381
|
/**
|
|
420
382
|
* Keyboard navigation inside the open panel: Down/Up move between the panel's focusable items in
|
|
421
383
|
* DOM order, Home/End jump to the first/last, and Up from the first item returns focus to the
|
|
422
|
-
* trigger. (Tab keeps working natively; Escape is handled by the
|
|
384
|
+
* trigger. (Tab keeps working natively; Escape is handled by the dismissal capability.)
|
|
423
385
|
*/
|
|
424
386
|
protected onKeydown(event: KeyboardEvent): void;
|
|
425
387
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxNavigationMenuPopup, never>;
|
|
426
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxNavigationMenuPopup, "[rdxNavigationMenuPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }
|
|
388
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxNavigationMenuPopup, "[rdxNavigationMenuPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }]>;
|
|
427
389
|
}
|
|
428
390
|
|
|
429
391
|
/**
|
|
@@ -483,4 +445,4 @@ declare class RdxNavigationMenuModule {
|
|
|
483
445
|
}
|
|
484
446
|
|
|
485
447
|
export { RdxNavigationMenuArrow, RdxNavigationMenuBackdrop, RdxNavigationMenuContent, RdxNavigationMenuIcon, RdxNavigationMenuItem, RdxNavigationMenuLink, RdxNavigationMenuList, RdxNavigationMenuModule, RdxNavigationMenuPopup, RdxNavigationMenuPortal, RdxNavigationMenuPortalMisuseGuard, RdxNavigationMenuPositioner, RdxNavigationMenuRoot, RdxNavigationMenuTrigger, RdxNavigationMenuViewport, injectNavigationMenuRootContext, navigationMenuImports, provideNavigationMenuRootContext };
|
|
486
|
-
export type { NavigationMenuDirection, NavigationMenuOrientation, RdxNavigationMenuContentEntry, RdxNavigationMenuOpenChange, RdxNavigationMenuOpenChangeReason, RdxNavigationMenuRootContext };
|
|
448
|
+
export type { NavigationMenuDirection, NavigationMenuOrientation, RdxNavigationMenuContentEntry, RdxNavigationMenuOpenChange, RdxNavigationMenuOpenChangeEventDetails, RdxNavigationMenuOpenChangeReason, RdxNavigationMenuRootContext };
|
|
@@ -2,12 +2,12 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { Signal, ElementRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@radix-ng/primitives/portal';
|
|
4
4
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
5
|
-
import { RdxTransitionStatus, BooleanInput, NumberInput } from '@radix-ng/primitives/core';
|
|
5
|
+
import { RdxTransitionStatus, RdxFloatingRootContext, BooleanInput, RdxCancelableChangeEventDetails, NumberInput } from '@radix-ng/primitives/core';
|
|
6
6
|
import * as i1$1 from '@radix-ng/primitives/popper';
|
|
7
|
-
import { RdxPopperContentWrapper
|
|
7
|
+
import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
|
|
8
8
|
import * as _radix_ng_primitives_popover from '@radix-ng/primitives/popover';
|
|
9
|
-
import
|
|
10
|
-
import * as i3 from '@radix-ng/primitives/focus-
|
|
9
|
+
import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
|
|
10
|
+
import * as i3 from '@radix-ng/primitives/floating-focus-manager';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Structural directive that teleports the popover content into a container (default `document.body`)
|
|
@@ -48,17 +48,20 @@ declare function createRdxPopoverHandle<Payload = unknown>(): RdxPopoverHandle<P
|
|
|
48
48
|
|
|
49
49
|
type RdxPopoverModal = boolean | 'trap-focus';
|
|
50
50
|
type RdxPopoverOpenChangeReason = 'trigger-hover' | 'trigger-focus' | 'trigger-press' | 'outside-press' | 'escape-key' | 'close-press' | 'focus-out' | 'imperative-action' | 'none';
|
|
51
|
+
type RdxPopoverOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxPopoverOpenChangeReason>;
|
|
51
52
|
interface RdxPopoverOpenChange {
|
|
52
53
|
open: boolean;
|
|
53
54
|
triggerId: string | null;
|
|
54
55
|
trigger: HTMLElement | undefined;
|
|
55
56
|
reason: RdxPopoverOpenChangeReason;
|
|
56
57
|
event: Event;
|
|
58
|
+
eventDetails: RdxPopoverOpenChangeEventDetails;
|
|
57
59
|
}
|
|
58
60
|
interface RdxPopoverRootContext {
|
|
59
61
|
contentId: string;
|
|
60
62
|
descriptionId: Signal<string | undefined>;
|
|
61
63
|
isOpen: Signal<boolean>;
|
|
64
|
+
present: Signal<boolean>;
|
|
62
65
|
modal: Signal<RdxPopoverModal>;
|
|
63
66
|
titleId: Signal<string | undefined>;
|
|
64
67
|
trigger: Signal<HTMLElement | undefined>;
|
|
@@ -68,6 +71,8 @@ interface RdxPopoverRootContext {
|
|
|
68
71
|
instant: Signal<boolean>;
|
|
69
72
|
openChangeReason: Signal<RdxPopoverOpenChangeReason>;
|
|
70
73
|
isPointerDownOnTrigger: Signal<boolean>;
|
|
74
|
+
/** Whether the current open was initiated by touch (ADR 0016 §3 — gates the anchored scroll lock). */
|
|
75
|
+
openedByTouch: Signal<boolean>;
|
|
71
76
|
close: (reason?: RdxPopoverOpenChangeReason, event?: Event) => void;
|
|
72
77
|
cancelHoverClose: () => void;
|
|
73
78
|
cancelHoverOpen: () => void;
|
|
@@ -79,6 +84,7 @@ interface RdxPopoverRootContext {
|
|
|
79
84
|
setDescriptionId: (id: string | undefined) => void;
|
|
80
85
|
setTitleId: (id: string | undefined) => void;
|
|
81
86
|
setPointerDownOnTrigger: (pointerDown: boolean) => void;
|
|
87
|
+
setOpenedByTouch: (value: boolean) => void;
|
|
82
88
|
setHoverDelays: (delay: number, closeDelay: number) => void;
|
|
83
89
|
registerPopupClose: () => () => void;
|
|
84
90
|
registerTransitionElement: (element: HTMLElement) => () => void;
|
|
@@ -95,6 +101,8 @@ type RdxPopoverTransitionStatus = RdxTransitionStatus;
|
|
|
95
101
|
declare class RdxPopoverRoot {
|
|
96
102
|
private readonly popper;
|
|
97
103
|
private readonly destroyRef;
|
|
104
|
+
/** Shared per-popup floating context (ADR 0015 §1): `open`, trigger registry, reference / floating els. */
|
|
105
|
+
readonly floatingContext: RdxFloatingRootContext;
|
|
98
106
|
private hasAppliedDefaultOpen;
|
|
99
107
|
private hasAppliedDefaultTriggerId;
|
|
100
108
|
private openTimer;
|
|
@@ -138,12 +146,16 @@ declare class RdxPopoverRoot {
|
|
|
138
146
|
readonly triggers: _angular_core.WritableSignal<HTMLElement[]>;
|
|
139
147
|
readonly payload: _angular_core.WritableSignal<unknown>;
|
|
140
148
|
readonly isPointerDownOnTrigger: _angular_core.WritableSignal<boolean>;
|
|
149
|
+
/** Whether the current open was initiated by touch (ADR 0016 §3 — gates the anchored scroll lock). */
|
|
150
|
+
readonly openedByTouch: _angular_core.WritableSignal<boolean>;
|
|
141
151
|
readonly popupCloseCount: _angular_core.WritableSignal<number>;
|
|
152
|
+
private readonly preventUnmountOnClose;
|
|
142
153
|
readonly onOpenChange: _angular_core.OutputEmitterRef<RdxPopoverOpenChange>;
|
|
143
154
|
readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
|
|
144
155
|
private readonly registeredTriggers;
|
|
145
156
|
private readonly viewportTriggerChange;
|
|
146
157
|
readonly state: Signal<"open" | "closed">;
|
|
158
|
+
readonly present: Signal<boolean>;
|
|
147
159
|
constructor();
|
|
148
160
|
show(trigger?: HTMLElement | undefined, payload?: unknown, triggerId?: string, reason?: RdxPopoverOpenChangeReason, event?: Event, fromHover?: boolean): void;
|
|
149
161
|
close(reason?: RdxPopoverOpenChangeReason, event?: Event): void;
|
|
@@ -157,7 +169,7 @@ declare class RdxPopoverRoot {
|
|
|
157
169
|
registerViewport(onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void): () => boolean;
|
|
158
170
|
registerTransitionElement(element: HTMLElement): () => void;
|
|
159
171
|
private syncTriggerId;
|
|
160
|
-
private
|
|
172
|
+
private createOpenChangeEvent;
|
|
161
173
|
private clearHoverTimers;
|
|
162
174
|
private clearOpenTimer;
|
|
163
175
|
private clearCloseTimer;
|
|
@@ -172,6 +184,8 @@ declare class RdxPopoverRoot {
|
|
|
172
184
|
declare class RdxPopoverTrigger {
|
|
173
185
|
private readonly parentRootContext;
|
|
174
186
|
readonly elementRef: ElementRef<HTMLElement>;
|
|
187
|
+
/** Pointer type of the most recent `pointerdown`, used to detect a touch open (ADR 0016 §3). */
|
|
188
|
+
private lastPointerType;
|
|
175
189
|
/**
|
|
176
190
|
* Associates this trigger with a detached popover root.
|
|
177
191
|
*/
|
|
@@ -209,7 +223,7 @@ declare class RdxPopoverTrigger {
|
|
|
209
223
|
protected handleClick(event: MouseEvent): void;
|
|
210
224
|
protected handlePointerEnter(event: PointerEvent): void;
|
|
211
225
|
protected handlePointerLeave(event: PointerEvent): void;
|
|
212
|
-
protected handlePointerDown(): void;
|
|
226
|
+
protected handlePointerDown(event: PointerEvent): void;
|
|
213
227
|
protected handlePointerUp(): void;
|
|
214
228
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverTrigger, never>;
|
|
215
229
|
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: {}; }]>;
|
|
@@ -220,119 +234,72 @@ declare class RdxPopoverTrigger {
|
|
|
220
234
|
*/
|
|
221
235
|
declare class RdxPopoverBackdrop {
|
|
222
236
|
protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
|
|
237
|
+
constructor();
|
|
223
238
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverBackdrop, never>;
|
|
224
239
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverBackdrop, "[rdxPopoverBackdrop]", never, {}, {}, never, never, true, never>;
|
|
225
240
|
}
|
|
226
241
|
|
|
227
242
|
/**
|
|
228
243
|
* Positions the popover against its trigger.
|
|
244
|
+
*
|
|
245
|
+
* A "thin" positioner (ADR 0012): it inherits the popper positioning surface (inputs, `placed`
|
|
246
|
+
* output, unified vars + placement attrs) from {@link RdxPopperContentWrapper} and adds popover's own
|
|
247
|
+
* concerns — Base UI-aligned defaults via the config provider, the open/closed/instant state
|
|
248
|
+
* attributes, the deprecated `--radix-popover-*` aliases, and the grace-area hover bridge.
|
|
229
249
|
*/
|
|
230
|
-
declare class RdxPopoverPositioner {
|
|
250
|
+
declare class RdxPopoverPositioner extends RdxPopperContentWrapper {
|
|
231
251
|
protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
|
|
232
|
-
protected readonly
|
|
233
|
-
private readonly
|
|
252
|
+
protected readonly legacyVars: Record<string, string>;
|
|
253
|
+
private readonly containerRef;
|
|
234
254
|
private readonly triggerEl;
|
|
235
255
|
private readonly containerEl;
|
|
236
256
|
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
257
|
constructor();
|
|
294
258
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopoverPositioner, never>;
|
|
295
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverPositioner, "[rdxPopoverPositioner]", never, {
|
|
259
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopoverPositioner, "[rdxPopoverPositioner]", never, {}, {}, never, never, true, never>;
|
|
296
260
|
}
|
|
297
261
|
|
|
298
262
|
/**
|
|
299
263
|
* A container for the popover contents.
|
|
264
|
+
*
|
|
265
|
+
* **ADR 0015/0017 Phase-4 migration** onto the new floating dismissal + focus engine (same pattern as
|
|
266
|
+
* Dialog; browser-verified via `popover.behavior` Playwright). Popover-specific:
|
|
267
|
+
* - **Hover-open disables the manager** (`enabled = isOpen && !isHoverActive`) — Base UI parity
|
|
268
|
+
* (`disabled={!mounted || openReason === triggerHover}`); a hover-opened popover does not trap / mark.
|
|
269
|
+
* (The legacy only suppressed auto-focus while still trapping — that Radix divergence is dropped.)
|
|
270
|
+
* - Trap = `'trap-focus' || (modal === true && hasPopupClose())`; scroll lock + real outside `inert`
|
|
271
|
+
* isolation key off the full modal (`modal === true`).
|
|
272
|
+
* - No `disablePointerDismissal` — outside-press + focus-out always close.
|
|
273
|
+
*
|
|
274
|
+
* Note: a positioned popover does **not** auto-focus into the popup on open (pre-existing — the legacy
|
|
275
|
+
* behaved the same; verified). The trap holds focus once it is inside. Auto-focus-on-open + redirecting a
|
|
276
|
+
* Tab from the trigger into the popup needs the deferred portal-focus bridge / guards (ADR 0017 §6a).
|
|
300
277
|
*/
|
|
301
278
|
declare class RdxPopoverPopup {
|
|
302
279
|
protected readonly rootContext: _radix_ng_primitives_popover.RdxPopoverRootContext;
|
|
303
|
-
private readonly
|
|
280
|
+
private readonly host;
|
|
281
|
+
private readonly floatingContext;
|
|
282
|
+
private readonly registration;
|
|
283
|
+
private readonly focusManager;
|
|
304
284
|
private readonly focusScope;
|
|
305
285
|
private readonly wrapper;
|
|
306
286
|
protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
|
|
307
287
|
protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
/**
|
|
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
|
-
*/
|
|
288
|
+
/** Event handler called when the escape key is down. Can be prevented. */
|
|
289
|
+
readonly escapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
|
|
290
|
+
/** Event handler called when a pointerdown event happens outside of the popup. Can be prevented. */
|
|
291
|
+
readonly pointerDownOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent>;
|
|
292
|
+
/** Event handler called when focus moves outside of the popup. Can be prevented. */
|
|
293
|
+
readonly focusOutside: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
294
|
+
/** Event handler called when an interaction (pointer / focus) happens outside of the popup. */
|
|
295
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent | FocusEvent>;
|
|
296
|
+
/** Event handler called before focus moves into the popup. Can be prevented. */
|
|
328
297
|
readonly openAutoFocus: _angular_core.OutputRef<Event>;
|
|
329
|
-
/**
|
|
330
|
-
* Event handler called before focus returns after the popup is removed. Can be prevented.
|
|
331
|
-
*/
|
|
298
|
+
/** Event handler called before focus returns after the popup is removed. Can be prevented. */
|
|
332
299
|
readonly closeAutoFocus: _angular_core.OutputRef<Event>;
|
|
333
300
|
constructor();
|
|
334
301
|
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
|
|
302
|
+
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 _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }, { directive: typeof i3.RdxFloatingFocusManager; inputs: {}; outputs: {}; }]>;
|
|
336
303
|
}
|
|
337
304
|
|
|
338
305
|
/**
|
|
@@ -414,4 +381,4 @@ declare class RdxPopoverModule {
|
|
|
414
381
|
}
|
|
415
382
|
|
|
416
383
|
export { RdxPopoverArrow, RdxPopoverBackdrop, RdxPopoverClose, RdxPopoverDescription, RdxPopoverHandle, RdxPopoverModule, RdxPopoverPopup, RdxPopoverPortal, RdxPopoverPortalMisuseGuard, RdxPopoverPositioner, RdxPopoverRoot, RdxPopoverTitle, RdxPopoverTrigger, RdxPopoverViewport, createRdxPopoverHandle, injectRdxPopoverRootContext, popoverImports, provideRdxPopoverRootContext };
|
|
417
|
-
export type { RdxPopoverModal, RdxPopoverOpenChange, RdxPopoverOpenChangeReason, RdxPopoverRootContext, RdxPopoverTransitionStatus };
|
|
384
|
+
export type { RdxPopoverModal, RdxPopoverOpenChange, RdxPopoverOpenChangeEventDetails, RdxPopoverOpenChangeReason, RdxPopoverRootContext, RdxPopoverTransitionStatus };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { ElementRef,
|
|
2
|
+
import { ElementRef, Provider, Type, InjectionToken } from '@angular/core';
|
|
3
3
|
import { ReferenceElement, Placement, Middleware, VirtualElement } from '@floating-ui/dom';
|
|
4
4
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
5
5
|
import { NumberInput, BooleanInput } from '@radix-ng/primitives/core';
|
|
@@ -83,12 +83,11 @@ declare const providePopperContentWrapperContext: (useFactory: () => {
|
|
|
83
83
|
shouldHideArrow: _angular_core.Signal<boolean>;
|
|
84
84
|
isPositioned: _angular_core.Signal<boolean>;
|
|
85
85
|
anchorHidden: _angular_core.Signal<boolean>;
|
|
86
|
-
}) =>
|
|
86
|
+
}) => Provider;
|
|
87
87
|
declare class RdxPopperContentWrapper {
|
|
88
88
|
private readonly elementRef;
|
|
89
89
|
private readonly injector;
|
|
90
90
|
private readonly context;
|
|
91
|
-
private readonly isBrowser;
|
|
92
91
|
/** Optional positioning defaults provided by a composing primitive (e.g. tooltip). */
|
|
93
92
|
private readonly config;
|
|
94
93
|
/**
|
|
@@ -199,26 +198,57 @@ declare class RdxPopperContentWrapper {
|
|
|
199
198
|
* The current alignment of the panel.
|
|
200
199
|
*/
|
|
201
200
|
readonly placedAlign: _angular_core.Signal<"start" | "center" | "end" | undefined>;
|
|
202
|
-
private readonly contentElementRef;
|
|
203
|
-
protected readonly contentZIndex: _angular_core.Signal<string | 0>;
|
|
204
201
|
protected readonly style: _angular_core.Signal<{
|
|
205
202
|
visibility: string;
|
|
206
203
|
pointerEvents: string;
|
|
207
204
|
position: "fixed" | "absolute";
|
|
208
205
|
transform: string;
|
|
209
206
|
minWidth: string;
|
|
210
|
-
zIndex: string | number;
|
|
211
207
|
top: string;
|
|
212
208
|
left: string;
|
|
213
209
|
'--radix-popper-transform-origin': string;
|
|
214
210
|
'--radix-popper-content-wrapper-width': string;
|
|
215
211
|
'--radix-popper-content-wrapper-height': string;
|
|
212
|
+
'--anchor-width': string;
|
|
213
|
+
'--anchor-height': string;
|
|
214
|
+
'--available-width': string;
|
|
215
|
+
'--available-height': string;
|
|
216
|
+
'--positioner-width': string;
|
|
217
|
+
'--positioner-height': string;
|
|
218
|
+
'--transform-origin': string;
|
|
216
219
|
}>;
|
|
217
220
|
private readonly afterRenderEffect;
|
|
218
221
|
constructor();
|
|
219
222
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPopperContentWrapper, never>;
|
|
220
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopperContentWrapper, "[rdxPopperContentWrapper]", 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"; }, ["arrow"
|
|
223
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPopperContentWrapper, "[rdxPopperContentWrapper]", 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"; }, ["arrow"], never, true, never>;
|
|
221
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Providers a "thin" positioner that `extends RdxPopperContentWrapper` must include. Angular
|
|
227
|
+
* inherits a base directive's inputs/outputs/host bindings/queries but **not** its `providers`, so
|
|
228
|
+
* the `useExisting` alias (lets the popup and arrow resolve the subclass through the
|
|
229
|
+
* {@link RdxPopperContentWrapper} token) and the wrapper context provider (what
|
|
230
|
+
* `injectPopperContentWrapperContext()` reads) are re-declared here in one place.
|
|
231
|
+
*
|
|
232
|
+
* Combine with {@link provideRdxPopperContentConfig} for per-primitive positioning defaults:
|
|
233
|
+
*
|
|
234
|
+
* ```ts
|
|
235
|
+
* providers: [
|
|
236
|
+
* ...provideRdxPopperContentWrapper(RdxComboboxPositioner),
|
|
237
|
+
* provideRdxPopperContentConfig({ sideOffset: 4, align: 'start' })
|
|
238
|
+
* ]
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
declare function provideRdxPopperContentWrapper(positioner: Type<RdxPopperContentWrapper>): Provider[];
|
|
242
|
+
/**
|
|
243
|
+
* Deprecated per-primitive aliases of the unified popper variables (ADR 0012). Since the wrapper now
|
|
244
|
+
* emits the unified `--anchor-*` / `--available-*` / `--transform-origin` set itself, a positioner no
|
|
245
|
+
* longer hand-writes a re-namespacing `[style]` map; it spreads this helper into a host `[style]`
|
|
246
|
+
* binding only to keep the legacy `--radix-<name>-content-*` / `--radix-<name>-trigger-*` names alive
|
|
247
|
+
* for one release of consumer back-compat. Migrate to the unified set; these are removed next minor.
|
|
248
|
+
*
|
|
249
|
+
* @deprecated Use the unified `--anchor-*` / `--available-*` / `--transform-origin` variables.
|
|
250
|
+
*/
|
|
251
|
+
declare function legacyPopperVars(name: string): Record<string, string>;
|
|
222
252
|
|
|
223
253
|
declare class RdxPopperArrow {
|
|
224
254
|
private readonly popperContentContext;
|
|
@@ -264,7 +294,7 @@ interface RdxPopperContentConfig {
|
|
|
264
294
|
declare const RdxPopperContentConfigToken: InjectionToken<RdxPopperContentConfig>;
|
|
265
295
|
declare function provideRdxPopperContentConfig(config: RdxPopperContentConfig): Provider;
|
|
266
296
|
|
|
267
|
-
declare const popperImports: (typeof RdxPopperAnchor | typeof RdxPopper | typeof
|
|
297
|
+
declare const popperImports: (typeof RdxPopperAnchor | typeof RdxPopper | typeof RdxPopperContentWrapper | typeof RdxPopperContent)[];
|
|
268
298
|
|
|
269
|
-
export { RdxPopper, RdxPopperAnchor, RdxPopperArrow, RdxPopperContent, RdxPopperContentConfigToken, RdxPopperContentWrapper, getSideAndAlignFromPlacement, injectPopperContentWrapperContext, isNotNull, popperImports, providePopperContentWrapperContext, provideRdxPopperContentConfig, transformOrigin };
|
|
299
|
+
export { RdxPopper, RdxPopperAnchor, RdxPopperArrow, RdxPopperContent, RdxPopperContentConfigToken, RdxPopperContentWrapper, getSideAndAlignFromPlacement, injectPopperContentWrapperContext, isNotNull, legacyPopperVars, popperImports, providePopperContentWrapperContext, provideRdxPopperContentConfig, provideRdxPopperContentWrapper, transformOrigin };
|
|
270
300
|
export type { Align, PopperContentWrapperContext, RdxPopperAnchorElement, RdxPopperContentConfig, Side };
|