@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,14 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { Signal,
|
|
2
|
+
import { Signal, WritableSignal } from '@angular/core';
|
|
3
3
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
4
|
-
import { BooleanInput, NumberInput } from '@radix-ng/primitives/core';
|
|
4
|
+
import { RdxFloatingRootContext, BooleanInput, Direction, RdxCancelableChangeEventDetails, NumberInput } from '@radix-ng/primitives/core';
|
|
5
|
+
import * as i3 from '@radix-ng/primitives/floating-focus-manager';
|
|
6
|
+
import { RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager';
|
|
5
7
|
import * as i1 from '@radix-ng/primitives/popper';
|
|
6
|
-
import { RdxPopperContentWrapper
|
|
8
|
+
import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
|
|
7
9
|
import * as _radix_ng_primitives_menu from '@radix-ng/primitives/menu';
|
|
8
|
-
import * as i2 from '@radix-ng/primitives/dismissable-layer';
|
|
9
10
|
import * as i1$1 from '@radix-ng/primitives/portal';
|
|
10
|
-
import
|
|
11
|
+
import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
|
|
11
12
|
|
|
12
13
|
type RdxMenuTransitionStatus = 'starting' | 'ending' | undefined;
|
|
13
14
|
/**
|
|
@@ -20,39 +21,85 @@ type RdxMenuTransitionStatus = 'starting' | 'ending' | undefined;
|
|
|
20
21
|
type RdxMenuAutoFocus = 'first' | 'last' | 'popup' | false;
|
|
21
22
|
type RdxMenuAutoFocusInput = boolean | RdxMenuAutoFocus;
|
|
22
23
|
type RdxMenuOrientation = 'horizontal' | 'vertical';
|
|
24
|
+
/**
|
|
25
|
+
* What kind of parent a menu has (Base UI `MenuParent.type`). Drives the per-kind dismissal / focus /
|
|
26
|
+
* backdrop / scroll-lock policy:
|
|
27
|
+
* - `'menu'` — a **submenu** (its parent is another menu).
|
|
28
|
+
* - `'menubar'` — a menu coordinated by a `Menubar`.
|
|
29
|
+
* - `'context-menu'` — the root of a `ContextMenu` (opened at the pointer).
|
|
30
|
+
* - `undefined` — a standalone menu (a plain dropdown).
|
|
31
|
+
*/
|
|
32
|
+
type RdxMenuParentType = 'menu' | 'menubar' | 'context-menu' | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Why a menu's open state changed (Base UI open-change `reason`). Read by the per-kind policy — e.g. a
|
|
35
|
+
* `'trigger-hover'` open suppresses the modal backdrop / scroll-lock, and the dismissal reason decides
|
|
36
|
+
* return-focus.
|
|
37
|
+
*/
|
|
38
|
+
type RdxMenuOpenChangeReason = 'trigger-press' | 'trigger-hover' | 'trigger-focus' | 'list-navigation' | 'sibling-open' | 'escape-key' | 'outside-press' | 'cancel-open' | 'focus-out' | 'none';
|
|
39
|
+
type RdxMenuOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxMenuOpenChangeReason>;
|
|
40
|
+
interface RdxMenuOpenChange {
|
|
41
|
+
open: boolean;
|
|
42
|
+
trigger: HTMLElement | undefined;
|
|
43
|
+
reason: RdxMenuOpenChangeReason;
|
|
44
|
+
event: Event;
|
|
45
|
+
eventDetails: RdxMenuOpenChangeEventDetails;
|
|
46
|
+
}
|
|
23
47
|
interface RdxMenuRootContext {
|
|
24
48
|
isOpen: Signal<boolean>;
|
|
49
|
+
present: Signal<boolean>;
|
|
25
50
|
disabled: Signal<boolean>;
|
|
26
51
|
modal: Signal<boolean>;
|
|
27
52
|
loopFocus: Signal<boolean>;
|
|
28
53
|
highlightItemOnHover: Signal<boolean>;
|
|
29
54
|
orientation: Signal<RdxMenuOrientation>;
|
|
55
|
+
dir: Signal<Direction>;
|
|
30
56
|
closeParentOnEsc: Signal<boolean>;
|
|
31
57
|
/** Whether the popup should focus its first item when it opens. */
|
|
32
58
|
autoFocus: Signal<RdxMenuAutoFocus>;
|
|
33
59
|
isSubmenu: Signal<boolean>;
|
|
60
|
+
/** What kind of parent this menu has (ADR 0015/0017 parity) — drives the per-kind policy. */
|
|
61
|
+
parentType: Signal<RdxMenuParentType>;
|
|
62
|
+
/** The reason for the most recent open-change (Base UI open-change `reason`). */
|
|
63
|
+
lastOpenChangeReason: Signal<RdxMenuOpenChangeReason>;
|
|
64
|
+
/** Whether a trigger-originated press may activate an item on the following mouseup. */
|
|
65
|
+
allowMouseUpTrigger: Signal<boolean>;
|
|
66
|
+
/** Whether the current open was initiated by touch (ADR 0016 §3 — gates the anchored scroll lock). */
|
|
67
|
+
openedByTouch: Signal<boolean>;
|
|
68
|
+
openInteractionType: Signal<RdxInteractionType>;
|
|
69
|
+
closeInteractionType: Signal<RdxInteractionType>;
|
|
34
70
|
hasTriggerInteractionHandler: Signal<boolean>;
|
|
35
71
|
trigger: Signal<HTMLElement | undefined>;
|
|
36
72
|
/** The popup element, once mounted. Used by submenu safe-polygon geometry. */
|
|
37
73
|
popupElement: Signal<HTMLElement | undefined>;
|
|
38
74
|
transitionStatus: Signal<RdxMenuTransitionStatus>;
|
|
39
|
-
close: () => void;
|
|
40
|
-
|
|
41
|
-
|
|
75
|
+
close: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
76
|
+
/** Close this menu and every ancestor — used by item selection (the whole menu dismisses). */
|
|
77
|
+
closeEntireMenu: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
78
|
+
toggle: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
79
|
+
show: (autoFocus?: RdxMenuAutoFocusInput, reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
42
80
|
/** Open the menu without moving focus into the popup (used for menubar hover-switching). */
|
|
43
|
-
showWithoutAutoFocus: () => void;
|
|
81
|
+
showWithoutAutoFocus: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
44
82
|
registerTrigger: (el: HTMLElement) => () => void;
|
|
45
83
|
registerPopup: (el: HTMLElement) => () => void;
|
|
46
84
|
registerTransitionElement: (element: HTMLElement) => () => void;
|
|
47
85
|
registerPopupArrowNavigationHandler: (handler: (offset: 1 | -1) => boolean) => () => void;
|
|
48
86
|
registerTriggerInteractionHandler: (handler: RdxMenuTriggerInteractionHandler) => () => void;
|
|
49
87
|
markAsSubmenu: () => void;
|
|
88
|
+
/** Marks this menu as the root of a Context Menu (called by `RdxContextMenuRoot`). */
|
|
89
|
+
markAsContextMenu: () => void;
|
|
90
|
+
setAllowMouseUpTrigger: (value: boolean) => void;
|
|
50
91
|
closeParent: () => void;
|
|
51
92
|
handlePopupArrowNavigation: (offset: 1 | -1) => boolean;
|
|
52
93
|
handleTriggerInteraction: (interaction: RdxMenuTriggerInteraction) => boolean;
|
|
53
94
|
}
|
|
54
95
|
type RdxMenuTriggerInteraction = {
|
|
55
96
|
type: 'click';
|
|
97
|
+
} | {
|
|
98
|
+
type: 'enter';
|
|
99
|
+
event: Event;
|
|
100
|
+
} | {
|
|
101
|
+
type: 'space';
|
|
102
|
+
event: Event;
|
|
56
103
|
} | {
|
|
57
104
|
type: 'pointerenter';
|
|
58
105
|
event: PointerEvent;
|
|
@@ -86,6 +133,14 @@ declare const provideRdxMenuRootContext: (useFactory: () => RdxMenuRootContext)
|
|
|
86
133
|
*/
|
|
87
134
|
declare class RdxMenuRoot {
|
|
88
135
|
private readonly popper;
|
|
136
|
+
private readonly parentRoot;
|
|
137
|
+
private readonly providedDirection;
|
|
138
|
+
/**
|
|
139
|
+
* The shared per-popup floating context (ADR 0015 §1) — `open` mirrors this menu's open state, the
|
|
140
|
+
* trigger registry is bridged from {@link registerTrigger}, and the reference / floating elements are
|
|
141
|
+
* set by the trigger / popup. The new dismissal engine reads this once the popup migrates.
|
|
142
|
+
*/
|
|
143
|
+
readonly floatingContext: RdxFloatingRootContext;
|
|
89
144
|
/** Shared open/close transition state machine (completes on the real animationend). */
|
|
90
145
|
private readonly transition;
|
|
91
146
|
private registeredTrigger;
|
|
@@ -98,7 +153,10 @@ declare class RdxMenuRoot {
|
|
|
98
153
|
readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
99
154
|
/** Whether interactions with the menu are disabled. */
|
|
100
155
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
101
|
-
/**
|
|
156
|
+
/**
|
|
157
|
+
* Whether the menu should block outside interactions and page scrolling.
|
|
158
|
+
* Nested menus are always non-modal.
|
|
159
|
+
*/
|
|
102
160
|
readonly modal: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
103
161
|
/** Whether keyboard navigation wraps at list boundaries. */
|
|
104
162
|
readonly loopFocus: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
@@ -106,10 +164,12 @@ declare class RdxMenuRoot {
|
|
|
106
164
|
readonly highlightItemOnHover: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
107
165
|
/** The menu orientation. */
|
|
108
166
|
readonly orientation: _angular_core.InputSignal<RdxMenuOrientation>;
|
|
167
|
+
/** Text direction for submenu arrow-key behavior. Inherited by nested submenu roots. */
|
|
168
|
+
readonly dirInput: _angular_core.InputSignal<Direction | undefined>;
|
|
109
169
|
/** Whether pressing Escape inside a submenu closes the whole menu chain. */
|
|
110
170
|
readonly closeParentOnEsc: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
111
171
|
/** Emits when the open state changes. */
|
|
112
|
-
readonly onOpenChange: _angular_core.OutputEmitterRef<
|
|
172
|
+
readonly onOpenChange: _angular_core.OutputEmitterRef<RdxMenuOpenChange>;
|
|
113
173
|
/** Emits when the open/close CSS transition or animation finishes. */
|
|
114
174
|
readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
|
|
115
175
|
readonly trigger: _angular_core.WritableSignal<HTMLElement | undefined>;
|
|
@@ -118,12 +178,40 @@ declare class RdxMenuRoot {
|
|
|
118
178
|
/** Whether the popup grabs focus when it opens. Set false for menubar hover-switching. */
|
|
119
179
|
readonly autoFocus: _angular_core.WritableSignal<RdxMenuAutoFocus>;
|
|
120
180
|
readonly isSubmenu: _angular_core.WritableSignal<boolean>;
|
|
181
|
+
/** Set by `RdxContextMenuRoot` (it composes this root) — distinguishes a context menu from a dropdown. */
|
|
182
|
+
readonly isContextMenu: _angular_core.WritableSignal<boolean>;
|
|
121
183
|
readonly hasTriggerInteractionHandler: _angular_core.WritableSignal<boolean>;
|
|
184
|
+
private readonly preventUnmountOnClose;
|
|
185
|
+
/**
|
|
186
|
+
* What kind of parent this menu has (Base UI `MenuParent.type`). A submenu wins over everything (its
|
|
187
|
+
* parent is a menu); otherwise a context-menu marker, then a menubar (detected by the trigger
|
|
188
|
+
* interaction handler the menubar registers), else a standalone dropdown.
|
|
189
|
+
*/
|
|
190
|
+
readonly parentType: Signal<RdxMenuParentType>;
|
|
191
|
+
/** The reason for the most recent open-change (Base UI open-change `reason`), for the per-kind policy. */
|
|
192
|
+
readonly lastOpenChangeReason: _angular_core.WritableSignal<RdxMenuOpenChangeReason>;
|
|
193
|
+
private readonly localAllowMouseUpTrigger;
|
|
194
|
+
readonly allowMouseUpTrigger: Signal<boolean>;
|
|
195
|
+
/** Whether the current open was initiated by **touch** (ADR 0016 §3 — gates the anchored scroll lock). */
|
|
196
|
+
readonly openedByTouch: _angular_core.WritableSignal<boolean>;
|
|
197
|
+
readonly openInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
|
|
198
|
+
readonly closeInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
|
|
199
|
+
readonly effectiveDisabled: Signal<boolean>;
|
|
200
|
+
readonly dir: Signal<Direction>;
|
|
201
|
+
readonly effectiveModal: Signal<boolean>;
|
|
122
202
|
readonly state: Signal<"open" | "closed">;
|
|
203
|
+
readonly present: Signal<boolean>;
|
|
123
204
|
constructor();
|
|
124
|
-
show(autoFocus?: RdxMenuAutoFocusInput): void;
|
|
125
|
-
close(): void;
|
|
126
|
-
toggle(): void;
|
|
205
|
+
show(autoFocus?: RdxMenuAutoFocusInput, reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
206
|
+
close(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
207
|
+
toggle(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
208
|
+
markAsContextMenu(): void;
|
|
209
|
+
setAllowMouseUpTrigger(value: boolean): void;
|
|
210
|
+
/**
|
|
211
|
+
* Close this menu **and every ancestor menu** in the chain. Selecting an item dismisses the whole
|
|
212
|
+
* menu, not just the innermost submenu (a submenu's `close()` would leave its parents open).
|
|
213
|
+
*/
|
|
214
|
+
closeEntireMenu(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
127
215
|
registerTrigger(el: HTMLElement): () => void;
|
|
128
216
|
registerPopup(el: HTMLElement): () => void;
|
|
129
217
|
registerTransitionElement(element: HTMLElement): () => void;
|
|
@@ -133,8 +221,9 @@ declare class RdxMenuRoot {
|
|
|
133
221
|
handleTriggerInteraction(interaction: RdxMenuTriggerInteraction): boolean;
|
|
134
222
|
markAsSubmenu(): void;
|
|
135
223
|
closeParent(): void;
|
|
224
|
+
private createOpenChangeEvent;
|
|
136
225
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRoot, never>;
|
|
137
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRoot, "[rdxMenuRoot],[rdxMenuSubmenuRoot]", ["rdxMenuRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "loopFocus": { "alias": "loopFocus"; "required": false; "isSignal": true; }; "highlightItemOnHover": { "alias": "highlightItemOnHover"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "closeParentOnEsc": { "alias": "closeParentOnEsc"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1.RdxPopper; inputs: {}; outputs: {}; }]>;
|
|
226
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRoot, "[rdxMenuRoot],[rdxMenuSubmenuRoot]", ["rdxMenuRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "loopFocus": { "alias": "loopFocus"; "required": false; "isSignal": true; }; "highlightItemOnHover": { "alias": "highlightItemOnHover"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "closeParentOnEsc": { "alias": "closeParentOnEsc"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1.RdxPopper; inputs: {}; outputs: {}; }]>;
|
|
138
227
|
}
|
|
139
228
|
|
|
140
229
|
/**
|
|
@@ -144,9 +233,14 @@ declare class RdxMenuTrigger {
|
|
|
144
233
|
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext;
|
|
145
234
|
private readonly elementRef;
|
|
146
235
|
private readonly destroyRef;
|
|
147
|
-
private readonly
|
|
236
|
+
private readonly isBrowser;
|
|
148
237
|
private openTimer;
|
|
149
238
|
private closeTimer;
|
|
239
|
+
private allowMouseUpTriggerTimer;
|
|
240
|
+
private lastPointer;
|
|
241
|
+
private openedByHover;
|
|
242
|
+
private ignoreNextClick;
|
|
243
|
+
private readonly handleDocumentMouseUp;
|
|
150
244
|
/** Whether this trigger should be treated as a native button. Auto-detected for `<button>`. */
|
|
151
245
|
readonly nativeButton: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
152
246
|
/** Whether this trigger is disabled. */
|
|
@@ -160,7 +254,8 @@ declare class RdxMenuTrigger {
|
|
|
160
254
|
protected readonly nativeButtonState: _angular_core.Signal<boolean>;
|
|
161
255
|
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
162
256
|
constructor();
|
|
163
|
-
protected
|
|
257
|
+
protected handleMouseDown(event: MouseEvent): void;
|
|
258
|
+
protected handleClick(event: MouseEvent): void;
|
|
164
259
|
protected handleArrowDown(event: Event): void;
|
|
165
260
|
protected handleArrowUp(event: Event): void;
|
|
166
261
|
protected handleArrowLeft(event: Event): void;
|
|
@@ -171,8 +266,13 @@ declare class RdxMenuTrigger {
|
|
|
171
266
|
protected handleKeyboardToggle(event: Event): void;
|
|
172
267
|
protected handlePointerEnter(event: PointerEvent): void;
|
|
173
268
|
protected handlePointerLeave(event: PointerEvent): void;
|
|
269
|
+
protected handlePointerMove(event: PointerEvent): void;
|
|
270
|
+
private scheduleClose;
|
|
174
271
|
private clearOpenTimer;
|
|
175
272
|
private clearCloseTimer;
|
|
273
|
+
private armMouseUpGuard;
|
|
274
|
+
private clearMouseUpGuard;
|
|
275
|
+
private restoreKeyboardPopupFocus;
|
|
176
276
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuTrigger, never>;
|
|
177
277
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuTrigger, "[rdxMenuTrigger]", ["rdxMenuTrigger"], { "nativeButton": { "alias": "nativeButton"; "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.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
|
|
178
278
|
}
|
|
@@ -198,6 +298,7 @@ declare class RdxMenuSubTrigger {
|
|
|
198
298
|
private lastPointer;
|
|
199
299
|
/** Whether the current open was initiated by hover (vs keyboard / click). */
|
|
200
300
|
private openedByHover;
|
|
301
|
+
private ignoreNextKeyboardClick;
|
|
201
302
|
/** Whether this trigger (and therefore the submenu) is disabled. */
|
|
202
303
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
203
304
|
/** Whether this trigger should be treated as a native button. Auto-detected for `<button>`. */
|
|
@@ -212,20 +313,24 @@ declare class RdxMenuSubTrigger {
|
|
|
212
313
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
213
314
|
/** Highlighted when focused OR while the submenu is open. */
|
|
214
315
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
316
|
+
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
215
317
|
protected readonly nativeButtonState: _angular_core.Signal<boolean>;
|
|
216
318
|
constructor();
|
|
217
319
|
private scheduleClose;
|
|
218
320
|
protected onFocus(): void;
|
|
219
321
|
protected onBlur(): void;
|
|
220
|
-
protected onClick(): void;
|
|
322
|
+
protected onClick(event: MouseEvent): void;
|
|
323
|
+
protected onEnter(event: Event): void;
|
|
221
324
|
protected onArrowRight(event: Event): void;
|
|
325
|
+
protected onArrowLeft(event: Event): void;
|
|
222
326
|
protected onPointerMove(event: PointerEvent): void;
|
|
223
327
|
protected onPointerLeave(): void;
|
|
224
328
|
protected clearHighlight(): void;
|
|
225
329
|
private closeSiblingSubmenus;
|
|
226
330
|
private clearSiblingHighlights;
|
|
331
|
+
private focusFirstSubmenuItem;
|
|
227
332
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuSubTrigger, never>;
|
|
228
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuSubTrigger, "[rdxMenuSubTrigger]", ["rdxMenuSubTrigger"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "nativeButton": { "alias": "nativeButton"; "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; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RdxPopperAnchor; inputs: {}; outputs: {}; }
|
|
333
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuSubTrigger, "[rdxMenuSubTrigger]", ["rdxMenuSubTrigger"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "nativeButton": { "alias": "nativeButton"; "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; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
|
|
229
334
|
}
|
|
230
335
|
|
|
231
336
|
/**
|
|
@@ -253,68 +358,17 @@ declare class RdxMenuPortalMisuseGuard {
|
|
|
253
358
|
|
|
254
359
|
/**
|
|
255
360
|
* Positions the menu against its trigger.
|
|
361
|
+
*
|
|
362
|
+
* A "thin" positioner (ADR 0012): it inherits the popper positioning surface (inputs, `placed`
|
|
363
|
+
* output, unified vars + placement attrs) from {@link RdxPopperContentWrapper} and adds the menu
|
|
364
|
+
* defaults, the open/closed state attributes, and the deprecated `--radix-menu-*` aliases.
|
|
256
365
|
*/
|
|
257
|
-
declare class RdxMenuPositioner {
|
|
366
|
+
declare class RdxMenuPositioner extends RdxPopperContentWrapper {
|
|
258
367
|
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext;
|
|
259
|
-
protected readonly
|
|
260
|
-
|
|
261
|
-
* An element to position the popup against. Defaults to the trigger.
|
|
262
|
-
*/
|
|
263
|
-
readonly anchor: _angular_core.InputSignal<RdxPopperAnchorElement>;
|
|
264
|
-
/**
|
|
265
|
-
* The preferred side of the trigger to render against when open.
|
|
266
|
-
*/
|
|
267
|
-
readonly side: _angular_core.InputSignal<"top" | "right" | "bottom" | "left">;
|
|
268
|
-
/**
|
|
269
|
-
* Distance between the trigger and the popup in pixels.
|
|
270
|
-
*/
|
|
271
|
-
readonly sideOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
|
|
272
|
-
/**
|
|
273
|
-
* How to align the popup relative to the specified side.
|
|
274
|
-
*/
|
|
275
|
-
readonly align: _angular_core.InputSignal<"end" | "start" | "center">;
|
|
276
|
-
/**
|
|
277
|
-
* An offset in pixels from the `start` or `end` alignment options.
|
|
278
|
-
*/
|
|
279
|
-
readonly alignOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
|
|
280
|
-
/**
|
|
281
|
-
* Minimum distance to maintain between the arrow and the edges of the popup.
|
|
282
|
-
*/
|
|
283
|
-
readonly arrowPadding: _angular_core.InputSignalWithTransform<number, NumberInput>;
|
|
284
|
-
/**
|
|
285
|
-
* Whether to override side and alignment preferences to prevent collisions.
|
|
286
|
-
*/
|
|
287
|
-
readonly avoidCollisions: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
288
|
-
/**
|
|
289
|
-
* The element used as the collision boundary.
|
|
290
|
-
*/
|
|
291
|
-
readonly collisionBoundary: _angular_core.InputSignal<ElementRef<HTMLElement> | ElementRef<HTMLElement>[] | undefined>;
|
|
292
|
-
/**
|
|
293
|
-
* Distance in pixels from the boundary edges where collision detection should occur.
|
|
294
|
-
*/
|
|
295
|
-
readonly collisionPadding: _angular_core.InputSignal<number | Partial<Record<"top" | "right" | "bottom" | "left", number>>>;
|
|
296
|
-
/**
|
|
297
|
-
* The sticky behavior on the alignment axis.
|
|
298
|
-
*/
|
|
299
|
-
readonly sticky: _angular_core.InputSignal<"always" | "partial">;
|
|
300
|
-
/**
|
|
301
|
-
* Whether to hide the popup when the trigger becomes fully occluded.
|
|
302
|
-
*/
|
|
303
|
-
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
304
|
-
/**
|
|
305
|
-
* The CSS position strategy used by Floating UI.
|
|
306
|
-
*/
|
|
307
|
-
readonly positionStrategy: _angular_core.InputSignal<"fixed" | "absolute">;
|
|
308
|
-
/**
|
|
309
|
-
* Whether to update position on every animation frame.
|
|
310
|
-
*/
|
|
311
|
-
readonly updatePositionStrategy: _angular_core.InputSignal<"always" | "optimized">;
|
|
312
|
-
/**
|
|
313
|
-
* Emits when the popup has been placed.
|
|
314
|
-
*/
|
|
315
|
-
readonly placed: _angular_core.OutputRef<void>;
|
|
368
|
+
protected readonly legacyVars: Record<string, string>;
|
|
369
|
+
constructor();
|
|
316
370
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuPositioner, never>;
|
|
317
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPositioner, "[rdxMenuPositioner]", ["rdxMenuPositioner"], {
|
|
371
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPositioner, "[rdxMenuPositioner]", ["rdxMenuPositioner"], {}, {}, never, never, true, never>;
|
|
318
372
|
}
|
|
319
373
|
|
|
320
374
|
/**
|
|
@@ -322,11 +376,12 @@ declare class RdxMenuPositioner {
|
|
|
322
376
|
*/
|
|
323
377
|
declare class RdxMenuPopup {
|
|
324
378
|
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext;
|
|
325
|
-
private readonly
|
|
379
|
+
private readonly floatingContext;
|
|
380
|
+
private readonly registration;
|
|
381
|
+
private readonly focusManager;
|
|
326
382
|
private readonly focusScope;
|
|
327
383
|
private readonly wrapper;
|
|
328
384
|
private readonly elementRef;
|
|
329
|
-
private readonly dismissableLayersContext;
|
|
330
385
|
private search;
|
|
331
386
|
private searchTimer;
|
|
332
387
|
protected readonly align: _angular_core.Signal<"end" | "start" | "center" | undefined>;
|
|
@@ -334,19 +389,19 @@ declare class RdxMenuPopup {
|
|
|
334
389
|
/**
|
|
335
390
|
* Event handler called when the escape key is pressed. Can be prevented.
|
|
336
391
|
*/
|
|
337
|
-
readonly escapeKeyDown: _angular_core.
|
|
392
|
+
readonly escapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
|
|
338
393
|
/**
|
|
339
394
|
* Event handler called when a pointerdown event happens outside of the popup. Can be prevented.
|
|
340
395
|
*/
|
|
341
|
-
readonly pointerDownOutside: _angular_core.
|
|
396
|
+
readonly pointerDownOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent>;
|
|
342
397
|
/**
|
|
343
398
|
* Event handler called when focus moves outside of the popup. Can be prevented.
|
|
344
399
|
*/
|
|
345
|
-
readonly focusOutside: _angular_core.
|
|
400
|
+
readonly focusOutside: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
346
401
|
/**
|
|
347
402
|
* Event handler called when an interaction happens outside of the popup. Can be prevented.
|
|
348
403
|
*/
|
|
349
|
-
readonly interactOutside: _angular_core.
|
|
404
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent | FocusEvent>;
|
|
350
405
|
/**
|
|
351
406
|
* Event handler called before focus moves into the popup. Can be prevented.
|
|
352
407
|
*/
|
|
@@ -358,8 +413,10 @@ declare class RdxMenuPopup {
|
|
|
358
413
|
constructor();
|
|
359
414
|
protected handleCloseParent(event: Event): void;
|
|
360
415
|
protected handleKeydown(event: KeyboardEvent): void;
|
|
416
|
+
private scheduleSubmenuKeyboardFocus;
|
|
417
|
+
private applySubmenuKeyboardFocus;
|
|
361
418
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuPopup, never>;
|
|
362
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPopup, "[rdxMenuPopup]", ["rdxMenuPopup"], {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "openAutoFocus": "openAutoFocus"; "closeAutoFocus": "closeAutoFocus"; }, never, never, true, [{ directive: typeof i1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof
|
|
419
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPopup, "[rdxMenuPopup]", ["rdxMenuPopup"], {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "openAutoFocus": "openAutoFocus"; "closeAutoFocus": "closeAutoFocus"; }, never, never, true, [{ directive: typeof i1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }, { directive: typeof i3.RdxFloatingFocusManager; inputs: {}; outputs: {}; }]>;
|
|
363
420
|
}
|
|
364
421
|
|
|
365
422
|
/**
|
|
@@ -435,11 +492,13 @@ declare class RdxMenuItem {
|
|
|
435
492
|
/** Emits when the item is selected. */
|
|
436
493
|
readonly onSelect: _angular_core.OutputEmitterRef<void>;
|
|
437
494
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
495
|
+
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
438
496
|
onFocus(): void;
|
|
439
497
|
onBlur(): void;
|
|
440
498
|
onPointerMove(event: PointerEvent): void;
|
|
441
499
|
onPointerLeave(event: PointerEvent): void;
|
|
442
500
|
onItemClick(): void;
|
|
501
|
+
onMouseUp(event: MouseEvent): void;
|
|
443
502
|
protected onActivate(event: Event): void;
|
|
444
503
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuItem, never>;
|
|
445
504
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuItem, "[rdxMenuItem]", ["rdxMenuItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; }, never, never, true, never>;
|
|
@@ -461,11 +520,13 @@ declare class RdxMenuLinkItem {
|
|
|
461
520
|
/** Emits when the item is selected. */
|
|
462
521
|
readonly onSelect: _angular_core.OutputEmitterRef<void>;
|
|
463
522
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
523
|
+
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
464
524
|
onFocus(): void;
|
|
465
525
|
onBlur(): void;
|
|
466
526
|
onPointerMove(event: PointerEvent): void;
|
|
467
527
|
onPointerLeave(event: PointerEvent): void;
|
|
468
528
|
onItemClick(event: MouseEvent): void;
|
|
529
|
+
onMouseUp(event: MouseEvent): void;
|
|
469
530
|
protected onActivate(event: Event): void;
|
|
470
531
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuLinkItem, never>;
|
|
471
532
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuLinkItem, "a[rdxMenuLinkItem]", ["rdxMenuLinkItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; }, never, never, true, never>;
|
|
@@ -475,6 +536,7 @@ declare class RdxMenuLinkItem {
|
|
|
475
536
|
* Groups related menu items together.
|
|
476
537
|
*/
|
|
477
538
|
declare class RdxMenuGroup {
|
|
539
|
+
readonly labelId: _angular_core.WritableSignal<string | undefined>;
|
|
478
540
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuGroup, never>;
|
|
479
541
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuGroup, "[rdxMenuGroup]", ["rdxMenuGroup"], {}, {}, never, never, true, never>;
|
|
480
542
|
}
|
|
@@ -483,6 +545,9 @@ declare class RdxMenuGroup {
|
|
|
483
545
|
* A label for a menu group.
|
|
484
546
|
*/
|
|
485
547
|
declare class RdxMenuGroupLabel {
|
|
548
|
+
private readonly groupContext;
|
|
549
|
+
readonly id: string;
|
|
550
|
+
constructor();
|
|
486
551
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuGroupLabel, never>;
|
|
487
552
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuGroupLabel, "[rdxMenuGroupLabel]", ["rdxMenuGroupLabel"], {}, {}, never, never, true, never>;
|
|
488
553
|
}
|
|
@@ -522,6 +587,7 @@ declare class RdxMenuCheckboxItem {
|
|
|
522
587
|
/** Emits when the checked state changes. */
|
|
523
588
|
readonly onCheckedChange: _angular_core.OutputEmitterRef<CheckedState>;
|
|
524
589
|
protected readonly highlighted: Signal<boolean>;
|
|
590
|
+
protected readonly effectiveDisabled: Signal<boolean>;
|
|
525
591
|
protected readonly isIndeterminate: typeof isIndeterminate;
|
|
526
592
|
protected readonly getCheckedState: typeof getCheckedState;
|
|
527
593
|
onFocus(): void;
|
|
@@ -529,6 +595,7 @@ declare class RdxMenuCheckboxItem {
|
|
|
529
595
|
onPointerMove(event: PointerEvent): void;
|
|
530
596
|
onPointerLeave(event: PointerEvent): void;
|
|
531
597
|
onItemClick(): void;
|
|
598
|
+
onMouseUp(event: MouseEvent): void;
|
|
532
599
|
protected onActivate(event: Event): void;
|
|
533
600
|
private toggleChecked;
|
|
534
601
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuCheckboxItem, never>;
|
|
@@ -549,27 +616,35 @@ declare class RdxMenuCheckboxItemIndicator {
|
|
|
549
616
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuCheckboxItemIndicator, "[rdxMenuCheckboxItemIndicator]", ["rdxMenuCheckboxItemIndicator"], { "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
550
617
|
}
|
|
551
618
|
|
|
552
|
-
interface RdxMenuRadioGroupContext {
|
|
553
|
-
value: Signal<
|
|
554
|
-
|
|
619
|
+
interface RdxMenuRadioGroupContext<T = unknown> {
|
|
620
|
+
value: Signal<T | undefined>;
|
|
621
|
+
disabled: Signal<boolean>;
|
|
622
|
+
selectValue: (value: T) => void;
|
|
555
623
|
}
|
|
556
|
-
declare const injectRdxMenuRadioGroupContext: _radix_ng_primitives_core.InjectContext<RdxMenuRadioGroupContext
|
|
557
|
-
declare const provideRdxMenuRadioGroupContext: (useFactory: () => RdxMenuRadioGroupContext) => _angular_core.Provider;
|
|
624
|
+
declare const injectRdxMenuRadioGroupContext: _radix_ng_primitives_core.InjectContext<RdxMenuRadioGroupContext<unknown>>;
|
|
625
|
+
declare const provideRdxMenuRadioGroupContext: (useFactory: () => RdxMenuRadioGroupContext<unknown>) => _angular_core.Provider;
|
|
558
626
|
/**
|
|
559
627
|
* Groups radio items in a menu.
|
|
560
628
|
*/
|
|
561
|
-
declare class RdxMenuRadioGroup {
|
|
629
|
+
declare class RdxMenuRadioGroup<T = unknown> {
|
|
630
|
+
private hasAppliedDefaultValue;
|
|
562
631
|
/**
|
|
563
632
|
* The currently selected value.
|
|
564
633
|
*/
|
|
565
|
-
readonly value: _angular_core.ModelSignal<
|
|
634
|
+
readonly value: _angular_core.ModelSignal<T | undefined>;
|
|
635
|
+
/** The initially selected value for uncontrolled usage. */
|
|
636
|
+
readonly defaultValue: _angular_core.InputSignal<T | undefined>;
|
|
637
|
+
/** Whether all radio items in the group are disabled. */
|
|
638
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
566
639
|
/**
|
|
567
640
|
* Emits when the selected value changes.
|
|
568
641
|
*/
|
|
569
|
-
readonly onValueChange: _angular_core.OutputEmitterRef<
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
642
|
+
readonly onValueChange: _angular_core.OutputEmitterRef<T>;
|
|
643
|
+
readonly labelId: _angular_core.WritableSignal<string | undefined>;
|
|
644
|
+
constructor();
|
|
645
|
+
selectValue(newValue: T): void;
|
|
646
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRadioGroup<any>, never>;
|
|
647
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRadioGroup<any>, "[rdxMenuRadioGroup]", ["rdxMenuRadioGroup"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
|
|
573
648
|
}
|
|
574
649
|
|
|
575
650
|
interface RdxMenuRadioItemContext {
|
|
@@ -580,13 +655,13 @@ declare const provideRdxMenuRadioItemContext: (useFactory: () => RdxMenuRadioIte
|
|
|
580
655
|
/**
|
|
581
656
|
* A radio item within a menu radio group.
|
|
582
657
|
*/
|
|
583
|
-
declare class RdxMenuRadioItem {
|
|
658
|
+
declare class RdxMenuRadioItem<T = unknown> {
|
|
584
659
|
private readonly rootContext;
|
|
585
660
|
private readonly radioGroupContext;
|
|
586
661
|
private readonly elementRef;
|
|
587
662
|
private readonly isFocused;
|
|
588
663
|
/** The value of this radio item. */
|
|
589
|
-
readonly value: _angular_core.InputSignal<
|
|
664
|
+
readonly value: _angular_core.InputSignal<T>;
|
|
590
665
|
/** Whether this item is disabled. */
|
|
591
666
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
592
667
|
/** Whether selecting closes the menu. Defaults to false — radio items stay open. */
|
|
@@ -594,19 +669,21 @@ declare class RdxMenuRadioItem {
|
|
|
594
669
|
/** Explicit typeahead label. When set, overrides textContent for character search. */
|
|
595
670
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
596
671
|
/** Emits when this item is selected. */
|
|
597
|
-
readonly onSelect: _angular_core.OutputEmitterRef<
|
|
672
|
+
readonly onSelect: _angular_core.OutputEmitterRef<T>;
|
|
598
673
|
readonly checked: Signal<boolean>;
|
|
599
674
|
protected readonly highlighted: Signal<boolean>;
|
|
675
|
+
protected readonly effectiveDisabled: Signal<boolean>;
|
|
600
676
|
protected readonly getCheckedState: typeof getCheckedState;
|
|
601
677
|
onFocus(): void;
|
|
602
678
|
onBlur(): void;
|
|
603
679
|
onPointerMove(event: PointerEvent): void;
|
|
604
680
|
onPointerLeave(event: PointerEvent): void;
|
|
605
681
|
onItemClick(): void;
|
|
682
|
+
onMouseUp(event: MouseEvent): void;
|
|
606
683
|
protected onActivate(event: Event): void;
|
|
607
684
|
private selectItem;
|
|
608
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRadioItem
|
|
609
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRadioItem
|
|
685
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRadioItem<any>, never>;
|
|
686
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRadioItem<any>, "[rdxMenuRadioItem]", ["rdxMenuRadioItem"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; }, never, never, true, never>;
|
|
610
687
|
}
|
|
611
688
|
|
|
612
689
|
/**
|
|
@@ -623,11 +700,17 @@ declare class RdxMenuRadioItemIndicator {
|
|
|
623
700
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRadioItemIndicator, "[rdxMenuRadioItemIndicator]", ["rdxMenuRadioItemIndicator"], { "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
624
701
|
}
|
|
625
702
|
|
|
703
|
+
interface RdxMenuGroupContext {
|
|
704
|
+
labelId: WritableSignal<string | undefined>;
|
|
705
|
+
}
|
|
706
|
+
declare const injectRdxMenuGroupContext: _radix_ng_primitives_core.InjectContext<RdxMenuGroupContext>;
|
|
707
|
+
declare const provideRdxMenuGroupContext: (useFactory: () => RdxMenuGroupContext) => _angular_core.Provider;
|
|
708
|
+
|
|
626
709
|
declare class RdxMenuModule {
|
|
627
710
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuModule, never>;
|
|
628
711
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxMenuModule, never, [typeof RdxMenuRoot, typeof RdxMenuTrigger, typeof RdxMenuSubTrigger, typeof RdxMenuPortal, typeof RdxMenuPortalMisuseGuard, typeof RdxMenuPositioner, typeof RdxMenuPopup, typeof RdxMenuViewport, typeof RdxMenuBackdrop, typeof RdxMenuArrow, typeof RdxMenuItem, typeof RdxMenuLinkItem, typeof RdxMenuGroup, typeof RdxMenuGroupLabel, typeof RdxMenuSeparator, typeof RdxMenuCheckboxItem, typeof RdxMenuCheckboxItemIndicator, typeof RdxMenuRadioGroup, typeof RdxMenuRadioItem, typeof RdxMenuRadioItemIndicator], [typeof RdxMenuRoot, typeof RdxMenuTrigger, typeof RdxMenuSubTrigger, typeof RdxMenuPortal, typeof RdxMenuPortalMisuseGuard, typeof RdxMenuPositioner, typeof RdxMenuPopup, typeof RdxMenuViewport, typeof RdxMenuBackdrop, typeof RdxMenuArrow, typeof RdxMenuItem, typeof RdxMenuLinkItem, typeof RdxMenuGroup, typeof RdxMenuGroupLabel, typeof RdxMenuSeparator, typeof RdxMenuCheckboxItem, typeof RdxMenuCheckboxItemIndicator, typeof RdxMenuRadioGroup, typeof RdxMenuRadioItem, typeof RdxMenuRadioItemIndicator]>;
|
|
629
712
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxMenuModule>;
|
|
630
713
|
}
|
|
631
714
|
|
|
632
|
-
export { RdxMenuArrow, RdxMenuBackdrop, RdxMenuCheckboxItem, RdxMenuCheckboxItemIndicator, RdxMenuGroup, RdxMenuGroupLabel, RdxMenuItem, RdxMenuLinkItem, RdxMenuModule, RdxMenuPopup, RdxMenuPortal, RdxMenuPortalMisuseGuard, RdxMenuPositioner, RdxMenuRadioGroup, RdxMenuRadioItem, RdxMenuRadioItemIndicator, RdxMenuRoot, RdxMenuSeparator, RdxMenuSubTrigger, RdxMenuTrigger, RdxMenuViewport, getCheckedState, injectRdxMenuCheckboxItemContext, injectRdxMenuRadioGroupContext, injectRdxMenuRadioItemContext, injectRdxMenuRootContext, isIndeterminate, provideRdxMenuCheckboxItemContext, provideRdxMenuRadioGroupContext, provideRdxMenuRadioItemContext, provideRdxMenuRootContext };
|
|
633
|
-
export type { CheckedState, RdxMenuAutoFocus, RdxMenuAutoFocusInput, RdxMenuCheckboxItemContext, RdxMenuOrientation, RdxMenuRadioGroupContext, RdxMenuRadioItemContext, RdxMenuRootContext, RdxMenuTransitionStatus, RdxMenuTriggerInteraction, RdxMenuTriggerInteractionHandler };
|
|
715
|
+
export { RdxMenuArrow, RdxMenuBackdrop, RdxMenuCheckboxItem, RdxMenuCheckboxItemIndicator, RdxMenuGroup, RdxMenuGroupLabel, RdxMenuItem, RdxMenuLinkItem, RdxMenuModule, RdxMenuPopup, RdxMenuPortal, RdxMenuPortalMisuseGuard, RdxMenuPositioner, RdxMenuRadioGroup, RdxMenuRadioItem, RdxMenuRadioItemIndicator, RdxMenuRoot, RdxMenuSeparator, RdxMenuSubTrigger, RdxMenuTrigger, RdxMenuViewport, getCheckedState, injectRdxMenuCheckboxItemContext, injectRdxMenuGroupContext, injectRdxMenuRadioGroupContext, injectRdxMenuRadioItemContext, injectRdxMenuRootContext, isIndeterminate, provideRdxMenuCheckboxItemContext, provideRdxMenuGroupContext, provideRdxMenuRadioGroupContext, provideRdxMenuRadioItemContext, provideRdxMenuRootContext };
|
|
716
|
+
export type { CheckedState, RdxMenuAutoFocus, RdxMenuAutoFocusInput, RdxMenuCheckboxItemContext, RdxMenuGroupContext, RdxMenuOpenChange, RdxMenuOpenChangeEventDetails, RdxMenuOpenChangeReason, RdxMenuOrientation, RdxMenuParentType, RdxMenuRadioGroupContext, RdxMenuRadioItemContext, RdxMenuRootContext, RdxMenuTransitionStatus, RdxMenuTriggerInteraction, RdxMenuTriggerInteractionHandler };
|