laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
64 lines (63 loc) • 1.73 kB
JavaScript
"use client";
import { jsx as t } from "react/jsx-runtime";
import { Root as d, Item as s, Indicator as n } from "../../node_modules/@radix-ui/react-radio-group/dist/index.js";
import { designTokens as o } from "../design-tokens.js";
import { cn as a } from "../../lib/utils.js";
import l from "../../node_modules/lucide-react/dist/esm/icons/circle.js";
function g({
className: e,
...r
}) {
return /* @__PURE__ */ t(
d,
{
"data-slot": "radio-group",
className: a("grid gap-3", e),
...r
}
);
}
function h({
className: e,
disabled: r,
...i
}) {
return /* @__PURE__ */ t(
s,
{
"data-slot": "radio-group-item",
disabled: r,
className: a(
"text-d-primary aspect-square size-4 shrink-0 cursor-pointer border shadow-xs transition-[color,box-shadow] outline-none",
o.radius.full,
o.focusRing,
// Red border when not selected, default border when selected
"data-[state=unchecked]:border-d-foreground data-[state=checked]:border-d-primary",
"aria-invalid:ring-d-destructive/20 aria-invalid:border-d-destructive",
o.interaction.disabled,
e
),
...i,
children: /* @__PURE__ */ t(
n,
{
"data-slot": "radio-group-indicator",
className: "relative flex items-center justify-center",
children: /* @__PURE__ */ t(
l,
{
className: a(
"fill-d-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2",
r && "fill-d-muted-foreground"
)
}
)
}
)
}
);
}
export {
g as RadioGroup,
h as RadioGroupItem
};