@radix-ng/primitives 1.0.0-beta.3 → 1.0.0-beta.4

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 (97) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +5 -3
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +3 -2
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-autocomplete.mjs +617 -659
  7. package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-calendar.mjs +5 -3
  9. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-combobox.mjs +1305 -572
  11. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-config.mjs +13 -4
  13. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-context-menu.mjs +51 -10
  15. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-core.mjs +1345 -64
  17. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-date-field.mjs +5 -3
  19. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-dialog.mjs +240 -112
  21. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-direction-provider.mjs +70 -0
  23. package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -0
  24. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +519 -184
  25. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-drawer.mjs +3 -3
  27. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-field.mjs +3 -2
  29. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +517 -0
  31. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -0
  32. package/fesm2022/radix-ng-primitives-focus-scope.mjs +296 -70
  33. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-menu.mjs +861 -286
  35. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-menubar.mjs +32 -4
  37. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +144 -159
  39. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-popover.mjs +220 -205
  41. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-popper.mjs +94 -51
  43. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-presence.mjs +1 -1
  45. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-preview-card.mjs +141 -173
  47. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-roving-focus.mjs +4 -2
  49. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-scroll-area.mjs +5 -4
  51. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-select.mjs +211 -156
  53. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-slider.mjs +5 -3
  55. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-stepper.mjs +5 -3
  57. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-time-field.mjs +5 -3
  59. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-toast.mjs +15 -36
  61. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-toggle-group.mjs +5 -3
  63. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-toolbar.mjs +5 -3
  65. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-tooltip.mjs +73 -110
  67. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  68. package/package.json +10 -1
  69. package/types/radix-ng-primitives-accordion.d.ts +4 -3
  70. package/types/radix-ng-primitives-autocomplete.d.ts +217 -152
  71. package/types/radix-ng-primitives-calendar.d.ts +5 -3
  72. package/types/radix-ng-primitives-combobox.d.ts +672 -283
  73. package/types/radix-ng-primitives-config.d.ts +1 -1
  74. package/types/radix-ng-primitives-context-menu.d.ts +15 -5
  75. package/types/radix-ng-primitives-core.d.ts +762 -14
  76. package/types/radix-ng-primitives-date-field.d.ts +3 -2
  77. package/types/radix-ng-primitives-dialog.d.ts +77 -32
  78. package/types/radix-ng-primitives-direction-provider.d.ts +41 -0
  79. package/types/radix-ng-primitives-dismissable-layer.d.ts +147 -99
  80. package/types/radix-ng-primitives-field.d.ts +1 -0
  81. package/types/radix-ng-primitives-floating-focus-manager.d.ts +175 -0
  82. package/types/radix-ng-primitives-focus-scope.d.ts +132 -1
  83. package/types/radix-ng-primitives-menu.d.ts +186 -103
  84. package/types/radix-ng-primitives-navigation-menu.d.ts +37 -75
  85. package/types/radix-ng-primitives-popover.d.ts +59 -92
  86. package/types/radix-ng-primitives-popper.d.ts +39 -9
  87. package/types/radix-ng-primitives-preview-card.d.ts +39 -72
  88. package/types/radix-ng-primitives-roving-focus.d.ts +7 -6
  89. package/types/radix-ng-primitives-scroll-area.d.ts +2 -2
  90. package/types/radix-ng-primitives-select.d.ts +145 -108
  91. package/types/radix-ng-primitives-slider.d.ts +5 -4
  92. package/types/radix-ng-primitives-stepper.d.ts +4 -3
  93. package/types/radix-ng-primitives-time-field.d.ts +3 -2
  94. package/types/radix-ng-primitives-toast.d.ts +7 -7
  95. package/types/radix-ng-primitives-toggle-group.d.ts +5 -4
  96. package/types/radix-ng-primitives-toolbar.d.ts +3 -2
  97. package/types/radix-ng-primitives-tooltip.d.ts +24 -67
@@ -2,11 +2,11 @@ import * as _angular_core from '@angular/core';
2
2
  import { Signal, ElementRef } from '@angular/core';
3
3
  import * as i1 from '@radix-ng/primitives/portal';
