@radix-ng/primitives 0.51.0 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
  6. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
  9. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  11. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  12. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
  18. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +735 -744
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-cropper.mjs +1 -0
  25. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-date-field.mjs +51 -45
  27. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
  29. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
  31. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  33. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  34. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  36. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  37. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  38. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  39. package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  42. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  43. package/fesm2022/radix-ng-primitives-label.mjs +6 -6
  44. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-menu.mjs +1480 -344
  46. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  48. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  50. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
  52. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
  54. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +91 -41
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  65. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  66. package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
  67. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
  71. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select.mjs +791 -509
  73. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +381 -108
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1071
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
  95. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  96. package/meter/README.md +3 -0
  97. package/navigation-menu/README.md +2 -1
  98. package/package.json +31 -18
  99. package/portal/README.md +2 -0
  100. package/preview-card/README.md +3 -0
  101. package/schematics/collection.json +1 -0
  102. package/schematics/ng-add/index.d.ts +3 -2
  103. package/schematics/ng-add/index.js +62 -31
  104. package/schematics/ng-add/index.js.map +1 -1
  105. package/schematics/ng-add/package-config.d.ts +4 -2
  106. package/schematics/ng-add/package-config.js +10 -2
  107. package/schematics/ng-add/package-config.js.map +1 -1
  108. package/schematics/ng-add/schema.d.ts +3 -0
  109. package/schematics/ng-add/schema.js +3 -0
  110. package/schematics/ng-add/schema.js.map +1 -0
  111. package/schematics/ng-add/schema.json +14 -0
  112. package/select/README.md +2 -0
  113. package/types/radix-ng-primitives-accordion.d.ts +48 -14
  114. package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
  115. package/types/radix-ng-primitives-arrow.d.ts +1 -1
  116. package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
  117. package/types/radix-ng-primitives-avatar.d.ts +7 -11
  118. package/types/radix-ng-primitives-button.d.ts +73 -0
  119. package/types/radix-ng-primitives-calendar.d.ts +1 -2
  120. package/types/radix-ng-primitives-checkbox.d.ts +201 -32
  121. package/types/radix-ng-primitives-collapsible.d.ts +112 -39
  122. package/types/radix-ng-primitives-collection.d.ts +38 -34
  123. package/types/radix-ng-primitives-config.d.ts +1 -1
  124. package/types/radix-ng-primitives-context-menu.d.ts +60 -116
  125. package/types/radix-ng-primitives-core.d.ts +307 -236
  126. package/types/radix-ng-primitives-cropper.d.ts +2 -2
  127. package/types/radix-ng-primitives-date-field.d.ts +38 -23
  128. package/types/radix-ng-primitives-dialog.d.ts +282 -165
  129. package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
  130. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  131. package/types/radix-ng-primitives-editable.d.ts +1 -1
  132. package/types/radix-ng-primitives-field.d.ts +373 -0
  133. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  134. package/types/radix-ng-primitives-focus-scope.d.ts +13 -5
  135. package/types/radix-ng-primitives-input.d.ts +87 -0
  136. package/types/radix-ng-primitives-label.d.ts +0 -1
  137. package/types/radix-ng-primitives-menu.d.ts +572 -99
  138. package/types/radix-ng-primitives-menubar.d.ts +60 -50
  139. package/types/radix-ng-primitives-meter.d.ts +193 -0
  140. package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
  141. package/types/radix-ng-primitives-number-field.d.ts +405 -145
  142. package/types/radix-ng-primitives-pagination.d.ts +2 -2
  143. package/types/radix-ng-primitives-popover.d.ts +365 -351
  144. package/types/radix-ng-primitives-popper.d.ts +49 -9
  145. package/types/radix-ng-primitives-portal.d.ts +14 -6
  146. package/types/radix-ng-primitives-presence.d.ts +28 -76
  147. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  148. package/types/radix-ng-primitives-progress.d.ts +174 -48
  149. package/types/radix-ng-primitives-radio.d.ts +55 -25
  150. package/types/radix-ng-primitives-roving-focus.d.ts +30 -21
  151. package/types/radix-ng-primitives-select.d.ts +475 -177
  152. package/types/radix-ng-primitives-separator.d.ts +7 -32
  153. package/types/radix-ng-primitives-slider.d.ts +315 -201
  154. package/types/radix-ng-primitives-stepper.d.ts +5 -7
  155. package/types/radix-ng-primitives-switch.d.ts +86 -71
  156. package/types/radix-ng-primitives-tabs.d.ts +213 -79
  157. package/types/radix-ng-primitives-time-field.d.ts +42 -27
  158. package/types/radix-ng-primitives-toggle-group.d.ts +85 -164
  159. package/types/radix-ng-primitives-toggle.d.ts +43 -53
  160. package/types/radix-ng-primitives-toolbar.d.ts +163 -38
  161. package/types/radix-ng-primitives-tooltip.d.ts +347 -384
  162. package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
  163. package/dropdown-menu/README.md +0 -1
  164. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
  165. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  166. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
  167. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  168. package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
  169. package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
  170. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
  171. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  172. package/hover-card/README.md +0 -3
  173. package/select2/README.md +0 -3
  174. package/tooltip2/README.md +0 -3
  175. package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
  176. package/types/radix-ng-primitives-hover-card.d.ts +0 -471
  177. package/types/radix-ng-primitives-select2.d.ts +0 -511
  178. package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
