@radix-ng/primitives 1.0.0-beta.5 → 1.0.2
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/composite/README.md +3 -0
- package/fesm2022/radix-ng-primitives-accordion.mjs +20 -44
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +134 -58
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-composite.mjs +599 -0
- package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-drawer.mjs +442 -2
- package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +315 -68
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +91 -36
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs +281 -88
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +40 -15
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popper.mjs +73 -65
- package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +63 -27
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-scroll-area.mjs +56 -25
- package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +59 -29
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +57 -13
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +335 -73
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +66 -21
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +29 -11
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +68 -36
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/navigation-menu/README.md +5 -2
- package/package.json +6 -10
- package/types/radix-ng-primitives-accordion.d.ts +12 -16
- package/types/radix-ng-primitives-checkbox.d.ts +98 -70
- package/types/radix-ng-primitives-composite.d.ts +195 -0
- package/types/radix-ng-primitives-drawer.d.ts +40 -2
- package/types/radix-ng-primitives-menu.d.ts +46 -16
- package/types/radix-ng-primitives-menubar.d.ts +12 -5
- package/types/radix-ng-primitives-navigation-menu.d.ts +65 -33
- package/types/radix-ng-primitives-popover.d.ts +9 -5
- package/types/radix-ng-primitives-popper.d.ts +1 -0
- package/types/radix-ng-primitives-radio.d.ts +11 -9
- package/types/radix-ng-primitives-scroll-area.d.ts +4 -1
- package/types/radix-ng-primitives-select.d.ts +46 -32
- package/types/radix-ng-primitives-slider.d.ts +19 -4
- package/types/radix-ng-primitives-tabs.d.ts +69 -14
- package/types/radix-ng-primitives-toggle-group.d.ts +27 -16
- package/types/radix-ng-primitives-toggle.d.ts +5 -5
- package/types/radix-ng-primitives-toolbar.d.ts +84 -69
- package/collection/README.md +0 -1
- package/fesm2022/radix-ng-primitives-collection.mjs +0 -72
- package/fesm2022/radix-ng-primitives-collection.mjs.map +0 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +0 -388
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +0 -1
- package/roving-focus/README.md +0 -3
- package/types/radix-ng-primitives-collection.d.ts +0 -44
- package/types/radix-ng-primitives-roving-focus.d.ts +0 -187
|
@@ -198,6 +198,8 @@ interface RdxDrawerRootContext {
|
|
|
198
198
|
frontmostHeight: Signal<number>;
|
|
199
199
|
/** Reports the popup's measured size (px) so the provider can expose it. */
|
|
200
200
|
reportPopupHeight: (height: number) => void;
|
|
201
|
+
/** Whether the drawer is currently open. */
|
|
202
|
+
open: Signal<boolean>;
|
|
201
203
|
}
|
|
202
204
|
declare const injectRdxDrawerRootContext: _radix_ng_primitives_core.InjectContext<RdxDrawerRootContext>;
|
|
203
205
|
declare const provideRdxDrawerRootContext: (useFactory: () => RdxDrawerRootContext) => i0.Provider;
|
|
@@ -334,6 +336,42 @@ declare class RdxDrawerViewport {
|
|
|
334
336
|
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerViewport, "[rdxDrawerViewport]", ["rdxDrawerViewport"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogViewport; inputs: {}; outputs: {}; }]>;
|
|
335
337
|
}
|
|
336
338
|
|
|
339
|
+
/**
|
|
340
|
+
* Provides mobile virtual-keyboard handling for bottom-sheet drawers with form fields.
|
|
341
|
+
*
|
|
342
|
+
* Put it on the drawer viewport that contains the popup. The directive writes
|
|
343
|
+
* `--drawer-keyboard-inset` to the host, keeps the focused keyboard input visible when
|
|
344
|
+
* `visualViewport` shrinks, adds temporary scroll slack to the nearest drawer scroller, and uses
|
|
345
|
+
* synchronous tap-to-focus on touch devices so iOS opens the software keyboard reliably.
|
|
346
|
+
*/
|
|
347
|
+
declare class RdxDrawerVirtualKeyboardProvider {
|
|
348
|
+
private readonly drawerContext;
|
|
349
|
+
private readonly elementRef;
|
|
350
|
+
private readonly destroyRef;
|
|
351
|
+
private readonly element;
|
|
352
|
+
private pendingKeyboardFocusMoved;
|
|
353
|
+
private keyboardTouchStart;
|
|
354
|
+
private focusedKeyboardTarget;
|
|
355
|
+
private keyboardScrollAdjustment;
|
|
356
|
+
private keyboardFocusFrame;
|
|
357
|
+
constructor();
|
|
358
|
+
protected onTouchStart(event: TouchEvent): void;
|
|
359
|
+
protected onTouchMove(event: TouchEvent): void;
|
|
360
|
+
protected onTouchEnd(event: TouchEvent): void;
|
|
361
|
+
protected resetTouchTrackingState(): void;
|
|
362
|
+
private captureFocusedKeyboardTarget;
|
|
363
|
+
private alignFocusedKeyboardTarget;
|
|
364
|
+
private scheduleKeyboardFocusAlignment;
|
|
365
|
+
private cancelKeyboardFocusFrame;
|
|
366
|
+
private clearFocusedKeyboardTarget;
|
|
367
|
+
private setDrawerKeyboardInset;
|
|
368
|
+
private resetDrawerKeyboardInset;
|
|
369
|
+
private setKeyboardScrollSlack;
|
|
370
|
+
private restoreKeyboardScrollAdjustment;
|
|
371
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerVirtualKeyboardProvider, never>;
|
|
372
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerVirtualKeyboardProvider, "[rdxDrawerVirtualKeyboardProvider]", ["rdxDrawerVirtualKeyboardProvider"], {}, {}, never, never, true, never>;
|
|
373
|
+
}
|
|
374
|
+
|
|
337
375
|
/**
|
|
338
376
|
* A container for the drawer contents.
|
|
339
377
|
*
|
|
@@ -445,9 +483,9 @@ declare function createRdxDrawerHandle<Payload = unknown>(): RdxDrawerHandle<Pay
|
|
|
445
483
|
declare const drawerImports: (typeof RdxDrawerProviderDirective)[];
|
|
446
484
|
declare class RdxDrawerModule {
|
|
447
485
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerModule, never>;
|
|
448
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<RdxDrawerModule, never, [typeof RdxDrawerProviderDirective, typeof RdxDrawerRoot, typeof RdxDrawerTrigger, typeof RdxDrawerSwipeArea, typeof RdxDrawerPortal, typeof RdxDrawerPortalMisuseGuard, typeof RdxDrawerBackdrop, typeof RdxDrawerViewport, typeof RdxDrawerPopup, typeof RdxDrawerContent, typeof RdxDrawerTitle, typeof RdxDrawerDescription, typeof RdxDrawerClose, typeof RdxDrawerIndent, typeof RdxDrawerIndentBackground], [typeof RdxDrawerProviderDirective, typeof RdxDrawerRoot, typeof RdxDrawerTrigger, typeof RdxDrawerSwipeArea, typeof RdxDrawerPortal, typeof RdxDrawerPortalMisuseGuard, typeof RdxDrawerBackdrop, typeof RdxDrawerViewport, typeof RdxDrawerPopup, typeof RdxDrawerContent, typeof RdxDrawerTitle, typeof RdxDrawerDescription, typeof RdxDrawerClose, typeof RdxDrawerIndent, typeof RdxDrawerIndentBackground]>;
|
|
486
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<RdxDrawerModule, never, [typeof RdxDrawerProviderDirective, typeof RdxDrawerRoot, typeof RdxDrawerTrigger, typeof RdxDrawerSwipeArea, typeof RdxDrawerPortal, typeof RdxDrawerPortalMisuseGuard, typeof RdxDrawerBackdrop, typeof RdxDrawerViewport, typeof RdxDrawerVirtualKeyboardProvider, typeof RdxDrawerPopup, typeof RdxDrawerContent, typeof RdxDrawerTitle, typeof RdxDrawerDescription, typeof RdxDrawerClose, typeof RdxDrawerIndent, typeof RdxDrawerIndentBackground], [typeof RdxDrawerProviderDirective, typeof RdxDrawerRoot, typeof RdxDrawerTrigger, typeof RdxDrawerSwipeArea, typeof RdxDrawerPortal, typeof RdxDrawerPortalMisuseGuard, typeof RdxDrawerBackdrop, typeof RdxDrawerViewport, typeof RdxDrawerVirtualKeyboardProvider, typeof RdxDrawerPopup, typeof RdxDrawerContent, typeof RdxDrawerTitle, typeof RdxDrawerDescription, typeof RdxDrawerClose, typeof RdxDrawerIndent, typeof RdxDrawerIndentBackground]>;
|
|
449
487
|
static ɵinj: i0.ɵɵInjectorDeclaration<RdxDrawerModule>;
|
|
450
488
|
}
|
|
451
489
|
|
|
452
|
-
export { RdxDrawerBackdrop, RdxDrawerClose, RdxDrawerContent, RdxDrawerDescription, RdxDrawerHandle, RdxDrawerIndent, RdxDrawerIndentBackground, RdxDrawerModule, RdxDrawerPopup, RdxDrawerPortal, RdxDrawerPortalMisuseGuard, RdxDrawerProvider, RdxDrawerProviderDirective, RdxDrawerRoot, RdxDrawerSwipeArea, RdxDrawerTitle, RdxDrawerTrigger, RdxDrawerViewport, buildSnapEntries, createRdxDrawerHandle, dismissUnitVector, drawerImports, injectRdxDrawerRootContext, provideRdxDrawerProvider, provideRdxDrawerRootContext, resolveSnapTarget, snapPointReveal, useDrawerSwipe };
|
|
490
|
+
export { RdxDrawerBackdrop, RdxDrawerClose, RdxDrawerContent, RdxDrawerDescription, RdxDrawerHandle, RdxDrawerIndent, RdxDrawerIndentBackground, RdxDrawerModule, RdxDrawerPopup, RdxDrawerPortal, RdxDrawerPortalMisuseGuard, RdxDrawerProvider, RdxDrawerProviderDirective, RdxDrawerRoot, RdxDrawerSwipeArea, RdxDrawerTitle, RdxDrawerTrigger, RdxDrawerViewport, RdxDrawerVirtualKeyboardProvider, buildSnapEntries, createRdxDrawerHandle, dismissUnitVector, drawerImports, injectRdxDrawerRootContext, provideRdxDrawerProvider, provideRdxDrawerRootContext, resolveSnapTarget, snapPointReveal, useDrawerSwipe };
|
|
453
491
|
export type { RdxDrawerRegistration, RdxDrawerRelease, RdxDrawerRootContext, RdxDrawerSnapEntry, RdxDrawerSnapPoint, RdxDrawerSnapResolveOptions, RdxDrawerSnapTarget, RdxDrawerSwipeConfig, RdxDrawerSwipeDirection };
|
|
@@ -7,7 +7,8 @@ import { RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager'
|
|
|
7
7
|
import * as i1 from '@radix-ng/primitives/popper';
|
|
8
8
|
import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
|
|
9
9
|
import * as _radix_ng_primitives_menu from '@radix-ng/primitives/menu';
|
|
10
|
-
import * as i1$1 from '@radix-ng/primitives/
|
|
10
|
+
import * as i1$1 from '@radix-ng/primitives/composite';
|
|
11
|
+
import * as i1$2 from '@radix-ng/primitives/portal';
|
|
11
12
|
import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
|
|
12
13
|
|
|
13
14
|
type RdxMenuTransitionStatus = 'starting' | 'ending' | undefined;
|
|
@@ -47,6 +48,7 @@ interface RdxMenuOpenChange {
|
|
|
47
48
|
interface RdxMenuRootContext {
|
|
48
49
|
isOpen: Signal<boolean>;
|
|
49
50
|
present: Signal<boolean>;
|
|
51
|
+
activeIndex: Signal<number | null>;
|
|
50
52
|
disabled: Signal<boolean>;
|
|
51
53
|
modal: Signal<boolean>;
|
|
52
54
|
loopFocus: Signal<boolean>;
|
|
@@ -74,6 +76,7 @@ interface RdxMenuRootContext {
|
|
|
74
76
|
beforeContentFocusGuard: Signal<HTMLElement | null>;
|
|
75
77
|
transitionStatus: Signal<RdxMenuTransitionStatus>;
|
|
76
78
|
close: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
79
|
+
setActiveIndex: (index: number | null) => void;
|
|
77
80
|
/** Close this menu and every ancestor — used by item selection (the whole menu dismisses). */
|
|
78
81
|
closeEntireMenu: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
79
82
|
toggle: (reason?: RdxMenuOpenChangeReason, event?: Event) => void;
|
|
@@ -135,7 +138,7 @@ declare const provideRdxMenuRootContext: (useFactory: () => RdxMenuRootContext)
|
|
|
135
138
|
*/
|
|
136
139
|
declare class RdxMenuRoot {
|
|
137
140
|
private readonly popper;
|
|
138
|
-
|
|
141
|
+
readonly parentRoot: RdxMenuRoot | null;
|
|
139
142
|
private readonly providedDirection;
|
|
140
143
|
/**
|
|
141
144
|
* The shared per-popup floating context (ADR 0015 §1) — `open` mirrors this menu's open state, the
|
|
@@ -178,6 +181,7 @@ declare class RdxMenuRoot {
|
|
|
178
181
|
readonly popupElement: _angular_core.WritableSignal<HTMLElement | undefined>;
|
|
179
182
|
readonly beforeContentFocusGuard: _angular_core.WritableSignal<HTMLElement | null>;
|
|
180
183
|
readonly transitionStatus: Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
|
|
184
|
+
readonly activeIndex: _angular_core.WritableSignal<number | null>;
|
|
181
185
|
/** Whether the popup grabs focus when it opens. Set false for menubar hover-switching. */
|
|
182
186
|
readonly autoFocus: _angular_core.WritableSignal<RdxMenuAutoFocus>;
|
|
183
187
|
readonly isSubmenu: _angular_core.WritableSignal<boolean>;
|
|
@@ -209,6 +213,7 @@ declare class RdxMenuRoot {
|
|
|
209
213
|
close(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
210
214
|
toggle(reason?: RdxMenuOpenChangeReason, event?: Event): void;
|
|
211
215
|
markAsContextMenu(): void;
|
|
216
|
+
setActiveIndex(index: number | null): void;
|
|
212
217
|
setAllowMouseUpTrigger(value: boolean): void;
|
|
213
218
|
/**
|
|
214
219
|
* Close this menu **and every ancestor menu** in the chain. Selecting an item dismisses the whole
|
|
@@ -226,6 +231,7 @@ declare class RdxMenuRoot {
|
|
|
226
231
|
markAsSubmenu(): void;
|
|
227
232
|
closeParent(): void;
|
|
228
233
|
private createOpenChangeEvent;
|
|
234
|
+
private focusOpenPopup;
|
|
229
235
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuRoot, never>;
|
|
230
236
|
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: {}; }]>;
|
|
231
237
|
}
|
|
@@ -294,6 +300,8 @@ declare class RdxMenuTrigger {
|
|
|
294
300
|
declare class RdxMenuSubTrigger {
|
|
295
301
|
protected readonly submenuContext: _radix_ng_primitives_menu.RdxMenuRootContext;
|
|
296
302
|
private readonly submenuRoot;
|
|
303
|
+
protected readonly parentMenuRoot: RdxMenuRoot | null;
|
|
304
|
+
private readonly listItem;
|
|
297
305
|
private readonly elementRef;
|
|
298
306
|
private readonly destroyRef;
|
|
299
307
|
private readonly isBrowser;
|
|
@@ -317,7 +325,7 @@ declare class RdxMenuSubTrigger {
|
|
|
317
325
|
readonly closeDelay: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
|
|
318
326
|
/** Explicit typeahead label. When set, overrides textContent for character search. */
|
|
319
327
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
320
|
-
/** Highlighted when
|
|
328
|
+
/** Highlighted when active in the parent menu or while the submenu is open. */
|
|
321
329
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
322
330
|
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
323
331
|
protected readonly nativeButtonState: _angular_core.Signal<boolean>;
|
|
@@ -335,8 +343,10 @@ declare class RdxMenuSubTrigger {
|
|
|
335
343
|
private closeSiblingSubmenus;
|
|
336
344
|
private clearSiblingHighlights;
|
|
337
345
|
private focusFirstSubmenuItem;
|
|
346
|
+
private setParentActiveIndex;
|
|
347
|
+
private clearParentActiveIndex;
|
|
338
348
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuSubTrigger, never>;
|
|
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: {}; }]>;
|
|
349
|
+
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: {}; }, { directive: typeof i1$1.RdxCompositeListItem; inputs: {}; outputs: {}; }]>;
|
|
340
350
|
}
|
|
341
351
|
|
|
342
352
|
/**
|
|
@@ -350,7 +360,7 @@ declare class RdxMenuSubTrigger {
|
|
|
350
360
|
*/
|
|
351
361
|
declare class RdxMenuPortal {
|
|
352
362
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuPortal, never>;
|
|
353
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPortal, "ng-template[rdxMenuPortal]", ["rdxMenuPortal"], {}, {}, never, never, true, [{ directive: typeof i1$
|
|
363
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuPortal, "ng-template[rdxMenuPortal]", ["rdxMenuPortal"], {}, {}, never, never, true, [{ directive: typeof i1$2.RdxPortalPresence; inputs: { "container": "container"; }; outputs: {}; }]>;
|
|
354
364
|
}
|
|
355
365
|
/**
|
|
356
366
|
* Dev-mode guard: `rdxMenuPortal` is a structural directive. The old `<div rdxMenuPortal>` markup
|
|
@@ -386,11 +396,12 @@ declare class RdxMenuPopup {
|
|
|
386
396
|
private readonly registration;
|
|
387
397
|
private readonly focusManager;
|
|
388
398
|
private readonly focusScope;
|
|
399
|
+
private readonly compositeList;
|
|
389
400
|
private readonly wrapper;
|
|
390
401
|
private readonly elementRef;
|
|
391
402
|
private search;
|
|
392
403
|
private searchTimer;
|
|
393
|
-
protected readonly align: _angular_core.Signal<"
|
|
404
|
+
protected readonly align: _angular_core.Signal<"center" | "end" | "start" | undefined>;
|
|
394
405
|
protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
|
|
395
406
|
/**
|
|
396
407
|
* Event handler called when the escape key is pressed. Can be prevented.
|
|
@@ -421,8 +432,11 @@ declare class RdxMenuPopup {
|
|
|
421
432
|
protected handleKeydown(event: KeyboardEvent): void;
|
|
422
433
|
private scheduleSubmenuKeyboardFocus;
|
|
423
434
|
private applySubmenuKeyboardFocus;
|
|
435
|
+
private menuItems;
|
|
436
|
+
private currentItemIndex;
|
|
437
|
+
private focusMenuItem;
|
|
424
438
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuPopup, never>;
|
|
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: {}; }]>;
|
|
439
|
+
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: {}; }, { directive: typeof i1$1.RdxCompositeList; inputs: {}; outputs: {}; }]>;
|
|
426
440
|
}
|
|
427
441
|
|
|
428
442
|
/**
|
|
@@ -476,7 +490,7 @@ declare class RdxMenuArrow {
|
|
|
476
490
|
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext;
|
|
477
491
|
private readonly wrapper;
|
|
478
492
|
protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
|
|
479
|
-
protected readonly align: _angular_core.Signal<"
|
|
493
|
+
protected readonly align: _angular_core.Signal<"center" | "end" | "start" | undefined>;
|
|
480
494
|
protected readonly uncentered: _angular_core.Signal<boolean>;
|
|
481
495
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuArrow, never>;
|
|
482
496
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuArrow, "[rdxMenuArrow]", ["rdxMenuArrow"], {}, {}, never, never, true, [{ directive: typeof i1.RdxPopperArrow; inputs: {}; outputs: {}; }]>;
|
|
@@ -486,7 +500,8 @@ declare class RdxMenuArrow {
|
|
|
486
500
|
* An individual menu item.
|
|
487
501
|
*/
|
|
488
502
|
declare class RdxMenuItem {
|
|
489
|
-
|
|
503
|
+
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext | null;
|
|
504
|
+
private readonly listItem;
|
|
490
505
|
private readonly elementRef;
|
|
491
506
|
private readonly isFocused;
|
|
492
507
|
/** Whether this item is disabled. */
|
|
@@ -499,6 +514,7 @@ declare class RdxMenuItem {
|
|
|
499
514
|
readonly onSelect: _angular_core.OutputEmitterRef<void>;
|
|
500
515
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
501
516
|
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
517
|
+
constructor();
|
|
502
518
|
onFocus(): void;
|
|
503
519
|
onBlur(): void;
|
|
504
520
|
onPointerMove(event: PointerEvent): void;
|
|
@@ -506,15 +522,18 @@ declare class RdxMenuItem {
|
|
|
506
522
|
onItemClick(): void;
|
|
507
523
|
onMouseUp(event: MouseEvent): void;
|
|
508
524
|
protected onActivate(event: Event): void;
|
|
525
|
+
private setActiveIndex;
|
|
526
|
+
private clearActiveIndex;
|
|
509
527
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuItem, never>;
|
|
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,
|
|
528
|
+
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, [{ directive: typeof i1$1.RdxCompositeListItem; inputs: {}; outputs: {}; }]>;
|
|
511
529
|
}
|
|
512
530
|
|
|
513
531
|
/**
|
|
514
532
|
* A menu item that renders as a link.
|
|
515
533
|
*/
|
|
516
534
|
declare class RdxMenuLinkItem {
|
|
517
|
-
|
|
535
|
+
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext | null;
|
|
536
|
+
private readonly listItem;
|
|
518
537
|
private readonly elementRef;
|
|
519
538
|
private readonly isFocused;
|
|
520
539
|
/** Whether this item is disabled. */
|
|
@@ -527,6 +546,7 @@ declare class RdxMenuLinkItem {
|
|
|
527
546
|
readonly onSelect: _angular_core.OutputEmitterRef<void>;
|
|
528
547
|
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
529
548
|
protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
549
|
+
constructor();
|
|
530
550
|
onFocus(): void;
|
|
531
551
|
onBlur(): void;
|
|
532
552
|
onPointerMove(event: PointerEvent): void;
|
|
@@ -534,8 +554,10 @@ declare class RdxMenuLinkItem {
|
|
|
534
554
|
onItemClick(event: MouseEvent): void;
|
|
535
555
|
onMouseUp(event: MouseEvent): void;
|
|
536
556
|
protected onActivate(event: Event): void;
|
|
557
|
+
private setActiveIndex;
|
|
558
|
+
private clearActiveIndex;
|
|
537
559
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuLinkItem, never>;
|
|
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,
|
|
560
|
+
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, [{ directive: typeof i1$1.RdxCompositeListItem; inputs: {}; outputs: {}; }]>;
|
|
539
561
|
}
|
|
540
562
|
|
|
541
563
|
/**
|
|
@@ -579,7 +601,8 @@ declare const provideRdxMenuCheckboxItemContext: (useFactory: () => RdxMenuCheck
|
|
|
579
601
|
* A menu item that can be checked or unchecked.
|
|
580
602
|
*/
|
|
581
603
|
declare class RdxMenuCheckboxItem {
|
|
582
|
-
|
|
604
|
+
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext | null;
|
|
605
|
+
private readonly listItem;
|
|
583
606
|
private readonly elementRef;
|
|
584
607
|
private readonly isFocused;
|
|
585
608
|
/** Whether this item is disabled. */
|
|
@@ -596,6 +619,7 @@ declare class RdxMenuCheckboxItem {
|
|
|
596
619
|
protected readonly effectiveDisabled: Signal<boolean>;
|
|
597
620
|
protected readonly isIndeterminate: typeof isIndeterminate;
|
|
598
621
|
protected readonly getCheckedState: typeof getCheckedState;
|
|
622
|
+
constructor();
|
|
599
623
|
onFocus(): void;
|
|
600
624
|
onBlur(): void;
|
|
601
625
|
onPointerMove(event: PointerEvent): void;
|
|
@@ -604,8 +628,10 @@ declare class RdxMenuCheckboxItem {
|
|
|
604
628
|
onMouseUp(event: MouseEvent): void;
|
|
605
629
|
protected onActivate(event: Event): void;
|
|
606
630
|
private toggleChecked;
|
|
631
|
+
private setActiveIndex;
|
|
632
|
+
private clearActiveIndex;
|
|
607
633
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenuCheckboxItem, never>;
|
|
608
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuCheckboxItem, "[rdxMenuCheckboxItem]", ["rdxMenuCheckboxItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "onCheckedChange": "onCheckedChange"; }, never, never, true,
|
|
634
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenuCheckboxItem, "[rdxMenuCheckboxItem]", ["rdxMenuCheckboxItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "onCheckedChange": "onCheckedChange"; }, never, never, true, [{ directive: typeof i1$1.RdxCompositeListItem; inputs: {}; outputs: {}; }]>;
|
|
609
635
|
}
|
|
610
636
|
|
|
611
637
|
/**
|
|
@@ -662,8 +688,9 @@ declare const provideRdxMenuRadioItemContext: (useFactory: () => RdxMenuRadioIte
|
|
|
662
688
|
* A radio item within a menu radio group.
|
|
663
689
|
*/
|
|
664
690
|
declare class RdxMenuRadioItem<T = unknown> {
|
|
665
|
-
|
|
691
|
+
protected readonly rootContext: _radix_ng_primitives_menu.RdxMenuRootContext | null;
|
|
666
692
|
private readonly radioGroupContext;
|
|
693
|
+
private readonly listItem;
|
|
667
694
|
private readonly elementRef;
|
|
668
695
|
private readonly isFocused;
|
|
669
696
|
/** The value of this radio item. */
|
|
@@ -680,6 +707,7 @@ declare class RdxMenuRadioItem<T = unknown> {
|
|
|
680
707
|
protected readonly highlighted: Signal<boolean>;
|
|
681
708
|
protected readonly effectiveDisabled: Signal<boolean>;
|
|
682
709
|
protected readonly getCheckedState: typeof getCheckedState;
|
|
710
|
+
constructor();
|
|
683
711
|
onFocus(): void;
|
|
684
712
|
onBlur(): void;
|
|
685
713
|
onPointerMove(event: PointerEvent): void;
|
|
@@ -688,8 +716,10 @@ declare class RdxMenuRadioItem<T = unknown> {
|
|
|
688
716
|
onMouseUp(event: MouseEvent): void;
|
|
689
717
|
protected onActivate(event: Event): void;
|
|
690
718
|
private selectItem;
|
|
719
|
+
private setActiveIndex;
|
|
720
|
+
private clearActiveIndex;
|
|
691
721
|
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,
|
|
722
|
+
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, [{ directive: typeof i1$1.RdxCompositeListItem; inputs: {}; outputs: {}; }]>;
|
|
693
723
|
}
|
|
694
724
|
|
|
695
725
|
/**
|
|
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { Signal } from '@angular/core';
|
|
3
3
|
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
4
4
|
import { BooleanInput } from '@radix-ng/primitives/core';
|
|
5
|
+
import * as i1 from '@radix-ng/primitives/composite';
|
|
5
6
|
|
|
6
7
|
type RdxMenubarOrientation = 'horizontal' | 'vertical';
|
|
7
8
|
interface RdxMenubarContext {
|
|
@@ -22,9 +23,13 @@ declare const provideRdxMenubarContext: (useFactory: () => RdxMenubarContext) =>
|
|
|
22
23
|
* Coordinates open/close state across multiple menus and provides arrow-key navigation.
|
|
23
24
|
*/
|
|
24
25
|
declare class RdxMenubarRoot {
|
|
26
|
+
private readonly elementRef;
|
|
27
|
+
private readonly compositeRoot;
|
|
28
|
+
private readonly compositeList;
|
|
25
29
|
private readonly menuRoots;
|
|
26
30
|
private readonly ids;
|
|
27
31
|
private items;
|
|
32
|
+
private readonly itemsVersion;
|
|
28
33
|
/** Whether every menubar trigger is disabled. */
|
|
29
34
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
30
35
|
/** Whether arrow-key navigation wraps at the first/last trigger. */
|
|
@@ -46,15 +51,17 @@ declare class RdxMenubarRoot {
|
|
|
46
51
|
private handleTriggerArrow;
|
|
47
52
|
private handleTriggerBoundary;
|
|
48
53
|
focusAdjacent(currentId: string, offset: 1 | -1, openOnMove: boolean): void;
|
|
49
|
-
protected handleArrowLeft(event: Event): void;
|
|
50
|
-
protected handleArrowRight(event: Event): void;
|
|
51
|
-
private handleOpenMenuNavigation;
|
|
52
54
|
private focusItem;
|
|
53
|
-
|
|
55
|
+
protected handleFocusIn(event: FocusEvent): void;
|
|
56
|
+
private highlightItem;
|
|
54
57
|
private enabledItems;
|
|
55
58
|
private hasOpenMenu;
|
|
59
|
+
private sortItems;
|
|
60
|
+
private markItemsChanged;
|
|
61
|
+
private syncDisabledIndices;
|
|
62
|
+
private syncTabIndices;
|
|
56
63
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxMenubarRoot, never>;
|
|
57
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenubarRoot, "[rdxMenubarRoot]", ["rdxMenubarRoot"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loopFocus": { "alias": "loopFocus"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, ["menuRoots"], never, true,
|
|
64
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxMenubarRoot, "[rdxMenubarRoot]", ["rdxMenubarRoot"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loopFocus": { "alias": "loopFocus"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, ["menuRoots"], never, true, [{ directive: typeof i1.RdxCompositeRoot; inputs: {}; outputs: {}; }]>;
|
|
58
65
|
}
|
|
59
66
|
|
|
60
67
|
declare class RdxMenubarModule {
|