UNPKG

@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
"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