@radix-ng/primitives 0.50.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 (207) hide show
  1. package/collection/README.md +1 -0
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +134 -66
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +224 -132
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-arrow.mjs +26 -10
  7. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +6 -6
  9. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-avatar.mjs +68 -75
  11. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  13. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  14. package/fesm2022/radix-ng-primitives-calendar.mjs +104 -103
  15. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs +414 -80
  17. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs +193 -92
  19. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-collection.mjs +72 -0
  21. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -0
  22. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  23. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-context-menu.mjs +143 -427
  25. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-core.mjs +757 -757
  27. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-cropper.mjs +55 -53
  29. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-date-field.mjs +93 -86
  31. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-dialog.mjs +658 -330
  33. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +98 -76
  35. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  37. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  38. package/fesm2022/radix-ng-primitives-editable.mjs +20 -20
  39. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  41. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  42. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  43. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  44. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  45. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-focus-scope.mjs +29 -14
  47. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  49. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  50. package/fesm2022/radix-ng-primitives-label.mjs +11 -11
  51. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-menu.mjs +1484 -353
  53. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  55. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  57. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  58. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1060 -1553
  59. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -366
  61. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-pagination.mjs +51 -51
  63. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-popover.mjs +980 -995
  65. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-popper.mjs +137 -82
  67. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-portal.mjs +40 -16
  69. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  71. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  73. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  74. package/fesm2022/radix-ng-primitives-progress.mjs +231 -92
  75. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-radio.mjs +211 -70
  77. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-roving-focus.mjs +127 -77
  79. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-select.mjs +791 -511
  81. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-separator.mjs +16 -45
  83. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-slider.mjs +976 -720
  85. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-stepper.mjs +69 -71
  87. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-switch.mjs +128 -124
  89. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-tabs.mjs +388 -115
  91. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-time-field.mjs +111 -117
  93. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-toggle-group.mjs +122 -248
  95. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-toggle.mjs +99 -62
  97. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-toolbar.mjs +307 -94
  99. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1079
  101. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  102. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +46 -87
  103. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  104. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  105. package/meter/README.md +3 -0
  106. package/navigation-menu/README.md +2 -1
  107. package/package.json +85 -63
  108. package/portal/README.md +2 -0
  109. package/preview-card/README.md +3 -0
  110. package/schematics/collection.json +1 -0
  111. package/schematics/ng-add/index.d.ts +3 -2
  112. package/schematics/ng-add/index.js +62 -31
  113. package/schematics/ng-add/index.js.map +1 -1
  114. package/schematics/ng-add/package-config.d.ts +4 -2
  115. package/schematics/ng-add/package-config.js +10 -2
  116. package/schematics/ng-add/package-config.js.map +1 -1
  117. package/schematics/ng-add/schema.d.ts +3 -0
  118. package/schematics/ng-add/schema.js +3 -0
  119. package/schematics/ng-add/schema.js.map +1 -0
  120. package/schematics/ng-add/schema.json +14 -0
  121. package/select/README.md +2 -0
  122. package/{accordion/index.d.ts → types/radix-ng-primitives-accordion.d.ts} +102 -67
  123. package/types/radix-ng-primitives-alert-dialog.d.ts +114 -0
  124. package/{arrow/index.d.ts → types/radix-ng-primitives-arrow.d.ts} +1 -1
  125. package/{aspect-ratio/index.d.ts → types/radix-ng-primitives-aspect-ratio.d.ts} +1 -1
  126. package/{avatar/index.d.ts → types/radix-ng-primitives-avatar.d.ts} +7 -11
  127. package/types/radix-ng-primitives-button.d.ts +73 -0
  128. package/{calendar/index.d.ts → types/radix-ng-primitives-calendar.d.ts} +2 -3
  129. package/types/radix-ng-primitives-checkbox.d.ts +337 -0
  130. package/types/radix-ng-primitives-collapsible.d.ts +159 -0
  131. package/types/radix-ng-primitives-collection.d.ts +44 -0
  132. package/{config/index.d.ts → types/radix-ng-primitives-config.d.ts} +1 -1
  133. package/types/radix-ng-primitives-context-menu.d.ts +73 -0
  134. package/{core/index.d.ts → types/radix-ng-primitives-core.d.ts} +311 -236
  135. package/{cropper/index.d.ts → types/radix-ng-primitives-cropper.d.ts} +6 -5
  136. package/{date-field/index.d.ts → types/radix-ng-primitives-date-field.d.ts} +42 -27
  137. package/types/radix-ng-primitives-dialog.d.ts +323 -0
  138. package/{dismissable-layer/index.d.ts → types/radix-ng-primitives-dismissable-layer.d.ts} +15 -7
  139. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  140. package/{editable/index.d.ts → types/radix-ng-primitives-editable.d.ts} +1 -1
  141. package/types/radix-ng-primitives-field.d.ts +373 -0
  142. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  143. package/{focus-scope/index.d.ts → types/radix-ng-primitives-focus-scope.d.ts} +13 -5
  144. package/types/radix-ng-primitives-input.d.ts +87 -0
  145. package/{label/index.d.ts → types/radix-ng-primitives-label.d.ts} +0 -1
  146. package/types/radix-ng-primitives-menu.d.ts +612 -0
  147. package/types/radix-ng-primitives-menubar.d.ts +66 -0
  148. package/types/radix-ng-primitives-meter.d.ts +193 -0
  149. package/types/radix-ng-primitives-navigation-menu.d.ts +488 -0
  150. package/types/radix-ng-primitives-number-field.d.ts +464 -0
  151. package/{pagination/index.d.ts → types/radix-ng-primitives-pagination.d.ts} +2 -2
  152. package/types/radix-ng-primitives-popover.d.ts +416 -0
  153. package/{popper/index.d.ts → types/radix-ng-primitives-popper.d.ts} +50 -9
  154. package/types/radix-ng-primitives-portal.d.ts +30 -0
  155. package/types/radix-ng-primitives-presence.d.ts +55 -0
  156. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  157. package/types/radix-ng-primitives-progress.d.ts +206 -0
  158. package/{radio/index.d.ts → types/radix-ng-primitives-radio.d.ts} +56 -26
  159. package/{roving-focus/index.d.ts → types/radix-ng-primitives-roving-focus.d.ts} +38 -27
  160. package/types/radix-ng-primitives-select.d.ts +512 -0
  161. package/types/radix-ng-primitives-separator.d.ts +38 -0
  162. package/types/radix-ng-primitives-slider.d.ts +377 -0
  163. package/{stepper/index.d.ts → types/radix-ng-primitives-stepper.d.ts} +21 -22
  164. package/types/radix-ng-primitives-switch.d.ts +121 -0
  165. package/types/radix-ng-primitives-tabs.d.ts +247 -0
  166. package/{time-field/index.d.ts → types/radix-ng-primitives-time-field.d.ts} +46 -31
  167. package/types/radix-ng-primitives-toggle-group.d.ts +116 -0
  168. package/types/radix-ng-primitives-toggle.d.ts +65 -0
  169. package/types/radix-ng-primitives-toolbar.d.ts +180 -0
  170. package/types/radix-ng-primitives-tooltip.d.ts +395 -0
  171. package/{visually-hidden/index.d.ts → types/radix-ng-primitives-visually-hidden.d.ts} +19 -19
  172. package/alert-dialog/index.d.ts +0 -57
  173. package/checkbox/index.d.ts +0 -164
  174. package/collapsible/index.d.ts +0 -85
  175. package/context-menu/index.d.ts +0 -129
  176. package/dialog/index.d.ts +0 -205
  177. package/dropdown-menu/README.md +0 -1
  178. package/dropdown-menu/index.d.ts +0 -171
  179. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -583
  180. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  181. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1246
  182. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  183. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -740
  184. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  185. package/hover-card/README.md +0 -3
  186. package/hover-card/index.d.ts +0 -472
  187. package/menu/index.d.ts +0 -139
  188. package/menubar/index.d.ts +0 -56
  189. package/navigation-menu/index.d.ts +0 -405
  190. package/number-field/index.d.ts +0 -203
  191. package/popover/index.d.ts +0 -403
  192. package/portal/index.d.ts +0 -22
  193. package/presence/index.d.ts +0 -103
  194. package/progress/index.d.ts +0 -79
  195. package/select/index.d.ts +0 -214
  196. package/separator/index.d.ts +0 -63
  197. package/slider/index.d.ts +0 -263
  198. package/switch/index.d.ts +0 -105
  199. package/tabs/index.d.ts +0 -112
  200. package/toggle/index.d.ts +0 -75
  201. package/toggle-group/index.d.ts +0 -194
  202. package/toolbar/index.d.ts +0 -55
  203. package/tooltip/index.d.ts +0 -433
  204. package/tooltip2/README.md +0 -3
  205. package/tooltip2/index.d.ts +0 -325
  206. /package/{focus-guards/index.d.ts → types/radix-ng-primitives-focus-guards.d.ts} +0 -0
  207. /package/{index.d.ts → types/radix-ng-primitives.d.ts} +0 -0
