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

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 (54) hide show
  1. package/fesm2022/radix-ng-primitives-checkbox.mjs +33 -18
  2. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-core.mjs +7 -0
  4. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-dialog.mjs +54 -12
  6. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-editable.mjs +12 -7
  8. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  9. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +294 -8
  10. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -1
  11. package/fesm2022/radix-ng-primitives-focus-scope.mjs +9 -0
  12. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-menu.mjs +34 -5
  14. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-number-field.mjs +7 -2
  16. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-popover.mjs +77 -20
  18. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-radio.mjs +19 -14
  20. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-select.mjs +59 -37
  22. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-slider.mjs +259 -28
  24. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  25. package/fesm2022/radix-ng-primitives-stepper.mjs +11 -7
  26. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-switch.mjs +10 -5
  28. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-tabs.mjs +15 -10
  30. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  31. package/fesm2022/radix-ng-primitives-toggle-group.mjs +9 -4
  32. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  33. package/fesm2022/radix-ng-primitives-toggle.mjs +12 -6
  34. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-tooltip.mjs +180 -35
  36. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  37. package/package.json +1 -1
  38. package/types/radix-ng-primitives-checkbox.d.ts +27 -15
  39. package/types/radix-ng-primitives-core.d.ts +2 -0
  40. package/types/radix-ng-primitives-dialog.d.ts +13 -2
  41. package/types/radix-ng-primitives-editable.d.ts +11 -5
  42. package/types/radix-ng-primitives-floating-focus-manager.d.ts +113 -16
  43. package/types/radix-ng-primitives-menu.d.ts +8 -2
  44. package/types/radix-ng-primitives-number-field.d.ts +8 -3
  45. package/types/radix-ng-primitives-popover.d.ts +18 -6
  46. package/types/radix-ng-primitives-radio.d.ts +13 -6
  47. package/types/radix-ng-primitives-select.d.ts +16 -20
  48. package/types/radix-ng-primitives-slider.d.ts +60 -9
  49. package/types/radix-ng-primitives-stepper.d.ts +11 -4
  50. package/types/radix-ng-primitives-switch.d.ts +10 -4
  51. package/types/radix-ng-primitives-tabs.d.ts +12 -6
  52. package/types/radix-ng-primitives-toggle-group.d.ts +11 -5
  53. package/types/radix-ng-primitives-toggle.d.ts +10 -3
  54. package/types/radix-ng-primitives-tooltip.d.ts +38 -14
