@radix-ui/react-radio-group 1.0.1-rc.6 → 1.1.0-rc.2
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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/index.module.js +8 -5
- package/dist/index.module.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export const createRadioGroupScope: import("@radix-ui/react-context").CreateScop
|
|
|
22
22
|
type RadioGroupContextValue = {
|
|
23
23
|
name?: string;
|
|
24
24
|
required: boolean;
|
|
25
|
+
disabled: boolean;
|
|
25
26
|
value?: string;
|
|
26
27
|
onValueChange(value: string): void;
|
|
27
28
|
};
|
|
@@ -30,6 +31,7 @@ type PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
|
30
31
|
export interface RadioGroupProps extends PrimitiveDivProps {
|
|
31
32
|
name?: RadioGroupContextValue['name'];
|
|
32
33
|
required?: Radix.ComponentPropsWithoutRef<typeof Radio>['required'];
|
|
34
|
+
disabled?: Radix.ComponentPropsWithoutRef<typeof Radio>['disabled'];
|
|
33
35
|
dir?: RovingFocusGroupProps['dir'];
|
|
34
36
|
orientation?: RovingFocusGroupProps['orientation'];
|
|
35
37
|
loop?: RovingFocusGroupProps['loop'];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;AAyBA,4BAA4B,MAAM,wBAAwB,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC;AACpF,oBAAqB,SAAQ,oBAAoB;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAED,QAAA,MAAM,2FA4DL,CAAC;AAWF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC;AAChF,6BAAqC,SAAQ,kBAAkB;IAC7D;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,QAAA,MAAM,2GAeL,CAAC;ACzGF,OAAA,4FAGE,CAAC;AAIH,8BAA8B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAMF,6BAA6B,MAAM,wBAAwB,CAAC,OAAO,iBAAiB,IAAI,CAAC,CAAC;AAC1F,yBAAyB,MAAM,wBAAwB,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC;AAC9E,gCAA0B,SAAQ,iBAAiB;IACjD,IAAI,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,GAAG,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;CACzD;AAED,OAAA,MAAM,
|
|
1
|
+
{"mappings":";;;;AAyBA,4BAA4B,MAAM,wBAAwB,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC;AACpF,oBAAqB,SAAQ,oBAAoB;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAED,QAAA,MAAM,2FA4DL,CAAC;AAWF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC;AAChF,6BAAqC,SAAQ,kBAAkB;IAC7D;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,QAAA,MAAM,2GAeL,CAAC;ACzGF,OAAA,4FAGE,CAAC;AAIH,8BAA8B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAMF,6BAA6B,MAAM,wBAAwB,CAAC,OAAO,iBAAiB,IAAI,CAAC,CAAC;AAC1F,yBAAyB,MAAM,wBAAwB,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC;AAC9E,gCAA0B,SAAQ,iBAAiB;IACjD,IAAI,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,GAAG,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;CACzD;AAED,OAAA,MAAM,kGAoDL,CAAC;AAWF,oBAAkB,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC;AAC/D,oCAA8B,SAAQ,IAAI,CAAC,YAAU,EAAE,SAAS,GAAG,MAAM,CAAC;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,OAAA,MAAM,6GA2DL,CAAC;AAWF,6BAA2B,MAAM,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;AACjF,yCAAmC,SAAQ,qBAAmB;CAAG;AAEjE,OAAA,MAAM,qHAML,CAAC;AAMF,OAAA,MAAM,4FAAiB,CAAC;AACxB,OAAA,MAAM,mGAAqB,CAAC;AAC5B,OAAA,MAAM,2GAA+B,CAAC","sources":["packages/react/radio-group/src/packages/react/radio-group/src/Radio.tsx","packages/react/radio-group/src/packages/react/radio-group/src/RadioGroup.tsx","packages/react/radio-group/src/packages/react/radio-group/src/index.ts","packages/react/radio-group/src/index.ts"],"sourcesContent":[null,null,null,"export {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n} from './RadioGroup';\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps } from './RadioGroup';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
|
package/dist/index.js
CHANGED
|
@@ -168,15 +168,15 @@ const $240483839a8a76fd$var$ARROW_KEYS = [
|
|
|
168
168
|
/* -------------------------------------------------------------------------------------------------
|
|
169
169
|
* RadioGroup
|
|
170
170
|
* -----------------------------------------------------------------------------------------------*/ const $240483839a8a76fd$var$RADIO_GROUP_NAME = 'RadioGroup';
|
|
171
|
-
const [$240483839a8a76fd$var$
|
|
171
|
+
const [$240483839a8a76fd$var$createRadioGroupContext, $240483839a8a76fd$export$c547093f11b76da2] = $9yYIj$radixuireactcontext.createContextScope($240483839a8a76fd$var$RADIO_GROUP_NAME, [
|
|
172
172
|
$9yYIj$radixuireactrovingfocus.createRovingFocusGroupScope,
|
|
173
173
|
$ce74a64c62457efb$export$67d2296460f1b002
|
|
174
174
|
]);
|
|
175
175
|
const $240483839a8a76fd$var$useRovingFocusGroupScope = $9yYIj$radixuireactrovingfocus.createRovingFocusGroupScope();
|
|
176
176
|
const $240483839a8a76fd$var$useRadioScope = $ce74a64c62457efb$export$67d2296460f1b002();
|
|
177
|
-
const [$240483839a8a76fd$var$RadioGroupProvider, $240483839a8a76fd$var$useRadioGroupContext] = $240483839a8a76fd$var$
|
|
177
|
+
const [$240483839a8a76fd$var$RadioGroupProvider, $240483839a8a76fd$var$useRadioGroupContext] = $240483839a8a76fd$var$createRadioGroupContext($240483839a8a76fd$var$RADIO_GROUP_NAME);
|
|
178
178
|
const $240483839a8a76fd$export$a98f0dcb43a68a25 = /*#__PURE__*/ $9yYIj$react.forwardRef((props, forwardedRef)=>{
|
|
179
|
-
const { __scopeRadioGroup: __scopeRadioGroup , name: name , defaultValue: defaultValue , value: valueProp , required: required = false , orientation: orientation , dir: dir , loop: loop = true , onValueChange: onValueChange , ...groupProps } = props;
|
|
179
|
+
const { __scopeRadioGroup: __scopeRadioGroup , name: name , defaultValue: defaultValue , value: valueProp , required: required = false , disabled: disabled = false , orientation: orientation , dir: dir , loop: loop = true , onValueChange: onValueChange , ...groupProps } = props;
|
|
180
180
|
const rovingFocusGroupScope = $240483839a8a76fd$var$useRovingFocusGroupScope(__scopeRadioGroup);
|
|
181
181
|
const direction = $9yYIj$radixuireactdirection.useDirection(dir);
|
|
182
182
|
const [value, setValue] = $9yYIj$radixuireactusecontrollablestate.useControllableState({
|
|
@@ -188,6 +188,7 @@ const $240483839a8a76fd$export$a98f0dcb43a68a25 = /*#__PURE__*/ $9yYIj$react.for
|
|
|
188
188
|
scope: __scopeRadioGroup,
|
|
189
189
|
name: name,
|
|
190
190
|
required: required,
|
|
191
|
+
disabled: disabled,
|
|
191
192
|
value: value,
|
|
192
193
|
onValueChange: setValue
|
|
193
194
|
}, /*#__PURE__*/ $9yYIj$react.createElement($9yYIj$radixuireactrovingfocus.Root, ($parcel$interopDefault($9yYIj$babelruntimehelpersextends))({
|
|
@@ -200,6 +201,7 @@ const $240483839a8a76fd$export$a98f0dcb43a68a25 = /*#__PURE__*/ $9yYIj$react.for
|
|
|
200
201
|
role: "radiogroup",
|
|
201
202
|
"aria-required": required,
|
|
202
203
|
"aria-orientation": orientation,
|
|
204
|
+
"data-disabled": disabled ? '' : undefined,
|
|
203
205
|
dir: direction
|
|
204
206
|
}, groupProps, {
|
|
205
207
|
ref: forwardedRef
|
|
@@ -214,6 +216,7 @@ const $240483839a8a76fd$export$a98f0dcb43a68a25 = /*#__PURE__*/ $9yYIj$react.for
|
|
|
214
216
|
const $240483839a8a76fd$export$9f866c100ef519e4 = /*#__PURE__*/ $9yYIj$react.forwardRef((props, forwardedRef)=>{
|
|
215
217
|
const { __scopeRadioGroup: __scopeRadioGroup , disabled: disabled , ...itemProps } = props;
|
|
216
218
|
const context = $240483839a8a76fd$var$useRadioGroupContext($240483839a8a76fd$var$ITEM_NAME, __scopeRadioGroup);
|
|
219
|
+
const isDisabled = context.disabled || disabled;
|
|
217
220
|
const rovingFocusGroupScope = $240483839a8a76fd$var$useRovingFocusGroupScope(__scopeRadioGroup);
|
|
218
221
|
const radioScope = $240483839a8a76fd$var$useRadioScope(__scopeRadioGroup);
|
|
219
222
|
const ref = $9yYIj$react.useRef(null);
|
|
@@ -236,10 +239,10 @@ const $240483839a8a76fd$export$9f866c100ef519e4 = /*#__PURE__*/ $9yYIj$react.for
|
|
|
236
239
|
return /*#__PURE__*/ $9yYIj$react.createElement($9yYIj$radixuireactrovingfocus.Item, ($parcel$interopDefault($9yYIj$babelruntimehelpersextends))({
|
|
237
240
|
asChild: true
|
|
238
241
|
}, rovingFocusGroupScope, {
|
|
239
|
-
focusable: !
|
|
242
|
+
focusable: !isDisabled,
|
|
240
243
|
active: checked
|
|
241
244
|
}), /*#__PURE__*/ $9yYIj$react.createElement($ce74a64c62457efb$export$d7b12c4107be0d61, ($parcel$interopDefault($9yYIj$babelruntimehelpersextends))({
|
|
242
|
-
disabled:
|
|
245
|
+
disabled: isDisabled,
|
|
243
246
|
required: context.required,
|
|
244
247
|
checked: checked
|
|
245
248
|
}, radioScope, itemProps, {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/react/radio-group/src/index.ts","packages/react/radio-group/src/RadioGroup.tsx","packages/react/radio-group/src/Radio.tsx"],"sourcesContent":["export {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n} from './RadioGroup';\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps } from './RadioGroup';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Radio, RadioIndicator, createRadioScope } from './Radio';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroup\n * -----------------------------------------------------------------------------------------------*/\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps<P> = P & { __scopeRadioGroup?: Scope };\nconst [createRadioGroupContet, createRadioGroupScope] = createContextScope(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\nconst useRadioScope = createRadioScope();\n\ntype RadioGroupContextValue = {\n name?: string;\n required: boolean;\n value?: string;\n onValueChange(value: string): void;\n};\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContet<RadioGroupContextValue>(RADIO_GROUP_NAME);\n\ntype RadioGroupElement = React.ElementRef<typeof Primitive.div>;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef<typeof RovingFocusGroup.Root>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface RadioGroupProps extends PrimitiveDivProps {\n name?: RadioGroupContextValue['name'];\n required?: Radix.ComponentPropsWithoutRef<typeof Radio>['required'];\n dir?: RovingFocusGroupProps['dir'];\n orientation?: RovingFocusGroupProps['orientation'];\n loop?: RovingFocusGroupProps['loop'];\n defaultValue?: string;\n value?: RadioGroupContextValue['value'];\n onValueChange?: RadioGroupContextValue['onValueChange'];\n}\n\nconst RadioGroup = React.forwardRef<RadioGroupElement, RadioGroupProps>(\n (props: ScopedProps<RadioGroupProps>, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n });\n\n return (\n <RadioGroupProvider\n scope={__scopeRadioGroup}\n name={name}\n required={required}\n value={value}\n onValueChange={setValue}\n >\n <RovingFocusGroup.Root\n asChild\n {...rovingFocusGroupScope}\n orientation={orientation}\n dir={direction}\n loop={loop}\n >\n <Primitive.div\n role=\"radiogroup\"\n aria-required={required}\n aria-orientation={orientation}\n dir={direction}\n {...groupProps}\n ref={forwardedRef}\n />\n </RovingFocusGroup.Root>\n </RadioGroupProvider>\n );\n }\n);\n\nRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RadioGroupItem';\n\ntype RadioGroupItemElement = React.ElementRef<typeof Radio>;\ntype RadioProps = Radix.ComponentPropsWithoutRef<typeof Radio>;\ninterface RadioGroupItemProps extends Omit<RadioProps, 'onCheck' | 'name'> {\n value: string;\n}\n\nconst RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(\n (props: ScopedProps<RadioGroupItemProps>, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React.useRef<React.ElementRef<typeof Radio>>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => (isArrowKeyPressedRef.current = false);\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n\n return (\n <RovingFocusGroup.Item\n asChild\n {...rovingFocusGroupScope}\n focusable={!disabled}\n active={checked}\n >\n <Radio\n disabled={disabled}\n required={context.required}\n checked={checked}\n {...radioScope}\n {...itemProps}\n name={context.name}\n ref={composedRefs}\n onCheck={() => context.onValueChange(itemProps.value)}\n onKeyDown={composeEventHandlers((event) => {\n // According to WAI ARIA, radio groups don't activate items on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onFocus={composeEventHandlers(itemProps.onFocus, () => {\n /**\n * Our `RovingFocusGroup` will focus the radio when navigating with arrow keys\n * and we need to \"check\" it in that case. We click it to \"check\" it (instead\n * of updating `context.value`) so that the radio change event fires.\n */\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })}\n />\n </RovingFocusGroup.Item>\n );\n }\n);\n\nRadioGroupItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioGroupIndicator';\n\ntype RadioGroupIndicatorElement = React.ElementRef<typeof RadioIndicator>;\ntype RadioIndicatorProps = Radix.ComponentPropsWithoutRef<typeof RadioIndicator>;\ninterface RadioGroupIndicatorProps extends RadioIndicatorProps {}\n\nconst RadioGroupIndicator = React.forwardRef<RadioGroupIndicatorElement, RadioGroupIndicatorProps>(\n (props: ScopedProps<RadioGroupIndicatorProps>, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return <RadioIndicator {...radioScope} {...indicatorProps} ref={forwardedRef} />;\n }\n);\n\nRadioGroupIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = RadioGroup;\nconst Item = RadioGroupItem;\nconst Indicator = RadioGroupIndicator;\n\nexport {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n};\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Radio\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_NAME = 'Radio';\n\ntype ScopedProps<P> = P & { __scopeRadio?: Scope };\nconst [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\n\ntype RadioContextValue = { checked: boolean; disabled?: boolean };\nconst [RadioProvider, useRadioContext] = createRadioContext<RadioContextValue>(RADIO_NAME);\n\ntype RadioElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface RadioProps extends PrimitiveButtonProps {\n checked?: boolean;\n required?: boolean;\n onCheck?(): void;\n}\n\nconst Radio = React.forwardRef<RadioElement, RadioProps>(\n (props: ScopedProps<RadioProps>, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = 'on',\n onCheck,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState<HTMLButtonElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? Boolean(button.closest('form')) : true;\n\n return (\n <RadioProvider scope={__scopeRadio} checked={checked} disabled={disabled}>\n <Primitive.button\n type=\"button\"\n role=\"radio\"\n aria-checked={checked}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...radioProps}\n ref={composedRefs}\n onClick={composeEventHandlers(props.onClick, (event) => {\n // radios cannot be unchecked so we only communicate a checked state\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if radio is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect radio updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n {isFormControl && (\n <BubbleInput\n control={button}\n bubbles={!hasConsumerStoppedPropagationRef.current}\n name={name}\n value={value}\n checked={checked}\n required={required}\n disabled={disabled}\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n style={{ transform: 'translateX(-100%)' }}\n />\n )}\n </RadioProvider>\n );\n }\n);\n\nRadio.displayName = RADIO_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioIndicator';\n\ntype RadioIndicatorElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\nexport interface RadioIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst RadioIndicator = React.forwardRef<RadioIndicatorElement, RadioIndicatorProps>(\n (props: ScopedProps<RadioIndicatorProps>, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return (\n <Presence present={forceMount || context.checked}>\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nRadioIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype InputProps = Radix.ComponentPropsWithoutRef<'input'>;\ninterface BubbleInputProps extends Omit<InputProps, 'checked'> {\n checked: boolean;\n control: HTMLElement | null;\n bubbles: boolean;\n}\n\nconst BubbleInput = (props: BubbleInputProps) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'checked') as PropertyDescriptor;\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n\n return (\n <input\n type=\"radio\"\n aria-hidden\n defaultChecked={checked}\n {...inputProps}\n tabIndex={-1}\n ref={ref}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n }}\n />\n );\n};\n\nfunction getState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createRadioScope,\n //\n Radio,\n RadioIndicator,\n};\nexport type { RadioProps };\n"],"names":["createRadioGroupScope","RadioGroup","RadioGroupItem","RadioGroupIndicator","Root","Item","Indicator","React","composeEventHandlers","useComposedRefs","createContextScope","Primitive","RovingFocusGroup","createRovingFocusGroupScope","useControllableState","useDirection","Radio","RadioIndicator","createRadioScope","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContet","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","forwardRef","props","forwardedRef","__scopeRadioGroup","name","defaultValue","value","valueProp","required","orientation","dir","loop","onValueChange","groupProps","rovingFocusGroupScope","direction","setValue","prop","defaultProp","onChange","ITEM_NAME","disabled","itemProps","context","radioScope","ref","useRef","composedRefs","checked","isArrowKeyPressedRef","useEffect","handleKeyDown","event","includes","key","current","handleKeyUp","document","addEventListener","removeEventListener","preventDefault","onFocus","click","INDICATOR_NAME","indicatorProps","useSize","usePrevious","Presence","RADIO_NAME","createRadioContext","RadioProvider","useRadioContext","__scopeRadio","onCheck","radioProps","button","setButton","useState","node","hasConsumerStoppedPropagationRef","isFormControl","Boolean","closest","getState","undefined","onClick","isPropagationStopped","stopPropagation","transform","forceMount","BubbleInput","control","bubbles","inputProps","prevChecked","controlSize","input","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setChecked","set","Event","call","dispatchEvent","style","position","pointerEvents","opacity","margin"],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/react/radio-group/src/index.ts","packages/react/radio-group/src/RadioGroup.tsx","packages/react/radio-group/src/Radio.tsx"],"sourcesContent":["export {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n} from './RadioGroup';\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps } from './RadioGroup';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Radio, RadioIndicator, createRadioScope } from './Radio';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroup\n * -----------------------------------------------------------------------------------------------*/\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps<P> = P & { __scopeRadioGroup?: Scope };\nconst [createRadioGroupContext, createRadioGroupScope] = createContextScope(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\nconst useRadioScope = createRadioScope();\n\ntype RadioGroupContextValue = {\n name?: string;\n required: boolean;\n disabled: boolean;\n value?: string;\n onValueChange(value: string): void;\n};\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContext<RadioGroupContextValue>(RADIO_GROUP_NAME);\n\ntype RadioGroupElement = React.ElementRef<typeof Primitive.div>;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef<typeof RovingFocusGroup.Root>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface RadioGroupProps extends PrimitiveDivProps {\n name?: RadioGroupContextValue['name'];\n required?: Radix.ComponentPropsWithoutRef<typeof Radio>['required'];\n disabled?: Radix.ComponentPropsWithoutRef<typeof Radio>['disabled'];\n dir?: RovingFocusGroupProps['dir'];\n orientation?: RovingFocusGroupProps['orientation'];\n loop?: RovingFocusGroupProps['loop'];\n defaultValue?: string;\n value?: RadioGroupContextValue['value'];\n onValueChange?: RadioGroupContextValue['onValueChange'];\n}\n\nconst RadioGroup = React.forwardRef<RadioGroupElement, RadioGroupProps>(\n (props: ScopedProps<RadioGroupProps>, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n });\n\n return (\n <RadioGroupProvider\n scope={__scopeRadioGroup}\n name={name}\n required={required}\n disabled={disabled}\n value={value}\n onValueChange={setValue}\n >\n <RovingFocusGroup.Root\n asChild\n {...rovingFocusGroupScope}\n orientation={orientation}\n dir={direction}\n loop={loop}\n >\n <Primitive.div\n role=\"radiogroup\"\n aria-required={required}\n aria-orientation={orientation}\n data-disabled={disabled ? '' : undefined}\n dir={direction}\n {...groupProps}\n ref={forwardedRef}\n />\n </RovingFocusGroup.Root>\n </RadioGroupProvider>\n );\n }\n);\n\nRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RadioGroupItem';\n\ntype RadioGroupItemElement = React.ElementRef<typeof Radio>;\ntype RadioProps = Radix.ComponentPropsWithoutRef<typeof Radio>;\ninterface RadioGroupItemProps extends Omit<RadioProps, 'onCheck' | 'name'> {\n value: string;\n}\n\nconst RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(\n (props: ScopedProps<RadioGroupItemProps>, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React.useRef<React.ElementRef<typeof Radio>>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => (isArrowKeyPressedRef.current = false);\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n\n return (\n <RovingFocusGroup.Item\n asChild\n {...rovingFocusGroupScope}\n focusable={!isDisabled}\n active={checked}\n >\n <Radio\n disabled={isDisabled}\n required={context.required}\n checked={checked}\n {...radioScope}\n {...itemProps}\n name={context.name}\n ref={composedRefs}\n onCheck={() => context.onValueChange(itemProps.value)}\n onKeyDown={composeEventHandlers((event) => {\n // According to WAI ARIA, radio groups don't activate items on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onFocus={composeEventHandlers(itemProps.onFocus, () => {\n /**\n * Our `RovingFocusGroup` will focus the radio when navigating with arrow keys\n * and we need to \"check\" it in that case. We click it to \"check\" it (instead\n * of updating `context.value`) so that the radio change event fires.\n */\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })}\n />\n </RovingFocusGroup.Item>\n );\n }\n);\n\nRadioGroupItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioGroupIndicator';\n\ntype RadioGroupIndicatorElement = React.ElementRef<typeof RadioIndicator>;\ntype RadioIndicatorProps = Radix.ComponentPropsWithoutRef<typeof RadioIndicator>;\ninterface RadioGroupIndicatorProps extends RadioIndicatorProps {}\n\nconst RadioGroupIndicator = React.forwardRef<RadioGroupIndicatorElement, RadioGroupIndicatorProps>(\n (props: ScopedProps<RadioGroupIndicatorProps>, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return <RadioIndicator {...radioScope} {...indicatorProps} ref={forwardedRef} />;\n }\n);\n\nRadioGroupIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = RadioGroup;\nconst Item = RadioGroupItem;\nconst Indicator = RadioGroupIndicator;\n\nexport {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n};\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Radio\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_NAME = 'Radio';\n\ntype ScopedProps<P> = P & { __scopeRadio?: Scope };\nconst [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\n\ntype RadioContextValue = { checked: boolean; disabled?: boolean };\nconst [RadioProvider, useRadioContext] = createRadioContext<RadioContextValue>(RADIO_NAME);\n\ntype RadioElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface RadioProps extends PrimitiveButtonProps {\n checked?: boolean;\n required?: boolean;\n onCheck?(): void;\n}\n\nconst Radio = React.forwardRef<RadioElement, RadioProps>(\n (props: ScopedProps<RadioProps>, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = 'on',\n onCheck,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState<HTMLButtonElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? Boolean(button.closest('form')) : true;\n\n return (\n <RadioProvider scope={__scopeRadio} checked={checked} disabled={disabled}>\n <Primitive.button\n type=\"button\"\n role=\"radio\"\n aria-checked={checked}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...radioProps}\n ref={composedRefs}\n onClick={composeEventHandlers(props.onClick, (event) => {\n // radios cannot be unchecked so we only communicate a checked state\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if radio is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect radio updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n {isFormControl && (\n <BubbleInput\n control={button}\n bubbles={!hasConsumerStoppedPropagationRef.current}\n name={name}\n value={value}\n checked={checked}\n required={required}\n disabled={disabled}\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n style={{ transform: 'translateX(-100%)' }}\n />\n )}\n </RadioProvider>\n );\n }\n);\n\nRadio.displayName = RADIO_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioIndicator';\n\ntype RadioIndicatorElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\nexport interface RadioIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst RadioIndicator = React.forwardRef<RadioIndicatorElement, RadioIndicatorProps>(\n (props: ScopedProps<RadioIndicatorProps>, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return (\n <Presence present={forceMount || context.checked}>\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nRadioIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype InputProps = Radix.ComponentPropsWithoutRef<'input'>;\ninterface BubbleInputProps extends Omit<InputProps, 'checked'> {\n checked: boolean;\n control: HTMLElement | null;\n bubbles: boolean;\n}\n\nconst BubbleInput = (props: BubbleInputProps) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'checked') as PropertyDescriptor;\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n\n return (\n <input\n type=\"radio\"\n aria-hidden\n defaultChecked={checked}\n {...inputProps}\n tabIndex={-1}\n ref={ref}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n }}\n />\n );\n};\n\nfunction getState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createRadioScope,\n //\n Radio,\n RadioIndicator,\n};\nexport type { RadioProps };\n"],"names":["createRadioGroupScope","RadioGroup","RadioGroupItem","RadioGroupIndicator","Root","Item","Indicator","React","composeEventHandlers","useComposedRefs","createContextScope","Primitive","RovingFocusGroup","createRovingFocusGroupScope","useControllableState","useDirection","Radio","RadioIndicator","createRadioScope","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContext","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","forwardRef","props","forwardedRef","__scopeRadioGroup","name","defaultValue","value","valueProp","required","disabled","orientation","dir","loop","onValueChange","groupProps","rovingFocusGroupScope","direction","setValue","prop","defaultProp","onChange","undefined","ITEM_NAME","itemProps","context","isDisabled","radioScope","ref","useRef","composedRefs","checked","isArrowKeyPressedRef","useEffect","handleKeyDown","event","includes","key","current","handleKeyUp","document","addEventListener","removeEventListener","preventDefault","onFocus","click","INDICATOR_NAME","indicatorProps","useSize","usePrevious","Presence","RADIO_NAME","createRadioContext","RadioProvider","useRadioContext","__scopeRadio","onCheck","radioProps","button","setButton","useState","node","hasConsumerStoppedPropagationRef","isFormControl","Boolean","closest","getState","onClick","isPropagationStopped","stopPropagation","transform","forceMount","BubbleInput","control","bubbles","inputProps","prevChecked","controlSize","input","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setChecked","set","Event","call","dispatchEvent","style","position","pointerEvents","opacity","margin"],"version":3,"file":"index.js.map"}
|
package/dist/index.module.js
CHANGED
|
@@ -154,15 +154,15 @@ const $f99a8c78507165f7$var$ARROW_KEYS = [
|
|
|
154
154
|
/* -------------------------------------------------------------------------------------------------
|
|
155
155
|
* RadioGroup
|
|
156
156
|
* -----------------------------------------------------------------------------------------------*/ const $f99a8c78507165f7$var$RADIO_GROUP_NAME = 'RadioGroup';
|
|
157
|
-
const [$f99a8c78507165f7$var$
|
|
157
|
+
const [$f99a8c78507165f7$var$createRadioGroupContext, $f99a8c78507165f7$export$c547093f11b76da2] = $8Wolv$createContextScope($f99a8c78507165f7$var$RADIO_GROUP_NAME, [
|
|
158
158
|
$8Wolv$createRovingFocusGroupScope,
|
|
159
159
|
$ce77a8961b41be9e$export$67d2296460f1b002
|
|
160
160
|
]);
|
|
161
161
|
const $f99a8c78507165f7$var$useRovingFocusGroupScope = $8Wolv$createRovingFocusGroupScope();
|
|
162
162
|
const $f99a8c78507165f7$var$useRadioScope = $ce77a8961b41be9e$export$67d2296460f1b002();
|
|
163
|
-
const [$f99a8c78507165f7$var$RadioGroupProvider, $f99a8c78507165f7$var$useRadioGroupContext] = $f99a8c78507165f7$var$
|
|
163
|
+
const [$f99a8c78507165f7$var$RadioGroupProvider, $f99a8c78507165f7$var$useRadioGroupContext] = $f99a8c78507165f7$var$createRadioGroupContext($f99a8c78507165f7$var$RADIO_GROUP_NAME);
|
|
164
164
|
const $f99a8c78507165f7$export$a98f0dcb43a68a25 = /*#__PURE__*/ $8Wolv$forwardRef((props, forwardedRef)=>{
|
|
165
|
-
const { __scopeRadioGroup: __scopeRadioGroup , name: name , defaultValue: defaultValue , value: valueProp , required: required = false , orientation: orientation , dir: dir , loop: loop = true , onValueChange: onValueChange , ...groupProps } = props;
|
|
165
|
+
const { __scopeRadioGroup: __scopeRadioGroup , name: name , defaultValue: defaultValue , value: valueProp , required: required = false , disabled: disabled = false , orientation: orientation , dir: dir , loop: loop = true , onValueChange: onValueChange , ...groupProps } = props;
|
|
166
166
|
const rovingFocusGroupScope = $f99a8c78507165f7$var$useRovingFocusGroupScope(__scopeRadioGroup);
|
|
167
167
|
const direction = $8Wolv$useDirection(dir);
|
|
168
168
|
const [value, setValue] = $8Wolv$useControllableState({
|
|
@@ -174,6 +174,7 @@ const $f99a8c78507165f7$export$a98f0dcb43a68a25 = /*#__PURE__*/ $8Wolv$forwardRe
|
|
|
174
174
|
scope: __scopeRadioGroup,
|
|
175
175
|
name: name,
|
|
176
176
|
required: required,
|
|
177
|
+
disabled: disabled,
|
|
177
178
|
value: value,
|
|
178
179
|
onValueChange: setValue
|
|
179
180
|
}, /*#__PURE__*/ $8Wolv$createElement($8Wolv$Root, $8Wolv$babelruntimehelpersesmextends({
|
|
@@ -186,6 +187,7 @@ const $f99a8c78507165f7$export$a98f0dcb43a68a25 = /*#__PURE__*/ $8Wolv$forwardRe
|
|
|
186
187
|
role: "radiogroup",
|
|
187
188
|
"aria-required": required,
|
|
188
189
|
"aria-orientation": orientation,
|
|
190
|
+
"data-disabled": disabled ? '' : undefined,
|
|
189
191
|
dir: direction
|
|
190
192
|
}, groupProps, {
|
|
191
193
|
ref: forwardedRef
|
|
@@ -200,6 +202,7 @@ const $f99a8c78507165f7$export$a98f0dcb43a68a25 = /*#__PURE__*/ $8Wolv$forwardRe
|
|
|
200
202
|
const $f99a8c78507165f7$export$9f866c100ef519e4 = /*#__PURE__*/ $8Wolv$forwardRef((props, forwardedRef)=>{
|
|
201
203
|
const { __scopeRadioGroup: __scopeRadioGroup , disabled: disabled , ...itemProps } = props;
|
|
202
204
|
const context = $f99a8c78507165f7$var$useRadioGroupContext($f99a8c78507165f7$var$ITEM_NAME, __scopeRadioGroup);
|
|
205
|
+
const isDisabled = context.disabled || disabled;
|
|
203
206
|
const rovingFocusGroupScope = $f99a8c78507165f7$var$useRovingFocusGroupScope(__scopeRadioGroup);
|
|
204
207
|
const radioScope = $f99a8c78507165f7$var$useRadioScope(__scopeRadioGroup);
|
|
205
208
|
const ref = $8Wolv$useRef(null);
|
|
@@ -222,10 +225,10 @@ const $f99a8c78507165f7$export$9f866c100ef519e4 = /*#__PURE__*/ $8Wolv$forwardRe
|
|
|
222
225
|
return /*#__PURE__*/ $8Wolv$createElement($8Wolv$Item, $8Wolv$babelruntimehelpersesmextends({
|
|
223
226
|
asChild: true
|
|
224
227
|
}, rovingFocusGroupScope, {
|
|
225
|
-
focusable: !
|
|
228
|
+
focusable: !isDisabled,
|
|
226
229
|
active: checked
|
|
227
230
|
}), /*#__PURE__*/ $8Wolv$createElement($ce77a8961b41be9e$export$d7b12c4107be0d61, $8Wolv$babelruntimehelpersesmextends({
|
|
228
|
-
disabled:
|
|
231
|
+
disabled: isDisabled,
|
|
229
232
|
required: context.required,
|
|
230
233
|
checked: checked
|
|
231
234
|
}, radioScope, itemProps, {
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/react/radio-group/src/index.ts","packages/react/radio-group/src/RadioGroup.tsx","packages/react/radio-group/src/Radio.tsx"],"sourcesContent":["export {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n} from './RadioGroup';\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps } from './RadioGroup';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Radio, RadioIndicator, createRadioScope } from './Radio';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroup\n * -----------------------------------------------------------------------------------------------*/\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps<P> = P & { __scopeRadioGroup?: Scope };\nconst [createRadioGroupContet, createRadioGroupScope] = createContextScope(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\nconst useRadioScope = createRadioScope();\n\ntype RadioGroupContextValue = {\n name?: string;\n required: boolean;\n value?: string;\n onValueChange(value: string): void;\n};\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContet<RadioGroupContextValue>(RADIO_GROUP_NAME);\n\ntype RadioGroupElement = React.ElementRef<typeof Primitive.div>;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef<typeof RovingFocusGroup.Root>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface RadioGroupProps extends PrimitiveDivProps {\n name?: RadioGroupContextValue['name'];\n required?: Radix.ComponentPropsWithoutRef<typeof Radio>['required'];\n dir?: RovingFocusGroupProps['dir'];\n orientation?: RovingFocusGroupProps['orientation'];\n loop?: RovingFocusGroupProps['loop'];\n defaultValue?: string;\n value?: RadioGroupContextValue['value'];\n onValueChange?: RadioGroupContextValue['onValueChange'];\n}\n\nconst RadioGroup = React.forwardRef<RadioGroupElement, RadioGroupProps>(\n (props: ScopedProps<RadioGroupProps>, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n });\n\n return (\n <RadioGroupProvider\n scope={__scopeRadioGroup}\n name={name}\n required={required}\n value={value}\n onValueChange={setValue}\n >\n <RovingFocusGroup.Root\n asChild\n {...rovingFocusGroupScope}\n orientation={orientation}\n dir={direction}\n loop={loop}\n >\n <Primitive.div\n role=\"radiogroup\"\n aria-required={required}\n aria-orientation={orientation}\n dir={direction}\n {...groupProps}\n ref={forwardedRef}\n />\n </RovingFocusGroup.Root>\n </RadioGroupProvider>\n );\n }\n);\n\nRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RadioGroupItem';\n\ntype RadioGroupItemElement = React.ElementRef<typeof Radio>;\ntype RadioProps = Radix.ComponentPropsWithoutRef<typeof Radio>;\ninterface RadioGroupItemProps extends Omit<RadioProps, 'onCheck' | 'name'> {\n value: string;\n}\n\nconst RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(\n (props: ScopedProps<RadioGroupItemProps>, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React.useRef<React.ElementRef<typeof Radio>>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => (isArrowKeyPressedRef.current = false);\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n\n return (\n <RovingFocusGroup.Item\n asChild\n {...rovingFocusGroupScope}\n focusable={!disabled}\n active={checked}\n >\n <Radio\n disabled={disabled}\n required={context.required}\n checked={checked}\n {...radioScope}\n {...itemProps}\n name={context.name}\n ref={composedRefs}\n onCheck={() => context.onValueChange(itemProps.value)}\n onKeyDown={composeEventHandlers((event) => {\n // According to WAI ARIA, radio groups don't activate items on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onFocus={composeEventHandlers(itemProps.onFocus, () => {\n /**\n * Our `RovingFocusGroup` will focus the radio when navigating with arrow keys\n * and we need to \"check\" it in that case. We click it to \"check\" it (instead\n * of updating `context.value`) so that the radio change event fires.\n */\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })}\n />\n </RovingFocusGroup.Item>\n );\n }\n);\n\nRadioGroupItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioGroupIndicator';\n\ntype RadioGroupIndicatorElement = React.ElementRef<typeof RadioIndicator>;\ntype RadioIndicatorProps = Radix.ComponentPropsWithoutRef<typeof RadioIndicator>;\ninterface RadioGroupIndicatorProps extends RadioIndicatorProps {}\n\nconst RadioGroupIndicator = React.forwardRef<RadioGroupIndicatorElement, RadioGroupIndicatorProps>(\n (props: ScopedProps<RadioGroupIndicatorProps>, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return <RadioIndicator {...radioScope} {...indicatorProps} ref={forwardedRef} />;\n }\n);\n\nRadioGroupIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = RadioGroup;\nconst Item = RadioGroupItem;\nconst Indicator = RadioGroupIndicator;\n\nexport {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n};\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Radio\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_NAME = 'Radio';\n\ntype ScopedProps<P> = P & { __scopeRadio?: Scope };\nconst [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\n\ntype RadioContextValue = { checked: boolean; disabled?: boolean };\nconst [RadioProvider, useRadioContext] = createRadioContext<RadioContextValue>(RADIO_NAME);\n\ntype RadioElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface RadioProps extends PrimitiveButtonProps {\n checked?: boolean;\n required?: boolean;\n onCheck?(): void;\n}\n\nconst Radio = React.forwardRef<RadioElement, RadioProps>(\n (props: ScopedProps<RadioProps>, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = 'on',\n onCheck,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState<HTMLButtonElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? Boolean(button.closest('form')) : true;\n\n return (\n <RadioProvider scope={__scopeRadio} checked={checked} disabled={disabled}>\n <Primitive.button\n type=\"button\"\n role=\"radio\"\n aria-checked={checked}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...radioProps}\n ref={composedRefs}\n onClick={composeEventHandlers(props.onClick, (event) => {\n // radios cannot be unchecked so we only communicate a checked state\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if radio is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect radio updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n {isFormControl && (\n <BubbleInput\n control={button}\n bubbles={!hasConsumerStoppedPropagationRef.current}\n name={name}\n value={value}\n checked={checked}\n required={required}\n disabled={disabled}\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n style={{ transform: 'translateX(-100%)' }}\n />\n )}\n </RadioProvider>\n );\n }\n);\n\nRadio.displayName = RADIO_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioIndicator';\n\ntype RadioIndicatorElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\nexport interface RadioIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst RadioIndicator = React.forwardRef<RadioIndicatorElement, RadioIndicatorProps>(\n (props: ScopedProps<RadioIndicatorProps>, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return (\n <Presence present={forceMount || context.checked}>\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nRadioIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype InputProps = Radix.ComponentPropsWithoutRef<'input'>;\ninterface BubbleInputProps extends Omit<InputProps, 'checked'> {\n checked: boolean;\n control: HTMLElement | null;\n bubbles: boolean;\n}\n\nconst BubbleInput = (props: BubbleInputProps) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'checked') as PropertyDescriptor;\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n\n return (\n <input\n type=\"radio\"\n aria-hidden\n defaultChecked={checked}\n {...inputProps}\n tabIndex={-1}\n ref={ref}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n }}\n />\n );\n};\n\nfunction getState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createRadioScope,\n //\n Radio,\n RadioIndicator,\n};\nexport type { RadioProps };\n"],"names":["createRadioGroupScope","RadioGroup","RadioGroupItem","RadioGroupIndicator","Root","Item","Indicator","React","composeEventHandlers","useComposedRefs","createContextScope","Primitive","RovingFocusGroup","createRovingFocusGroupScope","useControllableState","useDirection","Radio","RadioIndicator","createRadioScope","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContet","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","forwardRef","props","forwardedRef","__scopeRadioGroup","name","defaultValue","value","valueProp","required","orientation","dir","loop","onValueChange","groupProps","rovingFocusGroupScope","direction","setValue","prop","defaultProp","onChange","ITEM_NAME","disabled","itemProps","context","radioScope","ref","useRef","composedRefs","checked","isArrowKeyPressedRef","useEffect","handleKeyDown","event","includes","key","current","handleKeyUp","document","addEventListener","removeEventListener","preventDefault","onFocus","click","INDICATOR_NAME","indicatorProps","useSize","usePrevious","Presence","RADIO_NAME","createRadioContext","RadioProvider","useRadioContext","__scopeRadio","onCheck","radioProps","button","setButton","useState","node","hasConsumerStoppedPropagationRef","isFormControl","Boolean","closest","getState","undefined","onClick","isPropagationStopped","stopPropagation","transform","forceMount","BubbleInput","control","bubbles","inputProps","prevChecked","controlSize","input","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setChecked","set","Event","call","dispatchEvent","style","position","pointerEvents","opacity","margin"],"version":3,"file":"index.module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/react/radio-group/src/index.ts","packages/react/radio-group/src/RadioGroup.tsx","packages/react/radio-group/src/Radio.tsx"],"sourcesContent":["export {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n} from './RadioGroup';\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps } from './RadioGroup';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Radio, RadioIndicator, createRadioScope } from './Radio';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroup\n * -----------------------------------------------------------------------------------------------*/\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps<P> = P & { __scopeRadioGroup?: Scope };\nconst [createRadioGroupContext, createRadioGroupScope] = createContextScope(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\nconst useRadioScope = createRadioScope();\n\ntype RadioGroupContextValue = {\n name?: string;\n required: boolean;\n disabled: boolean;\n value?: string;\n onValueChange(value: string): void;\n};\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContext<RadioGroupContextValue>(RADIO_GROUP_NAME);\n\ntype RadioGroupElement = React.ElementRef<typeof Primitive.div>;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef<typeof RovingFocusGroup.Root>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface RadioGroupProps extends PrimitiveDivProps {\n name?: RadioGroupContextValue['name'];\n required?: Radix.ComponentPropsWithoutRef<typeof Radio>['required'];\n disabled?: Radix.ComponentPropsWithoutRef<typeof Radio>['disabled'];\n dir?: RovingFocusGroupProps['dir'];\n orientation?: RovingFocusGroupProps['orientation'];\n loop?: RovingFocusGroupProps['loop'];\n defaultValue?: string;\n value?: RadioGroupContextValue['value'];\n onValueChange?: RadioGroupContextValue['onValueChange'];\n}\n\nconst RadioGroup = React.forwardRef<RadioGroupElement, RadioGroupProps>(\n (props: ScopedProps<RadioGroupProps>, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n });\n\n return (\n <RadioGroupProvider\n scope={__scopeRadioGroup}\n name={name}\n required={required}\n disabled={disabled}\n value={value}\n onValueChange={setValue}\n >\n <RovingFocusGroup.Root\n asChild\n {...rovingFocusGroupScope}\n orientation={orientation}\n dir={direction}\n loop={loop}\n >\n <Primitive.div\n role=\"radiogroup\"\n aria-required={required}\n aria-orientation={orientation}\n data-disabled={disabled ? '' : undefined}\n dir={direction}\n {...groupProps}\n ref={forwardedRef}\n />\n </RovingFocusGroup.Root>\n </RadioGroupProvider>\n );\n }\n);\n\nRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RadioGroupItem';\n\ntype RadioGroupItemElement = React.ElementRef<typeof Radio>;\ntype RadioProps = Radix.ComponentPropsWithoutRef<typeof Radio>;\ninterface RadioGroupItemProps extends Omit<RadioProps, 'onCheck' | 'name'> {\n value: string;\n}\n\nconst RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(\n (props: ScopedProps<RadioGroupItemProps>, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React.useRef<React.ElementRef<typeof Radio>>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => (isArrowKeyPressedRef.current = false);\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n\n return (\n <RovingFocusGroup.Item\n asChild\n {...rovingFocusGroupScope}\n focusable={!isDisabled}\n active={checked}\n >\n <Radio\n disabled={isDisabled}\n required={context.required}\n checked={checked}\n {...radioScope}\n {...itemProps}\n name={context.name}\n ref={composedRefs}\n onCheck={() => context.onValueChange(itemProps.value)}\n onKeyDown={composeEventHandlers((event) => {\n // According to WAI ARIA, radio groups don't activate items on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onFocus={composeEventHandlers(itemProps.onFocus, () => {\n /**\n * Our `RovingFocusGroup` will focus the radio when navigating with arrow keys\n * and we need to \"check\" it in that case. We click it to \"check\" it (instead\n * of updating `context.value`) so that the radio change event fires.\n */\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })}\n />\n </RovingFocusGroup.Item>\n );\n }\n);\n\nRadioGroupItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioGroupIndicator';\n\ntype RadioGroupIndicatorElement = React.ElementRef<typeof RadioIndicator>;\ntype RadioIndicatorProps = Radix.ComponentPropsWithoutRef<typeof RadioIndicator>;\ninterface RadioGroupIndicatorProps extends RadioIndicatorProps {}\n\nconst RadioGroupIndicator = React.forwardRef<RadioGroupIndicatorElement, RadioGroupIndicatorProps>(\n (props: ScopedProps<RadioGroupIndicatorProps>, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return <RadioIndicator {...radioScope} {...indicatorProps} ref={forwardedRef} />;\n }\n);\n\nRadioGroupIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = RadioGroup;\nconst Item = RadioGroupItem;\nconst Indicator = RadioGroupIndicator;\n\nexport {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n};\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Radio\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_NAME = 'Radio';\n\ntype ScopedProps<P> = P & { __scopeRadio?: Scope };\nconst [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\n\ntype RadioContextValue = { checked: boolean; disabled?: boolean };\nconst [RadioProvider, useRadioContext] = createRadioContext<RadioContextValue>(RADIO_NAME);\n\ntype RadioElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface RadioProps extends PrimitiveButtonProps {\n checked?: boolean;\n required?: boolean;\n onCheck?(): void;\n}\n\nconst Radio = React.forwardRef<RadioElement, RadioProps>(\n (props: ScopedProps<RadioProps>, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = 'on',\n onCheck,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState<HTMLButtonElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? Boolean(button.closest('form')) : true;\n\n return (\n <RadioProvider scope={__scopeRadio} checked={checked} disabled={disabled}>\n <Primitive.button\n type=\"button\"\n role=\"radio\"\n aria-checked={checked}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...radioProps}\n ref={composedRefs}\n onClick={composeEventHandlers(props.onClick, (event) => {\n // radios cannot be unchecked so we only communicate a checked state\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if radio is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect radio updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n {isFormControl && (\n <BubbleInput\n control={button}\n bubbles={!hasConsumerStoppedPropagationRef.current}\n name={name}\n value={value}\n checked={checked}\n required={required}\n disabled={disabled}\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n style={{ transform: 'translateX(-100%)' }}\n />\n )}\n </RadioProvider>\n );\n }\n);\n\nRadio.displayName = RADIO_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioIndicator';\n\ntype RadioIndicatorElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\nexport interface RadioIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst RadioIndicator = React.forwardRef<RadioIndicatorElement, RadioIndicatorProps>(\n (props: ScopedProps<RadioIndicatorProps>, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return (\n <Presence present={forceMount || context.checked}>\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nRadioIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype InputProps = Radix.ComponentPropsWithoutRef<'input'>;\ninterface BubbleInputProps extends Omit<InputProps, 'checked'> {\n checked: boolean;\n control: HTMLElement | null;\n bubbles: boolean;\n}\n\nconst BubbleInput = (props: BubbleInputProps) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'checked') as PropertyDescriptor;\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n\n return (\n <input\n type=\"radio\"\n aria-hidden\n defaultChecked={checked}\n {...inputProps}\n tabIndex={-1}\n ref={ref}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n }}\n />\n );\n};\n\nfunction getState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createRadioScope,\n //\n Radio,\n RadioIndicator,\n};\nexport type { RadioProps };\n"],"names":["createRadioGroupScope","RadioGroup","RadioGroupItem","RadioGroupIndicator","Root","Item","Indicator","React","composeEventHandlers","useComposedRefs","createContextScope","Primitive","RovingFocusGroup","createRovingFocusGroupScope","useControllableState","useDirection","Radio","RadioIndicator","createRadioScope","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContext","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","forwardRef","props","forwardedRef","__scopeRadioGroup","name","defaultValue","value","valueProp","required","disabled","orientation","dir","loop","onValueChange","groupProps","rovingFocusGroupScope","direction","setValue","prop","defaultProp","onChange","undefined","ITEM_NAME","itemProps","context","isDisabled","radioScope","ref","useRef","composedRefs","checked","isArrowKeyPressedRef","useEffect","handleKeyDown","event","includes","key","current","handleKeyUp","document","addEventListener","removeEventListener","preventDefault","onFocus","click","INDICATOR_NAME","indicatorProps","useSize","usePrevious","Presence","RADIO_NAME","createRadioContext","RadioProvider","useRadioContext","__scopeRadio","onCheck","radioProps","button","setButton","useState","node","hasConsumerStoppedPropagationRef","isFormControl","Boolean","closest","getState","onClick","isPropagationStopped","stopPropagation","transform","forceMount","BubbleInput","control","bubbles","inputProps","prevChecked","controlSize","input","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setChecked","set","Event","call","dispatchEvent","style","position","pointerEvents","opacity","margin"],"version":3,"file":"index.module.js.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@radix-ui/react-radio-group",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0-rc.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"@radix-ui/react-context": "1.0.0",
|
|
23
23
|
"@radix-ui/react-direction": "1.0.0",
|
|
24
24
|
"@radix-ui/react-presence": "1.0.0",
|
|
25
|
-
"@radix-ui/react-primitive": "1.0.1-rc.
|
|
26
|
-
"@radix-ui/react-roving-focus": "1.0.1-rc.
|
|
25
|
+
"@radix-ui/react-primitive": "1.0.1-rc.8",
|
|
26
|
+
"@radix-ui/react-roving-focus": "1.0.1-rc.8",
|
|
27
27
|
"@radix-ui/react-use-controllable-state": "1.0.0",
|
|
28
28
|
"@radix-ui/react-use-previous": "1.0.0",
|
|
29
29
|
"@radix-ui/react-use-size": "1.0.0"
|