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

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 (186) 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 +95 -83
  13. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
  15. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
  17. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
  19. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
  22. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-core.mjs +845 -744
  24. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  25. package/fesm2022/radix-ng-primitives-cropper.mjs +288 -308
  26. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-date-field.mjs +104 -58
  28. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
  30. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  31. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
  32. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  33. package/fesm2022/radix-ng-primitives-drawer.mjs +960 -0
  34. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  35. package/fesm2022/radix-ng-primitives-editable.mjs +304 -23
  36. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  37. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  38. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  39. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  40. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  41. package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
  42. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  43. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  44. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  45. package/fesm2022/radix-ng-primitives-label.mjs +6 -6
  46. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-menu.mjs +1907 -363
  48. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  50. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  51. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  52. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  53. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
  54. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
  56. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  57. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
  59. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-popper.mjs +111 -44
  61. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
  63. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  65. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  67. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  68. package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
  69. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
  71. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
  73. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-scroll-area.mjs +923 -0
  75. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -0
  76. package/fesm2022/radix-ng-primitives-select.mjs +791 -509
  77. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
  79. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
  81. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
  83. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
  85. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-tabs.mjs +390 -108
  87. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
  89. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toast.mjs +839 -0
  91. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -0
  92. package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
  93. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
  95. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
  97. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-tooltip.mjs +699 -1072
  99. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
  101. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  102. package/meter/README.md +3 -0
  103. package/navigation-menu/README.md +2 -1
  104. package/package.json +39 -18
  105. package/portal/README.md +2 -0
  106. package/preview-card/README.md +3 -0
  107. package/schematics/collection.json +1 -0
  108. package/schematics/ng-add/index.d.ts +3 -2
  109. package/schematics/ng-add/index.js +62 -31
  110. package/schematics/ng-add/index.js.map +1 -1
  111. package/schematics/ng-add/package-config.d.ts +4 -2
  112. package/schematics/ng-add/package-config.js +10 -2
  113. package/schematics/ng-add/package-config.js.map +1 -1
  114. package/schematics/ng-add/schema.d.ts +3 -0
  115. package/schematics/ng-add/schema.js +3 -0
  116. package/schematics/ng-add/schema.js.map +1 -0
  117. package/schematics/ng-add/schema.json +14 -0
  118. package/select/README.md +2 -0
  119. package/types/radix-ng-primitives-accordion.d.ts +51 -16
  120. package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
  121. package/types/radix-ng-primitives-arrow.d.ts +1 -1
  122. package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
  123. package/types/radix-ng-primitives-avatar.d.ts +7 -11
  124. package/types/radix-ng-primitives-button.d.ts +73 -0
  125. package/types/radix-ng-primitives-calendar.d.ts +39 -20
  126. package/types/radix-ng-primitives-checkbox.d.ts +204 -35
  127. package/types/radix-ng-primitives-collapsible.d.ts +114 -40
  128. package/types/radix-ng-primitives-collection.d.ts +38 -34
  129. package/types/radix-ng-primitives-config.d.ts +1 -1
  130. package/types/radix-ng-primitives-context-menu.d.ts +61 -116
  131. package/types/radix-ng-primitives-core.d.ts +345 -235
  132. package/types/radix-ng-primitives-cropper.d.ts +89 -56
  133. package/types/radix-ng-primitives-date-field.d.ts +49 -28
  134. package/types/radix-ng-primitives-dialog.d.ts +283 -165
  135. package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
  136. package/types/radix-ng-primitives-drawer.d.ts +426 -0
  137. package/types/radix-ng-primitives-editable.d.ts +91 -14
  138. package/types/radix-ng-primitives-field.d.ts +374 -0
  139. package/types/radix-ng-primitives-fieldset.d.ts +49 -0
  140. package/types/radix-ng-primitives-focus-scope.d.ts +15 -6
  141. package/types/radix-ng-primitives-input.d.ts +87 -0
  142. package/types/radix-ng-primitives-label.d.ts +0 -1
  143. package/types/radix-ng-primitives-menu.d.ts +584 -99
  144. package/types/radix-ng-primitives-menubar.d.ts +61 -50
  145. package/types/radix-ng-primitives-meter.d.ts +194 -0
  146. package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
  147. package/types/radix-ng-primitives-number-field.d.ts +405 -145
  148. package/types/radix-ng-primitives-pagination.d.ts +2 -2
  149. package/types/radix-ng-primitives-popover.d.ts +366 -351
  150. package/types/radix-ng-primitives-popper.d.ts +68 -11
  151. package/types/radix-ng-primitives-portal.d.ts +14 -6
  152. package/types/radix-ng-primitives-presence.d.ts +28 -76
  153. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  154. package/types/radix-ng-primitives-progress.d.ts +175 -48
  155. package/types/radix-ng-primitives-radio.d.ts +55 -25
  156. package/types/radix-ng-primitives-roving-focus.d.ts +33 -23
  157. package/types/radix-ng-primitives-scroll-area.d.ts +253 -0
  158. package/types/radix-ng-primitives-select.d.ts +475 -177
  159. package/types/radix-ng-primitives-separator.d.ts +7 -32
  160. package/types/radix-ng-primitives-slider.d.ts +315 -201
  161. package/types/radix-ng-primitives-stepper.d.ts +5 -7
  162. package/types/radix-ng-primitives-switch.d.ts +86 -71
  163. package/types/radix-ng-primitives-tabs.d.ts +213 -79
  164. package/types/radix-ng-primitives-time-field.d.ts +42 -27
  165. package/types/radix-ng-primitives-toast.d.ts +378 -0
  166. package/types/radix-ng-primitives-toggle-group.d.ts +86 -164
  167. package/types/radix-ng-primitives-toggle.d.ts +43 -53
  168. package/types/radix-ng-primitives-toolbar.d.ts +164 -38
  169. package/types/radix-ng-primitives-tooltip.d.ts +348 -384
  170. package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
  171. package/dropdown-menu/README.md +0 -1
  172. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
  173. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  174. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
  175. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  176. package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
  177. package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
  178. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
  179. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  180. package/hover-card/README.md +0 -3
  181. package/select2/README.md +0 -3
  182. package/tooltip2/README.md +0 -3
  183. package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
  184. package/types/radix-ng-primitives-hover-card.d.ts +0 -471
  185. package/types/radix-ng-primitives-select2.d.ts +0 -511
  186. 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,74 @@
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 _radix_ng_primitives_core from '@radix-ng/primitives/core';
4
+ import { BooleanInput, NumberInput } from '@radix-ng/primitives/core';
5
+ import * as i1 from '@radix-ng/primitives/menu';
6
+ import { RdxMenuRoot, RdxMenuAutoFocusInput } from '@radix-ng/primitives/menu';
7
+ import * as _radix_ng_primitives_context_menu from '@radix-ng/primitives/context-menu';
7
8
 
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;
9
+ interface RdxContextMenuRootContext {
10
+ /** Whether the context menu is currently open. */
11
+ isOpen: Signal<boolean>;
12
+ /** Whether the whole menu is disabled. */
13
+ disabled: Signal<boolean>;
14
+ /** Open the menu anchored at the given viewport coordinates. */
15
+ openAt: (clientX: number, clientY: number, autoFocus?: RdxMenuAutoFocusInput) => void;
16
+ /** Close the menu. */
17
+ close: () => void;
69
18
  }
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>;
19
+ declare const injectRdxContextMenuRootContext: _radix_ng_primitives_core.InjectContext<RdxContextMenuRootContext>;
20
+ declare const provideRdxContextMenuRootContext: (useFactory: () => RdxContextMenuRootContext) => i0.Provider;
21
+ /**
22
+ * Groups all parts of a context menu. Composes the Menu primitive but, instead of anchoring the
23
+ * popup to a trigger element, anchors it to the pointer position captured by `rdxContextMenuTrigger`.
24
+ *
25
+ * Reuse the Menu popup parts inside it `rdxMenuPositioner`, `rdxMenuPopup`, `rdxMenuItem`,
26
+ * `rdxMenuCheckboxItem`, `rdxMenuRadioGroup`, `rdxMenuSubTrigger`, `rdxMenuSeparator`, … all behave
27
+ * identically here.
28
+ */
29
+ declare class RdxContextMenuRoot {
30
+ readonly menuRoot: RdxMenuRoot;
31
+ private readonly popper;
32
+ /**
33
+ * Open the menu with the popup anchored at the given viewport coordinates.
34
+ *
35
+ * `autoFocus` defaults to `'popup'` so a right-click opens with the popup focused but no item
36
+ * highlighted (matching Base UI's pointer behavior). Pass `'first'` for keyboard opening.
37
+ */
38
+ openAt(clientX: number, clientY: number, autoFocus?: RdxMenuAutoFocusInput): void;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuRoot, never>;
40
+ 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
41
  }