4
4
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
5
- import { BooleanInput, NumberInput } from '@radix-ng/primitives/core';
5
+ import { RdxFloatingRootContext, BooleanInput, RdxCancelableChangeEventDetails, NumberInput } from '@radix-ng/primitives/core';
6
6
  import * as i1$1 from '@radix-ng/primitives/popper';
7
- import { RdxPopperContentWrapper, RdxPopperAnchorElement } from '@radix-ng/primitives/popper';
7
+ import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
8
8
  import * as _radix_ng_primitives_preview_card from '@radix-ng/primitives/preview-card';
9
- import * as i2 from '@radix-ng/primitives/dismissable-layer';
9
+ import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
10
10
 
11
11
  /**
12
12
  * Structural directive that teleports the preview-card content into a container (default
@@ -47,16 +47,19 @@ declare class RdxPreviewCardHandle<Payload = unknown> {
47
47
  declare function createRdxPreviewCardHandle<Payload = unknown>(): RdxPreviewCardHandle<Payload>;
48
48
 
49
49
  type RdxPreviewCardOpenChangeReason = 'trigger-hover' | 'trigger-focus' | 'trigger-press' | 'outside-press' | 'escape-key' | 'imperative-action' | 'none';
50
+ type RdxPreviewCardOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxPreviewCardOpenChangeReason>;
50
51
  interface RdxPreviewCardOpenChange {
51
52
  open: boolean;
52
53
  triggerId: string | null;
53
54
  trigger: HTMLElement | undefined;
54
55
  reason: RdxPreviewCardOpenChangeReason;
55
56
  event: Event;
57
+ eventDetails: RdxPreviewCardOpenChangeEventDetails;
56
58
  }
57
59
  interface RdxPreviewCardRootContext {
58
60
  contentId: string;
59
61
  isOpen: Signal<boolean>;
62
+ present: Signal<boolean>;
60
63
  trigger: Signal<HTMLElement | undefined>;
61
64
  triggers: Signal<HTMLElement[]>;
62
65
  isHoverActive: Signal<boolean>;
@@ -87,6 +90,12 @@ type RdxPreviewCardTransitionStatus = 'starting' | 'ending' | undefined;
87
90
  declare class RdxPreviewCardRoot {
88
91
  private readonly popper;
89
92
  private readonly destroyRef;
93
+ /**
94
+ * Per-popup floating root context (ADR 0015) — the shared store the popup's dismissal capability
95
+ * reads (`open`, `triggers`, the reference/floating elements). The tree node is registered by the
96
+ * popup; this context exists independently so dismissal can read `open()`.
97
+ */
98
+ readonly floatingContext: RdxFloatingRootContext;
90
99
  /** Shared open/close transition state machine (completes on the real animationend). */
91
100
  private readonly transition;
92
101
  private hasAppliedDefaultOpen;
