Files
wdi-dashboard/node_modules/@chakra-ui/radio/dist/chunk-RDF2AYID.mjs
2024-08-16 15:06:52 +05:30

122 lines
3.1 KiB
JavaScript

'use client'
import {
useRadio
} from "./chunk-2WQJ2JCV.mjs";
import {
useRadioGroupContext
} from "./chunk-FESYGSQT.mjs";
// src/radio.tsx
import {
chakra,
forwardRef,
layoutPropNames,
omitThemingProps,
useMultiStyleConfig
} from "@chakra-ui/system";
import { callAll } from "@chakra-ui/shared-utils";
// ../../utilities/object-utils/src/split.ts
function split(object, keys) {
const picked = {};
const omitted = {};
for (const [key, value] of Object.entries(object)) {
if (keys.includes(key))
picked[key] = value;
else
omitted[key] = value;
}
return [picked, omitted];
}
// src/radio.tsx
import { jsx, jsxs } from "react/jsx-runtime";
var Radio = forwardRef((props, ref) => {
var _a;
const group = useRadioGroupContext();
const { onChange: onChangeProp, value: valueProp } = props;
const styles = useMultiStyleConfig("Radio", { ...group, ...props });
const ownProps = omitThemingProps(props);
const {
spacing = "0.5rem",
children,
isDisabled = group == null ? void 0 : group.isDisabled,
isFocusable = group == null ? void 0 : group.isFocusable,
inputProps: htmlInputProps,
...rest
} = ownProps;
let isChecked = props.isChecked;
if ((group == null ? void 0 : group.value) != null && valueProp != null) {
isChecked = group.value === valueProp;
}
let onChange = onChangeProp;
if ((group == null ? void 0 : group.onChange) && valueProp != null) {
onChange = callAll(group.onChange, onChangeProp);
}
const name = (_a = props == null ? void 0 : props.name) != null ? _a : group == null ? void 0 : group.name;
const {
getInputProps,
getCheckboxProps,
getLabelProps,
getRootProps,
htmlProps
} = useRadio({
...rest,
isChecked,
isFocusable,
isDisabled,
onChange,
name
});
const [layoutProps, otherProps] = split(htmlProps, layoutPropNames);
const checkboxProps = getCheckboxProps(otherProps);
const inputProps = getInputProps(htmlInputProps, ref);
const labelProps = getLabelProps();
const rootProps = Object.assign({}, layoutProps, getRootProps());
const rootStyles = {
display: "inline-flex",
alignItems: "center",
verticalAlign: "top",
cursor: "pointer",
position: "relative",
...styles.container
};
const checkboxStyles = {
display: "inline-flex",
alignItems: "center",
justifyContent: "center",
flexShrink: 0,
...styles.control
};
const labelStyles = {
userSelect: "none",
marginStart: spacing,
...styles.label
};
return /* @__PURE__ */ jsxs(chakra.label, { className: "chakra-radio", ...rootProps, __css: rootStyles, children: [
/* @__PURE__ */ jsx("input", { className: "chakra-radio__input", ...inputProps }),
/* @__PURE__ */ jsx(
chakra.span,
{
className: "chakra-radio__control",
...checkboxProps,
__css: checkboxStyles
}
),
children && /* @__PURE__ */ jsx(
chakra.span,
{
className: "chakra-radio__label",
...labelProps,
__css: labelStyles,
children
}
)
] });
});
Radio.displayName = "Radio";
export {
Radio
};
//# sourceMappingURL=chunk-RDF2AYID.mjs.map