@solace-health/ui 0.10.657 → 0.10.658

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-7TCK5BEI.js';import {a}from'./chunk-YTIIAU4W.js';import {cva}from'class-variance-authority';import {motion}from'motion/react';import*as p from'@radix-ui/react-radio-group';import {PiCheckCircleFill}from'react-icons/pi';import {jsx,jsxs}from'react/jsx-runtime';var R=cva(["focus-visible:border-ring","focus-visible:ring-ring/50","aria-invalid:ring-destructive/20","dark:aria-invalid:ring-destructive/40","aria-invalid:border-destructive","text-dark-green","disabled:text-secondary-foreground","h-auto","min-h-12","shrink-0","cursor-pointer","rounded-md","border","bg-white","px-4","py-3","leading-tight","font-bold","whitespace-normal","outline-none","hover:bg-green-100","focus-visible:ring-[3px]","disabled:pointer-events-none","disabled:border-gray-300","disabled:bg-white","disabled:opacity-50","[&_svg]:pointer-events-none","[&_svg]:shrink-0","[&_svg:not([class*='size-'])]:size-5"],{variants:{variant:{primary:["inline-flex","items-center","justify-between","gap-2","transition-all"],card:["group","w-full","grid","grid-cols-[1fr_auto]","gap-y-4","p-4","transition-colors"]},size:{default:"",sm:'h-8 px-3 [&_svg:not([class*="size-"])]:size-4'},checked:{true:"border-dark-green"}},compoundVariants:[{variant:"primary",checked:false,className:"border-gray-400"},{variant:"card",checked:false,className:"border-gray-200"}],defaultVariants:{variant:"primary",size:"default",checked:false}});function k({label:i,value:d,className:c=void 0,...r}){return jsxs(p.Item,{"data-slot":"radio-group-item",value:d,className:a("flex h-8 w-full cursor-pointer items-center gap-2 disabled:cursor-not-allowed disabled:opacity-50",c),...r,children:[jsx("span",{className:a("flex h-5 w-5 items-center justify-center rounded-full border border-gray-400 transition-colors",r.checked&&"border-dark-green","bg-white","relative"),children:r.checked&&jsx("span",{className:"bg-dark-green h-3 w-3 rounded-full"})}),!!i&&jsx("span",{className:"min-w-0 flex-1 text-left break-words select-none",children:i})]})}var n={motionWrapper:"relative w-full",avatar:"size-12",label:"text-left text-primary font-bold",header:"flex items-center w-full gap-4",title:"text-lg leading-6 text-left text-primary font-bold",titleWrapper:"flex flex-col gap-1",subtitle:"text-dark-green text-sm leading-4 text-left font-normal",icon:"opacity-0 group-data-[state=checked]:opacity-100",children:"col-span-2 text-left font-normal text-primary",collapse:{motionWrapper:"col-span-2 overflow-hidden text-left font-normal",content:"pt-2"}};function x({label:i=void 0,title:d$1=void 0,subtitle:c=void 0,avatarProps:r=void 0,value:l,className:s=void 0,size:v,collapseContent:g,classNames:a$1={},children:u,...o}){return jsx(motion.div,{layout:"position",transition:{duration:.3,ease:"easeInOut"},className:a(n.motionWrapper,a$1?.card?.motionWrapper),children:jsxs(p.Item,{"data-slot":"radio-group-item",value:l,className:a(R({variant:"card",size:v,checked:o.checked}),s,a$1?.card?.base),...o,children:[i?jsx("div",{className:a(n.label,a$1?.card?.label),children:i}):jsxs("div",{className:a(n.header,a$1?.card?.header),children:[r&&jsx(d,{className:a(n.avatar,a$1?.card?.avatar),...r}),jsxs("div",{className:a(n.titleWrapper,a$1?.card?.titleWrapper),children:[jsx("p",{className:a(n.title,a$1?.card?.title),children:d$1}),jsx("p",{className:a(n.subtitle,a$1?.card?.subtitle),children:c})]})]}),jsx(PiCheckCircleFill,{className:a(n.icon,a$1?.card?.icon)}),u&&jsx("div",{className:a(n.children,a$1?.card?.children),children:u}),g&&jsx(motion.div,{initial:false,animate:o.checked?{height:"auto",opacity:1}:{height:0,opacity:0},transition:{height:{duration:.24,ease:"easeInOut"},opacity:{duration:.18,ease:"easeInOut"}},className:a(n.collapse.motionWrapper,a$1?.card?.collapse?.motionWrapper),"aria-hidden":!o.checked,children:jsx("div",{className:a(n.collapse.content,a$1?.card?.collapse?.content),children:g})})]})})}function G({label:i=void 0,value:d,size:c="default",variant:r="primary",className:l=void 0,...s}){return r==="basic"?jsx(k,{label:i,value:d,className:l,...s}):r==="card"?jsx(x,{label:i,value:d,size:c,className:l,...s}):jsxs(p.Item,{"data-slot":"radio-group-item",value:d,className:a(R({variant:"primary",size:c,checked:s.checked}),l),...s,children:[!!i&&jsx("div",{className:"text-left",children:i})," ",jsx(PiCheckCircleFill,{className:a(s.checked?"opacity-100":"opacity-0")})]})}function W({className:i,id:d,value:c,children:r=null,columns:l=1,items:s=[],size:v="default",variant:g="primary",itemClassName:a$1=void 0,...u}){return jsx(p.Root,{"data-slot":"radio-group",className:a("grid gap-2",l===1&&"grid-cols-1",l===2&&"grid-cols-2",l===3&&"grid-cols-3",l===4&&"grid-cols-4",i),id:d,value:c,...u,children:s?.length?s.map(o=>jsx(G,{"data-slot":"radio-group-item",value:o.value,label:o.label,id:`${d}-${o.value}`,checked:c===o.value,disabled:o.disabled,onValueChange:u.onValueChange,size:v,variant:g,className:a$1},o.value)):r})}export{G as a,W as b};//# sourceMappingURL=chunk-YNZQFPVD.js.map
2
+ //# sourceMappingURL=chunk-YNZQFPVD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/v2/radio-button-group/radio-button-group.tsx"],"names":["radioGroupVariants","cva","BasicRadioButtonGroupItem","label","value","className","props","jsxs","cn","jsx","cardSlots","RadioGroupItemCard","title","subtitle","avatarProps","size","collapseContent","classNames","children","motion","Avatar","PiCheckCircleFill","RadioGroupItem","variant","RadioButtonGroup","id","columns","items","itemClassName","item"],"mappings":"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","file":"chunk-YNZQFPVD.js","sourcesContent":["import { cva } from 'class-variance-authority';\nimport { motion } from 'motion/react';\nimport * as React from 'react';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\n\nimport { PiCheckCircleFill } from 'react-icons/pi';\nimport { cn } from '@/lib/utils';\nimport { type ButtonSize } from '@/v2/button/button';\nimport { Avatar } from '../avatar/avatar';\n\ntype Variant = 'primary' | 'basic' | 'card';\n\ntype RadioButtonGroupItemProps = React.ComponentProps<typeof RadioGroupPrimitive.Item> & {\n label?: string | React.ReactElement;\n avatarProps?: React.ComponentProps<typeof Avatar>;\n title?: string | React.ReactNode;\n subtitle?: string | React.ReactNode;\n value: string;\n onValueChange?: (value: string) => void;\n size?: ButtonSize;\n variant?: Variant;\n collapseContent?: React.ReactNode;\n classNames?: {\n card?: {\n avatar?: string;\n motionWrapper?: string;\n base?: string;\n label?: string;\n header?: string;\n title?: string;\n titleWrapper?: string;\n subtitle?: string;\n icon?: string;\n children?: string;\n collapse?: {\n motionWrapper?: string;\n content?: string;\n };\n };\n };\n};\n\nconst radioGroupVariants = cva(\n [\n 'focus-visible:border-ring',\n 'focus-visible:ring-ring/50',\n 'aria-invalid:ring-destructive/20',\n 'dark:aria-invalid:ring-destructive/40',\n 'aria-invalid:border-destructive',\n 'text-dark-green',\n 'disabled:text-secondary-foreground',\n 'h-auto',\n 'min-h-12',\n 'shrink-0',\n 'cursor-pointer',\n 'rounded-md',\n 'border',\n 'bg-white',\n 'px-4',\n 'py-3',\n 'leading-tight',\n 'font-bold',\n 'whitespace-normal',\n 'outline-none',\n 'hover:bg-green-100',\n 'focus-visible:ring-[3px]',\n 'disabled:pointer-events-none',\n 'disabled:border-gray-300',\n 'disabled:bg-white',\n 'disabled:opacity-50',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-5\",\n ],\n {\n variants: {\n variant: {\n primary: ['inline-flex', 'items-center', 'justify-between', 'gap-2', 'transition-all'],\n card: [\n 'group',\n 'w-full',\n 'grid',\n 'grid-cols-[1fr_auto]',\n 'gap-y-4',\n 'p-4',\n 'transition-colors',\n ],\n },\n size: {\n default: '',\n sm: 'h-8 px-3 [&_svg:not([class*=\"size-\"])]:size-4',\n },\n checked: {\n true: 'border-dark-green',\n },\n },\n compoundVariants: [\n {\n variant: 'primary',\n checked: false,\n className: 'border-gray-400',\n },\n {\n variant: 'card',\n checked: false,\n className: 'border-gray-200',\n },\n ],\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n checked: false,\n },\n },\n);\n\nfunction BasicRadioButtonGroupItem({\n label,\n value,\n className = undefined,\n ...props\n}: Omit<RadioButtonGroupItemProps, 'variant' | 'size'>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n value={value}\n className={cn(\n 'flex h-8 w-full cursor-pointer items-center gap-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <span\n className={cn(\n 'flex h-5 w-5 items-center justify-center rounded-full border border-gray-400 transition-colors',\n props.checked && 'border-dark-green',\n 'bg-white',\n 'relative',\n )}\n >\n {props.checked && <span className=\"bg-dark-green h-3 w-3 rounded-full\" />}\n </span>\n {!!label && <span className=\"min-w-0 flex-1 text-left break-words select-none\">{label}</span>}\n </RadioGroupPrimitive.Item>\n );\n}\n\nconst cardSlots = {\n motionWrapper: 'relative w-full',\n item: 'col-span-2 text-left font-normal',\n avatar: 'size-12',\n label: 'text-left text-primary font-bold',\n header: 'flex items-center w-full gap-4',\n title: 'text-lg leading-6 text-left text-primary font-bold',\n titleWrapper: 'flex flex-col gap-1',\n subtitle: 'text-dark-green text-sm leading-4 text-left font-normal',\n icon: 'opacity-0 group-data-[state=checked]:opacity-100',\n children: 'col-span-2 text-left font-normal text-primary',\n collapse: {\n motionWrapper: 'col-span-2 overflow-hidden text-left font-normal',\n content: 'pt-2',\n },\n} as const;\n\nfunction RadioGroupItemCard({\n label = undefined,\n title = undefined,\n subtitle = undefined,\n avatarProps = undefined,\n value,\n className = undefined,\n size,\n collapseContent,\n classNames = {},\n children,\n ...props\n}: Omit<RadioButtonGroupItemProps, 'variant'>) {\n return (\n <motion.div\n layout=\"position\"\n transition={{ duration: 0.3, ease: 'easeInOut' }}\n className={cn(cardSlots.motionWrapper, classNames?.card?.motionWrapper)}\n >\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n value={value}\n className={cn(\n radioGroupVariants({ variant: 'card', size, checked: props.checked }),\n className,\n classNames?.card?.base,\n )}\n {...props}\n >\n {label ? (\n <div className={cn(cardSlots.label, classNames?.card?.label)}>{label}</div>\n ) : (\n <div className={cn(cardSlots.header, classNames?.card?.header)}>\n {avatarProps && (\n <Avatar className={cn(cardSlots.avatar, classNames?.card?.avatar)} {...avatarProps} />\n )}\n <div className={cn(cardSlots.titleWrapper, classNames?.card?.titleWrapper)}>\n <p className={cn(cardSlots.title, classNames?.card?.title)}>{title}</p>\n <p className={cn(cardSlots.subtitle, classNames?.card?.subtitle)}>{subtitle}</p>\n </div>\n </div>\n )}\n <PiCheckCircleFill className={cn(cardSlots.icon, classNames?.card?.icon)} />\n {children && (\n <div className={cn(cardSlots.children, classNames?.card?.children)}>{children}</div>\n )}\n {collapseContent && (\n <motion.div\n initial={false}\n animate={props.checked ? { height: 'auto', opacity: 1 } : { height: 0, opacity: 0 }}\n transition={{\n height: { duration: 0.24, ease: 'easeInOut' },\n opacity: { duration: 0.18, ease: 'easeInOut' },\n }}\n className={cn(\n cardSlots.collapse.motionWrapper,\n classNames?.card?.collapse?.motionWrapper,\n )}\n aria-hidden={!props.checked}\n >\n <div className={cn(cardSlots.collapse.content, classNames?.card?.collapse?.content)}>\n {collapseContent}\n </div>\n </motion.div>\n )}\n </RadioGroupPrimitive.Item>\n </motion.div>\n );\n}\n\nfunction RadioGroupItem({\n label = undefined,\n value,\n size = 'default',\n variant = 'primary',\n className = undefined,\n ...props\n}: RadioButtonGroupItemProps) {\n if (variant === 'basic') {\n return (\n <BasicRadioButtonGroupItem label={label} value={value} className={className} {...props} />\n );\n }\n\n if (variant === 'card') {\n return (\n <RadioGroupItemCard\n label={label}\n value={value}\n size={size}\n className={className}\n {...props}\n />\n );\n }\n\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n value={value}\n className={cn(\n radioGroupVariants({ variant: 'primary', size, checked: props.checked }),\n className,\n )}\n {...props}\n >\n {!!label && <div className=\"text-left\">{label}</div>}{' '}\n <PiCheckCircleFill className={cn(props.checked ? 'opacity-100' : 'opacity-0')} />\n </RadioGroupPrimitive.Item>\n );\n}\n\ntype RadioGroupProps = React.ComponentProps<typeof RadioGroupPrimitive.Root> & {\n columns?: 1 | 2 | 3 | 4;\n items?: { label: string | React.ReactElement; value: string; disabled?: boolean }[];\n size?: ButtonSize;\n variant?: Variant;\n itemClassName?: string;\n};\n\nfunction RadioButtonGroup({\n className,\n id,\n value,\n children = null,\n columns = 1,\n items = [],\n size = 'default',\n variant = 'primary',\n itemClassName = undefined,\n ...props\n}: RadioGroupProps) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\n 'grid gap-2',\n columns === 1 && 'grid-cols-1',\n columns === 2 && 'grid-cols-2',\n columns === 3 && 'grid-cols-3',\n columns === 4 && 'grid-cols-4',\n className,\n )}\n id={id}\n value={value}\n {...props}\n >\n {items?.length\n ? items.map((item) => (\n <RadioGroupItem\n data-slot=\"radio-group-item\"\n key={item.value}\n value={item.value}\n label={item.label}\n id={`${id}-${item.value}`}\n checked={value === item.value}\n disabled={item.disabled}\n onValueChange={props.onValueChange}\n size={size}\n variant={variant}\n className={itemClassName}\n />\n ))\n : children}\n </RadioGroupPrimitive.Root>\n );\n}\n\nexport { RadioButtonGroup, RadioGroupItem };\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkTXRD2ZDK_cjs=require('./chunk-TXRD2ZDK.cjs'),chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),classVarianceAuthority=require('class-variance-authority'),react=require('motion/react'),p=require('@radix-ui/react-radio-group'),pi=require('react-icons/pi'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var p__namespace=/*#__PURE__*/_interopNamespace(p);var R=classVarianceAuthority.cva(["focus-visible:border-ring","focus-visible:ring-ring/50","aria-invalid:ring-destructive/20","dark:aria-invalid:ring-destructive/40","aria-invalid:border-destructive","text-dark-green","disabled:text-secondary-foreground","h-auto","min-h-12","shrink-0","cursor-pointer","rounded-md","border","bg-white","px-4","py-3","leading-tight","font-bold","whitespace-normal","outline-none","hover:bg-green-100","focus-visible:ring-[3px]","disabled:pointer-events-none","disabled:border-gray-300","disabled:bg-white","disabled:opacity-50","[&_svg]:pointer-events-none","[&_svg]:shrink-0","[&_svg:not([class*='size-'])]:size-5"],{variants:{variant:{primary:["inline-flex","items-center","justify-between","gap-2","transition-all"],card:["group","w-full","grid","grid-cols-[1fr_auto]","gap-y-4","p-4","transition-colors"]},size:{default:"",sm:'h-8 px-3 [&_svg:not([class*="size-"])]:size-4'},checked:{true:"border-dark-green"}},compoundVariants:[{variant:"primary",checked:false,className:"border-gray-400"},{variant:"card",checked:false,className:"border-gray-200"}],defaultVariants:{variant:"primary",size:"default",checked:false}});function k({label:i,value:d,className:c=void 0,...r}){return jsxRuntime.jsxs(p__namespace.Item,{"data-slot":"radio-group-item",value:d,className:chunkQRO22BPZ_cjs.a("flex h-8 w-full cursor-pointer items-center gap-2 disabled:cursor-not-allowed disabled:opacity-50",c),...r,children:[jsxRuntime.jsx("span",{className:chunkQRO22BPZ_cjs.a("flex h-5 w-5 items-center justify-center rounded-full border border-gray-400 transition-colors",r.checked&&"border-dark-green","bg-white","relative"),children:r.checked&&jsxRuntime.jsx("span",{className:"bg-dark-green h-3 w-3 rounded-full"})}),!!i&&jsxRuntime.jsx("span",{className:"min-w-0 flex-1 text-left break-words select-none",children:i})]})}var n={motionWrapper:"relative w-full",avatar:"size-12",label:"text-left text-primary font-bold",header:"flex items-center w-full gap-4",title:"text-lg leading-6 text-left text-primary font-bold",titleWrapper:"flex flex-col gap-1",subtitle:"text-dark-green text-sm leading-4 text-left font-normal",icon:"opacity-0 group-data-[state=checked]:opacity-100",children:"col-span-2 text-left font-normal text-primary",collapse:{motionWrapper:"col-span-2 overflow-hidden text-left font-normal",content:"pt-2"}};function x({label:i=void 0,title:d=void 0,subtitle:c=void 0,avatarProps:r=void 0,value:l,className:s=void 0,size:v,collapseContent:g,classNames:a={},children:u,...o}){return jsxRuntime.jsx(react.motion.div,{layout:"position",transition:{duration:.3,ease:"easeInOut"},className:chunkQRO22BPZ_cjs.a(n.motionWrapper,a?.card?.motionWrapper),children:jsxRuntime.jsxs(p__namespace.Item,{"data-slot":"radio-group-item",value:l,className:chunkQRO22BPZ_cjs.a(R({variant:"card",size:v,checked:o.checked}),s,a?.card?.base),...o,children:[i?jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a(n.label,a?.card?.label),children:i}):jsxRuntime.jsxs("div",{className:chunkQRO22BPZ_cjs.a(n.header,a?.card?.header),children:[r&&jsxRuntime.jsx(chunkTXRD2ZDK_cjs.d,{className:chunkQRO22BPZ_cjs.a(n.avatar,a?.card?.avatar),...r}),jsxRuntime.jsxs("div",{className:chunkQRO22BPZ_cjs.a(n.titleWrapper,a?.card?.titleWrapper),children:[jsxRuntime.jsx("p",{className:chunkQRO22BPZ_cjs.a(n.title,a?.card?.title),children:d}),jsxRuntime.jsx("p",{className:chunkQRO22BPZ_cjs.a(n.subtitle,a?.card?.subtitle),children:c})]})]}),jsxRuntime.jsx(pi.PiCheckCircleFill,{className:chunkQRO22BPZ_cjs.a(n.icon,a?.card?.icon)}),u&&jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a(n.children,a?.card?.children),children:u}),g&&jsxRuntime.jsx(react.motion.div,{initial:false,animate:o.checked?{height:"auto",opacity:1}:{height:0,opacity:0},transition:{height:{duration:.24,ease:"easeInOut"},opacity:{duration:.18,ease:"easeInOut"}},className:chunkQRO22BPZ_cjs.a(n.collapse.motionWrapper,a?.card?.collapse?.motionWrapper),"aria-hidden":!o.checked,children:jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a(n.collapse.content,a?.card?.collapse?.content),children:g})})]})})}function G({label:i=void 0,value:d,size:c="default",variant:r="primary",className:l=void 0,...s}){return r==="basic"?jsxRuntime.jsx(k,{label:i,value:d,className:l,...s}):r==="card"?jsxRuntime.jsx(x,{label:i,value:d,size:c,className:l,...s}):jsxRuntime.jsxs(p__namespace.Item,{"data-slot":"radio-group-item",value:d,className:chunkQRO22BPZ_cjs.a(R({variant:"primary",size:c,checked:s.checked}),l),...s,children:[!!i&&jsxRuntime.jsx("div",{className:"text-left",children:i})," ",jsxRuntime.jsx(pi.PiCheckCircleFill,{className:chunkQRO22BPZ_cjs.a(s.checked?"opacity-100":"opacity-0")})]})}function W({className:i,id:d,value:c,children:r=null,columns:l=1,items:s=[],size:v="default",variant:g="primary",itemClassName:a=void 0,...u}){return jsxRuntime.jsx(p__namespace.Root,{"data-slot":"radio-group",className:chunkQRO22BPZ_cjs.a("grid gap-2",l===1&&"grid-cols-1",l===2&&"grid-cols-2",l===3&&"grid-cols-3",l===4&&"grid-cols-4",i),id:d,value:c,...u,children:s?.length?s.map(o=>jsxRuntime.jsx(G,{"data-slot":"radio-group-item",value:o.value,label:o.label,id:`${d}-${o.value}`,checked:c===o.value,disabled:o.disabled,onValueChange:u.onValueChange,size:v,variant:g,className:a},o.value)):r})}exports.a=G;exports.b=W;//# sourceMappingURL=chunk-ZI2K7V3W.cjs.map
2
+ //# sourceMappingURL=chunk-ZI2K7V3W.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/v2/radio-button-group/radio-button-group.tsx"],"names":["radioGroupVariants","cva","BasicRadioButtonGroupItem","label","value","className","props","jsxs","p","cn","jsx","cardSlots","RadioGroupItemCard","title","subtitle","avatarProps","size","collapseContent","classNames","children","motion","Avatar","PiCheckCircleFill","RadioGroupItem","variant","RadioButtonGroup","id","columns","items","itemClassName","item"],"mappings":"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","file":"chunk-ZI2K7V3W.cjs","sourcesContent":["import { cva } from 'class-variance-authority';\nimport { motion } from 'motion/react';\nimport * as React from 'react';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\n\nimport { PiCheckCircleFill } from 'react-icons/pi';\nimport { cn } from '@/lib/utils';\nimport { type ButtonSize } from '@/v2/button/button';\nimport { Avatar } from '../avatar/avatar';\n\ntype Variant = 'primary' | 'basic' | 'card';\n\ntype RadioButtonGroupItemProps = React.ComponentProps<typeof RadioGroupPrimitive.Item> & {\n label?: string | React.ReactElement;\n avatarProps?: React.ComponentProps<typeof Avatar>;\n title?: string | React.ReactNode;\n subtitle?: string | React.ReactNode;\n value: string;\n onValueChange?: (value: string) => void;\n size?: ButtonSize;\n variant?: Variant;\n collapseContent?: React.ReactNode;\n classNames?: {\n card?: {\n avatar?: string;\n motionWrapper?: string;\n base?: string;\n label?: string;\n header?: string;\n title?: string;\n titleWrapper?: string;\n subtitle?: string;\n icon?: string;\n children?: string;\n collapse?: {\n motionWrapper?: string;\n content?: string;\n };\n };\n };\n};\n\nconst radioGroupVariants = cva(\n [\n 'focus-visible:border-ring',\n 'focus-visible:ring-ring/50',\n 'aria-invalid:ring-destructive/20',\n 'dark:aria-invalid:ring-destructive/40',\n 'aria-invalid:border-destructive',\n 'text-dark-green',\n 'disabled:text-secondary-foreground',\n 'h-auto',\n 'min-h-12',\n 'shrink-0',\n 'cursor-pointer',\n 'rounded-md',\n 'border',\n 'bg-white',\n 'px-4',\n 'py-3',\n 'leading-tight',\n 'font-bold',\n 'whitespace-normal',\n 'outline-none',\n 'hover:bg-green-100',\n 'focus-visible:ring-[3px]',\n 'disabled:pointer-events-none',\n 'disabled:border-gray-300',\n 'disabled:bg-white',\n 'disabled:opacity-50',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-5\",\n ],\n {\n variants: {\n variant: {\n primary: ['inline-flex', 'items-center', 'justify-between', 'gap-2', 'transition-all'],\n card: [\n 'group',\n 'w-full',\n 'grid',\n 'grid-cols-[1fr_auto]',\n 'gap-y-4',\n 'p-4',\n 'transition-colors',\n ],\n },\n size: {\n default: '',\n sm: 'h-8 px-3 [&_svg:not([class*=\"size-\"])]:size-4',\n },\n checked: {\n true: 'border-dark-green',\n },\n },\n compoundVariants: [\n {\n variant: 'primary',\n checked: false,\n className: 'border-gray-400',\n },\n {\n variant: 'card',\n checked: false,\n className: 'border-gray-200',\n },\n ],\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n checked: false,\n },\n },\n);\n\nfunction BasicRadioButtonGroupItem({\n label,\n value,\n className = undefined,\n ...props\n}: Omit<RadioButtonGroupItemProps, 'variant' | 'size'>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n value={value}\n className={cn(\n 'flex h-8 w-full cursor-pointer items-center gap-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <span\n className={cn(\n 'flex h-5 w-5 items-center justify-center rounded-full border border-gray-400 transition-colors',\n props.checked && 'border-dark-green',\n 'bg-white',\n 'relative',\n )}\n >\n {props.checked && <span className=\"bg-dark-green h-3 w-3 rounded-full\" />}\n </span>\n {!!label && <span className=\"min-w-0 flex-1 text-left break-words select-none\">{label}</span>}\n </RadioGroupPrimitive.Item>\n );\n}\n\nconst cardSlots = {\n motionWrapper: 'relative w-full',\n item: 'col-span-2 text-left font-normal',\n avatar: 'size-12',\n label: 'text-left text-primary font-bold',\n header: 'flex items-center w-full gap-4',\n title: 'text-lg leading-6 text-left text-primary font-bold',\n titleWrapper: 'flex flex-col gap-1',\n subtitle: 'text-dark-green text-sm leading-4 text-left font-normal',\n icon: 'opacity-0 group-data-[state=checked]:opacity-100',\n children: 'col-span-2 text-left font-normal text-primary',\n collapse: {\n motionWrapper: 'col-span-2 overflow-hidden text-left font-normal',\n content: 'pt-2',\n },\n} as const;\n\nfunction RadioGroupItemCard({\n label = undefined,\n title = undefined,\n subtitle = undefined,\n avatarProps = undefined,\n value,\n className = undefined,\n size,\n collapseContent,\n classNames = {},\n children,\n ...props\n}: Omit<RadioButtonGroupItemProps, 'variant'>) {\n return (\n <motion.div\n layout=\"position\"\n transition={{ duration: 0.3, ease: 'easeInOut' }}\n className={cn(cardSlots.motionWrapper, classNames?.card?.motionWrapper)}\n >\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n value={value}\n className={cn(\n radioGroupVariants({ variant: 'card', size, checked: props.checked }),\n className,\n classNames?.card?.base,\n )}\n {...props}\n >\n {label ? (\n <div className={cn(cardSlots.label, classNames?.card?.label)}>{label}</div>\n ) : (\n <div className={cn(cardSlots.header, classNames?.card?.header)}>\n {avatarProps && (\n <Avatar className={cn(cardSlots.avatar, classNames?.card?.avatar)} {...avatarProps} />\n )}\n <div className={cn(cardSlots.titleWrapper, classNames?.card?.titleWrapper)}>\n <p className={cn(cardSlots.title, classNames?.card?.title)}>{title}</p>\n <p className={cn(cardSlots.subtitle, classNames?.card?.subtitle)}>{subtitle}</p>\n </div>\n </div>\n )}\n <PiCheckCircleFill className={cn(cardSlots.icon, classNames?.card?.icon)} />\n {children && (\n <div className={cn(cardSlots.children, classNames?.card?.children)}>{children}</div>\n )}\n {collapseContent && (\n <motion.div\n initial={false}\n animate={props.checked ? { height: 'auto', opacity: 1 } : { height: 0, opacity: 0 }}\n transition={{\n height: { duration: 0.24, ease: 'easeInOut' },\n opacity: { duration: 0.18, ease: 'easeInOut' },\n }}\n className={cn(\n cardSlots.collapse.motionWrapper,\n classNames?.card?.collapse?.motionWrapper,\n )}\n aria-hidden={!props.checked}\n >\n <div className={cn(cardSlots.collapse.content, classNames?.card?.collapse?.content)}>\n {collapseContent}\n </div>\n </motion.div>\n )}\n </RadioGroupPrimitive.Item>\n </motion.div>\n );\n}\n\nfunction RadioGroupItem({\n label = undefined,\n value,\n size = 'default',\n variant = 'primary',\n className = undefined,\n ...props\n}: RadioButtonGroupItemProps) {\n if (variant === 'basic') {\n return (\n <BasicRadioButtonGroupItem label={label} value={value} className={className} {...props} />\n );\n }\n\n if (variant === 'card') {\n return (\n <RadioGroupItemCard\n label={label}\n value={value}\n size={size}\n className={className}\n {...props}\n />\n );\n }\n\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n value={value}\n className={cn(\n radioGroupVariants({ variant: 'primary', size, checked: props.checked }),\n className,\n )}\n {...props}\n >\n {!!label && <div className=\"text-left\">{label}</div>}{' '}\n <PiCheckCircleFill className={cn(props.checked ? 'opacity-100' : 'opacity-0')} />\n </RadioGroupPrimitive.Item>\n );\n}\n\ntype RadioGroupProps = React.ComponentProps<typeof RadioGroupPrimitive.Root> & {\n columns?: 1 | 2 | 3 | 4;\n items?: { label: string | React.ReactElement; value: string; disabled?: boolean }[];\n size?: ButtonSize;\n variant?: Variant;\n itemClassName?: string;\n};\n\nfunction RadioButtonGroup({\n className,\n id,\n value,\n children = null,\n columns = 1,\n items = [],\n size = 'default',\n variant = 'primary',\n itemClassName = undefined,\n ...props\n}: RadioGroupProps) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\n 'grid gap-2',\n columns === 1 && 'grid-cols-1',\n columns === 2 && 'grid-cols-2',\n columns === 3 && 'grid-cols-3',\n columns === 4 && 'grid-cols-4',\n className,\n )}\n id={id}\n value={value}\n {...props}\n >\n {items?.length\n ? items.map((item) => (\n <RadioGroupItem\n data-slot=\"radio-group-item\"\n key={item.value}\n value={item.value}\n label={item.label}\n id={`${id}-${item.value}`}\n checked={value === item.value}\n disabled={item.disabled}\n onValueChange={props.onValueChange}\n size={size}\n variant={variant}\n className={itemClassName}\n />\n ))\n : children}\n </RadioGroupPrimitive.Root>\n );\n}\n\nexport { RadioButtonGroup, RadioGroupItem };\n"]}