@@ -125,11 +134,13 @@ declare class RdxPreviewCardRoot {
125
134
  readonly triggers: _angular_core.WritableSignal<HTMLElement[]>;
126
135
  readonly payload: _angular_core.WritableSignal<unknown>;
127
136
  readonly isPointerDownOnTrigger: _angular_core.WritableSignal<boolean>;
137
+ private readonly preventUnmountOnClose;
128
138
  readonly onOpenChange: _angular_core.OutputEmitterRef<RdxPreviewCardOpenChange>;
129
139
  readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
130
140
  private readonly registeredTriggers;
131
141
  private readonly viewportTriggerChange;
132
142
  readonly state: Signal<"open" | "closed">;
143
+ readonly present: Signal<boolean>;
133
144
  constructor();
134
145
  show(trigger?: HTMLElement | undefined, payload?: unknown, triggerId?: string, reason?: RdxPreviewCardOpenChangeReason, event?: Event, fromHover?: boolean): void;
135
146
  close(reason?: RdxPreviewCardOpenChangeReason, event?: Event): void;
@@ -143,7 +154,7 @@ declare class RdxPreviewCardRoot {
143
154
  registerViewport(onTriggerChange: (previous: HTMLElement, next: HTMLElement) => void): () => boolean;
144
155
  registerTransitionElement(element: HTMLElement): () => void;
145
156
  private syncTriggerId;
146
- private emitOpenChange;
157
+ private createOpenChangeEvent;
147
158
  private clearHoverTimers;
148
159
  private clearOpenTimer;
149
160
  private clearCloseTimer;
@@ -210,104 +221,60 @@ declare class RdxPreviewCardBackdrop {
210
221
 
211
222
  /**
212
223
  * Positions the preview-card against its trigger.
224
+ *
225
+ * A "thin" positioner (ADR 0012): it inherits the popper positioning surface (inputs, `placed`
226
+ * output, unified vars + placement attrs) from {@link RdxPopperContentWrapper} and adds preview-card's
227
+ * own concerns — Base UI-aligned defaults via the config provider, the open/closed/instant state
228
+ * attributes, the deprecated `--radix-preview-card-*` aliases, and the grace-area hover bridge.
213
229
  */
214
- declare class RdxPreviewCardPositioner {
230
+ declare class RdxPreviewCardPositioner extends RdxPopperContentWrapper {
215
231
  protected readonly rootContext: _radix_ng_primitives_preview_card.RdxPreviewCardRootContext;
216
- protected readonly wrapper: RdxPopperContentWrapper;
217
- private readonly elementRef;
232
+ protected readonly legacyVars: Record<string, string>;
233
+ private readonly containerRef;
218
234
  private readonly triggerEl;
219
235
  private readonly containerEl;
220
236
  private readonly graceArea;
221
- /**
222
- * An element to position the popup against. Defaults to the trigger.
223
- */
224
- readonly anchor: _angular_core.InputSignal<RdxPopperAnchorElement>;
225
- /**
226
- * The preferred side of the trigger to render against when open.
227
- */
228
- readonly side: _angular_core.InputSignal<"top" | "right" | "bottom" | "left">;
229
- /**
230
- * Distance between the trigger and the popup in pixels.
231
- */
232
- readonly sideOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
233
- /**
234
- * How to align the popup relative to the specified side.
235
- */
236
- readonly align: _angular_core.InputSignal<"start" | "center" | "end">;
237
- /**
238
- * An offset in pixels from the `start` or `end` alignment options.
239
- */
240
- readonly alignOffset: _angular_core.InputSignalWithTransform<number, NumberInput>;
241
- /**
242
- * Minimum distance to maintain between the arrow and the edges of the popup.
243
- */
244
- readonly arrowPadding: _angular_core.InputSignalWithTransform<number, NumberInput>;
245
- /**
246
- * Whether to override side and alignment preferences to prevent collisions.
247
- */
248
- readonly avoidCollisions: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
249
- /**
250
- * The element used as the collision boundary.
251
- */
252
- readonly collisionBoundary: _angular_core.InputSignal<ElementRef<HTMLElement> | ElementRef<HTMLElement>[] | undefined>;
253
- /**
254
- * Distance in pixels from the boundary edges where collision detection should occur.
255
- */
256
- readonly collisionPadding: _angular_core.InputSignal<number | Partial<Record<"top" | "right" | "bottom" | "left", number>>>;
257
- /**
258
- * The sticky behavior on the alignment axis.
259
- */
260
- readonly sticky: _angular_core.InputSignal<"always" | "partial">;
261
- /**
262
- * Whether to hide the popup when the trigger becomes fully occluded.
263
- */
264
- readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
265
- /**
266
- * The CSS position strategy used by Floating UI.
267
- */
268
- readonly positionStrategy: _angular_core.InputSignal<"fixed" | "absolute">;
269
- /**
270
- * Whether to update position on every animation frame.
271
- */
272
- readonly updatePositionStrategy: _angular_core.InputSignal<"always" | "optimized">;
273
- /**
274
- * Emits when the popup has been placed.
275
- */
276
- readonly placed: _angular_core.OutputRef<void>;
277
237
  constructor();
278
238
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPreviewCardPositioner, never>;
279
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPreviewCardPositioner, "[rdxPreviewCardPositioner]", never, { "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionBoundary": { "alias": "collisionBoundary"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "positionStrategy": { "alias": "positionStrategy"; "required": false; "isSignal": true; }; "updatePositionStrategy": { "alias": "updatePositionStrategy"; "required": false; "isSignal": true; }; }, { "placed": "placed"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContentWrapper; inputs: { "anchor": "anchor"; "side": "side"; "sideOffset": "sideOffset"; "align": "align"; "alignOffset": "alignOffset"; "arrowPadding": "arrowPadding"; "avoidCollisions": "avoidCollisions"; "collisionBoundary": "collisionBoundary"; "collisionPadding": "collisionPadding"; "sticky": "sticky"; "hideWhenDetached": "hideWhenDetached"; "positionStrategy": "positionStrategy"; "updatePositionStrategy": "updatePositionStrategy"; }; outputs: {}; }]>;
239
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPreviewCardPositioner, "[rdxPreviewCardPositioner]", never, {}, {}, never, never, true, never>;
280
240
  }
281
241
 
282
242
  /**
283
243
  * A container for the preview-card contents.
244
+ *
245
+ * **ADR 0015 migration** onto the new floating dismissal engine (dismissal-only — a preview-card has
246
+ * no focus manager, ADR 0017 §1). Escape, an outside press, and a focus-out all close it (the legacy's
247
+ * trigger-press preventDefault is now automatic: the trigger is the registered reference, so a press on
248
+ * it is "inside" and never fires `pointerDownOutside`). A focus-out while a pointer is held on the
249
+ * trigger is still vetoed.
284
250
  */
285
251
  declare class RdxPreviewCardPopup {
286
252
  protected readonly rootContext: _radix_ng_primitives_preview_card.RdxPreviewCardRootContext;
287
- private readonly dismissableLayer;
253
+ private readonly host;
254
+ private readonly floatingContext;
255
+ private readonly registration;
288
256
  private readonly wrapper;
289
257
  protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
290
258
  protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
291
- private dismissDetails;
292
259
  /**
293
260
  * Event handler called when the escape key is down. Can be prevented.
294
261
  */
295
- readonly escapeKeyDown: _angular_core.OutputRef<KeyboardEvent>;
262
+ readonly escapeKeyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
296
263
  /**
297
264
  * Event handler called when a pointerdown event happens outside of the popup. Can be prevented.
298
265
  */
299
- readonly pointerDownOutside: _angular_core.OutputRef<PointerEvent>;
266
+ readonly pointerDownOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent>;
300
267
  /**
301
268
  * Event handler called when focus moves outside of the popup. Can be prevented.
302
269
  */
303
- readonly focusOutside: _angular_core.OutputRef<FocusEvent>;
270
+ readonly focusOutside: _angular_core.OutputEmitterRef<FocusEvent>;
304
271
  /**
305
272
  * Event handler called when an interaction happens outside of the popup. Can be prevented.
306
273
  */
307
- readonly interactOutside: _angular_core.OutputRef<PointerEvent | FocusEvent>;
274
+ readonly interactOutside: _angular_core.OutputEmitterRef<RdxOutsidePressDomEvent | FocusEvent>;
308
275
  constructor();
309
276
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxPreviewCardPopup, never>;
310
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPreviewCardPopup, "[rdxPreviewCardPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof i2.RdxDismissableLayer; inputs: {}; outputs: {}; }]>;
277
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxPreviewCardPopup, "[rdxPreviewCardPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }]>;
311
278
  }
312
279
 
313
280
  /**
@@ -357,4 +324,4 @@ declare class RdxPreviewCardModule {
357
324
  }
358
325
 
359
326
  export { RdxPreviewCardArrow, RdxPreviewCardBackdrop, RdxPreviewCardHandle, RdxPreviewCardModule, RdxPreviewCardPopup, RdxPreviewCardPortal, RdxPreviewCardPortalMisuseGuard, RdxPreviewCardPositioner, RdxPreviewCardRoot, RdxPreviewCardTrigger, RdxPreviewCardViewport, createRdxPreviewCardHandle, injectRdxPreviewCardRootContext, previewCardImports, provideRdxPreviewCardRootContext };
360
- export type { RdxPreviewCardOpenChange, RdxPreviewCardOpenChangeReason, RdxPreviewCardRootContext, RdxPreviewCardTransitionStatus };
327
+ export type { RdxPreviewCardOpenChange, RdxPreviewCardOpenChangeEventDetails, RdxPreviewCardOpenChangeReason, RdxPreviewCardRootContext, RdxPreviewCardTransitionStatus };
@@ -9,7 +9,7 @@ declare function focusFirst(candidates: HTMLElement[], preventScroll?: boolean,
9
9
 
10
10
  declare const rootContext: () => {
11
11
  loop: _angular_core.Signal<boolean>;
12
- dir: _angular_core.Signal<Direction>;
12
+ dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
13
13
  orientation: _angular_core.Signal<Orientation>;
14
14
  currentTabStopId: _angular_core.ModelSignal<string | undefined>;
15
15
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
@@ -21,7 +21,7 @@ declare const rootContext: () => {
21
21
  type RovingFocusGroupContext = ReturnType<typeof rootContext>;
22
22
  declare const injectRovingFocusGroupContext: _radix_ng_primitives_core.InjectContext<{
23
23
  loop: _angular_core.Signal<boolean>;
24
- dir: _angular_core.Signal<Direction>;
24
+ dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
25
25
  orientation: _angular_core.Signal<Orientation>;
26
26
  currentTabStopId: _angular_core.ModelSignal<string | undefined>;
27
27
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
@@ -32,7 +32,7 @@ declare const injectRovingFocusGroupContext: _radix_ng_primitives_core.InjectCon
32
32
  }>;
33
33
  declare const provideRovingFocusGroupContext: (useFactory: () => {
34
34
  loop: _angular_core.Signal<boolean>;
35
- dir: _angular_core.Signal<Direction>;
35
+ dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
36
36
  orientation: _angular_core.Signal<Orientation>;
37
37
  currentTabStopId: _angular_core.ModelSignal<string | undefined>;
38
38
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
@@ -55,7 +55,8 @@ declare class RdxRovingFocusGroupDirective {
55
55
  /**
56
56
  * The direction of navigation between items.
57
57
  */
58
- readonly dirInput: _angular_core.InputSignal<Direction>;
58
+ readonly dirInput: _angular_core.InputSignal<Direction | undefined>;
59
+ private readonly effectiveDir;
59
60
  /**
60
61
  * Whether keyboard navigation should loop around
61
62
  */
@@ -85,7 +86,7 @@ declare class RdxRovingFocusGroupDirective {
85
86
  private readonly _orientation;
86
87
  readonly orientation: _angular_core.Signal<Orientation>;
87
88
  private readonly _dir;
88
- readonly dir: _angular_core.Signal<Direction>;
89
+ readonly dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
89
90
  private readonly _loop;
90
91
  readonly loop: _angular_core.Signal<boolean>;
91
92
  readonly focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
@@ -121,7 +122,7 @@ declare class RdxRovingFocusItemDirective {
121
122
  */
122
123
  protected readonly rootContext: {
123
124
  loop: _angular_core.Signal<boolean>;
124
- dir: _angular_core.Signal<_radix_ng_primitives_roving_focus.Direction>;
125
+ dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
125
126
  orientation: _angular_core.Signal<_radix_ng_primitives_roving_focus.Orientation>;
126
127
  currentTabStopId: _angular_core.ModelSignal<string | undefined>;
127
128
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
@@ -83,7 +83,7 @@ declare class RdxScrollAreaRoot {
83
83
  private readonly destroyRef;
84
84
  readonly rootId: string;
85
85
  /** Text direction of the scroll area. Affects horizontal (RTL) scroll math. */
86
- readonly dir: _angular_core.InputSignal<Direction>;
86
+ readonly dirInput: _angular_core.InputSignal<Direction | undefined>;
87
87
  readonly direction: Signal<Direction>;
88
88
  /**
89
89
  * The threshold in pixels that must be passed before the overflow edge attributes are applied.
@@ -135,7 +135,7 @@ declare class RdxScrollAreaRoot {
135
135
  onTouchModalityChange(event: PointerEvent): void;
136
136
  onPointerEnterOrMove(event: PointerEvent): void;
137
137
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxScrollAreaRoot, never>;
138
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxScrollAreaRoot, "[rdxScrollAreaRoot]", ["rdxScrollAreaRoot"], { "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "overflowEdgeThreshold": { "alias": "overflowEdgeThreshold"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
138
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxScrollAreaRoot, "[rdxScrollAreaRoot]", ["rdxScrollAreaRoot"], { "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "overflowEdgeThreshold": { "alias": "overflowEdgeThreshold"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
139
139
  }
140
140
 
141
141
  interface ScrollAreaViewportContext {