@@ -2,11 +2,12 @@ import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Provider, 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 { RdxFloatingRootContext, BooleanInput, NumberInput } from '@radix-ng/primitives/core';
5
+ import { RdxFloatingRootContext, BooleanInput, NumberInput, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
6
6
  import * as i1$1 from '@radix-ng/primitives/popper';
7
7
  import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
8
8
  import * as _radix_ng_primitives_tooltip from '@radix-ng/primitives/tooltip';
9
9
  import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
10
+ import * as _radix_ng_primitives_floating_focus_manager from '@radix-ng/primitives/floating-focus-manager';
10
11
 
11
12
  /**
12
13
  * Structural directive that teleports the tooltip content into a container (default `document.body`)
@@ -77,6 +78,7 @@ declare function injectRdxTooltipConfig(): Required<RdxTooltipConfig>;
77
78
  interface RdxTooltipContext {
78
79
  contentId: string;
79
80
  isOpen: Signal<boolean>;
81
+ present: Signal<boolean>;
80
82
  /** Whether the tooltip opened/closed without waiting for the delay. */
81
83
  instant: Signal<boolean>;
82
84
  disabled: Signal<boolean>;
@@ -86,13 +88,16 @@ interface RdxTooltipContext {
86
88
  trigger: Signal<HTMLElement | undefined>;
87
89
  triggers: Signal<HTMLElement[]>;
88
90
  payload: Signal<unknown>;
89
- open: (trigger?: HTMLElement, payload?: unknown) => void;
90
- close: () => void;
91
+ open: (trigger?: HTMLElement, payload?: unknown, event?: Event) => void;
92
+ close: (reason?: RdxTooltipOpenChangeReason, event?: Event) => void;
93
+ openChangeReason: Signal<RdxTooltipOpenChangeReason>;
94
+ cancelPendingOpen: () => void;
95
+ closeHoverOpen: (event?: Event) => void;
91
96
  /** Closes after the resolved close delay (used when hover/focus is lost). */
92
- closeDelayed: () => void;
97
+ closeDelayed: (event?: Event) => void;
93
98
  registerTrigger: (trigger: HTMLElement) => () => void;
94
99
  /** Hover entered a trigger — opens after the resolved delay (or instantly). */
95
- onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => void;
100
+ onTriggerEnter: (trigger?: HTMLElement, payload?: unknown, event?: Event) => void;
96
101
  /** Hover left a trigger — cancels a pending open and closes when appropriate. */
97
102
  onTriggerLeave: () => void;
98
103
  setCursorPosition: (position: {
@@ -101,6 +106,12 @@ interface RdxTooltipContext {
101
106
  } | undefined) => void;
102
107
  setDelays: (delay: number | undefined, closeDelay: number | undefined) => void;
103
108
  }
109
+ type RdxTooltipOpenChangeReason = 'trigger-hover' | 'trigger-focus' | 'trigger-press' | 'outside-press' | 'escape-key' | 'disabled' | 'imperative-action' | 'none';
110
+ type RdxTooltipOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxTooltipOpenChangeReason>;
111
+ interface RdxTooltipOpenChangeEvent {
112
+ open: boolean;
113
+ eventDetails: RdxTooltipOpenChangeEventDetails;
114
+ }
104
115
  declare const injectRdxTooltipContext: _radix_ng_primitives_core.InjectContext<RdxTooltipContext>;
105
116
  declare const provideRdxTooltipContext: (useFactory: () => RdxTooltipContext) => _angular_core.Provider;
106
117
  declare class RdxTooltip {
@@ -152,7 +163,7 @@ declare class RdxTooltip {
152
163
  /**
153
164
  * Event handler called when the open state changes.
154
165
  */
155
- readonly onOpenChange: _angular_core.OutputEmitterRef<boolean>;
166
+ readonly onOpenChange: _angular_core.OutputEmitterRef<RdxTooltipOpenChangeEvent>;
156
167
  readonly contentId: string;
157
168
  readonly trigger: _angular_core.WritableSignal<HTMLElement | undefined>;
158
169
  readonly triggers: _angular_core.WritableSignal<HTMLElement[]>;
@@ -161,7 +172,10 @@ declare class RdxTooltip {
161
172
  x: number;
162
173
  y: number;
163
174
  } | undefined>;
175
+ readonly openChangeReason: _angular_core.WritableSignal<RdxTooltipOpenChangeReason>;
176
+ private readonly preventUnmountOnClose;
164
177
  private readonly openedInstant;
178
+ private suppressNextOpenChangeEmit;
165
179
  /** Local instant window used when this tooltip is not inside a provider. */
166
180
  private readonly localInstant;
167
181
  private readonly instantGroup;
@@ -172,17 +186,20 @@ declare class RdxTooltip {
172
186
  private readonly resolvedCloseDelay;
173
187
  /** Whether the most recent open happened without the delay. */
174
188
  readonly instant: Signal<boolean>;
189
+ readonly present: Signal<boolean>;
175
190
  private readonly virtualAnchor;
176
191
  private readonly openTimer;
177
192
  private readonly closeTimer;
178
193
  constructor();
179
194
  /** Opens immediately, optionally switching the active trigger/payload. */
180
- show(trigger?: HTMLElement | undefined, payload?: unknown): void;
181
- close(): void;
195
+ show(trigger?: HTMLElement | undefined, payload?: unknown, event?: Event): void;
196
+ close(reason?: RdxTooltipOpenChangeReason, event?: Event): void;
197
+ cancelPendingOpen(): void;
198
+ closeHoverOpen(event?: Event): void;
182
199
  /** Closes after the resolved close delay, e.g. when the pointer or focus leaves. */
183
- scheduleClose(): void;
200
+ scheduleClose(event?: Event): void;
184
201
  /** Hover/focus entered — open after the delay, or instantly within the instant window. */
185
- onTriggerEnter(trigger?: HTMLElement | undefined, payload?: unknown): void;
202
+ onTriggerEnter(trigger?: HTMLElement | undefined, payload?: unknown, event?: Event): void;
186
203
  onTriggerLeave(): void;
187
204
  registerTrigger(trigger: HTMLElement): () => void;
188
205
  setCursorPosition(position: {
@@ -341,15 +358,22 @@ declare class RdxTooltipTrigger {
341
358
  protected readonly isDisabled: _angular_core.Signal<boolean>;
342
359
  /** Whether this specific trigger is the active anchor of an open tooltip. */
343
360
  protected readonly isOpen: _angular_core.Signal<boolean>;
361
+ protected readonly triggerInteraction: _radix_ng_primitives_floating_focus_manager.RdxTriggerInteraction;
344
362
  private readonly isPointerDown;
345
363
  private readonly hasPointerMoveOpened;
364
+ private readonly isNestedTriggerHovered;
365
+ private pointerType;
346
366
  constructor();
347
- protected handleFocus(): void;
348
- protected handleBlur(): void;
349
- protected handleClick(): void;
367
+ protected handleFocus(event: FocusEvent): void;
368
+ protected handleBlur(event: FocusEvent): void;
369
+ protected handleClick(event: MouseEvent): void;
370
+ protected handlePointerEnter(event: PointerEvent): void;
350
371
  protected handlePointerMove(event: PointerEvent): void;
351
372
  protected handlePointerLeave(): void;
373
+ protected handleMouseOver(event: MouseEvent): void;
374
+ protected handleMouseLeave(): void;
352
375
  protected handlePointerDown(event: PointerEvent): Promise<void>;
376
+ private detectNestedTriggerHover;
353
377
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipTrigger, never>;
354
378
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipTrigger, "[rdxTooltipTrigger]", never, { "handle": { "alias": "handle"; "required": false; "isSignal": true; }; "payload": { "alias": "payload"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "userOnPointerDown": { "alias": "rdxOnPointerDown"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
355
379
  }
@@ -357,4 +381,4 @@ declare class RdxTooltipTrigger {
357
381
  declare const tooltipImports: (typeof RdxTooltipPortal)[];
358
382
 
359
383
  export { RdxTooltip, RdxTooltipArrow, RdxTooltipDefaultsToken, RdxTooltipHandle, RdxTooltipPopup, RdxTooltipPortal, RdxTooltipPortalMisuseGuard, RdxTooltipPositioner, RdxTooltipProvider, RdxTooltipTrigger, createRdxTooltipHandle, defaultTooltipConfig, injectRdxTooltipConfig, injectRdxTooltipContext, injectRdxTooltipProviderContext, provideRdxTooltipConfig, provideRdxTooltipContext, provideRdxTooltipProviderContext, tooltipImports };
360
- export type { RdxTooltipConfig, RdxTooltipContext, RdxTooltipProviderContext, RdxTrackCursorAxis };
384
+ export type { RdxTooltipConfig, RdxTooltipContext, RdxTooltipOpenChangeEvent, RdxTooltipOpenChangeEventDetails, RdxTooltipOpenChangeReason, RdxTooltipProviderContext, RdxTrackCursorAxis };