@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,9 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { Signal } from '@angular/core';
2
3
  import * as i1 from '@radix-ng/primitives/presence';
3
- import * as _angular_cdk_coercion from '@angular/cdk/coercion';
4
- import { BooleanInput } from '@angular/cdk/coercion';
5
- import * as _radix_ng_primitives_checkbox from '@radix-ng/primitives/checkbox';
6
- import * as i1$1 from '@radix-ng/primitives/core';
4
+ import * as _radix_ng_primitives_types_radix_ng_primitives_core from '@radix-ng/primitives/types/radix-ng-primitives-core';
5
+ import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
6
+ import { BooleanInput, RdxFormCheckboxControl } from '@radix-ng/primitives/core';
7
+ import { ControlValueAccessor } from '@angular/forms';
7
8
 
8
9
  declare class RdxCheckboxIndicatorPresenceDirective {
9
10
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxIndicatorPresenceDirective, never>;
@@ -12,75 +13,113 @@ declare class RdxCheckboxIndicatorPresenceDirective {
12
13
 
13
14
  declare class RdxCheckboxInputDirective {
14
15
  protected readonly rootContext: {
15
- checked: _angular_core.Signal<_radix_ng_primitives_checkbox.CheckedState | undefined>;
16
+ checked: _angular_core.Signal<boolean>;
17
+ indeterminate: _angular_core.Signal<boolean>;
16
18
  disabled: _angular_core.Signal<boolean>;
17
- required: _angular_core.InputSignalWithTransform<boolean, _angular_cdk_coercion.BooleanInput>;
19
+ required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
18
20
  value: _angular_core.InputSignal<string>;
19
21
  name: _angular_core.InputSignal<string | undefined>;
22
+ parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
20
23
  form: _angular_core.InputSignal<string | undefined>;
21
- readonly: _angular_core.InputSignalWithTransform<boolean, _angular_cdk_coercion.BooleanInput>;
22
- state: _angular_core.Signal<any>;
24
+ readonly: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
25
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
23
26
  toggle(): void;
24
27
  };
25
- private readonly elementRef;
26
- private readonly destroyRef;
28
+ private readonly input;
27
29
  constructor();
28
30
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxInputDirective, never>;
29
31
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxInputDirective, "input[rdxCheckboxInput]", never, {}, {}, never, never, true, never>;
30
32
  }
31
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
+ */
32
40
  type CheckedState = boolean | 'indeterminate';
33
41
  declare function isIndeterminate(checked?: CheckedState): checked is 'indeterminate';
34
42
  declare function getState(checked: CheckedState): "indeterminate" | "checked" | "unchecked";
35
43
  declare const rootContext: () => {
36
- checked: _angular_core.Signal<CheckedState | undefined>;
44
+ checked: _angular_core.Signal<boolean>;
45
+ indeterminate: _angular_core.Signal<boolean>;
37
46
  disabled: _angular_core.Signal<boolean>;
38
47
  required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
39
48
  value: _angular_core.InputSignal<string>;
40
49
  name: _angular_core.InputSignal<string | undefined>;
50
+ parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
41
51
  form: _angular_core.InputSignal<string | undefined>;
42
52
  readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
43
- state: _angular_core.Signal<any>;
53
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
44
54
  toggle(): void;
45
55
  };
46
56
  type CheckboxRootContext = ReturnType<typeof rootContext>;
47
- declare const injectCheckboxRootContext: (optional?: boolean) => {
48
- checked: _angular_core.Signal<CheckedState | undefined>;
57
+ declare const injectCheckboxRootContext: _radix_ng_primitives_core.InjectContext<{
58
+ checked: _angular_core.Signal<boolean>;
59
+ indeterminate: _angular_core.Signal<boolean>;
49
60
  disabled: _angular_core.Signal<boolean>;
50
61
  required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
51
62
  value: _angular_core.InputSignal<string>;
52
63
  name: _angular_core.InputSignal<string | undefined>;
64
+ parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
53
65
  form: _angular_core.InputSignal<string | undefined>;
54
66
  readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
55
- state: _angular_core.Signal<any>;
67
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
56
68
  toggle(): void;
57
- } | null;
69
+ }>;
58
70
  declare const provideCheckboxRootContext: (useFactory: () => {
59
- checked: _angular_core.Signal<CheckedState | undefined>;
71
+ checked: _angular_core.Signal<boolean>;
72
+ indeterminate: _angular_core.Signal<boolean>;
60
73
  disabled: _angular_core.Signal<boolean>;
61
74
  required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
62
75
  value: _angular_core.InputSignal<string>;
63
76
  name: _angular_core.InputSignal<string | undefined>;
77
+ parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
64
78
  form: _angular_core.InputSignal<string | undefined>;
65
79
  readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
66
- state: _angular_core.Signal<any>;
80
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
67
81
  toggle(): void;
68
82
  }) => _angular_core.Provider;
69
83
  /**
70
84
  * @group Components
71
85
  */
72
- declare class RdxCheckboxRootDirective {
86
+ declare class RdxCheckboxRootDirective implements RdxFormCheckboxControl {
73
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>;
74
96
  /**
75
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`.
76
109
  * @group Props
77
110
  */
78
- readonly checked: _angular_core.ModelSignal<CheckedState>;
111
+ readonly indeterminate: _angular_core.ModelSignal<boolean>;
79
112
  /**
80
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.)
81
120
  * @group Props
82
121
  */
83
- readonly value: _angular_core.InputSignal<string>;
122
+ readonly submitValue: _angular_core.InputSignal<string>;
84
123
  /**
85
124
  * Whether or not the checkbox button is disabled. This prevents the user from interacting with it.
86
125
  * @group Props
@@ -97,10 +136,17 @@ declare class RdxCheckboxRootDirective {
97
136
  */
98
137
  readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
99
138
  /**
100
- * Name of the form control. Submitted with the form as part of a name/value pair.
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.
101
141
  * @group Props
102
142
  */
103
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>;
104
150
  /**
105
151
  * Associates the control with a form element.
106
152
  * @group Props
@@ -111,10 +157,26 @@ declare class RdxCheckboxRootDirective {
111
157
  * @group Emits
112
158
  */
113
159
  readonly onCheckedChange: _angular_core.OutputRef<any>;
114
- readonly state: _angular_core.Signal<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();
115
177
  toggle(): void;
116
178
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxRootDirective, never>;
117
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxRootDirective, "[rdxCheckboxRoot]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "value": { "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; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "onCheckedChange": "onCheckedChange"; }, never, never, true, [{ directive: typeof i1$1.RdxControlValueAccessor; inputs: { "value": "checked"; "disabled": "disabled"; }; outputs: {}; }]>;
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 _radix_ng_primitives_core.RdxControlValueAccessor; inputs: { "value": "checked"; "disabled": "disabled"; }; outputs: {}; }]>;
118
180
  }
