@kopexa/sight
Version:
Kopexa Sight Design System — React component library for GRC applications
133 lines (130 loc) • 3.65 kB
JavaScript
"use client";
import {
Radiomark
} from "./chunk-NNCVUL5J.mjs";
// src/components/radio-card/radio-card.tsx
import { ark } from "@ark-ui/react/factory";
import {
RadioGroup as ArkRadioGroup,
useRadioGroupItemContext
} from "@ark-ui/react/radio-group";
import { createContext } from "@kopexa/react-utils";
import { cn } from "@kopexa/shared-utils";
import { radioCard } from "@kopexa/theme";
import { jsx } from "react/jsx-runtime";
var [StylesProvider, useRadioCardStyles] = createContext({
strict: false,
name: "RadioCardStylesContext"
});
var RadioCardRoot = (props) => {
const { className, size, variant, orientation, ...restProps } = props;
const ctx = { size, variant, orientation };
const recipe = radioCard(ctx);
return /* @__PURE__ */ jsx(StylesProvider, { value: ctx, children: /* @__PURE__ */ jsx(
ArkRadioGroup.Root,
{
orientation,
className: cn(recipe.root(), className),
...restProps
}
) });
};
var RadioCardLabel = (props) => {
const { className, ...restProps } = props;
const ctx = useRadioCardStyles();
const recipe = radioCard(ctx);
return /* @__PURE__ */ jsx(
ArkRadioGroup.Label,
{
className: cn(recipe.label(), className),
...restProps
}
);
};
var RadioCardItemBase = (props) => {
const { className, ...restProps } = props;
const ctx = useRadioCardStyles();
const recipe = radioCard(ctx);
return /* @__PURE__ */ jsx(
ArkRadioGroup.Item,
{
className: cn(recipe.item(), className),
...restProps
}
);
};
var RadioCardItemText = (props) => {
const { className, ...restProps } = props;
const ctx = useRadioCardStyles();
const recipe = radioCard(ctx);
return /* @__PURE__ */ jsx(
ArkRadioGroup.ItemText,
{
className: cn(recipe.itemText(), className),
...restProps
}
);
};
var RadioCardItemDescription = (props) => {
const { className, ...restProps } = props;
const ctx = useRadioCardStyles();
const recipe = radioCard(ctx);
return /* @__PURE__ */ jsx("span", { className: cn(recipe.itemDescription(), className), ...restProps });
};
var RadioCardItemControl = (props) => {
const { className, ...restProps } = props;
const ctx = useRadioCardStyles();
const recipe = radioCard(ctx);
return /* @__PURE__ */ jsx(
ArkRadioGroup.ItemControl,
{
className: cn(recipe.itemControl(), className),
...restProps
}
);
};
var RadioCardItemContent = (props) => {
const { className, ...restProps } = props;
const ctx = useRadioCardStyles();
const recipe = radioCard(ctx);
return /* @__PURE__ */ jsx("div", { className: cn(recipe.itemContent(), className), ...restProps });
};
var RadioCardItemIndicator = (props) => {
const { className, checked, ...restProps } = props;
const ctx = useRadioCardStyles();
const recipe = radioCard(ctx);
const itemContext = useRadioGroupItemContext();
if (checked && itemContext.checked) {
return /* @__PURE__ */ jsx(
ark.span,
{
asChild: true,
...restProps,
className: cn(recipe.itemIndicator(), className),
children: checked
}
);
}
return /* @__PURE__ */ jsx(
Radiomark,
{
unstyled: true,
...props,
checked: itemContext.checked,
disabled: itemContext.disabled,
className: cn(recipe.itemIndicator(), className)
}
);
};
var RadioCardItemHiddenInput = ArkRadioGroup.ItemHiddenInput;
export {
RadioCardRoot,
RadioCardLabel,
RadioCardItemBase,
RadioCardItemText,
RadioCardItemDescription,
RadioCardItemControl,
RadioCardItemContent,
RadioCardItemIndicator,
RadioCardItemHiddenInput
};