@radix-ng/primitives 1.0.0-beta.3 → 1.0.0-beta.5
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-checkbox.mjs +33 -18
- package/fesm2022/radix-ng-primitives-checkbox.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 +1352 -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 +290 -120
- 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-editable.mjs +12 -7
- package/fesm2022/radix-ng-primitives-editable.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 +803 -0
- package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-focus-scope.mjs +305 -70
- package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +893 -289
- 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-number-field.mjs +7 -2
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +284 -212
- 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-radio.mjs +19 -14
- package/fesm2022/radix-ng-primitives-radio.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 +241 -164
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +262 -29
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-stepper.mjs +16 -10
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +10 -5
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +15 -10
- package/fesm2022/radix-ng-primitives-tabs.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 +14 -7
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +12 -6
- package/fesm2022/radix-ng-primitives-toggle.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 +251 -143
- 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-checkbox.d.ts +27 -15
- 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 +764 -14
- package/types/radix-ng-primitives-date-field.d.ts +3 -2
- package/types/radix-ng-primitives-dialog.d.ts +88 -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-editable.d.ts +11 -5
- package/types/radix-ng-primitives-field.d.ts +1 -0
- package/types/radix-ng-primitives-floating-focus-manager.d.ts +272 -0
- package/types/radix-ng-primitives-focus-scope.d.ts +132 -1
- package/types/radix-ng-primitives-menu.d.ts +192 -103
- package/types/radix-ng-primitives-navigation-menu.d.ts +37 -75
- package/types/radix-ng-primitives-number-field.d.ts +8 -3
- package/types/radix-ng-primitives-popover.d.ts +71 -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-radio.d.ts +13 -6
- 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 +142 -109
- package/types/radix-ng-primitives-slider.d.ts +64 -12
- package/types/radix-ng-primitives-stepper.d.ts +15 -7
- package/types/radix-ng-primitives-switch.d.ts +10 -4
- package/types/radix-ng-primitives-tabs.d.ts +12 -6
- 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 +15 -8
- package/types/radix-ng-primitives-toggle.d.ts +10 -3
- package/types/radix-ng-primitives-toolbar.d.ts +3 -2
- package/types/radix-ng-primitives-tooltip.d.ts +61 -80
|
@@ -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 _radix_ng_primitives_floating_focus_manager 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,87 @@ 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>;
|
|
74
|
+
beforeContentFocusGuard: Signal<HTMLElement | null>;
|
|
38
75
|
transitionStatus: Signal<RdxMenuTransitionStatus>;
|
|
39
|
-
close: () => void;
|
|
40
|
-
|
|
41
|
-
|
|
76
|
+
close: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
77
|
+
/** Close this menu and every ancestor — used by item selection (the whole menu dismisses). */
|
|
78
|
+
closeEntireMenu: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
79
|
+
toggle: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
80
|
+
show: (autoFocus?: RdxMenuAutoFocusInput, reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
42
81
|
/** Open the menu without moving focus into the popup (used for menubar hover-switching). */
|
|
43
|
-
showWithoutAutoFocus: () => void;
|
|
82
|
+
showWithoutAutoFocus: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
44
83
|
registerTrigger: (el: HTMLElement) => () => void;
|
|
45
84
|
registerPopup: (el: HTMLElement) => () => void;
|
|
85
|
+
setBeforeContentFocusGuard: (element: HTMLElement | null) => void;
|
|
46
86
|
registerTransitionElement: (element: HTMLElement) => () => void;
|
|
47
87
|
registerPopupArrowNavigationHandler: (handler: (offset: 1 | -1) => boolean) => () => void;
|
|
48
88
|
registerTriggerInteractionHandler: (handler: RdxMenuTriggerInteractionHandler) => () => void;
|
|
49
89
|
markAsSubmenu: () => void;
|
|
90
|
+
/** Marks this menu as the root of a Context Menu (called by `RdxContextMenuRoot`). */
|
|
91
|
+
markAsContextMenu: () => void;
|
|
92
|
+
setAllowMouseUpTrigger: (value: boolean) => void;
|
|
50
93
|
closeParent: () => void;
|
|
51
94
|
handlePopupArrowNavigation: (offset: 1 | -1) => boolean;
|
|
52
95
|
handleTriggerInteraction: (interaction: RdxMenuTriggerInteraction) => boolean;
|
|
53
96
|
}
|
|
54
97
|
type RdxMenuTriggerInteraction = {
|
|
55
98
|
type: 'click';
|
|
99
|
+
} | {
|
|
100
|
+
type: 'enter';
|
|
101
|
+
event: Event;
|
|
102
|
+
} | {
|
|
103
|
+
type: 'space';
|
|
104
|
+
event: Event;
|
|
56
105
|
} | {
|
|
57
106
|
type: 'pointerenter';
|
|
58
107
|
event: PointerEvent;
|
|
@@ -86,6 +135,14 @@ declare const provideRdxMenuRootContext: (useFactory: () => RdxMenuRootContext)
|
|
|
86
135
|
*/
|
|
87
136
|
declare class RdxMenuRoot {
|
|
88
137
|
private readonly popper;
|
|
138
|
+
private readonly parentRoot;
|
|
139
|
+
private readonly providedDirection;
|
|
140
|
+
/**
|
|
141
|
+
* The shared per-popup floating context (ADR 0015 §1) — `open` mirrors this menu's open state, the
|
|
142
|
+
* trigger registry is bridged from {@link registerTrigger}, and the reference / floating elements are
|
|
143
|
+
* set by the trigger / popup. The new dismissal engine reads this once the popup migrates.
|
|
144
|
+
*/
|
|
145
|
+
readonly floatingContext: RdxFloatingRootContext;
|
|
89
146
|
/** Shared open/close transition state machine (completes on the real animationend). */
|
|
90
147
|
private readonly transition;
|
|
91
148
|
private registeredTrigger;
|
|
@@ -98,7 +155,10 @@ declare class RdxMenuRoot {
|
|
|
98
155
|
readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
99
156
|
/** Whether interactions with the menu are disabled. */
|
|
100
157
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
101
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* Whether the menu should block outside interactions and page scrolling.
|
|
160
|
+
* Nested menus are always non-modal.
|
|
161
|
+
*/
|
|
102
162
|
readonly modal: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
103
163
|
/** Whether keyboard navigation wraps at list boundaries. */
|
|
104
164
|
readonly loopFocus: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
@@ -106,26 +166,58 @@ declare class RdxMenuRoot {
|
|
|
106
166
|
readonly highlightItemOnHover: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
107
167
|
/** The menu orientation. */
|
|
108
168
|
readonly orientation: _angular_core.InputSignal<RdxMenuOrientation>;
|
|
169
|
+
/** Text direction for submenu arrow-key behavior. Inherited by nested submenu roots. */
|
|
170
|
+
readonly dirInput: _angular_core.InputSignal<Direction | undefined>;
|
|
109
171
|
/** Whether pressing Escape inside a submenu closes the whole menu chain. */
|
|
110
172
|
readonly closeParentOnEsc: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
111
173
|
/** Emits when the open state changes. */
|
|
112
|
-
readonly onOpenChange: _angular_core.OutputEmitterRef<
|
|
174
|
+
readonly onOpenChange: _angular_core.OutputEmitterRef<RdxMenuOpenChange>;
|
|
113
175
|
/** Emits when the open/close CSS transition or animation finishes. */
|
|
114
176
|
readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
|
|
115
177
|
readonly trigger: _angular_core.WritableSignal<HTMLElement | undefined>;
|
|
116
178
|
readonly popupElement: _angular_core.WritableSignal<HTMLElement | undefined>;
|
|
179
|
+
readonly beforeContentFocusGuard: _angular_core.WritableSignal<HTMLElement | null>;
|
|
117
180
|
readonly transitionStatus: Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
|
|
118
181
|
/** Whether the popup grabs focus when it opens. Set false for menubar hover-switching. */
|
|
119
182
|
readonly autoFocus: _angular_core.WritableSignal<RdxMenuAutoFocus>;
|
|
120
183
|
readonly isSubmenu: _angular_core.WritableSignal<boolean>;
|
|
184
|
+
/** Set by `RdxContextMenuRoot` (it composes this root) — distinguishes a context menu from a dropdown. */
|
|
185
|
+
readonly isContextMenu: _angular_core.WritableSignal<boolean>;
|
|
121
186
|
readonly hasTriggerInteractionHandler: _angular_core.WritableSignal<boolean>;
|
|
187
|
+
private readonly preventUnmountOnClose;
|
|
188
|
+
/**
|
|
189
|
+
* What kind of parent this menu has (Base UI `MenuParent.type`). A submenu wins over everything (its
|
|
190
|
+
* parent is a menu); otherwise a context-menu marker, then a menubar (detected by the trigger
|
|
191
|
+
* interaction handler the menubar registers), else a standalone dropdown.
|
|
192
|
+
*/
|
|
193
|
+
readonly parentType: Signal<RdxMenuParentType>;
|
|
194
|
+
/** The reason for the most recent open-change (Base UI open-change `reason`), for the per-kind policy. */
|
|
195
|
+
readonly lastOpenChangeReason: _angular_core.WritableSignal<RdxMenuOpenChangeReason>;
|
|
196
|
+
private readonly localAllowMouseUpTrigger;
|
|
197
|
+
readonly allowMouseUpTrigger: Signal<boolean>;
|
|
198
|
+
/** Whether the current open was initiated by **touch** (ADR 0016 §3 — gates the anchored scroll lock). */
|
|
199
|
+
readonly openedByTouch: _angular_core.WritableSignal<boolean>;
|
|
200
|
+
readonly openInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
|
|
201
|
+
readonly closeInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
|
|
202
|
+
readonly effectiveDisabled: Signal<boolean>;
|
|
203
|
+
readonly dir: Signal<Direction>;
|
|
204
|
+
readonly effectiveModal: Signal<boolean>;
|
|
122
205
|
readonly state: Signal<"open" | "closed">;
|
|
206
|
+
readonly present: Signal<boolean>;
|
|
123
207
|
constructor();
|
|
124
|
-
show(autoFocus?: RdxMenuAutoFocusInput): void;
|
|
125
|
-
close(): void;
|
|
126
|
-
toggle(): void;
|
|
208
|
+
show(autoFocus?: RdxMenuAutoFocusInput, reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
209
|
+
close(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
210
|
+
toggle(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
211
|
+
markAsContextMenu(): void;
|
|
212
|
+
setAllowMouseUpTrigger(value: boolean): void;
|
|
213
|
+
/**
|
|
214
|
+
* Close this menu **and every ancestor menu** in the chain. Selecting an item dismisses the whole
|
|
215
|
+
* menu, not just the innermost submenu (a submenu's `close()` would leave its parents open).
|
|
216
|
+
*/
|
|
217
|
+
closeEntireMenu(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
127
218
|
registerTrigger(el: HTMLElement): () => void;
|
|
128
219
|
registerPopup(el: HTMLElement): () => void;
|
|
220
|
+
setBeforeContentFocusGuard(element: HTMLElement | null): void;
|
|
129
221
|
registerTransitionElement(element: HTMLElement): () => void;
|
|
130
222
|
registerPopupArrowNavigationHandler(handler: (offset: 1 | -1) => boolean): () => void;
|
|
131
223
|
handlePopupArrowNavigation(offset: 1 | -1): boolean;
|
|
@@ -133,8 +225,9 @@ declare class RdxMenuRoot {
|
|
|
133
225
|
handleTriggerInteraction(interaction: RdxMenuTriggerInteraction): boolean;
|
|
134
226
|
markAsSubmenu(): void;
|
|
135
227
|
closeParent(): void;
|
|
228
|
+
private createOpenChangeEvent;
|
|
136
229
|
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: {}; }]>;
|
|
230
|
+
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
231
|
}
|
|
139
232
|
|
|
140
233
|
/**
|
|
@@ -144,9 +237,14 @@ declare class RdxMenuTrigger {
|
|
|
144
237
|
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext;
|
|
145
238
|
private readonly elementRef;
|
|
146
239
|
private readonly destroyRef;
|
|
147
|
-
private readonly
|
|
240
|
+
private readonly isBrowser;
|
|
148
241
|
private openTimer;
|
|
149
242
|
private closeTimer;
|
|
243
|
+
private allowMouseUpTriggerTimer;
|
|
244
|
+
private lastPointer;
|
|
245
|
+
private openedByHover;
|
|
246
|
+
private ignoreNextClick;
|
|
247
|
+
private readonly handleDocumentMouseUp;
|
|
150
248
|
/** Whether this trigger should be treated as a native button. Auto-detected for `<button>`. */
|
|
151
249
|
readonly nativeButton: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
152
250
|
/** Whether this trigger is disabled. */
|
|
@@ -159,8 +257,11 @@ declare class RdxMenuTrigger {
|
|
|
159
257
|
readonly closeDelay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
|
|
160
258
|
protected readonly nativeButtonState: _angular_core.Signal<boolean>;
|
|
161
259
|
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
260
|
+
protected readonly triggerInteraction: _radix_ng_primitives_floating_focus_manager.RdxTriggerInteraction;
|
|
162
261
|
constructor();
|
|
163
|
-
protected
|
|
262
|
+
protected handleMouseDown(event: MouseEvent): void;
|
|
263
|
+
protected handlePointerDown(event: PointerEvent): void;
|
|
264
|
+
protected handleClick(event: MouseEvent): void;
|
|
164
265
|
protected handleArrowDown(event: Event): void;
|
|
165
266
|
protected handleArrowUp(event: Event): void;
|
|
166
267
|
protected handleArrowLeft(event: Event): void;
|
|
@@ -171,8 +272,13 @@ declare class RdxMenuTrigger {
|
|
|
171
272
|
protected handleKeyboardToggle(event: Event): void;
|
|
172
273
|
protected handlePointerEnter(event: PointerEvent): void;
|
|
173
274
|
protected handlePointerLeave(event: PointerEvent): void;
|
|
275
|
+
protected handlePointerMove(event: PointerEvent): void;
|
|
276
|
+
private scheduleClose;
|
|
174
277
|
private clearOpenTimer;
|
|
175
278
|
private clearCloseTimer;
|
|
279
|
+
private armMouseUpGuard;
|
|
280
|
+
private clearMouseUpGuard;
|
|
281
|
+
private restoreKeyboardPopupFocus;
|
|
176
282
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuTrigger, never>;
|
|
177
283
|
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
284
|
}
|
|
@@ -198,6 +304,7 @@ declare class RdxMenuSubTrigger {
|
|
|
198
304
|
private lastPointer;
|
|
199
305
|
/** Whether the current open was initiated by hover (vs keyboard / click). */
|
|
200
306
|
private openedByHover;
|
|
307
|
+
private ignoreNextKeyboardClick;
|
|
201
308
|
/** Whether this trigger (and therefore the submenu) is disabled. */
|
|
202
309
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
203
310
|
/** Whether this trigger should be treated as a native button. Auto-detected for `<button>`. */
|
|
@@ -212,20 +319,24 @@ declare class RdxMenuSubTrigger {
|
|
|
212
319
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
213
320
|
/** Highlighted when focused OR while the submenu is open. */
|
|
214
321
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
322
|
+
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
215
323
|
protected readonly nativeButtonState: _angular_core.Signal<boolean>;
|
|
216
324
|
constructor();
|
|
217
325
|
private scheduleClose;
|
|
218
326
|
protected onFocus(): void;
|
|
219
327
|
protected onBlur(): void;
|
|
220
|
-
protected onClick(): void;
|
|
328
|
+
protected onClick(event: MouseEvent): void;
|
|
329
|
+
protected onEnter(event: Event): void;
|
|
221
330
|
protected onArrowRight(event: Event): void;
|
|
331
|
+
protected onArrowLeft(event: Event): void;
|
|
222
332
|
protected onPointerMove(event: PointerEvent): void;
|
|
223
333
|
protected onPointerLeave(): void;
|
|
224
334
|
protected clearHighlight(): void;
|
|
225
335
|
private closeSiblingSubmenus;
|
|
226
336
|
private clearSiblingHighlights;
|
|
337
|
+
private focusFirstSubmenuItem;
|
|
227
338
|
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: {}; }
|
|
339
|
+
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
340
|
}
|
|
230
341
|
|
|
231
342
|
/**
|
|
@@ -253,68 +364,17 @@ declare class RdxMenuPortalMisuseGuard {
|
|
|
253
364
|
|
|
254
365
|
/**
|
|
255
366
|
* Positions the menu against its trigger.
|
|
367
|
+
*
|
|
368
|
+
* A "thin" positioner (ADR 0012): it inherits the popper positioning surface (inputs, `placed`
|
|
369
|
+
* output, unified vars + placement attrs) from {@link RdxPopperContentWrapper} and adds the menu
|
|
370
|
+
* defaults, the open/closed state attributes, and the deprecated `--radix-menu-*` aliases.
|
|
256
371
|
*/
|
|
257
|
-
declare class RdxMenuPositioner {
|
|
372
|
+
declare class RdxMenuPositioner extends RdxPopperContentWrapper {
|
|
258
373
|
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>;
|
|
374
|
+
protected readonly legacyVars: Record<string, string>;
|
|
375
|
+
constructor();
|
|
316
376
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuPositioner, never>;
|
|
317
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPositioner, "[rdxMenuPositioner]", ["rdxMenuPositioner"], {
|
|
377
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPositioner, "[rdxMenuPositioner]", ["rdxMenuPositioner"], {}, {}, never, never, true, never>;
|
|
318
378
|
}
|
|
319
379
|
|
|
320
380
|
/**
|
|
@@ -322,11 +382,12 @@ declare class RdxMenuPositioner {
|
|
|
322
382
|
*/
|
|
323
383
|
declare class RdxMenuPopup {
|
|
324
384
|
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext;
|
|
325
|
-
private readonly
|
|
385
|
+
private readonly floatingContext;
|
|
386
|
+
private readonly registration;
|
|
387
|
+
private readonly focusManager;
|
|
326
388
|
private readonly focusScope;
|
|
327
389
|
private readonly wrapper;
|
|
328
390
|
private readonly elementRef;
|
|
329
|
-
private readonly dismissableLayersContext;
|
|
330
391
|
private search;
|
|
331
392
|
private searchTimer;
|
|
332
393
|
protected readonly align: _angular_core.Signal<"end" | "start" | "center" | undefined>;
|
|
@@ -334,19 +395,19 @@ declare class RdxMenuPopup {
|
|
|
334
395
|
/**
|
|
335
396
|
* Event handler called when the escape key is pressed. Can be prevented.
|
|
336
397
|
*/
|
|
337
|
-
readonly escapeKeyDown: _angular_core.
|
|
398
|
+
readonly escapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
|
|
338
399
|
/**
|
|
339
400
|
* Event handler called when a pointerdown event happens outside of the popup. Can be prevented.
|
|
340
401
|
*/
|
|
341
|
-
readonly pointerDownOutside: _angular_core.
|
|
402
|
+
readonly pointerDownOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent>;
|
|
342
403
|
/**
|
|
343
404
|
* Event handler called when focus moves outside of the popup. Can be prevented.
|
|
344
405
|
*/
|
|
345
|
-
readonly focusOutside: _angular_core.
|
|
406
|
+
readonly focusOutside: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
346
407
|
/**
|
|
347
408
|
* Event handler called when an interaction happens outside of the popup. Can be prevented.
|
|
348
409
|
*/
|
|
349
|
-
readonly interactOutside: _angular_core.
|
|
410
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent | FocusEvent>;
|
|
350
411
|
/**
|
|
351
412
|
* Event handler called before focus moves into the popup. Can be prevented.
|
|
352
413
|
*/
|
|
@@ -358,8 +419,10 @@ declare class RdxMenuPopup {
|
|
|
358
419
|
constructor();
|
|
359
420
|
protected handleCloseParent(event: Event): void;
|
|
360
421
|
protected handleKeydown(event: KeyboardEvent): void;
|
|
422
|
+
private scheduleSubmenuKeyboardFocus;
|
|
423
|
+
private applySubmenuKeyboardFocus;
|
|
361
424
|
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
|
|
425
|
+
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 _radix_ng_primitives_floating_focus_manager.RdxFloatingFocusManager; inputs: {}; outputs: {}; }]>;
|
|
363
426
|
}
|
|
364
427
|
|
|
365
428
|
/**
|
|
@@ -435,11 +498,13 @@ declare class RdxMenuItem {
|
|
|
435
498
|
/** Emits when the item is selected. */
|
|
436
499
|
readonly onSelect: _angular_core.OutputEmitterRef<void>;
|
|
437
500
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
501
|
+
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
438
502
|
onFocus(): void;
|
|
439
503
|
onBlur(): void;
|
|
440
504
|
onPointerMove(event: PointerEvent): void;
|
|
441
505
|
onPointerLeave(event: PointerEvent): void;
|
|
442
506
|
onItemClick(): void;
|
|
507
|
+
onMouseUp(event: MouseEvent): void;
|
|
443
508
|
protected onActivate(event: Event): void;
|
|
444
509
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuItem, never>;
|
|
445
510
|
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 +526,13 @@ declare class RdxMenuLinkItem {
|
|
|
461
526
|
/** Emits when the item is selected. */
|
|
462
527
|
readonly onSelect: _angular_core.OutputEmitterRef<void>;
|
|
463
528
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
529
|
+
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
464
530
|
onFocus(): void;
|
|
465
531
|
onBlur(): void;
|
|
466
532
|
onPointerMove(event: PointerEvent): void;
|
|
467
533
|
onPointerLeave(event: PointerEvent): void;
|
|
468
534
|
onItemClick(event: MouseEvent): void;
|
|
535
|
+
onMouseUp(event: MouseEvent): void;
|
|
469
536
|
protected onActivate(event: Event): void;
|
|
470
537
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuLinkItem, never>;
|
|
471
538
|
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 +542,7 @@ declare class RdxMenuLinkItem {
|
|
|
475
542
|
* Groups related menu items together.
|
|
476
543
|
*/
|
|
477
544
|
declare class RdxMenuGroup {
|
|
545
|
+
readonly labelId: _angular_core.WritableSignal<string | undefined>;
|
|
478
546
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuGroup, never>;
|
|
479
547
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuGroup, "[rdxMenuGroup]", ["rdxMenuGroup"], {}, {}, never, never, true, never>;
|
|
480
548
|
}
|
|
@@ -483,6 +551,9 @@ declare class RdxMenuGroup {
|
|
|
483
551
|
* A label for a menu group.
|
|
484
552
|
*/
|
|
485
553
|
declare class RdxMenuGroupLabel {
|
|
554
|
+
private readonly groupContext;
|
|
555
|
+
readonly id: string;
|
|
556
|
+
constructor();
|
|
486
557
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuGroupLabel, never>;
|
|
487
558
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuGroupLabel, "[rdxMenuGroupLabel]", ["rdxMenuGroupLabel"], {}, {}, never, never, true, never>;
|
|
488
559
|
}
|
|
@@ -522,6 +593,7 @@ declare class RdxMenuCheckboxItem {
|
|
|
522
593
|
/** Emits when the checked state changes. */
|
|
523
594
|
readonly onCheckedChange: _angular_core.OutputEmitterRef<CheckedState>;
|
|
524
595
|
protected readonly highlighted: Signal<boolean>;
|
|
596
|
+
protected readonly effectiveDisabled: Signal<boolean>;
|
|
525
597
|
protected readonly isIndeterminate: typeof isIndeterminate;
|
|
526
598
|
protected readonly getCheckedState: typeof getCheckedState;
|
|
527
599
|
onFocus(): void;
|
|
@@ -529,6 +601,7 @@ declare class RdxMenuCheckboxItem {
|
|
|
529
601
|
onPointerMove(event: PointerEvent): void;
|
|
530
602
|
onPointerLeave(event: PointerEvent): void;
|
|
531
603
|
onItemClick(): void;
|
|
604
|
+
onMouseUp(event: MouseEvent): void;
|
|
532
605
|
protected onActivate(event: Event): void;
|
|
533
606
|
private toggleChecked;
|
|
534
607
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuCheckboxItem, never>;
|
|
@@ -549,27 +622,35 @@ declare class RdxMenuCheckboxItemIndicator {
|
|
|
549
622
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuCheckboxItemIndicator, "[rdxMenuCheckboxItemIndicator]", ["rdxMenuCheckboxItemIndicator"], { "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
550
623
|
}
|
|
551
624
|
|
|
552
|
-
interface RdxMenuRadioGroupContext {
|
|
553
|
-
value: Signal<
|
|
554
|
-
|
|
625
|
+
interface RdxMenuRadioGroupContext<T = unknown> {
|
|
626
|
+
value: Signal<T | undefined>;
|
|
627
|
+
disabled: Signal<boolean>;
|
|
628
|
+
selectValue: (value: T) => void;
|
|
555
629
|
}
|
|
556
|
-
declare const injectRdxMenuRadioGroupContext: _radix_ng_primitives_core.InjectContext<RdxMenuRadioGroupContext
|
|
557
|
-
declare const provideRdxMenuRadioGroupContext: (useFactory: () => RdxMenuRadioGroupContext) => _angular_core.Provider;
|
|
630
|
+
declare const injectRdxMenuRadioGroupContext: _radix_ng_primitives_core.InjectContext<RdxMenuRadioGroupContext<unknown>>;
|
|
631
|
+
declare const provideRdxMenuRadioGroupContext: (useFactory: () => RdxMenuRadioGroupContext<unknown>) => _angular_core.Provider;
|
|
558
632
|
/**
|
|
559
633
|
* Groups radio items in a menu.
|
|
560
634
|
*/
|
|
561
|
-
declare class RdxMenuRadioGroup {
|
|
635
|
+
declare class RdxMenuRadioGroup<T = unknown> {
|
|
636
|
+
private hasAppliedDefaultValue;
|
|
562
637
|
/**
|
|
563
638
|
* The currently selected value.
|
|
564
639
|
*/
|
|
565
|
-
readonly value: _angular_core.ModelSignal<
|
|
640
|
+
readonly value: _angular_core.ModelSignal<T | undefined>;
|
|
641
|
+
/** The initially selected value for uncontrolled usage. */
|
|
642
|
+
readonly defaultValue: _angular_core.InputSignal<T | undefined>;
|
|
643
|
+
/** Whether all radio items in the group are disabled. */
|
|
644
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
566
645
|
/**
|
|
567
646
|
* Emits when the selected value changes.
|
|
568
647
|
*/
|
|
569
|
-
readonly onValueChange: _angular_core.OutputEmitterRef<
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
648
|
+
readonly onValueChange: _angular_core.OutputEmitterRef<T>;
|
|
649
|
+
readonly labelId: _angular_core.WritableSignal<string | undefined>;
|
|
650
|
+
constructor();
|
|
651
|
+
selectValue(newValue: T): void;
|
|
652
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRadioGroup<any>, never>;
|
|
653
|
+
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
654
|
}
|
|
574
655
|
|
|
575
656
|
interface RdxMenuRadioItemContext {
|
|
@@ -580,13 +661,13 @@ declare const provideRdxMenuRadioItemContext: (useFactory: () => RdxMenuRadioIte
|
|
|
580
661
|
/**
|
|
581
662
|
* A radio item within a menu radio group.
|
|
582
663
|
*/
|
|
583
|
-
declare class RdxMenuRadioItem {
|
|
664
|
+
declare class RdxMenuRadioItem<T = unknown> {
|
|
584
665
|
private readonly rootContext;
|
|
585
666
|
private readonly radioGroupContext;
|
|
586
667
|
private readonly elementRef;
|
|
587
668
|
private readonly isFocused;
|
|
588
669
|
/** The value of this radio item. */
|
|
589
|
-
readonly value: _angular_core.InputSignal<
|
|
670
|
+
readonly value: _angular_core.InputSignal<T>;
|
|
590
671
|
/** Whether this item is disabled. */
|
|
591
672
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
592
673
|
/** Whether selecting closes the menu. Defaults to false — radio items stay open. */
|
|
@@ -594,19 +675,21 @@ declare class RdxMenuRadioItem {
|
|
|
594
675
|
/** Explicit typeahead label. When set, overrides textContent for character search. */
|
|
595
676
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
596
677
|
/** Emits when this item is selected. */
|
|
597
|
-
readonly onSelect: _angular_core.OutputEmitterRef<
|
|
678
|
+
readonly onSelect: _angular_core.OutputEmitterRef<T>;
|
|
598
679
|
readonly checked: Signal<boolean>;
|
|
599
680
|
protected readonly highlighted: Signal<boolean>;
|
|
681
|
+
protected readonly effectiveDisabled: Signal<boolean>;
|
|
600
682
|
protected readonly getCheckedState: typeof getCheckedState;
|
|
601
683
|
onFocus(): void;
|
|
602
684
|
onBlur(): void;
|
|
603
685
|
onPointerMove(event: PointerEvent): void;
|
|
604
686
|
onPointerLeave(event: PointerEvent): void;
|
|
605
687
|
onItemClick(): void;
|
|
688
|
+
onMouseUp(event: MouseEvent): void;
|
|
606
689
|
protected onActivate(event: Event): void;
|
|
607
690
|
private selectItem;
|
|
608
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRadioItem
|
|
609
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRadioItem
|
|
691
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRadioItem<any>, never>;
|
|
692
|
+
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
693
|
}
|
|
611
694
|
|
|
612
695
|
/**
|
|
@@ -623,11 +706,17 @@ declare class RdxMenuRadioItemIndicator {
|
|
|
623
706
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuRadioItemIndicator, "[rdxMenuRadioItemIndicator]", ["rdxMenuRadioItemIndicator"], { "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
624
707
|
}
|
|
625
708
|
|
|
709
|
+
interface RdxMenuGroupContext {
|
|
710
|
+
labelId: WritableSignal<string | undefined>;
|
|
711
|
+
}
|
|
712
|
+
declare const injectRdxMenuGroupContext: _radix_ng_primitives_core.InjectContext<RdxMenuGroupContext>;
|
|
713
|
+
declare const provideRdxMenuGroupContext: (useFactory: () => RdxMenuGroupContext) => _angular_core.Provider;
|
|
714
|
+
|
|
626
715
|
declare class RdxMenuModule {
|
|
627
716
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuModule, never>;
|
|
628
717
|
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
718
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxMenuModule>;
|
|
630
719
|
}
|
|
631
720
|
|
|
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 };
|
|
721
|
+
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 };
|
|
722
|
+
export type { CheckedState, RdxMenuAutoFocus, RdxMenuAutoFocusInput, RdxMenuCheckboxItemContext, RdxMenuGroupContext, RdxMenuOpenChange, RdxMenuOpenChangeEventDetails, RdxMenuOpenChangeReason, RdxMenuOrientation, RdxMenuParentType, RdxMenuRadioGroupContext, RdxMenuRadioItemContext, RdxMenuRootContext, RdxMenuTransitionStatus, RdxMenuTriggerInteraction, RdxMenuTriggerInteractionHandler };
|