@radix-ng/primitives 1.0.5 → 1.0.7

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 (138) hide show
  1. package/aspect-ratio/README.md +1 -1
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +40 -27
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +34 -34
  5. package/fesm2022/radix-ng-primitives-arrow.mjs +3 -3
  6. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +11 -35
  7. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-autocomplete.mjs +175 -125
  9. package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-avatar.mjs +92 -35
  11. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-button.mjs +11 -7
  13. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-calendar.mjs +140 -90
  15. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs +63 -46
  17. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs +37 -25
  19. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-combobox.mjs +278 -177
  21. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-composite.mjs +50 -33
  23. package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-config.mjs +7 -5
  25. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-context-menu.mjs +48 -22
  27. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-core.mjs +44 -28
  29. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-cropper.mjs +73 -45
  31. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-date-field.mjs +70 -40
  33. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-dialog.mjs +93 -67
  35. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-direction-provider.mjs +5 -4
  37. package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +20 -16
  39. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-drawer.mjs +107 -81
  41. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-editable.mjs +53 -39
  43. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-field.mjs +76 -50
  45. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-fieldset.mjs +8 -7
  47. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +77 -40
  49. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  51. package/fesm2022/radix-ng-primitives-focus-scope.mjs +7 -5
  52. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-form.mjs +26 -17
  54. package/fesm2022/radix-ng-primitives-form.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-input.mjs +41 -22
  56. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
  57. package/fesm2022/radix-ng-primitives-label.mjs +11 -8
  58. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  59. package/fesm2022/radix-ng-primitives-menu.mjs +274 -154
  60. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  61. package/fesm2022/radix-ng-primitives-menubar.mjs +35 -17
  62. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  63. package/fesm2022/radix-ng-primitives-meter.mjs +41 -30
  64. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -1
  65. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +220 -183
  66. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  67. package/fesm2022/radix-ng-primitives-number-field.mjs +93 -61
  68. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  69. package/fesm2022/radix-ng-primitives-pagination.mjs +48 -38
  70. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  71. package/fesm2022/radix-ng-primitives-popover.mjs +150 -107
  72. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  73. package/fesm2022/radix-ng-primitives-popper.mjs +79 -47
  74. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  75. package/fesm2022/radix-ng-primitives-portal.mjs +20 -13
  76. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  77. package/fesm2022/radix-ng-primitives-presence.mjs +3 -3
  78. package/fesm2022/radix-ng-primitives-preview-card.mjs +119 -74
  79. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-progress.mjs +73 -46
  81. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-radio.mjs +58 -40
  83. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-scroll-area.mjs +57 -41
  85. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-select.mjs +595 -102
  87. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-separator.mjs +11 -15
  89. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-slider.mjs +101 -64
  91. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-stepper.mjs +53 -39
  93. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-switch.mjs +25 -20
  95. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-tabs.mjs +76 -51
  97. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-time-field.mjs +72 -41
  99. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-toast.mjs +75 -56
  101. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
  102. package/fesm2022/radix-ng-primitives-toggle-group.mjs +39 -23
  103. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  104. package/fesm2022/radix-ng-primitives-toggle.mjs +36 -36
  105. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  106. package/fesm2022/radix-ng-primitives-toolbar.mjs +52 -31
  107. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  108. package/fesm2022/radix-ng-primitives-tooltip.mjs +118 -63
  109. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  110. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +31 -20
  111. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  112. package/package.json +2 -2
  113. package/types/radix-ng-primitives-accordion.d.ts +1 -0
  114. package/types/radix-ng-primitives-aspect-ratio.d.ts +10 -23
  115. package/types/radix-ng-primitives-autocomplete.d.ts +3 -1
  116. package/types/radix-ng-primitives-avatar.d.ts +51 -25
  117. package/types/radix-ng-primitives-checkbox.d.ts +26 -98
  118. package/types/radix-ng-primitives-combobox.d.ts +28 -9
  119. package/types/radix-ng-primitives-context-menu.d.ts +2 -0
  120. package/types/radix-ng-primitives-dialog.d.ts +6 -3
  121. package/types/radix-ng-primitives-field.d.ts +33 -207
  122. package/types/radix-ng-primitives-floating-focus-manager.d.ts +11 -0
  123. package/types/radix-ng-primitives-form.d.ts +24 -33
  124. package/types/radix-ng-primitives-label.d.ts +3 -2
  125. package/types/radix-ng-primitives-menu.d.ts +47 -15
  126. package/types/radix-ng-primitives-menubar.d.ts +6 -1
  127. package/types/radix-ng-primitives-navigation-menu.d.ts +8 -6
  128. package/types/radix-ng-primitives-number-field.d.ts +1 -1
  129. package/types/radix-ng-primitives-popover.d.ts +12 -4
  130. package/types/radix-ng-primitives-preview-card.d.ts +18 -5
  131. package/types/radix-ng-primitives-progress.d.ts +59 -121
  132. package/types/radix-ng-primitives-radio.d.ts +0 -1
  133. package/types/radix-ng-primitives-select.d.ts +186 -391
  134. package/types/radix-ng-primitives-separator.d.ts +0 -7
  135. package/types/radix-ng-primitives-toggle-group.d.ts +7 -3
  136. package/types/radix-ng-primitives-toggle.d.ts +8 -8
  137. package/types/radix-ng-primitives-toolbar.d.ts +2 -0
  138. package/types/radix-ng-primitives-tooltip.d.ts +17 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ng/primitives",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Headless, signals-first UI primitives for Angular.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -19,7 +19,7 @@
