@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
@@ -1,13 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnInit, AfterViewInit, InputSignal, ModelSignal, Signal, WritableSignal, InjectionToken } from '@angular/core';
2
+ import { Signal, InjectionToken, InputSignal, ModelSignal, WritableSignal } from '@angular/core';
3
3
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
4
- import { DateMatcher, HourCycle, Granularity, DateStep, Formatter, SegmentValueObj, SegmentPart } from '@radix-ng/primitives/core';
5
- import { Direction } from '@angular/cdk/bidi';
6
- import { BooleanInput } from '@angular/cdk/coercion';
4
+ import { DateMatcher, HourCycle, Granularity, Direction, BooleanInput, DateStep, Formatter, SegmentValueObj, SegmentPart } from '@radix-ng/primitives/core';
7
5
  import { DateValue } from '@internationalized/date';
8
6
 
9
- declare class RdxDateFieldRootDirective implements OnInit, AfterViewInit {
10
- private readonly elementRef;
7
+ declare class RdxDateFieldRootDirective {
11
8
  /**
12
9
  * The controlled checked state of the calendar.
13
10
  */
@@ -51,43 +48,57 @@ declare class RdxDateFieldRootDirective implements OnInit, AfterViewInit {
51
48
  * The stepping interval for the time fields. Defaults to 1
52
49
  */
53
50
  readonly step: _angular_core.InputSignal<DateStep | undefined>;
54
- readonly step$: _angular_core.Signal<DateStep>;
51
+ readonly step$: Signal<DateStep>;
52
+ /**
53
+ * Locale- and hour-cycle-aware formatter. Recomputed whenever `locale` or
54
+ * `hourCycle` change so segments always render with the current settings.
55
+ * @ignore
56
+ */
57
+ readonly formatter: Signal<Formatter>;
55
58
  /**
56
59
  * @ignore
57
60
  */
58
- readonly defaultDate: _angular_core.Signal<DateValue>;
61
+ readonly defaultDate: Signal<DateValue>;
59
62
  /**
60
63
  * The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view
61
64
  */
62
65
  readonly placeholder: _angular_core.ModelSignal<DateValue | undefined>;
63
66
  /**
67
+ * Segment input parts, collected from the projected content in DOM order. This
68
+ * stays in sync with `segmentContents()` (granularity / locale / value changes
69
+ * add or remove segments) instead of being captured once after view init.
64
70
  * @ignore
65
71
  */
66
- readonly segmentElements: _angular_core.WritableSignal<Set<HTMLElement>>;
72
+ private readonly segmentInputs;
67
73
  /**
74
+ * The focusable (non-literal) segment elements, in DOM order.
68
75
  * @ignore
69
76
  */
70
- readonly currentFocusedElement: _angular_core.WritableSignal<HTMLElement | null>;
77
+ readonly segmentElements: Signal<HTMLElement[]>;
71
78
  /**
72
79
  * @ignore
73
80
  */
74
- formatter: Formatter;
81
+ readonly currentFocusedElement: _angular_core.WritableSignal<HTMLElement | null>;
75
82
  /**
76
83
  * @ignore
77
84
  */
78
- readonly segmentValues: _angular_core.WritableSignal<SegmentValueObj>;
85
+ readonly inferredGranularity: Signal<Granularity | undefined>;
79
86
  /**
87
+ * The per-segment values. Writable so segment editing (via `useDateField`) can
88
+ * update individual parts, but re-synced from the model whenever the value,
89
+ * granularity or formatter change — so a controlled `value` set after init is
90
+ * reflected, and an empty field re-initializes when granularity changes.
80
91
  * @ignore
81
92
  */
82
- readonly inferredGranularity: _angular_core.Signal<Granularity | undefined>;
93
+ readonly segmentValues: _angular_core.WritableSignal<SegmentValueObj>;
83
94
  /**
84
95
  * @ignore
85
96
  */
86
- readonly isInvalid: _angular_core.Signal<boolean>;
97
+ readonly isInvalid: Signal<boolean>;
87
98
  /**
88
99
  * @ignore
89
100
  */
90
- readonly allSegmentContent: _angular_core.Signal<{
101
+ readonly allSegmentContent: Signal<{
91
102
  obj: _radix_ng_primitives_core.SegmentContentObj;
92
103
  arr: {
93
104
  part: _radix_ng_primitives_core.SegmentPart;
@@ -97,43 +108,47 @@ declare class RdxDateFieldRootDirective implements OnInit, AfterViewInit {
97
108
  /**
98
109
  * An array of segments that should be readonly, which prevent user input on them.
99
110
  */
100
- readonly segmentContents: _angular_core.Signal<{
111
+ readonly segmentContents: Signal<{
101
112
  part: _radix_ng_primitives_core.SegmentPart;
102
113
  value: string;
103
114
  }[]>;
104
115
  /**
105
116
  * @ignore
106
117
  */
107
- readonly currentSegmentIndex: _angular_core.Signal<number>;
118
+ readonly currentSegmentIndex: Signal<number>;
108
119
  /**
109
120
  * @ignore
110
121
  */
111
- readonly prevFocusableSegment: _angular_core.Signal<HTMLElement | null>;
122
+ readonly prevFocusableSegment: Signal<HTMLElement | null>;
112
123
  /**
113
124
  * @ignore
114
125
  */
115
- readonly nextFocusableSegment: _angular_core.Signal<HTMLElement | null>;
126
+ readonly nextFocusableSegment: Signal<HTMLElement | null>;
116
127
  /**
117
128
  * @ignore
118
129
  */
119
130
  readonly focusNext: () => void;
120
131
  constructor();
121
- ngOnInit(): void;
122
- ngAfterViewInit(): void;
123
132
  /**
124
133
  * @ignore
125
134
  */
126
- onKeydown(event: KeyboardEvent): void;
135
+ onKeydown(event: Event): void;
127
136
  /**
128
137
  * @ignore
129
138
  */
130
139
  setFocusedElement(el: HTMLElement): void;
131
140
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDateFieldRootDirective, never>;
132
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDateFieldRootDirective, "[rdxDateFieldRoot]", ["rdxDateFieldRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "hideTimeZone": { "alias": "hideTimeZone"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "placeholder": "placeholderChange"; }, never, never, true, never>;
141
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDateFieldRootDirective, "[rdxDateFieldRoot]", ["rdxDateFieldRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "hideTimeZone": { "alias": "hideTimeZone"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "placeholder": "placeholderChange"; }, ["segmentInputs"], never, true, never>;
133
142
  }
134
143
 
135
144
  declare class RdxDateFieldInputDirective {
136
145
  private readonly elementRef;
146
+ /**
147
+ * The host element of this segment. Consumed by the root to collect focusable
148
+ * segments in DOM order.
149
+ * @ignore
150
+ */
151
+ readonly element: HTMLElement;
137
152
  private readonly rootContext;
138
153
  /**
139
154
  * The part of the date to render
@@ -165,16 +180,16 @@ declare class RdxDateFieldInputDirective {
165
180
  /**
166
181
  * @ignore
167
182
  */
168
- handleSegmentClick: (e: MouseEvent) => void;
183
+ handleSegmentClick: (e: Event) => void;
169
184
  /**
170
185
  * @ignore
171
186
  */
172
- handleSegmentKeydown: (e: KeyboardEvent) => void;
187
+ handleSegmentKeydown: (e: Event) => void;
173
188
  constructor();
174
189
  /**
175
190
  * @ignore
176
191
  */
177
- onFocus(e: FocusEvent): void;
192
+ onFocus(e: Event): void;
178
193
  /**
179
194
  * @ignore
180
195
  */
@@ -192,7 +207,7 @@ interface DateFieldContextToken {
192
207
  placeholder: ModelSignal<DateValue>;
193
208
  hourCycle: InputSignal<HourCycle>;
194
209
  step$: Signal<DateStep>;
195
- formatter: Formatter;
210
+ formatter: Signal<Formatter>;
196
211
  segmentValues: WritableSignal<SegmentValueObj>;
197
212
  focusNext: () => void;
198
213
  setFocusedElement: (el: HTMLElement) => void;
@@ -0,0 +1,323 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, Provider, Signal, ElementRef } from '@angular/core';
3
+ import * as i1 from '@radix-ng/primitives/presence';
4
+ import { RdxTransitionStatus, BooleanInput } from '@radix-ng/primitives/core';
5
+ import * as _radix_ng_primitives_dialog from '@radix-ng/primitives/dialog';
6
+ import * as i1$1 from '@radix-ng/primitives/portal';
7
+ import { RdxPortalContainer } from '@radix-ng/primitives/portal';
8
+ import * as i1$2 from '@radix-ng/primitives/dismissable-layer';
9
+ import * as i2 from '@radix-ng/primitives/focus-scope';
10
+
11
+ /**
12
+ * Mounts the portal while the dialog is open and waits for CSS exit keyframes before unmounting.
13
+ */
14
+ declare class RdxDialogPortalPresence {
15
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogPortalPresence, never>;
16
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogPortalPresence, "ng-template[rdxDialogPortalPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
17
+ }
18
+
19
+ /**
20
+ * Connects a dialog root with trigger elements rendered elsewhere in the DOM, and exposes
21
+ * imperative `open`/`close`/`toggle` methods.
22
+ */
23
+ declare class RdxDialogHandle<Payload = unknown> {
24
+ private readonly rootContext;
25
+ private readonly triggers;
26
+ private readonly rootTriggerCleanups;
27
+ readonly isOpen: _angular_core.Signal<boolean>;
28
+ open(triggerId: string): void;
29
+ close(): void;
30
+ toggle(triggerId: string, event?: Event): void;
31
+ registerRoot(rootContext: RdxDialogRootContext): () => void;
32
+ registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined): () => void;
33
+ context(): RdxDialogRootContext | undefined;
34
+ }
35
+ declare function createRdxDialogHandle<Payload = unknown>(): RdxDialogHandle<Payload>;
36
+
37
+ type RdxDialogRole = 'dialog' | 'alertdialog';
38
+ /**
39
+ * Behavioral profile for a dialog, supplied by a composing root (e.g. alert-dialog, drawer) to
40
+ * specialize the shared Dialog without new public dialog inputs.
41
+ *
42
+ * These are *force-only* overrides: a variant uses them to pin behavior regardless of the public
43
+ * inputs (as alert-dialog does). A variant that wants a configurable default instead simply leaves
44
+ * the flags off and lets the composing root proxy the `modal` / `disablePointerDismissal` inputs —
45
+ * that is how Drawer stays modal-by-default while remaining user-overridable.
46
+ *
47
+ * The three concerns are kept independent on purpose so future variants can mix them freely
48
+ * (e.g. a modal, non-dismissable drawer that is still `role="dialog"`):
49
+ * - `role` — ARIA role rendered on the popup.
50
+ * - `forceModal` — pin modality to `true` regardless of the `modal` input.
51
+ * - `forcePointerDismissalDisabled` — disable outside-press / focus-out dismissal (Escape still closes).
52
+ */
53
+ interface RdxDialogVariant {
54
+ role: RdxDialogRole;
55
+ forceModal: boolean;
56
+ forcePointerDismissalDisabled: boolean;
57
+ }
58
+ declare const RDX_DIALOG_VARIANT: InjectionToken<RdxDialogVariant>;
59
+ declare function provideRdxDialogVariant(variant: Partial<RdxDialogVariant>): Provider;
60
+
61
+ type RdxDialogModal = boolean | 'trap-focus';
62
+ type RdxDialogOpenChangeReason = 'trigger-press' | 'close-press' | 'outside-press' | 'focus-out' | 'escape-key' | 'swipe' | 'imperative-action' | 'none';
63
+ interface RdxDialogOpenChange {
64
+ open: boolean;
65
+ triggerId: string | null;
66
+ trigger: HTMLElement | undefined;
67
+ reason: RdxDialogOpenChangeReason;
68
+ event: Event;
69
+ }
70
+ interface RdxDialogRootContext {
71
+ contentId: string;
72
+ titleId: Signal<string | undefined>;
73
+ descriptionId: Signal<string | undefined>;
74
+ isOpen: Signal<boolean>;
75
+ /** Effective modality (the variant can pin this to `true`). */
76
+ modal: Signal<RdxDialogModal>;
77
+ /** Effective outside-press / focus-out dismissal flag (the variant can force it on). */
78
+ disablePointerDismissal: Signal<boolean>;
79
+ /** ARIA role for the popup; constant, fixed by the variant at construction. */
80
+ role: RdxDialogRole;
81
+ transitionStatus: Signal<RdxTransitionStatus>;
82
+ trigger: Signal<HTMLElement | undefined>;
83
+ triggers: Signal<HTMLElement[]>;
84
+ payload: Signal<unknown>;
85
+ /** Whether this dialog is nested in another; constant, fixed at construction. */
86
+ nested: boolean;
87
+ nestedDialogOpen: Signal<boolean>;
88
+ setTitleId: (id: string | undefined) => void;
89
+ setDescriptionId: (id: string | undefined) => void;
90
+ registerTransitionElement: (element: HTMLElement) => () => void;
91
+ registerTrigger: (id: string, trigger: HTMLElement, payload: () => unknown) => () => void;
92
+ open: (trigger?: HTMLElement, payload?: unknown, triggerId?: string, reason?: RdxDialogOpenChangeReason, event?: Event) => void;
93
+ close: (reason?: RdxDialogOpenChangeReason, event?: Event) => void;
94
+ toggle: (triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event) => void;
95
+ }
96
+ declare const injectRdxDialogRootContext: (optional?: boolean) => RdxDialogRootContext | null;
97
+ declare const provideRdxDialogRootContext: (useFactory: () => RdxDialogRootContext) => _angular_core.Provider;
98
+ /**
99
+ * Groups all parts of the dialog.
100
+ */
101
+ declare class RdxDialogRoot {
102
+ private readonly destroyRef;
103
+ private readonly parentRoot;
104
+ private readonly variant;
105
+ private hasAppliedDefaultOpen;
106
+ private hasAppliedDefaultTriggerId;
107
+ private readonly registeredTriggers;
108
+ private readonly transition;
109
+ readonly transitionStatus: Signal<RdxTransitionStatus>;
110
+ readonly registerTransitionElement: (element: HTMLElement) => () => void;
111
+ /**
112
+ * Whether the dialog is currently open.
113
+ */
114
+ readonly open: _angular_core.ModelSignal<boolean>;
115
+ /**
116
+ * Whether the dialog is initially open.
117
+ */
118
+ readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
119
+ /**
120
+ * ID of the trigger associated with a controlled dialog.
121
+ */
122
+ readonly triggerId: _angular_core.ModelSignal<string | null>;
123
+ /**
124
+ * ID of the trigger associated with an initially open uncontrolled dialog.
125
+ */
126
+ readonly defaultTriggerId: _angular_core.InputSignal<string | null>;
127
+ /**
128
+ * Determines if the dialog enters a modal state when open.
129
+ * - `true`: focus is trapped, page scroll is locked, outside pointer events are disabled.
130
+ * - `false`: interaction with the rest of the document is allowed.
131
+ * - `'trap-focus'`: focus is trapped, but scroll is not locked and outside pointer events remain enabled.
132
+ */
133
+ readonly modal: _angular_core.InputSignalWithTransform<RdxDialogModal, BooleanInput>;
134
+ /**
135
+ * Determines whether the dialog should close on outside clicks.
136
+ */
137
+ readonly disablePointerDismissal: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
138
+ /**
139
+ * Associates this root with detached trigger elements rendered outside of it.
140
+ */
141
+ readonly handle: _angular_core.InputSignal<RdxDialogHandle<any> | undefined>;
142
+ /**
143
+ * Event handler called when the dialog is opened or closed.
144
+ */
145
+ readonly onOpenChange: _angular_core.OutputEmitterRef<RdxDialogOpenChange>;
146
+ /**
147
+ * Event handler called after any animations complete when the dialog is opened or closed.
148
+ */
149
+ readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
150
+ readonly contentId: string;
151
+ readonly titleId: _angular_core.WritableSignal<string | undefined>;
152
+ readonly descriptionId: _angular_core.WritableSignal<string | undefined>;
153
+ readonly trigger: _angular_core.WritableSignal<HTMLElement | undefined>;
154
+ readonly triggers: _angular_core.WritableSignal<HTMLElement[]>;
155
+ readonly payload: _angular_core.WritableSignal<unknown>;
156
+ readonly nestedOpenCount: _angular_core.WritableSignal<number>;
157
+ /** Whether this dialog is rendered inside another dialog. Fixed at construction. */
158
+ readonly nested: boolean;
159
+ readonly nestedDialogOpen: Signal<boolean>;
160
+ /** ARIA role, fixed at construction by the dialog variant (`alertdialog` for alert dialogs). */
161
+ readonly role: RdxDialogRole;
162
+ /** Effective modality: the variant can pin it to `true` regardless of the `modal` input. */
163
+ readonly effectiveModal: Signal<RdxDialogModal>;
164
+ /** Effective dismissal flag: disabled when the input asks, or when the variant forces it (alerts). */
165
+ readonly effectiveDisablePointerDismissal: Signal<boolean>;
166
+ constructor();
167
+ show(trigger?: HTMLElement | undefined, payload?: unknown, triggerId?: string, reason?: RdxDialogOpenChangeReason, event?: Event): void;
168
+ close(reason?: RdxDialogOpenChangeReason, event?: Event): void;
169
+ toggle(triggerId: string, trigger: HTMLElement, payload?: unknown, event?: Event): void;
170
+ registerTrigger(id: string, trigger: HTMLElement, payload: () => unknown): () => void;
171
+ /** Increments the nested-open counter and returns a release callback that decrements it. */
172
+ openNestedChild(): () => void;
173
+ private syncTriggerId;
174
+ private emitOpenChange;
175
+ private emitOpenChangeComplete;
176
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogRoot, never>;
177
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogRoot, "[rdxDialogRoot]", ["rdxDialogRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "triggerId": { "alias": "triggerId"; "required": false; "isSignal": true; }; "defaultTriggerId": { "alias": "defaultTriggerId"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "disablePointerDismissal": { "alias": "disablePointerDismissal"; "required": false; "isSignal": true; }; "handle": { "alias": "handle"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "triggerId": "triggerIdChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, never>;
178
+ }
179
+
180
+ /**
181
+ * A button that opens the dialog.
182
+ */
183
+ declare class RdxDialogTrigger {
184
+ private readonly parentRootContext;
185
+ readonly elementRef: ElementRef<HTMLElement>;
186
+ /**
187
+ * Associates this trigger with a detached dialog root.
188
+ */
189
+ readonly handle: _angular_core.InputSignal<RdxDialogHandle<any> | undefined>;
190
+ /**
191
+ * Data associated with this trigger while it is active.
192
+ */
193
+ readonly payload: _angular_core.InputSignal<unknown>;
194
+ /**
195
+ * ID used to identify this trigger when opening a detached or controlled dialog.
196
+ */
197
+ readonly id: _angular_core.InputSignal<string | undefined>;
198
+ /**
199
+ * Whether the trigger should ignore user interaction.
200
+ */
201
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
202
+ private readonly generatedId;
203
+ protected readonly triggerId: _angular_core.Signal<string>;
204
+ protected readonly rootContext: _angular_core.Signal<_radix_ng_primitives_dialog.RdxDialogRootContext | null>;
205
+ protected readonly isOpen: _angular_core.Signal<boolean>;
206
+ constructor();
207
+ protected handleClick(event: MouseEvent): void;
208
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogTrigger, never>;
209
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogTrigger, "button[rdxDialogTrigger]", ["rdxDialogTrigger"], { "handle": { "alias": "handle"; "required": false; "isSignal": true; }; "payload": { "alias": "payload"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
210
+ }
211
+
212
+ /**
213
+ * Moves the dialog to a different part of the DOM.
214
+ */
215
+ declare class RdxDialogPortal {
216
+ protected readonly rootContext: _radix_ng_primitives_dialog.RdxDialogRootContext;
217
+ /**
218
+ * Optional container to portal the content into. Defaults to `document.body`.
219
+ */
220
+ readonly container: _angular_core.InputSignal<RdxPortalContainer | undefined>;
221
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogPortal, never>;
222
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogPortal, "[rdxDialogPortal]", ["rdxDialogPortal"], { "container": { "alias": "container"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxPortal; inputs: { "container": "container"; }; outputs: {}; }]>;
223
+ }
224
+
225
+ /**
226
+ * An overlay displayed beneath the dialog popup.
227
+ */
228
+ declare class RdxDialogBackdrop {
229
+ protected readonly rootContext: _radix_ng_primitives_dialog.RdxDialogRootContext;
230
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogBackdrop, never>;
231
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogBackdrop, "[rdxDialogBackdrop]", ["rdxDialogBackdrop"], {}, {}, never, never, true, never>;
232
+ }
233
+
234
+ /**
235
+ * A positioning container for the dialog popup that can be made scrollable.
236
+ *
237
+ * Place it inside the portal, around the popup, to scroll the popup when it is taller than the
238
+ * viewport (outside scroll). Pointer events pass through while the dialog is closed.
239
+ */
240
+ declare class RdxDialogViewport {
241
+ protected readonly rootContext: _radix_ng_primitives_dialog.RdxDialogRootContext;
242
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogViewport, never>;
243
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogViewport, "[rdxDialogViewport]", ["rdxDialogViewport"], {}, {}, never, never, true, never>;
244
+ }
245
+
246
+ /**
247
+ * A container for the dialog contents.
248
+ */
249
+ declare class RdxDialogPopup {
250
+ protected readonly rootContext: _radix_ng_primitives_dialog.RdxDialogRootContext;
251
+ private readonly dismissableLayer;
252
+ private readonly focusScope;
253
+ private dismissDetails;
254
+ /**
255
+ * Event handler called when the escape key is down. Can be prevented.
256
+ */
257
+ readonly escapeKeyDown: _angular_core.OutputRef<KeyboardEvent>;
258
+ /**
259
+ * Event handler called when a pointerdown event happens outside of the popup. Can be prevented.
260
+ */
261
+ readonly pointerDownOutside: _angular_core.OutputRef<PointerEvent>;
262
+ /**
263
+ * Event handler called when focus moves outside of the popup. Can be prevented.
264
+ */
265
+ readonly focusOutside: _angular_core.OutputRef<FocusEvent>;
266
+ /**
267
+ * Event handler called when an interaction happens outside of the popup. Can be prevented.
268
+ */
269
+ readonly interactOutside: _angular_core.OutputRef<PointerEvent | FocusEvent>;
270
+ /**
271
+ * Event handler called before focus moves into the popup. Can be prevented.
272
+ */
273
+ readonly openAutoFocus: _angular_core.OutputRef<Event>;
274
+ /**
275
+ * Event handler called before focus returns after the popup is removed. Can be prevented.
276
+ */
277
+ readonly closeAutoFocus: _angular_core.OutputRef<Event>;
278
+ constructor();
279
+ private isEventOnTrigger;
280
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogPopup, never>;
281
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogPopup, "[rdxDialogPopup]", ["rdxDialogPopup"], {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "openAutoFocus": "openAutoFocus"; "closeAutoFocus": "closeAutoFocus"; }, never, never, true, [{ directive: typeof i1$2.RdxDismissableLayer; inputs: {}; outputs: {}; }, { directive: typeof i2.RdxFocusScope; inputs: {}; outputs: {}; }]>;
282
+ }
283
+
284
+ /**
285
+ * An accessible title for the dialog.
286
+ */
287
+ declare class RdxDialogTitle {
288
+ private readonly rootContext;
289
+ readonly id: string;
290
+ constructor();
291
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogTitle, never>;
292
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogTitle, "[rdxDialogTitle]", ["rdxDialogTitle"], {}, {}, never, never, true, never>;
293
+ }
294
+
295
+ /**
296
+ * An accessible description for the dialog.
297
+ */
298
+ declare class RdxDialogDescription {
299
+ private readonly rootContext;
300
+ readonly id: string;
301
+ constructor();
302
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogDescription, never>;
303
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogDescription, "[rdxDialogDescription]", ["rdxDialogDescription"], {}, {}, never, never, true, never>;
304
+ }
305
+
306
+ /**
307
+ * A button that closes the dialog.
308
+ */
309
+ declare class RdxDialogClose {
310
+ protected readonly rootContext: _radix_ng_primitives_dialog.RdxDialogRootContext;
311
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogClose, never>;
312
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDialogClose, "button[rdxDialogClose]", ["rdxDialogClose"], {}, {}, never, never, true, never>;
313
+ }
314
+
315
+ declare const dialogImports: (typeof RdxDialogPortalPresence)[];
316
+ declare class RdxDialogModule {
317
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDialogModule, never>;
318
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxDialogModule, never, [typeof RdxDialogRoot, typeof RdxDialogTrigger, typeof RdxDialogPortalPresence, typeof RdxDialogPortal, typeof RdxDialogBackdrop, typeof RdxDialogViewport, typeof RdxDialogPopup, typeof RdxDialogTitle, typeof RdxDialogDescription, typeof RdxDialogClose], [typeof RdxDialogRoot, typeof RdxDialogTrigger, typeof RdxDialogPortalPresence, typeof RdxDialogPortal, typeof RdxDialogBackdrop, typeof RdxDialogViewport, typeof RdxDialogPopup, typeof RdxDialogTitle, typeof RdxDialogDescription, typeof RdxDialogClose]>;
319
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxDialogModule>;
320
+ }
321
+
322
+ export { RDX_DIALOG_VARIANT, RdxDialogBackdrop, RdxDialogClose, RdxDialogDescription, RdxDialogHandle, RdxDialogModule, RdxDialogPopup, RdxDialogPortal, RdxDialogPortalPresence, RdxDialogRoot, RdxDialogTitle, RdxDialogTrigger, RdxDialogViewport, createRdxDialogHandle, dialogImports, injectRdxDialogRootContext, provideRdxDialogRootContext, provideRdxDialogVariant };
323
+ export type { RdxDialogModal, RdxDialogOpenChange, RdxDialogOpenChangeReason, RdxDialogRole, RdxDialogRootContext, RdxDialogVariant };
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, Signal, Provider } from '@angular/core';
3
- import { BooleanInput } from '@angular/cdk/coercion';
2
+ import { Signal, InjectionToken, Provider } from '@angular/core';
3
+ import { BooleanInput } from '@radix-ng/primitives/core';
4
4
 
5
5
  /**
6
6
  * Listens for when focus happens outside a DOM subtree.
@@ -33,7 +33,7 @@ declare class RdxPointerDownOutside {
33
33
  readonly pointerDownOutside: _angular_core.OutputEmitterRef<PointerEvent>;
34
34
  private readonly isPointerInsideDOMTree;
35
35
  private readonly handleAndDispatchPointerDownOutsideEvent;
36
- private handleClick;
36
+ private handleClick?;
37
37
  constructor();
38
38
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPointerDownOutside, never>;
39
39
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPointerDownOutside, "[rdxPointerDownOutside]", ["rdxPointerDownOutside"], { "enabledInput": { "alias": "enabled"; "required": false; "isSignal": true; }; }, { "pointerDownOutside": "pointerDownOutside"; }, never, never, true, never>;
@@ -42,7 +42,7 @@ declare class RdxEscapeKeyDown {
42
42
  private readonly elementRef;
43
43
  private readonly destroyRef;
44
44
  readonly escapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
45
- private readonly afterNextRender;
45
+ constructor();
46
46
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEscapeKeyDown, never>;
47
47
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEscapeKeyDown, "[rdxEscapeKeyDown]", ["rdxEscapeKeyDown"], {}, { "escapeKeyDown": "escapeKeyDown"; }, never, never, true, never>;
48
48
  }
@@ -86,13 +86,21 @@ declare class RdxDismissableLayer {
86
86
  * the `DismissableLayer`. Users will need to click twice on outside elements to
87
87
  * interact with them: once to close the `DismissableLayer`, and again to trigger the element.
88
88
  */
89
- readonly disableOutsidePointerEvents: _angular_core.InputSignalWithTransform<boolean, unknown>;
90
- readonly layers: _angular_core.Signal<_angular_core.WritableSignal<RdxDismissableLayer[]>>;
89
+ readonly disableOutsidePointerEvents: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
90
+ readonly isOutsidePointerEventsDisabled: _angular_core.Signal<boolean>;
91
91
  protected readonly isBodyPointerEventsDisabled: _angular_core.Signal<boolean>;
92
92
  protected readonly isPointerEventsEnabled: _angular_core.Signal<boolean>;
93
93
  private readonly index;
94
- private readonly afterNextRender;
94
+ /** The topmost layer in the stack — the only one that should react to the Escape key. */
95
+ private readonly isHighestLayer;
95
96
  constructor();
97
+ /**
98
+ * Toggles `pointer-events: none` on the document body while any layer has
99
+ * `disableOutsidePointerEvents`. Ownership is shared across all layers via
100
+ * {@link originalBodyPointerEvents}: the original value is saved only on the global
101
+ * `0 -> >0` transition and restored only when the count returns to `0`.
102
+ */
103
+ private setupBodyPointerEvents;
96
104
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxDismissableLayer, never>;
97
105
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxDismissableLayer, "[rdxDismissableLayer]", ["rdxDismissableLayer"], { "disableOutsidePointerEvents": { "alias": "disableOutsidePointerEvents"; "required": false; "isSignal": true; }; }, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "dismiss": "dismiss"; }, never, never, true, [{ directive: typeof RdxPointerDownOutside; inputs: {}; outputs: {}; }, { directive: typeof RdxFocusOutside; inputs: {}; outputs: {}; }, { directive: typeof RdxEscapeKeyDown; inputs: {}; outputs: {}; }]>;
98
106
  }