{"version":3,"file":"CheckboxControl.Cdymb8s4.mjs","names":["useId","useState","useRef","useMemo","useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/xxMxEDu84ytmIfnefF9k/CcLI6eaZyvqbQOVeD82U/CheckboxControl.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{AnimatePresence,motion}from\"framer-motion\";import{useCallback,useEffect,useId,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,font:{fontSize:14,fontWeight:\"400\",lineHeight:\"1.4em\"},color:\"#333333\",position:\"right\"};const DEFAULT_LINK_STYLE={font:{},color:\"#3B82F6\",hoverColor:\"#3B82F6\",textDecoration:\"underline\",hoverTextDecoration:\"none\"};const DEFAULT_LAYOUT={direction:\"vertical\",gap:8,labelWidth:120};const DEFAULT_CHECKBOX_STYLE={size:20,uncheckedColor:\"#ffffff\",checkedColor:\"#3B82F6\",checkmarkColor:\"#ffffff\",border:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#d1d5db\"},radius:\"4px\",shadow:\"\"};const DEFAULT_FOCUS_STYLE={borderColor:\"#3B82F6\",shadow:\"0 0 0 3px rgba(59,130,246,0.2)\",scale:1};const DEFAULT_ERROR_STYLE={color:\"#dc2626\",font:{fontSize:12,lineHeight:1.4}};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 52\n * @framerDisableUnlink\n */export default function CheckboxControl(props){const{name,labelText,labelLinks,required,defaultChecked,checkValue,uncheckValue,conditions,validation,label,linkStyle,layout,checkboxStyle,focusStyle,errorStyle,_meta,style}=props;const validationConfig={...DEFAULT_VALIDATION,...validation||{}};const labelConfig={...DEFAULT_LABEL,...label||{},font:{...DEFAULT_LABEL.font,...label&&label.font||{}}};const linkStyleConfig={...DEFAULT_LINK_STYLE,...linkStyle||{},font:{...DEFAULT_LINK_STYLE.font,...linkStyle&&linkStyle.font||{}}};const layoutConfig={...DEFAULT_LAYOUT,...layout||{}};const checkboxStyleConfig={...DEFAULT_CHECKBOX_STYLE,...checkboxStyle||{},border:{...DEFAULT_CHECKBOX_STYLE.border,...checkboxStyle&&checkboxStyle.border||{}}};const focusStyleConfig={...DEFAULT_FOCUS_STYLE,...focusStyle||{}};const errorStyleConfig={...DEFAULT_ERROR_STYLE,...errorStyle||{},font:{...DEFAULT_ERROR_STYLE.font,...errorStyle&&errorStyle.font||{}}};const fieldName=name||\"checkbox\";const currentLabelText=labelText||\"Checkbox\";const inputId=`field-${fieldName}`;const errorId=`error-${fieldName}`;// Unique per instance so each checkbox's link hover styles don't leak\n// onto other checkboxes sharing the page.\nconst linkClass=`fp-cb-link-${useId().replace(/:/g,\"\")}`;const[checked,setChecked]=useState(defaultChecked);const[error,setError]=useState(\"\");const[isFocused,setIsFocused]=useState(false);const inputRef=useRef(null);const proxyRef=useRef(null);const rootRef=useRef(null);// The value that is actually submitted and read by conditional logic.\n// Authors set these per state; defaults keep the checked value as \"true\"\n// (what conditional logic already reported for a checked box) and the\n// unchecked value empty (so `is_empty` rules behave exactly as before).\nconst checkedValue=checkValue??\"true\";const uncheckedValue=uncheckValue??\"\";const submitValue=checked?checkedValue:uncheckedValue;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const Wrapper=isCanvas?\"div\":motion.div;const conditionItems=useMemo(()=>conditions||[],[conditions]);const handleValueReset=useCallback(()=>{setChecked(false);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 parsedMeta=useMemo(()=>{if(!_meta)return null;try{return JSON.parse(_meta);}catch{return null;}},[_meta]);void parsedMeta;useEffect(()=>{setChecked(defaultChecked);},[defaultChecked]);// Keep the hidden proxy (the field that submits and that conditional logic\n// reads) in sync with the checked state, and fire a native change event so\n// condition watchers re-evaluate whenever the value flips.\nuseEffect(()=>{const el=proxyRef.current;if(!el)return;const nativeInputValueSetter=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,\"value\")?.set;nativeInputValueSetter?.call(el,submitValue);el.dispatchEvent(new Event(\"change\",{bubbles:true}));},[submitValue]);// Form submission handler to enforce required validation\nuseEffect(()=>{if(isCanvas)return;if(!effectiveRequired)return;const form=rootRef.current?.closest(\"form\");if(!form)return;const handleSubmit=event=>{if(!checked){event.preventDefault();event.stopPropagation();const message=validationConfig.requiredMessage?.trim()?validationConfig.requiredMessage.replace(/\\{label\\}/g,currentLabelText||fieldName).replace(/\\{name\\}/g,fieldName):`${currentLabelText||fieldName} must be checked`;setError(message);return;}setError(\"\");};form.addEventListener(\"submit\",handleSubmit,true);return()=>{form.removeEventListener(\"submit\",handleSubmit,true);};},[isCanvas,effectiveRequired,checked,validationConfig.requiredMessage,currentLabelText,fieldName]);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 resolveMessage=useCallback(el=>{if(el.validity.valueMissing){return applyTokens(validationConfig.requiredMessage,`${currentLabelText||fieldName} must be checked`);}return el.validationMessage;},[applyTokens,fieldName,currentLabelText,validationConfig.requiredMessage]);const validate=useCallback(()=>{const el=inputRef.current;if(!el)return;el.setCustomValidity(\"\");if(!el.validity.valid){const message=resolveMessage(el);setError(message);if(hasCustomMessages){el.setCustomValidity(message);}}else{setError(\"\");}},[hasCustomMessages,resolveMessage]);const handleFocus=useCallback(()=>{setIsFocused(true);setError(\"\");},[]);const handleBlur=useCallback(()=>{setIsFocused(false);validate();},[validate]);const handleChange=useCallback(event=>{const nextChecked=event.currentTarget.checked;setChecked(nextChecked);if(error){const el=inputRef.current;if(el&&el.validity.valid){setError(\"\");el.setCustomValidity(\"\");}}},[error]);const handleInvalid=useCallback(event=>{event.preventDefault();validate();},[validate]);const checkboxVariants={idle:{borderColor:checkboxStyleConfig.border?.borderColor||\"#d1d5db\",boxShadow:checkboxStyleConfig.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 checkboxState=error?\"error\":isFocused?\"focused\":\"idle\";const describedBy=error?errorId:undefined;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 checkboxWrapperStyle={display:\"flex\",alignItems:\"center\",gap:\"8px\",cursor:\"pointer\",flexDirection:labelConfig.position===\"left\"?\"row-reverse\":\"row\"};const checkboxBoxStyle={position:\"relative\",width:`${checkboxStyleConfig.size}px`,height:`${checkboxStyleConfig.size}px`,flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",...checkboxStyleConfig.border,borderWidth:checkboxStyleConfig.border?.borderWidth||2,borderStyle:checkboxStyleConfig.border?.borderStyle||\"solid\",borderColor:checkboxStyleConfig.border?.borderColor||\"#d1d5db\",borderRadius:checkboxStyleConfig.radius,backgroundColor:checked?checkboxStyleConfig.checkedColor:checkboxStyleConfig.uncheckedColor,boxShadow:checkboxStyleConfig.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 normalizedLabelFontWeight=(()=>{const current=labelConfig.font?.fontWeight;if(current===undefined||current===null||current===\"\"||current===\"normal\"||current===\"regular\"||current===400||current===\"400\"){return 400;}return current;})();const labelStyle={...labelConfig.font,fontWeight:normalizedLabelFontWeight,color:labelConfig.color,cursor:\"pointer\",userSelect:\"none\"};// Base link appearance is inline (so the Font object applies cleanly and\n// inherits the label font when left empty); hover states live in the\n// injected CSS below since inline styles can't express :hover.\nconst linkInlineStyle={...linkStyleConfig.font,color:linkStyleConfig.color,textDecoration:linkStyleConfig.textDecoration,cursor:\"pointer\"};const checkmarkStyle={width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"};const checkmarkSvgStyle={width:`${checkboxStyleConfig.size*.6}px`,height:`${checkboxStyleConfig.size*.6}px`,strokeWidth:2,stroke:checkboxStyleConfig.checkmarkColor,fill:\"none\"};const errorMessageStyle={...errorStyleConfig.font,color:errorStyleConfig.color,marginTop:\"6px\",overflow:\"hidden\"};const renderCheckmark=()=>{if(checked){return /*#__PURE__*/_jsx(\"svg\",{style:checkmarkSvgStyle,viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"polyline\",{points:\"20 6 9 17 4 12\"})});}return null;};// Render label with links - replaces [text] patterns with actual links\nconst renderLabelWithLinks=()=>{if(!labelLinks||labelLinks.length===0){return currentLabelText;}let result=[currentLabelText];labelLinks.forEach((link,linkIndex)=>{if(!link.text||!link.url)return;const pattern=`[${link.text}]`;const newResult=[];result.forEach((part,partIndex)=>{if(typeof part===\"string\"){const parts=part.split(pattern);parts.forEach((subPart,subIndex)=>{if(subPart)newResult.push(subPart);if(subIndex<parts.length-1){newResult.push(/*#__PURE__*/_jsx(\"a\",{className:linkClass,href:link.url,target:\"_blank\",rel:\"noopener noreferrer\",style:linkInlineStyle,onClick:e=>e.stopPropagation(),children:link.text},`link-${linkIndex}-${partIndex}-${subIndex}`));}});}else{newResult.push(part);}});result=newResult;});return /*#__PURE__*/_jsx(_Fragment,{children:result});};if(!isVisible)return null;return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{...containerStyle,...effectiveDisabled?{opacity:.5,pointerEvents:\"none\"}:{}},children:[/*#__PURE__*/_jsx(\"style\",{children:`.${linkClass}:hover { color: ${linkStyleConfig.hoverColor} !important; text-decoration: ${linkStyleConfig.hoverTextDecoration} !important; }`}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0,width:\"100%\"},children:[/*#__PURE__*/_jsxs(\"label\",{htmlFor:inputId,style:checkboxWrapperStyle,className:\"fp-checkbox-label\",children:[/*#__PURE__*/_jsx(Wrapper,{...!isCanvas&&{animate:checkboxState,variants:checkboxVariants,transition:{duration:.2,ease:\"easeOut\"}},style:checkboxBoxStyle,onClick:e=>{e.preventDefault();inputRef.current?.click();},children:/*#__PURE__*/_jsx(\"div\",{style:checkmarkStyle,children:renderCheckmark()})}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,id:inputId,type:\"checkbox\",required:effectiveRequired,checked:checked,disabled:effectiveDisabled,onFocus:handleFocus,onBlur:handleBlur,onChange:handleChange,onInvalid:handleInvalid,\"aria-invalid\":error?\"true\":undefined,\"aria-describedby\":describedBy,style:hiddenInputStyle}),/*#__PURE__*/_jsx(\"input\",{ref:proxyRef,type:\"text\",name:fieldName,value:submitValue,disabled:effectiveDisabled,readOnly:true,onChange:e=>setChecked(e.target.value===checkedValue),tabIndex:-1,\"aria-hidden\":\"true\",style:{position:\"absolute\",opacity:0,width:0,height:0,padding:0,margin:0,border:\"none\",outline:\"none\",pointerEvents:\"none\",overflow:\"hidden\",clip:\"rect(0,0,0,0)\"}}),labelConfig.show&&currentLabelText&&/*#__PURE__*/_jsx(\"span\",{style:labelStyle,onClick:e=>{// Allow links to work without toggling checkbox\nif(e.target.tagName===\"A\"){e.stopPropagation();}},children:renderLabelWithLinks()})]}),/*#__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\")})]})]});}CheckboxControl.displayName=\"Checkbox\";CheckboxControl.defaultProps={name:\"checkbox\",labelText:\"I agree to the [terms] and [privacy policy]\",labelLinks:[{text:\"terms\",url:\"\"},{text:\"privacy policy\",url:\"\"}],required:false,defaultChecked:false,checkValue:\"true\",uncheckValue:\"\",conditions:[],validation:DEFAULT_VALIDATION,label:DEFAULT_LABEL,linkStyle:DEFAULT_LINK_STYLE,layout:DEFAULT_LAYOUT,checkboxStyle:DEFAULT_CHECKBOX_STYLE,focusStyle:DEFAULT_FOCUS_STYLE,errorStyle:DEFAULT_ERROR_STYLE,_meta:\"\",style:{}};addPropertyControls(CheckboxControl,{name:{type:ControlType.String,title:\"Field Name\",defaultValue:\"checkbox\",description:\"Unique name used in submitted form data.\"},labelText:{type:ControlType.String,title:\"Label Text\",defaultValue:\"I agree to the [terms] and [privacy policy]\",description:\"Use [text] to create links. Define URLs in Label Links below.\"},labelLinks:{type:ControlType.Array,title:\"Label Links\",defaultValue:[{text:\"terms\",url:\"\"},{text:\"privacy policy\",url:\"\"}],control:{type:ControlType.Object,controls:{text:{type:ControlType.String,title:\"Text\",defaultValue:\"\",description:\"Text to match in [brackets]\"},url:{type:ControlType.Link,title:\"URL\",defaultValue:\"\",description:\"Link URL (e.g., /terms or https://...)\"}}}},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},defaultChecked:{type:ControlType.Boolean,title:\"Default Checked\",defaultValue:false,enabledTitle:\"Checked\",disabledTitle:\"Unchecked\"},checkValue:{type:ControlType.String,title:\"Checked Value\",defaultValue:\"true\",description:\"Value submitted when the box is checked.\"},uncheckValue:{type:ControlType.String,title:\"Unchecked Value\",defaultValue:\"\",placeholder:\"(blank)\",description:\"Value submitted when the box is NOT checked. Leave empty to submit a blank value. Conditional logic reads this exact value.\"},validation:{type:ControlType.Object,title:\"Validation\",controls:{requiredMessage:{type:ControlType.String,title:\"Required Error\",defaultValue:\"\",description:\"Message when checkbox is required but not checked. Supports {label}, {name}.\"}}},label:{type:ControlType.Object,title:\"Label Style\",controls:{show:{type:ControlType.Boolean,title:\"Show Label\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},position:{type:ControlType.Enum,title:\"Position\",defaultValue:\"right\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,hidden(props){return props.show===false;}},font:{type:ControlType.Font,title:\"Label Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,fontWeight:\"400\",lineHeight:\"1.4em\"},hidden(props){return props.show===false;}},color:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#333333\",hidden(props){return props.show===false;}}}},linkStyle:{type:ControlType.Object,title:\"Link Style\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#3B82F6\"},hoverColor:{type:ControlType.Color,title:\"Hover Color\",defaultValue:\"#3B82F6\"},textDecoration:{type:ControlType.Enum,title:\"Decoration\",defaultValue:\"underline\",options:[\"underline\",\"none\"],optionTitles:[\"Underline\",\"None\"],displaySegmentedControl:true},hoverTextDecoration:{type:ControlType.Enum,title:\"Hover Decoration\",defaultValue:\"none\",options:[\"underline\",\"none\"],optionTitles:[\"Underline\",\"None\"],displaySegmentedControl:true}}},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\";}}}},checkboxStyle:{type:ControlType.Object,title:\"Checkbox 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\"},checkmarkColor:{type:ControlType.Color,title:\"Checkmark\",defaultValue:\"#ffffff\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:2,borderStyle:\"solid\",borderColor:\"#d1d5db\"}},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"4px\"},shadow:{type:ControlType.BoxShadow,title:\"Shadow\"}}},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\":\"CheckboxControl\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"52\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"300\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CheckboxControl.map"],"mappings":"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"}