{"version":3,"file":"VerticalText.YCqBGSVX.mjs","names":["useState","useMemo"],"sources":["https:/framerusercontent.com/modules/YzAt7pmJbt4TCi3239i4/uOr98FrrctdNX6azgzSR/VerticalText.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo,useState,useEffect}from\"react\";export default function VerticalText(props){const{contentType,text,timezone,timeFormat,mode,direction,font,color,textTransform,characterSpacing,textAlign,style}=props;const[currentTime,setCurrentTime]=useState(\"\");useEffect(()=>{if(contentType!==\"time\")return;const is12h=timeFormat===\"12h\";const formatter=new Intl.DateTimeFormat(\"en-US\",{timeZone:timezone.trim()||undefined,month:\"long\",day:\"numeric\",hour:\"2-digit\",minute:\"2-digit\",hour12:is12h});const updateClock=()=>{try{const parts=formatter.formatToParts(new Date);let month=\"\";let day=\"\";let hour=\"\";let minute=\"\";let dayPeriod=\"\";for(let i=0;i<parts.length;i++){const part=parts[i];if(part.type===\"month\")month=part.value.toUpperCase();else if(part.type===\"day\")day=part.value;else if(part.type===\"hour\")hour=part.value;else if(part.type===\"minute\")minute=part.value;else if(part.type===\"dayPeriod\")dayPeriod=` ${part.value.toUpperCase()}`;}setCurrentTime(`${month} ${day}, ${hour}:${minute}${dayPeriod}`);}catch(e){const now=new Date;setCurrentTime(`TIME, ${now.getHours().toString().padStart(2,\"0\")}:${now.getMinutes().toString().padStart(2,\"0\")}`);}};updateClock();const intervalId=setInterval(updateClock,1e3);return()=>clearInterval(intervalId);},[contentType,timezone,timeFormat]);const displayText=contentType===\"time\"?currentTime:text;const textStyle=useMemo(()=>({...font,color,textTransform:contentType===\"time\"?\"none\":textTransform,margin:0,padding:0}),[font,color,textTransform,contentType]);const chars=useMemo(()=>Array.from(displayText??\"\"),[displayText]);let content=null;if(mode===\"normal\"){content=/*#__PURE__*/_jsx(\"div\",{style:{...textStyle,width:\"100%\",textAlign,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\"},children:displayText});}else if(mode===\"sideways\"){content=/*#__PURE__*/_jsx(\"div\",{style:{...textStyle,writingMode:\"vertical-rl\",textOrientation:\"mixed\",whiteSpace:\"nowrap\",transform:direction===\"up\"?\"rotate(180deg)\":undefined},children:displayText});}else{content=/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:direction===\"up\"?\"column-reverse\":\"column\",alignItems:\"center\",gap:characterSpacing},children:chars.map((ch,i)=>/*#__PURE__*/_jsx(\"span\",{style:{...textStyle,lineHeight:1},children:ch===\" \"?\"\\xa0\":ch},i))});}return /*#__PURE__*/_jsx(\"div\",{style:{display:mode===\"normal\"?\"flex\":\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",...style},children:content});}VerticalText.defaultProps={contentType:\"text\",text:\"VERTICAL\",timezone:\"Europe/London\",timeFormat:\"24h\",mode:\"sideways\",direction:\"down\",color:\"#111111\",textTransform:\"none\",characterSpacing:4,textAlign:\"left\"};addPropertyControls(VerticalText,{contentType:{type:ControlType.Enum,title:\"Content\",options:[\"text\",\"time\"],optionTitles:[\"Text\",\"Time\"],defaultValue:\"text\",displaySegmentedControl:true},text:{type:ControlType.String,title:\"Text\",defaultValue:\"VERTICAL\",displayTextArea:true,hidden:props=>props.contentType!==\"text\"},timezone:{type:ControlType.String,title:\"Zone\",defaultValue:\"Europe/London\",placeholder:\"Europe/London\",description:\"Use IANA time zone formats. E.g., Europe/Moscow, America/New_York, Asia/Dubai.\",hidden:props=>props.contentType!==\"time\"},timeFormat:{type:ControlType.Enum,title:\"Format\",options:[\"24h\",\"12h\"],optionTitles:[\"24h\",\"12h\"],defaultValue:\"24h\",displaySegmentedControl:true,hidden:props=>props.contentType!==\"time\"},mode:{type:ControlType.Enum,title:\"Style\",options:[\"normal\",\"sideways\",\"stacked\"],optionTitles:[\"Normal\",\"Sideways\",\"Stacked\"],defaultValue:\"sideways\"},direction:{type:ControlType.Enum,title:\"Read\",options:[\"down\",\"up\"],optionTitles:[\"↓\",\"↑\"],defaultValue:\"down\",displaySegmentedControl:true,hidden:props=>props.mode===\"normal\"},textAlign:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true,hidden:props=>props.mode!==\"normal\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:40,variant:\"Regular\",letterSpacing:\"0em\",lineHeight:1.2}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#111111\"},textTransform:{type:ControlType.Enum,title:\"Case\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"Default\",\"UPPER\",\"lower\",\"Capital\"],defaultValue:\"none\",hidden:props=>props.contentType===\"time\"},characterSpacing:{type:ControlType.Number,title:\"Char Gap\",min:0,max:80,step:1,defaultValue:4,unit:\"px\",hidden:props=>props.mode!==\"stacked\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VerticalText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VerticalText.map"],"mappings":"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"}