@@ -1,27 +1,36 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InputSignalWithTransform, ModelSignal, Signal, OnInit, InjectionToken } from '@angular/core';
3
- import { BooleanInput } from '@angular/cdk/coercion';
2
+ import { ModelSignal, InputSignal, InputSignalWithTransform, Signal, InjectionToken } from '@angular/core';
4
3
  import { ControlValueAccessor } from '@angular/forms';
4
+ import { BooleanInput, RdxFormValueControl } from '@radix-ng/primitives/core';
5
5
  import * as i1 from '@radix-ng/primitives/roving-focus';
6
6
  import { Orientation } from '@radix-ng/primitives/roving-focus';
7
7
  import * as i1$1 from '@radix-ng/primitives/visually-hidden';
8
8
 
9
9
  interface RadioGroupProps {
10
- name?: string;
11
- disabled?: InputSignalWithTransform<boolean, BooleanInput>;
12
- defaultValue?: string;
13
10
  value: ModelSignal<string | null>;
14
- disableState: Signal<boolean>;
11
+ defaultValue: InputSignal<string | undefined>;
12
+ name: InputSignal<string | undefined>;
13
+ form: InputSignal<string | undefined>;
14
+ disabled: InputSignalWithTransform<boolean, BooleanInput>;
15
+ readonly: InputSignalWithTransform<boolean, BooleanInput>;
16
+ required: InputSignalWithTransform<boolean, BooleanInput>;
17
+ orientation: InputSignal<Orientation | undefined>;
18
+ disabledState: Signal<boolean>;
15
19
  }
16
20
  interface RadioGroupDirective extends RadioGroupProps {
17
21
  select(value: string | null): void;
18
22
  onTouched(): void;
23
+ setArrowNavigation(value: boolean): void;
24
+ isArrowNavigation(): boolean;
19
25
  }
20
26
 