95
42
 
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;
43
+ /**
44
+ * An area that opens the context menu on right click (or a touch long-press).
45
+ *
46
+ * Apply it to the element that should respond to the context-menu gesture; the popup is positioned
47
+ * at the pointer, not against this element.
48
+ */
49
+ declare class RdxContextMenuTrigger {
50
+ protected readonly rootContext: _radix_ng_primitives_context_menu.RdxContextMenuRootContext;
51
+ /** Whether the trigger is disabled. */
52
+ readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
53
+ /** How long (ms) a touch must be held before the menu opens. */
54
+ readonly longPressDelay: i0.InputSignalWithTransform<number, NumberInput>;
55
+ private longPressTimer;
56
+ private longPressOrigin;
57
+ private lastPointerDownTime;
106
58
  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: {}; }]>;
59
+ protected onContextMenu(event: MouseEvent): void;
60
+ protected onPointerDown(event: PointerEvent): void;
61
+ protected onPointerMove(event: PointerEvent): void;
62
+ protected cancelLongPress(): void;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuTrigger, never>;
64
+ 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
65
  }
122
66
 
123
67
  declare class RdxContextMenuModule {
124
68
  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]>;
69
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RdxContextMenuModule, never, [typeof RdxContextMenuRoot, typeof RdxContextMenuTrigger], [typeof RdxContextMenuRoot, typeof RdxContextMenuTrigger]>;
126
70
  static ɵinj: i0.ɵɵInjectorDeclaration<RdxContextMenuModule>;
127
71
  }
128
72
 
129
- export { ContextMenuSide, RdxContextMenuContentDirective, RdxContextMenuItemCheckboxDirective, RdxContextMenuItemDirective, RdxContextMenuItemIndicatorDirective, RdxContextMenuItemRadioDirective, RdxContextMenuItemRadioGroupDirective, RdxContextMenuLabelDirective, RdxContextMenuModule, RdxContextMenuSelectable, RdxContextMenuSeparatorDirective, RdxContextMenuTriggerDirective };
73
+ export { RdxContextMenuModule, RdxContextMenuRoot, RdxContextMenuTrigger, injectRdxContextMenuRootContext, provideRdxContextMenuRootContext };
74
+ export type { RdxContextMenuRootContext };