@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
82 lines (78 loc) • 2.39 kB
JavaScript
"use client";
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
const require_group = require('../group/group.cjs');
const require_use_radio_group = require('./use-radio-group.cjs');
const require_radio = require('./radio.cjs');
let react = require("react");
react = require_rolldown_runtime.__toESM(react);
let react_jsx_runtime = require("react/jsx-runtime");
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
//#region src/components/radio/radio-group.tsx
/**
* `RadioGroup` is a component that groups `Radio` components.
*
* @see https://yamada-ui.com/docs/components/radio
*/
const RadioGroupRoot = require_radio.component((props) => {
const [, { colorScheme, size, variant, children, disabled, errorBorderColor, focusBorderColor, invalid, items = [], readOnly, shape,...rest }] = require_radio.useRootComponentProps(props, "group", { transferProps: [
"variant",
"colorScheme",
"size",
"shape"
] });
const { name, value, getInputProps, getLabelProps, getRootProps, onChange } = require_use_radio_group.useRadioGroup(rest);
const computedChildren = (0, react.useMemo)(() => {
if (children) return children;
return items.map(({ label, value: value$1,...rest$1 }, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_radio.Radio, {
value: value$1,
...rest$1,
children: label
}, value$1 ?? index));
}, [items, children]);
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_radio.RadioPropsContext, {
value: (0, react.useMemo)(() => ({
colorScheme,
size,
variant,
disabled,
errorBorderColor,
focusBorderColor,
invalid,
readOnly,
shape
}), [
variant,
size,
colorScheme,
shape,
disabled,
invalid,
readOnly,
errorBorderColor,
focusBorderColor
]),
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_use_radio_group.RadioGroupContext, {
value: (0, react.useMemo)(() => ({
name,
value,
getInputProps,
getLabelProps,
onChange
}), [
name,
value,
getInputProps,
getLabelProps,
onChange
]),
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_group.Group, {
orientation: "vertical",
...getRootProps(),
children: computedChildren
})
})
});
}, "group")();
//#endregion
exports.RadioGroupRoot = RadioGroupRoot;
//# sourceMappingURL=radio-group.cjs.map