{"version":3,"file":"PhoneInputDigitsOnly.xLTbfroo.mjs","names":["useRef","useState","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/4ncrwl43i0NCDHxvdTZS/K4chezjEzPIW1gAuMa5t/PhoneInputDigitsOnly.js"],"sourcesContent":["// User request: create a Framer code component phone input that only allows phone numbers (no text), for use with Framer native form.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import React,{startTransition,useCallback,useMemo,useRef,useState}from\"react\";/**\n * Phone Input (Digits Only)\n *\n * @framerIntrinsicWidth 320\n * @framerIntrinsicHeight 44\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function PhoneInputDigitsOnly(props){const{mode,fieldName,placeholder,required,defaultValue,allowPlus,allowFormatting,showValidationPopup,invalidCharMessage,invalidPhoneMessage,minDigits,phoneMaxLength,messageMinLength,invalidMessageMessage,messageMinRows,textAreaMaxLength,invalidTextAreaTooLongMessage,backgroundColor,textColor,placeholderColor,borderColor,focusBorderColor,radius,padding,font,style}=props;const inputRef=useRef(null);const textareaRef=useRef(null);const[value,setValue]=useState(()=>defaultValue||\"\");const[isFocused,setIsFocused]=useState(false);const sanitize=useCallback(raw=>{if(mode!==\"phone\")return raw??\"\";const trimmed=raw??\"\";// Build allowed character set\n// Always allow digits. Optionally allow formatting characters.\nlet next=trimmed;if(allowFormatting){// Keep digits, spaces, parentheses and dashes. Plus is handled below.\nnext=next.replace(/[^0-9+\\s()\\-]/g,\"\");}else{// Only digits and optional plus (handled below).\nnext=next.replace(/[^0-9+]/g,\"\");}// Handle plus: only allowed at the beginning and only if enabled.\nif(!allowPlus){next=next.replace(/\\+/g,\"\");}else{// Remove all pluses, then add one at start if original started with plus\nconst startsWithPlus=next.trim().startsWith(\"+\");next=next.replace(/\\+/g,\"\");if(startsWithPlus)next=\"+\"+next;}const maxLen=Number.isFinite(phoneMaxLength)?Math.max(0,Math.round(phoneMaxLength)):0;if(maxLen>0)next=next.slice(0,maxLen);return next;},[allowFormatting,allowPlus,mode,phoneMaxLength]);const invalidCharRegex=useMemo(()=>{if(mode!==\"phone\")return null;// Anything outside what we allow is considered invalid input.\n// This is used only to trigger the browser popup message.\nif(allowFormatting)return/[^0-9+\\s()\\-]/;return/[^0-9+]/;},[allowFormatting,mode]);const getDigitCount=useCallback(s=>{const m=(s||\"\").match(/\\d/g);return m?m.length:0;},[]);const handleChange=useCallback(e=>{const raw=e.target.value;if(mode===\"phone\"){const inputEl=inputRef.current;if(inputEl&&invalidCharRegex){if(invalidCharRegex.test(raw)){inputEl.setCustomValidity(invalidCharMessage);if(showValidationPopup)inputEl.reportValidity();}else{inputEl.setCustomValidity(\"\");}}}if(mode===\"textArea\"){const textareaEl=textareaRef.current;if(textareaEl){const maxLen=Number.isFinite(textAreaMaxLength)?Math.max(0,Math.round(textAreaMaxLength)):0;const len=(raw||\"\").replace(/[\\r\\n]+/g,\" \").length;if(maxLen>0&&len>maxLen){textareaEl.setCustomValidity(invalidTextAreaTooLongMessage);if(showValidationPopup)textareaEl.reportValidity();}else{textareaEl.setCustomValidity(\"\");}}}const normalized=mode===\"textArea\"?(raw||\"\").replace(/[\\r\\n]+/g,\" \"):raw;const cleaned=sanitize(normalized);startTransition(()=>setValue(cleaned));},[sanitize,invalidCharRegex,invalidCharMessage,showValidationPopup,mode,textAreaMaxLength,invalidTextAreaTooLongMessage]);const onFocus=useCallback(()=>{startTransition(()=>setIsFocused(true));},[]);const onBlur=useCallback(()=>{startTransition(()=>setIsFocused(false));if(mode===\"phone\"){const inputEl=inputRef.current;if(!inputEl)return;const digits=getDigitCount(inputEl.value);const min=Number.isFinite(minDigits)?Math.max(0,Math.round(minDigits)):0;const shouldValidateMin=min>0&&(required||digits>0);if(shouldValidateMin&&digits<min){inputEl.setCustomValidity(invalidPhoneMessage);if(showValidationPopup)inputEl.reportValidity();return;}// Clear any custom error when valid.\ninputEl.setCustomValidity(\"\");return;}const textareaEl=textareaRef.current;if(!textareaEl)return;if(mode===\"textArea\"){const maxLen=Number.isFinite(textAreaMaxLength)?Math.max(0,Math.round(textAreaMaxLength)):0;const len=(textareaEl.value||\"\").length;const shouldValidateMax=maxLen>0&&len>maxLen;if(shouldValidateMax){textareaEl.setCustomValidity(invalidTextAreaTooLongMessage);if(showValidationPopup)textareaEl.reportValidity();return;}textareaEl.setCustomValidity(\"\");return;}const minLen=Number.isFinite(messageMinLength)?Math.max(0,Math.round(messageMinLength)):0;const len=(textareaEl.value||\"\").length;const shouldValidateMin=minLen>0&&(required||len>0);if(shouldValidateMin&&len<minLen){textareaEl.setCustomValidity(invalidMessageMessage);if(showValidationPopup)textareaEl.reportValidity();return;}textareaEl.setCustomValidity(\"\");},[getDigitCount,invalidPhoneMessage,minDigits,required,showValidationPopup,mode,messageMinLength,invalidMessageMessage,textAreaMaxLength,invalidTextAreaTooLongMessage]);const mergedStyle=useMemo(()=>{const base={position:\"relative\",width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\"};return{...base,...style};},[style]);const inputStyle=useMemo(()=>({width:\"100%\",height:\"100%\",boxSizing:\"border-box\",borderRadius:radius,padding,border:`1px solid ${isFocused?focusBorderColor:borderColor}`,outline:\"none\",background:backgroundColor,color:textColor,WebkitAppearance:\"none\",appearance:\"none\",...font}),[radius,padding,isFocused,focusBorderColor,borderColor,backgroundColor,textColor,font]);const textareaStyleMessage=useMemo(()=>({...inputStyle,height:\"auto\",minHeight:\"100%\",resize:\"none\",overflow:\"hidden\"}),[inputStyle]);const textareaStyleFixed=useMemo(()=>({...inputStyle,height:\"100%\",resize:\"none\",overflow:\"auto\"}),[inputStyle]);const textareaStyleTextArea=useMemo(()=>({...inputStyle,height:\"100%\",resize:\"none\",whiteSpace:\"nowrap\",overflowX:\"auto\",overflowY:\"hidden\"}),[inputStyle]);const autosizeTextarea=useCallback(()=>{const el=textareaRef.current;if(!el)return;el.style.height=\"auto\";el.style.height=`${el.scrollHeight}px`;},[]);React.useEffect(()=>{if(mode!==\"message\")return;autosizeTextarea();},[mode,value,autosizeTextarea]);// We inject a unique placeholder style via a scoped style tag.\nconst placeholderClass=useMemo(()=>{const safe=(fieldName||\"phone\").replace(/[^a-zA-Z0-9_-]/g,\"_\");return`framer-phone-input-${safe}`;},[fieldName]);return /*#__PURE__*/_jsxs(\"div\",{style:mergedStyle,children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .${placeholderClass}::placeholder { color: ${placeholderColor}; opacity: 1; }\n            `}),mode===\"phone\"?/*#__PURE__*/_jsx(\"input\",{ref:inputRef,className:placeholderClass,name:fieldName,type:\"tel\",inputMode:\"tel\",autoComplete:\"tel\",placeholder:placeholder,required:required,maxLength:Number.isFinite(phoneMaxLength)&&Math.round(phoneMaxLength)>0?Math.max(0,Math.round(phoneMaxLength)):undefined,value:value,onChange:handleChange,onFocus:onFocus,onBlur:onBlur,\"aria-label\":fieldName||\"phone\",style:inputStyle}):/*#__PURE__*/_jsx(\"textarea\",{ref:textareaRef,className:placeholderClass,name:fieldName,placeholder:placeholder,required:required,minLength:mode===\"message\"&&Number.isFinite(messageMinLength)?Math.max(0,Math.round(messageMinLength)):undefined,rows:mode===\"message\"?Math.max(1,Math.round(messageMinRows||1)):1,wrap:mode===\"textArea\"?\"off\":undefined,value:value,onChange:handleChange,onKeyDown:mode===\"textArea\"?e=>{if(e.key===\"Enter\")e.preventDefault();}:undefined,onFocus:onFocus,onBlur:onBlur,\"aria-label\":fieldName||\"message\",style:mode===\"message\"?textareaStyleMessage:mode===\"textArea\"?textareaStyleTextArea:textareaStyleFixed})]});}addPropertyControls(PhoneInputDigitsOnly,{mode:{type:ControlType.Enum,title:\"Mode\",defaultValue:\"phone\",options:[\"phone\",\"message\",\"textArea\"],optionTitles:[\"Phone\",\"Message\",\"Text Area\"],displaySegmentedControl:true},fieldName:{type:ControlType.String,title:\"Name\",defaultValue:\"phone\",placeholder:\"phone\"},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Phone number\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},defaultValue:{type:ControlType.String,title:\"Default\",defaultValue:\"\"},allowPlus:{type:ControlType.Boolean,title:\"Allow +\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:({mode})=>mode!==\"phone\"},allowFormatting:{type:ControlType.Boolean,title:\"Formatting\",defaultValue:true,enabledTitle:\"Allow\",disabledTitle:\"Digits\",hidden:({mode})=>mode!==\"phone\"},showValidationPopup:{type:ControlType.Boolean,title:\"Popup\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Off\"},invalidCharMessage:{type:ControlType.String,title:\"Invalid chars\",defaultValue:\"Please enter a valid phone number.\",displayTextArea:true,hidden:({mode})=>mode!==\"phone\"},minDigits:{type:ControlType.Number,title:\"Min digits\",defaultValue:7,min:0,max:20,step:1,hidden:({mode})=>mode!==\"phone\"},phoneMaxLength:{type:ControlType.Number,title:\"Max length\",defaultValue:0,min:0,max:50,step:1,hidden:({mode})=>mode!==\"phone\"},invalidPhoneMessage:{type:ControlType.String,title:\"Invalid phone\",defaultValue:\"Please enter a valid phone number.\",displayTextArea:true,hidden:({mode})=>mode!==\"phone\"},messageMinLength:{type:ControlType.Number,title:\"Min length\",defaultValue:10,min:0,max:100,step:1,hidden:({mode})=>mode!==\"message\"},textAreaMaxLength:{type:ControlType.Number,title:\"Max length\",defaultValue:512,min:0,max:5e3,step:1,hidden:({mode})=>mode!==\"textArea\"},invalidTextAreaTooLongMessage:{type:ControlType.String,title:\"Too long\",defaultValue:\"Text is too long.\",displayTextArea:true,hidden:({mode})=>mode!==\"textArea\"},invalidMessageMessage:{type:ControlType.String,title:\"Invalid message\",defaultValue:\"Please enter a longer message.\",displayTextArea:true,hidden:({mode})=>mode!==\"message\"},messageMinRows:{type:ControlType.Number,title:\"Min rows\",defaultValue:3,min:1,max:12,step:1,hidden:({mode})=>mode!==\"message\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#000000\"},placeholderColor:{type:ControlType.Color,title:\"Placeholder\",defaultValue:\"#CCCCCC\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#EEEEEE\"},focusBorderColor:{type:ControlType.Color,title:\"Focus border\",defaultValue:\"#000000\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"10px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"10px 12px\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PhoneInputDigitsOnly\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"320\",\"framerIntrinsicHeight\":\"44\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PhoneInputDigitsOnly.map"],"mappings":"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"}