@vela-ui/react
Version:
Vela UI React components
3 lines (2 loc) • 2.21 kB
JavaScript
"use client"
import{b as R,c as f,d as g}from"./chunk-6SBZLCH7.mjs";import{a as d,b as m}from"./chunk-VAPI52L2.mjs";import{a as c}from"./chunk-AL2JXKXY.mjs";import{a as u}from"./chunk-KCI5SKSW.mjs";import{Radio as G,RadioGroup as b,composeRenderProps as l}from"react-aria-components";import{tv as v}from"tailwind-variants";import{Fragment as P,jsx as o,jsxs as y}from"react/jsx-runtime";function N({className:r,...a}){return o(b,{"data-slot":"radio-group",className:m(r,"group flex flex-col gap-2"),...a})}function _({wrapperClassName:r,children:a,label:i,description:e,errorMessage:n,...p}){return o(N,{...p,children:l(a,t=>y(P,{children:[i&&o(R,{children:i}),o("div",{"data-slot":"radio-group-wrapper",className:d("flex gap-2 select-none group-data-[orientation=horizontal]:flex-wrap group-data-[orientation=vertical]:flex-col",r),children:t}),e&&o(f,{children:e}),o(g,{children:n})]}))})}var w=v({base:"group flex items-center gap-2 text-sm transition",variants:{isDisabled:{true:"text-foreground/50 cursor-not-allowed"}}}),z=v({extend:u,base:"relative flex aspect-square shrink-0 items-center justify-center rounded-full border bg-transparent shadow-xs transition duration-250 ease-out motion-reduce:transition-none",variants:{variant:{default:"text-white",outline:"text-primary dark:bg-input/30"},size:{sm:"size-4 [&_svg]:size-2",md:"size-5 [&_svg]:size-2.5",lg:"size-6 [&_svg]:size-3"},isSelected:{true:""},isPressed:{true:"scale-95"},isDisabled:{true:"cursor-not-allowed opacity-50"}},compoundVariants:[{variant:"default",isSelected:!0,className:"bg-primary border-transparent"},{variant:"outline",isSelected:!0,className:"border-primary"}],defaultVariants:{variant:"default",size:"md"}});function k({className:r,children:a,indicatorClassName:i,size:e,variant:n,...p}){return o(G,{className:l(r,(t,s)=>w({...s,className:t})),...p,children:l(a,(t,{isSelected:s,...x})=>y(P,{children:[o("div",{"data-slot":"radio-indicator",className:z({size:e,variant:n,isSelected:s,...x,className:i}),children:o(c,{className:d("fill-current transition-[transform,scale,opacity] duration-250 ease-out motion-reduce:transition-none",s?"scale-100 opacity-100":"scale-0 opacity-0")})}),t]}))})}export{N as a,_ as b,k as c};