@radix-ng/primitives 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aspect-ratio/README.md +1 -1
- package/fesm2022/radix-ng-primitives-accordion.mjs +40 -27
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +34 -34
- package/fesm2022/radix-ng-primitives-arrow.mjs +3 -3
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +11 -35
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-autocomplete.mjs +175 -125
- package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +92 -35
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-button.mjs +11 -7
- package/fesm2022/radix-ng-primitives-button.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-calendar.mjs +140 -90
- package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +63 -46
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +37 -25
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-combobox.mjs +278 -177
- package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-composite.mjs +50 -33
- package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-config.mjs +7 -5
- package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-context-menu.mjs +48 -22
- package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +44 -28
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-cropper.mjs +73 -45
- package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-date-field.mjs +70 -40
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dialog.mjs +93 -67
- package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-direction-provider.mjs +5 -4
- package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +20 -16
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-drawer.mjs +107 -81
- package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-editable.mjs +53 -39
- package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-field.mjs +76 -50
- package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-fieldset.mjs +8 -7
- package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +77 -40
- package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
- package/fesm2022/radix-ng-primitives-focus-scope.mjs +7 -5
- package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-form.mjs +26 -17
- package/fesm2022/radix-ng-primitives-form.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-input.mjs +41 -22
- package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-label.mjs +11 -8
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +274 -154
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +35 -17
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-meter.mjs +41 -30
- package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs +220 -183
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-number-field.mjs +93 -61
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-pagination.mjs +48 -38
- package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +150 -107
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popper.mjs +79 -47
- package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-portal.mjs +20 -13
- package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-presence.mjs +3 -3
- package/fesm2022/radix-ng-primitives-preview-card.mjs +119 -74
- package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-progress.mjs +73 -46
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +58 -40
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-scroll-area.mjs +57 -41
- package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +595 -102
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +11 -15
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +101 -64
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-stepper.mjs +53 -39
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +25 -20
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +76 -51
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-time-field.mjs +72 -41
- package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toast.mjs +75 -56
- package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +39 -23
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +36 -36
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +52 -31
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tooltip.mjs +118 -63
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +31 -20
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
- package/package.json +2 -2
- package/types/radix-ng-primitives-accordion.d.ts +1 -0
- package/types/radix-ng-primitives-aspect-ratio.d.ts +10 -23
- package/types/radix-ng-primitives-autocomplete.d.ts +3 -1
- package/types/radix-ng-primitives-avatar.d.ts +51 -25
- package/types/radix-ng-primitives-checkbox.d.ts +26 -98
- package/types/radix-ng-primitives-combobox.d.ts +28 -9
- package/types/radix-ng-primitives-context-menu.d.ts +2 -0
- package/types/radix-ng-primitives-dialog.d.ts +6 -3
- package/types/radix-ng-primitives-field.d.ts +33 -207
- package/types/radix-ng-primitives-floating-focus-manager.d.ts +11 -0
- package/types/radix-ng-primitives-form.d.ts +24 -33
- package/types/radix-ng-primitives-label.d.ts +3 -2
- package/types/radix-ng-primitives-menu.d.ts +47 -15
- package/types/radix-ng-primitives-menubar.d.ts +6 -1
- package/types/radix-ng-primitives-navigation-menu.d.ts +8 -6
- package/types/radix-ng-primitives-number-field.d.ts +1 -1
- package/types/radix-ng-primitives-popover.d.ts +12 -4
- package/types/radix-ng-primitives-preview-card.d.ts +18 -5
- package/types/radix-ng-primitives-progress.d.ts +59 -121
- package/types/radix-ng-primitives-radio.d.ts +0 -1
- package/types/radix-ng-primitives-select.d.ts +186 -391
- package/types/radix-ng-primitives-separator.d.ts +0 -7
- package/types/radix-ng-primitives-toggle-group.d.ts +7 -3
- package/types/radix-ng-primitives-toggle.d.ts +8 -8
- package/types/radix-ng-primitives-toolbar.d.ts +2 -0
- package/types/radix-ng-primitives-tooltip.d.ts +17 -3
|
@@ -28,10 +28,14 @@ class RdxRadioGroupDirective {
|
|
|
28
28
|
* a radio group maps onto native radio inputs whose form value is a string, so values are
|
|
29
29
|
* the option identifiers. Use the string key of your option as the value.
|
|
30
30
|
*/
|
|
31
|
-
this.value = model(null,
|
|
32
|
-
|
|
33
|
-
this.
|
|
34
|
-
|
|
31
|
+
this.value = model(null, /* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
33
|
+
this.defaultValue = input(/* @ts-ignore */
|
|
34
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValue" }] : /* istanbul ignore next */ []));
|
|
35
|
+
this.name = input(/* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
|
|
37
|
+
this.form = input(/* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [undefined, { debugName: "form" }] : /* istanbul ignore next */ []));
|
|
35
39
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
36
40
|
/**
|
|
37
41
|
* Whether the user should be unable to select a different radio button. Bound in templates as
|
|
@@ -43,20 +47,26 @@ class RdxRadioGroupDirective {
|
|
|
43
47
|
* Event handler called when the value changes.
|
|
44
48
|
*/
|
|
45
49
|
this.onValueChange = output();
|
|
46
|
-
this.disable = signal(false,
|
|
47
|
-
|
|
48
|
-
this.
|
|
49
|
-
|
|
50
|
+
this.disable = signal(false, /* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "disable" }] : /* istanbul ignore next */ []));
|
|
52
|
+
this.disabledState = computed(() => this.disable() || this.disabled(), /* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [{ debugName: "disabledState" }] : /* istanbul ignore next */ []));
|
|
54
|
+
this.arrowNavigation = signal(false, /* @ts-ignore */
|
|
55
|
+
...(ngDevMode ? [{ debugName: "arrowNavigation" }] : /* istanbul ignore next */ []));
|
|
56
|
+
this.itemMetadata = computed(() => Array.from(this.compositeRoot.itemMap().values()).filter(isRadioItemMetadata), /* @ts-ignore */
|
|
57
|
+
...(ngDevMode ? [{ debugName: "itemMetadata" }] : /* istanbul ignore next */ []));
|
|
50
58
|
this.disabledIndices = computed(() => this.itemMetadata()
|
|
51
59
|
.filter((metadata) => metadata.disabled)
|
|
52
|
-
.map((metadata) => metadata.index),
|
|
60
|
+
.map((metadata) => metadata.index), /* @ts-ignore */
|
|
61
|
+
...(ngDevMode ? [{ debugName: "disabledIndices" }] : /* istanbul ignore next */ []));
|
|
53
62
|
this.activeIndex = computed(() => {
|
|
54
63
|
const value = this.value();
|
|
55
64
|
if (value === null) {
|
|
56
65
|
return -1;
|
|
57
66
|
}
|
|
58
67
|
return this.itemMetadata().find((metadata) => metadata.value === value)?.index ?? -1;
|
|
59
|
-
},
|
|
68
|
+
}, /* @ts-ignore */
|
|
69
|
+
...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
|
|
60
70
|
/**
|
|
61
71
|
* The callback function to call when the value of the radio group changes.
|
|
62
72
|
*/
|
|
@@ -155,10 +165,6 @@ class RdxRadioGroupDirective {
|
|
|
155
165
|
isArrowNavigation() {
|
|
156
166
|
return this.arrowNavigation();
|
|
157
167
|
}
|
|
158
|
-
onKeydown() {
|
|
159
|
-
if (this.disabledState())
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
168
|
/**
|
|
163
169
|
* Marks the control touched when focus leaves the whole group (Base UI `RadioGroup` parity and the
|
|
164
170
|
* ADR 0004 CVA strategy) — moving focus between items stays inside, so `relatedTarget` is checked.
|
|
@@ -169,10 +175,10 @@ class RdxRadioGroupDirective {
|
|
|
169
175
|
this.onTouched();
|
|
170
176
|
}
|
|
171
177
|
}
|
|
172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
173
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
179
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxRadioGroupDirective, isStandalone: true, selector: "[rdxRadioRoot]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onValueChange: "onValueChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "focusout": "onFocusOut($event)" }, properties: { "attr.aria-required": "required() ? \"true\" : undefined", "attr.aria-disabled": "disabledState() ? \"true\" : undefined", "attr.aria-readonly": "readonly() ? \"true\" : undefined", "attr.data-disabled": "disabledState() ? \"\" : undefined" } }, providers: [provideValueAccessor(RdxRadioGroupDirective), provideRadioRootContext(rootContext)], exportAs: ["rdxRadioRoot"], hostDirectives: [{ directive: i1.RdxCompositeRoot }], ngImport: i0 }); }
|
|
174
180
|
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioGroupDirective, decorators: [{
|
|
176
182
|
type: Directive,
|
|
177
183
|
args: [{
|
|
178
184
|
selector: '[rdxRadioRoot]',
|
|
@@ -185,7 +191,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
185
191
|
'[attr.aria-disabled]': 'disabledState() ? "true" : undefined',
|
|
186
192
|
'[attr.aria-readonly]': 'readonly() ? "true" : undefined',
|
|
187
193
|
'[attr.data-disabled]': 'disabledState() ? "" : undefined',
|
|
188
|
-
'(keydown)': 'onKeydown()',
|
|
189
194
|
'(focusout)': 'onFocusOut($event)'
|
|
190
195
|
}
|
|
191
196
|
}]
|
|
@@ -210,8 +215,10 @@ class RdxRadioItemDirective {
|
|
|
210
215
|
this.rootContext = injectRadioRootContext();
|
|
211
216
|
this.compositeItem = inject(RdxCompositeItem, { self: true });
|
|
212
217
|
this.elementRef = inject(ElementRef);
|
|
213
|
-
this.value = input.required(
|
|
214
|
-
|
|
218
|
+
this.value = input.required(/* @ts-ignore */
|
|
219
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
220
|
+
this.id = input(/* @ts-ignore */
|
|
221
|
+
...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
|
|
215
222
|
this.required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
216
223
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
217
224
|
/**
|
|
@@ -225,10 +232,14 @@ class RdxRadioItemDirective {
|
|
|
225
232
|
* apply `type="button"` and the native `disabled` attribute.
|
|
226
233
|
*/
|
|
227
234
|
this.isNativeButton = this.elementRef.nativeElement.tagName === 'BUTTON';
|
|
228
|
-
this.disabledState = computed(() => this.rootContext.disabledState() || this.disabled(),
|
|
229
|
-
|
|
230
|
-
this.
|
|
231
|
-
|
|
235
|
+
this.disabledState = computed(() => this.rootContext.disabledState() || this.disabled(), /* @ts-ignore */
|
|
236
|
+
...(ngDevMode ? [{ debugName: "disabledState" }] : /* istanbul ignore next */ []));
|
|
237
|
+
this.readonlyState = computed(() => this.rootContext.readonly() || this.readonly(), /* @ts-ignore */
|
|
238
|
+
...(ngDevMode ? [{ debugName: "readonlyState" }] : /* istanbul ignore next */ []));
|
|
239
|
+
this.requiredState = computed(() => this.rootContext.required() || this.required(), /* @ts-ignore */
|
|
240
|
+
...(ngDevMode ? [{ debugName: "requiredState" }] : /* istanbul ignore next */ []));
|
|
241
|
+
this.checkedState = computed(() => this.rootContext.value() === this.value(), /* @ts-ignore */
|
|
242
|
+
...(ngDevMode ? [{ debugName: "checkedState" }] : /* istanbul ignore next */ []));
|
|
232
243
|
this.ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];
|
|
233
244
|
effect(() => {
|
|
234
245
|
this.compositeItem.setMetadata({
|
|
@@ -274,10 +285,10 @@ class RdxRadioItemDirective {
|
|
|
274
285
|
isAllowedArrowKey(key) {
|
|
275
286
|
return this.ARROW_KEYS.includes(key);
|
|
276
287
|
}
|
|
277
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
278
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
288
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
289
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxRadioItemDirective, isStandalone: true, selector: "[rdxRadioItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "radio" }, listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)", "keyup": "onKeyUp()", "focus": "onFocus($event)" }, properties: { "attr.type": "isNativeButton ? \"button\" : undefined", "attr.aria-checked": "checkedState()", "attr.aria-disabled": "disabledState() ? \"true\" : undefined", "attr.aria-readonly": "readonlyState() ? \"true\" : undefined", "attr.aria-required": "requiredState() ? \"true\" : undefined", "attr.data-composite-item-active": "checkedState() ? \"\" : undefined", "attr.data-checked": "checkedState() ? \"\" : undefined", "attr.data-unchecked": "!checkedState() ? \"\" : undefined", "attr.data-disabled": "disabledState() ? \"\" : undefined", "attr.data-readonly": "readonlyState() ? \"\" : undefined", "attr.data-required": "requiredState() ? \"\" : undefined", "attr.disabled": "isNativeButton && disabledState() ? \"\" : undefined" } }, providers: [provideRadioItemContext(itemContext)], exportAs: ["rdxRadioItem"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
|
|
279
290
|
}
|
|
280
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioItemDirective, decorators: [{
|
|
281
292
|
type: Directive,
|
|
282
293
|
args: [{
|
|
283
294
|
selector: '[rdxRadioItem]',
|
|
@@ -311,12 +322,13 @@ class RdxRadioIndicatorDirective {
|
|
|
311
322
|
this.itemContext = injectRadioItemContext();
|
|
312
323
|
/** Keep the indicator in the DOM when unchecked so CSS exit animations can play. */
|
|
313
324
|
this.keepMounted = input(false, { ...(ngDevMode ? { debugName: "keepMounted" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
314
|
-
this.isVisible = computed(() => this.itemContext.checkedState(),
|
|
325
|
+
this.isVisible = computed(() => this.itemContext.checkedState(), /* @ts-ignore */
|
|
326
|
+
...(ngDevMode ? [{ debugName: "isVisible" }] : /* istanbul ignore next */ []));
|
|
315
327
|
}
|
|
316
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
317
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
328
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
329
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxRadioIndicatorDirective, isStandalone: true, selector: "[rdxRadioIndicator]", inputs: { keepMounted: { classPropertyName: "keepMounted", publicName: "keepMounted", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-checked": "itemContext.checkedState() ? \"\" : undefined", "attr.data-unchecked": "!itemContext.checkedState() ? \"\" : undefined", "attr.data-disabled": "itemContext.disabledState() ? \"\" : undefined", "attr.data-readonly": "itemContext.readonlyState() ? \"\" : undefined", "attr.data-required": "itemContext.requiredState() ? \"\" : undefined", "attr.data-starting-style": "isVisible() ? \"\" : undefined", "attr.data-ending-style": "!isVisible() ? \"\" : undefined", "style.display": "!keepMounted() && !isVisible() ? \"none\" : null", "style.pointer-events": "\"none\"" } }, exportAs: ["rdxRadioIndicator"], ngImport: i0 }); }
|
|
318
330
|
}
|
|
319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioIndicatorDirective, decorators: [{
|
|
320
332
|
type: Directive,
|
|
321
333
|
args: [{
|
|
322
334
|
selector: '[rdxRadioIndicator]',
|
|
@@ -346,12 +358,18 @@ class RdxRadioItemInputDirective {
|
|
|
346
358
|
this.rootContext = injectRadioRootContext();
|
|
347
359
|
this.itemContext = injectRadioItemContext();
|
|
348
360
|
this.input = inject(ElementRef).nativeElement;
|
|
349
|
-
this.name = computed(() => this.rootContext.name(),
|
|
350
|
-
|
|
351
|
-
this.
|
|
352
|
-
|
|
353
|
-
this.
|
|
354
|
-
|
|
361
|
+
this.name = computed(() => this.rootContext.name(), /* @ts-ignore */
|
|
362
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
363
|
+
this.form = computed(() => this.rootContext.form(), /* @ts-ignore */
|
|
364
|
+
...(ngDevMode ? [{ debugName: "form" }] : /* istanbul ignore next */ []));
|
|
365
|
+
this.value = computed(() => this.itemContext.value() || undefined, /* @ts-ignore */
|
|
366
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
367
|
+
this.checked = computed(() => this.itemContext.checkedState(), /* @ts-ignore */
|
|
368
|
+
...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
|
|
369
|
+
this.required = computed(() => this.itemContext.requiredState(), /* @ts-ignore */
|
|
370
|
+
...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
|
|
371
|
+
this.disabled = computed(() => this.itemContext.disabledState(), /* @ts-ignore */
|
|
372
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
355
373
|
let isInitial = true;
|
|
356
374
|
effect(() => {
|
|
357
375
|
const checked = this.checked();
|
|
@@ -377,10 +395,10 @@ class RdxRadioItemInputDirective {
|
|
|
377
395
|
this.rootContext.select(this.itemContext.value(), event);
|
|
378
396
|
}
|
|
379
397
|
}
|
|
380
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
381
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
398
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioItemInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
399
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: RdxRadioItemInputDirective, isStandalone: true, selector: "input[rdxRadioItemInput]", host: { attributes: { "type": "radio", "tabindex": "-1", "aria-hidden": "true" }, listeners: { "change": "onInputChange($event)" }, properties: { "attr.name": "name()", "attr.form": "form()", "attr.required": "required() ? \"\" : undefined", "attr.disabled": "disabled() ? \"\" : undefined", "attr.checked": "checked() ? \"\" : undefined", "checked": "checked()", "attr.value": "value()" }, styleAttribute: "transform: translateX(-100%); position: absolute; pointer-events: none; opacity: 0; margin: 0; inset: 0;" }, exportAs: ["rdxRadioItemInput"], ngImport: i0 }); }
|
|
382
400
|
}
|
|
383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxRadioItemInputDirective, decorators: [{
|
|
384
402
|
type: Directive,
|
|
385
403
|
args: [{
|
|
386
404
|
selector: 'input[rdxRadioItemInput]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-radio.mjs","sources":["../../../packages/primitives/radio/src/radio-root.directive.ts","../../../packages/primitives/radio/src/radio-item.directive.ts","../../../packages/primitives/radio/src/radio-indicator.directive.ts","../../../packages/primitives/radio/src/radio-item-input.directive.ts","../../../packages/primitives/radio/radix-ng-primitives-radio.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n Signal,\n untracked\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { RdxCompositeMetadata, RdxCompositeRoot } from '@radix-ng/primitives/composite';\nimport {\n BooleanInput,\n createCancelableChangeEventDetails,\n createContext,\n provideValueAccessor,\n RdxCancelableChangeEventDetails,\n RdxFormValueControl\n} from '@radix-ng/primitives/core';\nimport { RdxRadioValueChangeReason } from './radio-tokens';\n\nexport type { RdxRadioValueChangeReason } from './radio-tokens';\n\nexport type RdxRadioValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxRadioValueChangeReason>;\n\nexport interface RdxRadioValueChangeEvent {\n value: string;\n eventDetails: RdxRadioValueChangeEventDetails;\n}\n\nexport interface RadioRootContext {\n value: Signal<string | null>;\n disabledState: Signal<boolean>;\n readonly: Signal<boolean>;\n required: Signal<boolean>;\n name: Signal<string | undefined>;\n form: Signal<string | undefined>;\n select(value: string | null, event?: Event, reason?: RdxRadioValueChangeReason): void;\n setArrowNavigation(value: boolean): void;\n isArrowNavigation(): boolean;\n}\n\nconst rootContext = (): RadioRootContext => {\n const root = inject(RdxRadioGroupDirective);\n\n return {\n value: root.value,\n disabledState: root.disabledState,\n readonly: root.readonly,\n required: root.required,\n name: root.name,\n form: root.form,\n select: (value, event, reason) => root.select(value, event, reason),\n setArrowNavigation: (value) => root.setArrowNavigation(value),\n isArrowNavigation: () => root.isArrowNavigation()\n };\n};\n\nexport const [injectRadioRootContext, provideRadioRootContext] = createContext<RadioRootContext>(\n 'RadioRootContext',\n 'components/radio'\n);\n\n@Directive({\n selector: '[rdxRadioRoot]',\n exportAs: 'rdxRadioRoot',\n providers: [provideValueAccessor(RdxRadioGroupDirective), provideRadioRootContext(rootContext)],\n hostDirectives: [RdxCompositeRoot],\n host: {\n role: 'radiogroup',\n '[attr.aria-required]': 'required() ? \"true\" : undefined',\n '[attr.aria-disabled]': 'disabledState() ? \"true\" : undefined',\n '[attr.aria-readonly]': 'readonly() ? \"true\" : undefined',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '(keydown)': 'onKeydown()',\n '(focusout)': 'onFocusOut($event)'\n }\n})\nexport class RdxRadioGroupDirective implements ControlValueAccessor, RdxFormValueControl<string | null> {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly compositeRoot = inject(RdxCompositeRoot, { self: true });\n\n /**\n * The selected value. Deliberately typed as `string` (not Base UI's generic `Value`):\n * a radio group maps onto native radio inputs whose form value is a string, so values are\n * the option identifiers. Use the string key of your option as the value.\n */\n readonly value = model<string | null>(null);\n\n readonly defaultValue = input<string>();\n\n readonly name = input<string>();\n\n readonly form = input<string>();\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the user should be unable to select a different radio button. Bound in templates as\n * `readOnly` (Base UI spelling); the TS member stays `readonly` for cross-primitive consistency.\n */\n readonly readonly = input<boolean, BooleanInput>(false, { alias: 'readOnly', transform: booleanAttribute });\n\n readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event handler called when the value changes.\n */\n readonly onValueChange = output<RdxRadioValueChangeEvent>();\n\n private readonly disable = signal<boolean>(false);\n readonly disabledState = computed(() => this.disable() || this.disabled());\n private readonly arrowNavigation = signal(false);\n private readonly itemMetadata = computed(() =>\n Array.from(this.compositeRoot.itemMap().values()).filter(isRadioItemMetadata)\n );\n private readonly disabledIndices = computed(() =>\n this.itemMetadata()\n .filter((metadata) => metadata.disabled)\n .map((metadata) => metadata.index)\n );\n private readonly activeIndex = computed(() => {\n const value = this.value();\n if (value === null) {\n return -1;\n }\n\n return this.itemMetadata().find((metadata) => metadata.value === value)?.index ?? -1;\n });\n\n /**\n * The callback function to call when the value of the radio group changes.\n */\n private onChange: (value: string | null) => void = () => {\n /* Empty */\n };\n\n /**\n * The callback function to call when the radio group is touched.\n * @ignore\n */\n onTouched: () => void = () => {\n /* Empty */\n };\n\n constructor() {\n let hasAppliedDefault = false;\n effect(() => {\n const defaultValue = this.defaultValue();\n if (hasAppliedDefault || defaultValue === undefined) {\n return;\n }\n\n hasAppliedDefault = true;\n if (untracked(this.value) === null) {\n this.value.set(defaultValue);\n }\n });\n\n effect(() => {\n this.compositeRoot.setEnableHomeAndEndKeys(false);\n this.compositeRoot.setModifierKeys(['Shift']);\n });\n\n effect(() => {\n this.compositeRoot.setDisabledIndices(this.disabledIndices());\n });\n\n effect(() => {\n const activeIndex = this.activeIndex();\n\n if (activeIndex === -1 || this.disabledIndices().includes(activeIndex)) {\n return;\n }\n\n const activeElement = this.elementRef.nativeElement.ownerDocument.activeElement;\n if (activeElement && this.elementRef.nativeElement.contains(activeElement)) {\n return;\n }\n\n this.compositeRoot.setHighlightedIndex(activeIndex);\n });\n }\n\n /**\n * Select a radio item.\n * @param value The value of the radio item to select.\n * @ignore\n */\n select(value: string | null, event?: Event, reason: RdxRadioValueChangeReason = 'none'): void {\n if (this.disabledState() || this.readonly() || this.value() === value) {\n return;\n }\n\n if (value !== null) {\n const trigger = event?.currentTarget instanceof HTMLElement ? event.currentTarget : undefined;\n const { eventDetails } = createCancelableChangeEventDetails(\n reason,\n event ?? new Event('radio.value-change'),\n trigger\n );\n this.onValueChange.emit({ value, eventDetails });\n if (eventDetails.isCanceled()) {\n return;\n }\n }\n\n this.value.set(value);\n this.onChange?.(value);\n this.onTouched();\n }\n\n /**\n * Update the value of the radio group.\n * @param value The new value of the radio group.\n * @ignore\n */\n writeValue(value: string | null): void {\n this.value.set(value);\n }\n\n /**\n * Register a callback function to call when the value of the radio group changes.\n * @param fn The callback function to call when the value of the radio group changes.\n * @ignore\n */\n registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n /** @ignore */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * Set the disabled state of the radio group.\n * @param isDisabled Whether the radio group is disabled.\n * @ignore\n */\n setDisabledState(isDisabled: boolean): void {\n this.disable.set(isDisabled);\n }\n\n setArrowNavigation(value: boolean): void {\n this.arrowNavigation.set(value);\n }\n\n isArrowNavigation(): boolean {\n return this.arrowNavigation();\n }\n\n protected onKeydown(): void {\n if (this.disabledState()) return;\n }\n\n /**\n * Marks the control touched when focus leaves the whole group (Base UI `RadioGroup` parity and the\n * ADR 0004 CVA strategy) — moving focus between items stays inside, so `relatedTarget` is checked.\n */\n protected onFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget as Node | null;\n if (!this.elementRef.nativeElement.contains(next)) {\n this.onTouched();\n }\n }\n}\n\ninterface RdxRadioItemMetadata {\n [key: string]: unknown;\n disabled: boolean;\n value: string;\n}\n\nfunction isRadioItemMetadata(metadata: RdxCompositeMetadata): metadata is RdxCompositeMetadata<RdxRadioItemMetadata> {\n return typeof metadata['disabled'] === 'boolean' && typeof metadata['value'] === 'string';\n}\n","import { booleanAttribute, computed, Directive, effect, ElementRef, inject, input, Signal } from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { BooleanInput, createContext } from '@radix-ng/primitives/core';\nimport { injectRadioRootContext } from './radio-root.directive';\n\nexport interface RadioItemContext {\n value: Signal<string>;\n checkedState: Signal<boolean>;\n disabledState: Signal<boolean>;\n readonlyState: Signal<boolean>;\n requiredState: Signal<boolean>;\n}\n\nconst itemContext = (): RadioItemContext => {\n const item = inject(RdxRadioItemDirective);\n\n return {\n value: item.value,\n checkedState: item.checkedState,\n disabledState: item.disabledState,\n readonlyState: item.readonlyState,\n requiredState: item.requiredState\n };\n};\n\nexport const [injectRadioItemContext, provideRadioItemContext] = createContext<RadioItemContext>(\n 'RadioItemContext',\n 'components/radio'\n);\n\n@Directive({\n selector: '[rdxRadioItem]',\n exportAs: 'rdxRadioItem',\n providers: [provideRadioItemContext(itemContext)],\n hostDirectives: [RdxCompositeItem],\n\n host: {\n '[attr.type]': 'isNativeButton ? \"button\" : undefined',\n role: 'radio',\n '[attr.aria-checked]': 'checkedState()',\n '[attr.aria-disabled]': 'disabledState() ? \"true\" : undefined',\n '[attr.aria-readonly]': 'readonlyState() ? \"true\" : undefined',\n '[attr.aria-required]': 'requiredState() ? \"true\" : undefined',\n '[attr.data-composite-item-active]': 'checkedState() ? \"\" : undefined',\n '[attr.data-checked]': 'checkedState() ? \"\" : undefined',\n '[attr.data-unchecked]': '!checkedState() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonlyState() ? \"\" : undefined',\n '[attr.data-required]': 'requiredState() ? \"\" : undefined',\n '[attr.disabled]': 'isNativeButton && disabledState() ? \"\" : undefined',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)',\n '(keyup)': 'onKeyUp()',\n '(focus)': 'onFocus($event)'\n }\n})\nexport class RdxRadioItemDirective {\n private readonly rootContext = injectRadioRootContext();\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly value = input.required<string>();\n\n readonly id = input<string>();\n\n readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the user should be unable to select this radio button. Bound in templates as\n * `readOnly` (Base UI spelling); the TS member stays `readonly` for cross-primitive consistency.\n */\n readonly readonly = input<boolean, BooleanInput>(false, { alias: 'readOnly', transform: booleanAttribute });\n\n /**\n * Whether the host is a native `<button>`. Detected from the host tag (unlike Base UI's explicit\n * `nativeButton` prop, the rendered element is statically known in Angular templates), and used to\n * apply `type=\"button\"` and the native `disabled` attribute.\n */\n protected readonly isNativeButton = this.elementRef.nativeElement.tagName === 'BUTTON';\n\n readonly disabledState = computed(() => this.rootContext.disabledState() || this.disabled());\n\n readonly readonlyState = computed(() => this.rootContext.readonly() || this.readonly());\n\n readonly requiredState = computed(() => this.rootContext.required() || this.required());\n\n readonly checkedState = computed(() => this.rootContext.value() === this.value());\n\n private readonly ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'] as const;\n\n constructor() {\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.disabledState(),\n value: this.value()\n });\n });\n }\n\n /** @ignore */\n onClick(event?: Event) {\n if (!this.disabledState() && !this.readonlyState()) {\n this.rootContext.select(this.value(), event);\n }\n }\n\n /** @ignore */\n onKeyDown(event: Event): void {\n const keyEvent = event as KeyboardEvent;\n if (keyEvent.key === ' ') {\n this.onClick(keyEvent);\n return;\n }\n\n if (keyEvent.key === 'Enter') {\n keyEvent.preventDefault();\n return;\n }\n\n if (this.isAllowedArrowKey(keyEvent.key)) {\n this.rootContext.setArrowNavigation(true);\n }\n }\n\n /** @ignore */\n onKeyUp() {\n this.rootContext.setArrowNavigation(false);\n }\n\n /** @ignore */\n onFocus(event?: FocusEvent) {\n queueMicrotask(() => {\n if (this.rootContext.isArrowNavigation()) {\n this.rootContext.select(this.value(), event);\n this.rootContext.setArrowNavigation(false);\n }\n });\n }\n\n private isAllowedArrowKey(key: string): boolean {\n return (this.ARROW_KEYS as readonly string[]).includes(key);\n }\n}\n","import { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectRadioItemContext } from './radio-item.directive';\n\n@Directive({\n selector: '[rdxRadioIndicator]',\n exportAs: 'rdxRadioIndicator',\n host: {\n '[attr.data-checked]': 'itemContext.checkedState() ? \"\" : undefined',\n '[attr.data-unchecked]': '!itemContext.checkedState() ? \"\" : undefined',\n '[attr.data-disabled]': 'itemContext.disabledState() ? \"\" : undefined',\n '[attr.data-readonly]': 'itemContext.readonlyState() ? \"\" : undefined',\n '[attr.data-required]': 'itemContext.requiredState() ? \"\" : undefined',\n '[attr.data-starting-style]': 'isVisible() ? \"\" : undefined',\n '[attr.data-ending-style]': '!isVisible() ? \"\" : undefined',\n '[style.display]': '!keepMounted() && !isVisible() ? \"none\" : null',\n '[style.pointer-events]': '\"none\"'\n }\n})\nexport class RdxRadioIndicatorDirective {\n protected readonly itemContext = injectRadioItemContext();\n\n /** Keep the indicator in the DOM when unchecked so CSS exit animations can play. */\n readonly keepMounted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly isVisible = computed(() => this.itemContext.checkedState());\n}\n","import { computed, Directive, effect, ElementRef, inject } from '@angular/core';\nimport { injectRadioItemContext } from './radio-item.directive';\nimport { injectRadioRootContext } from './radio-root.directive';\n\n/**\n * The hidden native radio input that mirrors the item state for form submission, native validation,\n * and `<label>` activation. Place it inside an `rdxRadioItem`.\n *\n * @see https://base-ui.com/react/components/radio\n */\n@Directive({\n selector: 'input[rdxRadioItemInput]',\n exportAs: 'rdxRadioItemInput',\n host: {\n type: 'radio',\n tabindex: '-1',\n 'aria-hidden': 'true',\n '[attr.name]': 'name()',\n '[attr.form]': 'form()',\n '[attr.required]': 'required() ? \"\" : undefined',\n '[attr.disabled]': 'disabled() ? \"\" : undefined',\n '[attr.checked]': 'checked() ? \"\" : undefined',\n '[checked]': 'checked()',\n '[attr.value]': 'value()',\n '(change)': 'onInputChange($event)',\n style: 'transform: translateX(-100%); position: absolute; pointer-events: none; opacity: 0; margin: 0; inset: 0;'\n }\n})\nexport class RdxRadioItemInputDirective {\n private readonly rootContext = injectRadioRootContext();\n private readonly itemContext = injectRadioItemContext();\n private readonly input = inject<ElementRef<HTMLInputElement>>(ElementRef).nativeElement;\n\n readonly name = computed(() => this.rootContext.name());\n readonly form = computed(() => this.rootContext.form());\n readonly value = computed(() => this.itemContext.value() || undefined);\n readonly checked = computed(() => this.itemContext.checkedState());\n readonly required = computed(() => this.itemContext.requiredState());\n readonly disabled = computed(() => this.itemContext.disabledState());\n\n constructor() {\n let isInitial = true;\n\n effect(() => {\n const checked = this.checked();\n\n if (isInitial) {\n isInitial = false;\n return;\n }\n\n if (checked) {\n this.input.dispatchEvent(new Event('input', { bubbles: true }));\n this.input.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n }\n\n /**\n * Selects this item when the native input is checked — covers `<label>` activation,\n * where clicking the label toggles the hidden radio input rather than the visible item.\n * `select()` is a no-op when the value is already current, so the programmatic\n * `change` dispatched above does not re-trigger selection.\n * @ignore\n */\n protected onInputChange(event: Event): void {\n if (this.input.checked) {\n this.rootContext.select(this.itemContext.value(), event);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"radix-ng-primitives-radio.mjs","sources":["../../../packages/primitives/radio/src/radio-root.directive.ts","../../../packages/primitives/radio/src/radio-item.directive.ts","../../../packages/primitives/radio/src/radio-indicator.directive.ts","../../../packages/primitives/radio/src/radio-item-input.directive.ts","../../../packages/primitives/radio/radix-ng-primitives-radio.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n Signal,\n untracked\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { RdxCompositeMetadata, RdxCompositeRoot } from '@radix-ng/primitives/composite';\nimport {\n BooleanInput,\n createCancelableChangeEventDetails,\n createContext,\n provideValueAccessor,\n RdxCancelableChangeEventDetails,\n RdxFormValueControl\n} from '@radix-ng/primitives/core';\nimport { RdxRadioValueChangeReason } from './radio-tokens';\n\nexport type { RdxRadioValueChangeReason } from './radio-tokens';\n\nexport type RdxRadioValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxRadioValueChangeReason>;\n\nexport interface RdxRadioValueChangeEvent {\n value: string;\n eventDetails: RdxRadioValueChangeEventDetails;\n}\n\nexport interface RadioRootContext {\n value: Signal<string | null>;\n disabledState: Signal<boolean>;\n readonly: Signal<boolean>;\n required: Signal<boolean>;\n name: Signal<string | undefined>;\n form: Signal<string | undefined>;\n select(value: string | null, event?: Event, reason?: RdxRadioValueChangeReason): void;\n setArrowNavigation(value: boolean): void;\n isArrowNavigation(): boolean;\n}\n\nconst rootContext = (): RadioRootContext => {\n const root = inject(RdxRadioGroupDirective);\n\n return {\n value: root.value,\n disabledState: root.disabledState,\n readonly: root.readonly,\n required: root.required,\n name: root.name,\n form: root.form,\n select: (value, event, reason) => root.select(value, event, reason),\n setArrowNavigation: (value) => root.setArrowNavigation(value),\n isArrowNavigation: () => root.isArrowNavigation()\n };\n};\n\nexport const [injectRadioRootContext, provideRadioRootContext] = createContext<RadioRootContext>(\n 'RadioRootContext',\n 'components/radio'\n);\n\n@Directive({\n selector: '[rdxRadioRoot]',\n exportAs: 'rdxRadioRoot',\n providers: [provideValueAccessor(RdxRadioGroupDirective), provideRadioRootContext(rootContext)],\n hostDirectives: [RdxCompositeRoot],\n host: {\n role: 'radiogroup',\n '[attr.aria-required]': 'required() ? \"true\" : undefined',\n '[attr.aria-disabled]': 'disabledState() ? \"true\" : undefined',\n '[attr.aria-readonly]': 'readonly() ? \"true\" : undefined',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '(focusout)': 'onFocusOut($event)'\n }\n})\nexport class RdxRadioGroupDirective implements ControlValueAccessor, RdxFormValueControl<string | null> {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly compositeRoot = inject(RdxCompositeRoot, { self: true });\n\n /**\n * The selected value. Deliberately typed as `string` (not Base UI's generic `Value`):\n * a radio group maps onto native radio inputs whose form value is a string, so values are\n * the option identifiers. Use the string key of your option as the value.\n */\n readonly value = model<string | null>(null);\n\n readonly defaultValue = input<string>();\n\n readonly name = input<string>();\n\n readonly form = input<string>();\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the user should be unable to select a different radio button. Bound in templates as\n * `readOnly` (Base UI spelling); the TS member stays `readonly` for cross-primitive consistency.\n */\n readonly readonly = input<boolean, BooleanInput>(false, { alias: 'readOnly', transform: booleanAttribute });\n\n readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event handler called when the value changes.\n */\n readonly onValueChange = output<RdxRadioValueChangeEvent>();\n\n private readonly disable = signal<boolean>(false);\n readonly disabledState = computed(() => this.disable() || this.disabled());\n private readonly arrowNavigation = signal(false);\n private readonly itemMetadata = computed(() =>\n Array.from(this.compositeRoot.itemMap().values()).filter(isRadioItemMetadata)\n );\n private readonly disabledIndices = computed(() =>\n this.itemMetadata()\n .filter((metadata) => metadata.disabled)\n .map((metadata) => metadata.index)\n );\n private readonly activeIndex = computed(() => {\n const value = this.value();\n if (value === null) {\n return -1;\n }\n\n return this.itemMetadata().find((metadata) => metadata.value === value)?.index ?? -1;\n });\n\n /**\n * The callback function to call when the value of the radio group changes.\n */\n private onChange: (value: string | null) => void = () => {\n /* Empty */\n };\n\n /**\n * The callback function to call when the radio group is touched.\n * @ignore\n */\n onTouched: () => void = () => {\n /* Empty */\n };\n\n constructor() {\n let hasAppliedDefault = false;\n effect(() => {\n const defaultValue = this.defaultValue();\n if (hasAppliedDefault || defaultValue === undefined) {\n return;\n }\n\n hasAppliedDefault = true;\n if (untracked(this.value) === null) {\n this.value.set(defaultValue);\n }\n });\n\n effect(() => {\n this.compositeRoot.setEnableHomeAndEndKeys(false);\n this.compositeRoot.setModifierKeys(['Shift']);\n });\n\n effect(() => {\n this.compositeRoot.setDisabledIndices(this.disabledIndices());\n });\n\n effect(() => {\n const activeIndex = this.activeIndex();\n\n if (activeIndex === -1 || this.disabledIndices().includes(activeIndex)) {\n return;\n }\n\n const activeElement = this.elementRef.nativeElement.ownerDocument.activeElement;\n if (activeElement && this.elementRef.nativeElement.contains(activeElement)) {\n return;\n }\n\n this.compositeRoot.setHighlightedIndex(activeIndex);\n });\n }\n\n /**\n * Select a radio item.\n * @param value The value of the radio item to select.\n * @ignore\n */\n select(value: string | null, event?: Event, reason: RdxRadioValueChangeReason = 'none'): void {\n if (this.disabledState() || this.readonly() || this.value() === value) {\n return;\n }\n\n if (value !== null) {\n const trigger = event?.currentTarget instanceof HTMLElement ? event.currentTarget : undefined;\n const { eventDetails } = createCancelableChangeEventDetails(\n reason,\n event ?? new Event('radio.value-change'),\n trigger\n );\n this.onValueChange.emit({ value, eventDetails });\n if (eventDetails.isCanceled()) {\n return;\n }\n }\n\n this.value.set(value);\n this.onChange?.(value);\n this.onTouched();\n }\n\n /**\n * Update the value of the radio group.\n * @param value The new value of the radio group.\n * @ignore\n */\n writeValue(value: string | null): void {\n this.value.set(value);\n }\n\n /**\n * Register a callback function to call when the value of the radio group changes.\n * @param fn The callback function to call when the value of the radio group changes.\n * @ignore\n */\n registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n /** @ignore */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * Set the disabled state of the radio group.\n * @param isDisabled Whether the radio group is disabled.\n * @ignore\n */\n setDisabledState(isDisabled: boolean): void {\n this.disable.set(isDisabled);\n }\n\n setArrowNavigation(value: boolean): void {\n this.arrowNavigation.set(value);\n }\n\n isArrowNavigation(): boolean {\n return this.arrowNavigation();\n }\n\n /**\n * Marks the control touched when focus leaves the whole group (Base UI `RadioGroup` parity and the\n * ADR 0004 CVA strategy) — moving focus between items stays inside, so `relatedTarget` is checked.\n */\n protected onFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget as Node | null;\n if (!this.elementRef.nativeElement.contains(next)) {\n this.onTouched();\n }\n }\n}\n\ninterface RdxRadioItemMetadata {\n [key: string]: unknown;\n disabled: boolean;\n value: string;\n}\n\nfunction isRadioItemMetadata(metadata: RdxCompositeMetadata): metadata is RdxCompositeMetadata<RdxRadioItemMetadata> {\n return typeof metadata['disabled'] === 'boolean' && typeof metadata['value'] === 'string';\n}\n","import { booleanAttribute, computed, Directive, effect, ElementRef, inject, input, Signal } from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { BooleanInput, createContext } from '@radix-ng/primitives/core';\nimport { injectRadioRootContext } from './radio-root.directive';\n\nexport interface RadioItemContext {\n value: Signal<string>;\n checkedState: Signal<boolean>;\n disabledState: Signal<boolean>;\n readonlyState: Signal<boolean>;\n requiredState: Signal<boolean>;\n}\n\nconst itemContext = (): RadioItemContext => {\n const item = inject(RdxRadioItemDirective);\n\n return {\n value: item.value,\n checkedState: item.checkedState,\n disabledState: item.disabledState,\n readonlyState: item.readonlyState,\n requiredState: item.requiredState\n };\n};\n\nexport const [injectRadioItemContext, provideRadioItemContext] = createContext<RadioItemContext>(\n 'RadioItemContext',\n 'components/radio'\n);\n\n@Directive({\n selector: '[rdxRadioItem]',\n exportAs: 'rdxRadioItem',\n providers: [provideRadioItemContext(itemContext)],\n hostDirectives: [RdxCompositeItem],\n\n host: {\n '[attr.type]': 'isNativeButton ? \"button\" : undefined',\n role: 'radio',\n '[attr.aria-checked]': 'checkedState()',\n '[attr.aria-disabled]': 'disabledState() ? \"true\" : undefined',\n '[attr.aria-readonly]': 'readonlyState() ? \"true\" : undefined',\n '[attr.aria-required]': 'requiredState() ? \"true\" : undefined',\n '[attr.data-composite-item-active]': 'checkedState() ? \"\" : undefined',\n '[attr.data-checked]': 'checkedState() ? \"\" : undefined',\n '[attr.data-unchecked]': '!checkedState() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonlyState() ? \"\" : undefined',\n '[attr.data-required]': 'requiredState() ? \"\" : undefined',\n '[attr.disabled]': 'isNativeButton && disabledState() ? \"\" : undefined',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)',\n '(keyup)': 'onKeyUp()',\n '(focus)': 'onFocus($event)'\n }\n})\nexport class RdxRadioItemDirective {\n private readonly rootContext = injectRadioRootContext();\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly value = input.required<string>();\n\n readonly id = input<string>();\n\n readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the user should be unable to select this radio button. Bound in templates as\n * `readOnly` (Base UI spelling); the TS member stays `readonly` for cross-primitive consistency.\n */\n readonly readonly = input<boolean, BooleanInput>(false, { alias: 'readOnly', transform: booleanAttribute });\n\n /**\n * Whether the host is a native `<button>`. Detected from the host tag (unlike Base UI's explicit\n * `nativeButton` prop, the rendered element is statically known in Angular templates), and used to\n * apply `type=\"button\"` and the native `disabled` attribute.\n */\n protected readonly isNativeButton = this.elementRef.nativeElement.tagName === 'BUTTON';\n\n readonly disabledState = computed(() => this.rootContext.disabledState() || this.disabled());\n\n readonly readonlyState = computed(() => this.rootContext.readonly() || this.readonly());\n\n readonly requiredState = computed(() => this.rootContext.required() || this.required());\n\n readonly checkedState = computed(() => this.rootContext.value() === this.value());\n\n private readonly ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'] as const;\n\n constructor() {\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.disabledState(),\n value: this.value()\n });\n });\n }\n\n /** @ignore */\n onClick(event?: Event) {\n if (!this.disabledState() && !this.readonlyState()) {\n this.rootContext.select(this.value(), event);\n }\n }\n\n /** @ignore */\n onKeyDown(event: Event): void {\n const keyEvent = event as KeyboardEvent;\n if (keyEvent.key === ' ') {\n this.onClick(keyEvent);\n return;\n }\n\n if (keyEvent.key === 'Enter') {\n keyEvent.preventDefault();\n return;\n }\n\n if (this.isAllowedArrowKey(keyEvent.key)) {\n this.rootContext.setArrowNavigation(true);\n }\n }\n\n /** @ignore */\n onKeyUp() {\n this.rootContext.setArrowNavigation(false);\n }\n\n /** @ignore */\n onFocus(event?: FocusEvent) {\n queueMicrotask(() => {\n if (this.rootContext.isArrowNavigation()) {\n this.rootContext.select(this.value(), event);\n this.rootContext.setArrowNavigation(false);\n }\n });\n }\n\n private isAllowedArrowKey(key: string): boolean {\n return (this.ARROW_KEYS as readonly string[]).includes(key);\n }\n}\n","import { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectRadioItemContext } from './radio-item.directive';\n\n@Directive({\n selector: '[rdxRadioIndicator]',\n exportAs: 'rdxRadioIndicator',\n host: {\n '[attr.data-checked]': 'itemContext.checkedState() ? \"\" : undefined',\n '[attr.data-unchecked]': '!itemContext.checkedState() ? \"\" : undefined',\n '[attr.data-disabled]': 'itemContext.disabledState() ? \"\" : undefined',\n '[attr.data-readonly]': 'itemContext.readonlyState() ? \"\" : undefined',\n '[attr.data-required]': 'itemContext.requiredState() ? \"\" : undefined',\n '[attr.data-starting-style]': 'isVisible() ? \"\" : undefined',\n '[attr.data-ending-style]': '!isVisible() ? \"\" : undefined',\n '[style.display]': '!keepMounted() && !isVisible() ? \"none\" : null',\n '[style.pointer-events]': '\"none\"'\n }\n})\nexport class RdxRadioIndicatorDirective {\n protected readonly itemContext = injectRadioItemContext();\n\n /** Keep the indicator in the DOM when unchecked so CSS exit animations can play. */\n readonly keepMounted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly isVisible = computed(() => this.itemContext.checkedState());\n}\n","import { computed, Directive, effect, ElementRef, inject } from '@angular/core';\nimport { injectRadioItemContext } from './radio-item.directive';\nimport { injectRadioRootContext } from './radio-root.directive';\n\n/**\n * The hidden native radio input that mirrors the item state for form submission, native validation,\n * and `<label>` activation. Place it inside an `rdxRadioItem`.\n *\n * @see https://base-ui.com/react/components/radio\n */\n@Directive({\n selector: 'input[rdxRadioItemInput]',\n exportAs: 'rdxRadioItemInput',\n host: {\n type: 'radio',\n tabindex: '-1',\n 'aria-hidden': 'true',\n '[attr.name]': 'name()',\n '[attr.form]': 'form()',\n '[attr.required]': 'required() ? \"\" : undefined',\n '[attr.disabled]': 'disabled() ? \"\" : undefined',\n '[attr.checked]': 'checked() ? \"\" : undefined',\n '[checked]': 'checked()',\n '[attr.value]': 'value()',\n '(change)': 'onInputChange($event)',\n style: 'transform: translateX(-100%); position: absolute; pointer-events: none; opacity: 0; margin: 0; inset: 0;'\n }\n})\nexport class RdxRadioItemInputDirective {\n private readonly rootContext = injectRadioRootContext();\n private readonly itemContext = injectRadioItemContext();\n private readonly input = inject<ElementRef<HTMLInputElement>>(ElementRef).nativeElement;\n\n readonly name = computed(() => this.rootContext.name());\n readonly form = computed(() => this.rootContext.form());\n readonly value = computed(() => this.itemContext.value() || undefined);\n readonly checked = computed(() => this.itemContext.checkedState());\n readonly required = computed(() => this.itemContext.requiredState());\n readonly disabled = computed(() => this.itemContext.disabledState());\n\n constructor() {\n let isInitial = true;\n\n effect(() => {\n const checked = this.checked();\n\n if (isInitial) {\n isInitial = false;\n return;\n }\n\n if (checked) {\n this.input.dispatchEvent(new Event('input', { bubbles: true }));\n this.input.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n }\n\n /**\n * Selects this item when the native input is checked — covers `<label>` activation,\n * where clicking the label toggles the hidden radio input rather than the visible item.\n * `select()` is a no-op when the value is already current, so the programmatic\n * `change` dispatched above does not re-trigger selection.\n * @ignore\n */\n protected onInputChange(event: Event): void {\n if (this.input.checked) {\n this.rootContext.select(this.itemContext.value(), event);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|