119
181
 
120
182
  /**
@@ -125,17 +187,23 @@ declare class RdxCheckboxRootDirective {
125
187
  */
126
188
  declare class RdxCheckboxButtonDirective {
127
189
  protected readonly rootContext: {
128
- checked: _angular_core.Signal<_radix_ng_primitives_checkbox.CheckedState | undefined>;
190
+ checked: _angular_core.Signal<boolean>;
191
+ indeterminate: _angular_core.Signal<boolean>;
129
192
  disabled: _angular_core.Signal<boolean>;
130
- required: _angular_core.InputSignalWithTransform<boolean, _angular_cdk_coercion.BooleanInput>;
193
+ required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
131
194
  value: _angular_core.InputSignal<string>;
132
195
  name: _angular_core.InputSignal<string | undefined>;
196
+ parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
133
197
  form: _angular_core.InputSignal<string | undefined>;
134
- readonly: _angular_core.InputSignalWithTransform<boolean, _angular_cdk_coercion.BooleanInput>;
135
- state: _angular_core.Signal<any>;
198
+ readonly: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
199
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
136
200
  toggle(): void;
137
201
  };
202
+ private readonly group;
138
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();
139
207
  protected clicked(event: MouseEvent): void;
140
208
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxButtonDirective, never>;
141
209
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxButtonDirective, "button[rdxCheckboxButton]", never, {}, {}, never, never, true, never>;
@@ -143,26 +211,127 @@ declare class RdxCheckboxButtonDirective {
143
211
 
144
212
  declare class RdxCheckboxIndicatorDirective {
145
213
  protected readonly rootContext: {
146
- checked: _angular_core.Signal<_radix_ng_primitives_checkbox.CheckedState | undefined>;
214
+ checked: _angular_core.Signal<boolean>;
215
+ indeterminate: _angular_core.Signal<boolean>;
147
216
  disabled: _angular_core.Signal<boolean>;
148
- required: _angular_core.InputSignalWithTransform<boolean, _angular_cdk_coercion.BooleanInput>;
217
+ required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
149
218
  value: _angular_core.InputSignal<string>;
150
219
  name: _angular_core.InputSignal<string | undefined>;
220
+ parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
151
221
  form: _angular_core.InputSignal<string | undefined>;
152
- readonly: _angular_core.InputSignalWithTransform<boolean, _angular_cdk_coercion.BooleanInput>;
153
- state: _angular_core.Signal<any>;
222
+ readonly: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
223
+ state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
154
224
  toggle(): void;
155
225
  };
156
226
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxIndicatorDirective, never>;
157
227
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCheckboxIndicatorDirective, "[rdxCheckboxIndicator]", never, {}, {}, never, never, true, never>;
158
228
  }
159
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: _radix_ng_primitives_core.InjectContext<RdxCheckboxGroupContext>;
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
+
160
329
  declare const checkboxImports: (typeof RdxCheckboxIndicatorPresenceDirective)[];
161
330
  declare class RdxCheckboxModule {
162
331
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxModule, never>;
163
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxCheckboxModule, never, [typeof RdxCheckboxInputDirective, typeof RdxCheckboxRootDirective, typeof RdxCheckboxButtonDirective, typeof RdxCheckboxIndicatorDirective, typeof RdxCheckboxIndicatorPresenceDirective], [typeof RdxCheckboxInputDirective, typeof RdxCheckboxRootDirective, typeof RdxCheckboxButtonDirective, typeof RdxCheckboxIndicatorDirective, typeof RdxCheckboxIndicatorPresenceDirective]>;
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]>;
164
333
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxCheckboxModule>;
165
334
  }
166
335
 
167
- export { RdxCheckboxButtonDirective, RdxCheckboxIndicatorDirective, RdxCheckboxIndicatorPresenceDirective, RdxCheckboxInputDirective, RdxCheckboxModule, RdxCheckboxRootDirective, checkboxImports, getState, injectCheckboxRootContext, isIndeterminate, provideCheckboxRootContext };
168
- export type { CheckboxRootContext, CheckedState };
336
+ export { RdxCheckboxButtonDirective, RdxCheckboxGroupDirective, RdxCheckboxIndicatorDirective, RdxCheckboxIndicatorPresenceDirective, RdxCheckboxInputDirective, RdxCheckboxModule, RdxCheckboxRootDirective, checkboxImports, getState, injectCheckboxGroupContext, injectCheckboxRootContext, isIndeterminate, provideCheckboxGroupContext, provideCheckboxRootContext };
337
+ export type { CheckboxRootContext, CheckedState, RdxCheckboxGroupContext };
@@ -1,86 +1,160 @@
1
- import * as i0 from '@angular/core';
2
- import { InputSignal, ModelSignal, Signal } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal, ModelSignal, WritableSignal } from '@angular/core';
3
3
  import * as _radix_ng_primitives_collapsible from '@radix-ng/primitives/collapsible';
