@radix-ng/primitives 0.50.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 (207) hide show
  1. package/collection/README.md +1 -0
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +134 -66
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +224 -132
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-arrow.mjs +26 -10
  7. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +6 -6
  9. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-avatar.mjs +68 -75
  11. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  13. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  14. package/fesm2022/radix-ng-primitives-calendar.mjs +104 -103
  15. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs +414 -80
  17. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs +193 -92
  19. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-collection.mjs +72 -0
  21. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -0
  22. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  23. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-context-menu.mjs +143 -427
  25. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-core.mjs +757 -757
  27. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-cropper.mjs +55 -53
  29. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-date-field.mjs +93 -86
  31. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-dialog.mjs +658 -330
  33. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +98 -76
  35. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  37. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  38. package/fesm2022/radix-ng-primitives-editable.mjs +20 -20
  39. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  41. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  42. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  43. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  44. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  45. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-focus-scope.mjs +29 -14
  47. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  49. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  50. package/fesm2022/radix-ng-primitives-label.mjs +11 -11
  51. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-menu.mjs +1484 -353
  53. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  55. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  57. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  58. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1060 -1553
  59. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -366
  61. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-pagination.mjs +51 -51
  63. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-popover.mjs +980 -995
  65. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-popper.mjs +137 -82
  67. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-portal.mjs +40 -16
  69. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  71. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  73. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  74. package/fesm2022/radix-ng-primitives-progress.mjs +231 -92
  75. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-radio.mjs +211 -70
  77. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-roving-focus.mjs +127 -77
  79. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-select.mjs +791 -511
  81. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-separator.mjs +16 -45
  83. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-slider.mjs +976 -720
  85. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-stepper.mjs +69 -71
  87. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-switch.mjs +128 -124
  89. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-tabs.mjs +388 -115
  91. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-time-field.mjs +111 -117
  93. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-toggle-group.mjs +122 -248
  95. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-toggle.mjs +99 -62
  97. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-toolbar.mjs +307 -94
  99. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1079
  101. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  102. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +46 -87
  103. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  104. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  105. package/meter/README.md +3 -0
  106. package/navigation-menu/README.md +2 -1
  107. package/package.json +85 -63
  108. package/portal/README.md +2 -0
  109. package/preview-card/README.md +3 -0
  110. package/schematics/collection.json +1 -0
  111. package/schematics/ng-add/index.d.ts +3 -2
  112. package/schematics/ng-add/index.js +62 -31
  113. package/schematics/ng-add/index.js.map +1 -1
  114. package/schematics/ng-add/package-config.d.ts +4 -2
  115. package/schematics/ng-add/package-config.js +10 -2
  116. package/schematics/ng-add/package-config.js.map +1 -1
  117. package/schematics/ng-add/schema.d.ts +3 -0
  118. package/schematics/ng-add/schema.js +3 -0
  119. package/schematics/ng-add/schema.js.map +1 -0
  120. package/schematics/ng-add/schema.json +14 -0
  121. package/select/README.md +2 -0
  122. package/{accordion/index.d.ts → types/radix-ng-primitives-accordion.d.ts} +102 -67
  123. package/types/radix-ng-primitives-alert-dialog.d.ts +114 -0
  124. package/{arrow/index.d.ts → types/radix-ng-primitives-arrow.d.ts} +1 -1
  125. package/{aspect-ratio/index.d.ts → types/radix-ng-primitives-aspect-ratio.d.ts} +1 -1
  126. package/{avatar/index.d.ts → types/radix-ng-primitives-avatar.d.ts} +7 -11
  127. package/types/radix-ng-primitives-button.d.ts +73 -0
  128. package/{calendar/index.d.ts → types/radix-ng-primitives-calendar.d.ts} +2 -3
  129. package/types/radix-ng-primitives-checkbox.d.ts +337 -0
  130. package/types/radix-ng-primitives-collapsible.d.ts +159 -0
  131. package/types/radix-ng-primitives-collection.d.ts +44 -0
  132. package/{config/index.d.ts → types/radix-ng-primitives-config.d.ts} +1 -1
  133. package/types/radix-ng-primitives-context-menu.d.ts +73 -0
  134. package/{core/index.d.ts → types/radix-ng-primitives-core.d.ts} +311 -236
  135. package/{cropper/index.d.ts → types/radix-ng-primitives-cropper.d.ts} +6 -5
  136. package/{date-field/index.d.ts → types/radix-ng-primitives-date-field.d.ts} +42 -27
  137. package/types/radix-ng-primitives-dialog.d.ts +323 -0
  138. package/{dismissable-layer/index.d.ts → types/radix-ng-primitives-dismissable-layer.d.ts} +15 -7
  139. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  140. package/{editable/index.d.ts → types/radix-ng-primitives-editable.d.ts} +1 -1
  141. package/types/radix-ng-primitives-field.d.ts +373 -0
  142. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  143. package/{focus-scope/index.d.ts → types/radix-ng-primitives-focus-scope.d.ts} +13 -5
  144. package/types/radix-ng-primitives-input.d.ts +87 -0
  145. package/{label/index.d.ts → types/radix-ng-primitives-label.d.ts} +0 -1
  146. package/types/radix-ng-primitives-menu.d.ts +612 -0
  147. package/types/radix-ng-primitives-menubar.d.ts +66 -0
  148. package/types/radix-ng-primitives-meter.d.ts +193 -0
  149. package/types/radix-ng-primitives-navigation-menu.d.ts +488 -0
  150. package/types/radix-ng-primitives-number-field.d.ts +464 -0
  151. package/{pagination/index.d.ts → types/radix-ng-primitives-pagination.d.ts} +2 -2
  152. package/types/radix-ng-primitives-popover.d.ts +416 -0
  153. package/{popper/index.d.ts → types/radix-ng-primitives-popper.d.ts} +50 -9
  154. package/types/radix-ng-primitives-portal.d.ts +30 -0
  155. package/types/radix-ng-primitives-presence.d.ts +55 -0
  156. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  157. package/types/radix-ng-primitives-progress.d.ts +206 -0
  158. package/{radio/index.d.ts → types/radix-ng-primitives-radio.d.ts} +56 -26
  159. package/{roving-focus/index.d.ts → types/radix-ng-primitives-roving-focus.d.ts} +38 -27
  160. package/types/radix-ng-primitives-select.d.ts +512 -0
  161. package/types/radix-ng-primitives-separator.d.ts +38 -0
  162. package/types/radix-ng-primitives-slider.d.ts +377 -0
  163. package/{stepper/index.d.ts → types/radix-ng-primitives-stepper.d.ts} +21 -22
  164. package/types/radix-ng-primitives-switch.d.ts +121 -0
  165. package/types/radix-ng-primitives-tabs.d.ts +247 -0
  166. package/{time-field/index.d.ts → types/radix-ng-primitives-time-field.d.ts} +46 -31
  167. package/types/radix-ng-primitives-toggle-group.d.ts +116 -0
  168. package/types/radix-ng-primitives-toggle.d.ts +65 -0
  169. package/types/radix-ng-primitives-toolbar.d.ts +180 -0
  170. package/types/radix-ng-primitives-tooltip.d.ts +395 -0
  171. package/{visually-hidden/index.d.ts → types/radix-ng-primitives-visually-hidden.d.ts} +19 -19
  172. package/alert-dialog/index.d.ts +0 -57
  173. package/checkbox/index.d.ts +0 -164
  174. package/collapsible/index.d.ts +0 -85
  175. package/context-menu/index.d.ts +0 -129
  176. package/dialog/index.d.ts +0 -205
  177. package/dropdown-menu/README.md +0 -1
  178. package/dropdown-menu/index.d.ts +0 -171
  179. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -583
  180. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  181. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1246
  182. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  183. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -740
  184. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  185. package/hover-card/README.md +0 -3
  186. package/hover-card/index.d.ts +0 -472
  187. package/menu/index.d.ts +0 -139
  188. package/menubar/index.d.ts +0 -56
  189. package/navigation-menu/index.d.ts +0 -405
  190. package/number-field/index.d.ts +0 -203
  191. package/popover/index.d.ts +0 -403
  192. package/portal/index.d.ts +0 -22
  193. package/presence/index.d.ts +0 -103
  194. package/progress/index.d.ts +0 -79
  195. package/select/index.d.ts +0 -214
  196. package/separator/index.d.ts +0 -63
  197. package/slider/index.d.ts +0 -263
  198. package/switch/index.d.ts +0 -105
  199. package/tabs/index.d.ts +0 -112
  200. package/toggle/index.d.ts +0 -75
  201. package/toggle-group/index.d.ts +0 -194
  202. package/toolbar/index.d.ts +0 -55
  203. package/tooltip/index.d.ts +0 -433
  204. package/tooltip2/README.md +0 -3
  205. package/tooltip2/index.d.ts +0 -325
  206. /package/{focus-guards/index.d.ts → types/radix-ng-primitives-focus-guards.d.ts} +0 -0
  207. /package/{index.d.ts → types/radix-ng-primitives.d.ts} +0 -0
