{"version":3,"file":"RadioButtonsControl.C2F9E8tu.mjs","names":["useMemo","useState","useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/OzDvZ43EXI0vRVnrX1xi/KhZNGaN8JGjbpIDtkHZE/RadioButtonsControl.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{AnimatePresence,motion}from\"framer-motion\";import{useCallback,useEffect,useMemo,useRef,useState}from\"react\";import{useConditionArray,CONDITION_ARRAY_CONTROL}from\"https://framer.com/m/ConditionalLogicUtil-69lIOW.js\";const DEFAULT_VALIDATION={requiredMessage:\"\"};const DEFAULT_LABEL={show:true,requiredMark:\"*\",font:{fontSize:12,fontWeight:\"500\",lineHeight:\"1.2em\"},color:\"#888888\"};const DEFAULT_LAYOUT={direction:\"vertical\",gap:8,labelWidth:120,optionsDirection:\"vertical\",optionsGap:12};const DEFAULT_RADIO_STYLE={size:20,uncheckedColor:\"#ffffff\",checkedColor:\"#3B82F6\",dotColor:\"#ffffff\",border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#d1d5db\"},shadow:\"\"};const DEFAULT_FOCUS_STYLE={borderColor:\"#3B82F6\",shadow:\"0 0 0 3px rgba(59,130,246,0.2)\",scale:1};const DEFAULT_OPTION_LABEL_STYLE={font:{fontSize:14,fontWeight:\"400\",lineHeight:\"1.4em\"},color:\"#333333\"};const DEFAULT_ICONS={showIcon:false,uncheckedIcon:\"\",checkedIcon:\"\",size:16,color:\"#6B7280\"};const DEFAULT_ERROR_STYLE={color:\"#dc2626\",font:{fontSize:12,lineHeight:1.4}};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 150\n * @framerDisableUnlink\n */export default function RadioButtonsControl(props){const{name,labelText,description,required,defaultValue,options,validation,label,layout,radioStyle,optionLabelStyle,icons,focusStyle,errorStyle,conditions,_meta,style}=props;const validationConfig={...DEFAULT_VALIDATION,...validation||{}};const labelConfig={...DEFAULT_LABEL,...label||{},font:{...DEFAULT_LABEL.font,...label&&label.font||{}}};const layoutConfig={...DEFAULT_LAYOUT,...layout||{}};const radioStyleConfig={...DEFAULT_RADIO_STYLE,...radioStyle||{},border:{...DEFAULT_RADIO_STYLE.border,...radioStyle&&radioStyle.border||{}}};const optionLabelStyleConfig={...DEFAULT_OPTION_LABEL_STYLE,...optionLabelStyle||{},font:{...DEFAULT_OPTION_LABEL_STYLE.font,...optionLabelStyle&&optionLabelStyle.font||{}}};const iconsConfig={...DEFAULT_ICONS,...icons||{}};const focusStyleConfig={...DEFAULT_FOCUS_STYLE,...focusStyle||{}};const errorStyleConfig={...DEFAULT_ERROR_STYLE,...errorStyle||{},font:{...DEFAULT_ERROR_STYLE.font,...errorStyle&&errorStyle.font||{}}};const fieldName=name||\"radio-group\";const currentLabelText=labelText||\"Choose an option\";const errorId=`error-${fieldName}`;const parsedOptions=useMemo(()=>{if(!options||options?.length===0){return[{label:\"Option 1\",value:\"option-1\",enabled:true},{label:\"Option 2\",value:\"option-2\",enabled:true},{label:\"Option 3\",value:\"option-3\",enabled:true}];}// Filter only enabled options\nreturn options?.filter(option=>option.enabled!==false);},[options]);const[value,setValue]=useState(defaultValue);const[error,setError]=useState(\"\");const[focusedValue,setFocusedValue]=useState(null);const inputRefs=useRef({});const hiddenValueRef=useRef(null);const valueRef=useRef(value);valueRef.current=value;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const Wrapper=isCanvas?\"div\":motion.div;const conditionItems=useMemo(()=>conditions||[],[conditions]);const handleValueReset=useCallback(()=>{setValue(\"\");setError(\"\");},[]);const{isVisible,isRequired,isReadOnly,isDisabled}=useConditionArray(conditionItems,\"\",isCanvas,handleValueReset);const effectiveRequired=conditionItems.some(c=>c.type===\"required\")?isRequired:required;const effectiveDisabled=conditionItems.some(c=>c.type===\"disable\")?isDisabled:false;const effectiveReadOnly=conditionItems.some(c=>c.type===\"readOnly\")?isReadOnly:false;const parsedMeta=useMemo(()=>{if(!_meta)return null;try{return JSON.parse(_meta);}catch{return null;}},[_meta]);void parsedMeta;useEffect(()=>{setValue(defaultValue);},[defaultValue]);// Dispatch native change event so conditional logic watchers detect value updates\nuseEffect(()=>{const el=hiddenValueRef.current;if(el){const nativeInputValueSetter=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,\"value\")?.set;nativeInputValueSetter?.call(el,value);el.dispatchEvent(new Event(\"change\",{bubbles:true}));}},[value]);const applyTokens=useCallback((template,fallback)=>{const source=template?.trim()?template:fallback;const tokens={label:currentLabelText||fieldName,name:fieldName};return source.replace(/\\{(label|name)\\}/g,(_,key)=>{return tokens[key]??\"\";});},[currentLabelText,fieldName]);const hasCustomMessages=Boolean(validationConfig.requiredMessage.trim());const validate=useCallback(()=>{const el=hiddenValueRef.current;if(!el)return;el.setCustomValidity(\"\");if(effectiveRequired&&!value){const message=applyTokens(validationConfig.requiredMessage,`Please select ${currentLabelText||\"an option\"}`);setError(message);if(hasCustomMessages){el.setCustomValidity(message);}}else{setError(\"\");}},[effectiveRequired,value,applyTokens,validationConfig.requiredMessage,currentLabelText,hasCustomMessages]);const handleInvalid=useCallback(event=>{event.preventDefault();validate();},[validate]);// Form submit interceptor — Framer may submit forms programmatically,\n// bypassing native constraint validation. Uses refs to avoid stale closures.\nconst effectiveRequiredRef=useRef(effectiveRequired);effectiveRequiredRef.current=effectiveRequired;const validateRef=useRef(validate);validateRef.current=validate;useEffect(()=>{if(isCanvas)return;const form=hiddenValueRef.current?.closest(\"form\");if(!form)return;const handleFormSubmit=event=>{if(!effectiveRequiredRef.current)return;if(!valueRef.current){event.preventDefault();event.stopPropagation();validateRef.current();}};form.addEventListener(\"submit\",handleFormSubmit,true);return()=>form.removeEventListener(\"submit\",handleFormSubmit,true);},[isCanvas]);const handleFocus=useCallback(optionValue=>{setFocusedValue(optionValue);setError(\"\");},[]);const handleBlur=useCallback(()=>{setFocusedValue(null);validate();},[validate]);const handleChange=useCallback(event=>{const nextValue=event.currentTarget.value;setValue(nextValue);if(error){setError(\"\");}},[error]);const radioVariants={idle:{borderColor:radioStyleConfig.border?.borderColor||\"#d1d5db\",boxShadow:radioStyleConfig.shadow||\"none\",scale:1},focused:{borderColor:focusStyleConfig.borderColor,boxShadow:focusStyleConfig.shadow,scale:focusStyleConfig.scale},error:{borderColor:errorStyleConfig.color,boxShadow:\"0 0 0 3px rgba(220,38,38,0.2)\",scale:1}};const containerStyle={display:\"flex\",flexDirection:layoutConfig.direction===\"horizontal\"?\"row\":\"column\",alignItems:layoutConfig.direction===\"horizontal\"?\"center\":\"flex-start\",gap:`${layoutConfig.gap}px`,width:\"100%\",...style};const normalizedLabelFontWeight=(()=>{const current=labelConfig.font?.fontWeight;if(current===undefined||current===null||current===\"\"||current===\"normal\"||current===\"regular\"||current===400||current===\"400\"){return 500;}return current;})();const fieldLabelStyle={...labelConfig.font,fontWeight:normalizedLabelFontWeight,color:labelConfig.color,flexShrink:0,...layoutConfig.direction===\"horizontal\"?{width:`${layoutConfig.labelWidth}px`}:{}};const optionsContainerStyle={display:\"flex\",flexDirection:layoutConfig.optionsDirection===\"horizontal\"?\"row\":\"column\",gap:`${layoutConfig.optionsGap}px`,flexWrap:layoutConfig.optionsDirection===\"horizontal\"?\"wrap\":\"nowrap\"};const optionWrapperStyle={display:\"flex\",alignItems:\"center\",gap:\"8px\",cursor:\"pointer\"};const radioBoxStyle=(isChecked,isFocused)=>({position:\"relative\",width:`${radioStyleConfig.size}px`,height:`${radioStyleConfig.size}px`,flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",...radioStyleConfig.border,borderWidth:radioStyleConfig.border?.borderWidth||2,borderStyle:radioStyleConfig.border?.borderStyle||\"solid\",borderColor:radioStyleConfig.border?.borderColor||\"#d1d5db\",borderRadius:\"50%\",backgroundColor:isChecked?radioStyleConfig.checkedColor:radioStyleConfig.uncheckedColor,boxShadow:radioStyleConfig.shadow,transition:\"background-color 0.2s ease, border-color 0.2s ease\"});const hiddenInputStyle={position:\"absolute\",opacity:0,width:0,height:0,pointerEvents:\"none\"};const normalizedOptionLabelFontWeight=(()=>{const current=optionLabelStyleConfig.font?.fontWeight;if(current===undefined||current===null||current===\"\"||current===\"normal\"||current===\"regular\"||current===400||current===\"400\"){return 400;}return current;})();const optionTextStyle={...optionLabelStyleConfig.font,fontWeight:normalizedOptionLabelFontWeight,color:optionLabelStyleConfig.color,cursor:\"pointer\",userSelect:\"none\"};const dotStyle={width:`${radioStyleConfig.size*.5}px`,height:`${radioStyleConfig.size*.5}px`,borderRadius:\"50%\",backgroundColor:radioStyleConfig.dotColor,display:\"block\",position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\"};const iconStyle={width:`${iconsConfig.size}px`,height:`${iconsConfig.size}px`,objectFit:\"contain\",display:\"block\"};const errorMessageStyle={...errorStyleConfig.font,color:errorStyleConfig.color,marginTop:\"6px\",overflow:\"hidden\"};const renderRadioDot=isChecked=>{if(iconsConfig.showIcon){const currentIcon=isChecked?iconsConfig.checkedIcon:iconsConfig.uncheckedIcon;if(currentIcon){return /*#__PURE__*/_jsx(\"div\",{style:{width:`${iconsConfig.size}px`,height:`${iconsConfig.size}px`,backgroundColor:iconsConfig.color,WebkitMaskImage:`url(${currentIcon})`,maskImage:`url(${currentIcon})`,WebkitMaskRepeat:\"no-repeat\",maskRepeat:\"no-repeat\",WebkitMaskPosition:\"center\",maskPosition:\"center\",WebkitMaskSize:\"contain\",maskSize:\"contain\",flexShrink:0}});}}if(isChecked){return /*#__PURE__*/_jsx(\"div\",{style:dotStyle});}return null;};const getRadioState=optionValue=>{if(error)return\"error\";if(focusedValue===optionValue)return\"focused\";return\"idle\";};if(!isVisible)return null;return /*#__PURE__*/_jsxs(\"div\",{style:{...containerStyle,opacity:effectiveDisabled||effectiveReadOnly?.5:1,pointerEvents:effectiveDisabled||effectiveReadOnly?\"none\":undefined},children:[labelConfig.show&&currentLabelText&&/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:fieldLabelStyle,children:[currentLabelText,effectiveRequired&&/*#__PURE__*/_jsx(\"span\",{style:{color:errorStyleConfig.color,marginLeft:\"2px\"},children:labelConfig.requiredMark||\"*\"})]}),description&&/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"12px\",color:\"#6B7280\",marginTop:\"4px\",lineHeight:1.4},children:description})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0,width:\"100%\"},children:[/*#__PURE__*/_jsx(\"input\",{ref:hiddenValueRef,type:\"text\",name:fieldName,value:value,required:effectiveRequired,disabled:effectiveDisabled,readOnly:true,onChange:()=>{},onInvalid:handleInvalid,tabIndex:-1,\"aria-hidden\":\"true\",style:{position:\"absolute\",opacity:0,width:0,height:0,padding:0,border:\"none\",pointerEvents:\"none\",overflow:\"hidden\"}}),/*#__PURE__*/_jsx(\"div\",{style:optionsContainerStyle,role:\"radiogroup\",\"aria-labelledby\":currentLabelText,children:parsedOptions.map((option,index)=>{const isChecked=value===option.value;const isFocused=focusedValue===option.value;const inputId=`${fieldName}-${option.value}`;const radioState=getRadioState(option.value);return /*#__PURE__*/_jsxs(\"label\",{htmlFor:inputId,style:optionWrapperStyle,children:[/*#__PURE__*/_jsx(Wrapper,{...!isCanvas&&{animate:radioState,variants:radioVariants,transition:{duration:.2,ease:\"easeOut\"}},style:radioBoxStyle(isChecked,isFocused),children:renderRadioDot(isChecked)}),/*#__PURE__*/_jsx(\"input\",{ref:el=>{inputRefs.current[option.value]=el;},id:inputId,type:\"radio\",value:option.value,checked:isChecked,disabled:effectiveDisabled||effectiveReadOnly,onFocus:()=>handleFocus(option.value),onBlur:handleBlur,onChange:handleChange,\"aria-invalid\":error?\"true\":undefined,\"aria-describedby\":error?errorId:undefined,style:hiddenInputStyle}),/*#__PURE__*/_jsx(\"span\",{style:optionTextStyle,children:option.label})]},option.value);})}),/*#__PURE__*/_jsx(AnimatePresence,{children:error&&!isCanvas&&/*#__PURE__*/_jsx(motion.div,{id:errorId,role:\"alert\",initial:{opacity:0,y:-4,height:0},animate:{opacity:1,y:0,height:\"auto\"},exit:{opacity:0,y:-4,height:0},transition:{duration:.2,ease:\"easeOut\"},style:errorMessageStyle,children:error},\"error-message\")})]})]});}RadioButtonsControl.displayName=\"Radio Buttons\";RadioButtonsControl.defaultProps={name:\"radio-group\",labelText:\"Choose an option\",description:\"\",required:false,defaultValue:\"\",options:[{label:\"Option 1\",value:\"option-1\",enabled:true},{label:\"Option 2\",value:\"option-2\",enabled:true},{label:\"Option 3\",value:\"option-3\",enabled:true}],validation:DEFAULT_VALIDATION,label:DEFAULT_LABEL,layout:DEFAULT_LAYOUT,radioStyle:DEFAULT_RADIO_STYLE,optionLabelStyle:DEFAULT_OPTION_LABEL_STYLE,icons:DEFAULT_ICONS,focusStyle:DEFAULT_FOCUS_STYLE,errorStyle:DEFAULT_ERROR_STYLE,conditions:[],_meta:\"\",style:{}};addPropertyControls(RadioButtonsControl,{name:{type:ControlType.String,title:\"Field Name\",defaultValue:\"radio-group\",description:\"Unique name used in submitted form data.\"},labelText:{type:ControlType.String,title:\"Label Text\",defaultValue:\"Choose an option\"},description:{type:ControlType.String,title:\"Description\",defaultValue:\"\",description:\"Help text displayed below the label.\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},defaultValue:{type:ControlType.String,title:\"Default Value\",defaultValue:\"\",description:\"The value of the initially selected option (e.g., 'option-1').\"},options:{type:ControlType.Array,title:\"Options\",defaultValue:[{label:\"Option 1\",value:\"option-1\",enabled:true},{label:\"Option 2\",value:\"option-2\",enabled:true},{label:\"Option 3\",value:\"option-3\",enabled:true}],control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"\",description:\"Text shown to user\"},value:{type:ControlType.String,title:\"Value\",defaultValue:\"\",description:\"Data sent when submitted\"},enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Show or hide this option in the form.\"}}}},validation:{type:ControlType.Object,title:\"Validation\",controls:{requiredMessage:{type:ControlType.String,title:\"Required Error\",defaultValue:\"\",description:\"Message when no option is selected. Supports {label}, {name}.\"}}},label:{type:ControlType.Object,title:\"Label Style\",controls:{show:{type:ControlType.Boolean,title:\"Show Label\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},requiredMark:{type:ControlType.String,title:\"Required Mark\",defaultValue:\"*\",hidden(props){return props.show===false;}},font:{type:ControlType.Font,title:\"Label Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:12,fontWeight:\"500\",lineHeight:\"1.2em\"},hidden(props){return props.show===false;}},color:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#888888\",hidden(props){return props.show===false;}}}},layout:{type:ControlType.Object,title:\"Layout\",controls:{direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"vertical\",options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],optionIcons:[\"direction-vertical\",\"direction-horizontal\"],displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,max:40,step:2,unit:\"px\"},labelWidth:{type:ControlType.Number,title:\"Label Width\",defaultValue:120,min:40,max:300,step:4,unit:\"px\",hidden(props){return props.direction!==\"horizontal\";}},optionsDirection:{type:ControlType.Enum,title:\"Options Layout\",defaultValue:\"vertical\",options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],optionIcons:[\"direction-vertical\",\"direction-horizontal\"],displaySegmentedControl:true,description:\"Layout direction for radio button options.\"},optionsGap:{type:ControlType.Number,title:\"Options Gap\",defaultValue:12,min:0,max:40,step:2,unit:\"px\",description:\"Space between radio button options.\"}}},radioStyle:{type:ControlType.Object,title:\"Radio Style\",controls:{size:{type:ControlType.Number,title:\"Size\",defaultValue:20,min:12,max:48,step:2,unit:\"px\",displayStepper:true},uncheckedColor:{type:ControlType.Color,title:\"Unchecked\",defaultValue:\"#ffffff\"},checkedColor:{type:ControlType.Color,title:\"Checked\",defaultValue:\"#3B82F6\"},dotColor:{type:ControlType.Color,title:\"Dot Color\",defaultValue:\"#ffffff\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#d1d5db\"}},shadow:{type:ControlType.BoxShadow,title:\"Shadow\",defaultValue:\"none\"}}},optionLabelStyle:{type:ControlType.Object,title:\"Option Label Style\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,fontWeight:\"400\",lineHeight:\"1.4em\"}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#333333\"}}},icons:{type:ControlType.Object,title:\"Custom Icons\",controls:{showIcon:{type:ControlType.Boolean,title:\"Use Icons\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Replace radio dot with custom icons.\"},uncheckedIcon:{type:ControlType.Image,title:\"Unchecked Icon\",hidden(props){return props.showIcon===false;}},checkedIcon:{type:ControlType.Image,title:\"Checked Icon\",hidden(props){return props.showIcon===false;}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#6B7280\",hidden(props){return props.showIcon===false;}},size:{type:ControlType.Number,title:\"Icon Size\",defaultValue:16,min:8,max:32,step:1,unit:\"px\",displayStepper:true,hidden(props){return props.showIcon===false;}}}},focusStyle:{type:ControlType.Object,title:\"Focus Style\",controls:{borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#3B82F6\"},shadow:{type:ControlType.BoxShadow,title:\"Shadow\",defaultValue:\"0 0 0 3px rgba(59,130,246,0.2)\"},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:1,max:1.1,step:.01}}},errorStyle:{type:ControlType.Object,title:\"Error Style\",description:\"by [Forms Plugin](https://formsplugin.com/?ref=field_setting)\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#dc2626\"},font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:12,lineHeight:1.4}}}},...CONDITION_ARRAY_CONTROL,_meta:{type:ControlType.String,defaultValue:\"\",hidden(){return true;}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RadioButtonsControl\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"300\",\"framerIntrinsicHeight\":\"150\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RadioButtonsControl.map"],"mappings":"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"}