{"version":3,"file":"ButtonInputGroup.D_UNdZeC.mjs","names":["useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/grGdrspwPZt1GlFepHUf/m3l0PaLq4uACOQJhF8dj/ButtonInputGroup.js"],"sourcesContent":["// User request: Add a backwards-compatible string property control named optionsJson (\"Options JSON\") that defaults to empty/optional, use parsed valid JSON array options when provided, and gracefully fall back to existing options array without changing visual styling.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useCallback,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Button Group\n * \n * A form field component that displays a group of selectable buttons.\n * \n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function ButtonGroup(props){const{options,optionsJson,multiSelect,required,layout,buttonFont,buttonRadius,buttonPadding,buttonBorderColor,buttonBackground,selectedBackground,selectedTextColor,selectedBorderColor,name,label,style,onValueChange}=props;const[selectedValues,setSelectedValues]=useState([]);const resolvedOptions=useMemo(()=>{if(!optionsJson||optionsJson.trim()===\"\")return options;try{const parsed=JSON.parse(optionsJson);const isValidArray=Array.isArray(parsed)&&parsed.every(item=>item&&typeof item===\"object\"&&typeof item.label===\"string\"&&typeof item.value===\"string\");return isValidArray?parsed:options;}catch(_error){return options;}},[optionsJson,options]);const handleButtonClick=useCallback(value=>{startTransition(()=>{if(multiSelect){setSelectedValues(prev=>prev.includes(value)?prev.filter(v=>v!==value):[...prev,value]);}else{setSelectedValues(prev=>prev.includes(value)&&prev.length===1?[]:[value]);}});},[multiSelect]);useEffect(()=>{if(onValueChange){onValueChange(multiSelect?selectedValues:selectedValues[0]||\"\");}},[selectedValues,multiSelect,onValueChange]);const containerStyle=useMemo(()=>{const{columns,horizontalAlign,verticalAlign,gapH,gapV,height}=layout;return{display:\"grid\",gridTemplateColumns:`repeat(${columns}, 1fr)`,gap:`${gapV}px ${gapH}px`,width:\"100%\",justifyItems:horizontalAlign,alignItems:verticalAlign,...style};},[layout,style]);const formValue=multiSelect?selectedValues.join(\",\"):selectedValues[0]||\"\";return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\"},children:[label&&/*#__PURE__*/_jsxs(\"label\",{style:{display:\"block\",marginBottom:\"8px\",color:\"#8A8A8A\",fontSize:\"13px\",fontWeight:500},children:[label,required&&/*#__PURE__*/_jsx(\"span\",{style:{color:\"#FF4A4A\"},children:\" *\"})]}),/*#__PURE__*/_jsx(\"div\",{style:containerStyle,children:resolvedOptions.map((option,index)=>{const isSelected=selectedValues.includes(option.value);return /*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>handleButtonClick(option.value),style:{padding:`${buttonPadding}px`,borderRadius:`${buttonRadius}px`,border:`1px solid ${isSelected?selectedBorderColor:buttonBorderColor}`,background:isSelected?selectedBackground:buttonBackground,color:isSelected?selectedTextColor:\"#999999\",cursor:\"pointer\",transition:\"all 0.2s ease\",minHeight:\"36px\",minWidth:\"36px\",outline:\"none\",fontFamily:\"Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\",fontSize:\"14px\",fontWeight:400,width:layout.height===\"fill\"?\"100%\":\"auto\",...buttonFont,\":focus\":{borderColor:\"#0099FF\"}},\"aria-pressed\":isSelected,children:option.label},index);})}),/*#__PURE__*/_jsx(\"input\",{type:\"hidden\",name:name,value:formValue,required:required,\"data-framer-name\":name,\"data-framer-form-input-type\":\"button-group\"})]});}addPropertyControls(ButtonGroup,{name:{type:ControlType.String,title:\"Field Name\",defaultValue:\"buttonGroup\"},options:{type:ControlType.Array,title:\"Options\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Option\"},value:{type:ControlType.String,title:\"Value\",defaultValue:\"\"}}},defaultValue:[{label:\"Option 1\",value:\"option1\"},{label:\"Option 2\",value:\"option2\"},{label:\"Option 3\",value:\"option3\"}]},optionsJson:{type:ControlType.String,title:\"Options JSON\",defaultValue:\"\",displayTextArea:true},multiSelect:{type:ControlType.Boolean,title:\"Multi-select\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},layout:{type:ControlType.Object,title:\"Layout\",controls:{columns:{type:ControlType.Number,title:\"Columns\",defaultValue:3,min:1,max:12,displayStepper:true},height:{type:ControlType.Enum,title:\"Height\",options:[\"fit\",\"fill\"],optionTitles:[\"Fit\",\"Fill\"],defaultValue:\"fit\",displaySegmentedControl:true},horizontalAlign:{type:ControlType.Enum,title:\"Align\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"start\",displaySegmentedControl:true},verticalAlign:{type:ControlType.Enum,title:\"Align\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:\"top\",displaySegmentedControl:true},gapH:{type:ControlType.Number,title:\"Gap H\",defaultValue:10,min:0,max:100,step:1},gapV:{type:ControlType.Number,title:\"Gap V\",defaultValue:10,min:0,max:100,step:1}}},buttonFont:{type:ControlType.Font,title:\"Button Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Regular\",lineHeight:\"1.2em\"}},buttonRadius:{type:ControlType.Number,title:\"Button Radius\",defaultValue:10,min:0,max:20,step:1,displayStepper:true},buttonPadding:{type:ControlType.Number,title:\"Button Padding\",defaultValue:10,min:0,max:30,step:1,displayStepper:true},buttonBorderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"rgba(136, 136, 136, 0.1)\"},buttonBackground:{type:ControlType.Color,title:\"Button Background\",defaultValue:\"rgba(187, 187, 187, 0.15)\"},selectedBackground:{type:ControlType.Color,title:\"Selected Background\",defaultValue:\"#0055FF\"},selectedTextColor:{type:ControlType.Color,title:\"Selected Text Color\",defaultValue:\"#FFFFFF\"},selectedBorderColor:{type:ControlType.Color,title:\"Selected Border\",defaultValue:\"#0099FF\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ButtonGroup\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ButtonInputGroup.map"],"mappings":"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"}