@@ -0,0 +1,337 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal } from '@angular/core';
3
+ import * as i1 from '@radix-ng/primitives/presence';
4
+ import * as _radix_ng_primitives_types_radix_ng_primitives_core from '@radix-ng/primitives/types/radix-ng-primitives-core';
5
+ import * as i1$1 from '@radix-ng/primitives/core';
6
+ import { BooleanInput, RdxFormCheckboxControl } from '@radix-ng/primitives/core';
7
+ import { ControlValueAccessor } from '@angular/forms';
8
+
9
+ declare class RdxCheckboxIndicatorPresenceDirective {
10
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxIndicatorPresenceDirective, never>;
11
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxIndicatorPresenceDirective, "ng-template[rdxCheckboxIndicatorPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
12
+ }
13
+
14
+ declare class RdxCheckboxInputDirective {
15
+ protected readonly rootContext: {
16
+ checked: _angular_core.Signal<boolean>;
17
+ indeterminate: _angular_core.Signal<boolean>;
18
+ disabled: _angular_core.Signal<boolean>;
19
+ required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
20
+ value: _angular_core.InputSignal<string>;
21
+ name: _angular_core.InputSignal<string | undefined>;
22
+ parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
23
+ form: _angular_core.InputSignal<string | undefined>;
24
+ readonly: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
25
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
26
+ toggle(): void;
27
+ };
28
+ private readonly input;
29
+ constructor();
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxInputDirective, never>;
31
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxInputDirective, "input[rdxCheckboxInput]", never, {}, {}, never, never, true, never>;
32
+ }
33
+
34
+ /**
35
+ * Internal tri-state used only for the derived `parent` (select-all) state in
36
+ * `rdxCheckboxGroup` and the `data-state` string. The public `checked` member is
37
+ * a plain `boolean`; mixed state is exposed via the separate `indeterminate`
38
+ * member (Base UI shape).
39
+ */
40
+ type CheckedState = boolean | 'indeterminate';
41
+ declare function isIndeterminate(checked?: CheckedState): checked is 'indeterminate';
42
+ declare function getState(checked: CheckedState): "indeterminate" | "checked" | "unchecked";
43
+ declare const rootContext: () => {
44
+ checked: _angular_core.Signal<boolean>;
45
+ indeterminate: _angular_core.Signal<boolean>;
46
+ disabled: _angular_core.Signal<boolean>;
47
+ required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
48
+ value: _angular_core.InputSignal<string>;
49
+ name: _angular_core.InputSignal<string | undefined>;
50
+ parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
51
+ form: _angular_core.InputSignal<string | undefined>;
52
+ readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
53
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
54
+ toggle(): void;
55
+ };
56
+ type CheckboxRootContext = ReturnType<typeof rootContext>;
57
+ declare const injectCheckboxRootContext: (optional?: boolean) => {
58
+ checked: _angular_core.Signal<boolean>;
59
+ indeterminate: _angular_core.Signal<boolean>;
60
+ disabled: _angular_core.Signal<boolean>;
61
+ required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
62
+ value: _angular_core.InputSignal<string>;
63
+ name: _angular_core.InputSignal<string | undefined>;
64
+ parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
65
+ form: _angular_core.InputSignal<string | undefined>;
66
+ readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
67
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
68
+ toggle(): void;
69
+ } | null;
70
+ declare const provideCheckboxRootContext: (useFactory: () => {
71
+ checked: _angular_core.Signal<boolean>;
72
+ indeterminate: _angular_core.Signal<boolean>;
73
+ disabled: _angular_core.Signal<boolean>;
74
+ required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
75
+ value: _angular_core.InputSignal<string>;
76
+ name: _angular_core.InputSignal<string | undefined>;
77
+ parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
78
+ form: _angular_core.InputSignal<string | undefined>;
79
+ readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
80
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
81
+ toggle(): void;
82
+ }) => _angular_core.Provider;
83
+ /**
84
+ * @group Components
85
+ */
86
+ declare class RdxCheckboxRootDirective implements RdxFormCheckboxControl {
87
+ private readonly controlValueAccessor;
88
+ /** The group this checkbox belongs to, if it is rendered inside a `rdxCheckboxGroup`. */
89
+ private readonly group;
90
+ /**
91
+ * @ignore
92
+ * Reflects the effective disabled state (CVA, covering reactive-forms `.disable()`, plus the
93
+ * group's disabled state), used for the `data-disabled` host attribute.
94
+ */
95
+ protected readonly isDisabled: _angular_core.Signal<boolean>;
96
+ /**
97
+ * The controlled checked state of the checkbox. Must be used in conjunction with onCheckedChange.
98
+ *
99
+ * Mixed state is no longer expressed through `checked` — use the separate
100
+ * `indeterminate` input (Base UI shape). This `boolean` model is what
101
+ * `RdxFormCheckboxControl` / Angular Signal Forms bind to.
102
+ * @group Props
103
+ */
104
+ readonly checked: _angular_core.ModelSignal<boolean>;
105
+ /**
106
+ * Whether the checkbox is in a mixed state: neither ticked nor unticked.
107
+ * Orthogonal to `checked` and not part of the submitted form value. A user
108
+ * click resolves the checkbox to `checked` and clears `indeterminate`.
109
+ * @group Props
110
+ */
111
+ readonly indeterminate: _angular_core.ModelSignal<boolean>;
112
+ /**
113
+ * The value of the checkbox. This is what is submitted with the form when the checkbox is checked.
114
+ *
115
+ * Bound publicly as `[value]`; the TS member is named `submitValue` so the
116
+ * directive can satisfy `RdxFormCheckboxControl`, whose contract reserves a
117
+ * `value` member for `RdxFormValueControl` and forbids it on checkbox-style
118
+ * controls. (Checkbox is not yet marked `implements` — its `checked` is still
119
+ * `CheckedState`; see the `indeterminate` half of collision #1.)
120
+ * @group Props
121
+ */
122
+ readonly submitValue: _angular_core.InputSignal<string>;
123
+ /**
124
+ * Whether or not the checkbox button is disabled. This prevents the user from interacting with it.
125
+ * @group Props
126
+ */
127
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
128
+ /**
129
+ * Whether the user should be unable to tick or untick the checkbox.
130
+ * @group Props
131
+ */
132
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
133
+ /**
134
+ * Whether or not the checkbox is required.
135
+ * @group Props
136
+ */
137
+ readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
138
+ /**
139
+ * Name of the form control. Submitted with the form as part of a name/value pair. Inside a
140
+ * `rdxCheckboxGroup` this also identifies the checkbox in the group's value array.
141
+ * @group Props
142
+ */
143
+ readonly name: _angular_core.InputSignal<string | undefined>;
144
+ /**
145
+ * When inside a `rdxCheckboxGroup`, marks this as the "select all" checkbox: its state is
146
+ * derived from the group's `allValues`, and toggling it checks or unchecks every child.
147
+ * @group Props
148
+ */
149
+ readonly parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
150
+ /**
151
+ * Associates the control with a form element.
152
+ * @group Props
153
+ */
154
+ readonly form: _angular_core.InputSignal<string | undefined>;
155
+ /**
156
+ * Event emitted when the checkbox checked state changes.
157
+ * @group Emits
158
+ */
159
+ readonly onCheckedChange: _angular_core.OutputRef<any>;
160
+ /**
161
+ * @ignore
162
+ * The effective checked state as a `boolean`. Inside a `rdxCheckboxGroup` it is derived from the
163
+ * group (a `parent` checkbox is checked only when every child is; a child from whether its `name`
164
+ * is in the group value); standalone it reads the CVA value.
165
+ */
166
+ readonly checkedState: _angular_core.Signal<boolean>;
167
+ /**
168
+ * @ignore
169
+ * The effective mixed state. A `parent` checkbox is indeterminate when some — but not all —
170
+ * children are checked; otherwise it follows the `indeterminate` input.
171
+ */
172
+ readonly indeterminateState: _angular_core.Signal<boolean>;
173
+ /** @ignore The effective disabled state, including the group. */
174
+ readonly disabledState: _angular_core.Signal<boolean>;
175
+ readonly state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
176
+ constructor();
177
+ toggle(): void;
178
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxRootDirective, never>;
179
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxRootDirective, "[rdxCheckboxRoot]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "submitValue": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "parent": { "alias": "parent"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "indeterminate": "indeterminateChange"; "onCheckedChange": "onCheckedChange"; }, never, never, true, [{ directive: typeof i1$1.RdxControlValueAccessor; inputs: { "value": "checked"; "disabled": "disabled"; }; outputs: {}; }]>;
180
+ }
181
+
182
+ /**
183
+ * Directive: rdxCheckboxButton
184
+ * Purpose: Turns a native <button> into an accessible checkbox control bound to the Radix Checkbox context.
185
+ * It mirrors the checkbox state via ARIA/data attributes, toggles on click, and prevents Enter activation per WAI-ARIA.
186
+ * In forms, it stops the button's click from bubbling so only the hidden input emits the native event used for form/validator integration.
187
+ */
188
+ declare class RdxCheckboxButtonDirective {
189
+ protected readonly rootContext: {
190
+ checked: _angular_core.Signal<boolean>;
191
+ indeterminate: _angular_core.Signal<boolean>;
192
+ disabled: _angular_core.Signal<boolean>;
193
+ required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
194
+ value: _angular_core.InputSignal<string>;
195
+ name: _angular_core.InputSignal<string | undefined>;
196
+ parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
197
+ form: _angular_core.InputSignal<string | undefined>;
198
+ readonly: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
199
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
200
+ toggle(): void;
201
+ };
202
+ private readonly group;
203
+ private readonly elementRef;
204
+ /** A `parent` checkbox lists the ids of the children it controls. */
205
+ protected readonly ariaControls: _angular_core.Signal<string | undefined>;
206
+ constructor();
207
+ protected clicked(event: MouseEvent): void;
208
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxButtonDirective, never>;
209
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxButtonDirective, "button[rdxCheckboxButton]", never, {}, {}, never, never, true, never>;
210
+ }
211
+
212
+ declare class RdxCheckboxIndicatorDirective {
213
+ protected readonly rootContext: {
214
+ checked: _angular_core.Signal<boolean>;
215
+ indeterminate: _angular_core.Signal<boolean>;
216
+ disabled: _angular_core.Signal<boolean>;
217
+ required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
218
+ value: _angular_core.InputSignal<string>;
219
+ name: _angular_core.InputSignal<string | undefined>;
220
+ parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
221
+ form: _angular_core.InputSignal<string | undefined>;
222
+ readonly: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
223
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
224
+ toggle(): void;
225
+ };
226
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxIndicatorDirective, never>;
227
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxIndicatorDirective, "[rdxCheckboxIndicator]", never, {}, {}, never, never, true, never>;
228
+ }
229
+
230
+ interface RdxCheckboxGroupContext {
231
+ /** The names of the currently checked checkboxes. */
232
+ value: Signal<string[]>;
233
+ /** All checkbox names, used by a `parent` checkbox to check/uncheck every child. */
234
+ allValues: Signal<string[]>;
235
+ /** Whether the whole group is disabled. */
236
+ disabled: Signal<boolean>;
237
+ /** The derived state of a `parent` checkbox: all / none / some checked. */
238
+ parentState: Signal<CheckedState>;
239
+ /** The space-separated control ids the `parent` checkbox controls (for `aria-controls`). */
240
+ controlledIds: Signal<string | undefined>;
241
+ /** A stable id for a child's control element, derived from the group id and the child name. */
242
+ controlId: (name: string) => string;
243
+ /** Toggle a single child by name. */
244
+ toggleValue: (name: string) => void;
245
+ /** Toggle every child on or off (used by a `parent` checkbox). */
246
+ toggleAll: () => void;
247
+ /** Register a child's name and disabled state so the parent can preserve disabled items. */
248
+ registerChild: (name: string, disabled: Signal<boolean>) => () => void;
249
+ /** Register a child's control element id so the parent can reference it via `aria-controls`. */
250
+ registerControl: (name: string, id: string) => () => void;
251
+ }
252
+ declare const injectCheckboxGroupContext: (optional?: boolean) => RdxCheckboxGroupContext | null;
253
+ declare const provideCheckboxGroupContext: (useFactory: () => RdxCheckboxGroupContext) => _angular_core.Provider;
254
+ /**
255
+ * Groups a set of checkboxes that share a single array value (the names of the checked boxes).
256
+ *
257
+ * Each child `rdxCheckboxRoot` participates by its `name`. A child marked `parent` becomes a
258
+ * "select all" checkbox whose state is derived from `allValues`.
259
+ */
260
+ declare class RdxCheckboxGroupDirective implements ControlValueAccessor {
261
+ /** The names of the currently checked checkboxes. Use with `onValueChange` or `[(value)]`. */
262
+ readonly value: _angular_core.ModelSignal<string[]>;
263
+ /** The names checked initially when the group is uncontrolled. */
264
+ readonly defaultValue: _angular_core.InputSignal<string[] | undefined>;
265
+ /** All checkbox names in the group. Required for a `parent` (select-all) checkbox. */
266
+ readonly allValues: _angular_core.InputSignal<string[]>;
267
+ /** Whether the whole group is disabled. */
268
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
269
+ /** Emits the new array of checked names whenever the value changes. */
270
+ readonly onValueChange: _angular_core.OutputEmitterRef<string[]>;
271
+ private readonly disabledByCva;
272
+ readonly disabledState: Signal<boolean>;
273
+ /** Derived state for a `parent` checkbox: `true` (all), `false` (none) or `'indeterminate'`. */
274
+ readonly parentState: Signal<CheckedState>;
275
+ /**
276
+ * The value as last set directly by a child (or the initial value) — the "remembered" partial
277
+ * selection that a `parent` checkbox cycles back to, mirroring Base UI's `uncontrolledStateRef`.
278
+ */
279
+ private uncontrolledState;
280
+ private seeded;
281
+ /** Where the parent is in its mixed → on → off cycle. Reset to `mixed` on any direct child change. */
282
+ private parentStatus;
283
+ /** Per-name disabled signals, so the parent can preserve disabled-but-checked children. */
284
+ private readonly disabledByName;
285
+ /** Stable group id used to derive child control ids when the consumer sets none. */
286
+ private readonly elementId;
287
+ /** Registered control element ids, keyed by child name. */
288
+ private readonly controlIds;
289
+ /** The space-separated control ids in `allValues` order, for the parent's `aria-controls`. */
290
+ readonly controlledIds: Signal<string | undefined>;
291
+ private hasAppliedDefault;
292
+ private onChange;
293
+ onTouched: () => void;
294
+ constructor();
295
+ /** @ignore Register a child's disabled signal keyed by its name. */
296
+ registerChild(name: string, disabled: Signal<boolean>): () => void;
297
+ /** A stable control id for a child, derived from the group id and the child name. */
298
+ controlId(name: string): string;
299
+ /** @ignore Register a child's control element id so the parent can list it in `aria-controls`. */
300
+ registerControl(name: string, id: string): () => void;
301
+ /** Add/remove a single child name from the value (a direct child change). */
302
+ toggleValue(name: string): void;
303
+ /**
304
+ * Toggle from the `parent` checkbox. Mirrors Base UI's `useCheckboxGroupParent`:
305
+ *
306
+ * - When the remembered selection is all/none, this is a plain check-all ↔ uncheck-all toggle.
307
+ * - When it is a partial selection, clicks cycle: partial → all → none → partial → …, so the
308
+ * user's original partial choice is restored rather than lost.
309
+ *
310
+ * Disabled-but-checked children are always preserved (they cannot be toggled programmatically).
311
+ */
312
+ toggleAll(): void;
313
+ private isNameDisabled;
314
+ /** Seed the remembered selection from the current value the first time the parent is used. */
315
+ private ensureSeeded;
316
+ private emit;
317
+ /** @ignore */
318
+ writeValue(value: string[] | null): void;
319
+ /** @ignore */
320
+ registerOnChange(fn: (value: string[]) => void): void;
321
+ /** @ignore */
322
+ registerOnTouched(fn: () => void): void;
323
+ /** @ignore */
324
+ setDisabledState(isDisabled: boolean): void;
325
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxGroupDirective, never>;
326
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxGroupDirective, "[rdxCheckboxGroup]", ["rdxCheckboxGroup"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "allValues": { "alias": "allValues"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
327
+ }
328
+
329
+ declare const checkboxImports: (typeof RdxCheckboxIndicatorPresenceDirective)[];
330
+ declare class RdxCheckboxModule {
331
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxModule, never>;
332
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxCheckboxModule, never, [typeof RdxCheckboxInputDirective, typeof RdxCheckboxRootDirective, typeof RdxCheckboxButtonDirective, typeof RdxCheckboxIndicatorDirective, typeof RdxCheckboxIndicatorPresenceDirective, typeof RdxCheckboxGroupDirective], [typeof RdxCheckboxInputDirective, typeof RdxCheckboxRootDirective, typeof RdxCheckboxButtonDirective, typeof RdxCheckboxIndicatorDirective, typeof RdxCheckboxIndicatorPresenceDirective, typeof RdxCheckboxGroupDirective]>;
333
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxCheckboxModule>;
334
+ }
335
+
336
+ export { RdxCheckboxButtonDirective, RdxCheckboxGroupDirective, RdxCheckboxIndicatorDirective, RdxCheckboxIndicatorPresenceDirective, RdxCheckboxInputDirective, RdxCheckboxModule, RdxCheckboxRootDirective, checkboxImports, getState, injectCheckboxGroupContext, injectCheckboxRootContext, isIndeterminate, provideCheckboxGroupContext, provideCheckboxRootContext };
337
+ export type { CheckboxRootContext, CheckedState, RdxCheckboxGroupContext };
@@ -0,0 +1,159 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal, ModelSignal, WritableSignal } from '@angular/core';
3
+ import * as _radix_ng_primitives_collapsible from '@radix-ng/primitives/collapsible';
4
+ import { BooleanInput, RdxTransitionStatus } from '@radix-ng/primitives/core';
5
+ import * as i1 from '@radix-ng/primitives/presence';
6
+
7
+ /**
8
+ * A panel with the collapsible contents.
9
+ */
10
+ declare class RdxCollapsiblePanelDirective {
11
+ private readonly elementRef;
12
+ protected readonly rootContext: _radix_ng_primitives_collapsible.CollapsibleRootContext;
13
+ /**
14
+ * Whether to keep the element in the DOM while the panel is closed.
15
+ * When `true`, the closed panel keeps its element (no `hidden` attribute) so the consumer's
16
+ * `data-closed` CSS is responsible for visually collapsing it.
17
+ *
18
+ * @group Props
19
+ * @defaultValue false
20
+ */
21
+ readonly keepMounted: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
22
+ /**
23
+ * Allows the browser's built-in page search to find and expand the panel contents.
24
+ * When `true`, the closed panel uses `hidden="until-found"` instead of plain `hidden`.
25
+ *
26
+ * @group Props
27
+ * @defaultValue false
28
+ */
29
+ readonly hiddenUntilFound: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
30
+ readonly height: _angular_core.WritableSignal<number | null>;
31
+ readonly width: _angular_core.WritableSignal<number | null>;
32
+ /**
33
+ * The `hidden` attribute value. The panel is shown while open or while its exit transition runs;
34
+ * a kept-mounted panel stays visible (the consumer collapses it via CSS); otherwise the closed
35
+ * panel is hidden — with `until-found` when find-in-page support is requested.
36
+ */
37
+ readonly hidden: _angular_core.Signal<"" | "until-found" | undefined>;
38
+ /**
39
+ * The first measurement (the initial mount) must not re-enable animations, so an element that
40
+ * mounts already open renders at its final size without playing the open animation.
41
+ */
42
+ private isFirstMeasure;
43
+ private originalStyles?;
44
+ constructor();
45
+ private updateDimensions;
46
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsiblePanelDirective, never>;
47
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollapsiblePanelDirective, "[rdxCollapsiblePanel]", never, { "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; "hiddenUntilFound": { "alias": "hiddenUntilFound"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
48
+ }
49
+
50
+ type RdxCollapsibleState = 'open' | 'closed';
51
+ interface CollapsibleRootContext {
52
+ /** Stable id linking the trigger's `aria-controls` to the panel. */
53
+ panelId: Signal<string>;
54
+ /** Writable so composing primitives (Accordion) can drive the state. */
55
+ open: ModelSignal<boolean>;
56
+ disabled: Signal<boolean>;
57
+ /** Open/close transition phase, for `data-starting-style` / `data-ending-style`. */
58
+ transitionStatus: Signal<RdxTransitionStatus>;
59
+ /** `true` while the panel should stay rendered: open, or running its exit transition. */
60
+ mounted: Signal<boolean>;
61
+ /**
62
+ * Composition fallbacks. The standalone Panel inputs write here, and Accordion writes here
63
+ * directly; the Panel reads these so both wiring paths converge on a single source of truth.
64
+ */
65
+ keepMounted: WritableSignal<boolean>;
66
+ hiddenUntilFound: WritableSignal<boolean>;
67
+ toggle: () => void;
68
+ /** Registers the panel element whose transition duration gates the close completion. */
69
+ registerTransitionElement: (element: HTMLElement) => () => void;
70
+ }
71
+ declare const injectCollapsibleRootContext: (optional?: boolean) => CollapsibleRootContext | null;
72
+ declare const provideCollapsibleRootContext: (useFactory: () => CollapsibleRootContext) => _angular_core.Provider;
73
+ /**
74
+ * Groups all parts of the collapsible.
75
+ *
76
+ * @group Components
77
+ */
78
+ declare class RdxCollapsibleRootDirective {
79
+ private readonly transition;
80
+ /** Reactive open/close transition phase (`'starting'` | `'ending'` | `undefined`). */
81
+ readonly transitionStatus: Signal<RdxTransitionStatus>;
82
+ /** Registers the panel element whose transition duration gates the close completion. */
83
+ readonly registerTransitionElement: (element: HTMLElement) => () => void;
84
+ /**
85
+ * The controlled open state of the collapsible.
86
+ * `true` - expanded, `false` - collapsed.
87
+ *
88
+ * @group Props
89
+ * @defaultValue false
90
+ */
91
+ readonly open: ModelSignal<boolean>;
92
+ /**
93
+ * The open state of the collapsible when it is initially rendered.
94
+ * Use when you do not need to control its open state.
95
+ *
96
+ * @group Props
97
+ * @defaultValue false
98
+ */
99
+ readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
100
+ /**
101
+ * Whether the component should ignore user interaction.
102
+ *
103
+ * @group Props
104
+ * @defaultValue false
105
+ */
106
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
107
+ /** Stable id linking the trigger's `aria-controls` to the panel. */
108
+ readonly panelId: _angular_core.InputSignal<string>;
109
+ /** Composition fallbacks (see {@link CollapsibleRootContext}). Default `false`. */
110
+ readonly keepMountedContext: WritableSignal<boolean>;
111
+ readonly hiddenUntilFoundContext: WritableSignal<boolean>;
112
+ /** `true` while the panel must stay rendered: open, or mid exit transition. */
113
+ readonly mounted: Signal<boolean>;
114
+ /**
115
+ * Event handler called when the open state of the collapsible changes.
116
+ *
117
+ * @group Emits
118
+ */
119
+ readonly onOpenChange: _angular_core.OutputEmitterRef<boolean>;
120
+ /**
121
+ * Event handler called after the open/close transition has finished.
122
+ *
123
+ * @group Emits
124
+ */
125
+ readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
126
+ private hasAppliedDefaultOpen;
127
+ private previousOpen;
128
+ constructor();
129
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsibleRootDirective, never>;
130
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollapsibleRootDirective, "[rdxCollapsibleRoot]", ["rdxCollapsibleRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "panelId": { "alias": "panelId"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, never>;
131
+ }
132
+
133
+ /**
134
+ * A button that opens and closes the collapsible panel.
135
+ */
136
+ declare class RdxCollapsibleTriggerDirective {
137
+ protected readonly rootContext: _radix_ng_primitives_collapsible.CollapsibleRootContext;
138
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsibleTriggerDirective, never>;
139
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollapsibleTriggerDirective, "[rdxCollapsibleTrigger]", never, {}, {}, never, never, true, never>;
140
+ }
141
+
142
+ /**
143
+ * Structural directive that mounts the collapsible panel contents only while open, unmounting them
144
+ * once the exit animation finishes. Opt into this when the closed contents should leave the DOM;
145
+ * otherwise apply `rdxCollapsiblePanel` directly (optionally with `keepMounted`).
146
+ */
147
+ declare class RdxCollapsiblePanelPresenceDirective {
148
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsiblePanelPresenceDirective, never>;
149
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollapsiblePanelPresenceDirective, "ng-template[rdxCollapsiblePanelPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
150
+ }
151
+
152
+ declare class RdxCollapsibleModule {
153
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsibleModule, never>;
154
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxCollapsibleModule, never, [typeof RdxCollapsiblePanelDirective, typeof RdxCollapsibleRootDirective, typeof RdxCollapsibleTriggerDirective, typeof RdxCollapsiblePanelPresenceDirective], [typeof RdxCollapsiblePanelDirective, typeof RdxCollapsibleRootDirective, typeof RdxCollapsibleTriggerDirective, typeof RdxCollapsiblePanelPresenceDirective]>;
155
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxCollapsibleModule>;
156
+ }
157
+
158
+ export { RdxCollapsibleModule, RdxCollapsiblePanelDirective, RdxCollapsiblePanelPresenceDirective, RdxCollapsibleRootDirective, RdxCollapsibleTriggerDirective, injectCollapsibleRootContext, provideCollapsibleRootContext };
159
+ export type { CollapsibleRootContext, RdxCollapsibleState };
@@ -0,0 +1,44 @@
1
+ import * as _angular_core from '@angular/core';
2
+
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>;
19
+ }
20
+
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>;
36
+ }
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;
43
+
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
  /**
@@ -0,0 +1,73 @@
1
+ import * as i0 from '@angular/core';
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
+
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;
17
+ }
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"; }; }]>;
40
+ }
41
+
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;
57
+ constructor();
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>;
64
+ }
65
+
66
+ declare class RdxContextMenuModule {
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxContextMenuModule, never>;
68
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RdxContextMenuModule, never, [typeof RdxContextMenuRoot, typeof RdxContextMenuTrigger], [typeof RdxContextMenuRoot, typeof RdxContextMenuTrigger]>;
69
+ static ɵinj: i0.ɵɵInjectorDeclaration<RdxContextMenuModule>;
70
+ }
71
+
72
+ export { RdxContextMenuModule, RdxContextMenuRoot, RdxContextMenuTrigger, injectRdxContextMenuRootContext, provideRdxContextMenuRootContext };
73
+ export type { RdxContextMenuRootContext };