@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
@@ -0,0 +1,373 @@
1
+ import * as _radix_ng_primitives_field from '@radix-ng/primitives/field';
2
+ import * as _angular_core from '@angular/core';
3
+ import { BooleanInput } from '@radix-ng/primitives/core';
4
+
5
+ /**
6
+ * Connects a form control to the field label, description, error, and state.
7
+ *
8
+ * @group Components
9
+ */
10
+ declare class RdxFieldControl {
11
+ protected readonly rootContext: {
12
+ controlId: _angular_core.WritableSignal<string>;
13
+ descriptionIds: _angular_core.WritableSignal<string[]>;
14
+ errorIds: _angular_core.WritableSignal<string[]>;
15
+ invalidState: _angular_core.Signal<boolean>;
16
+ disabledState: _angular_core.Signal<boolean>;
17
+ requiredState: _angular_core.Signal<boolean>;
18
+ dirtyState: _angular_core.Signal<boolean>;
19
+ touchedState: _angular_core.Signal<boolean>;
20
+ filledState: _angular_core.Signal<boolean>;
21
+ focusedState: _angular_core.Signal<boolean>;
22
+ setControlId: (id: string) => void;
23
+ addDescriptionId: (id: string) => void;
24
+ removeDescriptionId: (id: string) => void;
25
+ addErrorId: (id: string) => void;
26
+ removeErrorId: (id: string) => void;
27
+ setFocused: (value: boolean) => void;
28
+ setFilled: (value: boolean) => void;
29
+ setDirty: (value: boolean) => void;
30
+ setTouched: (value: boolean) => void;
31
+ setStateProvider: (provider: _radix_ng_primitives_field.RdxFieldState | null) => _radix_ng_primitives_field.RdxFieldState | null;
32
+ hasStateProvider: _angular_core.Signal<boolean>;
33
+ };
34
+ private readonly elementRef;
35
+ private initialValue;
36
+ /**
37
+ * Control id. Labels and descriptions use this value for accessible relationships.
38
+ *
39
+ * @group Props
40
+ */
41
+ readonly id: _angular_core.InputSignal<string>;
42
+ protected readonly describedBy: _angular_core.Signal<string | undefined>;
43
+ constructor();
44
+ onFocus(): void;
45
+ onBlur(): void;
46
+ syncFilled(): void;
47
+ protected isNativeFormControl(): boolean;
48
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
49
+ private currentValue;
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFieldControl, never>;
51
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFieldControl, "[rdxFieldControl]", ["rdxFieldControl"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
52
+ }
53
+
54
+ /**
55
+ * Describes the field control.
56
+ *
57
+ * @group Components
58
+ */
59
+ declare class RdxFieldDescription {
60
+ protected readonly rootContext: {
61
+ controlId: _angular_core.WritableSignal<string>;
62
+ descriptionIds: _angular_core.WritableSignal<string[]>;
63
+ errorIds: _angular_core.WritableSignal<string[]>;
64
+ invalidState: _angular_core.Signal<boolean>;
65
+ disabledState: _angular_core.Signal<boolean>;
66
+ requiredState: _angular_core.Signal<boolean>;
67
+ dirtyState: _angular_core.Signal<boolean>;
68
+ touchedState: _angular_core.Signal<boolean>;
69
+ filledState: _angular_core.Signal<boolean>;
70
+ focusedState: _angular_core.Signal<boolean>;
71
+ setControlId: (id: string) => void;
72
+ addDescriptionId: (id: string) => void;
73
+ removeDescriptionId: (id: string) => void;
74
+ addErrorId: (id: string) => void;
75
+ removeErrorId: (id: string) => void;
76
+ setFocused: (value: boolean) => void;
77
+ setFilled: (value: boolean) => void;
78
+ setDirty: (value: boolean) => void;
79
+ setTouched: (value: boolean) => void;
80
+ setStateProvider: (provider: _radix_ng_primitives_field.RdxFieldState | null) => _radix_ng_primitives_field.RdxFieldState | null;
81
+ hasStateProvider: _angular_core.Signal<boolean>;
82
+ };
83
+ /**
84
+ * Description id.
85
+ *
86
+ * @group Props
87
+ */
88
+ readonly id: _angular_core.InputSignal<string>;
89
+ constructor();
90
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
91
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFieldDescription, never>;
92
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFieldDescription, "[rdxFieldDescription]", ["rdxFieldDescription"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
93
+ }
94
+
95
+ /**
96
+ * Describes an invalid field control.
97
+ *
98
+ * @group Components
99
+ */
100
+ declare class RdxFieldError {
101
+ protected readonly rootContext: {
102
+ controlId: _angular_core.WritableSignal<string>;
103
+ descriptionIds: _angular_core.WritableSignal<string[]>;
104
+ errorIds: _angular_core.WritableSignal<string[]>;
105
+ invalidState: _angular_core.Signal<boolean>;
106
+ disabledState: _angular_core.Signal<boolean>;
107
+ requiredState: _angular_core.Signal<boolean>;
108
+ dirtyState: _angular_core.Signal<boolean>;
109
+ touchedState: _angular_core.Signal<boolean>;
110
+ filledState: _angular_core.Signal<boolean>;
111
+ focusedState: _angular_core.Signal<boolean>;
112
+ setControlId: (id: string) => void;
113
+ addDescriptionId: (id: string) => void;
114
+ removeDescriptionId: (id: string) => void;
115
+ addErrorId: (id: string) => void;
116
+ removeErrorId: (id: string) => void;
117
+ setFocused: (value: boolean) => void;
118
+ setFilled: (value: boolean) => void;
119
+ setDirty: (value: boolean) => void;
120
+ setTouched: (value: boolean) => void;
121
+ setStateProvider: (provider: _radix_ng_primitives_field.RdxFieldState | null) => _radix_ng_primitives_field.RdxFieldState | null;
122
+ hasStateProvider: _angular_core.Signal<boolean>;
123
+ };
124
+ /**
125
+ * Error message id.
126
+ *
127
+ * @group Props
128
+ */
129
+ readonly id: _angular_core.InputSignal<string>;
130
+ constructor();
131
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
132
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFieldError, never>;
133
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFieldError, "[rdxFieldError]", ["rdxFieldError"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
134
+ }
135
+
136
+ /**
137
+ * Labels the field control.
138
+ *
139
+ * @group Components
140
+ */
141
+ declare class RdxFieldLabel {
142
+ protected readonly rootContext: {
143
+ controlId: _angular_core.WritableSignal<string>;
144
+ descriptionIds: _angular_core.WritableSignal<string[]>;
145
+ errorIds: _angular_core.WritableSignal<string[]>;
146
+ invalidState: _angular_core.Signal<boolean>;
147
+ disabledState: _angular_core.Signal<boolean>;
148
+ requiredState: _angular_core.Signal<boolean>;
149
+ dirtyState: _angular_core.Signal<boolean>;
150
+ touchedState: _angular_core.Signal<boolean>;
151
+ filledState: _angular_core.Signal<boolean>;
152
+ focusedState: _angular_core.Signal<boolean>;
153
+ setControlId: (id: string) => void;
154
+ addDescriptionId: (id: string) => void;
155
+ removeDescriptionId: (id: string) => void;
156
+ addErrorId: (id: string) => void;
157
+ removeErrorId: (id: string) => void;
158
+ setFocused: (value: boolean) => void;
159
+ setFilled: (value: boolean) => void;
160
+ setDirty: (value: boolean) => void;
161
+ setTouched: (value: boolean) => void;
162
+ setStateProvider: (provider: _radix_ng_primitives_field.RdxFieldState | null) => _radix_ng_primitives_field.RdxFieldState | null;
163
+ hasStateProvider: _angular_core.Signal<boolean>;
164
+ };
165
+ /**
166
+ * Label id.
167
+ *
168
+ * @group Props
169
+ */
170
+ readonly id: _angular_core.InputSignal<string>;
171
+ readonly htmlFor: () => string;
172
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
173
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFieldLabel, never>;
174
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFieldLabel, "[rdxFieldLabel]", ["rdxFieldLabel"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
175
+ }
176
+
177
+ /**
178
+ * External owner of field state. An adapter (e.g. a future Signal Forms
179
+ * `[rdxSignalField]` directive, or a Reactive Forms bridge) registers one via
180
+ * `setStateProvider` so Field reads authoritative form state instead of
181
+ * self-computing it from the DOM. Each member is an optional signal-like
182
+ * accessor; only the states the adapter owns need to be provided — the rest
183
+ * fall back to the root's inputs / DOM heuristic. Keeping these as plain
184
+ * `() => boolean` accessors keeps Field framework-agnostic (no dependency on
185
+ * `@angular/forms/signals`).
186
+ *
187
+ * See ADR 0004 and `signal-forms-readiness.md` (prep #4).
188
+ */
189
+ interface RdxFieldState {
190
+ invalid?: () => boolean;
191
+ disabled?: () => boolean;
192
+ required?: () => boolean;
193
+ dirty?: () => boolean;
194
+ touched?: () => boolean;
195
+ filled?: () => boolean;
196
+ focused?: () => boolean;
197
+ }
198
+ declare const fieldRootContext: () => {
199
+ controlId: _angular_core.WritableSignal<string>;
200
+ descriptionIds: _angular_core.WritableSignal<string[]>;
201
+ errorIds: _angular_core.WritableSignal<string[]>;
202
+ invalidState: _angular_core.Signal<boolean>;
203
+ disabledState: _angular_core.Signal<boolean>;
204
+ requiredState: _angular_core.Signal<boolean>;
205
+ dirtyState: _angular_core.Signal<boolean>;
206
+ touchedState: _angular_core.Signal<boolean>;
207
+ filledState: _angular_core.Signal<boolean>;
208
+ focusedState: _angular_core.Signal<boolean>;
209
+ setControlId: (id: string) => void;
210
+ addDescriptionId: (id: string) => void;
211
+ removeDescriptionId: (id: string) => void;
212
+ addErrorId: (id: string) => void;
213
+ removeErrorId: (id: string) => void;
214
+ setFocused: (value: boolean) => void;
215
+ setFilled: (value: boolean) => void;
216
+ setDirty: (value: boolean) => void;
217
+ setTouched: (value: boolean) => void;
218
+ /**
219
+ * Register (or clear with `null`) an external owner of field state.
220
+ * While a provider is registered, any state it exposes takes precedence
221
+ * over the root inputs and the DOM-derived values. Returns the previous
222
+ * provider so adapters can restore it on teardown.
223
+ */
224
+ setStateProvider: (provider: RdxFieldState | null) => RdxFieldState | null;
225
+ hasStateProvider: _angular_core.Signal<boolean>;
226
+ };
227
+ type RdxFieldRootContext = ReturnType<typeof fieldRootContext>;
228
+ declare const injectFieldRootContext: (optional?: boolean) => {
229
+ controlId: _angular_core.WritableSignal<string>;
230
+ descriptionIds: _angular_core.WritableSignal<string[]>;
231
+ errorIds: _angular_core.WritableSignal<string[]>;
232
+ invalidState: _angular_core.Signal<boolean>;
233
+ disabledState: _angular_core.Signal<boolean>;
234
+ requiredState: _angular_core.Signal<boolean>;
235
+ dirtyState: _angular_core.Signal<boolean>;
236
+ touchedState: _angular_core.Signal<boolean>;
237
+ filledState: _angular_core.Signal<boolean>;
238
+ focusedState: _angular_core.Signal<boolean>;
239
+ setControlId: (id: string) => void;
240
+ addDescriptionId: (id: string) => void;
241
+ removeDescriptionId: (id: string) => void;
242
+ addErrorId: (id: string) => void;
243
+ removeErrorId: (id: string) => void;
244
+ setFocused: (value: boolean) => void;
245
+ setFilled: (value: boolean) => void;
246
+ setDirty: (value: boolean) => void;
247
+ setTouched: (value: boolean) => void;
248
+ /**
249
+ * Register (or clear with `null`) an external owner of field state.
250
+ * While a provider is registered, any state it exposes takes precedence
251
+ * over the root inputs and the DOM-derived values. Returns the previous
252
+ * provider so adapters can restore it on teardown.
253
+ */
254
+ setStateProvider: (provider: RdxFieldState | null) => RdxFieldState | null;
255
+ hasStateProvider: _angular_core.Signal<boolean>;
256
+ } | null;
257
+ declare const provideFieldRootContext: (useFactory: () => {
258
+ controlId: _angular_core.WritableSignal<string>;
259
+ descriptionIds: _angular_core.WritableSignal<string[]>;
260
+ errorIds: _angular_core.WritableSignal<string[]>;
261
+ invalidState: _angular_core.Signal<boolean>;
262
+ disabledState: _angular_core.Signal<boolean>;
263
+ requiredState: _angular_core.Signal<boolean>;
264
+ dirtyState: _angular_core.Signal<boolean>;
265
+ touchedState: _angular_core.Signal<boolean>;
266
+ filledState: _angular_core.Signal<boolean>;
267
+ focusedState: _angular_core.Signal<boolean>;
268
+ setControlId: (id: string) => void;
269
+ addDescriptionId: (id: string) => void;
270
+ removeDescriptionId: (id: string) => void;
271
+ addErrorId: (id: string) => void;
272
+ removeErrorId: (id: string) => void;
273
+ setFocused: (value: boolean) => void;
274
+ setFilled: (value: boolean) => void;
275
+ setDirty: (value: boolean) => void;
276
+ setTouched: (value: boolean) => void;
277
+ /**
278
+ * Register (or clear with `null`) an external owner of field state.
279
+ * While a provider is registered, any state it exposes takes precedence
280
+ * over the root inputs and the DOM-derived values. Returns the previous
281
+ * provider so adapters can restore it on teardown.
282
+ */
283
+ setStateProvider: (provider: RdxFieldState | null) => RdxFieldState | null;
284
+ hasStateProvider: _angular_core.Signal<boolean>;
285
+ }) => _angular_core.Provider;
286
+ /**
287
+ * Groups a form control with its label, description, error message, and field state.
288
+ *
289
+ * @group Components
290
+ */
291
+ declare class RdxFieldRoot {
292
+ /**
293
+ * Whether the field is invalid.
294
+ *
295
+ * @group Props
296
+ * @defaultValue false
297
+ */
298
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
299
+ /**
300
+ * Whether the field is disabled.
301
+ *
302
+ * @group Props
303
+ * @defaultValue false
304
+ */
305
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
306
+ /**
307
+ * Whether the field is required.
308
+ *
309
+ * @group Props
310
+ * @defaultValue false
311
+ */
312
+ readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
313
+ /**
314
+ * Whether the field value has changed from its initial value.
315
+ *
316
+ * @group Props
317
+ * @defaultValue false
318
+ */
319
+ readonly dirty: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
320
+ /**
321
+ * Whether the field has been blurred after receiving focus.
322
+ *
323
+ * @group Props
324
+ * @defaultValue false
325
+ */
326
+ readonly touched: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
327
+ /**
328
+ * Overrides whether the control has a non-empty value.
329
+ *
330
+ * @group Props
331
+ */
332
+ readonly filled: _angular_core.InputSignal<boolean | undefined>;
333
+ /**
334
+ * Overrides whether the control is focused.
335
+ *
336
+ * @group Props
337
+ */
338
+ readonly focused: _angular_core.InputSignal<boolean | undefined>;
339
+ readonly controlId: _angular_core.WritableSignal<string>;
340
+ readonly descriptionIds: _angular_core.WritableSignal<string[]>;
341
+ readonly errorIds: _angular_core.WritableSignal<string[]>;
342
+ readonly focusedValue: _angular_core.WritableSignal<boolean>;
343
+ readonly filledValue: _angular_core.WritableSignal<boolean>;
344
+ readonly dirtyValue: _angular_core.WritableSignal<boolean>;
345
+ readonly touchedValue: _angular_core.WritableSignal<boolean>;
346
+ /** External state owner registered through the context; `null` when Field self-computes. */
347
+ private readonly stateProvider;
348
+ /** Whether an external adapter currently owns field state. */
349
+ readonly hasStateProvider: _angular_core.Signal<boolean>;
350
+ readonly invalidState: _angular_core.Signal<boolean>;
351
+ readonly disabledState: _angular_core.Signal<boolean>;
352
+ readonly requiredState: _angular_core.Signal<boolean>;
353
+ readonly dirtyState: _angular_core.Signal<boolean>;
354
+ readonly touchedState: _angular_core.Signal<boolean>;
355
+ readonly filledState: _angular_core.Signal<boolean>;
356
+ readonly focusedState: _angular_core.Signal<boolean>;
357
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
358
+ /**
359
+ * Register an external owner of field state, returning the previous one.
360
+ * @ignore
361
+ */
362
+ setStateProvider(provider: RdxFieldState | null): RdxFieldState | null;
363
+ /**
364
+ * Prefer the registered provider's value for `key` when it exposes one,
365
+ * otherwise fall back to the root inputs / DOM-derived signals.
366
+ */
367
+ private resolve;
368
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFieldRoot, never>;
369
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFieldRoot, "[rdxFieldRoot]", ["rdxFieldRoot"], { "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "filled": { "alias": "filled"; "required": false; "isSignal": true; }; "focused": { "alias": "focused"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
370
+ }
371
+
372
+ export { RdxFieldControl, RdxFieldDescription, RdxFieldError, RdxFieldLabel, RdxFieldRoot, injectFieldRootContext, provideFieldRootContext };
373
+ export type { RdxFieldRootContext, RdxFieldState };
@@ -0,0 +1,48 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { BooleanInput } from '@radix-ng/primitives/core';
3
+
4
+ /**
5
+ * Labels the fieldset.
6
+ *
7
+ * @group Components
8
+ */
9
+ declare class RdxFieldsetLegend {
10
+ protected readonly rootContext: {
11
+ disabledState: _angular_core.Signal<boolean>;
12
+ };
13
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
14
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFieldsetLegend, never>;
15
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFieldsetLegend, "legend[rdxFieldsetLegend]", ["rdxFieldsetLegend"], {}, {}, never, never, true, never>;
16
+ }
17
+
18
+ declare const fieldsetRootContext: () => {
19
+ disabledState: _angular_core.Signal<boolean>;
20
+ };
21
+ type RdxFieldsetRootContext = ReturnType<typeof fieldsetRootContext>;
22
+ declare const injectFieldsetRootContext: (optional?: boolean) => {
23
+ disabledState: _angular_core.Signal<boolean>;
24
+ } | null;
25
+ declare const provideFieldsetRootContext: (useFactory: () => {
26
+ disabledState: _angular_core.Signal<boolean>;
27
+ }) => _angular_core.Provider;
28
+ /**
29
+ * Groups related form controls and disables them as a set.
30
+ *
31
+ * @group Components
32
+ */
33
+ declare class RdxFieldsetRoot {
34
+ /**
35
+ * Whether all controls in the fieldset are disabled.
36
+ *
37
+ * @group Props
38
+ * @defaultValue false
39
+ */
40
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
41
+ readonly disabledState: _angular_core.Signal<boolean>;
42
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
43
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxFieldsetRoot, never>;
44
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFieldsetRoot, "fieldset[rdxFieldsetRoot]", ["rdxFieldsetRoot"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
45
+ }
46
+
47
+ export { RdxFieldsetLegend, RdxFieldsetRoot, injectFieldsetRootContext, provideFieldsetRootContext };
48
+ export type { RdxFieldsetRootContext };
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { WritableSignal, Signal } from '@angular/core';
3
- import { BooleanInput } from '@angular/cdk/coercion';
2
+ import { WritableSignal, Signal, InjectionToken, Provider } from '@angular/core';
3
+ import { BooleanInput } from '@radix-ng/primitives/core';
4
4
 
5
5
  interface FocusScopeAPI {
6
6
  paused: WritableSignal<boolean>;
@@ -21,6 +21,7 @@ declare class RdxFocusScope {
21
21
  private readonly injector;
22
22
  private readonly destroyRef;
23
23
  private readonly elementRef;
24
+ private readonly config;
24
25
  /**
25
26
  * When `true`, tabbing from last item will focus first tabbable
26
27
  * and shift+tab from first item will focus last tababble.
@@ -36,7 +37,8 @@ declare class RdxFocusScope {
36
37
  * @group Props
37
38
  * @defaultValue false
38
39
  */
39
- readonly trapped: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
40
+ readonly trapped: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
41
+ readonly isTrapped: Signal<boolean>;
40
42
  /**
41
43
  * Event handler called when auto-focusing on mount.
42
44
  * Can be prevented.
@@ -61,5 +63,11 @@ declare class RdxFocusScope {
61
63
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxFocusScope, "[rdxFocusScope]", never, { "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "trapped": { "alias": "trapped"; "required": false; "isSignal": true; }; }, { "mountAutoFocus": "mountAutoFocus"; "unmountAutoFocus": "unmountAutoFocus"; }, never, never, true, never>;
62
64
  }
63
65
 
64
- export { RdxFocusScope, injectFocusScopeContext, provideFocusScopeContext };
65
- export type { FocusScopeContext };
66
+ type RdxFocusScopeConfig = {
67
+ trapped: Signal<boolean>;
68
+ };
69
+ declare const RdxFocusScopeConfigToken: InjectionToken<RdxFocusScopeConfig>;
70
+ declare function provideRdxFocusScopeConfig(factory: () => RdxFocusScopeConfig): Provider;
71
+
72
+ export { RdxFocusScope, RdxFocusScopeConfigToken, injectFocusScopeContext, provideFocusScopeContext, provideRdxFocusScopeConfig };
73
+ export type { FocusScopeContext, RdxFocusScopeConfig };
@@ -0,0 +1,87 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { RdxFormValueControl, BooleanInput } from '@radix-ng/primitives/core';
3
+
4
+ type RdxInputValue = string | number | readonly string[];
5
+ interface RdxInputValueChangeEventDetails {
6
+ event: Event;
7
+ cancel: () => void;
8
+ isCanceled: () => boolean;
9
+ }
10
+ interface RdxInputValueChangeEvent {
11
+ value: string;
12
+ eventDetails: RdxInputValueChangeEventDetails;
13
+ }
14
+ /**
15
+ * A headless text input that can integrate with Field for accessible labeling,
16
+ * descriptions, validation state, and data attributes.
17
+ *
18
+ * @group Components
19
+ */
20
+ declare class RdxInputDirective implements RdxFormValueControl<RdxInputValue | undefined> {
21
+ private readonly element;
22
+ private readonly fieldRootContext;
23
+ private initialValue;
24
+ private defaultValueApplied;
25
+ private readonly filledValue;
26
+ private readonly focusedValue;
27
+ /**
28
+ * The input id. Field labels and descriptions use this value for accessible relationships.
29
+ *
30
+ * @group Props
31
+ */
32
+ readonly id: _angular_core.InputSignal<string>;
33
+ /**
34
+ * The controlled input value.
35
+ *
36
+ * @group Props
37
+ */
38
+ readonly value: _angular_core.ModelSignal<RdxInputValue | undefined>;
39
+ /**
40
+ * The initial value when the input is uncontrolled.
41
+ *
42
+ * @group Props
43
+ */
44
+ readonly defaultValue: _angular_core.InputSignal<RdxInputValue | undefined>;
45
+ /**
46
+ * Whether the input is disabled.
47
+ *
48
+ * @group Props
49
+ */
50
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
51
+ /**
52
+ * Whether the input is required.
53
+ *
54
+ * @group Props
55
+ */
56
+ readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
57
+ /**
58
+ * Whether the input is invalid.
59
+ *
60
+ * @group Props
61
+ */
62
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
63
+ /**
64
+ * Emits when the input value changes.
65
+ *
66
+ * @group Emits
67
+ */
68
+ readonly onValueChange: _angular_core.OutputEmitterRef<RdxInputValueChangeEvent>;
69
+ protected readonly invalidState: _angular_core.Signal<boolean>;
70
+ protected readonly disabledState: _angular_core.Signal<boolean>;
71
+ protected readonly requiredState: _angular_core.Signal<boolean>;
72
+ protected readonly filledState: _angular_core.Signal<boolean>;
73
+ protected readonly focusedState: _angular_core.Signal<boolean>;
74
+ protected readonly describedBy: _angular_core.Signal<string | undefined>;
75
+ constructor();
76
+ onFocus(): void;
77
+ onBlur(): void;
78
+ onInput(event: Event): void;
79
+ syncFieldState(): void;
80
+ private writeValue;
81
+ protected readonly dataAttr: (value: boolean) => "" | undefined;
82
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxInputDirective, never>;
83
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxInputDirective, "input[rdxInput]", ["rdxInput"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
84
+ }
85
+
86
+ export { RdxInputDirective };
87
+ export type { RdxInputValue, RdxInputValueChangeEvent, RdxInputValueChangeEventDetails };
@@ -15,7 +15,6 @@ declare class RdxLabelDirective {
15
15
  * @defaultValue false
16
16
  */
17
17
  readonly htmlFor: _angular_core.InputSignal<string | undefined>;
18
- protected readonly elementId: _angular_core.Signal<string | null>;
19
18
  /**
20
19
  * @ignore
21
20
  */