4
- import { BooleanInput } from '@angular/cdk/coercion';
4
+ import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
5
+ import { BooleanInput, RdxTransitionStatus } from '@radix-ng/primitives/core';
5
6
  import * as i1 from '@radix-ng/primitives/presence';
6
7
 
7
- declare class RdxCollapsibleContentDirective {
8
+ /**
9
+ * A panel with the collapsible contents.
10
+ */
11
+ declare class RdxCollapsiblePanelDirective {
8
12
  private readonly elementRef;
9
- private readonly platformId;
10
13
  protected readonly rootContext: _radix_ng_primitives_collapsible.CollapsibleRootContext;
11
- readonly isOpen: i0.Signal<boolean>;
12
- readonly height: i0.WritableSignal<number | null>;
13
- readonly width: i0.WritableSignal<number | null>;
14
- readonly shouldHide: i0.WritableSignal<boolean>;
15
- private isMountAnimationPrevented;
16
- private currentStyle;
17
- private firstRender;
14
+ /**
15
+ * Whether to keep the element in the DOM while the panel is closed.
16
+ * When `true`, the closed panel keeps its element (no `hidden` attribute) so the consumer's
17
+ * `data-closed` CSS is responsible for visually collapsing it.
18
+ *
19
+ * @group Props
20
+ * @defaultValue false
21
+ */
22
+ readonly keepMounted: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
23
+ /**
24
+ * Allows the browser's built-in page search to find and expand the panel contents.
25
+ * When `true`, the closed panel uses `hidden="until-found"` instead of plain `hidden`.
26
+ *
27
+ * @group Props
28
+ * @defaultValue false
29
+ */
30
+ readonly hiddenUntilFound: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
31
+ readonly height: _angular_core.WritableSignal<number | null>;
32
+ readonly width: _angular_core.WritableSignal<number | null>;
33
+ /**
34
+ * The `hidden` attribute value. The panel is shown while open or while its exit transition runs;
35
+ * a kept-mounted panel stays visible (the consumer collapses it via CSS); otherwise the closed
36
+ * panel is hidden — with `until-found` when find-in-page support is requested.
37
+ */
38
+ readonly hidden: _angular_core.Signal<"" | "until-found" | undefined>;
39
+ /**
40
+ * The first measurement (the initial mount) must not re-enable animations, so an element that
41
+ * mounts already open renders at its final size without playing the open animation.
42
+ */
43
+ private isFirstMeasure;
44
+ private originalStyles?;
18
45
  constructor();
19
- onAnimationEnd(): void;
20
46
  private updateDimensions;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxCollapsibleContentDirective, never>;
22
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxCollapsibleContentDirective, "[rdxCollapsibleContent]", never, {}, {}, never, never, true, never>;
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsiblePanelDirective, never>;
48
+ 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>;
23
49
  }
24
50
 
25
51
  type RdxCollapsibleState = 'open' | 'closed';
26
52
  interface CollapsibleRootContext {
27
- contentId: InputSignal<string>;
53
+ /** Stable id linking the trigger's `aria-controls` to the panel. */
54
+ panelId: Signal<string>;
55
+ /** Writable so composing primitives (Accordion) can drive the state. */
28
56
  open: ModelSignal<boolean>;
29
- toggle: () => void;
30
57
  disabled: Signal<boolean>;
58
+ /** Open/close transition phase, for `data-starting-style` / `data-ending-style`. */
59
+ transitionStatus: Signal<RdxTransitionStatus>;
60
+ /** `true` while the panel should stay rendered: open, or running its exit transition. */
61
+ mounted: Signal<boolean>;
62
+ /**
63
+ * Composition fallbacks. The standalone Panel inputs write here, and Accordion writes here
64
+ * directly; the Panel reads these so both wiring paths converge on a single source of truth.
65
+ */
66
+ keepMounted: WritableSignal<boolean>;
67
+ hiddenUntilFound: WritableSignal<boolean>;
68
+ toggle: () => void;
69
+ /** Registers the panel element whose transition duration gates the close completion. */
70
+ registerTransitionElement: (element: HTMLElement) => () => void;
31
71
  }
32
- declare const injectCollapsibleRootContext: (optional?: boolean) => CollapsibleRootContext | null;
33
- declare const provideCollapsibleRootContext: (useFactory: () => CollapsibleRootContext) => i0.Provider;
72
+ declare const injectCollapsibleRootContext: _radix_ng_primitives_core.InjectContext<CollapsibleRootContext>;
73
+ declare const provideCollapsibleRootContext: (useFactory: () => CollapsibleRootContext) => _angular_core.Provider;
34
74
  /**
75
+ * Groups all parts of the collapsible.
76
+ *
35
77
  * @group Components
36
78
  */
37
79
  declare class RdxCollapsibleRootDirective {
80
+ private readonly transition;
81
+ /** Reactive open/close transition phase (`'starting'` | `'ending'` | `undefined`). */
82
+ readonly transitionStatus: Signal<RdxTransitionStatus>;
83
+ /** Registers the panel element whose transition duration gates the close completion. */
84
+ readonly registerTransitionElement: (element: HTMLElement) => () => void;
38
85
  /**
39
86
  * The controlled open state of the collapsible.
40
- * Sets the state of the directive. `true` - expanded, `false` - collapsed
87
+ * `true` - expanded, `false` - collapsed.
41
88
  *
42
89
  * @group Props
43
90
  * @defaultValue false
44
91
  */
45
92
  readonly open: ModelSignal<boolean>;
46
- readonly contentId: InputSignal<string>;
47
93
  /**
48
- * Determines whether a directive is available for interaction.
49
- * When true, prevents the user from interacting with the collapsible.
94
+ * The open state of the collapsible when it is initially rendered.
95
+ * Use when you do not need to control its open state.
50
96
  *
51
97
  * @group Props
98
+ * @defaultValue false
52
99
  */
53
- readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
54
- readonly _disabled: i0.WritableSignal<boolean>;
55
- readonly isDisabled: Signal<boolean>;
56
- readonly isOpen: Signal<boolean>;
100
+ readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
101
+ /**
102
+ * Whether the component should ignore user interaction.
103
+ *
104
+ * @group Props
105
+ * @defaultValue false
106
+ */
107
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
108
+ /** Stable id linking the trigger's `aria-controls` to the panel. */
109
+ readonly panelId: _angular_core.InputSignal<string>;
110
+ /** Composition fallbacks (see {@link CollapsibleRootContext}). Default `false`. */
111
+ readonly keepMountedContext: WritableSignal<boolean>;
112
+ readonly hiddenUntilFoundContext: WritableSignal<boolean>;
113
+ /** `true` while the panel must stay rendered: open, or mid exit transition. */
114
+ readonly mounted: Signal<boolean>;
57
115
  /**
58
- * Emitted with new value when directive state changed.
59
116
  * Event handler called when the open state of the collapsible changes.
60
117
  *
61
118
  * @group Emits
62
119
  */
63
- readonly onOpenChange: i0.OutputEmitterRef<boolean>;
64
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxCollapsibleRootDirective, never>;
65
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxCollapsibleRootDirective, "[rdxCollapsibleRoot]", ["rdxCollapsibleRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "contentId": { "alias": "contentId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "onOpenChange": "onOpenChange"; }, never, never, true, never>;
120
+ readonly onOpenChange: _angular_core.OutputEmitterRef<boolean>;
121
+ /**
122
+ * Event handler called after the open/close transition has finished.
123
+ *
124
+ * @group Emits
125
+ */
126
+ readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
127
+ private hasAppliedDefaultOpen;
128
+ private previousOpen;
129
+ constructor();
130
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsibleRootDirective, never>;
131
+ 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>;
66
132
  }
67
133
 
134
+ /**
135
+ * A button that opens and closes the collapsible panel.
136
+ */
68
137
  declare class RdxCollapsibleTriggerDirective {
69
138
  protected readonly rootContext: _radix_ng_primitives_collapsible.CollapsibleRootContext;
70
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxCollapsibleTriggerDirective, never>;
71
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxCollapsibleTriggerDirective, "[rdxCollapsibleTrigger]", never, {}, {}, never, never, true, never>;
139
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsibleTriggerDirective, never>;
140
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollapsibleTriggerDirective, "[rdxCollapsibleTrigger]", never, {}, {}, never, never, true, never>;
72
141
  }
73
142
 
74
- declare class RdxCollapsibleContentPresenceDirective {
75
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxCollapsibleContentPresenceDirective, never>;
76
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxCollapsibleContentPresenceDirective, "ng-template[rdxCollapsibleContentPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
143
+ /**
144
+ * Structural directive that mounts the collapsible panel contents only while open, unmounting them
145
+ * once the exit animation finishes. Opt into this when the closed contents should leave the DOM;
146
+ * otherwise apply `rdxCollapsiblePanel` directly (optionally with `keepMounted`).
147
+ */
148
+ declare class RdxCollapsiblePanelPresenceDirective {
149
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsiblePanelPresenceDirective, never>;
150
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxCollapsiblePanelPresenceDirective, "ng-template[rdxCollapsiblePanelPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
77
151
  }
78
152
 
79
153
  declare class RdxCollapsibleModule {
80
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxCollapsibleModule, never>;
81
- static ɵmod: i0.ɵɵNgModuleDeclaration<RdxCollapsibleModule, never, [typeof RdxCollapsibleContentDirective, typeof RdxCollapsibleRootDirective, typeof RdxCollapsibleTriggerDirective, typeof RdxCollapsibleContentPresenceDirective], [typeof RdxCollapsibleContentDirective, typeof RdxCollapsibleRootDirective, typeof RdxCollapsibleTriggerDirective, typeof RdxCollapsibleContentPresenceDirective]>;
82
- static ɵinj: i0.ɵɵInjectorDeclaration<RdxCollapsibleModule>;
154
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCollapsibleModule, never>;
155
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxCollapsibleModule, never, [typeof RdxCollapsiblePanelDirective, typeof RdxCollapsibleRootDirective, typeof RdxCollapsibleTriggerDirective, typeof RdxCollapsiblePanelPresenceDirective], [typeof RdxCollapsiblePanelDirective, typeof RdxCollapsibleRootDirective, typeof RdxCollapsibleTriggerDirective, typeof RdxCollapsiblePanelPresenceDirective]>;
156
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxCollapsibleModule>;
83
157
  }
84
158
 
85
- export { RdxCollapsibleContentDirective, RdxCollapsibleContentPresenceDirective, RdxCollapsibleModule, RdxCollapsibleRootDirective, RdxCollapsibleTriggerDirective, injectCollapsibleRootContext, provideCollapsibleRootContext };
159
+ export { RdxCollapsibleModule, RdxCollapsiblePanelDirective, RdxCollapsiblePanelPresenceDirective, RdxCollapsibleRootDirective, RdxCollapsibleTriggerDirective, injectCollapsibleRootContext, provideCollapsibleRootContext };
86
160
  export type { CollapsibleRootContext, RdxCollapsibleState };