UNPKG

@kopexa/sight

Version:

Kopexa Sight Design System — React component library for GRC applications

133 lines (130 loc) 3.65 kB
"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 };