@payfit/unity-components
Version:
61 lines (60 loc) • 2.39 kB
JavaScript
import { Text as e } from "../../text/Text.js";
import { Flex as t } from "../../flex/Flex.js";
import { RadioButtonHelper as n } from "./RadioButtonHelper.js";
import { RadioIndicator as r } from "./RadioIndicator.js";
import { forwardRef as i, useContext as a } from "react";
import { uyTv as o } from "@payfit/unity-themes";
import { jsx as s, jsxs as c } from "react/jsx-runtime";
import { RadioButton as l, RadioField as u, RadioGroupStateContext as d } from "react-aria-components/RadioGroup";
//#region src/components/radio-button-group/parts/RadioButton.tsx
var f = o({ slots: {
container: [
"uy:group uy:inline-flex uy:flex-col uy:gap-50",
"uy:rounded-md uy:sm:rounded-25",
"uy:px-150 uy:sm:px-0 uy:py-125 uy:sm:py-px",
"uy:border uy:sm:border-none uy:border-solid uy:border-border-neutral-enabled",
"uy:focus-within:outline-2 uy:focus-within:outline-utility-focus-ring uy:focus-within:outline-offset-2",
"uy:has-data-[disabled=true]:border-border-neutral-disabled",
"uy:has-data-[readonly=true]:border-border-neutral-disabled"
],
base: [
"uy:group uy:flex uy:gap-100 uy:rounded-50 uy:items-start uy:cursor-pointer",
"uy:data-[disabled=true]:cursor-not-allowed",
"uy:data-[readonly=true]:cursor-not-allowed"
],
radio: ["uy:mt-25 uy:sm:mt-px"],
label: [
"uy:text-content-neutral",
"uy:group-data-[disabled=true]:text-content-neutral-disabled",
"uy:group-data-[readonly=true]:text-content-neutral uy:group-data-[readonly]:cursor-text"
]
} }), p = i(({ children: i, value: o, isDisabled: p, helperText: m, ...h }, g) => {
let { base: _, label: v, container: y, radio: b } = f(), x = a(d), S = x?.isReadOnly ? "readonly" : x?.isDisabled || p ? "disabled" : x?.isInvalid ? "invalid" : "enabled";
return /* @__PURE__ */ c(t, {
direction: "col",
gap: "50",
className: y(),
children: [/* @__PURE__ */ s(u, {
...h,
value: o,
isDisabled: p,
className: "uy:contents",
children: ({ isSelected: t }) => /* @__PURE__ */ c(l, {
ref: g,
className: () => _(),
children: [/* @__PURE__ */ s(r, {
isSelected: t,
state: S,
className: b()
}), /* @__PURE__ */ s(e, {
variant: "body",
className: v(),
children: i
})]
})
}), m ? /* @__PURE__ */ s(n, { children: m }) : null]
});
});
p.displayName = "RadioButton";
//#endregion
export { p as RadioButton, r as RadioIndicator, f as radioButton };