@radix-ng/primitives 0.51.0 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
  6. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
  9. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  11. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  12. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
  18. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +735 -744
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-cropper.mjs +1 -0
  25. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-date-field.mjs +51 -45
  27. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
  29. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
  31. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  33. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  34. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  36. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  37. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  38. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  39. package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  42. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  43. package/fesm2022/radix-ng-primitives-label.mjs +6 -6
  44. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-menu.mjs +1480 -344
  46. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  48. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  50. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
  52. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
  54. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +91 -41
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  65. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  66. package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
  67. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
  71. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select.mjs +791 -509
  73. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +381 -108
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1071
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
  95. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  96. package/meter/README.md +3 -0
  97. package/navigation-menu/README.md +2 -1
  98. package/package.json +31 -18
  99. package/portal/README.md +2 -0
  100. package/preview-card/README.md +3 -0
  101. package/schematics/collection.json +1 -0
  102. package/schematics/ng-add/index.d.ts +3 -2
  103. package/schematics/ng-add/index.js +62 -31
  104. package/schematics/ng-add/index.js.map +1 -1
  105. package/schematics/ng-add/package-config.d.ts +4 -2
  106. package/schematics/ng-add/package-config.js +10 -2
  107. package/schematics/ng-add/package-config.js.map +1 -1
  108. package/schematics/ng-add/schema.d.ts +3 -0
  109. package/schematics/ng-add/schema.js +3 -0
  110. package/schematics/ng-add/schema.js.map +1 -0
  111. package/schematics/ng-add/schema.json +14 -0
  112. package/select/README.md +2 -0
  113. package/types/radix-ng-primitives-accordion.d.ts +48 -14
  114. package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
  115. package/types/radix-ng-primitives-arrow.d.ts +1 -1
  116. package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
  117. package/types/radix-ng-primitives-avatar.d.ts +7 -11
  118. package/types/radix-ng-primitives-button.d.ts +73 -0
  119. package/types/radix-ng-primitives-calendar.d.ts +1 -2
  120. package/types/radix-ng-primitives-checkbox.d.ts +201 -32
  121. package/types/radix-ng-primitives-collapsible.d.ts +112 -39
  122. package/types/radix-ng-primitives-collection.d.ts +38 -34
  123. package/types/radix-ng-primitives-config.d.ts +1 -1
  124. package/types/radix-ng-primitives-context-menu.d.ts +60 -116
  125. package/types/radix-ng-primitives-core.d.ts +307 -236
  126. package/types/radix-ng-primitives-cropper.d.ts +2 -2
  127. package/types/radix-ng-primitives-date-field.d.ts +38 -23
  128. package/types/radix-ng-primitives-dialog.d.ts +282 -165
  129. package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
  130. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  131. package/types/radix-ng-primitives-editable.d.ts +1 -1
  132. package/types/radix-ng-primitives-field.d.ts +373 -0
  133. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  134. package/types/radix-ng-primitives-focus-scope.d.ts +13 -5
  135. package/types/radix-ng-primitives-input.d.ts +87 -0
  136. package/types/radix-ng-primitives-label.d.ts +0 -1
  137. package/types/radix-ng-primitives-menu.d.ts +572 -99
  138. package/types/radix-ng-primitives-menubar.d.ts +60 -50
  139. package/types/radix-ng-primitives-meter.d.ts +193 -0
  140. package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
  141. package/types/radix-ng-primitives-number-field.d.ts +405 -145
  142. package/types/radix-ng-primitives-pagination.d.ts +2 -2
  143. package/types/radix-ng-primitives-popover.d.ts +365 -351
  144. package/types/radix-ng-primitives-popper.d.ts +49 -9
  145. package/types/radix-ng-primitives-portal.d.ts +14 -6
  146. package/types/radix-ng-primitives-presence.d.ts +28 -76
  147. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  148. package/types/radix-ng-primitives-progress.d.ts +174 -48
  149. package/types/radix-ng-primitives-radio.d.ts +55 -25
  150. package/types/radix-ng-primitives-roving-focus.d.ts +30 -21
  151. package/types/radix-ng-primitives-select.d.ts +475 -177
  152. package/types/radix-ng-primitives-separator.d.ts +7 -32
  153. package/types/radix-ng-primitives-slider.d.ts +315 -201
  154. package/types/radix-ng-primitives-stepper.d.ts +5 -7
  155. package/types/radix-ng-primitives-switch.d.ts +86 -71
  156. package/types/radix-ng-primitives-tabs.d.ts +213 -79
  157. package/types/radix-ng-primitives-time-field.d.ts +42 -27
  158. package/types/radix-ng-primitives-toggle-group.d.ts +85 -164
  159. package/types/radix-ng-primitives-toggle.d.ts +43 -53
  160. package/types/radix-ng-primitives-toolbar.d.ts +163 -38
  161. package/types/radix-ng-primitives-tooltip.d.ts +347 -384
  162. package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
  163. package/dropdown-menu/README.md +0 -1
  164. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
  165. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  166. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
  167. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  168. package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
  169. package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
  170. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
  171. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  172. package/hover-card/README.md +0 -3
  173. package/select2/README.md +0 -3
  174. package/tooltip2/README.md +0 -3
  175. package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
  176. package/types/radix-ng-primitives-hover-card.d.ts +0 -471
  177. package/types/radix-ng-primitives-select2.d.ts +0 -511
  178. package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
