1"use strict";(self.webpackChunkroadfolio=self.webpackChunkroadfolio||[]).push([[217],{63217(e,t,o){o.d(t,{PM:()=>h,Jl:()=>s,ry:()=>l,qP:()=>g,HA:()=>p,Dz:()=>d,W8:()=>K,O8:()=>k,FR:()=>A,s3:()=>q,tY:()=>M,um:()=>y,SE:()=>x,nC:()=>j,renderLogoBlob:()=>z,nk:()=>I,Nw:()=>S,$_:()=>w});var n=o(89379),a=o(65043),i=o(66885),r=o(57303);const l={"Home & Trades":["Wrench","Hammer","Screwdriver","Toolbox","HardHat","Ladder","PaintBrush","PaintBrushHousehold","PaintRoller","Pipe","PipeWrench","Bathtub","Toilet","Shower","Lightbulb","LightbulbFilament","Lightning","Plug","PlugCharging","SolarPanel","Fan","Snowflake","Thermometer","ThermometerSimple","Fire","FireSimple","Drop","DropHalf","House","HouseLine","HouseSimple","Buildings","Warehouse","Door","DoorOpen","Wall","Stairs","Ruler","Crane","CraneTower","Nut","Gear","GearSix","Broom","SprayBottle"],Cleaning:["Recycle","Trash","TrashSimple","Sparkle","HandSoap","Wind"],"Auto & Transport":["Car","CarSimple","CarProfile","Truck","TruckTrailer","Van","Motorcycle","Bicycle","Scooter","Boat","Sailboat","Airplane","AirplaneTilt","Anchor","Tractor","Engine","GasPump","GasCan","Tire","SteeringWheel","RoadHorizon","MapPin","MapTrifold","NavigationArrow","Compass","Path","Taxi","Train","Bus"],"Food & Drink":["ForkKnife","Coffee","Pizza","Hamburger","Cake","CookingPot","BowlFood","BowlSteam","Wine","BeerBottle","BeerStein","Martini","Champagne","Carrot","Cookie","IceCream","Bread","EggCrack","Egg","Fish","Shrimp","Cheese","Popcorn","Pepper","Avocado","Cherries","Orange"],"Beauty & Wellness":["Scissors","HairDryer","Heartbeat","FirstAid","FirstAidKit","Pill","Prescription","Tooth","Eye","HandHeart","Flower","FlowerLotus","FlowerTulip","Leaf","PottedPlant","Butterfly","Feather"],"Fitness & Sports":["Barbell","PersonSimpleRun","PersonSimpleBike","PersonSimpleWalk","SoccerBall","Football","TennisBall","Volleyball","Baseball","Basketball","Trophy","Medal","MedalMilitary","Mountains","BoxingGlove","Racquet","Sneaker","SneakerMove"],"Pets & Animals":["Dog","Cat","PawPrint","Bird","Rabbit","Horse","Cow","Bug","Bone","FishSimple"],"Landscaping & Outdoors":["Tree","TreeEvergreen","TreePalm","Plant","Sun","CloudSun","Waves","Campfire","Tent","Island","Cactus","Shovel","Barn","GrainsSlash","Sunglasses"],"Tech & Office":["Cpu","Code","Terminal","Laptop","Desktop","DeviceMobile","DeviceMobileCamera","WifiHigh","Database","Cloud","CloudArrowUp","Robot","Printer","Keyboard","Mouse","Monitor","HardDrive","Broadcast","Rss","Browser","Cursor"],"Business & Retail":["Storefront","ShoppingBag","ShoppingCart","ShoppingCartSimple","Bag","Briefcase","Handshake","ChartLine","ChartBar","TrendUp","CurrencyDollar","CurrencyDollarSimple","Coins","Money","Wallet","Receipt","Package","Gift","Tag","Barcode","Scales","Bank","Certificate","Invoice","SealCheck"],"Creative & Media":["Camera","VideoCamera","FilmSlate","MusicNote","MusicNotes","Guitar","Microphone","MicrophoneStage","Headphones","Palette","PenNib","Pencil","PencilLine","Image","Images","Aperture","Play","Radio"],"Symbols & Marks":["Star","StarFour","Heart","Shield","ShieldCheck","Crown","CrownSimple","Diamond","Hexagon","Circle","Square","Triangle","Moon","Globe","GlobeHemisphereWest","Infinity","CheckCircle","Flag","Rocket","Crosshair","Cube","Atom","Planet","ThumbsUp","Key","Lock","Bell"]},s=Object.values(l).flat(),c="system-ui, sans-serif",f="Georgia, serif",u="ui-monospace, monospace",h={sans:{label:"Modern",family:"Hanken Grotesk",weight:800,stack:c,pairWith:"sans",group:"Sans"},clean:{label:"Clean",family:"Inter",weight:800,stack:c,pairWith:"sans",group:"Sans"},geometric:{label:"Geometric",family:"Montserrat",weight:800,stack:c,pairWith:"sans",group:"Sans"},rounded:{label:"Rounded",family:"Poppins",weight:700,stack:c,pairWith:"rounded",group:"Sans"},friendly:{label:"Friendly",family:"Nunito",weight:800,stack:c,pairWith:"friendly",group:"Sans"},humanist:{label:"Humanist",family:"Work Sans",weight:700,stack:c,pairWith:"sans",group:"Sans"},neo:{label:"Neo",family:"Manrope",weight:800,stack:c,pairWith:"sans",group:"Sans"},minimal:{label:"Minimal",family:"Jost",weight:700,stack:c,pairWith:"sans",group:"Sans"},soft:{label:"Soft",family:"Quicksand",weight:700,stack:c,pairWith:"rounded",group:"Sans"},versatile:{label:"Simple",family:"DM Sans",weight:700,stack:c,pairWith:"sans",group:"Sans"},warm:{label:"Warm",family:"Rubik",weight:700,stack:c,pairWith:"sans",group:"Sans"},display:{label:"Strong",family:"Archivo",weight:800,stack:c,pairWith:"sans",group:"Bold"}
1,techno:{label:"Techno",family:"Space Grotesk",weight:700,stack:c,pairWith:"techno",group:"Bold"},impact:{label:"Impact",family:"Anton",weight:400,stack:c,pairWith:"sans",group:"Bold"},condensed:{label:"Condensed",family:"Oswald",weight:700,stack:c,pairWith:"sans",group:"Bold"},tall:{label:"Tall Caps",family:"Bebas Neue",weight:400,stack:"Oswald, sans-serif",pairWith:"sans",group:"Bold"},stencil:{label:"Stencil",family:"Staatliches",weight:400,stack:c,pairWith:"sans",group:"Bold"},retro:{label:"Retro",family:"Righteous",weight:400,stack:c,pairWith:"rounded",group:"Bold"},block:{label:"Block",family:"Bungee",weight:400,stack:c,pairWith:"sans",group:"Bold"},elegant:{label:"Elegant",family:"Playfair Display",weight:800,stack:f,pairWith:"serifBody",group:"Serif"},serifBody:{label:"Classic",family:"Lora",weight:700,stack:f,pairWith:"serifBody",group:"Serif"},editorial:{label:"Editorial",family:"Merriweather",weight:700,stack:f,pairWith:"serifBody",group:"Serif"},refined:{label:"Refined",family:"Cormorant Garamond",weight:700,stack:f,pairWith:"serifBody",group:"Serif"},fashion:{label:"Fashion",family:"DM Serif Display",weight:400,stack:f,pairWith:"serifBody",group:"Serif"},poster:{label:"Poster",family:"Abril Fatface",weight:400,stack:f,pairWith:"serifBody",group:"Serif"},slab:{label:"Slab",family:"Roboto Slab",weight:700,stack:f,pairWith:"sans",group:"Slab"},sturdy:{label:"Sturdy",family:"Zilla Slab",weight:700,stack:f,pairWith:"sans",group:"Slab"},chunky:{label:"Chunky",family:"Alfa Slab One",weight:400,stack:f,pairWith:"sans",group:"Slab"},script:{label:"Script",family:"Pacifico",weight:400,stack:"cursive",pairWith:"sans",group:"Script"},flowing:{label:"Flowing",family:"Dancing Script",weight:700,stack:"cursive",pairWith:"sans",group:"Script"},casual:{label:"Casual",family:"Caveat",weight:700,stack:"cursive",pairWith:"sans",group:"Script"},signature:{label:"Signature",family:"Sacramento",weight:400,stack:"cursive",pairWith:"sans",group:"Script"},mono:{label:"Technical",family:"IBM Plex Mono",weight:600,stack:u,pairWith:"mono",group:"Tech"},code:{label:"Code",family:"JetBrains Mono",weight:700,stack:u,pairWith:"mono",group:"Tech"},future:{label:"Future",family:"Orbitron",weight:700,stack:c,pairWith:"sans",group:"Tech"}},p=[{id:"navyGold",text:"#0f2747",icon:"#c9a24b",container:"#0f2747"},{id:"forestCream",text:"#1f3d2b",icon:"#1f3d2b",container:"#e8e2d0"},{id:"charcoalOrange",text:"#1f2430",icon:"#e8703a",container:"#1f2430"},{id:"blueSteel",text:"#14385f",icon:"#3a5a96",container:"#3a5a96"},{id:"blackGold",text:"#111111",icon:"#c9a24b",container:"#111111"},{id:"tealCoral",text:"#0f5b60",icon:"#f0785a",container:"#0f5b60"},{id:"maroonCream",text:"#5a1e2b",icon:"#5a1e2b",container:"#efe6da"},{id:"slateLime",text:"#26303a",icon:"#8fbf3f",container:"#26303a"},{id:"purpleGray",text:"#3a2a5a",icon:"#7a5fb0",container:"#3a2a5a"},{id:"redBlack",text:"#111111",icon:"#c8402f",container:"#111111"},{id:"skyNavy",text:"#12324f",icon:"#3f9fd6",container:"#12324f"},{id:"brownTan",text:"#4a3524",icon:"#a9713e",container:"#efe3d4"},{id:"greenCharcoal",text:"#1f2a24",icon:"#3f9e6a",container:"#1f2a24"},{id:"inkAmber",text:"#1a1f2b",icon:"#e0a63a",container:"#1a1f2b"},{id:"plumBlush",text:"#4a2340",icon:"#c86b8f",container:"#f2e4ec"},{id:"oceanTeal",text:"#0d3b45",icon:"#2f9fa6",container:"#0d3b45"}],g=["icon-left","icon-top","text","monogram","seal","arch"],d=["none","circle","rounded","badge"],m=["none","rounded","pill","circle","shield","hexagon","ribbon","doubleRing"];function y(e){return"icon-left"===e||"text"===e?["none","rounded","pill","ribbon"]:["none","rounded","circle","shield","hexagon","doubleRing"]}const b=/^#[0-9a-fA-F]{6}$/;function k(e,t){return{v:1,name:(e||"Your Business").slice(0,40),tagline:"",layout:"icon-left",icon:"Wrench",iconWeight:"fill",font:"sans",textColor:"#111827",iconColor:b.test(t||"")?t:"#3a5a96",container:{shape:"none",color:b.test(t||"")?t:"#3a5a96"},frame:{shape:"none",style:"outline",stroke:2,color:b.test(t||"")?t:"#3a5a96"},fontResolved:"ok"}}function S(e,t,o){const n=k(t,o);return e&&"object"===typeof e?("string"===typeof e.name&&(n.name=e.name.slice(0,40)),"string"===typeof e.tagline&&(n.tagline=e.tagline.slice(0,60)),g.includes(e.layout)&&(n.layout=e.layout),s.includes(e.icon)&&(n.icon=e.icon),h[e.font]&&(n.font=e.font),h[e.taglineFont]&&(n.taglineFont=e.taglineFont),b.test(e.textColor)&&(n.textColor=e.textColor),b.test(e.iconColor)&&(n.iconColor=e.iconColor),e.container&&"object"===typeof e.container&&(d.includes(e.container.shape)&&(n.container.shape=e.container.shape),b.test(e.container.color)&&(n.container.color=e.container.color)),e.frame&&"object"===typeof e.frame&&(m.includes(e.frame.shape)&&(n.frame.shape=e.frame.shape),["fill","outline","both"].includes(e.frame.style)&&(n.frame.style=e.frame.style),[1,2,3].includes(e.frame.stroke)&&(n.frame.stroke=e.frame.stroke),b.test(e.frame.color)&&(n.frame.color=e.frame.color)),"none"===n.frame.shape||y(n.layout).includes(n.frame.shape)||(n.frame.shape="none"),n):n}function w(e){let t;const o=String(e||"").replace(/```json|```/g,"").match(/\{[\s\S]*\}/);if(!o)return null;try{t=JSON.parse(o[0])}catch(i){return null}if(!t||"object"!==typeof t)return null;const n=(Array.isArray(t.icons)?t.icons:[]).filter(e=>s.includes(e)).slice(0,3);if(!n.length)return null;const a=(Array.isArray(t.taglines)?t.taglines:[]).filter(e=>"string"===typeof e).map(e=>e.replace(/[\x00-\x1f\x7f\u202a-\u202e\u2066-\u2069]/g,"").trim().slice(0,40)).filter(
1Boolean).slice(0,3);return{icons:n,font:h[t.font]?t.font:null,taglineFont:h[t.taglineFont]?t.taglineFont:null,paletteId:p.some(e=>e.id===t.paletteId)?t.paletteId:null,layout:g.includes(t.layout)?t.layout:null,container:d.includes(t.container)?t.container:null,frame:m.includes(t.frame)?t.frame:null,taglines:a,pools:{icons:n,fonts:[t.font,t.taglineFont].filter(e=>h[e]),palettes:p.some(e=>e.id===t.paletteId)?[t.paletteId]:[],layouts:g.includes(t.layout)?[t.layout]:[]}}}function x(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=t.count||24,n=(a=2654435761*(t.seed||1)>>>0||1,function(){a=1831565813+(a|=0)|0;let e=Math.imul(a^a>>>15,1|a);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296});var a;const i=function(e,t){const o=l;let n=[];if(e){const t=String(e).toLowerCase();for(const[e,a]of Object.entries(o))(e.toLowerCase().includes(t)||a.some(e=>e.toLowerCase().includes(t)||t.includes(e.toLowerCase())))&&(n=n.concat(a))}return n.length<8&&(n=n.concat(o["Symbols & Marks"]||[],o["Business & Retail"]||[],o["Home & Trades"]||[],o["Auto & Transport"]||[],o["Creative & Media"]||[],o["Landscaping & Outdoors"]||[],o["Tech & Office"]||[])),t&&s.includes(t)&&n.unshift(t),Array.from(new Set(n))}(t.industryHint,t.icon),r=Object.keys(h),c=["icon-left","icon-top","icon-top","monogram","text","seal","arch"],f=["none","circle","rounded","badge"],u=p,g=t.pools||{},d=Array.isArray(g.icons)&&g.icons.length>0,m=d?g.icons:null,b=g.fonts&&g.fonts.length?g.fonts:null,k=g.palettes&&g.palettes.length?p.filter(e=>g.palettes.includes(e.id)):null,S=g.layouts&&g.layouts.length?g.layouts:null,w=Array.isArray(t.taglines)?t.taglines.filter(Boolean):[],x=[],C=new Set;let M=0;const B=e=>e[Math.floor(n()*e.length)];for(;x.length<o&&M++<30*o;){const a=d&&x.length<o/2,l=B(a&&S?S:c),s=B(a&&m?m:i)||"Wrench",h=B(a&&b?b:r),p=B(a&&k?k:u),g="monogram"===l?n()<.7?"circle":"rounded":B(f),M=y(l);let T={shape:"none",style:"outline",stroke:2,color:p.icon};if("seal"===l)T={shape:"doubleRing",style:"outline",stroke:2,color:p.text};else if(n()<.4){const e=B(M.filter(e=>"none"!==e));e&&(T={shape:e,style:n()<.35&&p.icon!==p.text?"both":"outline",stroke:2,color:p.icon})}const P="text"===l||"monogram"===l?l+"|"+h+"|"+p.id+"|"+g+"|"+T.shape:l+"|"+s+"|"+h+"|"+T.shape;C.has(P)||(C.add(P),x.push({v:1,name:(e||"Your Business").slice(0,40),tagline:t.tagline?String(t.tagline).slice(0,60):w.length?w[x.length%w.length]:"",layout:l,icon:s,iconWeight:"fill",font:h,textColor:p.text,iconColor:p.icon,container:{shape:g,color:p.container},frame:T}))}return x}const C=new Map;async function M(e){const t=h[e]||h.sans,o="".concat(t.weight,' 64px "').concat(t.family,'"');try{if(!document.fonts)return{ok:!1};const e=await document.fonts.load(o,"Ag0");return{ok:!!(e&&e.length>0||document.fonts.check(o,"Ag0"))}}catch(n){return{ok:!1}}}function B(e,t){const o=h[e]||h.sans;return"".concat(o.weight," ").concat(t,'px "').concat(o.family,'", ').concat(o.stack)}function T(e,t,o,n,a,i){const r=Math.min(i,n/2,a/2);e.beginPath(),e.moveTo(t+r,o),e.arcTo(t+n,o,t+n,o+a,r),e.arcTo(t+n,o+a,t,o+a,r),e.arcTo(t,o+a,t,o,r),e.arcTo(t,o,t+n,o,r),e.closePath()}function P(e){const t=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(e||"");if(!t)return 0;const o=[1,2,3].map(e=>{const o=parseInt(t[e],16)/255;return o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4)});return.2126*o[0]+.7152*o[1]+.0722*o[2]}function v(e){return W(e,"#ffffff")<3?"#111827":"#ffffff"}function W(e,t){const o=P(e),n=P(t);return(Math.max(o,n)+.05)/(Math.min(o,n)+.05)}function A(e){const t=e.frame;if(t&&"none"!==t.shape&&("fill"===t.style||"both"===t.style))return(0,n.A)({},e);const o="none"===e.container.shape&&W(e.iconColor,"#111827")<3?"#ffffff":e.iconColor,a=(0,n.A)((0,n.A)({},e),{},{textColor:"#ffffff",iconColor:o});
1return t&&"none"!==t.shape&&"outline"===t.style&&W(t.color,"#111827")<3&&(a.frame=(0,n.A)((0,n.A)({},t),{},{color:"#ffffff"})),a}function F(e,t,o,n,a,i){let r=n;for(;r>i&&(e.font=B(o,r),!(e.measureText(t).width<=a));)r-=Math.max(1,Math.round(.04*r));return r}function R(e,t,o,n,l,c,f){const u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"fill";const o=e+"|"+t;if(C.has(o))return C.get(o);const n=[],l=s.includes(e)?r[e]:null;if(l)try{const e=(0,i.qV)(a.createElement(l,{weight:t}));(new DOMParser).parseFromString(e,"image/svg+xml").querySelectorAll("path").forEach(e=>{const t=e.getAttribute("d");if(!t)return;const o=parseFloat(e.getAttribute("opacity")||"1");n.push({path2d:new Path2D(t),opacity:isNaN(o)?1:o})})}catch(c){}return C.set(o,n),n}(t,o);if(u.length){e.save(),e.translate(n,l),e.scale(c/256,c/256),e.fillStyle=f;for(const t of u)e.globalAlpha=t.opacity,e.fill(t.path2d);e.restore()}}function H(e,t,o,n,a,i){"none"!==t&&(e.save(),e.fillStyle=o,"circle"===t||"badge"===t?(e.beginPath(),e.arc(n+i/2,a+i/2,i/2,0,2*Math.PI),e.fill()):"rounded"===t&&(T(e,n,a,i,i,.22*i),e.fill()),e.restore())}function D(e,t,o,n,a,i,r){e.textAlign=r||"center",e.textBaseline="alphabetic";const l=F(e,t.name,t.font,a,i,Math.max(18,.22*a));e.font=B(t.font,l);const s=e.measureText(t.name),c=s.actualBoundingBoxAscent||.72*l,f=s.actualBoundingBoxDescent||.2*l,u=(t.tagline||"").trim(),h=I(t);let p=Math.round(.32*l);if(u)for(e.font=B(h,p);p>10&&e.measureText(u).width>i;)p-=1,e.font=B(h,p);const g=u?.9*p:0,d=n-(c+f+(u?g+p:0))/2;e.fillStyle=t.textColor,e.font=B(t.font,l),e.fillText(t.name,o,d+c),u&&(e.font=B(h,p),e.globalAlpha=.75,e.fillText(u,o,d+c+f+g+.8*p),e.globalAlpha=1)}function I(e){if(h[e&&e.taglineFont])return e.taglineFont;const t=h[e&&e.font];return t&&h[t.pairWith]?t.pairWith:"sans"}function L(e,t,o,n,a,i){const r=o+a/2,l=n+i/2,s=Math.min(a,i)/2;if(e.beginPath(),"rounded"===t)T(e,o,n,a,i,.18*Math.min(a,i));else if("pill"===t)T(e,o,n,a,i,i/2);else if("circle"===t||"doubleRing"===t)e.arc(r,l,s,0,2*Math.PI);else if("hexagon"===t){for(let t=0;t<6;t++){const o=(60*t-90)*Math.PI/180,n=r+s*Math.cos(o),a=l+s*Math.sin(o);0===t?e.moveTo(n,a):e.lineTo(n,a)}e.closePath()}else if("shield"===t)e.moveTo(o,n),e.lineTo(o+a,n),e.lineTo(o+a,n+.55*i),e.quadraticCurveTo(o+a,n+.86*i,r,n+i),e.quadraticCurveTo(o,n+.86*i,o,n+.55*i),e.closePath();else if("ribbon"===t){const t=.06*a;e.moveTo(o,n),e.lineTo(o+a,n),e.lineTo(o+a-t,n+i/2),e.lineTo(o+a,n+i),e.lineTo(o,n+i),e.lineTo(o+t,n+i/2),e.closePath()}}function G(e,t,o,n,a,i,r){if(!t||"none"===t.shape)return;const l=(t.stroke||2)*Math.min(a,i)*.012,s="fill"===t.style||"both"===t.style;if("fill"===r&&s&&(e.save(),e.fillStyle=t.color,L(e,t.shape,o,n,a,i),e.fill(),e.restore()),"stroke"===r&&("outline"===t.style||"both"===t.style)){if(e.save(),e.strokeStyle=t.color,e.lineWidth=l,e.lineJoin="round",L(e,t.shape,o,n,a,i),e.stroke(),"doubleRing"===t.shape){const t=Math.min(a,i)/2-.07*Math.min(a,i);e.beginPath(),e.arc(o+a/2,n+i/2,t,0,2*Math.PI),e.lineWidth=.7*l,e.stroke()}e.restore()}}function O(e,t,o,n,a,i,r,l,s,c){e.save(),e.textAlign="center",e.textBaseline="alphabetic",e.fillStyle=l;const f=Array.from(t).slice(0,40),u=t=>{e.font=B(o,t);const n=f.map((t,o)=>e.measureText(f.slice(0,o+1).join("")).width-e.measureText(f.slice(0,o).join("")).width),a=.08*t;return{advs:n,tracking:a,total:n.reduce((e,t)=>e+t,0)+a*(f.length-1)}};let h=r,p=u(h);const g=c*Math.PI/180*i;p.total>g&&(h=Math.max(.28*r,h*g/p.total),p=u(h)),e.font=B(o,h);let d=0;for(let m=0;m<f.length;m++){const t=d+p.tracking*m+p.advs[m]/2-p.total/2;let o,r;"top"===s?(o=-Math.PI/2+t/i,r=o+Math.PI/2):(o=Math.PI/2-t/i,r=o-Math.PI/2);const l=n+i*Math.cos(o),c=a+i*Math.sin(o);e.save(),e.translate(l,c),e.rotate(r),e.fillText(f[m],0,0),e.restore(),d+=p.advs[m]}e.restore()}function N(e,t,o,n,a){H(e,t.container.shape,t.container.color,o,n,a);const i="none"===t.container.shape?0:.2*a,r="none"===t.container.shape?t.iconColor:v(t.container.color);R(e,t.icon,t.iconWeight,o+i/2,n+i/2,a-i,r)}function E(e,t,o,n,a,i){const r=.12*i,l=t.layout;if("mark"===l){const r=.72*Math.min(a,i);return void N(e,t,o+(a-r)/2,n+(i-r)/2,r)}if("text"===l)return void D(e,t,o+a/2,n+i/2,.42*i,a-2*r,"center");if("monogram"===l){const l=Math.min(a,i)-2*r,s=o+(a-l)/2,c=n+(i-l)/2;H(e,"none"===t.container.shape?"circle":t.container.shape,t.container.color,s,c,l),e.textAlign="center",e.textBaseline="alphabetic";
1const f=function(e){const t=(e||"").trim().split(/\s+/).filter(Boolean);return t.length?1===t.length?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase():"?"}(t.name),u=F(e,f,t.font,.5*l,.7*l,.2*l);e.font=B(t.font,u);const h=e.measureText(f),p=h.actualBoundingBoxAscent||.72*u,g=h.actualBoundingBoxDescent||.2*u;return e.fillStyle=v(t.container.color),void e.fillText(f,s+l/2,c+l/2+(p-g)/2)}if("seal"===l){const r=o+a/2,l=n+i/2,s=Math.min(a,i)/2,c=.34*Math.min(a,i);N(e,t,r-c/2,l-c/2,c),O(e,t.name,t.font,r,l,.8*s,.14*s,t.textColor,"top",220);const f=(t.tagline||"").trim();return void(f&&O(e,f,I(t),r,l,.8*s,.1*s,t.textColor,"bottom",200))}if("arch"===l){const r=o+a/2,l=Math.min(a,i)/2,s=.38*Math.min(a,i),c=n+.3*i;N(e,t,r-s/2,c,s),O(e,t.name,t.font,r,c+.55*s,.78*l,.15*l,t.textColor,"top",200);const f=(t.tagline||"").trim();if(f){e.textAlign="center",e.textBaseline="alphabetic";const o=.11*l;e.font=B(I(t),o),e.fillStyle=t.textColor,e.globalAlpha=.8,e.fillText(f,r,c+s+1.3*o),e.globalAlpha=1}return}if("icon-top"===l){const l=.42*i,s=n+r;return N(e,t,o+(a-l)/2,s,l),void D(e,t,o+a/2,s+l+(n+i-s-l)/2,.2*i,a-2*r,"center")}const s=i-2*r,c=o+r;N(e,t,c,n+r,s);const f=c+s+.9*r;D(e,t,f,n+i/2,.4*i,o+a-f-r,"left")}function q(e,t,o,a,i){i?(e.fillStyle=i,e.fillRect(0,0,o,a)):e.clearRect(0,0,o,a);let r=t.frame||{shape:"none"};
1"seal"===t.layout&&"none"===r.shape&&(r={shape:"doubleRing",style:"outline",stroke:2,color:t.textColor}),G(e,r,0,0,o,a,"fill");const l=function(e,t,o,n,a){if(!e||"none"===e.shape)return{x:t,y:o,w:n,h:a};const i=(e.stroke||2)*Math.min(n,a)*.012,r=Math.min(n,a),l=e.shape;if("rounded"===l||"pill"===l){const e=i+.06*r,s="pill"===l?e+.1*a:e;return{x:t+s,y:o+e,w:n-2*s,h:a-2*e}}if("circle"===l||"doubleRing"===l){const e=r/2*2/Math.SQRT2*.94-i;return{x:t+(n-e)/2,y:o+(a-e)/2,w:e,h:e}}if("hexagon"===l){const e=r/2*1.3;return{x:t+(n-e)/2,y:o+(a-e)/2,w:e,h:e}}if("shield"===l)return{x:t+.1*n,y:o+.08*a,w:.8*n,h:.62*a};if("ribbon"===l){const e=.06*n;return{x:t+e+.03*n,y:o+i+.1*a,w:n-2*(e+.03*n),h:a-2*(i+.1*a)}}return{x:t,y:o,w:n,h:a}}(r,0,0,o,a,t.layout);let s=t;if("none"!==r.shape&&("fill"===r.style||"both"===r.style)){const e=v(r.color);s=(0,n.A)((0,n.A)({},t),{},{textColor:e,iconColor:"none"===t.container.shape?e:t.iconColor})}E(e,s,l.x,l.y,l.w,l.h),G(e,r,0,0,o,a,"stroke")}function j(e){return"icon-top"===e||"monogram"===e||"seal"===e||"arch"===e?{W:1024,H:1024}:{W:2048,H:512}}let U=null,J=Promise.resolve();function z(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=()=>new Promise(o=>{let a=!1;const i=e=>{if(!a){a=!0;try{U&&(U.width=0,U.height=0)}catch(t){}o(e||null)}};try{const o=t.mark?function(e){return"monogram"===e.layout?e:"text"===e.layout?(0,n.A)((0,n.A)({},e),{},{layout:"monogram",container:{shape:"rounded",color:e.textColor}}):(0,n.A)((0,n.A)({},e),{},{layout:"mark"})}(e):e,a="onDark"===t.variant?A(o):o;let{W:r,H:l}="square"===t.box?{W:1024,H:1024}:"wide"===t.box?{W:2048,H:512}:j(a.layout),s=t.maxSide?t.maxSide/Math.max(r,l):1,c=Math.round(r*s),f=Math.round(l*s);const u=4e3;if(c>u||f>u){const e=u/Math.max(c,f);c=Math.round(c*e),f=Math.round(f*e),s=c/r}U||(U=document.createElement("canvas"));const h=U;h.width=c,h.height=f;const p=h.getContext("2d");p.setTransform(s,0,0,s,0,0),q(p,a,r,l,t.background||null);const g=setTimeout(()=>i(null),5e3);h.toBlob(e=>{clearTimeout(g),i(e)},"image/png")}catch(r){i(null)}});return J=J.then(o,o),J}async function K(e){try{const a=new(0,(await o.e(159).then(o.t.bind(o,26159,23))).default),i=async(e,t)=>{const o=await t;o&&a.file(e,o)},{W:r,H:l}=j(e.layout),s=r>l;await i("logo-light.png",z(e,{variant:"light"})),await i("logo-dark-background.png",z(e,{variant:"onDark"})),await i("logo-on-white.png",z(e,{variant:"light",background:"#ffffff"})),await i("logo-print.png",z(e,{variant:"light",maxSide:s?4e3:3e3})),await i("mark-1024.png",z(e,{mark:!0,box:"square"})),await i("mark-on-white.png",z(e,{mark:!0,box:"square",background:"#ffffff"})),await i("favicon-512.png",z(e,{mark:!0,box:"square",maxSide:512})),await i("favicon-192.png",z(e,{mark:!0,box:"square",maxSide:192}));try{const n=await Promise.resolve().then(o.bind(o,21389)),i=n.jsPDF||n.default,c=await z(e,{variant:"light",background:"#ffffff",maxSide:s?2048:1500}),f=c&&await(t=c,new Promise(e=>{try{const o=new FileReader;o.onload=()=>e(o.result),o.onerror=()=>e(null),o.readAsDataURL(t)}catch(o){e(null)}}));if(i&&f){const e=new i({orientation:s?"l":"p",unit:"mm",format:[r/8,l/8]});e.addImage(f,"PNG",0,0,r/8,l/8),a.file("logo-print.pdf",e.output("blob"))}}catch(n){}return a.file("brand-colors.txt",function(e){const t=e=>e&&"linear"===e.type?"".concat(e.from," -> ").concat(e.to):e,o=h[e.font]||{},n=h[I(e)]||{};return["RoadFolio brand colors","","Text: "+t(e.textColor),"Icon: "+t(e.iconColor),"Container: "+t(e.container&&e.container.color),e.frame&&"none"!==e.frame.shape?"Frame: "+t(e.frame.color):"","","Name font: "+(o.family||"")+" ("+(o.weight||"")+") \u2014 free on Google Fonts","Tagline font: "+(n.family||""),"Layout: "+e.layout].filter(Boolean).join("\n")+"\n"}(e)),a.file("README.txt","RoadFolio brand kit\n\nlogo-light.png transparent, for light backgrounds\nlogo-dark-background.png for dark backgrounds\nlogo-on-white.png on a white card\nlogo-print.png high resolution\nmark-*.png the icon only (square)\nfavicon-*.png website / app icon\nlogo-print.pdf print-ready\nbrand-colors.txt your colors + fonts\n"),await a.generateAsync({type:"blob",compression:"STORE"})}catch(n){return null}var t}}}]); 2//# sourceMappingURL=217.3b1b4353.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.