19
19
  "headless"
20
20
  ],
21
21
  "peerDependencies": {
22
- "@angular/core": "^21.0.0",
22
+ "@angular/core": "^21.0.0 || ^22.0.0",
23
23
  "@floating-ui/dom": "^1.7.6",
24
24
  "@internationalized/date": "^3.12.2",
25
25
  "@internationalized/number": "^3.6.7"
@@ -175,6 +175,7 @@ declare class RdxAccordionPanelDirective {
175
175
  declare class RdxAccordionTriggerDirective {
176
176
  protected readonly rootContext: _radix_ng_primitives_accordion.AccordionRootContext;
177
177
  protected readonly itemContext: _radix_ng_primitives_accordion.AccordionItemContext;
178
+ protected readonly collapsibleContext: i1$1.CollapsibleRootContext;
178
179
  constructor();
179
180
  changeItem(event: Event): void;
180
181
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionTriggerDirective, never>;
@@ -1,35 +1,22 @@
1
- import * as _angular_core from '@angular/core';
2
- import { AfterViewInit } from '@angular/core';
1
+ import * as i0 from '@angular/core';
3
2
  import { NumberInput } from '@radix-ng/primitives/core';
4
3
 
5
4
  /**
6
- * Directive to maintain an aspect ratio for an element.
7
- * The element will have its `padding-bottom` dynamically calculated
8
- * based on the provided aspect ratio to maintain the desired ratio.
9
- * The content inside the element will be positioned absolutely.
5
+ * Maintains a fixed aspect ratio for its content using the native CSS `aspect-ratio` property.
6
+ * Place the content inside (e.g. an `<img class="size-full object-cover">`) and it fills the box.
7
+ *
10
8
  * @group Components
11
9
  */
12
- declare class RdxAspectRatioDirective implements AfterViewInit {
13
- private readonly element;
14
- private readonly renderer;
10
+ declare class RdxAspectRatioDirective {
15
11
  /**
16
- * The desired aspect ratio (e.g., 16/9).
17
- * By default, it is set to 1 (which results in a square, 1:1).
12
+ * The desired aspect ratio (e.g. `16 / 9`). Defaults to `1` (a square, 1:1).
13
+ *
18
14
  * @group Props
19
15
  * @defaultValue 1
20
16
  */
21
- readonly ratio: _angular_core.InputSignalWithTransform<number, NumberInput>;
22
- /**
23
- * Dynamically computed `padding-bottom` style for the element.
24
- * This value is calculated based on the inverse of the aspect ratio.
25
- *
26
- * If the ratio is zero, it defaults to `0%` to avoid division by zero.
27
- *
28
- */
29
- protected readonly paddingBottom: _angular_core.Signal<string>;
30
- ngAfterViewInit(): void;
31
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxAspectRatioDirective, never>;
32
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxAspectRatioDirective, "[rdxAspectRatio]", ["rdxAspectRatio"], { "ratio": { "alias": "ratio"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
17
+ readonly ratio: i0.InputSignalWithTransform<number, NumberInput>;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxAspectRatioDirective, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAspectRatioDirective, "[rdxAspectRatio]", ["rdxAspectRatio"], { "ratio": { "alias": "ratio"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
33
20
  }
34
21
 
35
22
  export { RdxAspectRatioDirective };
@@ -3,7 +3,7 @@ import * as _radix_ng_primitives_combobox from '@radix-ng/primitives/combobox';
3
3
  import { RdxComboboxOpenChange, ComboboxItemHighlightedDetails, ComboboxInputLayout, ComboboxItemRef, RdxComboboxOpenChangeReason, ComboboxHighlightReason } from '@radix-ng/primitives/combobox';
4
4
  export { ComboboxHighlightReason as AutocompleteHighlightReason, ComboboxItemHighlightedDetails as AutocompleteItemHighlightedDetails } from '@radix-ng/primitives/combobox';
5
5
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
6
- import { AcceptableValue, RdxFloatingRootContext, Direction, BooleanInput, ItemValueComparator } from '@radix-ng/primitives/core';
6
+ import { AcceptableValue, RdxCancelableChangeEventDetails, RdxFloatingRootContext, Direction, BooleanInput, ItemValueComparator } from '@radix-ng/primitives/core';
7
7
  import { ControlValueAccessor } from '@angular/forms';
8
8
  import * as i1 from '@radix-ng/primitives/popper';
9
9
  import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
@@ -45,6 +45,8 @@ interface AutocompleteValueChangeDetails {
45
45
  value: string;
46
46
  /** What caused the change (e.g. skip `'item-press'` to avoid overwriting an external value). */
47
47
  reason: AutocompleteChangeReason;
48
+ /** Cancelable details — call `eventDetails.cancel()` to veto the change. */
49
+ eventDetails: RdxCancelableChangeEventDetails<AutocompleteChangeReason>;
48
50
  }
49
51
 
50
52
  /**
@@ -1,17 +1,18 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { WritableSignal, InjectionToken, Provider } from '@angular/core';
3
+ import * as _radix_ng_primitives_avatar from '@radix-ng/primitives/avatar';
4
+ import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
3
5
 
4
6
  type RdxImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';
5
7
  type HTMLAttributeReferrerPolicy = '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
6
8
 
7
- interface AvatarContextToken {
8
- imageLoadingStatus: WritableSignal<RdxImageLoadingStatus>;
9
- }
10
-
11
- declare class RdxAvatarRootDirective implements AvatarContextToken {
12
- readonly imageLoadingStatus: i0.WritableSignal<RdxImageLoadingStatus>;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxAvatarRootDirective, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAvatarRootDirective, "span[rdxAvatarRoot]", ["rdxAvatarRoot"], {}, {}, never, never, true, never>;
9
+ /**
10
+ * @group Components
11
+ */
12
+ declare class RdxAvatarRootDirective {
13
+ readonly imageLoadingStatus: _angular_core.WritableSignal<RdxImageLoadingStatus>;
14
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxAvatarRootDirective, never>;
15
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxAvatarRootDirective, "span[rdxAvatarRoot]", ["rdxAvatarRoot"], {}, {}, never, never, true, never>;
15
16
  }
16
17
 
17
18
  /**
@@ -19,18 +20,18 @@ declare class RdxAvatarRootDirective implements AvatarContextToken {
19
20
  */
20
21
  declare class RdxAvatarFallbackDirective {
21
22
  private readonly config;
22
- protected readonly rootContext: AvatarContextToken;
23
+ protected readonly rootContext: _radix_ng_primitives_avatar.AvatarRootContext;
23
24
  /**
24
25
  * Useful for delaying rendering so it only appears for those with slower connections.
25
26
  *
26
27
  * @group Props
27
28
  * @defaultValue 0
28
29
  */
29
- readonly delayMs: i0.InputSignal<number>;
30
- protected readonly canRender: i0.WritableSignal<boolean>;
30
+ readonly delayMs: _angular_core.InputSignal<number>;
31
+ protected readonly canRender: _angular_core.WritableSignal<boolean>;
31
32
  constructor();
32
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxAvatarFallbackDirective, never>;
33
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAvatarFallbackDirective, "span[rdxAvatarFallback]", ["rdxAvatarFallback"], { "delayMs": { "alias": "delayMs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
33
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxAvatarFallbackDirective, never>;
34
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxAvatarFallbackDirective, "span[rdxAvatarFallback]", ["rdxAvatarFallback"], { "delayMs": { "alias": "delayMs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
34
35
  }
35
36
 
36
37
  /**
@@ -38,24 +39,49 @@ declare class RdxAvatarFallbackDirective {
38
39
  */
39
40
  declare class RdxAvatarImageDirective {
40
41
  private readonly platformId;
41
- protected readonly rootContext: AvatarContextToken;
42
+ protected readonly rootContext: _radix_ng_primitives_avatar.AvatarRootContext;
42
43
  /**
43
44
  * @group Props
44
45
  */
45
- readonly src: i0.InputSignal<string | undefined>;
46
- readonly referrerPolicy: i0.InputSignal<HTMLAttributeReferrerPolicy | undefined>;
46
+ readonly src: _angular_core.InputSignal<string | undefined>;
47
+ /**
48
+ * A responsive `srcset` for the image. When set without `src`, an empty `src` no longer counts as
49
+ * an error.
50
+ *
51
+ * @group Props
52
+ */
53
+ readonly srcSet: _angular_core.InputSignal<string | undefined>;
54
+ /**
55
+ * The `sizes` attribute paired with `srcSet`.
56
+ *
57
+ * @group Props
58
+ */
59
+ readonly sizes: _angular_core.InputSignal<string | undefined>;
60
+ /**
61
+ * The CORS mode used when fetching the image.
62
+ *
63
+ * @group Props
64
+ */
65
+ readonly crossOrigin: _angular_core.InputSignal<"" | "anonymous" | "use-credentials" | undefined>;
66
+ readonly referrerPolicy: _angular_core.InputSignal<HTMLAttributeReferrerPolicy | undefined>;
47
67
  /**
48
68
  * A callback providing information about the loading status of the image.
49
69
  * This is useful in case you want to control more precisely what to render as the image is loading.
50
70
  *
51
71
  * @group Emits
52
72
  */
53
- readonly onLoadingStatusChange: i0.OutputEmitterRef<RdxImageLoadingStatus>;
73
+ readonly onLoadingStatusChange: _angular_core.OutputEmitterRef<RdxImageLoadingStatus>;
54
74
  private readonly loadingStatus;
55
75
  constructor();
56
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxAvatarImageDirective, never>;
57
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAvatarImageDirective, "img[rdxAvatarImage]", ["rdxAvatarImage"], { "src": { "alias": "src"; "required": false; "isSignal": true; }; "referrerPolicy": { "alias": "referrerPolicy"; "required": false; "isSignal": true; }; }, { "onLoadingStatusChange": "onLoadingStatusChange"; }, never, never, true, never>;
76
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxAvatarImageDirective, never>;
77
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxAvatarImageDirective, "img[rdxAvatarImage]", ["rdxAvatarImage"], { "src": { "alias": "src"; "required": false; "isSignal": true; }; "srcSet": { "alias": "srcSet"; "required": false; "isSignal": true; }; "sizes": { "alias": "sizes"; "required": false; "isSignal": true; }; "crossOrigin": { "alias": "crossOrigin"; "required": false; "isSignal": true; }; "referrerPolicy": { "alias": "referrerPolicy"; "required": false; "isSignal": true; }; }, { "onLoadingStatusChange": "onLoadingStatusChange"; }, never, never, true, never>;
78
+ }
79
+
80
+ interface AvatarRootContext {
81
+ imageLoadingStatus: WritableSignal<RdxImageLoadingStatus>;
58
82
  }
83
+ declare const injectAvatarRootContext: _radix_ng_primitives_core.InjectContext<AvatarRootContext>;
84
+ declare const provideAvatarRootContext: (useFactory: () => AvatarRootContext) => _angular_core.Provider;
59
85
 
60
86
  interface RdxAvatarConfig {
61
87
  /**
@@ -71,10 +97,10 @@ declare function provideRdxAvatarConfig(config: Partial<RdxAvatarConfig>): Provi
71
97
  declare function injectAvatarConfig(): RdxAvatarConfig;
72
98
 
73
99
  declare class RdxAvatarModule {
74
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxAvatarModule, never>;
75
- static ɵmod: i0.ɵɵNgModuleDeclaration<RdxAvatarModule, never, [typeof RdxAvatarRootDirective, typeof RdxAvatarFallbackDirective, typeof RdxAvatarImageDirective], [typeof RdxAvatarRootDirective, typeof RdxAvatarFallbackDirective, typeof RdxAvatarImageDirective]>;
76
- static ɵinj: i0.ɵɵInjectorDeclaration<RdxAvatarModule>;
100
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxAvatarModule, never>;
101
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxAvatarModule, never, [typeof RdxAvatarRootDirective, typeof RdxAvatarFallbackDirective, typeof RdxAvatarImageDirective], [typeof RdxAvatarRootDirective, typeof RdxAvatarFallbackDirective, typeof RdxAvatarImageDirective]>;
102
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxAvatarModule>;
77
103
  }
78
104
 
79
- export { RdxAvatarConfigToken, RdxAvatarFallbackDirective, RdxAvatarImageDirective, RdxAvatarModule, RdxAvatarRootDirective, defaultAvatarConfig, injectAvatarConfig, provideRdxAvatarConfig };
80
- export type { RdxAvatarConfig, RdxImageLoadingStatus };
105
+ export { RdxAvatarConfigToken, RdxAvatarFallbackDirective, RdxAvatarImageDirective, RdxAvatarModule, RdxAvatarRootDirective, defaultAvatarConfig, injectAvatarConfig, injectAvatarRootContext, provideAvatarRootContext, provideRdxAvatarConfig };
106
+ export type { AvatarRootContext, HTMLAttributeReferrerPolicy, RdxAvatarConfig, RdxImageLoadingStatus };
@@ -1,8 +1,8 @@
1
- import * as _radix_ng_primitives_types_radix_ng_primitives_core from '@radix-ng/primitives/types/radix-ng-primitives-core';
2
1
  import * as _angular_core from '@angular/core';
3
2
  import { Signal } from '@angular/core';
3
+ import * as _radix_ng_primitives_checkbox from '@radix-ng/primitives/checkbox';
4
4
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
5
- import { BooleanInput, RdxCancelableChangeEventDetails, RdxFormCheckboxControl } from '@radix-ng/primitives/core';
5
+ import { RdxCancelableChangeEventDetails, RdxFormCheckboxControl, BooleanInput } from '@radix-ng/primitives/core';
6
6
  import { ControlValueAccessor } from '@angular/forms';
7
7
 
8
8
  /**
@@ -12,20 +12,7 @@ import { ControlValueAccessor } from '@angular/forms';
12
12
  * In forms, it stops the button's click from bubbling so only the hidden input emits the native event used for form/validator integration.
13
13
  */
14
14
  declare class RdxCheckboxButtonDirective {
15
- protected readonly rootContext: {
16
- checked: _angular_core.Signal<boolean>;
17
- indeterminate: _angular_core.Signal<boolean>;
18
- disabled: _angular_core.Signal<boolean>;
19
- required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
20
- value: _angular_core.InputSignal<string>;
21
- name: _angular_core.InputSignal<string | undefined>;
22
- parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
23
- form: _angular_core.InputSignal<string | undefined>;
24
- readonly: _angular_core.Signal<boolean>;
25
- state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
26
- uncheckedValue: _angular_core.InputSignal<string | undefined>;
27
- toggle(event?: Event): void;
28
- };
15
+ protected readonly rootContext: _radix_ng_primitives_checkbox.CheckboxRootContext;
29
16
  private readonly group;
30
17
  private readonly elementRef;
31
18
  /** A `parent` checkbox lists the ids of the children it controls. */
@@ -51,49 +38,22 @@ interface RdxCheckboxCheckedChangeEvent {
51
38
  checked: boolean;
52
39
  eventDetails: RdxCheckboxCheckedChangeEventDetails;
53
40
  }
54
- declare const rootContext: () => {
55
- checked: _angular_core.Signal<boolean>;
56
- indeterminate: _angular_core.Signal<boolean>;
57
- disabled: _angular_core.Signal<boolean>;
58
- required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
59
- value: _angular_core.InputSignal<string>;
60
- name: _angular_core.InputSignal<string | undefined>;
61
- parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
62
- form: _angular_core.InputSignal<string | undefined>;
63
- readonly: _angular_core.Signal<boolean>;
64
- state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
65
- uncheckedValue: _angular_core.InputSignal<string | undefined>;
66
- toggle(event?: Event): void;
67
- };
68
- type CheckboxRootContext = ReturnType<typeof rootContext>;
69
- declare const injectCheckboxRootContext: _radix_ng_primitives_core.InjectContext<{
70
- checked: _angular_core.Signal<boolean>;
71
- indeterminate: _angular_core.Signal<boolean>;
72
- disabled: _angular_core.Signal<boolean>;
73
- required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
74
- value: _angular_core.InputSignal<string>;
75
- name: _angular_core.InputSignal<string | undefined>;
76
- parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
77
- form: _angular_core.InputSignal<string | undefined>;
78
- readonly: _angular_core.Signal<boolean>;
79
- state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
80
- uncheckedValue: _angular_core.InputSignal<string | undefined>;
81
- toggle(event?: Event): void;
82
- }>;
83
- declare const provideCheckboxRootContext: (useFactory: () => {
84
- checked: _angular_core.Signal<boolean>;
85
- indeterminate: _angular_core.Signal<boolean>;
86
- disabled: _angular_core.Signal<boolean>;
87
- required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
88
- value: _angular_core.InputSignal<string>;
89
- name: _angular_core.InputSignal<string | undefined>;
90
- parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
91
- form: _angular_core.InputSignal<string | undefined>;
92
- readonly: _angular_core.Signal<boolean>;
93
- state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
94
- uncheckedValue: _angular_core.InputSignal<string | undefined>;
95
- toggle(event?: Event): void;
96
- }) => _angular_core.Provider;
41
+ interface CheckboxRootContext {
42
+ checked: Signal<boolean>;
43
+ indeterminate: Signal<boolean>;
44
+ disabled: Signal<boolean>;
45
+ required: Signal<boolean>;
46
+ value: Signal<string>;
47
+ name: Signal<string | undefined>;
48
+ parent: Signal<boolean>;
49
+ form: Signal<string | undefined>;
50
+ readonly: Signal<boolean>;
51
+ state: Signal<'indeterminate' | 'checked' | 'unchecked'>;
52
+ uncheckedValue: Signal<string | undefined>;
53
+ toggle: (event?: Event) => void;
54
+ }
55
+ declare const injectCheckboxRootContext: _radix_ng_primitives_core.InjectContext<CheckboxRootContext>;
56
+ declare const provideCheckboxRootContext: (useFactory: () => CheckboxRootContext) => _angular_core.Provider;
97
57
  /**
98
58
  * @group Components
99
59
  */
@@ -104,12 +64,6 @@ declare class RdxCheckboxRootDirective implements RdxFormCheckboxControl {
104
64
  private uncheckedInputElement;
105
65
  /** The group this checkbox belongs to, if it is rendered inside a `rdxCheckboxGroup`. */
106
66
  private readonly group;
107
- /**
108
- * @ignore
109
- * Reflects the effective disabled state (CVA, covering reactive-forms `.disable()`, plus the
110
- * group's disabled state), used for the `data-disabled` host attribute.
111
- */
112
- protected readonly isDisabled: _angular_core.Signal<boolean>;
113
67
  /**
114
68
  * The controlled checked state of the checkbox. Must be used in conjunction with onCheckedChange.
115
69
  *
@@ -195,17 +149,17 @@ declare class RdxCheckboxRootDirective implements RdxFormCheckboxControl {
195
149
  * group (a `parent` checkbox is checked only when every child is; a child from whether its `name`
196
150
  * is in the group value); standalone it reads the CVA value.
197
151
  */
198
- readonly checkedState: _angular_core.Signal<boolean>;
152
+ readonly checkedState: Signal<boolean>;
199
153
  /**
200
154
  * @ignore
201
155
  * The effective mixed state. A `parent` checkbox is indeterminate when some — but not all —
202
156
  * children are checked; otherwise it follows the `indeterminate` input.
203
157
  */
204
- readonly indeterminateState: _angular_core.Signal<boolean>;
158
+ readonly indeterminateState: Signal<boolean>;
205
159
  /** @ignore The effective disabled state, including the group. */
206
- readonly disabledState: _angular_core.Signal<boolean>;
207
- readonly readOnlyState: _angular_core.Signal<boolean>;
208
- readonly state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
160
+ readonly disabledState: Signal<boolean>;
161
+ readonly readOnlyState: Signal<boolean>;
162
+ readonly state: Signal<"indeterminate" | "checked" | "unchecked">;
209
163
  constructor();
210
164
  toggle(event?: Event): void;
211
165
  private syncUncheckedInput;
@@ -323,20 +277,7 @@ declare class RdxCheckboxGroupDirective implements ControlValueAccessor {
323
277
  }
324
278
 
325
279
  declare class RdxCheckboxIndicatorDirective {
326
- protected readonly rootContext: {
327
- checked: _angular_core.Signal<boolean>;
328
- indeterminate: _angular_core.Signal<boolean>;
329
- disabled: _angular_core.Signal<boolean>;
330
- required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
331
- value: _angular_core.InputSignal<string>;
332
- name: _angular_core.InputSignal<string | undefined>;
333
- parent: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
334
- form: _angular_core.InputSignal<string | undefined>;
335
- readonly: _angular_core.Signal<boolean>;
336
- state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
337
- uncheckedValue: _angular_core.InputSignal<string | undefined>;
338
- toggle(event?: Event): void;
339
- };
280
+ protected readonly rootContext: _radix_ng_primitives_checkbox.CheckboxRootContext;
340
281
  /** Keep the indicator in the DOM when unchecked so CSS exit animations can play. */
341
282
  readonly keepMounted: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
342
283
  protected readonly isVisible: _angular_core.Signal<boolean>;
@@ -345,20 +286,7 @@ declare class RdxCheckboxIndicatorDirective {
345
286
  }
346
287
 
347
288
  declare class RdxCheckboxInputDirective {
348
- protected readonly rootContext: {
349
- checked: _angular_core.Signal<boolean>;
350
- indeterminate: _angular_core.Signal<boolean>;
351
- disabled: _angular_core.Signal<boolean>;
352
- required: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
353
- value: _angular_core.InputSignal<string>;
354
- name: _angular_core.InputSignal<string | undefined>;
355
- parent: _angular_core.InputSignalWithTransform<boolean, _radix_ng_primitives_types_radix_ng_primitives_core.BooleanInput>;
356
- form: _angular_core.InputSignal<string | undefined>;
357
- readonly: _angular_core.Signal<boolean>;
358
- state: _angular_core.Signal<"indeterminate" | "checked" | "unchecked">;
359
- uncheckedValue: _angular_core.InputSignal<string | undefined>;
360
- toggle(event?: Event): void;
361
- };
289
+ protected readonly rootContext: _radix_ng_primitives_checkbox.CheckboxRootContext;
362
290
  private readonly input;
363
291
  constructor();
364
292
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxCheckboxInputDirective, never>;
@@ -3,7 +3,7 @@ import { Signal, Injector } from '@angular/core';
3
3
  import * as i1 from '@radix-ng/primitives/popper';
4
4
  import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
5
5
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
6
- import { AcceptableValue, RdxFloatingRootContext, Direction, BooleanInput, ItemValueComparator, RdxCancelableChangeEventDetails } from '@radix-ng/primitives/core';
6
+ import { AcceptableValue, RdxCancelableChangeEventDetails, RdxFloatingRootContext, Direction, BooleanInput, ItemValueComparator } from '@radix-ng/primitives/core';
7
7
  import { ControlValueAccessor } from '@angular/forms';
8
8
  import * as _radix_ng_primitives_combobox from '@radix-ng/primitives/combobox';
9
9
  import * as i1$1 from '@radix-ng/primitives/dismissable-layer';
@@ -196,6 +196,20 @@ interface RdxComboboxOpenChange {
196
196
  trigger: HTMLElement | undefined;
197
197
  eventDetails: RdxComboboxOpenChangeEventDetails;
198
198
  }
199
+ /** Why the selected value changed (Base UI value-change `reason`). */
200
+ type RdxComboboxValueChangeReason = 'item-press' | 'clear-press' | 'chip-remove-press' | 'input-clear' | 'none';
201
+ type RdxComboboxValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxComboboxValueChangeReason>;
202
+ /** Payload of {@link RdxComboboxRoot.onValueChange} — cancelable via `eventDetails.cancel()`. */
203
+ interface RdxComboboxValueChange {
204
+ value: ComboboxValue | null;
205
+ reason: RdxComboboxValueChangeReason;
206
+ eventDetails: RdxComboboxValueChangeEventDetails;
207
+ }
208
+ /** Payload of {@link RdxComboboxRoot.onInputValueChange} — cancelable via `eventDetails.cancel()`. */
209
+ interface RdxComboboxInputValueChange {
210
+ value: string;
211
+ eventDetails: RdxComboboxValueChangeEventDetails;
212
+ }
199
213
 
200
214
  declare const context: () => {
201
215
  listId: string;
@@ -516,10 +530,10 @@ declare class RdxComboboxRoot implements ControlValueAccessor {
516
530
  readonly isItemEqualToValue: _angular_core.InputSignal<ItemValueComparator<AcceptableValue> | undefined>;
517
531
  /** Converts a value to its display label. Defaults to the matching item's text. */
518
532
  readonly itemToStringLabel: _angular_core.InputSignal<((value: AcceptableValue) => string) | undefined>;
519
- /** Emits when the selection changes. */
520
- readonly onValueChange: _angular_core.OutputEmitterRef<ComboboxValue>;
521
- /** Emits when the input text changes. */
522
- readonly onInputValueChange: _angular_core.OutputEmitterRef<string>;
533
+ /** Emits before the selection changes; call `eventDetails.cancel()` to veto it. */
534
+ readonly onValueChange: _angular_core.OutputEmitterRef<RdxComboboxValueChange>;
535
+ /** Emits before the input text changes; call `eventDetails.cancel()` to veto it. */
536
+ readonly onInputValueChange: _angular_core.OutputEmitterRef<RdxComboboxInputValueChange>;
523
537
  /** Emits when the popup opens or closes. */
524
538
  readonly onOpenChange: _angular_core.OutputEmitterRef<RdxComboboxOpenChange>;
525
539
  /**
@@ -576,9 +590,12 @@ declare class RdxComboboxRoot implements ControlValueAccessor {
576
590
  isSelected(value: AcceptableValue): boolean;
577
591
  setOpen(open: boolean, reason?: RdxComboboxOpenChangeReason, event?: Event): boolean;
578
592
  closePopup(revert?: boolean, reason?: RdxComboboxOpenChangeReason, event?: Event): void;
579
- /** Updates the input text from user typing (marks the query as a fresh user query). */
580
- setInputValue(value: string): void;
581
- /** Sets the input text programmatically (a selection label / revert) — not a user query. */
593
+ /** Updates the input text from user typing (marks the query as a fresh user query). Cancelable. */
594
+ setInputValue(value: string, event?: Event): void;
595
+ /**
596
+ * Sets the input text programmatically (a selection label / revert) — not a user query. Emits
597
+ * `onInputValueChange` for observability but is not vetoable (it is a derived sync, not a user edit).
598
+ */
582
599
  private setLabel;
583
600
  /** Resets the input text to the current selection's label (single mode) or empty. */
584
601
  private revertInputValue;
@@ -938,6 +955,8 @@ declare class RdxComboboxTrigger {
938
955
  markAsTouched: () => void;
939
956
  };
940
957
  private readonly element;
958
+ /** Whether the trigger is currently pressed (pointer down), for Base UI's `data-pressed`. */
959
+ protected readonly pressed: _angular_core.WritableSignal<boolean>;
941
960
  constructor();
942
961
  onPointerDown(event: PointerEvent): void;
943
962
  onClick(event: MouseEvent): void;
@@ -1696,4 +1715,4 @@ declare class RdxComboboxModule {
1696
1715
  }
1697
1716
 
1698
1717
  export { RdxComboboxAnchor, RdxComboboxArrow, RdxComboboxBackdrop, RdxComboboxChip, RdxComboboxChipRemove, RdxComboboxChips, RdxComboboxClear, RdxComboboxEmpty, RdxComboboxGroup, RdxComboboxGroupLabel, RdxComboboxIcon, RdxComboboxInput, RdxComboboxInputGroup, RdxComboboxItem, RdxComboboxItemIndicator, RdxComboboxLabel, RdxComboboxList, RdxComboboxModule, RdxComboboxPopup, RdxComboboxPortal, RdxComboboxPortalMisuseGuard, RdxComboboxPositioner, RdxComboboxRoot, RdxComboboxRow, RdxComboboxSeparator, RdxComboboxStatus, RdxComboboxTrigger, RdxComboboxValue, _importsCombobox, injectComboboxChipContext, injectComboboxGroupContext, injectComboboxItemContext, injectComboboxRootContext, provideComboboxChipContext, provideComboboxGroupContext, provideComboboxItemContext, provideComboboxRootContext, useComboboxEngine };
1699
- export type { ComboboxFilter, ComboboxHighlightReason, ComboboxInputLayout, ComboboxItemHighlightedDetails, ComboboxItemRef, ComboboxValue, RdxComboboxChipContext, RdxComboboxGroupContext, RdxComboboxItemContext, RdxComboboxOpenChange, RdxComboboxOpenChangeEventDetails, RdxComboboxOpenChangeReason, RdxComboboxRootContext };
1718
+ export type { ComboboxFilter, ComboboxHighlightReason, ComboboxInputLayout, ComboboxItemHighlightedDetails, ComboboxItemRef, ComboboxValue, RdxComboboxChipContext, RdxComboboxGroupContext, RdxComboboxInputValueChange, RdxComboboxItemContext, RdxComboboxOpenChange, RdxComboboxOpenChangeEventDetails, RdxComboboxOpenChangeReason, RdxComboboxRootContext, RdxComboboxValueChange, RdxComboboxValueChangeEventDetails, RdxComboboxValueChangeReason };
@@ -57,6 +57,8 @@ declare class RdxContextMenuTrigger {
57
57
  readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
58
58
  /** How long (ms) a touch must be held before the menu opens. */
59
59
  readonly longPressDelay: i0.InputSignalWithTransform<number, NumberInput>;
60
+ /** Whether the trigger is mid-press (Base UI `data-pressed`). */
61
+ protected readonly pressed: i0.WritableSignal<boolean>;
60
62
  private longPressTimer;
61
63
  private allowMouseUpTimer;
62
64
  private longPressOrigin;
@@ -112,6 +112,8 @@ interface RdxDialogRootContext {
112
112
  /** Whether this dialog is nested in another; constant, fixed at construction. */
113
113
  nested: boolean;
114
114
  nestedDialogOpen: Signal<boolean>;
115
+ /** Number of currently-open dialogs nested directly inside this one (Base UI `--nested-dialogs`). */
116
+ nestedOpenCount: Signal<number>;
115
117
  setTitleId: (id: string | undefined) => void;
116
118
  setDescriptionId: (id: string | undefined) => void;
117
119
  registerTransitionElement: (element: HTMLElement) => () => void;
@@ -160,13 +162,14 @@ declare class RdxDialogRoot {
160
162
  */
161
163
  readonly modal: _angular_core.InputSignalWithTransform<RdxDialogModal, BooleanInput>;
162
164
  /**
163
- * Determines whether the dialog should close on outside clicks.
165
+ * Determines whether the dialog should close on outside clicks. For a non-modal dialog this also
166
+ * prevents the dialog from closing when focus moves outside of it.
164
167
  */
165
168
  readonly disablePointerDismissal: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
166
169
  /**
167
170
  * Associates this root with detached trigger elements rendered outside of it.
168
171
  */
169
- readonly handle: _angular_core.InputSignal<RdxDialogHandle<any> | undefined>;
172
+ readonly handle: _angular_core.InputSignal<RdxDialogHandle<unknown> | undefined>;
170
173
  /**
171
174
  * Event handler called when the dialog is opened or closed.
172
175
  */
@@ -227,7 +230,7 @@ declare class RdxDialogTrigger {
227
230
  /**
228
231
  * Associates this trigger with a detached dialog root.
229
232
  */
230
- readonly handle: _angular_core.InputSignal<RdxDialogHandle<any> | undefined>;
233
+ readonly handle: _angular_core.InputSignal<RdxDialogHandle<unknown> | undefined>;
231
234
  /**
232
235
  * Data associated with this trigger while it is active.
233
236
  */