@@ -1,40 +1,44 @@
1
- import * as i0 from '@angular/core';
2
- import { Signal, WritableSignal, InjectionToken } from '@angular/core';
3
- import * as _radix_ng_primitives_collection from '@radix-ng/primitives/collection';
1
+ import * as _angular_core from '@angular/core';
4
2
 
5
- interface CollectionItemRecord {
6
- ref: HTMLElement;
7
- value?: any;
8
- }
9
- interface CollectionContext {
10
- collectionElementRef: Signal<HTMLElement | null>;
11
- itemMap: WritableSignal<Map<HTMLElement, CollectionItemRecord>>;
12
- }
13
- declare const COLLECTION_CONTEXT_TOKEN: InjectionToken<CollectionContext>;
14
-
15
- declare class RdxCollectionItem {
16
- private readonly hostElementRef;
17
- private readonly context;
18
- private readonly destroyRef;
19
- readonly value: i0.InputSignal<any>;
20
- constructor();
21
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxCollectionItem, never>;
22
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxCollectionItem, "[rdxCollectionItem]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3
+ /**
4
+ * Marks an element as a member of a collection. Items are discovered by the
5
+ * {@link RdxCollectionProvider} via `contentChildren`, so registration is automatic — no manual
6
+ * book-keeping or marker attributes are needed.
7
+ *
8
+ * @group Components
9
+ */
10
+ declare class RdxCollectionItem<T = unknown> {
11
+ /** The host element of the item, read straight off the instance. */
12
+ readonly element: HTMLElement;
13
+ /** Arbitrary data associated with the item. */
14
+ readonly value: _angular_core.InputSignal<T | undefined>;
15
+ /** Whether the item is disabled. Disabled items are excluded from {@link RdxCollectionProvider.enabledItems}. */
16
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
17
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollectionItem<any>, never>;
18
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollectionItem<any>, "[rdxCollectionItem]", ["rdxCollectionItem"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
23
19
  }
24
20
 
25
- declare class RdxCollectionProvider implements CollectionContext {
26
- private readonly elementRef;
27
- readonly collectionElementRef: WritableSignal<HTMLElement | null>;
28
- readonly itemMap: WritableSignal<Map<HTMLElement, any>>;
29
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxCollectionProvider, never>;
30
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxCollectionProvider, "[rdxCollectionProvider]", never, {}, {}, never, never, true, never>;
21
+ /**
22
+ * Collects {@link RdxCollectionItem} descendants in DOM order, reactively, using Angular's
23
+ * `contentChildren`. Matches host directives too, so items composed via `hostDirectives` are found.
24
+ *
25
+ * @group Components
26
+ */
27
+ declare class RdxCollectionProvider {
28
+ /** All items, in DOM order. */
29
+ readonly items: _angular_core.Signal<readonly RdxCollectionItem<any>[]>;
30
+ /** Items that are not disabled. Recomputes when an item's `disabled` flag changes. */
31
+ readonly enabledItems: _angular_core.Signal<RdxCollectionItem<any>[]>;
32
+ /** Returns the collection items, excluding disabled ones unless `includeDisabled` is `true`. */
33
+ getItems(includeDisabled?: boolean): readonly RdxCollectionItem[];
34
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollectionProvider, never>;
35
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollectionProvider, "[rdxCollectionProvider]", ["rdxCollectionProvider"], {}, {}, ["items"], never, true, never>;
31
36
  }
32
37
 
33
- declare function useCollection(): {
34
- getItems: (includeDisabledItem?: boolean) => _radix_ng_primitives_collection.CollectionItemRecord[];
35
- reactiveItems: i0.Signal<_radix_ng_primitives_collection.CollectionItemRecord[]>;
36
- itemMapSize: i0.Signal<number>;
37
- };
38
+ /**
39
+ * Convenience accessor for the nearest {@link RdxCollectionProvider}. Equivalent to
40
+ * `inject(RdxCollectionProvider)`; returns the provider with its reactive `items`/`enabledItems`.
41
+ */
42
+ declare function useCollection(): RdxCollectionProvider;
38
43
 
39
- export { COLLECTION_CONTEXT_TOKEN, RdxCollectionItem, RdxCollectionProvider, useCollection };
40
- export type { CollectionContext, CollectionItemRecord };
44
+ export { RdxCollectionItem, RdxCollectionProvider, useCollection };
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, EnvironmentProviders } from '@angular/core';
3
- import { Direction } from '@angular/cdk/bidi';
3
+ import { Direction } from '@radix-ng/primitives/core';
4
4
 
5
5
  type RadixNGConfig = {
6
6
  /**
@@ -1,129 +1,73 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, TemplateRef, AfterContentInit, OnDestroy } from '@angular/core';
3
- import { CdkMenuItem, CdkContextMenuTrigger, CdkMenu } from '@angular/cdk/menu';
4
- import { Subject } from 'rxjs';
5
- import { ConnectedPosition } from '@angular/cdk/overlay';
6
- import * as i1 from '@radix-ng/primitives/separator';
2
+ import { Signal } from '@angular/core';
3
+ import * as i1 from '@radix-ng/primitives/menu';
4
+ import { RdxMenuRoot, RdxMenuAutoFocusInput } from '@radix-ng/primitives/menu';
5
+ import * as _radix_ng_primitives_context_menu from '@radix-ng/primitives/context-menu';
6
+ import { BooleanInput, NumberInput } from '@radix-ng/primitives/core';
7
7
 
8
- declare class RdxContextMenuItemDirective extends CdkMenuItem {
9
- protected readonly menu: RdxContextMenuContentDirective;
10
- protected readonly nativeElement: any;
11
- highlighted: boolean;
12
- disabled: boolean;
13
- readonly onSelect: EventEmitter<void>;
14
- constructor();
15
- protected onPointerMove(): void;
16
- protected onKeydown(event: KeyboardEvent): void;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuItemDirective, never>;
18
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuItemDirective, "[rdxContextMenuItem]", never, { "disabled": { "alias": "disabled"; "required": false; }; }, { "onSelect": "onSelect"; }, never, never, true, never>;
19
- static ngAcceptInputType_disabled: unknown;
20
- }
21
-
22
- declare enum ContextMenuSide {
23
- Top = "top",
24
- Right = "right",
25
- Bottom = "bottom",
26
- Left = "left"
27
- }
28
- declare class RdxContextMenuTriggerDirective extends CdkContextMenuTrigger {
29
- menuPosition: {
30
- originX: "start" | "center" | "end";
31
- originY: "top" | "center" | "bottom";
32
- overlayX: "start" | "center" | "end";
33
- overlayY: "top" | "center" | "bottom";
34
- weight?: number;
35
- offsetX?: number;
36
- offsetY?: number;
37
- panelClass?: string | string[];
38
- }[];
39
- set rdxContextMenuTrigger(value: TemplateRef<unknown> | null);
40
- set alignOffset(value: number);
41
- disabled: boolean;
42
- onOpenChange: i0.OutputRef<void>;
43
- get defaultPosition(): ConnectedPosition;
44
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuTriggerDirective, never>;
45
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuTriggerDirective, "[rdxContextMenuTrigger]", never, { "rdxContextMenuTrigger": { "alias": "rdxContextMenuTrigger"; "required": false; }; "alignOffset": { "alias": "alignOffset"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "onOpenChange": "onOpenChange"; }, never, never, true, never>;
46
- static ngAcceptInputType_alignOffset: unknown;
47
- static ngAcceptInputType_disabled: unknown;
48
- }
49
-
50
- declare class RdxContextMenuContentDirective extends CdkMenu {
51
- readonly highlighted: Subject<RdxContextMenuItemDirective>;
52
- readonly menuTrigger: RdxContextMenuTriggerDirective | null;
53
- onEscapeKeyDown: (event?: Event) => void;
54
- closeOnEscape: boolean;
55
- constructor();
56
- updateActiveItem(item: CdkMenuItem): void;
57
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuContentDirective, never>;
58
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuContentDirective, "[rdxContextMenuContent]", never, { "onEscapeKeyDown": { "alias": "onEscapeKeyDown"; "required": false; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; }; }, {}, never, never, true, never>;
59
- }
60
-
61
- /** Base class providing checked state for selectable ContextMenuItems. */
62
- declare class RdxContextMenuSelectable extends RdxContextMenuItemDirective {
63
- /** Whether the element is checked */
64
- checked: boolean;
65
- readonly checkedChange: EventEmitter<boolean>;
66
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuSelectable, never>;
67
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuSelectable, never, never, { "checked": { "alias": "checked"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
68
- static ngAcceptInputType_checked: unknown;
8
+ interface RdxContextMenuRootContext {
9
+ /** Whether the context menu is currently open. */
10
+ isOpen: Signal<boolean>;
11
+ /** Whether the whole menu is disabled. */
12
+ disabled: Signal<boolean>;
13
+ /** Open the menu anchored at the given viewport coordinates. */
14
+ openAt: (clientX: number, clientY: number, autoFocus?: RdxMenuAutoFocusInput) => void;
15
+ /** Close the menu. */
16
+ close: () => void;
69
17
  }
70
-
71
- declare class RdxContextMenuItemCheckboxDirective extends RdxContextMenuSelectable {
72
- trigger(options?: {
73
- keepOpen: boolean;
74
- }): void;
75
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuItemCheckboxDirective, never>;
76
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuItemCheckboxDirective, "[rdxContextMenuItemCheckbox]", never, {}, {}, never, never, true, never>;
77
- }
78
-
79
- declare class RdxContextMenuItemRadioGroupDirective<T> implements AfterContentInit {
80
- private readonly selectionDispatcher;
81
- set value(value: T | null);
82
- get value(): T | null;
83
- private _value;
84
- readonly valueChange: EventEmitter<any>;
85
- ngAfterContentInit(): void;
86
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuItemRadioGroupDirective<any>, never>;
87
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuItemRadioGroupDirective<any>, "[rdxContextMenuItemRadioGroup]", never, { "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
88
- }
89
-
90
- declare class RdxContextMenuItemIndicatorDirective {
91
- item: RdxContextMenuSelectable;
92
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuItemIndicatorDirective, never>;
93
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuItemIndicatorDirective, "[rdxContextMenuItemIndicator]", never, {}, {}, never, never, true, never>;
18
+ declare const injectRdxContextMenuRootContext: (optional?: boolean) => RdxContextMenuRootContext | null;
19
+ declare const provideRdxContextMenuRootContext: (useFactory: () => RdxContextMenuRootContext) => i0.Provider;
20
+ /**
21
+ * Groups all parts of a context menu. Composes the Menu primitive but, instead of anchoring the
22
+ * popup to a trigger element, anchors it to the pointer position captured by `rdxContextMenuTrigger`.
23
+ *
24
+ * Reuse the Menu popup parts inside it `rdxMenuPositioner`, `rdxMenuPopup`, `rdxMenuItem`,
25
+ * `rdxMenuCheckboxItem`, `rdxMenuRadioGroup`, `rdxMenuSubTrigger`, `rdxMenuSeparator`, … all behave
26
+ * identically here.
27
+ */
28
+ declare class RdxContextMenuRoot {
29
+ readonly menuRoot: RdxMenuRoot;
30
+ private readonly popper;
31
+ /**
32
+ * Open the menu with the popup anchored at the given viewport coordinates.
33
+ *
34
+ * `autoFocus` defaults to `'popup'` so a right-click opens with the popup focused but no item
35
+ * highlighted (matching Base UI's pointer behavior). Pass `'first'` for keyboard opening.
36
+ */
37
+ openAt(clientX: number, clientY: number, autoFocus?: RdxMenuAutoFocusInput): void;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuRoot, never>;
39
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuRoot, "[rdxContextMenuRoot]", ["rdxContextMenuRoot"], {}, {}, never, never, true, [{ directive: typeof i1.RdxMenuRoot; inputs: { "open": "open"; "modal": "modal"; "loopFocus": "loopFocus"; "highlightItemOnHover": "highlightItemOnHover"; }; outputs: { "openChange": "openChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }; }]>;
94
40
  }
95
41
 
96
- declare class RdxContextMenuItemRadioDirective extends RdxContextMenuSelectable implements AfterContentInit, OnDestroy {
97
- /** The unique selection dispatcher for this radio's `RdxContextMenuItemRadioGroupDirective`. */
98
- private readonly selectionDispatcher;
99
- private readonly group;
100
- get value(): string;
101
- set value(value: string);
102
- private _value;
103
- /** An ID to identify this radio item to the `UniqueSelectionDispatcher`. */
104
- private id;
105
- private removeDispatcherListener;
42
+ /**
43
+ * An area that opens the context menu on right click (or a touch long-press).
44
+ *
45
+ * Apply it to the element that should respond to the context-menu gesture; the popup is positioned
46
+ * at the pointer, not against this element.
47
+ */
48
+ declare class RdxContextMenuTrigger {
49
+ protected readonly rootContext: _radix_ng_primitives_context_menu.RdxContextMenuRootContext;
50
+ /** Whether the trigger is disabled. */
51
+ readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
52
+ /** How long (ms) a touch must be held before the menu opens. */
53
+ readonly longPressDelay: i0.InputSignalWithTransform<number, NumberInput>;
54
+ private longPressTimer;
55
+ private longPressOrigin;
56
+ private lastPointerDownTime;
106
57
  constructor();
107
- ngAfterContentInit(): void;
108
- ngOnDestroy(): void;
109
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuItemRadioDirective, never>;
110
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuItemRadioDirective, "[rdxContextMenuItemRadio]", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
111
- }
112
-
113
- declare class RdxContextMenuLabelDirective {
114
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuLabelDirective, never>;
115
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuLabelDirective, "[rdxContextMenuLabel]", never, {}, {}, never, never, true, never>;
116
- }
117
-
118
- declare class RdxContextMenuSeparatorDirective {
119
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuSeparatorDirective, never>;
120
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuSeparatorDirective, "[rdxContextMenuSeparator]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxSeparatorRootDirective; inputs: {}; outputs: {}; }]>;
58
+ protected onContextMenu(event: MouseEvent): void;
59
+ protected onPointerDown(event: PointerEvent): void;
60
+ protected onPointerMove(event: PointerEvent): void;
61
+ protected cancelLongPress(): void;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuTrigger, never>;
63
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxContextMenuTrigger, "[rdxContextMenuTrigger]", ["rdxContextMenuTrigger"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "longPressDelay": { "alias": "longPressDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
121
64
  }
122
65
 
123
66
  declare class RdxContextMenuModule {
124
67
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuModule, never>;
125
- static ɵmod: i0.ɵɵNgModuleDeclaration<RdxContextMenuModule, never, [typeof RdxContextMenuContentDirective, typeof RdxContextMenuSelectable, typeof RdxContextMenuItemCheckboxDirective, typeof RdxContextMenuItemDirective, typeof RdxContextMenuItemRadioGroupDirective, typeof RdxContextMenuItemIndicatorDirective, typeof RdxContextMenuItemRadioDirective, typeof RdxContextMenuLabelDirective, typeof RdxContextMenuSeparatorDirective, typeof RdxContextMenuTriggerDirective], [typeof RdxContextMenuContentDirective, typeof RdxContextMenuSelectable, typeof RdxContextMenuItemCheckboxDirective, typeof RdxContextMenuItemDirective, typeof RdxContextMenuItemRadioGroupDirective, typeof RdxContextMenuItemIndicatorDirective, typeof RdxContextMenuItemRadioDirective, typeof RdxContextMenuLabelDirective, typeof RdxContextMenuSeparatorDirective, typeof RdxContextMenuTriggerDirective]>;
68
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RdxContextMenuModule, never, [typeof RdxContextMenuRoot, typeof RdxContextMenuTrigger], [typeof RdxContextMenuRoot, typeof RdxContextMenuTrigger]>;
126
69
  static ɵinj: i0.ɵɵInjectorDeclaration<RdxContextMenuModule>;
127
70
  }
128
71
 
129
- export { ContextMenuSide, RdxContextMenuContentDirective, RdxContextMenuItemCheckboxDirective, RdxContextMenuItemDirective, RdxContextMenuItemIndicatorDirective, RdxContextMenuItemRadioDirective, RdxContextMenuItemRadioGroupDirective, RdxContextMenuLabelDirective, RdxContextMenuModule, RdxContextMenuSelectable, RdxContextMenuSeparatorDirective, RdxContextMenuTriggerDirective };
72
+ export { RdxContextMenuModule, RdxContextMenuRoot, RdxContextMenuTrigger, injectRdxContextMenuRootContext, provideRdxContextMenuRootContext };
73
+ export type { RdxContextMenuRootContext };