{"version":3,"file":"shared-lib.DH7vjbaL.mjs","names":["useRef","useState","useMemo","Fragment","useEffect","useLayoutEffect"],"sources":["https:/framerusercontent.com/modules/V7cc3CuHVAAOTnXRfrR8/RJ6eTr8P1gAUF6iKHCW6/HighlightTextComponent.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Fragment,useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const BEIGE=\"#F9F3E5\";const BROWN=\"#171311\";// Phosphor regular, 256x256 viewBox (MIT). Inlined rather than pulling in the\n// icon package for two glyphs.\nconst LINK_PATH=\"M240,88.23a54.43,54.43,0,0,1-16,37L189.25,160a54.27,54.27,0,0,1-38.63,16h-.05A54.63,54.63,0,0,1,96,119.84a8,8,0,0,1,16,.45A38.62,38.62,0,0,0,150.58,160h0a38.39,38.39,0,0,0,27.31-11.31l34.75-34.75a38.63,38.63,0,0,0-54.63-54.63l-11,11A8,8,0,0,1,135.7,59l11-11A54.65,54.65,0,0,1,224,48,54.86,54.86,0,0,1,240,88.23ZM109,185.66l-11,11A38.41,38.41,0,0,1,70.6,208h0a38.63,38.63,0,0,1-27.29-65.94L78,107.31A38.63,38.63,0,0,1,144,135.71a8,8,0,0,0,16,.45A54.86,54.86,0,0,0,144,96a54.65,54.65,0,0,0-77.27,0L32,130.75A54.62,54.62,0,0,0,70.56,224h0a54.28,54.28,0,0,0,38.64-16l11-11A8,8,0,0,0,109,185.66Z\";const CHECK_PATH=\"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z\";// Crude proxy for pixel width: groups are `nowrap`, so a long one overflows\n// a phone instead of wrapping. ponytail: measure-based reflow if this ceiling bites.\nconst MAX_GROUP_CHARS=22;// Row-to-row opening needs this much slack on each side to look deliberate.\nconst OPENING_MARGIN=24;// SSR: Framer statically renders pages, where useLayoutEffect warns.\nconst useIsoLayoutEffect=typeof window===\"undefined\"?useEffect:useLayoutEffect;// Sizes are [large desktop, small desktop, tablet, mobile].\nconst SIZES={h1:[60,54,48,40],h2:[42,40,36,32],h3:[28,26,24,20],h4:[20,20,18,16],h5:[16,16,14,14],h6:[14,14,14,12]};const STYLES={h1:{lineHeight:\"100%\",letterSpacing:\"-4px\"},h2:{lineHeight:\"100%\",letterSpacing:\"-2px\"},h3:{lineHeight:\"120%\",letterSpacing:\"-0.8px\"},h4:{lineHeight:\"120%\",letterSpacing:\"-0.5px\"},h5:{lineHeight:\"120%\",letterSpacing:\"0px\"},h6:{lineHeight:\"120%\",letterSpacing:\"0px\"}};const SMALL_DESKTOP_MAX=1439;const TABLET_MAX=1199;const MOBILE_MAX=809;const RESPONSIVE_CSS=(()=>{const rulesForTier=tier=>Object.entries(SIZES).map(([styleName,sizes])=>`[data-hl-style=\"${styleName}\"]{font-size:${sizes[tier]}px}`).join(\"\");return[rulesForTier(0),`@media(max-width:${SMALL_DESKTOP_MAX}px){${rulesForTier(1)}}`,`@media(max-width:${TABLET_MAX}px){${rulesForTier(2)}}`,`@media(max-width:${MOBILE_MAX}px){${rulesForTier(3)}}`].join(\"\");})();// Fills come from CSS vars set on the heading so :hover can swap them without a\n// React re-render. ponytail: no hover state, no re-measure on mouse move.\n// ease-out-quad: the chip and its connector are entering, not just recoloring.\nconst MOTION=\"200ms cubic-bezier(0.25,0.46,0.45,0.94)\";const ANIMATED=\"[data-hl-hover] [data-hl-ink],[data-hl-hover] [data-hl-fade]\";const HOVER_CSS=[\"[data-hl-ink]{background:var(--hl-fill);fill:var(--hl-fill)}\",\"[data-hl-fade]{opacity:0;pointer-events:none}\",// Everything that moves together shares ONE transition shorthand. Declaring\n// it twice lets the higher-specificity list win and silently drop opacity,\n// which snaps the chip in while its connector still fades.\n`${ANIMATED}{transition:background ${MOTION},fill ${MOTION},opacity ${MOTION}}`,\"[data-hl-hover]:hover [data-hl-ink]{background:var(--hl-fill-hover);fill:var(--hl-fill-hover)}\",\"[data-hl-hover]:hover [data-hl-fade],[data-hl-fade]:focus-visible{opacity:1;pointer-events:auto}\",`@media(prefers-reduced-motion:reduce){${ANIMATED}{transition-duration:0s}}`].join(\"\");const CSS=RESPONSIVE_CSS+HOVER_CSS;// Boxes are separate elements with no whitespace between them, so a screen\n// reader can run the words together. One off-screen copy carries the real\n// sentence; `div` needs it because aria-label is ignored on a generic role.\nconst SR_ONLY={position:\"absolute\",width:1,height:1,overflow:\"hidden\",clipPath:\"inset(50%)\",whiteSpace:\"nowrap\"};function resolveColor(color){if(!color)return color;if(color.startsWith(\"var(\")){// Framer color tokens include a literal fallback.\nconst comma=color.indexOf(\",\");const end=color.lastIndexOf(\")\");if(comma!==-1&&end>comma){return resolveColor(color.slice(comma+1,end).trim());}}// ponytail: no DOM probe. Resolving named colors needs document, which the\n// server does not have — that split flipped the text color on hydration.\n// Framer only ever emits hex / rgb / hsl / var(), all handled here.\nreturn color;}function parseColor(color){if(!color)return null;const hex=color.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i)?.[1];if(hex){const full=hex.length===3?hex.replace(/./g,char=>char+char):hex;const value=parseInt(full,16);return[value>>16&255,value>>8&255,value&255];}const values=color.match(/[\\d.]+/g)?.map(Number);if(!values||values.length<3)return null;if(color.startsWith(\"rgb\"))return[values[0],values[1],values[2]];if(color.startsWith(\"hsl\")){const[hue,saturation,lightness]=[values[0]/360,values[1]/100,values[2]/100];const channel=offset=>{const position=(offset+hue*12)%12;const amplitude=saturation*Math.min(lightness,1-lightness);return Math.round(255*(lightness-amplitude*Math.max(-1,Math.min(position-3,9-position,1))));};return[channel(0),channel(8),channel(4)];}return null;}function luminance(rgb){const[red,green,blue]=rgb.map(value=>{const channel=value/255;return channel<=.03928?channel/12.92:Math.pow((channel+.055)/1.055,2.4);});return .2126*red+.7152*green+.0722*blue;}function pickTextColor(fill){const rgb=parseColor(resolveColor(fill));// Light text is the safer fallback for an unknown token value.\nif(!rgb)return BEIGE;const fillLuminance=luminance(rgb);const contrast=(first,second)=>(Math.max(first,second)+.05)/(Math.min(first,second)+.05);return contrast(fillLuminance,luminance([249,243,229]))>=contrast(fillLuminance,luminance([23,19,17]))?BEIGE:BROWN;}function slugify(value){return value.toLowerCase().replace(RegExp(\"[^\\\\p{L}\\\\p{N}]+\",\"gu\"),\"-\").replace(/^-|-$/g,\"\");}function darken(color,amount){const rgb=parseColor(resolveColor(color));// Unparseable token: no hover shift rather than a transparent box.\nif(!rgb)return color;return`rgb(${rgb.map(channel=>Math.round(channel*(1-amount))).join(\",\")})`;}function hash(value){let result=2166136261;for(let index=0;index<value.length;index++){result^=value.charCodeAt(index);result=Math.imul(result,16777619);}return result>>>0;}function random(seed){let value=seed+1831565813|0;value=Math.imul(value^value>>>15,value|1);value^=value+Math.imul(value^value>>>7,value|61);return((value^value>>>14)>>>0)/4294967296;}function buildGlueTest(glueWords){const list=(glueWords||\"\").split(/[\\s,]+/).filter(Boolean).map(word=>word.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\"));// Never-matching regex when the list is empty.\nconst pattern=list.length?new RegExp(`^(${list.join(\"|\")})$`,\"iu\"):null;return word=>pattern?pattern.test(word.replace(RegExp(\"^[^\\\\p{L}\\\\p{N}]+|[^\\\\p{L}\\\\p{N}]+$\",\"gu\"),\"\")):false;}function groupWords(words,base,maxWords,isGlue){const groups=[];let wordIndex=0;let groupIndex=0;const charWidth=(start,count)=>words.slice(start,start+count).join(\" \").length;while(wordIndex<words.length){let take=Math.min(1+Math.floor(random(base+997+groupIndex*31)*maxWords),words.length-wordIndex);while(take>1&&charWidth(wordIndex,take)>MAX_GROUP_CHARS){take--;}while(take>1&&isGlue(words[wordIndex+take-1])&&wordIndex+take<words.length){take--;}if(take===1&&isGlue(words[wordIndex])&&wordIndex+1<words.length){// Deliberately allowed to exceed MAX_GROUP_CHARS: a stranded \"the\"\n// reads worse than a wide box.\ntake=Math.min(Math.max(2,1+Math.floor(random(base+499+groupIndex*13)*maxWords)),words.length-wordIndex);}groups.push(words.slice(wordIndex,wordIndex+take).join(\" \"));wordIndex+=take;groupIndex++;}return groups;}/**\n * Highlighted headline with auto-placed curved separators and seeded\n * word grouping. Use one component instance and let its CSS respond to\n * the published viewport.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function HighlightTitle(props){const{text=\"Best restaurants near Reykjav\\xedk Old Harbor\",fill=\"#2E4B1F\",colorMode=\"single\",color1=\"#2E4B1F\",color2=\"#F5B800\",color3=\"#D85A30\",openingWidth=44,maxWords=3,glueWords=\"the a an\",avoidOrphans=true,hoverCopy=false,link=\"\",section=\"\",offset=0,hoverDarken=12,seed=0,tag=\"h1\",styleAs=\"auto\",align=\"left\",radius=8,divider,padding=6,paddingPerSide=true,paddingTop=9,paddingRight=6,paddingBottom=3,paddingLeft=6,style}=props;const safeText=text||\"\";const Tag=tag;const visualStyle=!styleAs||styleAs===\"auto\"?Tag===\"div\"?\"h1\":Tag:styleAs;const typography=STYLES[visualStyle]||STYLES.h1;const dividerWidth=divider?.width??6;const dividerHeight=divider?.height??6;const boxPadding=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;const justifyContent=align===\"center\"?\"center\":align===\"right\"?\"flex-end\":\"flex-start\";const headingRef=useRef(null);const connectorSignature=useRef(\"\");const copyTimer=useRef(null);const[copied,setCopied]=useState(false);const[connectors,setConnectors]=useState([]);const[sequentialIndex,setSequentialIndex]=useState(0);// Set by measurement: pulls the second-to-last box down so the last row\n// never carries a single one.\nconst[pairLast,setPairLast]=useState(false);const textHash=useMemo(()=>hash(safeText),[safeText]);const base=textHash+((seed|0)>>>0)*2654435769;useIsoLayoutEffect(()=>{if(colorMode!==\"sequential\")return;const element=headingRef.current;if(!element)return;// Layout effects run after the whole tree is in the DOM, so siblings\n// committed together are all visible here. ponytail: DOM order goes stale\n// if a heading is later inserted above — add an explicit index prop then.\nconst headings=Array.from(document.querySelectorAll(\"[data-hl-title]\"));const index=headings.indexOf(element);if(index>=0)setSequentialIndex(index);},[colorMode]);const palette=[color1,color2,color3];const activeFill=colorMode===\"random\"?palette[textHash%palette.length]:colorMode===\"sequential\"?palette[sequentialIndex%palette.length]:fill;// Both of these parse the fill; one memo, one parse per color change.\nconst[textColor,hoverFill]=useMemo(()=>[pickTextColor(activeFill),darken(activeFill,Math.max(0,hoverDarken)/100)],[activeFill,hoverDarken]);const groups=useMemo(()=>groupWords(safeText.split(/\\s+/).filter(Boolean),base,Math.max(1,maxWords|0),buildGlueTest(glueWords)),[safeText,seed,maxWords,glueWords]);// What this heading is addressable as: a section slug wins, otherwise its own\n// text, but only when there is no explicit link to copy instead.\nconst anchor=useMemo(()=>section?slugify(section):hoverCopy&&!link?slugify(safeText):\"\",[section,hoverCopy,link,safeText]);useEffect(()=>()=>clearTimeout(copyTimer.current),[]);const copy=()=>{// The link control promises the link is what gets copied, so it wins\n// over the anchor — `section` sets both an id and an anchor.\nconst wanted=link||(anchor?`#${anchor}`:\"\");if(!wanted)return;// Only shareable once absolute.\nlet target=wanted;try{target=new URL(wanted,window.location.href).toString();}catch{}// Undefined outside a secure context, where there is nothing to fall back to.\nconst written=navigator.clipboard?.writeText(target);if(!written)return;written.then(()=>{setCopied(true);clearTimeout(copyTimer.current);copyTimer.current=setTimeout(()=>setCopied(false),1600);},()=>{});};useIsoLayoutEffect(()=>{const element=headingRef.current;if(!element)return;let cancelled=false;const measure=()=>{if(cancelled)return;const wordSpans=Array.from(element.querySelectorAll(\"[data-word]\"));if(!wordSpans.length){if(connectorSignature.current!==\"[]\"){connectorSignature.current=\"[]\";setConnectors([]);}return;}const containerRect=element.getBoundingClientRect();const scale=element.offsetWidth?containerRect.width/element.offsetWidth:1;const rectangles=wordSpans.map(span=>{const rect=span.getBoundingClientRect();return{isCopy:span.hasAttribute(\"data-hl-copy\"),left:(rect.left-containerRect.left)/scale,top:(rect.top-containerRect.top)/scale,right:(rect.right-containerRect.left)/scale,bottom:(rect.bottom-containerRect.top)/scale,height:rect.height/scale};});// Orphan control. Derived from box widths and the content width,\n// never from the rows we just measured: widths do not change when\n// the pair wrapper is applied, so the answer is identical with and\n// without it and the two states cannot flip-flop.\nconst computed=getComputedStyle(element);const contentWidth=element.clientWidth-parseFloat(computed.paddingLeft)-parseFloat(computed.paddingRight);// The copy button is glued to the last word, so the two wrap as\n// one box — otherwise it orphans onto a row of its own, which reads\n// as an empty line until someone hovers.\nconst units=rectangles.map(rect=>rect.right-rect.left);if(hoverCopy&&units.length>1){const button=units.pop();units[units.length-1]+=dividerWidth+button;}let shouldPair=false;if(avoidOrphans&&units.length>2){const last=units.length-1;let lines=1;let lineCount=1;let lineWidth=units[0];for(let index=1;index<=last;index++){if(lineWidth+dividerWidth+units[index]<=contentWidth+.5){lineWidth+=dividerWidth+units[index];lineCount++;}else{lines++;lineCount=1;lineWidth=units[index];}}shouldPair=lines>1&&lineCount===1&&// Both have to fit on one row, or the wrapper would just\n// rebuild the same orphan inside itself.\nunits[last-1]+dividerWidth+units[last]<=contentWidth+.5;}if(shouldPair!==pairLast){// Everything below would measure the pre-wrap layout.\nsetPairLast(shouldPair);return;}const rows=[];rectangles.forEach(rectangle=>{const lastRow=rows[rows.length-1];if(lastRow&&Math.abs(lastRow[0].top-rectangle.top)<2){lastRow.push(rectangle);}else{rows.push([rectangle]);}});const nextConnectors=[];// Connect adjacent word groups on the same row.\nrows.forEach(row=>{for(let index=0;index<row.length-1;index++){const current=row[index];const next=row[index+1];const gap=next.left-current.right;if(gap<=0)continue;const height=current.height;const tip=gap/2;const topNotch=height*.28;const bottomNotch=height-height*.44-topNotch;nextConnectors.push({fade:current.isCopy||next.isCopy,box:{left:current.right,top:current.top,width:gap,height},opening:{left:-1,right:-1,top:topNotch,bottom:bottomNotch},size:{width:gap,height},paths:[`M -1 ${topNotch+1} L -1 ${topNotch-tip} L 0 ${topNotch-tip} `+`A ${tip} ${tip} 0 0 0 ${gap} ${topNotch-tip} `+`L ${gap+1} ${topNotch-tip} L ${gap+1} ${topNotch+1} Z`,`M -1 ${height-bottomNotch-1} L -1 ${height-bottomNotch+tip} `+`L 0 ${height-bottomNotch+tip} A ${tip} ${tip} 0 0 1 `+`${gap} ${height-bottomNotch+tip} L ${gap+1} `+`${height-bottomNotch+tip} L ${gap+1} `+`${height-bottomNotch-1} Z`]});}});// Connect overlapping word groups between rows.\nfor(let rowIndex=0;rowIndex<rows.length-1;rowIndex++){const currentRow=rows[rowIndex];const nextRow=rows[rowIndex+1];const rowGap=nextRow[0].top-currentRow[0].bottom;if(rowGap<=0)continue;const tip=rowGap/2;const requestedOpening=openingWidth;const intersections=[];currentRow.forEach(currentRect=>{nextRow.forEach(nextRect=>{const left=Math.max(currentRect.left,nextRect.left);const right=Math.min(currentRect.right,nextRect.right);if(right-left>=requestedOpening+OPENING_MARGIN){intersections.push([left,right]);}});});let left;let right;if(intersections.length){const selected=intersections[Math.floor(random(base+rowIndex*57)*intersections.length)];left=selected[0];right=selected[1];}else{left=Math.max(currentRow[0].left,nextRow[0].left);right=Math.min(currentRow[currentRow.length-1].right,nextRow[nextRow.length-1].right);if(right-left<20)continue;}const span=right-left;const opening=Math.min(requestedOpening,span*.6);const safePadding=Math.min(Math.max(10,(radius|0)+2),Math.max(2,(span-opening)/2-2));const openingStart=safePadding+random(base+rowIndex*101+13)*(span-opening-2*safePadding);const openingEnd=openingStart+opening;nextConnectors.push({fade:nextRow.every(rect=>rect.isCopy),box:{left,top:currentRow[0].bottom,width:span,height:rowGap},opening:{left:openingStart,width:opening,top:-1,bottom:-1},size:{width:span,height:rowGap},paths:[`M ${openingStart+1} -1 L ${openingStart-tip} -1 `+`L ${openingStart-tip} 0 A ${tip} ${tip} 0 0 1 `+`${openingStart-tip} ${rowGap} L ${openingStart-tip} `+`${rowGap+1} L ${openingStart+1} ${rowGap+1} Z`,`M ${openingEnd-1} -1 L ${openingEnd+tip} -1 `+`L ${openingEnd+tip} 0 A ${tip} ${tip} 0 0 0 `+`${openingEnd+tip} ${rowGap} L ${openingEnd+tip} `+`${rowGap+1} L ${openingEnd-1} ${rowGap+1} Z`]});}// ResizeObserver fires on observe and on every reflow; skip the\n// re-render when the geometry did not actually move.\nconst signature=JSON.stringify(nextConnectors);if(signature===connectorSignature.current)return;connectorSignature.current=signature;setConnectors(nextConnectors);};measure();const resizeObserver=new ResizeObserver(measure);resizeObserver.observe(element);if(document.fonts?.ready){document.fonts.ready.then(measure);}return()=>{cancelled=true;resizeObserver.disconnect();};},[groups,base,hoverCopy,openingWidth,Tag,visualStyle,align,radius,dividerWidth,dividerHeight,boxPadding,avoidOrphans,pairLast]);const boxStyle={padding:boxPadding,borderRadius:radius,whiteSpace:\"nowrap\"};const boxes=groups.map((group,index)=>/*#__PURE__*/_jsx(\"span\",{\"data-word\":true,\"data-hl-ink\":true,// Read from the off-screen sentence instead, with real word breaks.\n    \"aria-hidden\":\"true\",style:boxStyle,children:group},`${group}-${index}`));if(hoverCopy){boxes.push(/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-word\":true,\"data-hl-copy\":true,\"data-hl-ink\":true,\"data-hl-fade\":true,onClick:copy,title:\"Copy link\",\"aria-label\":copied?\"Link copied\":\"Copy link\",style:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",padding:boxPadding,borderRadius:radius,border:0,margin:0,font:\"inherit\",color:\"inherit\",cursor:\"pointer\"},children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 256 256\",fill:\"currentColor\",\"aria-hidden\":\"true\",style:{display:\"block\",width:\"1em\",height:\"1em\"},children:/*#__PURE__*/_jsx(\"path\",{d:copied?CHECK_PATH:LINK_PATH})})},\"copy\"));}// The copy button travels with the last word instead of wrapping alone.\nconst tail=hoverCopy?/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-flex\",gap:`0 ${dividerWidth}px`},children:boxes.slice(-2)},\"tail\"):null;const units=tail?[...boxes.slice(0,-2),tail]:boxes;const paired=pairLast&&units.length>2;return /*#__PURE__*/_jsxs(Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsxs(Tag,{ref:headingRef,\"data-hl-title\":true,\"data-hl-style\":visualStyle,\"data-hl-hover\":hoverCopy?\"\":undefined,id:anchor||undefined,// Names h1-h6 without the copy button's own label leaking in.\n// A `div` has a generic role, where this is ignored — SR_ONLY\n// covers that case.\n\"aria-label\":safeText,style:{...style,// Any inline font-size would beat the media queries above.\nfontSize:undefined,// Clears a sticky header when someone lands on this anchor.\nscrollMarginTop:offset||undefined,\"--hl-fill\":activeFill,\"--hl-fill-hover\":hoverFill,position:\"relative\",display:\"flex\",flexWrap:\"wrap\",justifyContent,gap:`${dividerHeight}px ${dividerWidth}px`,margin:0,fontFamily:\"'Quattrocento', Georgia, serif\",fontWeight:400,color:textColor,...typography},children:[/*#__PURE__*/_jsx(\"span\",{style:SR_ONLY,children:safeText}),paired?units.slice(0,-2):units,paired&&/*#__PURE__*/_jsx(\"span\",{style:{display:\"flex\",flexWrap:\"wrap\",// Own flex line, so the last two boxes wrap as one.\nflexBasis:\"100%\",gap:`${dividerHeight}px ${dividerWidth}px`,justifyContent},children:units.slice(-2)}),connectors.map((connector,index)=>/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",\"data-hl-fade\":connector.fade?\"\":undefined,style:{position:\"absolute\",pointerEvents:\"none\",...connector.box},children:[/*#__PURE__*/_jsx(\"div\",{\"data-hl-ink\":true,style:{position:\"absolute\",...connector.opening}}),/*#__PURE__*/_jsx(\"svg\",{width:connector.size.width,height:connector.size.height,style:{position:\"absolute\",left:0,top:0,overflow:\"visible\"},children:connector.paths.map((path,pathIndex)=>/*#__PURE__*/_jsx(\"path\",{\"data-hl-ink\":true,d:path},pathIndex))})]},`connector-${index}`))]})]});}addPropertyControls(HighlightTitle,{text:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:\"Best restaurants near Reykjav\\xedk Old Harbor\"},tag:{type:ControlType.Enum,title:\"SEO tag\",options:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"div\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\",\"Div\"],defaultValue:\"h1\",displaySegmentedControl:false},styleAs:{type:ControlType.Enum,title:\"Style\",options:[\"auto\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],optionTitles:[\"Match tag\",\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\"],defaultValue:\"auto\",displaySegmentedControl:false},align:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},hoverCopy:{type:ControlType.Boolean,title:\"Copy on hover\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:false},link:{type:ControlType.Link,title:\"Link\",description:\"Empty copies a permalink to this heading.\",hidden:properties=>!properties.hoverCopy},section:{type:ControlType.String,title:\"Section\",placeholder:\"our-menu\",description:\"Makes this heading a section anchor and copies a link to it.\"},offset:{type:ControlType.Number,title:\"Scroll offset\",unit:\"px\",min:0,max:400,step:4,defaultValue:0,description:\"Space left above the heading when arriving by link.\"},hoverDarken:{type:ControlType.Number,title:\"Hover darken\",unit:\"%\",min:0,max:40,step:1,defaultValue:12,hidden:properties=>!properties.hoverCopy},colorMode:{type:ControlType.Enum,title:\"Colors\",options:[\"single\",\"random\",\"sequential\"],optionTitles:[\"Single\",\"Random\",\"Sequential\"],defaultValue:\"single\"},fill:{type:ControlType.Color,title:\"Box color\",defaultValue:\"#2E4B1F\",hidden:properties=>properties.colorMode!==\"single\"},color1:{type:ControlType.Color,title:\"Color 1\",defaultValue:\"#2E4B1F\",hidden:properties=>properties.colorMode===\"single\"},color2:{type:ControlType.Color,title:\"Color 2\",defaultValue:\"#F5B800\",hidden:properties=>properties.colorMode===\"single\"},color3:{type:ControlType.Color,title:\"Color 3\",defaultValue:\"#D85A30\",hidden:properties=>properties.colorMode===\"single\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:40,step:1,defaultValue:8},padding:{type:ControlType.FusedNumber,title:\"Padding\",defaultValue:6,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},divider:{type:ControlType.Object,title:\"Divider\",controls:{width:{type:ControlType.Number,title:\"Width\",min:2,max:40,step:1,defaultValue:6},height:{type:ControlType.Number,title:\"Height\",min:2,max:40,step:1,defaultValue:6}}},openingWidth:{type:ControlType.Number,title:\"Horizontal distance\",min:12,max:200,defaultValue:44},maxWords:{type:ControlType.Number,title:\"Max words\",min:1,max:4,step:1,defaultValue:3},glueWords:{type:ControlType.String,title:\"Glue words\",description:\"Never left alone at the edge of a box.\",defaultValue:\"the a an\"},avoidOrphans:{type:ControlType.Boolean,title:\"No orphans\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:true,description:\"Pulls a box down so the last line is never alone.\"},seed:{type:ControlType.Number,title:\"Seed\",min:0,max:9999,step:1,defaultValue:0}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HighlightTitle\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HighlightTextComponent.map"],"mappings":"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"}