@@ -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,36 +76,51 @@ 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 */
91
- onKeyDown(event: KeyboardEvent): void;
112
+ onKeyDown(event: Event): void;
92
113
  /** @ignore */
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,8 +1,10 @@
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
+ import * as _radix_ng_primitives_roving_focus from '@radix-ng/primitives/roving-focus';
3
4
 
4
5
  type Orientation = 'horizontal' | 'vertical';
5
6
  type Direction = 'ltr' | 'rtl';
7
+ declare function focusFirst(candidates: HTMLElement[], preventScroll?: boolean, rootNode?: Document | ShadowRoot): void;
6
8
 
7
9
  declare const rootContext: () => {
8
10
  loop: _angular_core.Signal<boolean>;
@@ -12,10 +14,8 @@ declare const rootContext: () => {
12
14
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
13
15
  onItemFocus: (tabStopId: string) => void;
14
16
  onItemShiftTab: () => void;
15
- onFocusableItemAdd: () => void;
16
- onFocusableItemRemove: () => void;
17
- registerItem: (item: HTMLElement) => void;
18
- unregisterItem: (item: HTMLElement) => void;
17
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
18
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
19
19
  };
20
20
  type RovingFocusGroupContext = ReturnType<typeof rootContext>;
21
21
  declare const injectRovingFocusGroupContext: (optional?: boolean) => {
@@ -26,10 +26,8 @@ declare const injectRovingFocusGroupContext: (optional?: boolean) => {
26
26
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
27
27
  onItemFocus: (tabStopId: string) => void;
28
28
  onItemShiftTab: () => void;
29
- onFocusableItemAdd: () => void;
30
- onFocusableItemRemove: () => void;
31
- registerItem: (item: HTMLElement) => void;
32
- unregisterItem: (item: HTMLElement) => void;
29
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
30
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
33
31
  } | null;
34
32
  declare const provideRovingFocusGroupContext: (useFactory: () => {
35
33
  loop: _angular_core.Signal<boolean>;
@@ -39,10 +37,8 @@ declare const provideRovingFocusGroupContext: (useFactory: () => {
39
37
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
40
38
  onItemFocus: (tabStopId: string) => void;
41
39
  onItemShiftTab: () => void;
42
- onFocusableItemAdd: () => void;
43
- onFocusableItemRemove: () => void;
44
- registerItem: (item: HTMLElement) => void;
45
- unregisterItem: (item: HTMLElement) => void;
40
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
41
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
46
42
  }) => _angular_core.Provider;
47
43
  /**
48
44
  * @group Components
@@ -50,6 +46,7 @@ declare const provideRovingFocusGroupContext: (useFactory: () => {
50
46
  declare class RdxRovingFocusGroupDirective {
51
47
  private readonly isBrowser;
52
48
  private readonly elementRef;
49
+ private readonly destroyRef;
53
50
  /**
54
51
  * The orientation of the group. Mainly so arrow navigation is done accordingly (left & right vs. up & down)
55
52
  */
@@ -93,15 +90,20 @@ declare class RdxRovingFocusGroupDirective {
93
90
  readonly focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
94
91
  protected readonly isClickFocus: _angular_core.WritableSignal<boolean>;
95
92
  readonly isTabbingBackOut: _angular_core.WritableSignal<boolean>;
96
- readonly focusableItemsCount: _angular_core.WritableSignal<number>;
93
+ private readonly itemIds;
94
+ private isDestroyed;
97
95
  constructor();
98
96
  setOrientation(value: Orientation): void;
99
97
  setDir(value: Direction): void;
100
98
  setLoop(value: boolean): void;
101
99
  /** @ignore */
100
+ registerItem(item: HTMLElement, tabStopId: string): void;
101
+ /** @ignore */
102
+ unregisterItem(item: HTMLElement, tabStopId: string): void;
103
+ /** @ignore */
102
104
  handleMouseUp(): void;
103
105
  /** @ignore */
104
- handleFocus(event: FocusEvent): void;
106
+ handleFocus(event: Event): void;
105
107
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxRovingFocusGroupDirective, never>;
106
108
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRovingFocusGroupDirective, "[rdxRovingFocusGroup]", never, { "orientationInput": { "alias": "orientation"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "loopInput": { "alias": "loop"; "required": false; "isSignal": true; }; "preventScrollOnEntryFocus": { "alias": "preventScrollOnEntryFocus"; "required": false; "isSignal": true; }; "defaultCurrentTabStopId": { "alias": "defaultCurrentTabStopId"; "required": false; "isSignal": true; }; "currentTabStopId": { "alias": "currentTabStopId"; "required": false; "isSignal": true; }; }, { "currentTabStopId": "currentTabStopIdChange"; "entryFocus": "entryFocus"; }, never, never, true, never>;
107
109
  }
@@ -111,28 +113,29 @@ declare class RdxRovingFocusGroupDirective {
111
113
  */
112
114
  declare class RdxRovingFocusItemDirective {
113
115
  private readonly isBrowser;
114
- private readonly destroyRef;
115
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
+ */
116
121
  protected readonly rootContext: {
117
122
  loop: _angular_core.Signal<boolean>;
118
- dir: _angular_core.Signal<Direction>;
119
- orientation: _angular_core.Signal<Orientation>;
123
+ dir: _angular_core.Signal<_radix_ng_primitives_roving_focus.Direction>;
124
+ orientation: _angular_core.Signal<_radix_ng_primitives_roving_focus.Orientation>;
120
125
  currentTabStopId: _angular_core.ModelSignal<string | undefined>;
121
126
  focusableItems: _angular_core.WritableSignal<HTMLElement[]>;
122
127
  onItemFocus: (tabStopId: string) => void;
123
128
  onItemShiftTab: () => void;
124
- onFocusableItemAdd: () => void;
125
- onFocusableItemRemove: () => void;
126
- registerItem: (item: HTMLElement) => void;
127
- unregisterItem: (item: HTMLElement) => void;
128
- };
129
+ registerItem: (item: HTMLElement, tabStopId: string) => void;
130
+ unregisterItem: (item: HTMLElement, tabStopId: string) => void;
131
+ } | null;
129
132
  /**
130
133
  * When false, item will not be focusable.
131
134
  * @group Props
132
135
  */
133
136
  readonly focusableInput: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
134
137
  /**
135
- * 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.
136
139
  * @group Props
137
140
  */
138
141
  readonly activeInput: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
@@ -145,17 +148,25 @@ declare class RdxRovingFocusItemDirective {
145
148
  * @group Props
146
149
  */
147
150
  readonly allowShiftKey: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
151
+ private readonly generatedId;
148
152
  protected readonly id: _angular_core.Signal<string>;
149
153
  protected readonly isCurrentTabStop: _angular_core.Signal<boolean>;
150
154
  protected readonly focusable: _angular_core.WritableSignal<boolean>;
151
155
  protected readonly active: _angular_core.WritableSignal<boolean>;
152
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>;
153
162
  constructor();
154
163
  setFocusable(value: boolean): void;
155
164
  setActive(value: boolean): void;
156
165
  setTabStopId(value: string): void;
157
166
  /** @ignore */
158
- handleMouseDown(event: MouseEvent): void;
167
+ onFocus(): void;
168
+ /** @ignore */
169
+ handleMouseDown(event: Event): void;
159
170
  /**
160
171
  * Handles the `keydown` event for keyboard navigation within the roving focus group.
161
172
  * Supports navigation based on orientation and direction, and focuses appropriate elements.
@@ -163,12 +174,12 @@ declare class RdxRovingFocusItemDirective {
163
174
  * @param event The `KeyboardEvent` object.
164
175
  * @ignore
165
176
  */
166
- handleKeydown(event: KeyboardEvent): void;
177
+ handleKeydown(event: Event): void;
167
178
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxRovingFocusItemDirective, never>;
168
179
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxRovingFocusItemDirective, "[rdxRovingFocusItem]", never, { "focusableInput": { "alias": "focusable"; "required": false; "isSignal": true; }; "activeInput": { "alias": "active"; "required": false; "isSignal": true; }; "tabStopIdInput": { "alias": "tabStopId"; "required": false; "isSignal": true; }; "allowShiftKey": { "alias": "allowShiftKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
169
180
  }
170
181
 
171
182
  declare const rovingFocusImports: (typeof RdxRovingFocusGroupDirective | typeof RdxRovingFocusItemDirective)[];
172
183
 
173
- export { RdxRovingFocusGroupDirective, RdxRovingFocusItemDirective, injectRovingFocusGroupContext, provideRovingFocusGroupContext, rovingFocusImports };
184
+ export { RdxRovingFocusGroupDirective, RdxRovingFocusItemDirective, focusFirst, injectRovingFocusGroupContext, provideRovingFocusGroupContext, rovingFocusImports };
174
185
  export type { Direction, Orientation, RovingFocusGroupContext };