UNPKG

@payfit/unity-components

Version:

61 lines (60 loc) 2.39 kB
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 };