@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
58 lines (54 loc) • 2.49 kB
JavaScript
"use client";
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
const require_factory = require('../../core/system/factory.cjs');
const require_create_component = require('../../core/components/create-component.cjs');
const require_use_input_border = require('../input/use-input-border.cjs');
const require_radio_style = require('./radio.style.cjs');
const require_use_radio = require('./use-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.tsx
const { component, PropsContext: RadioPropsContext, usePropsContext: useRadioPropsContext, withContext, withProvider, useRootComponentProps } = require_create_component.createSlotComponent("radio", require_radio_style.radioStyle);
/**
* `Radio` is a component used for allowing users to select one option from multiple choices.
*
* @see https://yamada-ui.com/docs/components/radio
*/
const Radio = withProvider(({ children, errorBorderColor, focusBorderColor, indicatorProps, inputProps, labelProps, rootProps,...rest }) => {
const { getIndicatorProps, getInputProps, getRootProps } = require_use_radio.useRadio(rest);
const varProps = require_use_input_border.useInputBorder({
errorBorderColor,
focusBorderColor
});
const input = (0, react.useMemo)(() => {
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.styled.input, { ...getInputProps(inputProps) });
}, [getInputProps, inputProps]);
const indicator = (0, react.useMemo)(() => {
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RadioIndicator, { ...getIndicatorProps(indicatorProps) });
}, [getIndicatorProps, indicatorProps]);
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_factory.styled.label, {
...getRootProps({
...varProps,
...rootProps
}),
children: [
input,
indicator,
children ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RadioLabel, {
...labelProps,
children
}) : null
]
});
}, "root")();
const RadioIndicator = withContext("div", "indicator")();
const RadioLabel = withContext("span", "label")();
//#endregion
exports.Radio = Radio;
exports.RadioPropsContext = RadioPropsContext;
exports.component = component;
exports.useRadioPropsContext = useRadioPropsContext;
exports.useRootComponentProps = useRootComponentProps;
//# sourceMappingURL=radio.cjs.map