21
- declare class RdxRadioGroupDirective implements RadioGroupProps, RadioGroupDirective, ControlValueAccessor {
27
+ declare class RdxRadioGroupDirective implements RadioGroupProps, RadioGroupDirective, ControlValueAccessor, RdxFormValueControl<string | null> {
22
28
  readonly value: _angular_core.ModelSignal<string | null>;
29
+ readonly defaultValue: _angular_core.InputSignal<string | undefined>;
30
+ readonly name: _angular_core.InputSignal<string | undefined>;
31
+ readonly form: _angular_core.InputSignal<string | undefined>;
23
32
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
24
- defaultValue?: string;
33
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
25
34
  readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
26
35
  readonly orientation: _angular_core.InputSignal<Orientation | undefined>;
27
36
  /**
@@ -29,7 +38,8 @@ declare class RdxRadioGroupDirective implements RadioGroupProps, RadioGroupDirec
29
38
  */
30
39
  readonly onValueChange: _angular_core.OutputEmitterRef<string>;
31
40
  private readonly disable;
32
- readonly disableState: _angular_core.Signal<boolean>;
41
+ readonly disabledState: _angular_core.Signal<boolean>;
42
+ private readonly arrowNavigation;
33
43
  /**
34
44
  * The callback function to call when the value of the radio group changes.
35
45
  */
@@ -39,24 +49,25 @@ declare class RdxRadioGroupDirective implements RadioGroupProps, RadioGroupDirec
39
49
  * @ignore
40
50
  */
41
51
  onTouched: () => void;
52
+ constructor();
42
53
  /**
43
54
  * Select a radio item.
44
55
  * @param value The value of the radio item to select.
45
56
  * @ignore
46
57
  */
47
- select(value: string): void;
58
+ select(value: string | null): void;
48
59
  /**
49
60
  * Update the value of the radio group.
50
61
  * @param value The new value of the radio group.
51
62
  * @ignore
52
63
  */
53
- writeValue(value: string): void;
64
+ writeValue(value: string | null): void;
54
65
  /**
55
66
  * Register a callback function to call when the value of the radio group changes.
56
67
  * @param fn The callback function to call when the value of the radio group changes.
57
68
  * @ignore
58
69
  */
59
- registerOnChange(fn: (value: string) => void): void;
70
+ registerOnChange(fn: (value: string | null) => void): void;
60
71
  /** @ignore */
61
72
  registerOnTouched(fn: () => void): void;
62
73
  /**
@@ -65,26 +76,36 @@ declare class RdxRadioGroupDirective implements RadioGroupProps, RadioGroupDirec
65
76
  * @ignore
66
77
  */
67
78
  setDisabledState(isDisabled: boolean): void;
79
+ setArrowNavigation(value: boolean): void;
80
+ isArrowNavigation(): boolean;
68
81
  protected onKeydown(): void;
69
82
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxRadioGroupDirective, never>;
70
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRadioGroupDirective, "[rdxRadioRoot]", ["rdxRadioRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, [{ directive: typeof i1.RdxRovingFocusGroupDirective; inputs: { "dir": "dir"; "orientation": "orientation"; "loop": "loop"; }; outputs: {}; }]>;
83
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRadioGroupDirective, "[rdxRadioRoot]", ["rdxRadioRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "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; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, [{ directive: typeof i1.RdxRovingFocusGroupDirective; inputs: { "dir": "dir"; "orientation": "orientation"; "loop": "loop"; }; outputs: {}; }]>;
71
84
  }
72
85
 
73
86
  declare const RdxRadioItemToken: InjectionToken<RdxRadioItemDirective>;
74
87
  declare function injectRadioItem(): RdxRadioItemDirective;
75
- declare class RdxRadioItemDirective implements OnInit {
88
+ declare class RdxRadioItemDirective {
76
89
  private readonly radioGroup;
77
90
  private readonly elementRef;
91
+ private readonly renderer;
92
+ private readonly rovingFocusItem;
93
+ private readonly destroyRef;
94
+ private readonly inputElement;
95
+ private previousCheckedState;
78
96
  readonly value: _angular_core.InputSignal<string>;
79
97
  readonly id: _angular_core.InputSignal<string | undefined>;
80
- readonly required: _angular_core.InputSignal<boolean | undefined>;
98
+ readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
81
99
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
82
- protected readonly disabledState: _angular_core.Signal<boolean>;
100
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
101
+ readonly nativeButton: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
102
+ readonly nativeButtonState: _angular_core.Signal<boolean>;
103
+ readonly disabledState: _angular_core.Signal<boolean>;
104
+ readonly readonlyState: _angular_core.Signal<boolean>;
105
+ readonly requiredState: _angular_core.Signal<boolean>;
83
106
  readonly checkedState: _angular_core.Signal<boolean>;
84
107
  private readonly ARROW_KEYS;
85
- private readonly isArrowKeyPressedSignal;
86
- /** @ignore */
87
- ngOnInit(): void;
108
+ constructor();
88
109
  /** @ignore */
89
110
  onClick(): void;
90
111
  /** @ignore */
@@ -93,8 +114,13 @@ declare class RdxRadioItemDirective implements OnInit {
93
114
  onKeyUp(): void;
94
115
  /** @ignore */
95
116
  onFocus(): void;
117
+ private isAllowedArrowKey;
118
+ private createHiddenInput;
119
+ private syncHiddenInput;
120
+ private setOptionalAttribute;
121
+ private setBooleanAttribute;
96
122
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxRadioItemDirective, never>;
97
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRadioItemDirective, "[rdxRadioItem]", ["rdxRadioItem"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RdxRovingFocusItemDirective; inputs: { "tabStopId": "id"; "focusable": "focusable"; "active": "active"; "allowShiftKey": "allowShiftKey"; }; outputs: {}; }]>;
123
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRadioItemDirective, "[rdxRadioItem]", ["rdxRadioItem"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "nativeButton": { "alias": "nativeButton"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RdxRovingFocusItemDirective; inputs: { "tabStopId": "id"; "focusable": "focusable"; "active": "active"; "allowShiftKey": "allowShiftKey"; }; outputs: {}; }]>;
98
124
  }
99
125
 
100
126
  declare class RdxRadioIndicatorDirective {
@@ -106,13 +132,17 @@ declare class RdxRadioIndicatorDirective {
106
132
 
107
133
  declare class RdxRadioItemInputDirective {
108
134
  private readonly radioItem;
109
- readonly name: _angular_core.InputSignal<string | undefined>;
135
+ private readonly radioGroup;
136
+ private readonly input;
137
+ readonly name: _angular_core.Signal<string | undefined>;
138
+ readonly form: _angular_core.Signal<string | undefined>;
110
139
  readonly value: _angular_core.Signal<string | undefined>;
111
- readonly checked: _angular_core.Signal<true | undefined>;
112
- readonly required: _angular_core.InputSignal<boolean | undefined>;
113
- readonly disabled: _angular_core.InputSignal<boolean | undefined>;
140
+ readonly checked: _angular_core.Signal<boolean>;
141
+ readonly required: _angular_core.Signal<boolean>;
142
+ readonly disabled: _angular_core.Signal<boolean>;
143
+ constructor();
114
144
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxRadioItemInputDirective, never>;
115
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRadioItemInputDirective, "[rdxRadioItemInput]", ["rdxRadioItemInput"], { "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxVisuallyHiddenDirective; inputs: { "feature": "feature"; }; outputs: {}; }]>;
145
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRadioItemInputDirective, "input[rdxRadioItemInput]", ["rdxRadioItemInput"], {}, {}, never, never, true, [{ directive: typeof i1$1.RdxVisuallyHiddenDirective; inputs: { "feature": "feature"; }; outputs: {}; }]>;
116
146
  }
117
147
 
118
148
  export { RdxRadioGroupDirective, RdxRadioIndicatorDirective, RdxRadioItemDirective, RdxRadioItemInputDirective, RdxRadioItemToken, injectRadioItem };
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { BooleanInput } from '@angular/cdk/coercion';
2
+ import { BooleanInput } from '@radix-ng/primitives/core';
3
3
  import * as _radix_ng_primitives_roving_focus from '@radix-ng/primitives/roving-focus';
4
4
 
5
5
  type Orientation = 'horizontal' | 'vertical';
@@ -14,10 +14,8 @@ declare const rootContext: () => {
14
14
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
15
15
  onItemFocus: (tabStopId: string) => void;
16
16
  onItemShiftTab: () => void;
17
- onFocusableItemAdd: () => void;
18
- onFocusableItemRemove: () => void;
19
- registerItem: (item: HTMLElement) => void;
20
- unregisterItem: (item: HTMLElement) => void;
17
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
18
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
21
19
  };
22
20
  type RovingFocusGroupContext = ReturnType<typeof rootContext>;
23
21
  declare const injectRovingFocusGroupContext: (optional?: boolean) => {
@@ -28,10 +26,8 @@ declare const injectRovingFocusGroupContext: (optional?: boolean) => {
28
26
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
29
27
  onItemFocus: (tabStopId: string) => void;
30
28
  onItemShiftTab: () => void;
31
- onFocusableItemAdd: () => void;
32
- onFocusableItemRemove: () => void;
33
- registerItem: (item: HTMLElement) => void;
34
- unregisterItem: (item: HTMLElement) => void;
29
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
30
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
35
31
  } | null;
36
32
  declare const provideRovingFocusGroupContext: (useFactory: () => {
37
33
  loop: _angular_core.Signal<boolean>;
@@ -41,10 +37,8 @@ declare const provideRovingFocusGroupContext: (useFactory: () => {
41
37
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
42
38
  onItemFocus: (tabStopId: string) => void;
43
39
  onItemShiftTab: () => void;
44
- onFocusableItemAdd: () => void;
45
- onFocusableItemRemove: () => void;
46
- registerItem: (item: HTMLElement) => void;
47
- unregisterItem: (item: HTMLElement) => void;
40
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
41
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
48
42
  }) => _angular_core.Provider;
49
43
  /**
50
44
  * @group Components
@@ -52,6 +46,7 @@ declare const provideRovingFocusGroupContext: (useFactory: () => {
52
46
  declare class RdxRovingFocusGroupDirective {
53
47
  private readonly isBrowser;
54
48
  private readonly elementRef;
49
+ private readonly destroyRef;
55
50
  /**
56
51
  * The orientation of the group. Mainly so arrow navigation is done accordingly (left & right vs. up & down)
57
52
  */
@@ -95,12 +90,17 @@ declare class RdxRovingFocusGroupDirective {
95
90
  readonly focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
96
91
  protected readonly isClickFocus: _angular_core.WritableSignal<boolean>;
97
92
  readonly isTabbingBackOut: _angular_core.WritableSignal<boolean>;
98
- readonly focusableItemsCount: _angular_core.WritableSignal<number>;
93
+ private readonly itemIds;
94
+ private isDestroyed;
99
95
  constructor();
100
96
  setOrientation(value: Orientation): void;
101
97
  setDir(value: Direction): void;
102
98
  setLoop(value: boolean): void;
103
99
  /** @ignore */
100
+ registerItem(item: HTMLElement, tabStopId: string): void;
101
+ /** @ignore */
102
+ unregisterItem(item: HTMLElement, tabStopId: string): void;
103
+ /** @ignore */
104
104
  handleMouseUp(): void;
105
105
  /** @ignore */
106
106
  handleFocus(event: Event): void;
@@ -113,8 +113,11 @@ declare class RdxRovingFocusGroupDirective {
113
113
  */
114
114
  declare class RdxRovingFocusItemDirective {
115
115
  private readonly isBrowser;
116
- private readonly destroyRef;
117
116
  private readonly elementRef;
117
+ /**
118
+ * The enclosing roving-focus group. Optional: when the item is used outside a group
119
+ * (e.g. a standalone Toggle), it degrades to a plain element and does not manage focus.
120
+ */
118
121
  protected readonly rootContext: {
119
122
  loop: _angular_core.Signal<boolean>;
120
123
  dir: _angular_core.Signal<_radix_ng_primitives_roving_focus.Direction>;
@@ -123,18 +126,16 @@ declare class RdxRovingFocusItemDirective {
123
126
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
124
127
  onItemFocus: (tabStopId: string) => void;
125
128
  onItemShiftTab: () => void;
126
- onFocusableItemAdd: () => void;
127
- onFocusableItemRemove: () => void;
128
- registerItem: (item: HTMLElement) => void;
129
- unregisterItem: (item: HTMLElement) => void;
130
- };
129
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
130
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
131
+ } | null;
131
132
  /**
132
133
  * When false, item will not be focusable.
133
134
  * @group Props
134
135
  */
135
136
  readonly focusableInput: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
136
137
  /**
137
- * When `true`, item will be initially focused.
138
+ * When `true`, marks the item as the active one, so it is preferred when focus enters the group.
138
139
  * @group Props
139
140
  */
140
141
  readonly activeInput: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
@@ -147,16 +148,24 @@ declare class RdxRovingFocusItemDirective {
147
148
  * @group Props
148
149
  */
149
150
  readonly allowShiftKey: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
151
+ private readonly generatedId;
150
152
  protected readonly id: _angular_core.Signal<string>;
151
153
  protected readonly isCurrentTabStop: _angular_core.Signal<boolean>;
152
154
  protected readonly focusable: _angular_core.WritableSignal<boolean>;
153
155
  protected readonly active: _angular_core.WritableSignal<boolean>;
154
156
  private readonly tabStopId;
157
+ /**
158
+ * The roving tabindex. Without a group the item keeps its natural tab order (`null`); inside a
159
+ * group exactly one focusable item is a tab stop (`0`), the rest are reachable only via arrows (`-1`).
160
+ */
161
+ protected readonly tabindex: _angular_core.Signal<-1 | 0 | null>;
155
162
  constructor();
156
163
  setFocusable(value: boolean): void;
157
164
  setActive(value: boolean): void;
158
165
  setTabStopId(value: string): void;
159
166
  /** @ignore */
167
+ onFocus(): void;
168
+ /** @ignore */
160
169
  handleMouseDown(event: Event): void;
161
170
  /**
162
171
  * Handles the `keydown` event for keyboard navigation within the roving focus group.