@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
@@ -1,17 +1,17 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, OutputRef, Signal, ElementRef } from '@angular/core';
3
3
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
4
- import { AcceptableValue, RdxFloatingRootContext, Direction, ItemValueComparator } from '@radix-ng/primitives/core';
4
+ import { AcceptableValue, RdxCancelableChangeEventDetails, RdxFloatingRootContext, Direction, ItemValueComparator } from '@radix-ng/primitives/core';
5
5
  import * as _radix_ng_primitives_select from '@radix-ng/primitives/select';
6
- import * as _radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager from '@radix-ng/primitives/types/radix-ng-primitives-floating-focus-manager';
6
+ import * as _radix_ng_primitives_floating_focus_manager from '@radix-ng/primitives/floating-focus-manager';
7
+ import { RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager';
7
8
  import * as i1 from '@radix-ng/primitives/collection';
8
9
  import { RdxCollectionItem } from '@radix-ng/primitives/collection';
9
10
  import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
10
11
  import * as i1$1 from '@radix-ng/primitives/popper';
11
12
  import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
12
- import * as i2 from '@radix-ng/primitives/focus-scope';
13
+ import * as _radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager from '@radix-ng/primitives/types/radix-ng-primitives-floating-focus-manager';
13
14
  import * as _radix_ng_primitives_types_radix_ng_primitives_core from '@radix-ng/primitives/types/radix-ng-primitives-core';
14
- import { RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager';
15
15
  import * as _radix_ng_primitives_types_radix_ng_primitives_collection from '@radix-ng/primitives/types/radix-ng-primitives-collection';
16
16
  import * as i1$2 from '@radix-ng/primitives/portal';
17
17
 
@@ -311,9 +311,9 @@ declare class RdxSelectPopup {
311
311
  itemToStringLabel: _angular_core.InputSignal<((value: AcceptableValue) => string) | undefined>;
312
312
  open: _angular_core.ModelSignal<boolean>;
313
313
  openedByTouch: _angular_core.WritableSignal<boolean>;
314
- openMethod: Signal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
315
- openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
316
- closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
314
+ openMethod: Signal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
315
+ openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
316
+ closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
317
317
  disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
318
318
  modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
319
319
  isEmptyModelValue: Signal<boolean>;
@@ -370,7 +370,7 @@ declare class RdxSelectPopup {
370
370
  isKeyboardActive(): boolean;
371
371
  handleKeyDown(event: Event): void;
372
372
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPopup, never>;
373
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPopup, "[rdxSelectPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof i2.RdxFocusScope; inputs: {}; outputs: {}; }, { directive: typeof _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxCollectionProvider; inputs: {}; outputs: {}; }]>;
373
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPopup, "[rdxSelectPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof _radix_ng_primitives_floating_focus_manager.RdxFloatingFocusManager; inputs: { "returnFocus": "finalFocus"; }; outputs: {}; }, { directive: typeof _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxCollectionProvider; inputs: {}; outputs: {}; }]>;
374
374
  }
375
375
 
376
376
  /**
@@ -423,18 +423,12 @@ interface SelectOption {
423
423
  type RdxSelectOpenMethod = RdxInteractionType;
424
424
  type RdxSelectOpenChangeReason = 'trigger-press' | 'item-press' | 'outside-press' | 'escape-key' | 'window-resize' | 'focus-out' | 'list-navigation' | 'cancel-open' | 'none';
425
425
  type RdxSelectValueChangeReason = RdxSelectOpenChangeReason;
426
- interface RdxSelectChangeEventDetails<Reason extends string = string> {
427
- reason: Reason;
428
- event: Event;
429
- cancel: () => void;
430
- isCanceled: () => boolean;
431
- }
432
- type RdxSelectOpenChangeEventDetails = RdxSelectChangeEventDetails<RdxSelectOpenChangeReason>;
426
+ type RdxSelectOpenChangeEventDetails = RdxCancelableChangeEventDetails<RdxSelectOpenChangeReason>;
433
427
  interface RdxSelectOpenChangeEvent {
434
428
  open: boolean;
435
429
  eventDetails: RdxSelectOpenChangeEventDetails;
436
430
  }
437
- type RdxSelectValueChangeEventDetails = RdxSelectChangeEventDetails<RdxSelectValueChangeReason>;
431
+ type RdxSelectValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxSelectValueChangeReason>;
438
432
  interface RdxSelectValueChangeEvent {
439
433
  value: AcceptableValue | AcceptableValue[];
440
434
  eventDetails: RdxSelectValueChangeEventDetails;
@@ -534,6 +528,7 @@ declare const provideSelectRootContext: (useFactory: () => {
534
528
  onOpenChange: (value: boolean, reason?: RdxSelectOpenChangeReason, event?: Event) => boolean;
535
529
  }) => _angular_core.Provider;
536
530
  declare class RdxSelectRoot {
531
+ readonly contentId: string;
537
532
  readonly open: _angular_core.ModelSignal<boolean>;
538
533
  /** Whether the current open was initiated by **touch** (ADR 0016 §3 — gates the anchored scroll lock). */
539
534
  readonly openedByTouch: _angular_core.WritableSignal<boolean>;
@@ -610,9 +605,9 @@ declare class RdxSelectTrigger {
610
605
  itemToStringLabel: _angular_core.InputSignal<((value: _radix_ng_primitives_core.AcceptableValue) => string) | undefined>;
611
606
  open: _angular_core.ModelSignal<boolean>;
612
607
  openedByTouch: _angular_core.WritableSignal<boolean>;
613
- openMethod: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
614
- openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
615
- closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
608
+ openMethod: _angular_core.Signal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
609
+ openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
610
+ closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
616
611
  disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
617
612
  modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
618
613
  isEmptyModelValue: _angular_core.Signal<boolean>;
@@ -632,6 +627,7 @@ declare class RdxSelectTrigger {
632
627
  readonly id: _angular_core.InputSignal<string>;
633
628
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
634
629
  readonly isDisabled: _angular_core.Signal<boolean>;
630
+ protected readonly triggerInteraction: _radix_ng_primitives_floating_focus_manager.RdxTriggerInteraction;
635
631
  protected readonly invalidState: _angular_core.Signal<boolean>;
636
632
  protected readonly requiredState: _angular_core.Signal<boolean>;
637
633
  protected readonly filledState: _angular_core.Signal<boolean>;
@@ -703,4 +699,4 @@ declare function focusFirst(candidates: HTMLElement[]): void;
703
699
  declare const _importsSelect: (typeof RdxSelectGroupLabel)[];
704
700
 
705
701
  export { CONTENT_MARGIN, OPEN_KEYS, RDX_SELECT_POSITIONER_TOKEN, RdxSelectBackdrop, RdxSelectGroup, RdxSelectGroupLabel, RdxSelectIcon, RdxSelectItem, RdxSelectItemIndicator, RdxSelectItemText, RdxSelectList, RdxSelectPopup, RdxSelectPortal, RdxSelectPortalMisuseGuard, RdxSelectPositioner, RdxSelectRoot, RdxSelectSeparator, RdxSelectTrigger, RdxSelectValue, SELECTION_KEYS, _importsSelect, compare, focusFirst, injectSelectItemContext, injectSelectPopupContext, injectSelectRootContext, provideSelectItemContext, provideSelectPopupContext, provideSelectRootContext, shouldShowPlaceholder, valueComparator };
706
- export type { RdxPositionerImpl, RdxSelectChangeEventDetails, RdxSelectItemContext, RdxSelectOpenChangeEvent, RdxSelectOpenChangeEventDetails, RdxSelectOpenChangeReason, RdxSelectOpenMethod, RdxSelectPopupContext, RdxSelectRootContext, RdxSelectValueChangeEvent, RdxSelectValueChangeEventDetails, RdxSelectValueChangeReason, SelectEvent, SelectOption };
702
+ export type { RdxPositionerImpl, RdxSelectItemContext, RdxSelectOpenChangeEvent, RdxSelectOpenChangeEventDetails, RdxSelectOpenChangeReason, RdxSelectOpenMethod, RdxSelectPopupContext, RdxSelectRootContext, RdxSelectValueChangeEvent, RdxSelectValueChangeEventDetails, RdxSelectValueChangeReason, SelectEvent, SelectOption };
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Signal } from '@angular/core';
3
3
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
4
- import { RdxControlValueAccessor, NumberInput, BooleanInput } from '@radix-ng/primitives/core';
4
+ import { RdxControlValueAccessor, NumberInput, BooleanInput, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
5
5
  export { clamp } from '@radix-ng/primitives/core';
6
6
  import * as _radix_ng_primitives_slider from '@radix-ng/primitives/slider';
7
7
 
@@ -18,6 +18,8 @@ declare function getMidpoint(element: Element): {
18
18
  x: number;
19
19
  y: number;
20
20
  };
21
+ /** Calculates the control-relative percent for an edge-aligned thumb. */
22
+ declare function getInsetThumbPositionPercent(control: Element, thumb: Element, thumbValuePercent: number, vertical: boolean): number | undefined;
21
23
  /** Converts an array of values into clamped 0–100 percentages. */
22
24
  declare function valueArrayToPercentages(values: readonly number[], min: number, max: number): number[];
23
25
  /** Number of decimal places in `num`, handling exponential notation for tiny values. */
@@ -90,6 +92,25 @@ declare const ALL_KEYS: Set<string>;
90
92
  declare function areValuesEqual(a: number | number[], b: number | number[]): boolean;
91
93
 
92
94
  type SliderValue = number | number[];
95
+ type RdxSliderThumbAlignment = 'center' | 'edge' | 'edge-client-only';
96
+ type RdxSliderValueChangeReason = 'input-change' | 'track-press' | 'drag' | 'keyboard' | 'none';
97
+ type RdxSliderValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxSliderValueChangeReason> & {
98
+ activeThumbIndex: number;
99
+ };
100
+ type RdxSliderValueCommitReason = RdxSliderValueChangeReason;
101
+ interface RdxSliderValueCommitEventDetails {
102
+ reason: RdxSliderValueCommitReason;
103
+ event: Event;
104
+ trigger: HTMLElement | undefined;
105
+ }
106
+ interface RdxSliderValueChangeEvent {
107
+ value: SliderValue;
108
+ eventDetails: RdxSliderValueChangeEventDetails;
109
+ }
110
+ interface RdxSliderValueCommitEvent {
111
+ value: SliderValue;
112
+ eventDetails: RdxSliderValueCommitEventDetails;
113
+ }
93
114
  /** Minimal shape a thumb registers with the root, used for hit-testing and focus. */
94
115
  interface RdxSliderThumbRef {
95
116
  /** The thumb wrapper element. */
@@ -109,6 +130,7 @@ interface RdxSliderThumbRef {
109
130
  declare class RdxSliderRoot {
110
131
  /** @ignore */
111
132
  protected readonly cva: RdxControlValueAccessor<SliderValue>;
133
+ private readonly document;
112
134
  readonly id: _angular_core.InputSignal<string>;
113
135
  /**
114
136
  * The minimum value of the slider.
@@ -151,6 +173,13 @@ declare class RdxSliderRoot {
151
173
  * @default 'push'
152
174
  */
153
175
  readonly thumbCollisionBehavior: _angular_core.InputSignal<ThumbCollisionBehavior>;
176
+ /**
177
+ * How the thumbs align with the control when the value is at min/max.
178
+ * `center` aligns the thumb center to the control edge; `edge`/`edge-client-only`
179
+ * inset thumbs so their outer edge aligns to the control edge.
180
+ * @default 'center'
181
+ */
182
+ readonly thumbAlignment: _angular_core.InputSignal<RdxSliderThumbAlignment>;
154
183
  /** Options forwarded to `Intl.NumberFormat` when displaying and announcing values. */
155
184
  readonly format: _angular_core.InputSignal<Intl.NumberFormatOptions | undefined>;
156
185
  /** Locale used for value formatting. */
@@ -170,9 +199,9 @@ declare class RdxSliderRoot {
170
199
  readonly value: _angular_core.ModelSignal<SliderValue | undefined>;
171
200
  readonly ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
172
201
  /** Emitted when the value changes (during interaction). */
173
- readonly onValueChange: _angular_core.OutputEmitterRef<SliderValue>;
202
+ readonly onValueChange: _angular_core.OutputEmitterRef<RdxSliderValueChangeEvent>;
174
203
  /** Emitted when interaction ends, with the final value — useful for committing to a backend. */
175
- readonly onValueCommitted: _angular_core.OutputEmitterRef<SliderValue>;
204
+ readonly onValueCommitted: _angular_core.OutputEmitterRef<RdxSliderValueCommitEvent>;
176
205
  /** @ignore */
177
206
  readonly controlRef: _angular_core.WritableSignal<HTMLElement | null>;
178
207
  /** @ignore Active thumb index (-1 when none). */
@@ -181,6 +210,8 @@ declare class RdxSliderRoot {
181
210
  readonly lastUsedThumbIndex: _angular_core.WritableSignal<number>;
182
211
  /** @ignore Whether a pointer drag is in progress. */
183
212
  readonly dragging: _angular_core.WritableSignal<boolean>;
213
+ /** @ignore Edge-aligned thumb/indicator positions, in control-relative percentages. */
214
+ readonly indicatorPosition: _angular_core.WritableSignal<[number | undefined, number | undefined]>;
184
215
  /** @ignore Pointer-drag scratch state (not reactive). */
185
216
  pressedThumbIndex: number;
186
217
  /** @ignore */
@@ -192,7 +223,13 @@ declare class RdxSliderRoot {
192
223
  /** @ignore */
193
224
  lastChangeReason: string;
194
225
  /** @ignore */
226
+ lastChangeEvent: Event | undefined;
227
+ /** @ignore */
195
228
  readonly isDisabled: Signal<boolean>;
229
+ /** @ignore */
230
+ readonly inset: Signal<boolean>;
231
+ /** @ignore */
232
+ readonly renderBeforeHydration: Signal<boolean>;
196
233
  /** @ignore The current value source (controlled value, else default, else min). */
197
234
  private readonly currentRaw;
198
235
  /** Whether the slider has multiple thumbs (the value is an array). */
@@ -213,6 +250,8 @@ declare class RdxSliderRoot {
213
250
  /** @ignore */
214
251
  focusThumb(index: number): void;
215
252
  /** @ignore */
253
+ setIndicatorPosition(index: number, position: number | undefined): void;
254
+ /** @ignore */
216
255
  formatValue(value: number): string;
217
256
  /** @ignore Output value matching the original value shape (number vs array). */
218
257
  private outputValue;
@@ -221,19 +260,21 @@ declare class RdxSliderRoot {
221
260
  * Applies a new full set of values, preserving the single/range value shape.
222
261
  * Returns `false` when the value did not change.
223
262
  */
224
- setValue(nextValues: number[], reason: string): boolean;
263
+ setValue(nextValues: number[], reason: RdxSliderValueChangeReason, event?: Event, activeThumbIndex?: number): boolean;
225
264
  /** @ignore Keyboard / native input path: clamps to neighbours, commits immediately. */
226
- handleInputChange(valueInput: number, index: number, reason?: string): void;
265
+ handleInputChange(valueInput: number, index: number, reason?: RdxSliderValueChangeReason, event?: Event): void;
227
266
  /** @ignore Emits the committed value at the end of a pointer drag. */
228
- commitValue(): void;
267
+ commitValue(event?: Event, reason?: RdxSliderValueCommitReason): void;
229
268
  /** @ignore */
230
269
  markAsTouched(): void;
231
270
  /** @ignore */
232
271
  setDragging(dragging: boolean): void;
233
272
  /** @ignore */
234
273
  resetPressedThumb(): void;
274
+ /** @ignore */
275
+ getOwnerWindow(): Window | undefined;
235
276
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSliderRoot, never>;
236
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSliderRoot, "div[rdxSliderRoot]", ["rdxSliderRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "largeStep": { "alias": "largeStep"; "required": false; "isSignal": true; }; "minStepsBetweenValues": { "alias": "minStepsBetweenValues"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "thumbCollisionBehavior": { "alias": "thumbCollisionBehavior"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; "onValueCommitted": "onValueCommitted"; }, never, never, true, [{ directive: typeof _radix_ng_primitives_core.RdxControlValueAccessor; inputs: { "value": "value"; "disabled": "disabled"; }; outputs: {}; }]>;
277
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSliderRoot, "div[rdxSliderRoot]", ["rdxSliderRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "largeStep": { "alias": "largeStep"; "required": false; "isSignal": true; }; "minStepsBetweenValues": { "alias": "minStepsBetweenValues"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "thumbCollisionBehavior": { "alias": "thumbCollisionBehavior"; "required": false; "isSignal": true; }; "thumbAlignment": { "alias": "thumbAlignment"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; "onValueCommitted": "onValueCommitted"; }, never, never, true, [{ directive: typeof _radix_ng_primitives_core.RdxControlValueAccessor; inputs: { "value": "value"; "disabled": "disabled"; }; outputs: {}; }]>;
237
278
  }
238
279
 
239
280
  /**
@@ -249,14 +290,22 @@ declare class RdxSliderControl {
249
290
  private styles;
250
291
  private moveCount;
251
292
  private currentInteractionValue;
293
+ private touchId;
294
+ private insetThumbOffset;
295
+ private readonly onTouchStart;
252
296
  private readonly onMove;
253
297
  private readonly onUp;
254
298
  private readonly onCancel;
299
+ private readonly onTouchMove;
300
+ private readonly onTouchEnd;
255
301
  constructor();
256
302
  protected onPointerDown(event: PointerEvent): void;
303
+ private handleTouchStart;
257
304
  private handleMove;
258
305
  private handleUp;
259
306
  private stopListening;
307
+ private getFingerCoords;
308
+ private isTargetDisabledThumb;
260
309
  private startPressing;
261
310
  private setValueFromPointer;
262
311
  /** Projects a pointer position onto the track and resolves it to a value (+ collision). */
@@ -311,8 +360,10 @@ declare class RdxSliderThumb implements RdxSliderThumbRef {
311
360
  /** The value represented by this thumb. */
312
361
  readonly value: _angular_core.Signal<number | undefined>;
313
362
  private readonly percent;
363
+ private readonly insetPosition;
314
364
  protected readonly thumbStyle: _angular_core.Signal<Record<string, string | number>>;
315
365
  constructor();
366
+ private updateInsetPosition;
316
367
  protected onPointerDown(event: PointerEvent): void;
317
368
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSliderThumb, never>;
318
369
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSliderThumb, "div[rdxSliderThumb]", ["rdxSliderThumb"], { "indexInput": { "alias": "index"; "required": false; "isSignal": true; }; "thumbDisabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -374,5 +425,5 @@ declare class RdxSliderModule {
374
425
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxSliderModule>;
375
426
  }
376
427
 
377
- export { ALL_KEYS, ARROW_KEYS, COMPOSITE_KEYS, RdxSliderControl, RdxSliderIndicator, RdxSliderModule, RdxSliderRoot, RdxSliderThumb, RdxSliderThumbInput, RdxSliderTrack, RdxSliderValue, areValuesEqual, asc, formatNumber, getControlOffset, getDecimalPrecision, getDefaultAriaValueText, getMidpoint, getNewValue, getPushedThumbValues, getSliderValue, injectSliderRootContext, provideSliderRootContext, replaceArrayItemAtIndex, resolveThumbCollision, roundValueToStep, validateMinimumDistance, valueArrayToPercentages, valueToPercent };
378
- export type { RdxSliderThumbRef, ResolveThumbCollisionParams, ResolveThumbCollisionResult, SliderOrientation, SliderValue, ThumbCollisionBehavior };
428
+ export { ALL_KEYS, ARROW_KEYS, COMPOSITE_KEYS, RdxSliderControl, RdxSliderIndicator, RdxSliderModule, RdxSliderRoot, RdxSliderThumb, RdxSliderThumbInput, RdxSliderTrack, RdxSliderValue, areValuesEqual, asc, formatNumber, getControlOffset, getDecimalPrecision, getDefaultAriaValueText, getInsetThumbPositionPercent, getMidpoint, getNewValue, getPushedThumbValues, getSliderValue, injectSliderRootContext, provideSliderRootContext, replaceArrayItemAtIndex, resolveThumbCollision, roundValueToStep, validateMinimumDistance, valueArrayToPercentages, valueToPercent };
429
+ export type { RdxSliderThumbAlignment, RdxSliderThumbRef, RdxSliderValueChangeEvent, RdxSliderValueChangeEventDetails, RdxSliderValueChangeReason, RdxSliderValueCommitEvent, RdxSliderValueCommitEventDetails, RdxSliderValueCommitReason, ResolveThumbCollisionParams, ResolveThumbCollisionResult, SliderOrientation, SliderValue, ThumbCollisionBehavior };
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InputSignalWithTransform, Signal, ModelSignal, InputSignal, WritableSignal, InjectionToken } from '@angular/core';
3
- import { NumberInput, BooleanInput, Direction } from '@radix-ng/primitives/core';
3
+ import { NumberInput, BooleanInput, Direction, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
4
4
  import * as _radix_ng_primitives_stepper from '@radix-ng/primitives/stepper';
5
5
  import * as i1 from '@radix-ng/primitives/separator';
6
6
 
@@ -66,10 +66,17 @@ interface StepperRootContext {
66
66
  dir: Signal<Direction>;
67
67
  linear: InputSignalWithTransform<boolean, BooleanInput>;
68
68
  totalStepperItems: WritableSignal<HTMLElement[]>;
69
+ goToStep(step: number, event?: Event, reason?: string): void;
69
70
  }
70
71
  declare const STEPPER_ROOT_CONTEXT: InjectionToken<StepperRootContext>;
71
72
  declare function injectStepperRootContext(): StepperRootContext;
72
73
 
74
+ type RdxStepperValueChangeReason = 'trigger-press' | 'keyboard' | 'none';
75
+ type RdxStepperValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxStepperValueChangeReason>;
76
+ interface RdxStepperValueChangeEvent {
77
+ value: number;
78
+ eventDetails: RdxStepperValueChangeEventDetails;
79
+ }
73
80
  declare class RdxStepperRootDirective implements StepperRootContext {
74
81
  private readonly liveAnnouncer;
75
82
  readonly defaultValue: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
@@ -80,7 +87,7 @@ declare class RdxStepperRootDirective implements StepperRootContext {
80
87
  readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
81
88
  /** @ignore */
82
89
  readonly totalStepperItemsArray: _angular_core.Signal<HTMLElement[]>;
83
- readonly onValueChange: _angular_core.OutputEmitterRef<number>;
90
+ readonly onValueChange: _angular_core.OutputEmitterRef<RdxStepperValueChangeEvent>;
84
91
  /** @ignore */
85
92
  readonly isFirstStep: _angular_core.Signal<boolean>;
86
93
  /** @ignore */
@@ -96,7 +103,7 @@ declare class RdxStepperRootDirective implements StepperRootContext {
96
103
  private readonly nextStepperItem;
97
104
  private readonly prevStepperItem;
98
105
  constructor();
99
- goToStep(step: number): void;
106
+ goToStep(step: number, event?: Event, reason?: RdxStepperValueChangeReason): void;
100
107
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxStepperRootDirective, never>;
101
108
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxStepperRootDirective, "[rdxStepperRoot]", ["rdxStepperRoot"], { "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
102
109
  }
@@ -120,4 +127,4 @@ declare class RdxStepperModule {
120
127
  }
121
128
 
122
129
  export { RdxStepperDescriptionDirective, RdxStepperIndicatorDirective, RdxStepperItemDirective, RdxStepperModule, RdxStepperRootDirective, RdxStepperSeparatorDirective, RdxStepperTitleDirective, RdxStepperTriggerDirective, STEPPER_ROOT_CONTEXT, injectStepperRootContext };
123
- export type { StepperRootContext, StepperState };
130
+ export type { RdxStepperValueChangeEvent, RdxStepperValueChangeEventDetails, RdxStepperValueChangeReason, StepperRootContext, StepperState };
@@ -2,7 +2,7 @@ import * as _radix_ng_primitives_switch from '@radix-ng/primitives/switch';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { Signal } from '@angular/core';
4
4
  import * as i1 from '@radix-ng/primitives/core';
5
- import { RdxFormCheckboxControl, RdxControlValueAccessor, BooleanInput } from '@radix-ng/primitives/core';
5
+ import { RdxCancelableChangeEventDetails, RdxFormCheckboxControl, RdxControlValueAccessor, BooleanInput } from '@radix-ng/primitives/core';
6
6
 
7
7
  /**
8
8
  * The hidden native checkbox that mirrors the switch state for form submission and screen readers.
@@ -15,6 +15,12 @@ declare class RdxSwitchInput {
15
15
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSwitchInput, "input[rdxSwitchInput]", ["rdxSwitchInput"], {}, {}, never, never, true, never>;
16
16
  }
17
17
 
18
+ type RdxSwitchCheckedChangeReason = 'trigger-press' | 'none';
19
+ type RdxSwitchCheckedChangeEventDetails = RdxCancelableChangeEventDetails<RdxSwitchCheckedChangeReason>;
20
+ interface RdxSwitchCheckedChangeEvent {
21
+ checked: boolean;
22
+ eventDetails: RdxSwitchCheckedChangeEventDetails;
23
+ }
18
24
  /**
19
25
  * A control that toggles between on and off.
20
26
  *
@@ -68,13 +74,13 @@ declare class RdxSwitchRoot implements RdxFormCheckboxControl {
68
74
  readonly ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
69
75
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
70
76
  /** Event handler called when the checked state of the switch changes. */
71
- readonly onCheckedChange: _angular_core.OutputEmitterRef<boolean>;
77
+ readonly onCheckedChange: _angular_core.OutputEmitterRef<RdxSwitchCheckedChangeEvent>;
72
78
  /** @ignore */
73
79
  readonly checkedState: _angular_core.Signal<boolean>;
74
80
  /** @ignore */
75
81
  protected readonly isDisabled: _angular_core.Signal<boolean>;
76
82
  /** @ignore Toggles the checked state unless disabled or read-only. */
77
- toggle(): void;
83
+ toggle(event?: Event): void;
78
84
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSwitchRoot, never>;
79
85
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSwitchRoot, "button[rdxSwitchRoot]", ["rdxSwitchRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "defaultChecked": { "alias": "defaultChecked"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "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; }; "submitValue": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "onCheckedChange": "onCheckedChange"; }, never, never, true, [{ directive: typeof i1.RdxControlValueAccessor; inputs: { "value": "checked"; "disabled": "disabled"; }; outputs: {}; }]>;
80
86
  }
@@ -118,4 +124,4 @@ declare class RdxSwitchModule {
118
124
  }
119
125
 
120
126
  export { RdxSwitchInput, RdxSwitchModule, RdxSwitchRoot, RdxSwitchThumb, injectSwitchContext, provideSwitchContext, switchImports };
121
- export type { RdxSwitchContext };
127
+ export type { RdxSwitchCheckedChangeEvent, RdxSwitchCheckedChangeEventDetails, RdxSwitchCheckedChangeReason, RdxSwitchContext };
@@ -2,7 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import { Signal } from '@angular/core';
3
3
  import * as i1 from '@radix-ng/primitives/presence';
4
4
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
5
- import { DataOrientation, BooleanInput } from '@radix-ng/primitives/core';
5
+ import { DataOrientation, RdxCancelableChangeEventDetails, BooleanInput } from '@radix-ng/primitives/core';
6
6
  import * as _radix_ng_primitives_tabs from '@radix-ng/primitives/tabs';
7
7
  import * as i1$1 from '@radix-ng/primitives/roving-focus';
8
8
 
@@ -28,6 +28,12 @@ type RdxTabsActivationDirection = 'left' | 'right' | 'up' | 'down' | 'none';
28
28
  /** A value that identifies a tab / panel pair. */
29
29
  type RdxTabsValue = string | number | null;
30
30
 
31
+ type RdxTabsValueChangeReason = 'trigger-press' | 'keyboard' | 'focus' | 'none';
32
+ type RdxTabsValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxTabsValueChangeReason>;
33
+ interface RdxTabsValueChangeEvent {
34
+ value: RdxTabsValue;
35
+ eventDetails: RdxTabsValueChangeEventDetails;
36
+ }
31
37
  /**
32
38
  * Groups the tabs and the corresponding panels.
33
39
  *
@@ -54,7 +60,7 @@ declare class RdxTabsRoot {
54
60
  /**
55
61
  * Event emitted when the selected tab changes.
56
62
  */
57
- readonly onValueChange: _angular_core.OutputEmitterRef<RdxTabsValue>;
63
+ readonly onValueChange: _angular_core.OutputEmitterRef<RdxTabsValueChangeEvent>;
58
64
  /** @ignore Set by `[rdxTabsList]`. */
59
65
  readonly activateOnFocus: _angular_core.WritableSignal<boolean>;
60
66
  /** @ignore Set by `[rdxTabsList]`. */
@@ -63,7 +69,7 @@ declare class RdxTabsRoot {
63
69
  readonly activationDirection: _angular_core.WritableSignal<RdxTabsActivationDirection>;
64
70
  constructor();
65
71
  /** @ignore */
66
- setValue(value: RdxTabsValue): void;
72
+ setValue(value: RdxTabsValue, event?: Event, reason?: RdxTabsValueChangeReason): void;
67
73
  private computeDirection;
68
74
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTabsRoot, never>;
69
75
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTabsRoot, "[rdxTabsRoot]", ["rdxTabsRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
@@ -124,7 +130,7 @@ declare class RdxTabsTab {
124
130
  /** @ignore */
125
131
  protected onKeyDown(event: KeyboardEvent): void;
126
132
  /** @ignore */
127
- protected onFocus(): void;
133
+ protected onFocus(event: FocusEvent): void;
128
134
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTabsTab, never>;
129
135
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTabsTab, "[rdxTabsTab]", ["rdxTabsTab"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxRovingFocusItemDirective; inputs: { "allowShiftKey": "allowShiftKey"; }; outputs: {}; }]>;
130
136
  }
@@ -227,7 +233,7 @@ interface RdxTabsRootContext {
227
233
  /** The `[rdxTabsList]` host element, used to resolve tab order and indicator geometry. */
228
234
  readonly tabListElement: Signal<HTMLElement | null>;
229
235
  /** Select a tab by value. No-op when the value is unchanged. */
230
- setValue(value: RdxTabsValue): void;
236
+ setValue(value: RdxTabsValue, event?: Event, reason?: string): void;
231
237
  /** Mirror the list's `activateOnFocus` input onto the root context. */
232
238
  setActivateOnFocus(value: boolean): void;
233
239
  /** Register the list host element. */
@@ -244,4 +250,4 @@ declare class RdxTabsModule {
244
250
  }
245
251
 
246
252
  export { RdxTabsIndicator, RdxTabsList, RdxTabsModule, RdxTabsPanel, RdxTabsPanelPresence, RdxTabsRoot, RdxTabsTab, injectTabsRootContext, provideTabsRootContext, tabsImports };
247
- export type { RdxTabsActivationDirection, RdxTabsRootContext, RdxTabsValue };
253
+ export type { RdxTabsActivationDirection, RdxTabsRootContext, RdxTabsValue, RdxTabsValueChangeEvent, RdxTabsValueChangeEventDetails, RdxTabsValueChangeReason };
@@ -1,5 +1,5 @@
1
1
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
2
- import { DataOrientation, BooleanInput } from '@radix-ng/primitives/core';
2
+ import { DataOrientation, BooleanInput, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { Signal } from '@angular/core';
5
5
  import * as i1 from '@radix-ng/primitives/roving-focus';
@@ -19,11 +19,17 @@ interface RdxToggleGroupContext {
19
19
  /** The orientation of the group. */
20
20
  readonly orientation: Signal<DataOrientation>;
21
21
  /** Toggle the pressed state of `value` within the group. */
22
- toggle(value: string): void;
22
+ toggle(value: string, event?: Event): void;
23
23
  }
24
24
  declare const injectToggleGroupContext: _radix_ng_primitives_core.InjectContext<RdxToggleGroupContext>;
25
25
  declare const provideToggleGroupContext: (useFactory: () => RdxToggleGroupContext) => _angular_core.Provider;
26
26
 
27
+ type RdxToggleGroupValueChangeReason = 'trigger-press' | 'none';
28
+ type RdxToggleGroupValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxToggleGroupValueChangeReason>;
29
+ interface RdxToggleGroupValueChangeEvent {
30
+ value: string[];
31
+ eventDetails: RdxToggleGroupValueChangeEventDetails;
32
+ }
27
33
  /** Builds the shared context a {@link RdxToggle} reads when it belongs to this group. */
28
34
  declare function toggleGroupContext(instance: RdxToggleGroupBase): RdxToggleGroupContext;
29
35
  /**
@@ -58,7 +64,7 @@ declare abstract class RdxToggleGroupBase implements ControlValueAccessor {
58
64
  */
59
65
  readonly orientation: _angular_core.InputSignal<DataOrientation>;
60
66
  /** Event emitted when the pressed values change. */
61
- readonly onValueChange: _angular_core.OutputEmitterRef<string[]>;
67
+ readonly onValueChange: _angular_core.OutputEmitterRef<RdxToggleGroupValueChangeEvent>;
62
68
  /** @ignore */
63
69
  readonly pressedValues: _angular_core.Signal<string[]>;
64
70
  protected readonly accessorDisabled: _angular_core.WritableSignal<boolean>;
@@ -68,7 +74,7 @@ declare abstract class RdxToggleGroupBase implements ControlValueAccessor {
68
74
  protected onTouched?: () => void;
69
75
  constructor();
70
76
  /** @ignore */
71
- toggle(value: string): void;
77
+ toggle(value: string, event?: Event): void;
72
78
  /** @ignore */
73
79
  writeValue(value: string[] | string | null): void;
74
80
  /** @ignore */
@@ -115,4 +121,4 @@ declare class RdxToggleGroupWithoutFocus extends RdxToggleGroupBase {
115
121
  }
116
122
 
117
123
  export { RdxToggleGroup, RdxToggleGroupBase, RdxToggleGroupWithoutFocus, injectToggleGroupContext, provideToggleGroupContext, toggleGroupContext };
118
- export type { RdxToggleGroupContext };
124
+ export type { RdxToggleGroupContext, RdxToggleGroupValueChangeEvent, RdxToggleGroupValueChangeEventDetails, RdxToggleGroupValueChangeReason };
@@ -1,8 +1,14 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { BooleanInput } from '@radix-ng/primitives/core';
2
+ import { BooleanInput, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
3
3
  import * as i1 from '@radix-ng/primitives/roving-focus';
4
4
  import * as i1$1 from '@radix-ng/primitives/visually-hidden';
5
5
 
6
+ type RdxTogglePressedChangeReason = 'trigger-press' | 'none';
7
+ type RdxTogglePressedChangeEventDetails = RdxCancelableChangeEventDetails<RdxTogglePressedChangeReason>;
8
+ interface RdxTogglePressedChangeEvent {
9
+ pressed: boolean;
10
+ eventDetails: RdxTogglePressedChangeEventDetails;
11
+ }
6
12
  /**
7
13
  * A two-state button that can be either on (pressed) or off.
8
14
  *
@@ -42,7 +48,7 @@ declare class RdxToggle {
42
48
  */
43
49
  readonly nativeButton: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
44
50
  /** Event emitted when the pressed state changes (standalone). */
45
- readonly onPressedChange: _angular_core.OutputEmitterRef<boolean>;
51
+ readonly onPressedChange: _angular_core.OutputEmitterRef<RdxTogglePressedChangeEvent>;
46
52
  private readonly internalPressed;
47
53
  /** @ignore Whether the toggle is currently pressed (from the group when grouped). */
48
54
  readonly pressedState: _angular_core.Signal<boolean>;
@@ -50,7 +56,7 @@ declare class RdxToggle {
50
56
  readonly isDisabled: _angular_core.Signal<boolean>;
51
57
  constructor();
52
58
  /** @ignore */
53
- protected onClick(): void;
59
+ protected onClick(event?: Event): void;
54
60
  /** @ignore */
55
61
  protected onKeyDown(event: KeyboardEvent): void;
56
62
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxToggle, never>;
@@ -63,3 +69,4 @@ declare class RdxToggleVisuallyHiddenInputDirective {
63
69
  }
64
70
 
65
71
  export { RdxToggle, RdxToggleVisuallyHiddenInputDirective };
72
+ export type { RdxTogglePressedChangeEvent, RdxTogglePressedChangeEventDetails, RdxTogglePressedChangeReason };