@cdx-ui/primitives 0.0.1-beta.141 → 0.0.1-beta.142
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/lib/commonjs/checkbox/CheckboxRoot.web.js +91 -28
- package/lib/commonjs/checkbox/CheckboxRoot.web.js.map +1 -1
- package/lib/commonjs/checkbox/useCheckboxRoot.js +33 -19
- package/lib/commonjs/checkbox/useCheckboxRoot.js.map +1 -1
- package/lib/commonjs/radio/RadioGroup.js +65 -16
- package/lib/commonjs/radio/RadioGroup.js.map +1 -1
- package/lib/commonjs/radio/RadioRoot.web.js +114 -26
- package/lib/commonjs/radio/RadioRoot.web.js.map +1 -1
- package/lib/commonjs/radio/context.js.map +1 -1
- package/lib/commonjs/radio/useRadioGroupNavigation.js +79 -0
- package/lib/commonjs/radio/useRadioGroupNavigation.js.map +1 -0
- package/lib/commonjs/radio/useRadioRoot.js +14 -13
- package/lib/commonjs/radio/useRadioRoot.js.map +1 -1
- package/lib/module/checkbox/CheckboxRoot.web.js +92 -29
- package/lib/module/checkbox/CheckboxRoot.web.js.map +1 -1
- package/lib/module/checkbox/useCheckboxRoot.js +34 -20
- package/lib/module/checkbox/useCheckboxRoot.js.map +1 -1
- package/lib/module/radio/RadioGroup.js +68 -19
- package/lib/module/radio/RadioGroup.js.map +1 -1
- package/lib/module/radio/RadioRoot.web.js +117 -29
- package/lib/module/radio/RadioRoot.web.js.map +1 -1
- package/lib/module/radio/context.js.map +1 -1
- package/lib/module/radio/useRadioGroupNavigation.js +74 -0
- package/lib/module/radio/useRadioGroupNavigation.js.map +1 -0
- package/lib/module/radio/useRadioRoot.js +14 -13
- package/lib/module/radio/useRadioRoot.js.map +1 -1
- package/lib/typescript/checkbox/CheckboxRoot.web.d.ts +8 -0
- package/lib/typescript/checkbox/CheckboxRoot.web.d.ts.map +1 -1
- package/lib/typescript/checkbox/useCheckboxRoot.d.ts +7 -18
- package/lib/typescript/checkbox/useCheckboxRoot.d.ts.map +1 -1
- package/lib/typescript/radio/RadioGroup.d.ts.map +1 -1
- package/lib/typescript/radio/RadioRoot.web.d.ts +8 -0
- package/lib/typescript/radio/RadioRoot.web.d.ts.map +1 -1
- package/lib/typescript/radio/context.d.ts +6 -1
- package/lib/typescript/radio/context.d.ts.map +1 -1
- package/lib/typescript/radio/types.d.ts +7 -0
- package/lib/typescript/radio/types.d.ts.map +1 -1
- package/lib/typescript/radio/useRadioGroupNavigation.d.ts +17 -0
- package/lib/typescript/radio/useRadioGroupNavigation.d.ts.map +1 -0
- package/lib/typescript/radio/useRadioRoot.d.ts +4 -18
- package/lib/typescript/radio/useRadioRoot.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/checkbox/CheckboxRoot.web.tsx +105 -29
- package/src/checkbox/useCheckboxRoot.ts +37 -15
- package/src/radio/RadioGroup.tsx +84 -20
- package/src/radio/RadioRoot.web.tsx +136 -31
- package/src/radio/context.tsx +6 -1
- package/src/radio/types.ts +6 -0
- package/src/radio/useRadioGroupNavigation.ts +104 -0
- package/src/radio/useRadioRoot.ts +18 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","View","
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useRef","useState","Platform","View","composeEventHandlers","useFormControl","useRadioGroup","useRadioGroupState","Slot","dataAttributes","mergeDataAttributes","RadioGroupContext","useRadioGroupNavigation","jsx","_jsx","RadioGroup","asChild","children","className","style","props","ref","formControlProps","isDisabled","isRequired","isInvalid","isReadOnly","Boolean","disabled","required","readOnly","name","ariaLabel","ariaLabelledBy","ariaDescribedBy","radioGroupState","value","defaultValue","onChange","validationState","radioGroupProps","focusedValue","setFocusedValue","undefined","registrationEpoch","setRegistrationEpoch","radiosRef","Map","prev","selectedValue","registerRadio","entry","current","set","epoch","unregisterRadio","delete","getRadios","Array","from","entries","handleKeyDown","selectValue","setSelectedValue","webProps","OS","onKeyDown","Comp","Provider","state","isSelected","invalid","displayName"],"sourceRoot":"../../../src","sources":["radio/RadioGroup.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { forwardRef } from 'react';
|
|
3
|
+
import { forwardRef, useContext, useEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { Pressable } from 'react-native';
|
|
5
5
|
import { VisuallyHidden } from '@react-aria/visually-hidden';
|
|
6
|
-
import {
|
|
6
|
+
import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
|
|
7
7
|
import { useFocusRing } from '@react-native-aria/focus';
|
|
8
8
|
import { Slot } from '../slot';
|
|
9
9
|
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
10
|
-
import { RadioProvider } from './context';
|
|
10
|
+
import { RadioGroupContext, RadioProvider } from './context';
|
|
11
11
|
import { useRadioRoot } from './useRadioRoot';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
import { getRovingFocusValue } from './useRadioGroupNavigation';
|
|
13
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
/**
|
|
15
|
+
* Web Radio root.
|
|
16
|
+
*
|
|
17
|
+
* On web, `@react-native-aria/radio` re-exports `@react-aria/radio`'s `useRadio`,
|
|
18
|
+
* whose `inputProps` target a native `<input type="radio">` (selection via
|
|
19
|
+
* `onChange`). Selection must be applied explicitly on the Pressable —
|
|
20
|
+
* `inputProps.onPress` does **not** call `setSelectedValue`.
|
|
21
|
+
*/
|
|
15
22
|
export const RadioRoot = /*#__PURE__*/forwardRef(({
|
|
16
23
|
asChild,
|
|
17
24
|
children,
|
|
@@ -26,12 +33,12 @@ export const RadioRoot = /*#__PURE__*/forwardRef(({
|
|
|
26
33
|
isFocused,
|
|
27
34
|
isPressed
|
|
28
35
|
} = props;
|
|
36
|
+
const radioGroupContext = useContext(RadioGroupContext);
|
|
29
37
|
const {
|
|
30
38
|
combinedProps,
|
|
31
39
|
isInvalid,
|
|
32
40
|
isReadOnly,
|
|
33
41
|
inputProps,
|
|
34
|
-
labelProps,
|
|
35
42
|
isChecked,
|
|
36
43
|
isDisabled,
|
|
37
44
|
isHovered,
|
|
@@ -44,42 +51,123 @@ export const RadioRoot = /*#__PURE__*/forwardRef(({
|
|
|
44
51
|
focusProps,
|
|
45
52
|
isFocusVisible
|
|
46
53
|
} = useFocusRing();
|
|
54
|
+
const nodeRef = useRef(null);
|
|
55
|
+
const setRefs = mergeRefs(mergedRef, nodeRef);
|
|
56
|
+
|
|
57
|
+
// Strip native-input / internal props — they must not land on Pressable.
|
|
58
|
+
const {
|
|
59
|
+
onPress: _onPress,
|
|
60
|
+
onChange: _onChange,
|
|
61
|
+
role: _role,
|
|
62
|
+
tabIndex: _tabIndex,
|
|
63
|
+
disabled: _disabled,
|
|
64
|
+
checked: _checked,
|
|
65
|
+
value: _value,
|
|
66
|
+
type: _type,
|
|
67
|
+
name: _name,
|
|
68
|
+
form: _form,
|
|
69
|
+
required: _required,
|
|
70
|
+
...inputAriaProps
|
|
71
|
+
} = inputProps;
|
|
72
|
+
const resolvedDisabled = !!(isDisabled || isDisabledProp);
|
|
73
|
+
const resolvedReadOnly = !!(isReadOnly || isReadOnlyProp);
|
|
74
|
+
const selectThis = () => {
|
|
75
|
+
if (resolvedDisabled || resolvedReadOnly) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
radioGroupContext?.radioGroupState.setSelectedValue(combinedProps.value);
|
|
79
|
+
};
|
|
80
|
+
const selectedValue = radioGroupContext?.radioGroupState.selectedValue;
|
|
81
|
+
const focusedValue = radioGroupContext?.focusedValue;
|
|
82
|
+
const registerRadio = radioGroupContext?.registerRadio;
|
|
83
|
+
const unregisterRadio = radioGroupContext?.unregisterRadio;
|
|
84
|
+
const getRadios = radioGroupContext?.getRadios;
|
|
85
|
+
const groupName = radioGroupContext?.name;
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
if (!registerRadio || !unregisterRadio) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
registerRadio(combinedProps.value, {
|
|
91
|
+
disabled: !!resolvedDisabled,
|
|
92
|
+
node: nodeRef.current
|
|
93
|
+
});
|
|
94
|
+
return () => unregisterRadio(combinedProps.value);
|
|
95
|
+
}, [combinedProps.value, resolvedDisabled, registerRadio, unregisterRadio]);
|
|
96
|
+
const isRovingTabStop = useMemo(() => {
|
|
97
|
+
if (resolvedDisabled) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
const enabledRadios = getRadios?.().filter(([, entry]) => !entry.disabled) ?? [];
|
|
101
|
+
const rovingValue = getRovingFocusValue(focusedValue, selectedValue, enabledRadios);
|
|
102
|
+
return combinedProps.value === rovingValue;
|
|
103
|
+
}, [combinedProps.value, focusedValue, getRadios, resolvedDisabled, selectedValue]);
|
|
104
|
+
const handleKeyDown = event => {
|
|
105
|
+
if (event.key === ' ' || event.key === 'Spacebar') {
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
selectThis();
|
|
108
|
+
}
|
|
109
|
+
};
|
|
47
110
|
const contextValue = {
|
|
48
111
|
isChecked,
|
|
49
|
-
isDisabled:
|
|
112
|
+
isDisabled: resolvedDisabled,
|
|
50
113
|
isFocusVisible: isFocusVisible || isFocusVisibleProp,
|
|
51
114
|
isHovered: isHovered || isHoveredProp,
|
|
52
115
|
isInvalid: isInvalid || isInvalidProp,
|
|
53
|
-
isReadOnly:
|
|
116
|
+
isReadOnly: resolvedReadOnly,
|
|
54
117
|
isPressed,
|
|
55
118
|
isFocused
|
|
56
119
|
};
|
|
57
120
|
const Comp = asChild ? Slot : Pressable;
|
|
58
121
|
return /*#__PURE__*/_jsx(RadioProvider, {
|
|
59
122
|
value: contextValue,
|
|
60
|
-
children: /*#__PURE__*/_jsxs(
|
|
61
|
-
...mergeProps(combinedProps, labelProps, focusProps),
|
|
62
|
-
ref: mergedRef,
|
|
63
|
-
role: "label"
|
|
64
|
-
// eslint-disable-next-line react-native-a11y/has-valid-accessibility-role
|
|
65
|
-
,
|
|
66
|
-
accessibilityRole: "label",
|
|
67
|
-
...mergeDataAttributes(props, dataAttributes({
|
|
68
|
-
checked: isChecked,
|
|
69
|
-
disabled: isDisabled || isDisabledProp,
|
|
70
|
-
hover: isHovered || isHoveredProp,
|
|
71
|
-
invalid: isInvalid || isInvalidProp,
|
|
72
|
-
readonly: isReadOnly || isReadOnlyProp,
|
|
73
|
-
active: isPressed,
|
|
74
|
-
focus: isFocused,
|
|
75
|
-
focusVisible: isFocusVisible || isFocusVisibleProp
|
|
76
|
-
})),
|
|
123
|
+
children: /*#__PURE__*/_jsxs(_Fragment, {
|
|
77
124
|
children: [/*#__PURE__*/_jsx(VisuallyHidden, {
|
|
78
125
|
children: /*#__PURE__*/_jsx("input", {
|
|
79
|
-
|
|
80
|
-
|
|
126
|
+
ref: inputRef,
|
|
127
|
+
type: "radio",
|
|
128
|
+
name: groupName,
|
|
129
|
+
value: combinedProps.value,
|
|
130
|
+
checked: !!isChecked,
|
|
131
|
+
disabled: resolvedDisabled,
|
|
132
|
+
tabIndex: -1,
|
|
133
|
+
"aria-hidden": true,
|
|
134
|
+
readOnly: true
|
|
135
|
+
// Decorative form mirror — pointer events must not steal clicks from Pressable.
|
|
136
|
+
,
|
|
137
|
+
style: {
|
|
138
|
+
pointerEvents: 'none'
|
|
139
|
+
}
|
|
81
140
|
})
|
|
82
|
-
}),
|
|
141
|
+
}), /*#__PURE__*/_jsx(Comp, {
|
|
142
|
+
...combinedProps,
|
|
143
|
+
...inputAriaProps,
|
|
144
|
+
ref: setRefs,
|
|
145
|
+
role: "radio",
|
|
146
|
+
"aria-checked": isChecked,
|
|
147
|
+
"aria-disabled": resolvedDisabled || undefined,
|
|
148
|
+
accessibilityRole: "radio",
|
|
149
|
+
accessibilityState: {
|
|
150
|
+
checked: isChecked,
|
|
151
|
+
disabled: resolvedDisabled
|
|
152
|
+
},
|
|
153
|
+
tabIndex: resolvedDisabled ? -1 : isRovingTabStop ? 0 : -1,
|
|
154
|
+
disabled: resolvedDisabled,
|
|
155
|
+
...focusProps,
|
|
156
|
+
onPress: selectThis,
|
|
157
|
+
onClick: selectThis,
|
|
158
|
+
onKeyDown: composeEventHandlers(combinedProps.onKeyDown, handleKeyDown),
|
|
159
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
160
|
+
checked: isChecked,
|
|
161
|
+
disabled: resolvedDisabled,
|
|
162
|
+
hover: isHovered || isHoveredProp,
|
|
163
|
+
invalid: isInvalid || isInvalidProp,
|
|
164
|
+
readonly: resolvedReadOnly,
|
|
165
|
+
active: isPressed,
|
|
166
|
+
focus: isFocused,
|
|
167
|
+
focusVisible: isFocusVisible || isFocusVisibleProp
|
|
168
|
+
})),
|
|
169
|
+
children: children
|
|
170
|
+
})]
|
|
83
171
|
})
|
|
84
172
|
});
|
|
85
173
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","Pressable","VisuallyHidden","
|
|
1
|
+
{"version":3,"names":["forwardRef","useContext","useEffect","useMemo","useRef","Pressable","VisuallyHidden","composeEventHandlers","mergeRefs","useFocusRing","Slot","dataAttributes","mergeDataAttributes","RadioGroupContext","RadioProvider","useRadioRoot","getRovingFocusValue","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","RadioRoot","asChild","children","props","ref","isHovered","isHoveredProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","isInvalid","isInvalidProp","isReadOnly","isReadOnlyProp","isFocused","isPressed","radioGroupContext","combinedProps","inputProps","isChecked","mergedRef","inputRef","useInputRefForAria","focusProps","nodeRef","setRefs","onPress","_onPress","onChange","_onChange","role","_role","tabIndex","_tabIndex","disabled","_disabled","checked","_checked","value","_value","type","_type","name","_name","form","_form","required","_required","inputAriaProps","resolvedDisabled","resolvedReadOnly","selectThis","radioGroupState","setSelectedValue","selectedValue","focusedValue","registerRadio","unregisterRadio","getRadios","groupName","node","current","isRovingTabStop","enabledRadios","filter","entry","rovingValue","handleKeyDown","event","key","preventDefault","contextValue","Comp","readOnly","style","pointerEvents","undefined","accessibilityRole","accessibilityState","onClick","onKeyDown","hover","invalid","readonly","active","focus","focusVisible","displayName"],"sourceRoot":"../../../src","sources":["radio/RadioRoot.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","RadioProvider","useRadioContext","RadioGroupContext"],"sourceRoot":"../../../src","sources":["radio/context.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAQ,eAAe;AAI7C,OAAO,MAAM,CAACC,aAAa,EAAEC,eAAe,CAAC,GAAGF,aAAa,CAAqB,cAAc,CAAC;AAWjG,OAAO,MAAMG,iBAAiB,gBAAGJ,KAAK,CAACC,aAAa,
|
|
1
|
+
{"version":3,"names":["React","createContext","RadioProvider","useRadioContext","RadioGroupContext"],"sourceRoot":"../../../src","sources":["radio/context.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAQ,eAAe;AAI7C,OAAO,MAAM,CAACC,aAAa,EAAEC,eAAe,CAAC,GAAGF,aAAa,CAAqB,cAAc,CAAC;AAWjG,OAAO,MAAMG,iBAAiB,gBAAGJ,KAAK,CAACC,aAAa,CAS1C,IAAI,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useRef } from 'react';
|
|
4
|
+
// Web-only — native platforms rely on OS-managed sequential focus (VoiceOver/TalkBack).
|
|
5
|
+
|
|
6
|
+
function isEnabledRadioValue(value, enabledRadios) {
|
|
7
|
+
return value != null && enabledRadios.some(([radioValue]) => radioValue === value);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Resolves which radio value should hold the roving tab stop / keyboard focus anchor. */
|
|
11
|
+
export function getRovingFocusValue(focusedValue, selectedValue, enabledRadios) {
|
|
12
|
+
const defaultFocusValue = isEnabledRadioValue(selectedValue, enabledRadios) ? selectedValue : enabledRadios[0]?.[0];
|
|
13
|
+
const resolvedFocusedValue = isEnabledRadioValue(focusedValue, enabledRadios) ? focusedValue : undefined;
|
|
14
|
+
return resolvedFocusedValue ?? defaultFocusValue;
|
|
15
|
+
}
|
|
16
|
+
export function useRadioGroupNavigation({
|
|
17
|
+
getRadios,
|
|
18
|
+
focusedValue,
|
|
19
|
+
setFocusedValue,
|
|
20
|
+
selectedValue,
|
|
21
|
+
selectValue
|
|
22
|
+
}) {
|
|
23
|
+
const selectValueRef = useRef(selectValue);
|
|
24
|
+
selectValueRef.current = selectValue;
|
|
25
|
+
const getEnabledRadios = useCallback(() => getRadios().filter(([, entry]) => !entry.disabled), [getRadios]);
|
|
26
|
+
const moveFocus = useCallback(([targetValue, targetEntry]) => {
|
|
27
|
+
setFocusedValue(targetValue);
|
|
28
|
+
targetEntry.node?.focus?.();
|
|
29
|
+
selectValueRef.current(targetValue);
|
|
30
|
+
}, [setFocusedValue]);
|
|
31
|
+
const handleKeyDown = useCallback(e => {
|
|
32
|
+
const enabledRadios = getEnabledRadios();
|
|
33
|
+
if (enabledRadios.length === 0) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const currentValue = getRovingFocusValue(focusedValue, selectedValue, enabledRadios);
|
|
37
|
+
const idx = enabledRadios.findIndex(([value]) => value === currentValue);
|
|
38
|
+
switch (e.key) {
|
|
39
|
+
case 'ArrowDown':
|
|
40
|
+
case 'ArrowRight':
|
|
41
|
+
{
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
moveFocus(enabledRadios[idx < enabledRadios.length - 1 ? idx + 1 : 0]);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case 'ArrowUp':
|
|
47
|
+
case 'ArrowLeft':
|
|
48
|
+
{
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
moveFocus(enabledRadios[idx > 0 ? idx - 1 : enabledRadios.length - 1]);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'Home':
|
|
54
|
+
{
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
moveFocus(enabledRadios[0]);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case 'End':
|
|
60
|
+
{
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
const last = enabledRadios.at(-1);
|
|
63
|
+
if (last) {
|
|
64
|
+
moveFocus(last);
|
|
65
|
+
}
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}, [focusedValue, selectedValue, getEnabledRadios, moveFocus]);
|
|
70
|
+
return {
|
|
71
|
+
handleKeyDown
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=useRadioGroupNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","isEnabledRadioValue","value","enabledRadios","some","radioValue","getRovingFocusValue","focusedValue","selectedValue","defaultFocusValue","resolvedFocusedValue","undefined","useRadioGroupNavigation","getRadios","setFocusedValue","selectValue","selectValueRef","current","getEnabledRadios","filter","entry","disabled","moveFocus","targetValue","targetEntry","node","focus","handleKeyDown","e","length","currentValue","idx","findIndex","key","preventDefault","last","at"],"sourceRoot":"../../../src","sources":["radio/useRadioGroupNavigation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,27 +9,28 @@ export function useRadioRoot(props, ref, {
|
|
|
9
9
|
useInputRefForAria = false
|
|
10
10
|
} = {}) {
|
|
11
11
|
const formControlContext = useFormControlContext();
|
|
12
|
-
const {
|
|
13
|
-
isInvalid,
|
|
14
|
-
isReadOnly,
|
|
15
|
-
...combinedProps
|
|
16
|
-
} = {
|
|
17
|
-
...formControlContext,
|
|
18
|
-
...props
|
|
19
|
-
};
|
|
20
12
|
const radioGroupContext = useContext(RadioGroupContext);
|
|
21
13
|
if (!radioGroupContext) {
|
|
22
14
|
throw new Error('Radio must be rendered inside a Radio.Group. Standalone Radio is not supported.');
|
|
23
15
|
}
|
|
16
|
+
const isInvalid = props.isInvalid ?? formControlContext.isInvalid;
|
|
17
|
+
const isReadOnly = props.isReadOnly ?? formControlContext.isReadOnly ?? radioGroupContext.state.isReadOnly;
|
|
18
|
+
const isDisabled = props.isDisabled ?? formControlContext.isDisabled ?? radioGroupContext.state.isDisabled;
|
|
19
|
+
const combinedProps = {
|
|
20
|
+
...props,
|
|
21
|
+
isInvalid,
|
|
22
|
+
isReadOnly,
|
|
23
|
+
isDisabled
|
|
24
|
+
};
|
|
24
25
|
const rootRef = useRef(null);
|
|
25
26
|
const inputRef = useRef(null);
|
|
26
27
|
const mergedRootRef = mergeRefs(ref, rootRef);
|
|
27
|
-
const ariaLabel =
|
|
28
|
+
const ariaLabel = props['aria-label'] || props.value || 'Radio';
|
|
28
29
|
const radio = useRadio({
|
|
29
30
|
...combinedProps,
|
|
30
31
|
'aria-label': ariaLabel,
|
|
31
|
-
isReadOnly
|
|
32
|
-
isDisabled
|
|
32
|
+
isReadOnly,
|
|
33
|
+
isDisabled
|
|
33
34
|
}, radioGroupContext.radioGroupState, useInputRefForAria ? inputRef : rootRef);
|
|
34
35
|
const {
|
|
35
36
|
inputProps,
|
|
@@ -37,7 +38,7 @@ export function useRadioRoot(props, ref, {
|
|
|
37
38
|
} = radio;
|
|
38
39
|
const {
|
|
39
40
|
checked: isChecked,
|
|
40
|
-
disabled:
|
|
41
|
+
disabled: isDisabledFromInput
|
|
41
42
|
} = inputProps;
|
|
42
43
|
const {
|
|
43
44
|
hoverProps,
|
|
@@ -50,7 +51,7 @@ export function useRadioRoot(props, ref, {
|
|
|
50
51
|
inputProps,
|
|
51
52
|
labelProps: labelProps ?? {},
|
|
52
53
|
isChecked,
|
|
53
|
-
isDisabled,
|
|
54
|
+
isDisabled: isDisabledFromInput,
|
|
54
55
|
isHovered,
|
|
55
56
|
hoverProps,
|
|
56
57
|
mergedRef: mergedRootRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useRef","mergeRefs","useFormControlContext","useRadio","useHover","RadioGroupContext","useRadioRoot","props","ref","useInputRefForAria","formControlContext","isInvalid","isReadOnly","
|
|
1
|
+
{"version":3,"names":["useContext","useRef","mergeRefs","useFormControlContext","useRadio","useHover","RadioGroupContext","useRadioRoot","props","ref","useInputRefForAria","formControlContext","radioGroupContext","Error","isInvalid","isReadOnly","state","isDisabled","combinedProps","rootRef","inputRef","mergedRootRef","ariaLabel","value","radio","radioGroupState","inputProps","labelProps","checked","isChecked","disabled","isDisabledFromInput","hoverProps","isHovered","mergedRef"],"sourceRoot":"../../../src","sources":["radio/useRadioRoot.ts"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAC1C,SAASC,SAAS,EAAEC,qBAAqB,QAAQ,eAAe;AAChE,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,iBAAiB,QAAQ,WAAW;AAO7C,OAAO,SAASC,YAAYA,CAC1BC,KAAkB,EAClBC,GAAwB,EACxB;EAAEC,kBAAkB,GAAG;AAA2B,CAAC,GAAG,CAAC,CAAC,EACxD;EACA,MAAMC,kBAAkB,GAAGR,qBAAqB,CAAC,CAAC;EAClD,MAAMS,iBAAiB,GAAGZ,UAAU,CAACM,iBAAiB,CAAC;EAEvD,IAAI,CAACM,iBAAiB,EAAE;IACtB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEA,MAAMC,SAAS,GAAGN,KAAK,CAACM,SAAS,IAAIH,kBAAkB,CAACG,SAAS;EACjE,MAAMC,UAAU,GACdP,KAAK,CAACO,UAAU,IAAIJ,kBAAkB,CAACI,UAAU,IAAIH,iBAAiB,CAACI,KAAK,CAACD,UAAU;EACzF,MAAME,UAAU,GACdT,KAAK,CAACS,UAAU,IAAIN,kBAAkB,CAACM,UAAU,IAAIL,iBAAiB,CAACI,KAAK,CAACC,UAAU;EAEzF,MAAMC,aAAa,GAAG;IACpB,GAAGV,KAAK;IACRM,SAAS;IACTC,UAAU;IACVE;EACF,CAAC;EAED,MAAME,OAAO,GAAGlB,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAMmB,QAAQ,GAAGnB,MAAM,CAA0B,IAAI,CAAC;EACtD,MAAMoB,aAAa,GAAGnB,SAAS,CAACO,GAAG,EAASU,OAAc,CAAC;EAC3D,MAAMG,SAAS,GAAGd,KAAK,CAAC,YAAY,CAAC,IAAIA,KAAK,CAACe,KAAK,IAAI,OAAO;EAE/D,MAAMC,KAAK,GAAGpB,QAAQ,CACpB;IACE,GAAGc,aAAa;IAChB,YAAY,EAAEI,SAAS;IACvBP,UAAU;IACVE;EACF,CAAC,EACDL,iBAAiB,CAACa,eAAe,EAChCf,kBAAkB,GAAGU,QAAQ,GAAGD,OACnC,CAAC;EAED,MAAM;IAAEO,UAAU;IAAEC;EAAW,CAAC,GAAGH,KAElC;EAED,MAAM;IAAEI,OAAO,EAAEC,SAAS;IAAEC,QAAQ,EAAEC;EAAoB,CAAC,GAAGL,UAAU;EAExE,MAAM;IAAEM,UAAU;IAAEC;EAAU,CAAC,GAAG5B,QAAQ,CAAC,CAAC,CAAC,EAAEc,OAAO,CAAC;EAEvD,OAAO;IACLD,aAAa;IACbJ,SAAS,EAAEA,SAAS,IAAIF,iBAAiB,CAACI,KAAK,CAACF,SAAS;IACzDC,UAAU,EAAEA,UAAU,IAAIH,iBAAiB,CAACI,KAAK,CAACD,UAAU;IAC5DW,UAAU;IACVC,UAAU,EAAEA,UAAU,IAAI,CAAC,CAAC;IAC5BE,SAAS;IACTZ,UAAU,EAAEc,mBAAmB;IAC/BE,SAAS;IACTD,UAAU;IACVE,SAAS,EAAEb,aAAa;IACxBD;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -2,5 +2,13 @@ import type { ICheckboxProps } from './types';
|
|
|
2
2
|
export interface CheckboxRootProps extends ICheckboxProps {
|
|
3
3
|
asChild?: boolean;
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Web Checkbox root.
|
|
7
|
+
*
|
|
8
|
+
* On web, `@react-native-aria/checkbox` re-exports `@react-aria/checkbox`'s
|
|
9
|
+
* `useCheckbox`, whose `inputProps` target a native `<input type="checkbox">`
|
|
10
|
+
* (selection via `onChange`). Toggle must be applied explicitly on the Pressable —
|
|
11
|
+
* `inputProps.onPress` does **not** call `toggleState.toggle()`.
|
|
12
|
+
*/
|
|
5
13
|
export declare const CheckboxRoot: import("react").ForwardRefExoticComponent<CheckboxRootProps & import("react").RefAttributes<import("react-native").View>>;
|
|
6
14
|
//# sourceMappingURL=CheckboxRoot.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxRoot.web.d.ts","sourceRoot":"","sources":["../../../src/checkbox/CheckboxRoot.web.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CheckboxRoot.web.d.ts","sourceRoot":"","sources":["../../../src/checkbox/CheckboxRoot.web.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;AAGrE,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,2HA8IxB,CAAC"}
|
|
@@ -4,16 +4,19 @@ interface UseCheckboxRootOptions {
|
|
|
4
4
|
}
|
|
5
5
|
export declare function useCheckboxRoot(props: ICheckboxProps, ref?: React.Ref<unknown>, { useInputRefForAria }?: UseCheckboxRootOptions): {
|
|
6
6
|
combinedProps: {
|
|
7
|
+
isInvalid: boolean | undefined;
|
|
8
|
+
isReadOnly: boolean | undefined;
|
|
9
|
+
isDisabled: boolean | undefined;
|
|
10
|
+
isIndeterminate: boolean | undefined;
|
|
7
11
|
value: string;
|
|
8
12
|
onChange?: (isSelected: boolean) => void;
|
|
9
13
|
children?: React.ReactNode;
|
|
10
14
|
defaultIsChecked?: boolean;
|
|
11
15
|
isChecked?: boolean;
|
|
12
|
-
isDisabled?: boolean | undefined;
|
|
13
16
|
isHovered?: boolean;
|
|
14
17
|
isFocused?: boolean;
|
|
15
18
|
isPressed?: boolean;
|
|
16
|
-
isRequired?: boolean
|
|
19
|
+
isRequired?: boolean;
|
|
17
20
|
isFocusVisible?: boolean;
|
|
18
21
|
onHoverIn?: null | ((event: import("react-native").MouseEvent) => void) | undefined;
|
|
19
22
|
onHoverOut?: null | ((event: import("react-native").MouseEvent) => void) | undefined;
|
|
@@ -72,7 +75,7 @@ export declare function useCheckboxRoot(props: ICheckboxProps, ref?: React.Ref<u
|
|
|
72
75
|
accessibilityShowsLargeContentViewer?: boolean | undefined;
|
|
73
76
|
accessibilityLargeContentTitle?: string | undefined;
|
|
74
77
|
accessibilityRespondsToUserInteraction?: boolean | undefined;
|
|
75
|
-
id?: string | undefined;
|
|
78
|
+
id?: string | undefined | undefined;
|
|
76
79
|
onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | undefined | undefined;
|
|
77
80
|
testID?: string | undefined | undefined;
|
|
78
81
|
nativeID?: string | undefined | undefined;
|
|
@@ -120,21 +123,6 @@ export declare function useCheckboxRoot(props: ICheckboxProps, ref?: React.Ref<u
|
|
|
120
123
|
onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
|
|
121
124
|
onPointerUp?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
|
|
122
125
|
onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
|
|
123
|
-
hasFeedbackText?: boolean | undefined;
|
|
124
|
-
hasHelpText?: boolean | undefined;
|
|
125
|
-
setHasFeedbackText?: import("react").Dispatch<import("react").SetStateAction<boolean>> | undefined;
|
|
126
|
-
setHasHelpText?: import("react").Dispatch<import("react").SetStateAction<boolean>> | undefined;
|
|
127
|
-
name?: string | undefined;
|
|
128
|
-
labelId?: string | undefined;
|
|
129
|
-
feedbackId?: string | undefined;
|
|
130
|
-
helpTextId?: string | undefined;
|
|
131
|
-
htmlProps?: {
|
|
132
|
-
[x: string]: unknown;
|
|
133
|
-
} | undefined;
|
|
134
|
-
inputRef?: React.RefObject<import("@cdx-ui/utils").Focusable | null> | undefined;
|
|
135
|
-
focusInput?: (() => void) | undefined;
|
|
136
|
-
isLabelFocused?: boolean | undefined;
|
|
137
|
-
setIsLabelFocused?: React.Dispatch<React.SetStateAction<boolean>> | undefined;
|
|
138
126
|
};
|
|
139
127
|
isInvalid: boolean | undefined;
|
|
140
128
|
isReadOnly: boolean | undefined;
|
|
@@ -149,6 +137,7 @@ export declare function useCheckboxRoot(props: ICheckboxProps, ref?: React.Ref<u
|
|
|
149
137
|
};
|
|
150
138
|
mergedRef: import("react").RefCallback<unknown>;
|
|
151
139
|
inputRef: import("react").RefObject<HTMLInputElement | null>;
|
|
140
|
+
toggle: () => void;
|
|
152
141
|
};
|
|
153
142
|
export {};
|
|
154
143
|
//# sourceMappingURL=useCheckboxRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckboxRoot.d.ts","sourceRoot":"","sources":["../../../src/checkbox/useCheckboxRoot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,sBAAsB;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EACxB,EAAE,kBAA0B,EAAE,GAAE,sBAA2B
|
|
1
|
+
{"version":3,"file":"useCheckboxRoot.d.ts","sourceRoot":"","sources":["../../../src/checkbox/useCheckboxRoot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,sBAAsB;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EACxB,EAAE,kBAA0B,EAAE,GAAE,sBAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2F5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/radio/RadioGroup.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/radio/RadioGroup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO9D,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AAGjE,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,sGAiItB,CAAC"}
|
|
@@ -2,5 +2,13 @@ import type { IRadioProps } from './types';
|
|
|
2
2
|
export interface RadioRootProps extends IRadioProps {
|
|
3
3
|
asChild?: boolean;
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Web Radio root.
|
|
7
|
+
*
|
|
8
|
+
* On web, `@react-native-aria/radio` re-exports `@react-aria/radio`'s `useRadio`,
|
|
9
|
+
* whose `inputProps` target a native `<input type="radio">` (selection via
|
|
10
|
+
* `onChange`). Selection must be applied explicitly on the Pressable —
|
|
11
|
+
* `inputProps.onPress` does **not** call `setSelectedValue`.
|
|
12
|
+
*/
|
|
5
13
|
export declare const RadioRoot: import("react").ForwardRefExoticComponent<RadioRootProps & import("react").RefAttributes<import("react-native").View>>;
|
|
6
14
|
//# sourceMappingURL=RadioRoot.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioRoot.web.d.ts","sourceRoot":"","sources":["../../../src/radio/RadioRoot.web.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"RadioRoot.web.d.ts","sourceRoot":"","sources":["../../../src/radio/RadioRoot.web.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,SAAS,CAAC;AAI/D,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,wHAwKrB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { RadioGroupState } from '@react-stately/radio';
|
|
3
|
-
import type { IRadioContextValue } from './types';
|
|
3
|
+
import type { IRadioContextValue, RegisteredRadio } from './types';
|
|
4
4
|
export declare const RadioProvider: React.FunctionComponent<{
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
value: IRadioContextValue;
|
|
@@ -17,5 +17,10 @@ export declare const RadioGroupContext: React.Context<{
|
|
|
17
17
|
state: IRadioGroupState;
|
|
18
18
|
radioGroupState: RadioGroupState;
|
|
19
19
|
name?: string;
|
|
20
|
+
focusedValue?: string | undefined;
|
|
21
|
+
setFocusedValue?: (value: string | undefined) => void;
|
|
22
|
+
registerRadio?: (value: string, entry: RegisteredRadio) => void;
|
|
23
|
+
unregisterRadio?: (value: string) => void;
|
|
24
|
+
getRadios?: () => [string, RegisteredRadio][];
|
|
20
25
|
} | null>;
|
|
21
26
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/radio/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/radio/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEnE,eAAO,MAAO,aAAa;;;IAAE,eAAe,0BAAqD,CAAC;AAElG,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,iBAAiB;WACrB,gBAAgB;qBACN,eAAe;WACzB,MAAM;mBACE,MAAM,GAAG,SAAS;sBACf,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI;oBACrC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI;sBAC7C,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;gBAC7B,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE;SAChC,CAAC"}
|
|
@@ -40,4 +40,11 @@ export interface IRadioContextValue {
|
|
|
40
40
|
isHovered?: boolean;
|
|
41
41
|
isPressed?: boolean;
|
|
42
42
|
}
|
|
43
|
+
/** Web roving-focus registration entry for a single radio item. */
|
|
44
|
+
export interface RegisteredRadio {
|
|
45
|
+
disabled: boolean;
|
|
46
|
+
node: {
|
|
47
|
+
focus?: () => void;
|
|
48
|
+
} | null;
|
|
49
|
+
}
|
|
43
50
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/radio/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/radio/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACrC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RegisteredRadio } from './types';
|
|
2
|
+
/** Resolves which radio value should hold the roving tab stop / keyboard focus anchor. */
|
|
3
|
+
export declare function getRovingFocusValue(focusedValue: string | undefined, selectedValue: string | null | undefined, enabledRadios: [string, RegisteredRadio][]): string | undefined;
|
|
4
|
+
export interface UseRadioGroupNavigationOptions {
|
|
5
|
+
getRadios: () => [string, RegisteredRadio][];
|
|
6
|
+
focusedValue: string | undefined;
|
|
7
|
+
setFocusedValue: (value: string | undefined) => void;
|
|
8
|
+
selectedValue: string | null | undefined;
|
|
9
|
+
selectValue: (value: string) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useRadioGroupNavigation({ getRadios, focusedValue, setFocusedValue, selectedValue, selectValue, }: UseRadioGroupNavigationOptions): {
|
|
12
|
+
handleKeyDown: (e: {
|
|
13
|
+
key: string;
|
|
14
|
+
preventDefault: () => void;
|
|
15
|
+
}) => void;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useRadioGroupNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRadioGroupNavigation.d.ts","sourceRoot":"","sources":["../../../src/radio/useRadioGroupNavigation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAW/C,0FAA0F;AAC1F,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,aAAa,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,GACzC,MAAM,GAAG,SAAS,CAUpB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC;IAC7C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,YAAY,EACZ,eAAe,EACf,aAAa,EACb,WAAW,GACZ,EAAE,8BAA8B;uBAmBzB;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,IAAI,CAAA;KAAE;EAyClD"}
|