From 680e6a9ff4058cfd7eab03e87d3563c21425cd1b Mon Sep 17 00:00:00 2001 From: michaelsboost Date: Thu, 5 Sep 2024 23:36:08 -0500 Subject: [PATCH] added pickr color picker --- .DS_Store | Bin 14340 -> 14340 bytes dist/App.min.js | 994 +++++++++++++++++++++++--------------------- dist/App.min.js.map | 8 +- dist/style.css | 2 +- index.html | 6 +- package.json | 2 +- src/App-backup.js | 148 +++++-- src/App.js | 148 +++++-- src/concat.js | 2 + src/style.css | 1 + 10 files changed, 781 insertions(+), 530 deletions(-) create mode 100644 src/concat.js diff --git a/.DS_Store b/.DS_Store index 9958b7c2d832d9db6600e14b853f636b442879f2..f64a806639f4d53314ae864aad65d45708144e74 100644 GIT binary patch delta 22 ecmZoEXern*S9r3#Viu$2DSo83kBDgyvz^9WG@ delta 24 gcmZoEXern*SD2A~vVvkXBgf>0O1_)jMfNHK0BTwY8UO$Q diff --git a/dist/App.min.js b/dist/App.min.js index 26a0c0d..bb52e72 100644 --- a/dist/App.min.js +++ b/dist/App.min.js @@ -1,4 +1,52 @@ -(()=>{function te(t,e,a=""){return typeof t!="object"||t===null?t:new Proxy(t,{get(o,s){let r=a?`${a}.${String(s)}`:String(s),i=o[s];return te(i,e,r)},set(o,s,r){let i=a?`${a}.${String(s)}`:String(s),l=o[s];return typeof r=="object"&&r!==null?JSON.stringify(l)!==JSON.stringify(r)&&(o[s]=te(r,e,i),e(i,l,r)):l!==r&&(o[s]=r,e(i,l,r)),!0},deleteProperty(o,s){let r=a?`${a}.${String(s)}`:String(s),i=o[s];return delete o[s],e(r,i,void 0),!0}})}var N={name:"Polyrise",summary:"Free Mobile Website Builder!",description:"Design with Freedom, Build with Power. Free for personal and commercial use.",author:{name:"Michael Schwartz",href:"https://michaelsboost.com/",src:"imgs/author.jpg"},version:"1.0.2",url:"https://github.com/michaelsboost/Polyrise/",license:"https://github.com/michaelsboost/Polyrise/blob/gh-pages/LICENSE"},ve={name:"App name",version:"0.0.1",title:"An attractive title",description:"The most attractive description ever!",author:"Polyrise",url:"https://michaelsboost.com/",meta:"",libraries:[],css:{rootVariables:{},styles:{},animations:{},breakpoints:{}},components:[],html:[],logo:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==",lang:"en",dark:!0,previewDark:!0,pwa:!1,activePanel:"layers"};window.generateId=()=>{let t="";for(;!/^[a-zA-Z]/.test(t);)t=Math.random().toString(36).substr(2,9);return t};var we={shiftKey:null,cmdKey:null,iframeSize:null,commandPalette:!1,selectedSize:"none",selectedLayerIds:[],replaceCurrentSelection:null,settings:null,searchLibKey:null,idMap:null,clipboard:null,history:[],historyIndex:-1,componentsVisible:!0,canvasCollapsed:null,rootVarsCollapsed:null,stylesCollapsed:null,stylePropsCollapsed:null,stylePseudosCollapsed:null,pseudosSelectorIndex:0,breakpointKey:null,pseudosSelector:null,propsCollapsed:null,stylesPropTarget:"base",stylesTarget:null,animationTarget:null,animationKeyframe:null,canUseQuickCommands:null,cssQuickCommands:{},increment:1,chosenFramework:"",frameworks:{"alpine.js":{libraries:["https://cdn.jsdelivr.net/npm/alpinejs@3.14.1/dist/cdn.min.js"],meta:""},"bootstrap 5":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css","https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"],meta:""},bulma:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.4/css/bulma.min.css"],meta:""},foundation:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.3/css/foundation.min.css","https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.3/js/foundation.min.js"],meta:""},materialize:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css","https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"],meta:""},"pico.css":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/picocss/2.0.6/pico.min.css","https://michaelsboost.com/TailwindCSSMod/tailwind-mod-noreset.min.js"],meta:""},semantic:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.2/semantic.min.css","https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.2/semantic.min.js"],meta:""},tailwind:{libraries:["https://michaelsboost.com/TailwindCSSMod/tailwind-mod-noreset.min.js"],meta:""},uikit:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/uikit/3.17.2/css/uikit.min.css","https://cdnjs.cloudflare.com/ajax/libs/uikit/3.17.2/js/uikit.min.js","https://cdnjs.cloudflare.com/ajax/libs/uikit/3.17.2/js/uikit-icons.min.js"],meta:""},"pure.css":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/pure/2.0.6/pure-min.css"],meta:""},skeleton:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css"],meta:""},"bulma-extensions":{libraries:["https://cdn.jsdelivr.net/npm/bulma-extensions@6.2.7/css/bulma-extensions.min.css","https://cdn.jsdelivr.net/npm/bulma-extensions@6.2.7/js/bulma-extensions.min.js"],meta:""},tachyons:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/tachyons/4.12.0/tachyons.min.css"],meta:""},"water.css":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/water.css/2.1.1/water.min.css"],meta:""},"spectre.css":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/spectre.css/0.5.9/spectre.min.css"],meta:""},milligram:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.min.css"],meta:""},"chakra-ui":{libraries:["https://cdn.jsdelivr.net/npm/@chakra-ui/react@2.0.0/dist/chakra-ui.min.css"],meta:""},gsap:{libraries:["https://unpkg.com/gsap@3/dist/gsap.min.js"],meta:""},"animate.css":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"],meta:""},"locomotive-scroll":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/locomotive-scroll/4.1.4/locomotive-scroll.min.css","https://cdnjs.cloudflare.com/ajax/libs/locomotive-scroll/4.1.4/locomotive-scroll.min.js"],meta:""},"fullpage.js":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.0.11/fullpage.min.css","https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.0.11/fullpage.min.js"],meta:""},aos:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/aos/2.3.4/aos.css","https://cdnjs.cloudflare.com/ajax/libs/aos/2.3.4/aos.js"],meta:""},swiper:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/Swiper/9.1.2/swiper-bundle.min.css","https://cdnjs.cloudflare.com/ajax/libs/Swiper/9.1.2/swiper-bundle.min.js"],meta:""},"barba.js":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/barba.js/2.9.7/barba.min.js"],meta:""},"three.js":{libraries:["https://cdnjs.cloudflare.com/ajax/libs/three.js/r148/three.min.js"],meta:""},vivus:{libraries:["https://cdnjs.cloudflare.com/ajax/libs/vivus/0.4.6/vivus.min.js"],meta:""}},defaultValues:{animation:"none","animation-delay":"0s","animation-duration":"0s","aspect-ratio":"auto",background:"#000000","background-color":"#000000","border-width":"0px",bottom:"auto",clip:"auto",color:"#000000","column-count":"auto","column-width":"auto",columns:"auto",default:"",flex:"0 1 auto","flex-grow":"0","flex-shrink":"1","font-size":"16px","font-size-adjust":"none","font-stretch":"normal","font-weight":"400","grid-column":"auto","grid-row":"auto",height:"auto",left:"auto","letter-spacing":"normal","line-height":"normal",margin:"0px","max-height":"none","max-lines":"none","max-width":"none","min-height":"0px","min-width":"0px","object-fit":"contain","object-position":"center",opacity:"1",order:"0",overflow:"visible",padding:"0px",perspective:"none",right:"auto",rotate:"0deg",scale:"1",skew:"0deg","text-align":"left","text-decoration":"none","text-indent":"0px","text-transform":"none",top:"auto",transform:"none",transition:"all 0.3s ease","transition-delay":"0s","transition-duration":"0.3s",translate:"0px",visibility:"visible","white-space":"normal",width:"auto","z-index":"1",position:"static",display:"block",overflow:"visible",visibility:"visible",float:"none",clear:"none","white-space":"normal","flex-direction":"row","justify-content":"flex-start","align-items":"stretch","align-content":"stretch","flex-wrap":"nowrap","background-attachment":"scroll","background-clip":"border-box","background-repeat":"repeat","background-size":"auto","border-style":"none","border-width":"medium","border-collapse":"separate","caption-side":"top",cursor:"auto",direction:"ltr","empty-cells":"show","list-style-type":"disc","list-style-position":"outside","table-layout":"auto","text-align":"left","text-decoration-line":"none","text-decoration-style":"solid","text-transform":"none","unicode-bidi":"normal","vertical-align":"baseline","word-break":"normal","writing-mode":"horizontal-tb","align-self":"auto","align-tracks":"normal",appearance:"auto","backface-visibility":"visible","box-sizing":"content-box","column-fill":"balance","column-span":"none","flex-basis":"auto","flex-grow":"0","flex-shrink":"1","font-style":"normal","font-variant":"normal","font-weight":"normal",hyphens:"none","image-rendering":"auto",isolation:"auto","line-break":"auto","mask-type":"luminance","mix-blend-mode":"normal","object-fit":"contain","overflow-anchor":"auto","overscroll-behavior":"auto","page-break-after":"auto","page-break-before":"auto","page-break-inside":"auto","pointer-events":"auto",resize:"none","scroll-behavior":"auto","text-orientation":"mixed","text-overflow":"clip","touch-action":"auto","transform-style":"flat","user-select":"auto","word-wrap":"normal"},cssFixedValueProperties:{position:["static","relative","absolute","fixed","sticky","inherit","initial","revert","revert-layer","unset"],display:["block","inline","inline-block","flex","grid","inline-flex","inline-grid","none","inherit","initial","revert","revert-layer","unset"],overflow:["visible","hidden","clip","scroll","auto","inherit","initial","revert","revert-layer","unset"],visibility:["visible","hidden","collapse","inherit","initial","revert","revert-layer","unset"],float:["left","right","none","inline-start","inline-end","inherit","initial","revert","revert-layer","unset"],clear:["none","left","right","both","inline-start","inline-end","inherit","initial","revert","revert-layer","unset"],"white-space":["normal","nowrap","pre","pre-wrap","pre-line","break-spaces","inherit","initial","revert","revert-layer","unset"],"flex-direction":["row","row-reverse","column","column-reverse","inherit","initial","revert","revert-layer","unset"],"justify-content":["flex-start","flex-end","center","space-between","space-around","space-evenly","start","end","left","right","inherit","initial","revert","revert-layer","unset"],"align-items":["stretch","flex-start","flex-end","center","baseline","first baseline","last baseline","start","end","self-start","self-end","inherit","initial","revert","revert-layer","unset"],"align-content":["stretch","flex-start","flex-end","center","space-between","space-around","space-evenly","start","end","baseline","first baseline","last baseline","inherit","initial","revert","revert-layer","unset"],"flex-wrap":["nowrap","wrap","wrap-reverse","inherit","initial","revert","revert-layer","unset"],"background-attachment":["scroll","fixed","local","inherit","initial","revert","revert-layer","unset"],"background-clip":["border-box","padding-box","content-box","text","inherit","initial","revert","revert-layer","unset"],"background-repeat":["repeat","repeat-x","repeat-y","no-repeat","space","round","inherit","initial","revert","revert-layer","unset"],"background-size":["auto","cover","contain","inherit","initial","revert","revert-layer","unset"],"border-style":["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset","inherit","initial","revert","revert-layer","unset"],"border-width":["thin","medium","thick","inherit","initial","revert","revert-layer","unset"],"border-collapse":["collapse","separate","inherit","initial","revert","revert-layer","unset"],"caption-side":["top","bottom","block-start","block-end","inline-start","inline-end","inherit","initial","revert","revert-layer","unset"],cursor:["auto","default","none","context-menu","help","pointer","progress","wait","cell","crosshair","text","vertical-text","alias","copy","move","no-drop","not-allowed","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out","inherit","initial","revert","revert-layer","unset"],direction:["ltr","rtl","inherit","initial","revert","revert-layer","unset"],"empty-cells":["show","hide","inherit","initial","revert","revert-layer","unset"],"list-style-type":["disc","circle","square","decimal","decimal-leading-zero","lower-roman","upper-roman","lower-greek","lower-alpha","lower-latin","upper-alpha","upper-latin","armenian","georgian","inherit","initial","revert","revert-layer","unset"],"list-style-position":["inside","outside","inherit","initial","revert","revert-layer","unset"],"table-layout":["auto","fixed","inherit","initial","revert","revert-layer","unset"],"text-align":["center","end","justify","left","right","start","inherit","initial","revert","revert-layer","unset"],"text-decoration-line":["none","underline","overline","line-through","blink","inherit","initial","revert","revert-layer","unset"],"text-decoration-style":["solid","double","dotted","dashed","wavy","inherit","initial","revert","revert-layer","unset"],"text-transform":["none","capitalize","uppercase","lowercase","full-width","full-size-kana","inherit","initial","revert","revert-layer","unset"],"unicode-bidi":["normal","embed","bidi-override","isolate","isolate-override","plaintext","inherit","initial","revert","revert-layer","unset"],"vertical-align":["baseline","sub","super","text-top","text-bottom","middle","top","bottom","inherit","initial","revert","revert-layer","unset"],"word-break":["normal","break-all","keep-all","break-word","inherit","initial","revert","revert-layer","unset"],"writing-mode":["horizontal-tb","vertical-rl","vertical-lr","sideways-rl","sideways-lr","inherit","initial","revert","revert-layer","unset"],"align-self":["auto","stretch","flex-start","flex-end","center","baseline","first baseline","last baseline","start","end","self-start","self-end","inherit","initial","revert","revert-layer","unset"],"align-tracks":["normal","start","center","end","stretch","baseline","first baseline","last baseline","inherit","initial","revert","revert-layer","unset"],appearance:["none","auto","inherit","initial","revert","revert-layer","unset"],"backface-visibility":["visible","hidden","inherit","initial","revert","revert-layer","unset"],"box-sizing":["content-box","border-box","inherit","initial","revert","revert-layer","unset"],"column-fill":["auto","balance","balance-all","inherit","initial","revert","revert-layer","unset"],"column-span":["none","all","inherit","initial","revert","revert-layer","unset"],"flex-basis":["auto","fill","max-content","min-content","fit-content","content","inherit","initial","revert","revert-layer","unset"],"flex-grow":["inherit","initial","revert","revert-layer","unset"],"flex-shrink":["inherit","initial","revert","revert-layer","unset"],"font-style":["normal","italic","oblique","inherit","initial","revert","revert-layer","unset"],"font-variant":["normal","small-caps","inherit","initial","revert","revert-layer","unset"],"font-weight":["normal","bold","bolder","lighter","inherit","initial","revert","revert-layer","unset","100","200","300","400","500","600","700","800","900"],hyphens:["none","manual","auto","inherit","initial","revert","revert-layer","unset"],"image-rendering":["auto","crisp-edges","pixelated","inherit","initial","revert","revert-layer","unset"],isolation:["auto","isolate","inherit","initial","revert","revert-layer","unset"],"line-break":["auto","loose","normal","strict","anywhere","inherit","initial","revert","revert-layer","unset"],"mask-type":["luminance","alpha","inherit","initial","revert","revert-layer","unset"],"mix-blend-mode":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","inherit","initial","revert","revert-layer","unset"],"object-fit":["fill","contain","cover","none","scale-down","inherit","initial","revert","revert-layer","unset"],"overflow-anchor":["auto","none","inherit","initial","revert","revert-layer","unset"],"overscroll-behavior":["auto","contain","none","inherit","initial","revert","revert-layer","unset"],"page-break-after":["auto","always","avoid","left","right","inherit","initial","revert","revert-layer","unset"],"page-break-before":["auto","always","avoid","left","right","inherit","initial","revert","revert-layer","unset"],"page-break-inside":["auto","avoid","inherit","initial","revert","revert-layer","unset"],"pointer-events":["auto","none","inherit","initial","revert","revert-layer","unset"],resize:["none","both","horizontal","vertical","block","inline","inherit","initial","revert","revert-layer","unset"],"scroll-behavior":["auto","smooth","inherit","initial","revert","revert-layer","unset"],"text-orientation":["mixed","upright","sideways","inherit","initial","revert","revert-layer","unset"],"text-overflow":["clip","ellipsis","inherit","initial","revert","revert-layer","unset"],"touch-action":["auto","none","pan-x","pan-left","pan-right","pan-y","pan-up","pan-down","pinch-zoom","manipulation","inherit","initial","revert","revert-layer","unset"],"transform-style":["flat","preserve-3d","inherit","initial","revert","revert-layer","unset"],"user-select":["auto","text","none","contain","all","inherit","initial","revert","revert-layer","unset"],"word-wrap":["normal","break-word","inherit","initial","revert","revert-layer","unset"],"writing-mode":["horizontal-tb","vertical-rl","vertical-lr","sideways-rl","sideways-lr","inherit","initial","revert","revert-layer","unset"]},cssRangedValueProperties:{opacity:{min:0,max:1,step:.01},"z-index":{min:-1/0,max:1/0,step:1},"line-height":{min:0,max:1/0,step:.1},"flex-grow":{min:0,max:1/0,step:.1},"flex-shrink":{min:0,max:1/0,step:.1},order:{min:-1/0,max:1/0,step:1},columns:{min:1,max:1/0,step:1},"column-count":{min:1,max:1/0,step:1},"column-width":{min:0,max:1/0,step:1},"font-size":{min:0,max:1,step:.01},"font-size-adjust":{min:0,max:1,step:.01},"letter-spacing":{min:-1/0,max:1/0,step:.1},"word-spacing":{min:-1/0,max:1/0,step:.1},"aspect-ratio":{min:0,max:1/0,step:.01},"border-width":{min:0,max:1/0,step:1},margin:{min:-1/0,max:1/0,step:1},padding:{min:0,max:1/0,step:1},width:{min:0,max:1/0,step:1},height:{min:0,max:1/0,step:1},"max-width":{min:0,max:1/0,step:1},"max-height":{min:0,max:1/0,step:1},"min-width":{min:0,max:1/0,step:1},"min-height":{min:0,max:1/0,step:1},top:{min:-1/0,max:1/0,step:1},right:{min:-1/0,max:1/0,step:1},bottom:{min:-1/0,max:1/0,step:1},left:{min:-1/0,max:1/0,step:1},rotate:{min:-360,max:360,step:1},scale:{min:-1/0,max:1/0,step:.1},translate:{min:-1/0,max:1/0,step:1},perspective:{min:0,max:1/0,step:1},skew:{min:-360,max:360,step:1},"animation-duration":{min:0,max:1/0,step:.1},"animation-delay":{min:0,max:1/0,step:.1},"transition-duration":{min:0,max:1/0,step:.1},"transition-delay":{min:0,max:1/0,step:.1},"letter-spacing":{min:-1/0,max:1/0,step:.1},"text-indent":{min:-1/0,max:1/0,step:1}},boxElements:["article","aside","div","figcaption","figure","footer","header","hgroup","label","li","main","nav","ol","picture","section","template","ul"],textElements:["a","abbr","address","b","bdi","bdo","blockquote","button","cite","code","del","em","h1","h2","h3","h4","h5","h6","i","ins","kbd","label","legend","mark","output","p","samp","small","span","strike","strong","summary","sub","sup","time","u","var"],breakElements:["br","hr","wbr"],blocks:{visible:!0,name:"Elements",items:[{type:"box",code:"
"},{type:"text",code:"

text

"},{type:"link",code:'Polyrise'},{type:"button",code:""},{type:"list",code:""},{type:"progress",code:''},{type:"form",code:`
+(()=>{(function(t,e){typeof exports=="object"&&typeof module=="object"?module.exports=e():typeof define=="function"&&define.amd?define([],e):typeof exports=="object"?exports.Pickr=e():t.Pickr=e()})(self,function(){return(()=>{"use strict";var t={d:(M,n)=>{for(var p in n)t.o(n,p)&&!t.o(M,p)&&Object.defineProperty(M,p,{enumerable:!0,get:n[p]})},o:(M,n)=>Object.prototype.hasOwnProperty.call(M,n),r:M=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(M,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(M,"__esModule",{value:!0})}},e={};t.d(e,{default:()=>J});var o={};function s(M,n,p,d,y={}){n instanceof HTMLCollection||n instanceof NodeList?n=Array.from(n):Array.isArray(n)||(n=[n]),Array.isArray(p)||(p=[p]);for(let u of n)for(let h of p)u[M](h,d,{capture:!1,...y});return Array.prototype.slice.call(arguments,1)}t.r(o),t.d(o,{adjustableInputNumbers:()=>b,createElementFromString:()=>c,createFromTemplate:()=>l,eventPath:()=>i,off:()=>r,on:()=>a,resolveElement:()=>f});let a=s.bind(null,"addEventListener"),r=s.bind(null,"removeEventListener");function c(M){let n=document.createElement("div");return n.innerHTML=M.trim(),n.firstElementChild}function l(M){let n=(d,y)=>{let u=d.getAttribute(y);return d.removeAttribute(y),u},p=(d,y={})=>{let u=n(d,":obj"),h=n(d,":ref"),T=u?y[u]={}:y;h&&(y[h]=d);for(let B of Array.from(d.children)){let I=n(B,":arr"),O=p(B,I?{}:T);I&&(T[I]||(T[I]=[])).push(Object.keys(O).length?O:B)}return y};return p(c(M))}function i(M){let n=M.path||M.composedPath&&M.composedPath();if(n)return n;let p=M.target.parentElement;for(n=[M.target,p];p=p.parentElement;)n.push(p);return n.push(document,window),n}function f(M){return M instanceof Element?M:typeof M=="string"?M.split(/>>/g).reduce((n,p,d,y)=>(n=n.querySelector(p),dp){function p(d){let y=[.001,.01,.1][Number(d.shiftKey||2*d.ctrlKey)]*(d.deltaY<0?1:-1),u=0,h=M.selectionStart;M.value=M.value.replace(/[\d.]+/g,(T,B)=>B<=h&&B+T.length>=h?(h=B,n(Number(T),y,u)):(u++,T)),M.focus(),M.setSelectionRange(h,h),d.preventDefault(),M.dispatchEvent(new Event("input"))}a(M,"focus",()=>a(window,"wheel",p,{passive:!1})),a(M,"blur",()=>r(window,"wheel",p))}let{min:g,max:$,floor:E,round:w}=Math;function H(M,n,p){n/=100,p/=100;let d=E(M=M/360*6),y=M-d,u=p*(1-n),h=p*(1-y*n),T=p*(1-(1-y)*n),B=d%6;return[255*[p,h,u,u,T,p][B],255*[T,p,p,h,u,u][B],255*[u,u,T,p,p,h][B]]}function L(M,n,p){let d=(2-(n/=100))*(p/=100)/2;return d!==0&&(n=d===1?0:d<.5?n*p/(2*d):n*p/(2-2*d)),[M,100*n,100*d]}function z(M,n,p){let d=g(M/=255,n/=255,p/=255),y=$(M,n,p),u=y-d,h,T;if(u===0)h=T=0;else{T=u/y;let B=((y-M)/6+u/2)/u,I=((y-n)/6+u/2)/u,O=((y-p)/6+u/2)/u;M===y?h=O-I:n===y?h=1/3+B-O:p===y&&(h=2/3+I-B),h<0?h+=1:h>1&&(h-=1)}return[360*h,100*T,100*y]}function A(M,n,p,d){return n/=100,p/=100,[...z(255*(1-g(1,(M/=100)*(1-(d/=100))+d)),255*(1-g(1,n*(1-d)+d)),255*(1-g(1,p*(1-d)+d)))]}function x(M,n,p){n/=100;let d=2*(n*=(p/=100)<.5?p:1-p)/(p+n)*100,y=100*(p+n);return[M,isNaN(d)?0:d,y]}function k(M){return z(...M.match(/.{2}/g).map(n=>parseInt(n,16)))}function V(M){M=M.match(/^[a-zA-Z]+$/)?function(y){if(y.toLowerCase()==="black")return"#000";let u=document.createElement("canvas").getContext("2d");return u.fillStyle=y,u.fillStyle==="#000"?null:u.fillStyle}(M):M;let n={cmyk:/^cmyk[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)/i,rgba:/^((rgba)|rgb)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsla:/^((hsla)|hsl)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsva:/^((hsva)|hsv)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hexa:/^#?(([\dA-Fa-f]{3,4})|([\dA-Fa-f]{6})|([\dA-Fa-f]{8}))$/i},p=y=>y.map(u=>/^(|\d+)\.\d+|\d+$/.test(u)?Number(u):void 0),d;e:for(let y in n){if(!(d=n[y].exec(M)))continue;let u=h=>!!d[2]==(typeof h=="number");switch(y){case"cmyk":{let[,h,T,B,I]=p(d);if(h>100||T>100||B>100||I>100)break e;return{values:A(h,T,B,I),type:y}}case"rgba":{let[,,,h,T,B,I]=p(d);if(h>255||T>255||B>255||I<0||I>1||!u(I))break e;return{values:[...z(h,T,B),I],a:I,type:y}}case"hexa":{let[,h]=d;h.length!==4&&h.length!==3||(h=h.split("").map(I=>I+I).join(""));let T=h.substring(0,6),B=h.substring(6);return B=B?parseInt(B,16)/255:void 0,{values:[...k(T),B],a:B,type:y}}case"hsla":{let[,,,h,T,B,I]=p(d);if(h>360||T>100||B>100||I<0||I>1||!u(I))break e;return{values:[...x(h,T,B),I],a:I,type:y}}case"hsva":{let[,,,h,T,B,I]=p(d);if(h>360||T>100||B>100||I<0||I>1||!u(I))break e;return{values:[h,T,B,I],a:I,type:y}}}}return{values:null,type:null}}function _(M=0,n=0,p=0,d=1){let y=(h,T)=>(B=-1)=>T(~B?h.map(I=>Number(I.toFixed(B))):h),u={h:M,s:n,v:p,a:d,toHSVA(){let h=[u.h,u.s,u.v,u.a];return h.toString=y(h,T=>`hsva(${T[0]}, ${T[1]}%, ${T[2]}%, ${u.a})`),h},toHSLA(){let h=[...L(u.h,u.s,u.v),u.a];return h.toString=y(h,T=>`hsla(${T[0]}, ${T[1]}%, ${T[2]}%, ${u.a})`),h},toRGBA(){let h=[...H(u.h,u.s,u.v),u.a];return h.toString=y(h,T=>`rgba(${T[0]}, ${T[1]}, ${T[2]}, ${u.a})`),h},toCMYK(){let h=function(T,B,I){let O=H(T,B,I),m=O[0]/255,C=O[1]/255,S=O[2]/255,v=g(1-m,1-C,1-S);return[100*(v===1?0:(1-m-v)/(1-v)),100*(v===1?0:(1-C-v)/(1-v)),100*(v===1?0:(1-S-v)/(1-v)),100*v]}(u.h,u.s,u.v);return h.toString=y(h,T=>`cmyk(${T[0]}%, ${T[1]}%, ${T[2]}%, ${T[3]}%)`),h},toHEXA(){let h=function(B,I,O){return H(B,I,O).map(m=>w(m).toString(16).padStart(2,"0"))}(u.h,u.s,u.v),T=u.a>=1?"":Number((255*u.a).toFixed(0)).toString(16).toUpperCase().padStart(2,"0");return T&&h.push(T),h.toString=()=>`#${h.join("").toUpperCase()}`,h},clone:()=>_(u.h,u.s,u.v,u.a)};return u}let F=M=>Math.max(Math.min(M,1),0);function W(M){let n={options:Object.assign({lock:null,onchange:()=>0,onstop:()=>0},M),_keyboard(u){let{options:h}=n,{type:T,key:B}=u;if(document.activeElement===h.wrapper){let{lock:I}=n.options,O=B==="ArrowUp",m=B==="ArrowRight",C=B==="ArrowDown",S=B==="ArrowLeft";if(T==="keydown"&&(O||m||C||S)){let v=0,P=0;I==="v"?v=O||m?1:-1:I==="h"?v=O||m?-1:1:(P=O?-1:C?1:0,v=S?-1:m?1:0),n.update(F(n.cache.x+.01*v),F(n.cache.y+.01*P)),u.preventDefault()}else B.startsWith("Arrow")&&(n.options.onstop(),u.preventDefault())}},_tapstart(u){a(document,["mouseup","touchend","touchcancel"],n._tapstop),a(document,["mousemove","touchmove"],n._tapmove),u.cancelable&&u.preventDefault(),n._tapmove(u)},_tapmove(u){let{options:h,cache:T}=n,{lock:B,element:I,wrapper:O}=h,m=O.getBoundingClientRect(),C=0,S=0;if(u){let j=u&&u.touches&&u.touches[0];C=u?(j||u).clientX:0,S=u?(j||u).clientY:0,Cm.left+m.width&&(C=m.left+m.width),Sm.top+m.height&&(S=m.top+m.height),C-=m.left,S-=m.top}else T&&(C=T.x*m.width,S=T.y*m.height);B!=="h"&&(I.style.left=`calc(${C/m.width*100}% - ${I.offsetWidth/2}px)`),B!=="v"&&(I.style.top=`calc(${S/m.height*100}% - ${I.offsetHeight/2}px)`),n.cache={x:C/m.width,y:S/m.height};let v=F(C/m.width),P=F(S/m.height);switch(B){case"v":return h.onchange(v);case"h":return h.onchange(P);default:return h.onchange(v,P)}},_tapstop(){n.options.onstop(),r(document,["mouseup","touchend","touchcancel"],n._tapstop),r(document,["mousemove","touchmove"],n._tapmove)},trigger(){n._tapmove()},update(u=0,h=0){let{left:T,top:B,width:I,height:O}=n.options.wrapper.getBoundingClientRect();n.options.lock==="h"&&(h=u),n._tapmove({clientX:T+I*u,clientY:B+O*h})},destroy(){let{options:u,_tapstart:h,_keyboard:T}=n;r(document,["keydown","keyup"],T),r([u.wrapper,u.element],"mousedown",h),r([u.wrapper,u.element],"touchstart",h,{passive:!1})}},{options:p,_tapstart:d,_keyboard:y}=n;return a([p.wrapper,p.element],"mousedown",d),a([p.wrapper,p.element],"touchstart",d,{passive:!1}),a(document,["keydown","keyup"],y),n}function X(M={}){M=Object.assign({onchange:()=>0,className:"",elements:[]},M);let n=a(M.elements,"click",p=>{M.elements.forEach(d=>d.classList[p.target===d?"add":"remove"](M.className)),M.onchange(p),p.stopPropagation()});return{destroy:()=>r(...n)}}let ee={variantFlipOrder:{start:"sme",middle:"mse",end:"ems"},positionFlipOrder:{top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"},position:"bottom",margin:8},Y=(M,n,p)=>{let{container:d,margin:y,position:u,variantFlipOrder:h,positionFlipOrder:T}={container:document.documentElement.getBoundingClientRect(),...ee,...p},{left:B,top:I}=n.style;n.style.left="0",n.style.top="0";let O=M.getBoundingClientRect(),m=n.getBoundingClientRect(),C={t:O.top-m.height-y,b:O.bottom+y,r:O.right+y,l:O.left-m.width-y},S={vs:O.left,vm:O.left+O.width/2+-m.width/2,ve:O.left+O.width-m.width,hs:O.top,hm:O.bottom-O.height/2-m.height/2,he:O.bottom-m.height},[v,P="middle"]=u.split("-"),j=T[v],D=h[P],{top:N,left:q,bottom:K,right:Z}=d;for(let G of j){let te=G==="t"||G==="b",se=C[G],[re,oe]=te?["top","left"]:["left","top"],[me,de]=te?[m.height,m.width]:[m.width,m.height],[ne,ie]=te?[K,Z]:[Z,K],[pe,le]=te?[N,q]:[q,N];if(!(sene))for(let ae of D){let ce=S[(te?"v":"h")+ae];if(!(ceie))return n.style[oe]=ce-m[oe]+"px",n.style[re]=se-m[re]+"px",G+ae}}return n.style.left=B,n.style.top=I,null};function U(M,n,p){return n in M?Object.defineProperty(M,n,{value:p,enumerable:!0,configurable:!0,writable:!0}):M[n]=p,M}class J{constructor(n){U(this,"_initializingActive",!0),U(this,"_recalc",!0),U(this,"_nanopop",null),U(this,"_root",null),U(this,"_color",_()),U(this,"_lastColor",_()),U(this,"_swatchColors",[]),U(this,"_setupAnimationFrame",null),U(this,"_eventListener",{init:[],save:[],hide:[],show:[],clear:[],change:[],changestop:[],cancel:[],swatchselect:[]}),this.options=n=Object.assign({...J.DEFAULT_OPTIONS},n);let{swatches:p,components:d,theme:y,sliders:u,lockOpacity:h,padding:T}=n;["nano","monolith"].includes(y)&&!u&&(n.sliders="h"),d.interaction||(d.interaction={});let{preview:B,opacity:I,hue:O,palette:m}=d;d.opacity=!h&&I,d.palette=m||B||I||O,this._preBuild(),this._buildComponents(),this._bindEvents(),this._finalBuild(),p&&p.length&&p.forEach(P=>this.addSwatch(P));let{button:C,app:S}=this._root;this._nanopop=((P,j,D)=>{let N=typeof P!="object"||P instanceof HTMLElement?{reference:P,popper:j,...D}:P;return{update(q=N){let{reference:K,popper:Z}=Object.assign(N,q);if(!Z||!K)throw new Error("Popper- or reference-element missing.");return Y(K,Z,N)}}})(C,S,{margin:T}),C.setAttribute("role","button"),C.setAttribute("aria-label",this._t("btn:toggle"));let v=this;this._setupAnimationFrame=requestAnimationFrame(function P(){if(!S.offsetWidth)return requestAnimationFrame(P);v.setColor(n.default),v._rePositioningPicker(),n.defaultRepresentation&&(v._representation=n.defaultRepresentation,v.setColorRepresentation(v._representation)),n.showAlways&&v.show(),v._initializingActive=!1,v._emit("init")})}_preBuild(){let{options:n}=this;for(let p of["el","container"])n[p]=f(n[p]);this._root=(p=>{let{components:d,useAsButton:y,inline:u,appClass:h,theme:T,lockOpacity:B}=p.options,I=S=>S?"":'style="display:none" hidden',O=S=>p._t(S),m=l(` +
+ + ${y?"":''} + +
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+ +
+ +
+ + + + + + + + + + + +
+
+
+ `),C=m.interaction;return C.options.find(S=>!S.hidden&&!S.classList.add("active")),C.type=()=>C.options.find(S=>S.classList.contains("active")),m})(this),n.useAsButton&&(this._root.button=n.el),n.container.appendChild(this._root.root)}_finalBuild(){let n=this.options,p=this._root;if(n.container.removeChild(p.root),n.inline){let d=n.el.parentElement;n.el.nextSibling?d.insertBefore(p.app,n.el.nextSibling):d.appendChild(p.app)}else n.container.appendChild(p.app);n.useAsButton?n.inline&&n.el.remove():n.el.parentNode.replaceChild(p.root,n.el),n.disabled&&this.disable(),n.comparison||(p.button.style.transition="none",n.useAsButton||(p.preview.lastColor.style.transition="none")),this.hide()}_buildComponents(){let n=this,p=this.options.components,d=(n.options.sliders||"v").repeat(2),[y,u]=d.match(/^[vh]+$/g)?d:[],h=()=>this._color||(this._color=this._lastColor.clone()),T={palette:W({element:n._root.palette.picker,wrapper:n._root.palette.palette,onstop:()=>n._emit("changestop","slider",n),onchange(B,I){if(!p.palette)return;let O=h(),{_root:m,options:C}=n,{lastColor:S,currentColor:v}=m.preview;n._recalc&&(O.s=100*B,O.v=100-100*I,O.v<0&&(O.v=0),n._updateOutput("slider"));let P=O.toRGBA().toString(0);this.element.style.background=P,this.wrapper.style.background=` + linear-gradient(to top, rgba(0, 0, 0, ${O.a}), transparent), + linear-gradient(to left, hsla(${O.h}, 100%, 50%, ${O.a}), rgba(255, 255, 255, ${O.a})) + `,C.comparison?C.useAsButton||n._lastColor||S.style.setProperty("--pcr-color",P):(m.button.style.setProperty("--pcr-color",P),m.button.classList.remove("clear"));let j=O.toHEXA().toString();for(let{el:D,color:N}of n._swatchColors)D.classList[j===N.toHEXA().toString()?"add":"remove"]("pcr-active");v.style.setProperty("--pcr-color",P)}}),hue:W({lock:u==="v"?"h":"v",element:n._root.hue.picker,wrapper:n._root.hue.slider,onstop:()=>n._emit("changestop","slider",n),onchange(B){if(!p.hue||!p.palette)return;let I=h();n._recalc&&(I.h=360*B),this.element.style.backgroundColor=`hsl(${I.h}, 100%, 50%)`,T.palette.trigger()}}),opacity:W({lock:y==="v"?"h":"v",element:n._root.opacity.picker,wrapper:n._root.opacity.slider,onstop:()=>n._emit("changestop","slider",n),onchange(B){if(!p.opacity||!p.palette)return;let I=h();n._recalc&&(I.a=Math.round(100*B)/100),this.element.style.background=`rgba(0, 0, 0, ${I.a})`,T.palette.trigger()}}),selectable:X({elements:n._root.interaction.options,className:"active",onchange(B){n._representation=B.target.getAttribute("data-type").toUpperCase(),n._recalc&&n._updateOutput("swatch")}})};this._components=T}_bindEvents(){let{_root:n,options:p}=this,d=[a(n.interaction.clear,"click",()=>this._clearColor()),a([n.interaction.cancel,n.preview.lastColor],"click",()=>{this.setHSVA(...(this._lastColor||this._color).toHSVA(),!0),this._emit("cancel")}),a(n.interaction.save,"click",()=>{!this.applyColor()&&!p.showAlways&&this.hide()}),a(n.interaction.result,["keyup","input"],y=>{this.setColor(y.target.value,!0)&&!this._initializingActive&&(this._emit("change",this._color,"input",this),this._emit("changestop","input",this)),y.stopImmediatePropagation()}),a(n.interaction.result,["focus","blur"],y=>{this._recalc=y.type==="blur",this._recalc&&this._updateOutput(null)}),a([n.palette.palette,n.palette.picker,n.hue.slider,n.hue.picker,n.opacity.slider,n.opacity.picker],["mousedown","touchstart"],()=>this._recalc=!0,{passive:!0})];if(!p.showAlways){let y=p.closeWithKey;d.push(a(n.button,"click",()=>this.isOpen()?this.hide():this.show()),a(document,"keyup",u=>this.isOpen()&&(u.key===y||u.code===y)&&this.hide()),a(document,["touchstart","mousedown"],u=>{this.isOpen()&&!i(u).some(h=>h===n.app||h===n.button)&&this.hide()},{capture:!0}))}if(p.adjustableNumbers){let y={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};b(n.interaction.result,(u,h,T)=>{let B=y[this.getColorRepresentation().toLowerCase()];if(B){let I=B[T],O=u+(I>=100?1e3*h:h);return O<=0?0:Number((O{u.isOpen()&&(p.closeOnScroll&&u.hide(),y===null?(y=setTimeout(()=>y=null,100),requestAnimationFrame(function h(){u._rePositioningPicker(),y!==null&&requestAnimationFrame(h)})):(clearTimeout(y),y=setTimeout(()=>y=null,100)))},{capture:!0}))}this._eventBindings=d}_rePositioningPicker(){let{options:n}=this;if(!n.inline&&!this._nanopop.update({container:document.body.getBoundingClientRect(),position:n.position})){let p=this._root.app,d=p.getBoundingClientRect();p.style.top=(window.innerHeight-d.height)/2+"px",p.style.left=(window.innerWidth-d.width)/2+"px"}}_updateOutput(n){let{_root:p,_color:d,options:y}=this;if(p.interaction.type()){let u=`to${p.interaction.type().getAttribute("data-type")}`;p.interaction.result.value=typeof d[u]=="function"?d[u]().toString(y.outputPrecision):""}!this._initializingActive&&this._recalc&&this._emit("change",d,n,this)}_clearColor(n=!1){let{_root:p,options:d}=this;d.useAsButton||p.button.style.setProperty("--pcr-color","rgba(0, 0, 0, 0.15)"),p.button.classList.add("clear"),d.showAlways||this.hide(),this._lastColor=null,this._initializingActive||n||(this._emit("save",null),this._emit("clear"))}_parseLocalColor(n){let{values:p,type:d,a:y}=V(n),{lockOpacity:u}=this.options,h=y!==void 0&&y!==1;return p&&p.length===3&&(p[3]=void 0),{values:!p||u&&h?null:p,type:d}}_t(n){return this.options.i18n[n]||J.I18N_DEFAULTS[n]}_emit(n,...p){this._eventListener[n].forEach(d=>d(...p,this))}on(n,p){return this._eventListener[n].push(p),this}off(n,p){let d=this._eventListener[n]||[],y=d.indexOf(p);return~y&&d.splice(y,1),this}addSwatch(n){let{values:p}=this._parseLocalColor(n);if(p){let{_swatchColors:d,_root:y}=this,u=_(...p),h=c(`"},{type:"list",code:"
  • list item
"},{type:"progress",code:''},{type:"form",code:` `},{type:"YouTube Video",code:''},{type:"image",code:`
- ${N.name} + ${Q.name}
Image courtesy of @@ -133,7 +181,7 @@ mi, dictum tristique elit auctor quis. Maecenas ac ipsum ultrices, porta turpis sit amet, congue turpis.

-`},{type:"canvas",code:"Your browser does not support the canvas element."},{type:"meter",code:'60%'},{type:"style",code:{tag:"style",id:`${generateId()}`,style:"",state:{collapsed:!1,visible:!0,selected:!1},name:"style",type:"style",text:"",props:{type:"text/css"}}},{type:"script",code:{tag:"script",id:`${generateId()}`,style:"",state:{collapsed:!1,visible:!0,selected:!1},name:"script",type:"script",text:"",props:{type:"module"}}},{type:"hr",code:"
"}]}},L=function(){let t="h-4 w-4",e="h-3 w-3",a="h-4 w-4";return{logo:``},{type:"canvas",code:"Your browser does not support the canvas element."},{type:"meter",code:'60%'},{type:"style",code:{tag:"style",id:`${generateId()}`,style:"",state:{collapsed:!1,visible:!0,selected:!1},name:"style",type:"style",text:"",props:{type:"text/css"}}},{type:"script",code:{tag:"script",id:`${generateId()}`,style:"",state:{collapsed:!1,visible:!0,selected:!1},name:"script",type:"script",text:"",props:{type:"module"}}},{type:"hr",code:"
"}]}},R=function(){let t="h-4 w-4",e="h-3 w-3",o="h-4 w-4";return{logo:` `,rotate:` - `,times:` + `,times:` - `,search:` + `,search:` `,file:` `,import:` - `,upload:` + `,upload:` `,download:` @@ -230,7 +278,7 @@ d="M 90.010716,-37.596 C 39.849447,-37.596 -0.7,2.9560437 -0.7,52.854 c 0,50.16127 40.812759,90.97356 90.710716,90.57858 h 42.392864 v 70.83214 H 90.010716 C 39.849447,214.26472 -0.7,254.68463 -0.7,304.58258 c 0,50.29293 40.549447,90.57857 90.710716,90.57857 49.897964,0 90.450004,-40.28564 90.450004,-90.57857 v -42.26429 h 70.56786 v 42.26429 c 0,50.29293 40.41681,90.57857 90.44642,90.57857 50.16127,0 90.58215,-40.28564 90.58215,-90.57857 0,-49.89795 -40.42088,-90.31786 -90.58215,-90.31786 H 299.08215 V 143.43258 H 341.475 c 50.16127,0 90.58215,-40.41731 90.58215,-90.57858 0,-49.8979563 -40.42088,-90.45 -90.58215,-90.45 -50.02961,0 -90.70974,40.5520437 -90.44642,90.45 V 95.511146 H 180.46072 V 52.854 c 0,-49.8979563 -40.55204,-90.45 -90.450004,-90.45 z m 0.13214,48.053572 c 23.303254,0 42.260724,18.961043 42.260724,42.264285 V 95.378996 H 90.142856 c -23.69819,0 -42.657141,-18.95892 -42.657141,-42.657139 0,-23.303242 18.958951,-42.264285 42.657141,-42.264285 z m 251.203574,0 c 23.69822,0 42.65715,18.961043 42.65715,42.264285 0,23.698219 -18.95893,42.657139 -42.65715,42.657139 H 299.08215 V 52.721857 c 0,-23.303242 18.96105,-42.264285 42.26428,-42.264285 z M 180.46072,143.56472 h 70.7 v 70.7 h -70.7 z M 90.142856,262.31829 h 42.260724 v 42.26429 c 0,23.6982 -18.95747,42.65714 -42.260724,42.65714 -23.69819,0 -42.657141,-18.95894 -42.657141,-42.65714 0,-23.30325 18.958951,-42.26429 42.657141,-42.26429 z m 208.939294,0 h 42.26428 c 23.69822,0 42.65715,18.96104 42.65715,42.26429 0,23.6982 -18.95893,42.65714 -42.65715,42.65714 -23.30323,0 -42.26428,-18.95894 -42.26428,-42.65714 z" /> `,plusFill:` - `,shift:``,move:``,undo:``,redo:``,trash:``,clone:``,cut:``,copy:``,group:``,paste:``,bold:``,italic:``,underline:``,strike:``,subscript:``,superscript:``,heading:``,paragraph:``,quote:``,link:``,listBullet:``,listNumbers:``,icons:``}}();window.project=te(ve,(t,e,a)=>{if(e!==a){localStorage.setItem("Polyrise",JSON.stringify(project));let o=t.split(".");if(o[0]==="activePanel"&&getIFrameClientSize(),!App.initialRender){let s=["lang","title","description","author","url","meta","previewDark"];o[0]==="html"&&o.includes("text")||s.includes(o[0])?renderPreview():(App.render("#app"),["lang","libraries","html","css","title","description","author","url","meta","previewDark"].includes(o[0])&&renderPreview(),o[0]==="dark"&&(App.render("#app"),document.documentElement.setAttribute("data-theme",project.dark?"dark":"light"),document.querySelector("meta[name=apple-mobile-web-app-status-bar-style]").setAttribute("content",project.dark?"black-translucent":"default"),document.querySelector("meta[name=theme-color]").setAttribute("content",project.dark?"#13171f":"#ffffff"),document.querySelector("meta[name=msapplication-navbutton-color]").setAttribute("content",project.dark?"#13171f":"#ffffff")))}}});window.data=te(we,(t,e,a)=>{e!==a&&(t.toString()==="stylesTarget"&&data.stylesTarget&&data.shiftKey&&(data.selectedLayerIds=[],selectLayersByStyleRef(data.stylesTarget,project.html)),App.render("#app"))});function xe(){let t="w-full";return`
    + `,shift:``,move:``,undo:``,redo:``,trash:``,clone:``,cut:``,copy:``,group:``,paste:``,bold:``,italic:``,underline:``,strike:``,subscript:``,superscript:``,heading:``,paragraph:``,quote:``,link:``,listBullet:``,listNumbers:``,icons:``}}();window.project=ue(ve,(t,e,o)=>{if(e!==o){localStorage.setItem("Polyrise",JSON.stringify(project));let s=t.split(".");if(s[0]==="activePanel"&&getIFrameClientSize(),!App.initialRender){let a=["lang","title","description","author","url","meta","previewDark"];s[0]==="html"&&s.includes("text")||a.includes(s[0])?renderPreview():(App.render("#app"),["lang","libraries","html","css","title","description","author","url","meta","previewDark"].includes(s[0])&&renderPreview(),s[0]==="dark"&&(App.render("#app"),document.documentElement.setAttribute("data-theme",project.dark?"dark":"light"),document.querySelector("meta[name=apple-mobile-web-app-status-bar-style]").setAttribute("content",project.dark?"black-translucent":"default"),document.querySelector("meta[name=theme-color]").setAttribute("content",project.dark?"#13171f":"#ffffff"),document.querySelector("meta[name=msapplication-navbutton-color]").setAttribute("content",project.dark?"#13171f":"#ffffff")))}}});window.data=ue(we,(t,e,o)=>{e!==o&&(t.toString()==="stylesTarget"&&data.stylesTarget&&data.shiftKey&&(data.selectedLayerIds=[],selectLayersByStyleRef(data.stylesTarget,project.html)),App.render("#app"))});function xe(){let t="w-full";return`
    • @@ -251,7 +299,7 @@ role="button" href="https://twitter.com/michaelsboost" > - ${L.twitter} + ${R.twitter}
    • @@ -262,7 +310,7 @@ role="button" class="${t} text-sm border-0 px-4 py-3 rounded-md bg-transparent text-red-400" > - ${L.heart} + ${R.heart}
    • @@ -272,7 +320,7 @@ class="w-11 text-sm border-0 px-0 py-3 mb-2" onclick="Blocks()" > - ${L.plus} + ${R.plus}
    @@ -284,7 +332,7 @@ class="${t} text-sm border-0 px-0 py-3 rounded-md bg-transparent ${project.activePanel==="layers"?"text-blue-500":""}" onclick="project.activePanel = project.activePanel === 'layers' ? null : 'layers'" > - ${L.layers} + ${R.layers}
  • @@ -294,7 +342,7 @@ class="${t} text-sm border-0 px-0 py-3 rounded-md bg-transparent ${project.activePanel==="inspector"?"text-blue-500":""} lg:hidden" onclick="project.activePanel = project.activePanel === 'inspector' ? null : 'inspector'" > - ${L.swatch} + ${R.swatch}
@@ -307,7 +355,7 @@ style="color: unset;" onclick="project.previewDark = !project.previewDark;" > - ${project.previewDark?L.sun:L.moon} + ${project.previewDark?R.sun:R.moon}
  • @@ -318,7 +366,7 @@ style="color: unset;" onclick="renderPreview(true)" > - ${L.play} + ${R.play}
  • @@ -329,7 +377,7 @@ style="color: unset;" onclick="screenshot()" > - ${L.camera} + ${R.camera}
  • @@ -340,7 +388,7 @@ style="color: unset;" onclick="data.settings = !data.settings;" > - ${L.cog} + ${R.cog}
  • `}function $e(){let t=`
      @@ -351,7 +399,7 @@ aria-label="project homepage" name="project homepage" target="_blank" - href="${N.url}"> + href="${Q.url}"> logo
      - About ${N.name} + About ${Q.name}
      - Version ${N.version} + Version ${Q.version}
      + href="${Q.license}"> Open Source License @@ -455,7 +503,7 @@ style="color: unset;" aria-label="Close" onclick="data.menuDialog = null"> - ${L.times} + ${R.times}
      @@ -471,7 +519,7 @@ - `,t}function ke(){let t=data.frameworks,e=Object.keys(t).sort().reduce((o,s)=>(o[s]=t[s],o),{}),a=`
        + `,t}function ke(){let t=data.frameworks,e=Object.keys(t).sort().reduce((s,a)=>(s[a]=t[a],s),{}),o=`
        • - ${L.search} + ${R.search} @@ -584,26 +632,26 @@ } "> - ${Object.keys(e).map(o=>{let s=o.toLowerCase();return s=s.charAt(0).toUpperCase()+s.slice(1),``}).join("")} + ${Object.keys(e).map(s=>{let a=s.toLowerCase();return a=a.charAt(0).toUpperCase()+a.slice(1),``}).join("")}
          - ${project.libraries.map((o,s)=>` -
        • -
        `;return a=` +
      `;return o=`

      @@ -760,11 +808,11 @@ style="color: unset;" aria-label="Close" onclick="data.settings = null; data.chosenFramework = '';"> - ${L.times} + ${R.times}

      - ${a} + ${o}
      -
      `,a}window.librariesDialog=()=>{Modal.render({title:"Search for resources (JQuery, Bootstrap, Foundation...)",content:`
      + `,o}window.librariesDialog=()=>{Modal.render({title:"Search for resources (JQuery, Bootstrap, Foundation...)",content:`
      -
      `,onLoad(){document.getElementById("searchInput").focus()}})};window.attributesModal=()=>{let t=["accesskey","autocapitalize","autofocus","class","contenteditable","dir","exportparts","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","part","popover","role","slot","spellcheck","tabindex","translate"],e=["onabort","onautocomplete","onautocompleteerror","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onseeked","onseeking","onselect","onshow","onsort","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onvolumechange","onwaiting"],a=["onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmouseout","onmouseenter","onmouseleave","oncontextmenu"],o=["ondragstart","ondragend","ondrop","ondragenter","ondragleave","ondragover",...a],s={common:a,formControls:["onchange","oninput","onfocus","onblur"],buttonControls:["onchange","oninput","onfocus","onblur",...a],dragDrop:[...o],detailControls:["ontoggle"],dialogControls:["onclose","oncancel",...o],media:["onabort","oncanplay","oncanplaythrough","ondurationchange","onemptied","onended","onerror","onloadeddata","onloadedmetadata","onloadstart","onpause","onplay","onplaying","onprogress","onratechange","onseeked","onseeking","onstalled","onsuspend","ontimeupdate","onvolumechange","onwaiting"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onlanguagechange","onmessage","onmessageerror","onoffline","ononline","onpopstate","onrejectionhandled","onstorage","onunhandledrejection","onunload"],loadError:["onload","onerror"]},r=[{tags:["form","input","select","textarea"],events:["formControls"]},{tags:["canvas","map","meter","svg","path","rect","circle","ellipse","line","polyline","polygon","text","use","symbol","linearGradient","radialGradient","stop","clipPath","mask","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"],events:["common"]},{tags:["a","button"],events:["buttonControls"]},{tags:["details"],events:["detailControls"]},{tags:["dialog"],events:["dialogControls"]},{tags:["audio","video"],events:["media"]},{tags:["html"],events:["common","body"]},{tags:["script","img"],events:["loadError"]},{tags:["div","section","article","aside","header","footer","nav","main","figure","figcaption"],events:["dragDrop"]},{tags:["table","thead","tbody","tfoot","tr","th","td","col","colgroup","caption"],events:["common"]},{tags:["fieldset","label","legend"],events:["common"]},{tags:["iframe","embed","object","param"],events:["common"]},{tags:["output","del","ins","marquee","meter","time","data"],events:["common"]}];function i(k){return Array.from(new Set(k.flatMap(w=>s[w])))}function l(){let k={};return r.forEach(w=>{let x=i(w.events);w.tags.forEach(b=>{k[b]=x})}),k}let n=l(),c={input:["accept","alt","autocomplete","checked","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","size","src","step","type","value","width"],select:["autofocus","disabled","form","multiple","name","required","size"],option:["disabled","label","selected","value"],optgroup:["disabled","label"],textarea:["autocapitalize","autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],img:["alt","crossorigin","decoding","height","importance","intrinsicsize","ismap","loading","referrerpolicy","sizes","src","srcset","usemap","width"],a:["download","href","hreflang","ping","referrerpolicy","rel","target","type"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","type","value"],fieldset:["disabled","form","name"],label:["for"],iframe:["allow","allowfullscreen","allowpaymentrequest","height","loading","name","referrerpolicy","sandbox","src","srcdoc","width"],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],video:["autoplay","controls","crossorigin","height","loop","muted","playsinline","poster","preload","src","width"],source:["media","sizes","src","srcset","type"],track:["default","kind","label","src","srclang"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],meta:["charset","content","http-equiv","name"],link:["as","crossorigin","href","hreflang","media","referrerpolicy","rel","sizes","type"],script:["async","crossorigin","defer","integrity","nomodule","referrerpolicy","src","type"],style:["media","scoped","type"],ol:["reversed","start","type"],li:["value"],table:["border"],th:["colspan","headers","rowspan","scope"],tr:["align","bgcolor","valign"],td:["abbr","align","axis","bgcolor","colspan","headers","height","rowspan","scope","valign","width"],progress:["max","value"],meter:["high","low","max","min","optimum","value"],object:["data","form","height","name","type","usemap","width"],embed:["height","src","type","width"],param:["name","value"],area:["alt","coords","download","href","hreflang","ping","referrerpolicy","rel","shape","target"],col:["span","width"],colgroup:["span"],map:["name"],track:["default","kind","label","src","srclang"],canvas:["height","width"],data:["value"],time:["datetime"],output:["for","form","name"],del:["cite","datetime"],ins:["cite","datetime"],details:["open"],dialog:["open"],marquee:["behavior","bgcolor","direction","height","hspace","loop","scrollamount","scrolldelay","truespeed","vspace","width"],meter:["high","low","max","min","optimum","value"],svg:["width","height","viewBox","preserveAspectRatio","xmlns"],path:["d","pathLength"],rect:["x","y","width","height","rx","ry"],circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],line:["x1","y1","x2","y2"],polyline:["points"],polygon:["points"],text:["x","y","dx","dy","rotate","textLength","lengthAdjust"],use:["href","x","y","width","height"],symbol:["viewBox","preserveAspectRatio"],linearGradient:["x1","y1","x2","y2","gradientUnits","gradientTransform","spreadMethod"],radialGradient:["cx","cy","r","fx","fy","fr","gradientUnits","gradientTransform","spreadMethod"],stop:["offset","stop-color","stop-opacity"],clipPath:["clipPathUnits"],mask:["maskUnits","maskContentUnits","x","y","width","height"],filter:["x","y","width","height","filterUnits","primitiveUnits"],feBlend:["in","in2","mode"],feColorMatrix:["in","type","values"],feComponentTransfer:["in"],feComposite:["in","in2","operator","k1","k2","k3","k4"],feConvolveMatrix:["in","order","kernelMatrix","divisor","bias","targetX","targetY","edgeMode","preserveAlpha"],feDiffuseLighting:["in","surfaceScale","diffuseConstant","kernelUnitLength"],feDisplacementMap:["in","in2","scale","xChannelSelector","yChannelSelector"],feDistantLight:["azimuth","elevation"],feFlood:["flood-color","flood-opacity"],feFuncA:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feFuncB:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feFuncG:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feFuncR:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feGaussianBlur:["in","stdDeviation","edgeMode"],feImage:["href","preserveAspectRatio","x","y","width","height","result"],feMergeNode:["in"],feMorphology:["in","operator","radius"],feOffset:["in","dx","dy"],fePointLight:["x","y","z"],feSpecularLighting:["in","surfaceScale","specularConstant","specularExponent","kernelUnitLength"],feSpotLight:["x","y","z","pointsAtX","pointsAtY","pointsAtZ","specularExponent","limitingConeAngle"],feTile:["in"],feTurbulence:["baseFrequency","numOctaves","seed","stitchTiles","type"]};function p(k){if(k.length===0)return[];let w=k[0].tag;return!!k.every(b=>b.tag===w)}let d=data.selectedLayerIds.map(k=>findLayerById(k,project.html).layer).filter(k=>k),f=p(d);function y(k){return k.filter(w=>!data.searchTerm||w.includes(data.searchTerm)).map(w=>` +
      `,onLoad(){document.getElementById("searchInput").focus()}})};window.attributesModal=()=>{let t=["accesskey","autocapitalize","autofocus","class","contenteditable","dir","exportparts","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","part","popover","role","slot","spellcheck","tabindex","translate"],e=["onabort","onautocomplete","onautocompleteerror","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onseeked","onseeking","onselect","onshow","onsort","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onvolumechange","onwaiting"],o=["onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmouseout","onmouseenter","onmouseleave","oncontextmenu"],s=["ondragstart","ondragend","ondrop","ondragenter","ondragleave","ondragover",...o],a={common:o,formControls:["onchange","oninput","onfocus","onblur"],buttonControls:["onchange","oninput","onfocus","onblur",...o],dragDrop:[...s],detailControls:["ontoggle"],dialogControls:["onclose","oncancel",...s],media:["onabort","oncanplay","oncanplaythrough","ondurationchange","onemptied","onended","onerror","onloadeddata","onloadedmetadata","onloadstart","onpause","onplay","onplaying","onprogress","onratechange","onseeked","onseeking","onstalled","onsuspend","ontimeupdate","onvolumechange","onwaiting"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onlanguagechange","onmessage","onmessageerror","onoffline","ononline","onpopstate","onrejectionhandled","onstorage","onunhandledrejection","onunload"],loadError:["onload","onerror"]},r=[{tags:["form","input","select","textarea"],events:["formControls"]},{tags:["canvas","map","meter","svg","path","rect","circle","ellipse","line","polyline","polygon","text","use","symbol","linearGradient","radialGradient","stop","clipPath","mask","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"],events:["common"]},{tags:["a","button"],events:["buttonControls"]},{tags:["details"],events:["detailControls"]},{tags:["dialog"],events:["dialogControls"]},{tags:["audio","video"],events:["media"]},{tags:["html"],events:["common","body"]},{tags:["script","img"],events:["loadError"]},{tags:["div","section","article","aside","header","footer","nav","main","figure","figcaption"],events:["dragDrop"]},{tags:["table","thead","tbody","tfoot","tr","th","td","col","colgroup","caption"],events:["common"]},{tags:["fieldset","label","legend"],events:["common"]},{tags:["iframe","embed","object","param"],events:["common"]},{tags:["output","del","ins","marquee","meter","time","data"],events:["common"]}];function c(H){return Array.from(new Set(H.flatMap(L=>a[L])))}function l(){let H={};return r.forEach(L=>{let z=c(L.events);L.tags.forEach(A=>{H[A]=z})}),H}let i=l(),f={input:["accept","alt","autocomplete","checked","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","size","src","step","type","value","width"],select:["autofocus","disabled","form","multiple","name","required","size"],option:["disabled","label","selected","value"],optgroup:["disabled","label"],textarea:["autocapitalize","autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],img:["alt","crossorigin","decoding","height","importance","intrinsicsize","ismap","loading","referrerpolicy","sizes","src","srcset","usemap","width"],a:["download","href","hreflang","ping","referrerpolicy","rel","target","type"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","type","value"],fieldset:["disabled","form","name"],label:["for"],iframe:["allow","allowfullscreen","allowpaymentrequest","height","loading","name","referrerpolicy","sandbox","src","srcdoc","width"],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],video:["autoplay","controls","crossorigin","height","loop","muted","playsinline","poster","preload","src","width"],source:["media","sizes","src","srcset","type"],track:["default","kind","label","src","srclang"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],meta:["charset","content","http-equiv","name"],link:["as","crossorigin","href","hreflang","media","referrerpolicy","rel","sizes","type"],script:["async","crossorigin","defer","integrity","nomodule","referrerpolicy","src","type"],style:["media","scoped","type"],ol:["reversed","start","type"],li:["value"],table:["border"],th:["colspan","headers","rowspan","scope"],tr:["align","bgcolor","valign"],td:["abbr","align","axis","bgcolor","colspan","headers","height","rowspan","scope","valign","width"],progress:["max","value"],meter:["high","low","max","min","optimum","value"],object:["data","form","height","name","type","usemap","width"],embed:["height","src","type","width"],param:["name","value"],area:["alt","coords","download","href","hreflang","ping","referrerpolicy","rel","shape","target"],col:["span","width"],colgroup:["span"],map:["name"],track:["default","kind","label","src","srclang"],canvas:["height","width"],data:["value"],time:["datetime"],output:["for","form","name"],del:["cite","datetime"],ins:["cite","datetime"],details:["open"],dialog:["open"],marquee:["behavior","bgcolor","direction","height","hspace","loop","scrollamount","scrolldelay","truespeed","vspace","width"],meter:["high","low","max","min","optimum","value"],svg:["width","height","viewBox","preserveAspectRatio","xmlns"],path:["d","pathLength"],rect:["x","y","width","height","rx","ry"],circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],line:["x1","y1","x2","y2"],polyline:["points"],polygon:["points"],text:["x","y","dx","dy","rotate","textLength","lengthAdjust"],use:["href","x","y","width","height"],symbol:["viewBox","preserveAspectRatio"],linearGradient:["x1","y1","x2","y2","gradientUnits","gradientTransform","spreadMethod"],radialGradient:["cx","cy","r","fx","fy","fr","gradientUnits","gradientTransform","spreadMethod"],stop:["offset","stop-color","stop-opacity"],clipPath:["clipPathUnits"],mask:["maskUnits","maskContentUnits","x","y","width","height"],filter:["x","y","width","height","filterUnits","primitiveUnits"],feBlend:["in","in2","mode"],feColorMatrix:["in","type","values"],feComponentTransfer:["in"],feComposite:["in","in2","operator","k1","k2","k3","k4"],feConvolveMatrix:["in","order","kernelMatrix","divisor","bias","targetX","targetY","edgeMode","preserveAlpha"],feDiffuseLighting:["in","surfaceScale","diffuseConstant","kernelUnitLength"],feDisplacementMap:["in","in2","scale","xChannelSelector","yChannelSelector"],feDistantLight:["azimuth","elevation"],feFlood:["flood-color","flood-opacity"],feFuncA:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feFuncB:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feFuncG:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feFuncR:["type","tableValues","slope","intercept","amplitude","exponent","offset"],feGaussianBlur:["in","stdDeviation","edgeMode"],feImage:["href","preserveAspectRatio","x","y","width","height","result"],feMergeNode:["in"],feMorphology:["in","operator","radius"],feOffset:["in","dx","dy"],fePointLight:["x","y","z"],feSpecularLighting:["in","surfaceScale","specularConstant","specularExponent","kernelUnitLength"],feSpotLight:["x","y","z","pointsAtX","pointsAtY","pointsAtZ","specularExponent","limitingConeAngle"],feTile:["in"],feTurbulence:["baseFrequency","numOctaves","seed","stitchTiles","type"]};function b(H){if(H.length===0)return[];let L=H[0].tag;return!!H.every(A=>A.tag===L)}let g=data.selectedLayerIds.map(H=>findLayerById(H,project.html).layer).filter(H=>H),$=b(g);function E(H){return H.filter(L=>!data.searchTerm||L.includes(data.searchTerm)).map(L=>` `).join("")}let u="";data.selectedLayerIds.forEach(k=>{let{layer:w}=findLayerById(k,project.html),x=c[w.tag]?c[w.tag]:null,b=null;data.boxElements.includes(w.tag)||data.textElements.includes(w.tag)?["a","button","form","input","select","textarea"].includes(w.tag)?b=y(n[w.tag]):b=y(n.div):data.breakElements.includes(w.tag)?b=null:b=y(n[w.tag]||e),u=` + ${L} + `).join("")}let w="";data.selectedLayerIds.forEach(H=>{let{layer:L}=findLayerById(H,project.html),z=f[L.tag]?f[L.tag]:null,A=null;data.boxElements.includes(L.tag)||data.textElements.includes(L.tag)?["a","button","form","input","select","textarea"].includes(L.tag)?A=E(i[L.tag]):A=E(i.div):data.breakElements.includes(L.tag)?A=null:A=E(i[L.tag]||e),w=`
      - ${x&&f?` + ${z&&$?`
      - Specific Attributes for <${w.tag}> + Specific Attributes for <${L.tag}> - ${y(x)} + ${E(z)}

      `:""}
      - ${y(t)} + ${E(t)}
      @@ -846,10 +894,10 @@ data.eventAttributesCollapsed = detailsElement.hasAttribute('open'); "> - Event Attributes for <${w.tag}> + Event Attributes for <${L.tag}> - ${b} + ${A} @@ -868,23 +916,23 @@ } " /> -
      `}),Modal.render({title:"Add An Attribute",content:u,onLoad(){document.getElementById("hyfb8mxg0").focus()},onClose(){},onConfirm(){addAttribute(document.getElementById("hyfb8mxg0").value.trim())}})};function je(){function t(e){let{id:a,name:o,children:s,state:r}=e,i=s&&s.length>0,l=r.visible;return data.shiftKey&&data.cmdKey&&e.style===data.stylesTarget&&(e.state.selected=!0),` + `}),Modal.render({title:"Add An Attribute",content:w,onLoad(){document.getElementById("hyfb8mxg0").focus()},onClose(){},onConfirm(){addAttribute(document.getElementById("hyfb8mxg0").value.trim())}})};function je(){function t(e){let{id:o,name:s,children:a,state:r}=e,c=a&&a.length>0,l=r.visible;return data.shiftKey&&data.cmdKey&&e.style===data.stylesTarget&&(e.state.selected=!0),`
    • - + - ${i?`
        `+s.map(c=>t(c)).join("")+"
      ":""} + ${c?`
        `+a.map(f=>t(f)).join("")+"
      ":""}
    • - `}return project.html.map(e=>t(e)).join("")}function fe(){if(data.editorNavState)return;function t(h){if(h.length===0)return[];let j=h[0].tag;return h.every(C=>C.tag===j)?h:[]}function e(h){if(h.length===0)return{};let j={};return h.forEach(C=>{Object.keys(C.props||{}).forEach($=>{j[$]=(j[$]||0)+1})}),Object.fromEntries(Object.entries(j).filter(([C,$])=>$===h.length).map(([C])=>[C,h[0].props[C]]))}let a="bg-transparent border-0 text-[.6rem] p-0 m-0 h-full capitalize text-left",o="bg-transparent border-0 p-0 text-right",s="bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-center p-2 border",r="m-0 w-auto rounded-md capitalize text-[.6rem]",i="padding: .5rem; background-image: none;",l="w-auto rounded-md normal-case text-[.6rem]",n="height: auto; margin: 0; padding: .4rem;",c="w-auto rounded-md normal-case text-[.6rem] resize-vertical",p="height: 5rem; margin: 0; padding: .4rem;",d="cursor-pointer w-full my-2",f={en:"English",es:"Espa\xF1ol",zh:"\u4E2D\u6587",hi:"\u0939\u093F\u0928\u094D\u0926\u0940",ar:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",fr:"Fran\xE7ais",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",pt:"Portugu\xEAs",de:"Deutsch",ja:"\u65E5\u672C\u8A9E",ko:"\uD55C\uAD6D\uC5B4",it:"Italiano",tr:"T\xFCrk\xE7e",vi:"Ti\u1EBFng Vi\u1EC7t",pl:"Polski"},y={Phones:{"320x480":"iPhone 3GS","375x667":"iPhone 6/7/8","414x736":"iPhone 6/7/8 Plus","375x812":"iPhone X/XS/11 Pro","414x896":"iPhone XR/XS Max/11/11 Pro Max","360x640":"Samsung Galaxy S5","360x740":"Samsung Galaxy S8+","1440x3200":"Samsung Galaxy S21 Ultra","1080x2340":"Google Pixel 5","1080x2400":"OnePlus 8 Pro","1440x3200":"Xiaomi Mi 11 Ultra","1644x3840":"Sony Xperia 1 III"},Tablets:{"2048x2732":'iPad Pro 12.9" (3rd/4th Gen)',"2388x1668":'iPad Pro 11" (1st/2nd/3rd Gen)',"2736x1824":"Microsoft Surface Pro 7","2800x1752":"Samsung Galaxy Tab S7+","2560x1600":"Huawei MatePad Pro","2000x1200":"Lenovo Tab P11 Pro","1920x1200":"Amazon Fire HD 10","1536x2048":"iPad Air (3rd Gen)","1620x2160":"iPad Air (4th Gen)","1620x2160":'iPad 10.2" (8th Gen)',"1668x2224":'iPad Pro 11" (2021)'},Desktops:{"3840x2160":"4K UHD (3840x2160)","2560x1440":"WQHD (2560x1440)","1920x1080":"Full HD (1920x1080)","1366x768":"Laptop (1366x768)","3440x1440":"UltraWide QHD (3440x1440)","5120x2880":"5K Retina (5120x2880)","1280x800":"MacBook (1280x800)","2560x1600":"MacBook Pro (2560x1600)","2880x1800":"MacBook Pro Retina (2880x1800)"}},u=["autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","loop","multiple","muted","novalidate","open","contenteditable","readonly","required","reversed","scoped","seamless","selected"],k=["button","checkbox","color","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"],w=["max","maxlength","min","minlength","multiple","range","size","step"],x=["accept","acceptCharset","accesskey","action","align","alt","autocomplete","form","list","pattern","placeholder","src","tabindex","title","type","usemap","value"],b=data.selectedLayerIds.map(h=>findLayerById(h,project.html).layer).filter(h=>h),m=t(b),g=e(b),I=data.cssFixedValueProperties,T=data.cssRangedValueProperties,z=data.boxElements,O=data.textElements,W=data.breakElements;function U(h,j){return` - - - `}function V(h,j,C,$,S,v){return` - + `}return project.html.map(e=>t(e)).join("")}function ge(){if(data.editorNavState)return;function t(m){if(m.length===0)return[];let C=m[0].tag;return m.every(S=>S.tag===C)?m:[]}function e(m){if(m.length===0)return{};let C={};return m.forEach(S=>{Object.keys(S.props||{}).forEach(v=>{C[v]=(C[v]||0)+1})}),Object.fromEntries(Object.entries(C).filter(([S,v])=>v===m.length).map(([S])=>[S,m[0].props[S]]))}let o="bg-transparent border-0 text-[.6rem] p-0 m-0 h-full capitalize text-left",s="bg-transparent border-0 p-0 text-right",a="bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-center p-2 border",r="m-0 w-auto rounded-md capitalize text-[.6rem]",c="padding: .5rem; background-image: none;",l="w-auto rounded-md normal-case text-[.6rem]",i="height: auto; margin: 0; padding: .4rem;",f="w-auto rounded-md normal-case text-[.6rem] resize-vertical",b="height: 5rem; margin: 0; padding: .4rem;",g="cursor-pointer w-full my-2",$={en:"English",es:"Espa\xF1ol",zh:"\u4E2D\u6587",hi:"\u0939\u093F\u0928\u094D\u0926\u0940",ar:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",fr:"Fran\xE7ais",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",pt:"Portugu\xEAs",de:"Deutsch",ja:"\u65E5\u672C\u8A9E",ko:"\uD55C\uAD6D\uC5B4",it:"Italiano",tr:"T\xFCrk\xE7e",vi:"Ti\u1EBFng Vi\u1EC7t",pl:"Polski"},E={Phones:{"320x480":"iPhone 3GS","375x667":"iPhone 6/7/8","414x736":"iPhone 6/7/8 Plus","375x812":"iPhone X/XS/11 Pro","414x896":"iPhone XR/XS Max/11/11 Pro Max","360x640":"Samsung Galaxy S5","360x740":"Samsung Galaxy S8+","1440x3200":"Samsung Galaxy S21 Ultra","1080x2340":"Google Pixel 5","1080x2400":"OnePlus 8 Pro","1440x3200":"Xiaomi Mi 11 Ultra","1644x3840":"Sony Xperia 1 III"},Tablets:{"2048x2732":'iPad Pro 12.9" (3rd/4th Gen)',"2388x1668":'iPad Pro 11" (1st/2nd/3rd Gen)',"2736x1824":"Microsoft Surface Pro 7","2800x1752":"Samsung Galaxy Tab S7+","2560x1600":"Huawei MatePad Pro","2000x1200":"Lenovo Tab P11 Pro","1920x1200":"Amazon Fire HD 10","1536x2048":"iPad Air (3rd Gen)","1620x2160":"iPad Air (4th Gen)","1620x2160":'iPad 10.2" (8th Gen)',"1668x2224":'iPad Pro 11" (2021)'},Desktops:{"3840x2160":"4K UHD (3840x2160)","2560x1440":"WQHD (2560x1440)","1920x1080":"Full HD (1920x1080)","1366x768":"Laptop (1366x768)","3440x1440":"UltraWide QHD (3440x1440)","5120x2880":"5K Retina (5120x2880)","1280x800":"MacBook (1280x800)","2560x1600":"MacBook Pro (2560x1600)","2880x1800":"MacBook Pro Retina (2880x1800)"}},w=["autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","loop","multiple","muted","novalidate","open","contenteditable","readonly","required","reversed","scoped","seamless","selected"],H=["button","checkbox","color","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"],L=["max","maxlength","min","minlength","multiple","range","size","step"],z=["accept","acceptCharset","accesskey","action","align","alt","autocomplete","form","list","pattern","placeholder","src","tabindex","title","type","usemap","value"],A=data.selectedLayerIds.map(m=>findLayerById(m,project.html).layer).filter(m=>m),x=t(A),k=e(A),V=data.cssFixedValueProperties,_=data.cssRangedValueProperties,F=data.boxElements,W=data.textElements,X=data.breakElements;function ee(m,C){return` + + + `}function Y(m,C,S,v,P,j){return` + - `}function K(h,j){return` - + `}function U(m,C){return` + - `}let _=()=>` + onblur="saveState()"/>${C} + `}let J=()=>`
      - `,Y=(h,j,C,$=null)=>{let S="",v=/^(#[0-9a-f]{3,6}|rgba?(.+)|hsla?(.+))$/i,M=["background","background-image","box-shadow","text-shadow","border","border-radius","border-image","filter","transform"];return Object.keys(h).forEach(E=>{let P=h[E],H=`${j}['${E}']`,R=I[E];if(R){let q=R.map(Z=>``).join("");S+=` + `,M=(m,C,S,v=null)=>{let P="",j=/^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i,D=["background","background-image","box-shadow","text-shadow","border","border-radius","border-image","filter","transform"];return Object.keys(m).forEach(N=>{let q=m[N],K=`${C}['${N}']`,Z=V[N];if(Z){let G=Z.map(te=>``).join("");P+=` - `}else if(T[E]){let{min:q,max:Z,step:X}=T[E],J=P?P.match(/-?\d*\.?\d+([a-z%]+|)/g)||[]:[],Q=P?P.split(/-?\d*\.?\d+[a-z%]*/g).filter(Boolean)||[]:[],he=J.length>0?"grid-cols-2":"grid-cols-1";S+=` + `}else if(_[N]){let{min:G,max:te,step:se}=_[N],re=q?q.match(/-?\d*\.?\d+([a-z%]+|)/g)||[]:[],oe=q?q.split(/-?\d*\.?\d+[a-z%]*/g).filter(Boolean)||[]:[],me=re.length>0?"grid-cols-2":"grid-cols-1";P+=` -
      `,J.forEach((ue,ne)=>{let le=parseFloat(ue),me=ue.match(/[a-zA-Z%]+/),ie=me?me[0]:"",ee;switch(E){case"scale":case"rotate":case"translate":case"perspective":case"skew":ee=["","deg","rad"];break;case"animation-duration":case"transition-duration":ee=["","ms","s"];break;default:ee=["","px","%","rem","em","vh","lvh","svh","dvh","vw","lvw","svw","dvw"];break}let ye=`${ee.map(ce=>``).join("")}`,be=``;S+=` - ${ae.map(fe=>``).join("")}`,be=``;P+=` + - ${E==="opacity"||E==="z-index"?be:ye}`}),(Q.length>0||J.length===0)&&(S+=` - - `),S+="
      "}else if(M.includes(E))S+=` + ${N==="opacity"||N==="z-index"?be:ce}`}),(oe.length>0||re.length===0)&&(P+=` + + `),P+=""}else if(D.includes(N))P+=` - `;else{let q=v.test(P)||P===null,Z=q?"color":"text",X=q&&P===null?"#000000":P,J=Z==="color"?`${n} height: 2rem; margin: 0; padding: .25rem; overflow: hidden;`:n;S+=` + `;else{let G=j.test(q)||q===null,te=G&&q===null?"#000000":q;P+=` - `}}),S},ae=()=>{let h="",j=/^(#[0-9a-f]{3,6}|rgba?(.+)|hsla?(.+))$/i;return Object.keys(project.css.rootVariables).forEach(C=>{let $=project.css.rootVariables[C],S=`project.css.rootVariables['${C}']`,v=j.test($),M=$.includes("rgba")||$.includes("hsla"),E=!isNaN(parseFloat($))&&isFinite($),P="text",H="height: auto; margin: 0; padding: .4rem;";E?P="number":v&&!M&&(P="color",H="height: 2rem; margin: 0; padding: .25rem; overflow: hidden;"),h+=` + `}}),P},n=()=>{let m="",C=/^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i;return Object.keys(project.css.rootVariables).forEach(S=>{let v=project.css.rootVariables[S],P=`project.css.rootVariables['${S}']`,j=C.test(v),D=!isNaN(parseFloat(v))&&isFinite(v),N="text",q="height: auto; margin: 0; padding: .4rem;";D&&(N="number"),m+=` `}),`
      -
      - `},oe=()=>{m||(data.stylesTarget=null);let h=null,j="",C=null;m&&Object.keys(m).forEach(M=>{let E=m[M]});let $=null;data.breakpointKey?$=project.css.breakpoints[`${data.breakpointKey}px`]:$=project.css.styles;let S=` - `,v="";return Object.keys($).forEach(M=>{data.stylesTarget&&data.stylesTarget===M?(v=a.split("bg-transparent border-0").join(""),C=M):(v="bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-left",C=null),j+=``}),`
      + `,j="";return Object.keys(v).forEach(D=>{data.stylesTarget&&data.stylesTarget===D?(j=o.split("bg-transparent border-0").join(""),S=D):(j="bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-left",S=null),C+=``}),`
      -
      ${data.stylesTarget?`
      - ${S} + ${P}
      `:""}
      - ${j} + ${C}
      ${data.stylesTarget?`
      @@ -1108,7 +1165,7 @@
      `},A=()=>{m||(data.stylesTarget=null);let h="",j="",C=null;return m&&Object.keys(m).forEach($=>{let S=m[$];data.stylesTarget||(data.stylesTarget=S.style)}),data.stylesTarget&&data.stylesPropTarget==="pseudos"&&project.css.styles[data.stylesTarget].pseudos&&Object.keys(project.css.styles[data.stylesTarget].pseudos).forEach($=>{j=project.css.styles[data.stylesTarget].pseudos[$].selector,data.pseudosSelector===j?(buttonClass=a.split("bg-transparent border-0").join(""),C=!0,data.pseudosSelectorIndex=$):(buttonClass="bg-transparent text-[.6rem] p-0 m-0 h-full text-left",C=null),h+=``}),`
      +
      `},d=()=>{x||(data.stylesTarget=null);let m="",C="",S=null;return x&&Object.keys(x).forEach(v=>{let P=x[v];data.stylesTarget||(data.stylesTarget=P.style)}),data.stylesTarget&&data.stylesPropTarget==="pseudos"&&project.css.styles[data.stylesTarget].pseudos&&Object.keys(project.css.styles[data.stylesTarget].pseudos).forEach(v=>{C=project.css.styles[data.stylesTarget].pseudos[v].selector,data.pseudosSelector===C?(buttonClass=o.split("bg-transparent border-0").join(""),S=!0,data.pseudosSelectorIndex=v):(buttonClass="bg-transparent text-[.6rem] p-0 m-0 h-full text-left",S=null),m+=``}),`
      - -
      ${data.stylesTarget?`
      - ${h} + ${m}
      `:""} ${data.pseudosSelector&&data.stylesTarget?`
      @@ -1167,7 +1224,7 @@
      `:""}
      -
      `},B=()=>{let h="",j=null;m&&Object.keys(m).forEach(v=>{j=m[v].style});let C=project.css.styles;["base","pseudos"].includes(data.stylesPropTarget)&&Object.keys(C).forEach(v=>{if(j===v||data.stylesTarget==v)if(data.stylesPropTarget==="pseudos"){let M=data.pseudosSelectorIndex;data.pseudosSelector&&C[v].pseudos[M].styles&&(h+=Y(C[v].pseudos[M].styles,`project.css.styles['${v}'].pseudos['${M}'].styles`,v))}else C[v][data.stylesPropTarget]&&(h+=Y(C[v][data.stylesPropTarget],`project.css.styles['${v}']['${data.stylesPropTarget}']`,v))});let S="project.css.styles[data.stylesTarget][data.stylesPropTarget]";return data.stylesPropTarget==="pseudos"&&(S="project.css.styles[data.stylesTarget][data.stylesPropTarget][data.pseudosSelectorIndex].styles"),`
      +
      `},y=()=>{let m="",C=null;x&&Object.keys(x).forEach(j=>{C=x[j].style});let S=project.css.styles;["base","pseudos"].includes(data.stylesPropTarget)&&Object.keys(S).forEach(j=>{if(C===j||data.stylesTarget==j)if(data.stylesPropTarget==="pseudos"){let D=data.pseudosSelectorIndex;data.pseudosSelector&&S[j].pseudos[D].styles&&(m+=M(S[j].pseudos[D].styles,`project.css.styles['${j}'].pseudos['${D}'].styles`,j))}else S[j][data.stylesPropTarget]&&(m+=M(S[j][data.stylesPropTarget],`project.css.styles['${j}']['${data.stylesPropTarget}']`,j))});let P="project.css.styles[data.stylesTarget][data.stylesPropTarget]";return data.stylesPropTarget==="pseudos"&&(P="project.css.styles[data.stylesTarget][data.stylesPropTarget][data.pseudosSelectorIndex].styles"),`
      -
      - ${h} + ${m}
      -
      `},F=()=>{m||(data.stylesTarget=null);let h="",j=null;m&&Object.keys(m).forEach($=>{let S=m[$];data.stylesTarget||(data.stylesTarget=S.style)});let C="";return data.stylesTarget&&project.css.breakpoints&&Object.keys(project.css.breakpoints).forEach($=>{data.breakpointKey===$.split("px").join("")?(C=a.split("bg-transparent border-0").join(""),j=$):(C="bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-center",j=null),h+=``}),`
      + ">${v.split("px").join("")}`}),`
      -
      ${data.stylesTarget&&project.css.breakpoints?`
      - ${h} + ${m}
      `:""} ${data.breakpointKey&&data.stylesTarget&&project.css.breakpoints?`
      @@ -1236,40 +1293,40 @@
      `:""}
      -
      `},D=()=>{if(!data.breakpointKey)return;let h="",j=null;m&&Object.keys(m).forEach(S=>{j=m[S].style});let C=project.css.breakpoints[`${data.breakpointKey}px`];return["base","pseudos"].includes(data.stylesPropTarget)&&Object.keys(C).forEach(S=>{if(j===S||data.stylesTarget==S)if(data.stylesPropTarget==="pseudos"){let v=data.pseudosSelectorIndex;data.pseudosSelector&&C[S].pseudos[v].styles&&(h+=Y(C[S].pseudos[v].styles,`project.css.breakpoints['${data.breakpointKey}px']['${S}'].pseudos['${v}'].styles`,S,"breakpoints"))}else C[S][data.stylesPropTarget]&&(h+=Y(C[S][data.stylesPropTarget],`project.css.breakpoints['${data.breakpointKey}px']['${S}']['${data.stylesPropTarget}']`,S,"breakpoints"))}),`
      +
      `},h=()=>{if(!data.breakpointKey)return;let m="",C=null;x&&Object.keys(x).forEach(P=>{C=x[P].style});let S=project.css.breakpoints[`${data.breakpointKey}px`];return["base","pseudos"].includes(data.stylesPropTarget)&&Object.keys(S).forEach(P=>{if(C===P||data.stylesTarget==P)if(data.stylesPropTarget==="pseudos"){let j=data.pseudosSelectorIndex;data.pseudosSelector&&S[P].pseudos[j].styles&&(m+=M(S[P].pseudos[j].styles,`project.css.breakpoints['${data.breakpointKey}px']['${P}'].pseudos['${j}'].styles`,P,"breakpoints"))}else S[P][data.stylesPropTarget]&&(m+=M(S[P][data.stylesPropTarget],`project.css.breakpoints['${data.breakpointKey}px']['${P}']['${data.stylesPropTarget}']`,P,"breakpoints"))}),`
      - -
      - ${h} + ${m}
      -
      `},se=()=>{m||(data.stylesTarget=null);let h="",j=null;return m&&Object.keys(m).forEach(C=>{let $=m[C];data.stylesTarget||(data.stylesTarget=$.style)}),data.stylesTarget&&project.css.animations&&Object.keys(project.css.animations).forEach(C=>{data.animationTarget===C?(buttonClass=a.split("bg-transparent border-0").join(""),buttonClass=buttonClass.split("capitalize").join("normal-case"),j=C):(buttonClass="bg-transparent text-[.6rem] p-0 m-0 h-full normal-case text-center",j=null),h+=``}),`
      + ">${S}`}),`
      -
      ${data.stylesTarget&&project.css.animations?`
      - ${h} + ${m}
      `:""} ${data.animationTarget&&project.css.animations?`
      @@ -1301,27 +1358,27 @@
      `:""}
      -
      `},re=()=>{m||(data.stylesTarget=null);let h="",j="",C=null;if(m&&Object.keys(m).forEach($=>{let S=m[$];data.stylesTarget||(data.stylesTarget=S.style)}),data.animationTarget&&project.css.animations&&project.css.animations[data.animationTarget].keyframes&&Object.keys(project.css.animations[data.animationTarget].keyframes).forEach($=>{let S="";data.animationKeyframe===$?(S=a.split("bg-transparent border-0").join(""),isActive=!0):(S="bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-center",isActive=null),j+=``}),data.animationKeyframe&&data.animationTarget&&project.css.animations&&project.css.animations[data.animationTarget].keyframes){let $=project.css.animations[data.animationTarget].keyframes[data.animationKeyframe];h+=Y($,`project.css.animations['${data.animationTarget}'].keyframes['${data.animationKeyframe}']`,data.animationKeyframe,"animations")}return`
      + data.animationKeyframe = '${v}'; + ">${v}`}),data.animationKeyframe&&data.animationTarget&&project.css.animations&&project.css.animations[data.animationTarget].keyframes){let v=project.css.animations[data.animationTarget].keyframes[data.animationKeyframe];m+=M(v,`project.css.animations['${data.animationTarget}'].keyframes['${data.animationKeyframe}']`,data.animationKeyframe,"animations")}return`
      -
      ${data.animationTarget&&project.css.animations?`
      - ${j} + ${C}
      `:""} ${data.animationKeyframe&&project.css.animations&&project.css.animations[data.animationTarget].keyframes?`
      - ${h} + ${m}
      `:""} ${data.animationKeyframe&&project.css.animations&&project.css.animations[data.animationTarget].keyframes?`
      `:""}
      -
      `},G=()=>{if(b.length===0)return"";let h="",j="",C="";if((m||b.length===1)&&Object.keys(m).forEach($=>{j="";let S=m[$],v=S.tag;j+=` - Block Name - - `,j+=` - Style Ref - - `;let M="";if(z.includes(v)?M=z.map(E=>``).join(""):O.includes(v)?M=O.map(E=>``).join(""):W.includes(v)?M=W.map(E=>``).join(""):M=``,M&&(j+=` - tag - `),v==="svg"&&b.length===1){let E=document.createElement("template");E.innerHTML=json2html(S);let P=E.content.firstElementChild;P&&(P.hasAttribute("style")&&P.removeAttribute("style"),P.removeAttribute("width"),P.removeAttribute("height"),P.setAttribute("class",d),P.setAttribute("onclick",`updateSvgMedia('${S.id}', 'svg')`),C+=` - +
      `},I=()=>{if(A.length===0)return"";let m="",C="",S="";if((x||A.length===1)&&Object.keys(x).forEach(v=>{C="";let P=x[v],j=P.tag;C+=` + Block Name + + `,C+=` + Style Ref + + `;let D="";if(F.includes(j)?D=F.map(N=>``).join(""):W.includes(j)?D=W.map(N=>``).join(""):X.includes(j)?D=X.map(N=>``).join(""):D=``,D&&(C+=` + tag + `),j==="svg"&&A.length===1){let N=document.createElement("template");N.innerHTML=json2html(P);let q=N.content.firstElementChild;q&&(q.hasAttribute("style")&&q.removeAttribute("style"),q.removeAttribute("width"),q.removeAttribute("height"),q.setAttribute("class",g),q.setAttribute("onclick",`updateSvgMedia('${P.id}', 'svg')`),S+=` +
      - ${P.outerHTML} + ${q.outerHTML}
      - `),E.remove()}}),Object.keys(g).length>0||b.length===1){C?h=C+"":h="";let $=b[0],S=$.tag;S==="audio"&&(h+=` - Replace Audio + `),N.remove()}}),Object.keys(k).length>0||A.length===1){S?m=S+"":m="";let v=A[0],P=v.tag;P==="audio"&&(m+=` + Replace Audio
      - + @@ -1396,92 +1453,92 @@
      - `),$.props&&Object.keys(g).forEach(v=>{let M=v,E=g[v];textAreaAttributes=["on","@","x-",":"];let P=v.toLowerCase();if(u.includes(M))h+=U(v,g[v]);else if(P==="style"||P==="class")h+=K(v,g[v]);else if(textAreaAttributes.some(H=>P.startsWith(H)))h+=K(v,g[v]);else if(S==="input"){M==="required"&&(h+=U(v,g[v]));let H="text";for(let R of w)M===R&&(H="number");for(let R of x)M===R&&(H="text");if(M==="value")for(let R of k)$.props.type&&($.props.type===R&&(H=$.props.type.toLowerCase()),$.props.type==="range"&&(H="number"));if(M==="type"){let R="";for(let q of k)R+=``;h+=` - - + ${Z} - `}else h+=V(v,"text",g[v])}else if(S==="button")M==="type"?h+=` - - + + + - `:M==="role"?h+=U(v,g[v]):h+=V(v,"text",g[v]);else if(S==="a")M==="target"?h+=` - - + + + + - `:h+=V(v,"text",g[v]);else if(S==="img"){let H=["width","height"];if(H.includes(M)){let R="text";for(let q of H)M===q&&(R="number");h+=V(v,"text",g[v])}else M==="src"?h+=` - + `:m+=Y(j,"text",k[j]);else if(P==="img"){let K=["width","height"];if(K.includes(D)){let Z="text";for(let G of K)D===G&&(Z="number");m+=Y(j,"text",k[j])}else D==="src"?m+=` +
      - - + +
      - `:h+=V(v,"text",g[v])}else if(S==="svg"){let H=["stroke-width"],R="text";for(let q of H)M===q&&(R="number");h+=V(v,"text",g[v])}else S==="form"&&M==="method"?h+=` - - + + + + - `:h+=V(v,"text",g[v])})}if(Object.keys(g).length>0||b.length>=0){let $=b[0],S=$.tag;("text"in $||$.text)&&(S==="style"||S==="script"?h+=` - text + `:m+=Y(j,"text",k[j])})}if(Object.keys(k).length>0||A.length>=0){let v=A[0],P=v.tag;("text"in v||v.text)&&(P==="style"||P==="script"?m+=` + text - `:h+=` - text + onblur="saveState()"/>${v.text} + `:m+=` + text - `)}if(b.length>0)return`
      + onblur="saveState()"/>${v.text} + `)}if(A.length>0)return`
      - -
      - ${j+h} + ${C+m}
      `};return`
      - ${_()} - ${ae()} - ${oe()} - ${data.stylesTarget&&data.stylesPropTarget==="pseudos"?A():""} - ${data.stylesTarget?B():""} - ${data.stylesTarget?F():""} - ${data.breakpointKey?D():""} - ${data.stylesTarget?se():""} - ${data.animationTarget?re():""} - ${G()} + ${J()} + ${n()} + ${p()} + ${data.stylesTarget&&data.stylesPropTarget==="pseudos"?d():""} + ${data.stylesTarget?y():""} + ${data.stylesTarget?u():""} + ${data.breakpointKey?h():""} + ${data.stylesTarget?T():""} + ${data.animationTarget?B():""} + ${I()}
      - `}function ge(){let t="border-0 bg-transparent py-1";return` `}window.Modal={render({large:t,title:e="Are you sure you want to proceed?",content:a,CloseLabel:o,ConfirmLabel:s,onLoad:r,onClose:i,onConfirm:l}){let n="text-lg font-thin m-0",c="text-xs w-auto px-3 py-2 m-0 capitalize rounded-md",f=`
      + ${R.paste} + `}window.Modal={render({large:t,title:e="Are you sure you want to proceed?",content:o,CloseLabel:s,ConfirmLabel:a,onLoad:r,onClose:c,onConfirm:l}){let i="text-lg font-thin m-0",f="text-xs w-auto px-3 py-2 m-0 capitalize rounded-md",$=`
      -

      ${e}

      -
      - ${a||""} + ${o||""}
      - - ${l?``:""} + + ${l?``:""}
      -
      `,y=document.createElement("dialog");y.open=!0,y.innerHTML=f,document.body.appendChild(y),r&&typeof r=="function"&&r();let u=y.querySelector("header button"),k=y.querySelector("footer button:first-child"),w=y.querySelector("footer button:last-child");u.onclick=function(){i&&typeof i=="function"&&i(),document.body.removeChild(y)},k.onclick=function(){i&&typeof i=="function"&&i(),document.body.removeChild(y)},w.onclick=function(){l&&typeof l=="function"&&l(),document.body.removeChild(y)}}};window.Blocks=()=>{let t="bg-transparent p-4 text-xs cursor-pointer capitalize",e="",a="";data.blocks.items.forEach((s,r)=>{e+=` +
      `,E=document.createElement("dialog");E.open=!0,E.innerHTML=$,document.body.appendChild(E),r&&typeof r=="function"&&r();let w=E.querySelector("header button"),H=E.querySelector("footer button:first-child"),L=E.querySelector("footer button:last-child");w.onclick=function(){c&&typeof c=="function"&&c(),document.body.removeChild(E)},H.onclick=function(){c&&typeof c=="function"&&c(),document.body.removeChild(E)},L.onclick=function(){l&&typeof l=="function"&&l(),document.body.removeChild(E)}}};window.Blocks=()=>{let t="bg-transparent p-4 text-xs cursor-pointer capitalize",e="",o="";data.blocks.items.forEach((a,r)=>{e+=` `}),project.components.forEach((s,r)=>{a+=` + ${a.type} + `}),project.components.forEach((a,r)=>{o+=`
      -
      `});let o=`
      `});let s=`
      - `;Modal.render({title:"Add A Block",content:o})};window.App={initialRender:!0,render(t){let e="border-0 bg-transparent py-1",a=data.selectedSize,o,s,r=document.getElementById("previewElm");document.getElementById("previewElm")&&(o=r.clientWidth,s=r.clientHeight);let[i,l]=a.split("x").map(Number),n=` + `;Modal.render({title:"Add A Block",content:s})};window.App={initialRender:!0,render(t){if(data.doNotRender)return;let e="border-0 bg-transparent py-1",o=data.selectedSize,s,a,r=document.getElementById("previewElm");document.getElementById("previewElm")&&(s=r.clientWidth,a=r.clientHeight);let[c,l]=o.split("x").map(Number),i=`
      ${xe()} @@ -1638,7 +1695,7 @@ style="color: unset;" onclick="undo()" ${data.historyIndex>0?"":'disabled="true"'}> - ${L.undo} + ${R.undo}
      - ${ge()} + ${ye()}
      @@ -1684,7 +1741,7 @@
        - ${fe()} + ${ge()}
      @@ -1696,7 +1753,7 @@ style="color: unset;" onclick="undo()" ${data.historyIndex>0?"":'disabled="true"'}> - ${L.undo} + ${R.undo}
      @@ -1714,7 +1771,7 @@ class="${e} ${data.shiftKey?"text-blue-500":""}" style="${data.shiftKey?"":"color: unset;"}" onclick="data.shiftKey = !data.shiftKey;"> - ${L.shift} + ${R.shift}
      @@ -1741,14 +1798,14 @@ title="iframe title" class="bg-white ${data.selectedSize!=="none"?`border border-solid ${project.dark?"border-gray-800":"border-gray-200"} shadow-2xl shadow-blue-500`:""}" style="${data.selectedSize==="none"?"width: 100%; height: 100%":` - width: ${i}px; + width: ${c}px; height: ${l}px; - transform: scale(${Math.min(o/i,s/l)}); + transform: scale(${Math.min(s/c,a/l)}); position: absolute; top: 50%; left: 50%; margin-top: -${l/2}px; - margin-left: -${i/2}px;`}" + margin-left: -${c/2}px;`}" allow="accelerometer *; bluetooth *; camera *; encrypted-media *; display-capture *; geolocation *; gyroscope *; microphone *; midi *; clipboard-read *; clipboard-write *; serial *; xr-spatial-tracking *" allowfullscreen="true" allowpaymentrequest="true" @@ -1774,12 +1831,12 @@ style="color: unset;" onclick="undo()" ${data.historyIndex>0?"":'disabled="true"'}> - ${L.undo} + ${R.undo}
      - ${ge()} + ${ye()}
      @@ -1800,14 +1857,14 @@
      ${$e()} ${ke()} - `,c=document.querySelector(t);if(!c)return;let d=new DOMParser().parseFromString(n,"text/html");if(d.body.innerHTML.trim()===n.trim())return;if(App.initialRender)return c.innerHTML=n,renderPreview(!0),App.initialRender=!1,!1;let f=c.firstElementChild,y=d.body.firstElementChild;diffNodes(f,y)}};window.modifyRootVariable=t=>{let e=`
      +
      `,f=document.querySelector(t);if(!f)return;let g=new DOMParser().parseFromString(i,"text/html");if(g.body.innerHTML.trim()===i.trim())return;if(App.initialRender)return f.innerHTML=i,renderPreview(!0),App.initialRender=!1,!1;let $=document.querySelectorAll(".pcr-app");$&&$.forEach(L=>L.remove());let E=f.firstElementChild,w=g.body.firstElementChild;diffNodes(E,w);let H=document.querySelectorAll("[data-iscolor]");H&&H.forEach((L,z)=>{let A=L.getAttribute("data-iscolor"),x=Pickr.create({el:L,theme:"nano",default:A,inline:!0,components:{preview:!0,opacity:!0,hue:!0,interaction:{input:!0}}});x.setColor(A),x.on("show",()=>{data.doNotRender=!0}).on("change",k=>{let V=k.toHEXA().toString(),_=H[z].getAttribute("oninput");if(_){let F=_.replace(/this.value/g,`"${V}"`);new Function(F)()}x.applyColor()}).on("hide",()=>{data.doNotRender=null,x.applyColor(),App.render("#app")})})}};window.modifyRootVariable=t=>{let e=`
      Name:
      @@ -1858,7 +1915,7 @@ Delete Variable
      -
      `;Modal.render({title:`Are you sure you want to rename the "${t.substring(2)}" root variable?`,content:e,onLoad(){document.getElementById("m7t85jokv").focus(),document.getElementById("m7t85jokv").select()},onConfirm(){let a=document.getElementById("hbo1luvti").value,o=document.getElementById("m7t85jokv").value;if(o=o.charAt(0).toLowerCase()+o.slice(1),o){o.startsWith("--")||(o="--"+o);let s=o.substring(0,2)+o.charAt(2).toLowerCase()+o.slice(3);project.css.rootVariables[s]?(project.css.rootVariables[s]=a,App.render("#app")):(saveState(),project.css.rootVariables[s]=JSON.parse(JSON.stringify(project.css.rootVariables[`${t}`])),project.css.rootVariables[s]=a,delete project.css.rootVariables[`${t}`],localStorage.setItem("Polyrise",JSON.stringify(project)),saveState())}else Modal.render({title:"Unable to rename variable",content:"No value detected!"})}})};window.addStyle=()=>{let t=` +
      `;Modal.render({title:`Are you sure you want to rename the "${t.substring(2)}" root variable?`,content:e,onLoad(){document.getElementById("m7t85jokv").focus(),document.getElementById("m7t85jokv").select()},onConfirm(){let o=document.getElementById("hbo1luvti").value,s=document.getElementById("m7t85jokv").value;if(s=s.charAt(0).toLowerCase()+s.slice(1),s){s.startsWith("--")||(s="--"+s);let a=s.substring(0,2)+s.charAt(2).toLowerCase()+s.slice(3);project.css.rootVariables[a]?(project.css.rootVariables[a]=o,App.render("#app")):(saveState(),project.css.rootVariables[a]=JSON.parse(JSON.stringify(project.css.rootVariables[`${t}`])),project.css.rootVariables[a]=o,delete project.css.rootVariables[`${t}`],localStorage.setItem("Polyrise",JSON.stringify(project)),saveState())}else Modal.render({title:"Unable to rename variable",content:"No value detected!"})}})};window.addStyle=()=>{let t=` button:last-child').onclick(); } "> - `;Modal.render({title:"Add A Style",content:t,onLoad(){document.getElementById("vvrh9nxwk").focus(),document.getElementById("vvrh9nxwk").select()},onConfirm(){let e=document.getElementById("vvrh9nxwk").value;if(e){e=e.charAt(0).toLowerCase()+e.slice(1);let a=project.css.styles;data.breakpointKey&&data.stylesTarget&&(a=project.css.breakpoints[`${data.breakpointKey}px`]),a[`${e}`]?Modal.render({title:"Unable to add style!",content:"Style already exists!"}):a[e]={base:{},pseudos:[]}}else Modal.render({title:"Unable to add style",content:"No value detected!"})}})};window.duplicateStyle=()=>{let t=` + `;Modal.render({title:"Add A Style",content:t,onLoad(){document.getElementById("vvrh9nxwk").focus(),document.getElementById("vvrh9nxwk").select()},onConfirm(){let e=document.getElementById("vvrh9nxwk").value;if(e){e=e.charAt(0).toLowerCase()+e.slice(1);let o=project.css.styles;data.breakpointKey&&data.stylesTarget&&(o=project.css.breakpoints[`${data.breakpointKey}px`]),o[`${e}`]?Modal.render({title:"Unable to add style!",content:"Style already exists!"}):o[e]={base:{},pseudos:[]}}else Modal.render({title:"Unable to add style",content:"No value detected!"})}})};window.duplicateStyle=()=>{let t=` button:last-child').onclick(); } "> - `;Modal.render({title:"Name your style",content:t,onLoad(){document.getElementById("vvrh9nxwk").focus(),document.getElementById("vvrh9nxwk").select()},onConfirm(){let e=document.getElementById("vvrh9nxwk").value;if(e){e=e.charAt(0).toLowerCase()+e.slice(1);let a=project.css.styles;data.breakpointKey&&data.stylesTarget&&(a=project.css.breakpoints[`${data.breakpointKey}px`]),a[`${e}`]?Modal.render({title:"Unable to add style!",content:"Style already exists!"}):a[e]=a[data.stylesTarget]}else Modal.render({title:"Unable to add style",content:"No value detected!"})}})};window.addStylePropModal=(t,e)=>{let a=data.defaultValues,o=Object.keys(project.css.rootVariables).sort(),s=Object.keys(data.cssFixedValueProperties).sort(),r=Object.keys(data.cssRangedValueProperties).sort(),i=o.map(p=>` - - `).join(""),l=s.map(p=>` - - `).join(""),n=r.map(p=>` - - `).join(""),c=` + `;Modal.render({title:"Name your style",content:t,onLoad(){document.getElementById("vvrh9nxwk").focus(),document.getElementById("vvrh9nxwk").select()},onConfirm(){let e=document.getElementById("vvrh9nxwk").value;if(e){e=e.charAt(0).toLowerCase()+e.slice(1);let o=project.css.styles;data.breakpointKey&&data.stylesTarget&&(o=project.css.breakpoints[`${data.breakpointKey}px`]),o[`${e}`]?Modal.render({title:"Unable to add style!",content:"Style already exists!"}):o[e]=o[data.stylesTarget]}else Modal.render({title:"Unable to add style",content:"No value detected!"})}})};window.addStylePropModal=(t,e)=>{let o=data.defaultValues,s=Object.keys(project.css.rootVariables).sort(),a=Object.keys(data.cssFixedValueProperties).sort(),r=Object.keys(data.cssRangedValueProperties).sort(),c=s.map(b=>` + + `).join(""),l=a.map(b=>` + + `).join(""),i=r.map(b=>` + + `).join(""),f=`
      @@ -1917,13 +1974,13 @@
      ${data.canUseQuickCommands?`
      You can also apply styles using tailwind classes as quick commands! -
      `:""}`;Modal.render({title:`Add New Style to "${t}"`,content:c,onLoad(){document.getElementById("ool1zyibs").focus();let p=document.getElementById("property-type"),d=document.getElementById("property-unit"),f=document.getElementById("unit-section");function y(u){d.innerHTML="",data.cssRangedValueProperties[u]?(f.style.display=noUnitProperties.includes(u)?"none":"block",u.startsWith("animation")?unitOptions.animation.forEach(k=>{d.innerHTML+=``}):transformUnits.includes(u)?unitOptions.transform.forEach(k=>{d.innerHTML+=``}):unitOptions.default.forEach(k=>{d.innerHTML+=``})):(data.cssFixedValueProperties[u],f.style.display="none")}p.onchange=function(){let u=this.value;y(u),document.getElementById("ool1zyibs").value=u}},onConfirm(){let p=document.getElementById("ool1zyibs").value.trim(),d=document.getElementById("property-unit")?document.getElementById("property-unit").value:"",f=["opacity","z-index"],y=data.cssQuickCommands;p.split(",").map(k=>k.trim()).forEach(k=>{let[w,x]=k.split("=").map(b=>b.trim());if(w=w.toLowerCase(),Object.keys(y).includes(w))y[w].split(";").filter(Boolean).forEach(g=>{let[I,T]=g.split(":").map(z=>z.trim());I=I.toLowerCase(),e[I]=T});else{let b;if(x)b=x+(d&&!f.includes(w)?d:"");else{let m=a[w]||a.default;b=d?`${m}${d}`:m}f.includes(w)?e[w]=x||"1":e[w]=b}}),saveState()}})};window.renameStyleTarget=t=>{Modal.render({title:`Are you sure you want to rename the "${t}" style?`,content:`
      +
      `:""}`;Modal.render({title:`Add New Style to "${t}"`,content:f,onLoad(){document.getElementById("ool1zyibs").focus();let b=document.getElementById("property-type"),g=document.getElementById("property-unit"),$=document.getElementById("unit-section");function E(w){g.innerHTML="",data.cssRangedValueProperties[w]?($.style.display=noUnitProperties.includes(w)?"none":"block",w.startsWith("animation")?unitOptions.animation.forEach(H=>{g.innerHTML+=``}):transformUnits.includes(w)?unitOptions.transform.forEach(H=>{g.innerHTML+=``}):unitOptions.default.forEach(H=>{g.innerHTML+=``})):(data.cssFixedValueProperties[w],$.style.display="none")}b.onchange=function(){let w=this.value;E(w),document.getElementById("ool1zyibs").value=w}},onConfirm(){let b=document.getElementById("ool1zyibs").value.trim(),g=document.getElementById("property-unit")?document.getElementById("property-unit").value:"",$=["opacity","z-index"],E=data.cssQuickCommands;b.split(",").map(H=>H.trim()).forEach(H=>{let[L,z]=H.split("=").map(A=>A.trim());if(L=L.toLowerCase(),Object.keys(E).includes(L))E[L].split(";").filter(Boolean).forEach(k=>{let[V,_]=k.split(":").map(F=>F.trim());V=V.toLowerCase(),e[V]=_});else{let A;if(z)A=z+(g&&!$.includes(L)?g:"");else{let x=o[L]||o.default;A=g?`${x}${g}`:x}$.includes(L)?e[L]=z||"1":e[L]=A}}),saveState()}})};window.renameStyleTarget=t=>{Modal.render({title:`Are you sure you want to rename the "${t}" style?`,content:`
      -
      `,onLoad(){document.getElementById("lnjvy3iz2").focus()},onConfirm(){let a=document.getElementById("lnjvy3iz2").value;a?(a=a.charAt(0).toLowerCase()+a.slice(1),project.css.styles[a]?Modal.render({title:"Unable to add style!",content:"Style already exists!"}):project.css.styles[`${t}`]&&(data.stylesTarget=null,project.css.styles[a]=JSON.parse(JSON.stringify(project.css.styles[t])),delete project.css.styles[t],data.stylesTarget=a,saveState())):Modal.render({title:"Unable to rename style",content:"No value detected!"})}})};window.deleteStyleTarget=t=>{Modal.render({title:`Are you sure you want to delete the "${t}" style?`,content:'
      You will still be able to undo.
      ',onConfirm(){data.stylesTarget&&(clearStyles(project.html,data.stylesTarget),delete project.css.styles[data.stylesTarget],data.stylesTarget=null,saveState())}})};window.addBreakpoint=()=>{Modal.render({title:"Add A Breakpoint",content:` +
      `,onLoad(){document.getElementById("lnjvy3iz2").focus()},onConfirm(){let o=document.getElementById("lnjvy3iz2").value;o?(o=o.charAt(0).toLowerCase()+o.slice(1),project.css.styles[o]?Modal.render({title:"Unable to add style!",content:"Style already exists!"}):project.css.styles[`${t}`]&&(data.stylesTarget=null,project.css.styles[o]=JSON.parse(JSON.stringify(project.css.styles[t])),delete project.css.styles[t],data.stylesTarget=o,saveState())):Modal.render({title:"Unable to rename style",content:"No value detected!"})}})};window.deleteStyleTarget=t=>{Modal.render({title:`Are you sure you want to delete the "${t}" style?`,content:'
      You will still be able to undo.
      ',onConfirm(){data.stylesTarget&&(clearStyles(project.html,data.stylesTarget),delete project.css.styles[data.stylesTarget],data.stylesTarget=null,saveState())}})};window.addBreakpoint=()=>{Modal.render({title:"Add A Breakpoint",content:` button:last-child').onclick(); } "> - `,onLoad(){document.getElementById("mow5ep6l7").focus()},onConfirm(){let a=document.getElementById("mow5ep6l7").value;a?project.css.animations[a]?Modal.render({title:"Unable to rename animation!",content:"Animation name already exists!"}):(data.animationTarget=null,project.css.animations[a]=JSON.parse(JSON.stringify(project.css.animations[t])),delete project.css.animations[t],data.animationTarget=a):Modal.render({title:"Unable to rename animation",content:"No value detected!"})}})};window.deleteAnimation=t=>{Modal.render({title:`Are you sure you want to delete the "${t}" animation?`,content:'
      You will still be able to undo.
      ',onConfirm(){data.animationKeyframe&&(data.animationKeyframe=null),data.animationTarget=null,data.animationTarget=null,delete project.css.animations[t],App.render("#app")}})};window.addKeyFrame=()=>{if(!data.animationTarget)return;Modal.render({title:"Add An Animation",content:` + `,onLoad(){document.getElementById("mow5ep6l7").focus()},onConfirm(){let o=document.getElementById("mow5ep6l7").value;o?project.css.animations[o]?Modal.render({title:"Unable to rename animation!",content:"Animation name already exists!"}):(data.animationTarget=null,project.css.animations[o]=JSON.parse(JSON.stringify(project.css.animations[t])),delete project.css.animations[t],data.animationTarget=o):Modal.render({title:"Unable to rename animation",content:"No value detected!"})}})};window.deleteAnimation=t=>{Modal.render({title:`Are you sure you want to delete the "${t}" animation?`,content:'
      You will still be able to undo.
      ',onConfirm(){data.animationKeyframe&&(data.animationKeyframe=null),data.animationTarget=null,data.animationTarget=null,delete project.css.animations[t],App.render("#app")}})};window.addKeyFrame=()=>{if(!data.animationTarget)return;Modal.render({title:"Add An Animation",content:` button:last-child').onclick(); } "> - `,onLoad(){document.getElementById("mow5ep6l7").focus()},onConfirm(){let a=document.getElementById("mow5ep6l7").value;a?project.css.animations[data.animationTarget].keyframes[a]?Modal.render({title:"Unable to rename keyframe!",content:"Animation keyframe already exists!"}):(data.animationKeyframe=null,project.css.animations[data.animationTarget].keyframes[a]=JSON.parse(JSON.stringify(project.css.animations[data.animationTarget].keyframes[t])),delete project.css.animations[data.animationTarget].keyframes[t],data.animationKeyframe=a,saveState()):Modal.render({title:"Unable to rename keyframe key",content:"No value detected!"})}})};window.deleteKeyFrame=t=>{Modal.render({title:`Are you sure you want to delete the "${t}" keyframe?`,content:'
      You will still be able to undo.
      ',onConfirm(){data.animationKeyframe&&(data.animationKeyframe=null),data.animationKeyframe=null,delete project.css.animations[data.animationTarget].keyframes[t],saveState(),App.render("#app")}})};window.addToKeyframe=()=>{if(!data.animationTarget||!data.animationKeyframe)return;Modal.render({title:"Add keyframe property",content:` + `,onLoad(){document.getElementById("mow5ep6l7").focus()},onConfirm(){let o=document.getElementById("mow5ep6l7").value;o?project.css.animations[data.animationTarget].keyframes[o]?Modal.render({title:"Unable to rename keyframe!",content:"Animation keyframe already exists!"}):(data.animationKeyframe=null,project.css.animations[data.animationTarget].keyframes[o]=JSON.parse(JSON.stringify(project.css.animations[data.animationTarget].keyframes[t])),delete project.css.animations[data.animationTarget].keyframes[t],data.animationKeyframe=o,saveState()):Modal.render({title:"Unable to rename keyframe key",content:"No value detected!"})}})};window.deleteKeyFrame=t=>{Modal.render({title:`Are you sure you want to delete the "${t}" keyframe?`,content:'
      You will still be able to undo.
      ',onConfirm(){data.animationKeyframe&&(data.animationKeyframe=null),data.animationKeyframe=null,delete project.css.animations[data.animationTarget].keyframes[t],saveState(),App.render("#app")}})};window.addToKeyframe=()=>{if(!data.animationTarget||!data.animationKeyframe)return;Modal.render({title:"Add keyframe property",content:` button:last-child').onclick(); } "> - `,onLoad(){document.getElementById("vvrh9nxwk").focus()},onConfirm(){let e=document.getElementById("vvrh9nxwk").value;e?project.css.animations[data.animationTarget].keyframes[`${e}`]?Modal.render({title:"Unable to add keyframe!",content:"Keyframe already exists!"}):(project.css.animations[data.animationTarget].keyframes[e]={},saveState()):Modal.render({title:"Unable to add keyframe",content:"No value detected!"})}})};window.deleteStyleProp=(t,e,a,o=null)=>{let s=null;o?(o==="breakpoints"&&(s=project.css.breakpoints[`${data.breakpointKey}px`][t][data.stylesPropTarget]),o==="animations"&&(s=project.css.animations[data.animationTarget].keyframes[data.animationKeyframe])):s=project.css.styles[t][data.stylesPropTarget],e in s&&delete s[`${e}`],saveState(),a.closest("dialog[open]").remove()};window.clearStyles=(t,e,a)=>{project.css.styles[e]&&delete project.css[e];let o=!1;for(let s of t)s.style===e&&(s.style="",o=!0),s.children&&s.children.length>0&&clearStyles(s.children,e,()=>{o=!0}),o&&typeof a=="function"&&a()};window.styleModal=(t,e,a,o=null)=>{let s=data.cssFixedValueProperties,r=null;o&&(r=o);let i="";if(s[e]){let l=s[e].map(n=>` - - `).join("");i=` + `,onLoad(){document.getElementById("vvrh9nxwk").focus()},onConfirm(){let e=document.getElementById("vvrh9nxwk").value;e?project.css.animations[data.animationTarget].keyframes[`${e}`]?Modal.render({title:"Unable to add keyframe!",content:"Keyframe already exists!"}):(project.css.animations[data.animationTarget].keyframes[e]={},saveState()):Modal.render({title:"Unable to add keyframe",content:"No value detected!"})}})};window.deleteStyleProp=(t,e,o,s=null)=>{let a=null;s?(s==="breakpoints"&&(a=project.css.breakpoints[`${data.breakpointKey}px`][t][data.stylesPropTarget]),s==="animations"&&(a=project.css.animations[data.animationTarget].keyframes[data.animationKeyframe])):a=project.css.styles[t][data.stylesPropTarget],e in a&&delete a[`${e}`],saveState(),o.closest("dialog[open]").remove()};window.clearStyles=(t,e,o)=>{project.css.styles[e]&&delete project.css[e];let s=!1;for(let a of t)a.style===e&&(a.style="",s=!0),a.children&&a.children.length>0&&clearStyles(a.children,e,()=>{s=!0}),s&&typeof o=="function"&&o()};window.styleModal=(t,e,o,s=null)=>{let a=data.cssFixedValueProperties,r=null;s&&(r=s);let c="";if(a[e]){let l=a[e].map(i=>` + + `).join("");c=`
      - + -
      `}else i=` + `}else c=`
      - + -
      `;i+=` + `;c+=`
      -
      `,Modal.render({title:`Modify "${e}" Style`,content:i,onLoad(){if(document.getElementById("new-value")){let l=document.getElementById("new-value");l.focus(),l.tagName.toLowerCase()==="input"&&l.select()}},onConfirm(){saveState();let l=document.getElementById("new-value").value,n=null;o?(o==="breakpoints"&&project.css.breakpoints[`${data.breakpointKey}px`][t][data.stylesPropTarget]&&(n=project.css.breakpoints[`${data.breakpointKey}px`][t][data.stylesPropTarget]),o==="animations"&&project.css.animations[data.animationTarget].keyframes[data.animationKeyframe]&&(n=project.css.animations[data.animationTarget].keyframes[data.animationKeyframe])):data.stylesPropTarget&&(n=project.css.styles[t][data.stylesPropTarget]),l===""?delete n[e]:n[e]=`${l}`,saveState()}})};window.addPseudo=t=>{if(!project.css.styles[t])return;project.css.styles[t].pseudos||(project.css.styles[t].pseudos=[]);let o=` + `,Modal.render({title:`Modify "${e}" Style`,content:c,onLoad(){if(document.getElementById("new-value")){let l=document.getElementById("new-value");l.focus(),l.tagName.toLowerCase()==="input"&&l.select()}},onConfirm(){saveState();let l=document.getElementById("new-value").value,i=null;s?(s==="breakpoints"&&project.css.breakpoints[`${data.breakpointKey}px`][t][data.stylesPropTarget]&&(i=project.css.breakpoints[`${data.breakpointKey}px`][t][data.stylesPropTarget]),s==="animations"&&project.css.animations[data.animationTarget].keyframes[data.animationKeyframe]&&(i=project.css.animations[data.animationTarget].keyframes[data.animationKeyframe])):data.stylesPropTarget&&(i=project.css.styles[t][data.stylesPropTarget]),l===""?delete i[e]:i[e]=`${l}`,saveState()}})};window.addPseudo=t=>{if(!project.css.styles[t])return;project.css.styles[t].pseudos||(project.css.styles[t].pseudos=[]);let s=`
      - `;Modal.render({title:"Add A Pseudo-Class/Element",content:o,onLoad(){document.getElementById("pseudo-input").focus()},onConfirm(){let s=document.getElementById("pseudo-selector").value.trim(),r=document.getElementById("pseudo-input").value.trim();if(r){let i=r.split(";").reduce((n,c)=>{let[p,d]=c.split(":").map(f=>f.trim());return p&&d&&(n[p]=d),n},{}),l=project.css.styles[t].pseudos.find(n=>n.selector===r);if(l)l.styles={...l.styles,...i};else{let n={selector:r,styles:i};project.css.styles[t].pseudos.push(n)}saveState()}else Modal.render({title:"Unable to add pseudo",content:"Please select a pseudo and enter valid CSS properties and values."})}})};window.renamePseudo=t=>{let o=` + `;Modal.render({title:"Add A Pseudo-Class/Element",content:s,onLoad(){document.getElementById("pseudo-input").focus()},onConfirm(){let a=document.getElementById("pseudo-selector").value.trim(),r=document.getElementById("pseudo-input").value.trim();if(r){let c=r.split(";").reduce((i,f)=>{let[b,g]=f.split(":").map($=>$.trim());return b&&g&&(i[b]=g),i},{}),l=project.css.styles[t].pseudos.find(i=>i.selector===r);if(l)l.styles={...l.styles,...c};else{let i={selector:r,styles:c};project.css.styles[t].pseudos.push(i)}saveState()}else Modal.render({title:"Unable to add pseudo",content:"Please select a pseudo and enter valid CSS properties and values."})}})};window.renamePseudo=t=>{let s=`
      - `;Modal.render({title:`Are you sure you want to rename the "${t}" pseudo-class/element?`,content:o,onLoad(){document.getElementById("pseudo-name-input").focus()},onConfirm(){let s=document.getElementById("pseudo-name-input").value.trim();if(s){let r=project.css.styles[data.stylesTarget];if(!r||!r.pseudos)return;if(r.pseudos.find(n=>n.selector===s)){Modal.render({title:"Unable to rename pseudo!",content:"Pseudo with the new name already exists!"});return}let l=r.pseudos.findIndex(n=>n.selector===t);if(l===-1){Modal.render({title:"Pseudo not found!",content:`No pseudo with the name "${t}" found!`});return}r.pseudos[l].selector=s,App.render("#app"),saveState()}else Modal.render({title:"Unable to rename pseudo",content:"No value detected!"})}})};window.deletePseudo=()=>{let t=data.pseudosSelector,e=data.pseudosSelectorIndex;Modal.render({title:`Are you sure you want to delete the "${t}" pseudo-class/element?`,content:'
      You will still be able to undo.
      ',onConfirm(){let o=project.css.styles[data.stylesTarget];!o||!o.pseudos||(data.pseudosSelector=null,data.pseudosSelectorIndex=0,o.pseudos.splice(e,1),saveState())}})};window.fetchCssQuickCommands=async t=>{try{let e=await fetch(t);if(!e.ok)throw new Error("Network response was not ok");return data.canUseQuickCommands=!0,await e.json()}catch(e){console.error("Error fetching CSS quick commands:",e)}};window.applyCssQuickCommands=async t=>{let e=await fetchCssQuickCommands(t);e&&(data.cssQuickCommands=e)};window.addAttribute=t=>{if(!t)return;let e=/{n}/g,a=t.toLowerCase().split(",").map(s=>s.trim().toLowerCase()),o={};saveState(),data.selectedLayerIds.forEach(s=>{let{layer:r}=findLayerById(s,project.html);r&&(r.props||(r.props={}),a.forEach(i=>{let[l,n]=i.split("=").map(c=>c.trim());if(l==="id"&&(n=generateId()),e.test(n)){let c=n.replace(e,""),p=o[l]||1;n=c+p,o[l]=p+1}l in r.props?n!==void 0&&(r.props[l]=n):r.props[l]=n!==void 0?n:""}))}),saveState()};window.html2json=t=>{function e(r){let i=data.boxElements,l=data.textElements,n=["br","hr","input","progress","optgroup","input","link","img","svg","path","polygon","rect","circle","ellipse","g","defs","clipPath"],c=r.tagName.toLowerCase(),p={tag:r.tagName.toLowerCase(),id:generateId(),style:"",state:{collapsed:!1,visible:!0,selected:!1}};if(p.name=c,i.includes(c)?(p.type="box",p.text=""):l.includes(c)?(p.type="text",p.text=""):(p.type=c,n.includes(c)||(p.text="")),r.hasAttributes()){let d={};Array.from(r.attributes).forEach(f=>{d[`${f.name.toLowerCase()}`]=`${f.value}`}),p.props=d}return r.childNodes.length>0&&(p.children=[],r.childNodes.forEach(d=>{d.nodeType===Node.ELEMENT_NODE?p.children.push(e(d)):d.nodeType===Node.TEXT_NODE&&d.nodeValue.trim()&&(p.text=d.nodeValue.trim())})),p}let o=new DOMParser().parseFromString(t,"text/html");return Array.from(o.body.children).map(r=>e(r))};window.json2html=t=>{function e(s){let r=l=>{let n="";if(l.state&&!l.state.visible)return n;if(!l.tag)return n+=l.text||"",n;if(n+=`<${l.tag}`,l.props)for(let[c,p]of Object.entries(l.props))n+=` ${c}="${p}"`;if(n+=">",l.text&&(l.tag==="style"||l.tag==="script"?n+=l.text:n+=a(l.text)),l.children)for(let c of l.children)n+=r(c);return n+=``,n},i="";return Array.isArray(s)||(s=[s]),Array.isArray(s)&&s.forEach(l=>{i+=r(l)}),i}function a(s){let r={"&":"&","<":"<",">":">",'"':""","'":"'"};return s.replace(/[&<>"']/g,function(i){return r[i]})}function o(s){let r=e(s),i=" ",l="",n="";return r.split(/>\s*\r -`,c.match(/^]*[^\/]$/)&&!c.startsWith("{if(typeof t!="string")throw new Error("Input must be a CSS string");let e={rootVariables:{},styles:{},animations:{},breakpoints:{}};t=minifyCSS(t);let a=/@import\s+url\(['"]([^'"]+)['"]\);/g,o;for(;(o=a.exec(t))!==null;){let u=o[1].trim();project.libraries&&!project.libraries.includes(u)&&project.libraries.push(u)}t=t.replace(a,"");let s=/@keyframes\s+([^{\s]+)\s*\{([^}]*(\{[^}]*\})[^}]*)\}/g,r=/@media\s*([^{]+)\s*\{([\s\S]*?\{[\s\S]*?\})\s*}/g,i=/([^{]+?)\s*(\{([^}]+)\})/g;function l(u){try{return decodeURIComponent(u)}catch{return u}}function n(u,k,w){if(u=u.trim(),u.startsWith("@keyframes"))return;if(u===":root"){k.split(";").forEach(z=>{let[O,W]=z.split(":").map(U=>U.trim());O&&W&&(e.rootVariables[O]=l(W))});return}let x=u.match(/^(.*?)(::?[a-zA-Z0-9-]+)$/),b=u,m=null;x&&(b=x[1].trim(),m=x[2]),w[b]||(w[b]={});let g=w[b];if(m){g.pseudos=g.pseudos||[];let z={selector:m,styles:{}};g.pseudos.push(z),g=z.styles}else g.base=g.base||{},g=g.base;let I=/([a-zA-Z-]+)\s*:\s*(.*?)(?=;|$)/g,T;for(;(T=I.exec(k))!==null;){let z=T[1].trim(),O=T[2].trim(),W=/^url\(['"]?(.*?)['"]?\)$/i,U=O.match(W);if(U){let V=U[1].trim();g[z]=`url("${l(V)}")`}else g[z]=l(O)}}function c(u,k){let w;for(;(w=i.exec(u))!==null;){let x=w[1].trim(),b=w[3].trim();n(x,b,k)}}function p(u,k){let w={};k.split("}").forEach(x=>{if(x=x.trim(),!x)return;let[b,m]=x.split("{").map(g=>g.trim());b&&(b.includes("to")||b.includes("from")||b.includes("%"))&&m.split(";").forEach(g=>{let[I,T]=g.split(":").map(z=>z.trim());I&&T&&(w[b]=w[b]||{},w[b][I]=l(T))})}),e.animations[u]={keyframes:w}}let d;for(;(d=s.exec(t))!==null;){let u=d[1].trim(),k=d[2].trim();p(u,k)}let f;for(;(f=r.exec(t))!==null;){let u=f[1].trim().split(")")[0].split(":")[1].trim(),k=f[2].trim(),w={};c(k,w),e.breakpoints[u]=w}let y=t.replace(r,"");return c(y,e.styles),t=t.replace(s,""),Object.keys(e.styles).forEach(u=>{Object.keys(e.styles[u]).length===0&&delete e.styles[u]}),e};window.json2css=t=>{let e="",a="",o=";",s="{",r="}";function i(p){return/var\(--/.test(p)}function l(p,d,f=0){let y=" ".repeat(f),u="",k=d.variables||{},w=d.base||{},x=d.pseudos||[],b=d.children||{};u+=`${y}${p} ${s} -`;for(let[m,g]of Object.entries(k))u+=`${y} ${a}${m}: ${g}${o} -`;for(let[m,g]of Object.entries(w))i(g)&&(g=g.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(I,T)=>`var(--${T})`)),u+=`${y} ${m}: ${g}${o} -`;u+=`${y}${r} -`,x.forEach(({selector:m,styles:g})=>{u+=`${y}${p}${m} ${s} -`;for(let[I,T]of Object.entries(g))i(T)&&(T=T.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(z,O)=>`var(--${O})`)),u+=`${y} ${I}: ${T}${o} -`;u+=`${y}${r} -`});for(let[m,g]of Object.entries(b))u+=l(`${p} ${m}`,g,f+1);return u}function n(p,d=0){let f=" ".repeat(d),y="";for(let[u,k]of Object.entries(p)){y+=`${f}@keyframes ${u} ${s} -`;for(let[w,x]of Object.entries(k.keyframes)){y+=`${f} ${w} ${s} -`;for(let[b,m]of Object.entries(x))i(m)&&(m=m.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(g,I)=>`var(--${I})`)),y+=`${f} ${b}: ${m}${o} -`;y+=`${f} ${r} -`}y+=`${f}${r} -`}return y}function c(p,d=0){let f=" ".repeat(d),y="";for(let[u,k]of Object.entries(p)){y+=`${f}@media (min-width: ${u}) ${s} -`;for(let[w,x]of Object.entries(k))y+=l(w,x,d+1);y+=`${f}${r} -`}return y}if(t.rootVariables&&Object.keys(t.rootVariables).length){e+=`:root { -`;for(let[p,d]of Object.entries(t.rootVariables))e+=` ${p}: ${d}${o} + `;Modal.render({title:`Are you sure you want to rename the "${t}" pseudo-class/element?`,content:s,onLoad(){document.getElementById("pseudo-name-input").focus()},onConfirm(){let a=document.getElementById("pseudo-name-input").value.trim();if(a){let r=project.css.styles[data.stylesTarget];if(!r||!r.pseudos)return;if(r.pseudos.find(i=>i.selector===a)){Modal.render({title:"Unable to rename pseudo!",content:"Pseudo with the new name already exists!"});return}let l=r.pseudos.findIndex(i=>i.selector===t);if(l===-1){Modal.render({title:"Pseudo not found!",content:`No pseudo with the name "${t}" found!`});return}r.pseudos[l].selector=a,App.render("#app"),saveState()}else Modal.render({title:"Unable to rename pseudo",content:"No value detected!"})}})};window.deletePseudo=()=>{let t=data.pseudosSelector,e=data.pseudosSelectorIndex;Modal.render({title:`Are you sure you want to delete the "${t}" pseudo-class/element?`,content:'
      You will still be able to undo.
      ',onConfirm(){let s=project.css.styles[data.stylesTarget];!s||!s.pseudos||(data.pseudosSelector=null,data.pseudosSelectorIndex=0,s.pseudos.splice(e,1),saveState())}})};window.fetchCssQuickCommands=async t=>{try{let e=await fetch(t);if(!e.ok)throw new Error("Network response was not ok");return data.canUseQuickCommands=!0,await e.json()}catch(e){console.error("Error fetching CSS quick commands:",e)}};window.applyCssQuickCommands=async t=>{let e=await fetchCssQuickCommands(t);e&&(data.cssQuickCommands=e)};window.addAttribute=t=>{if(!t)return;let e=/{n}/g,o=t.toLowerCase().split(",").map(a=>a.trim().toLowerCase()),s={};saveState(),data.selectedLayerIds.forEach(a=>{let{layer:r}=findLayerById(a,project.html);r&&(r.props||(r.props={}),o.forEach(c=>{let[l,i]=c.split("=").map(f=>f.trim());if(l==="id"&&(i=generateId()),e.test(i)){let f=i.replace(e,""),b=s[l]||1;i=f+b,s[l]=b+1}l in r.props?i!==void 0&&(r.props[l]=i):r.props[l]=i!==void 0?i:""}))}),saveState()};window.html2json=t=>{function e(r){let c=data.boxElements,l=data.textElements,i=["br","hr","input","progress","optgroup","input","link","img","svg","path","polygon","rect","circle","ellipse","g","defs","clipPath"],f=r.tagName.toLowerCase(),b={tag:r.tagName.toLowerCase(),id:generateId(),style:"",state:{collapsed:!1,visible:!0,selected:!1}};if(b.name=f,c.includes(f)?(b.type="box",b.text=""):l.includes(f)?(b.type="text",b.text=""):(b.type=f,i.includes(f)||(b.text="")),r.hasAttributes()){let g={};Array.from(r.attributes).forEach($=>{g[`${$.name.toLowerCase()}`]=`${$.value}`}),b.props=g}return r.childNodes.length>0&&(b.children=[],r.childNodes.forEach(g=>{g.nodeType===Node.ELEMENT_NODE?b.children.push(e(g)):g.nodeType===Node.TEXT_NODE&&g.nodeValue.trim()&&(b.text=g.nodeValue.trim())})),b}let s=new DOMParser().parseFromString(t,"text/html");return Array.from(s.body.children).map(r=>e(r))};window.json2html=t=>{function e(a){let r=l=>{let i="";if(l.state&&!l.state.visible)return i;if(!l.tag)return i+=l.text||"",i;if(i+=`<${l.tag}`,l.props)for(let[f,b]of Object.entries(l.props))i+=` ${f}="${b}"`;if(i+=">",l.text&&(l.tag==="style"||l.tag==="script"?i+=l.text:i+=o(l.text)),l.children)for(let f of l.children)i+=r(f);return i+=``,i},c="";return Array.isArray(a)||(a=[a]),Array.isArray(a)&&a.forEach(l=>{c+=r(l)}),c}function o(a){let r={"&":"&","<":"<",">":">",'"':""","'":"'"};return a.replace(/[&<>"']/g,function(c){return r[c]})}function s(a){let r=e(a),c=" ",l="",i="";return r.split(/>\s*\r +`,f.match(/^]*[^\/]$/)&&!f.startsWith("{if(typeof t!="string")throw new Error("Input must be a CSS string");let e={rootVariables:{},styles:{},animations:{},breakpoints:{}};t=minifyCSS(t);let o=/@import\s+url\(['"]([^'"]+)['"]\);/g,s;for(;(s=o.exec(t))!==null;){let w=s[1].trim();project.libraries&&!project.libraries.includes(w)&&project.libraries.push(w)}t=t.replace(o,"");let a=/@keyframes\s+([^{\s]+)\s*\{([^}]*(\{[^}]*\})[^}]*)\}/g,r=/@media\s*([^{]+)\s*\{([\s\S]*?\{[\s\S]*?\})\s*}/g,c=/([^{]+?)\s*(\{([^}]+)\})/g;function l(w){try{return decodeURIComponent(w)}catch{return w}}function i(w,H,L){if(w=w.trim(),w.startsWith("@keyframes"))return;if(w===":root"){H.split(";").forEach(F=>{let[W,X]=F.split(":").map(ee=>ee.trim());W&&X&&(e.rootVariables[W]=l(X))});return}let z=w.match(/^(.*?)(::?[a-zA-Z0-9-]+)$/),A=w,x=null;z&&(A=z[1].trim(),x=z[2]),L[A]||(L[A]={});let k=L[A];if(x){k.pseudos=k.pseudos||[];let F={selector:x,styles:{}};k.pseudos.push(F),k=F.styles}else k.base=k.base||{},k=k.base;let V=/([a-zA-Z-]+)\s*:\s*(.*?)(?=;|$)/g,_;for(;(_=V.exec(H))!==null;){let F=_[1].trim(),W=_[2].trim(),X=/^url\(['"]?(.*?)['"]?\)$/i,ee=W.match(X);if(ee){let Y=ee[1].trim();k[F]=`url("${l(Y)}")`}else k[F]=l(W)}}function f(w,H){let L;for(;(L=c.exec(w))!==null;){let z=L[1].trim(),A=L[3].trim();i(z,A,H)}}function b(w,H){let L={};H.split("}").forEach(z=>{if(z=z.trim(),!z)return;let[A,x]=z.split("{").map(k=>k.trim());A&&(A.includes("to")||A.includes("from")||A.includes("%"))&&x.split(";").forEach(k=>{let[V,_]=k.split(":").map(F=>F.trim());V&&_&&(L[A]=L[A]||{},L[A][V]=l(_))})}),e.animations[w]={keyframes:L}}let g;for(;(g=a.exec(t))!==null;){let w=g[1].trim(),H=g[2].trim();b(w,H)}let $;for(;($=r.exec(t))!==null;){let w=$[1].trim().split(")")[0].split(":")[1].trim(),H=$[2].trim(),L={};f(H,L),e.breakpoints[w]=L}let E=t.replace(r,"");return f(E,e.styles),t=t.replace(a,""),Object.keys(e.styles).forEach(w=>{Object.keys(e.styles[w]).length===0&&delete e.styles[w]}),e};window.json2css=t=>{let e="",o="",s=";",a="{",r="}";function c(b){return/var\(--/.test(b)}function l(b,g,$=0){let E=" ".repeat($),w="",H=g.variables||{},L=g.base||{},z=g.pseudos||[],A=g.children||{};w+=`${E}${b} ${a} +`;for(let[x,k]of Object.entries(H))w+=`${E} ${o}${x}: ${k}${s} +`;for(let[x,k]of Object.entries(L))c(k)&&(k=k.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(V,_)=>`var(--${_})`)),w+=`${E} ${x}: ${k}${s} +`;w+=`${E}${r} +`,z.forEach(({selector:x,styles:k})=>{w+=`${E}${b}${x} ${a} +`;for(let[V,_]of Object.entries(k))c(_)&&(_=_.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(F,W)=>`var(--${W})`)),w+=`${E} ${V}: ${_}${s} +`;w+=`${E}${r} +`});for(let[x,k]of Object.entries(A))w+=l(`${b} ${x}`,k,$+1);return w}function i(b,g=0){let $=" ".repeat(g),E="";for(let[w,H]of Object.entries(b)){E+=`${$}@keyframes ${w} ${a} +`;for(let[L,z]of Object.entries(H.keyframes)){E+=`${$} ${L} ${a} +`;for(let[A,x]of Object.entries(z))c(x)&&(x=x.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(k,V)=>`var(--${V})`)),E+=`${$} ${A}: ${x}${s} +`;E+=`${$} ${r} +`}E+=`${$}${r} +`}return E}function f(b,g=0){let $=" ".repeat(g),E="";for(let[w,H]of Object.entries(b)){E+=`${$}@media (min-width: ${w}) ${a} +`;for(let[L,z]of Object.entries(H))E+=l(L,z,g+1);E+=`${$}${r} +`}return E}if(t.rootVariables&&Object.keys(t.rootVariables).length){e+=`:root { +`;for(let[b,g]of Object.entries(t.rootVariables))e+=` ${b}: ${g}${s} `;e+=`} -`}for(let[p,d]of Object.entries(t.styles)){if(!d||!Object.keys(d.variables||{}).length&&!Object.keys(d.base||{}).length&&!Object.keys(d.pseudos||{}).length&&!Object.keys(d.children||{}).length)continue;e+=l(p,d)}return Object.keys(t.animations||{}).length&&(e+=n(t.animations)),Object.keys(t.breakpoints||{}).length&&(e+=c(t.breakpoints)),e};window.json2preprocessor=t=>{let e="",a="",o=";",s="{",r="}";data.preprocessors.includes(project.convertTo)&&((project.convertTo==="sass"||project.convertTo==="scss")&&(a="$"),project.convertTo==="sass"&&(o="",s="",r=""),project.convertTo==="less"&&(a="@"));function i(d){return/var\(--/.test(d)}function l(d,f,y=0){let u=" ".repeat(y),k="",w=f.variables||{},x=f.base||{},b=f.pseudos||[],m=f.children||{};k+=`${u}${d} ${s} -`;for(let[g,I]of Object.entries(w))k+=`${u} ${a}${g}: ${I}${o} -`;for(let[g,I]of Object.entries(x))g.startsWith("--")&&(g=g.split("--").join(a)),i(I)&&(I=I.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(T,z)=>g.startsWith("--")?`${a}${z}`:`${a}${z}`)),k+=`${u} ${g}: ${I}${o} -`;if(b.forEach(({selector:g,styles:I})=>{k+=`${u} &${g} ${s} -`;for(let[T,z]of Object.entries(I))i(z)&&(z=z.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(O,W)=>`${a}${W}`)),k+=`${u} ${T}: ${z}${o} -`;k+=`${u} ${r} -`}),m)for(let[g,I]of Object.entries(m))k+=l(`${d} ${g}`,I,y+1);return k+=`${u}${r} -`,k}function n(d,f=0){let y=" ".repeat(f),u="";for(let[k,w]of Object.entries(d)){u+=`${y}@keyframes ${k} ${s} -`;for(let[x,b]of Object.entries(w.keyframes)){u+=`${y} ${x} ${s} -`;for(let[m,g]of Object.entries(b))i(g)&&(g=g.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(I,T)=>`${a}${T}`)),u+=`${y} ${m}: ${g}${o} -`;u+=`${y} ${r} -`}u+=`${y}${r} -`}return u}function c(d,f=0){let y=" ".repeat(f),u="";for(let[k,w]of Object.entries(d)){u+=`${y}@media (max-width: ${k}) ${s} -`;for(let[x,b]of Object.entries(w.base||{}))u+=l(x,b,f+1);u+=`${y}${r} -`}return u}let p=[];if(t.rootVariables&&Object.keys(t.rootVariables).length){for(let[d,f]of Object.entries(t.rootVariables))p.push(d),e+=`${a}${d.split("--").join("")}: ${f}${o} +`}for(let[b,g]of Object.entries(t.styles)){if(!g||!Object.keys(g.variables||{}).length&&!Object.keys(g.base||{}).length&&!Object.keys(g.pseudos||{}).length&&!Object.keys(g.children||{}).length)continue;e+=l(b,g)}return Object.keys(t.animations||{}).length&&(e+=i(t.animations)),Object.keys(t.breakpoints||{}).length&&(e+=f(t.breakpoints)),e};window.json2preprocessor=t=>{let e="",o="",s=";",a="{",r="}";data.preprocessors.includes(project.convertTo)&&((project.convertTo==="sass"||project.convertTo==="scss")&&(o="$"),project.convertTo==="sass"&&(s="",a="",r=""),project.convertTo==="less"&&(o="@"));function c(g){return/var\(--/.test(g)}function l(g,$,E=0){let w=" ".repeat(E),H="",L=$.variables||{},z=$.base||{},A=$.pseudos||[],x=$.children||{};H+=`${w}${g} ${a} +`;for(let[k,V]of Object.entries(L))H+=`${w} ${o}${k}: ${V}${s} +`;for(let[k,V]of Object.entries(z))k.startsWith("--")&&(k=k.split("--").join(o)),c(V)&&(V=V.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(_,F)=>k.startsWith("--")?`${o}${F}`:`${o}${F}`)),H+=`${w} ${k}: ${V}${s} +`;if(A.forEach(({selector:k,styles:V})=>{H+=`${w} &${k} ${a} +`;for(let[_,F]of Object.entries(V))c(F)&&(F=F.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(W,X)=>`${o}${X}`)),H+=`${w} ${_}: ${F}${s} +`;H+=`${w} ${r} +`}),x)for(let[k,V]of Object.entries(x))H+=l(`${g} ${k}`,V,E+1);return H+=`${w}${r} +`,H}function i(g,$=0){let E=" ".repeat($),w="";for(let[H,L]of Object.entries(g)){w+=`${E}@keyframes ${H} ${a} +`;for(let[z,A]of Object.entries(L.keyframes)){w+=`${E} ${z} ${a} +`;for(let[x,k]of Object.entries(A))c(k)&&(k=k.replace(/var\(--([a-zA-Z0-9-_]+)\)/g,(V,_)=>`${o}${_}`)),w+=`${E} ${x}: ${k}${s} +`;w+=`${E} ${r} +`}w+=`${E}${r} +`}return w}function f(g,$=0){let E=" ".repeat($),w="";for(let[H,L]of Object.entries(g)){w+=`${E}@media (max-width: ${H}) ${a} +`;for(let[z,A]of Object.entries(L.base||{}))w+=l(z,A,$+1);w+=`${E}${r} +`}return w}let b=[];if(t.rootVariables&&Object.keys(t.rootVariables).length){for(let[g,$]of Object.entries(t.rootVariables))b.push(g),e+=`${o}${g.split("--").join("")}: ${$}${s} `;e+=` -`}for(let[d,f]of Object.entries(t.styles)){if(!f||!Object.keys(f.variables||{}).length&&!Object.keys(f.base||{}).length&&!Object.keys(f.pseudos||{}).length&&!Object.keys(f.children||{}).length)continue;e+=l(d,f)}return Object.keys(t.animations||{}).length&&(e+=n(t.animations)),Object.keys(t.breakpoints||{}).length&&(e+=c(t.breakpoints)),e};window.mergeCSSJSON=(t,e)=>{if(typeof t=="string")throw new Error("Input's must be JSON");return Object.assign(t.rootVariables,e.rootVariables),Object.keys(e.styles).forEach(a=>{t.styles[a]?(e.styles[a].base&&(t.styles[a].base={...t.styles[a].base,...e.styles[a].base}),e.styles[a].pseudos&&(t.styles[a].pseudos=[...t.styles[a].pseudos||[],...e.styles[a].pseudos])):t.styles[a]=e.styles[a]}),Object.keys(e.animations).forEach(a=>{t.animations[a]?(t.animations[a].keyframes={...t.animations[a].keyframes,...e.animations[a].keyframes},t.animations[a].properties={...t.animations[a].properties,...e.animations[a].properties}):t.animations[a]=e.animations[a]}),Object.keys(e.breakpoints).forEach(a=>{t.breakpoints[a]?Object.keys(e.breakpoints[a]).forEach(o=>{t.breakpoints[a][o]?t.breakpoints[a][o].base={...t.breakpoints[a][o].base,...e.breakpoints[a][o].base}:t.breakpoints[a][o]=e.breakpoints[a][o]}):t.breakpoints[a]=e.breakpoints[a]}),t};window.fetchCssFile=async t=>(await fetch(t)).text();window.generateCssQuickCommands=async t=>{let e=await fetchCssFile(t),a=new CSSStyleSheet;await a.replace(e);let o={};for(let s of a.cssRules)if(s.type===CSSRule.STYLE_RULE&&!s.selectorText.includes(":")&&!s.selectorText.includes("@keyframes")){let r=s.selectorText.replace(".","");if(r){let i=Array.from(s.style).filter(l=>!l.startsWith("animation")&&!l.startsWith("transition")).map(l=>`${l}: ${s.style[l]};`).join(" ");o[r]=i}}return o};window.saveState=()=>{let t={rootVariables:project.css.rootVariables,styles:project.css,html:project.html,selectedLayerIds:data.selectedLayerIds},e=JSON.stringify(t);(data.history.length===0||data.history[data.historyIndex]!==e)&&(data.history=data.history.slice(0,data.historyIndex+1),data.history.push(e),data.historyIndex++,localStorage.setItem("Polyrise",JSON.stringify(project)))};window.undo=()=>{if(data.historyIndex>0){data.editorNavState=!0,data.historyIndex--;let t=JSON.parse(data.history[data.historyIndex]);project.css.rootVariables=t.rootVariables,project.css=t.styles,project.html=t.html,data.selectedLayerIds=t.selectedLayerIds,data.editorNavState=null}};window.redo=()=>{if(data.historyIndex{Modal.render({title:"Paste Custom Code",content:` +`}for(let[g,$]of Object.entries(t.styles)){if(!$||!Object.keys($.variables||{}).length&&!Object.keys($.base||{}).length&&!Object.keys($.pseudos||{}).length&&!Object.keys($.children||{}).length)continue;e+=l(g,$)}return Object.keys(t.animations||{}).length&&(e+=i(t.animations)),Object.keys(t.breakpoints||{}).length&&(e+=f(t.breakpoints)),e};window.mergeCSSJSON=(t,e)=>{if(typeof t=="string")throw new Error("Input's must be JSON");return Object.assign(t.rootVariables,e.rootVariables),Object.keys(e.styles).forEach(o=>{t.styles[o]?(e.styles[o].base&&(t.styles[o].base={...t.styles[o].base,...e.styles[o].base}),e.styles[o].pseudos&&(t.styles[o].pseudos=[...t.styles[o].pseudos||[],...e.styles[o].pseudos])):t.styles[o]=e.styles[o]}),Object.keys(e.animations).forEach(o=>{t.animations[o]?(t.animations[o].keyframes={...t.animations[o].keyframes,...e.animations[o].keyframes},t.animations[o].properties={...t.animations[o].properties,...e.animations[o].properties}):t.animations[o]=e.animations[o]}),Object.keys(e.breakpoints).forEach(o=>{t.breakpoints[o]?Object.keys(e.breakpoints[o]).forEach(s=>{t.breakpoints[o][s]?t.breakpoints[o][s].base={...t.breakpoints[o][s].base,...e.breakpoints[o][s].base}:t.breakpoints[o][s]=e.breakpoints[o][s]}):t.breakpoints[o]=e.breakpoints[o]}),t};window.fetchCssFile=async t=>(await fetch(t)).text();window.generateCssQuickCommands=async t=>{let e=await fetchCssFile(t),o=new CSSStyleSheet;await o.replace(e);let s={};for(let a of o.cssRules)if(a.type===CSSRule.STYLE_RULE&&!a.selectorText.includes(":")&&!a.selectorText.includes("@keyframes")){let r=a.selectorText.replace(".","");if(r){let c=Array.from(a.style).filter(l=>!l.startsWith("animation")&&!l.startsWith("transition")).map(l=>`${l}: ${a.style[l]};`).join(" ");s[r]=c}}return s};window.saveState=()=>{let t={rootVariables:project.css.rootVariables,styles:project.css,html:project.html,selectedLayerIds:data.selectedLayerIds},e=JSON.stringify(t);(data.history.length===0||data.history[data.historyIndex]!==e)&&(data.history=data.history.slice(0,data.historyIndex+1),data.history.push(e),data.historyIndex++,localStorage.setItem("Polyrise",JSON.stringify(project)))};window.undo=()=>{if(data.historyIndex>0){data.editorNavState=!0,data.historyIndex--;let t=JSON.parse(data.history[data.historyIndex]);project.css.rootVariables=t.rootVariables,project.css=t.styles,project.html=t.html,data.selectedLayerIds=t.selectedLayerIds,data.editorNavState=null}};window.redo=()=>{if(data.historyIndex{Modal.render({title:"Paste Custom Code",content:`
      - `,onLoad(){document.getElementById("op95hyy3l").focus(),document.getElementById("op95hyy3l").select()},onConfirm(){let t=document.getElementById("bvk1c6j4o").value,e=document.getElementById("op95hyy3l").value;if(t==="html")addBlock(e);else{e=minifyCSS(e);let a=css2json(e);mergeCSSJSON(project.css,a),document.querySelector("dialog[open]").querySelector("header > button").onclick()}}})};window.addLibrary=t=>{if(!t)return project.libraries.push(""),document.getElementById("librariesBox").innerHTML=renderLibraries(),!1;project.libraries.includes(t)?console.error(`Library already exists: ${t}`):project.libraries.push(t),document.getElementById("librariesBox")&&(document.getElementById("librariesBox").innerHTML=renderLibraries())};window.renderLibraries=()=>project.libraries.map((t,e)=>` + `,onLoad(){document.getElementById("op95hyy3l").focus(),document.getElementById("op95hyy3l").select()},onConfirm(){let t=document.getElementById("bvk1c6j4o").value,e=document.getElementById("op95hyy3l").value;if(t==="html")addBlock(e);else{e=minifyCSS(e);let o=css2json(e);mergeCSSJSON(project.css,o),document.querySelector("dialog[open]").querySelector("header > button").onclick()}}})};window.addLibrary=t=>{if(!t)return project.libraries.push(""),document.getElementById("librariesBox").innerHTML=renderLibraries(),!1;project.libraries.includes(t)?console.error(`Library already exists: ${t}`):project.libraries.push(t),document.getElementById("librariesBox")&&(document.getElementById("librariesBox").innerHTML=renderLibraries())};window.renderLibraries=()=>project.libraries.map((t,e)=>` - `).join("");window.fetchSuggestions=t=>{fetch(`https://api.cdnjs.com/libraries?search=${t}&fields=filename,description,version`).then(e=>{if(!e.ok)throw new Error("Network response was not ok");return e.json()}).then(e=>{if(e&&e.results&&e.results.length>0){let a=e.results.map(o=>o);document.getElementById("pruz9lb2p").innerHTML=a.map(o=>` + `).join("");window.fetchSuggestions=t=>{fetch(`https://api.cdnjs.com/libraries?search=${t}&fields=filename,description,version`).then(e=>{if(!e.ok)throw new Error("Network response was not ok");return e.json()}).then(e=>{if(e&&e.results&&e.results.length>0){let o=e.results.map(s=>s);document.getElementById("pruz9lb2p").innerHTML=o.map(s=>`
      - ${o.name} - ${o.version} + ${s.name} + ${s.version}
      -
      ${o.description}

      -
      `).join("")}}).catch(e=>{console.error("Error fetching data:",e)})};window.removeScript=t=>{let e=document.querySelector(`script[src="${t}"]`);e&&e.remove()};window.removeScripts=t=>{t.forEach(e=>{let a=document.querySelector(`script[src="${e}"]`);a&&a.remove()})};window.loadScript=async t=>new Promise((e,a)=>{if(document.querySelector(`script[src="${t}"]`)){e();return}let s=document.createElement("script");s.src=t,s.onload=e,s.onerror=()=>a(new Error(`Failed to load script: ${t}`)),document.body.appendChild(s)});window.loadScripts=async t=>Promise.all(t.map(loadScript));window.executeQuery=(t,e=!0)=>{if(!t){clearAllSelections();return}let a=t.split(",").map(n=>n.trim());function o(n){switch(n){case"f":foldAllLayers(!0);break;case"u":foldAllLayers(!1);break;case"h":hideAllLayers(!0);break;case"s":hideAllLayers(!1);break;case"e":emptyChildren();break;case"cas":project.css={rootVariables:{},styles:{},animations:{},breakpoints:{}};break;default:console.warn("Unknown command:",n)}}function s(n,c,p,d){switch(c){case"first-child":return p===0;case"last-child":return p===d-1;case"nth-child":return p+1===parseInt(c.split("(")[1],10);case"nth-last-child":return d-p===parseInt(c.split("(")[1],10);case"only-child":return d===1;case"empty":return!(n.children&&n.children.length>0);case"first-of-type":return n.tagOccurrences.index===0;case"last-of-type":return n.tagOccurrences.reverseIndex===0;case"nth-of-type":return n.tagOccurrences.index===parseInt(c.split("(")[1],10)-1;case"nth-last-of-type":return n.tagOccurrences.reverseIndex===parseInt(c.split("(")[1],10)-1;case"only-of-type":return n.tagOccurrences.total===1;default:return!1}}function r(n,c,p){let d=0;function f(y){d++,y.forEach((u,k)=>{let w=!1,[x,b]=c.split(":"),m=b||null,[g,I,T,z]=[null,[],null,null],O=/\[([^\]]+)\]/.exec(x);O&&([T,z]=O[1].split("="));let W=/\.([^.\[]+)/g,U;for(;(U=W.exec(x))!==null;)I.push(U[1]);if(g=x.split(/[\.\[]/)[0],g&&u.tag!==g?w=!1:w=!0,I.length>0)if(!u.props||!u.props.class)w=!1;else{let V=u.props.class.split(" ");w=I.every(K=>V.includes(K))}if(T&&(z?u.props&&u.props[T]!==z&&(w=!1):(!u.props||!u.props.hasOwnProperty(T))&&(w=!1)),w&&m){let V=y.length;s(u,m,k,V)||(w=!1)}w&&(u.state.selected=!0,data.selectedLayerIds.includes(u.id)||data.selectedLayerIds.push(u.id)),u.children&&u.children.length>0&&f(u.children)}),d--,d===0&&p&&typeof p=="function"&&p()}f(n)}function i(n,c){if(data.selectedLayerIds.length>0){let p=data.selectedLayerIds.map(d=>findLayerById(d,project.html));if(p.length>0){let d=p.flatMap(f=>f.layer.children||[]);r(d,n)}typeof c=="function"&&c()}}function l(n){let c=n.indexOf("=");if(c!==-1&&(n=n.slice(0,c).toLowerCase()+n.slice(c)),n.startsWith("t="))e&&clearAllSelections(),r(project.html,n.slice(2));else if(n.startsWith("r="))clearAllSelections(),r(project.html,n.slice(2),()=>{deleteLayers()});else if(n.startsWith("e="))clearAllSelections(),r(project.html,n.slice(2),()=>{emptyChildren()});else if(n.startsWith("c="))if(data.selectedLayerIds.length>0)if(data.replaceCurrentSelection){let p=[...data.selectedLayerIds];i(n.slice(2),()=>{p.forEach(d=>{let{layer:f}=findLayerById(d,project.html);f.state.selected=!1})})}else i(n.slice(2));else console.error("no layers selected");else n.startsWith("mv=")?data.selectedLayerIds.length>0&&(e&&clearAllSelections(),cutLayers(()=>{r(project.html,n.slice(3),()=>{pasteLayers()})})):n.startsWith("rs=")?data.selectedLayerIds.length>0&&(e&&clearAllSelections(),clearStyles(project.html,n.slice(3),()=>{saveState()})):o(n)}a.forEach(l)};window.toggleCollapse=t=>{project.activePanel!=="layers"&&(project.activePanel="layers");let e=null,a=null;function o(r,i=null){if(r.id===t)return e=r,a=i,!0;if(r.children){for(let l=0;l{l!==e&&(l.state.collapsed=i)})}for(let r=0;r{project.activePanel!=="layers"&&(project.activePanel="layers");function e(a){a.state.collapsed=t,a.children&&a.children.forEach(o=>e(o))}project.html.forEach(a=>e(a))};window.hideAllLayers=(t=!1)=>{project.activePanel!=="layers"&&(project.activePanel="layers");function e(a){a.state.visible=!t,a.children&&a.children.forEach(o=>e(o))}project.html.forEach(a=>e(a))};window.toggleVisible=t=>{project.activePanel!=="layers"&&(project.activePanel="layers");let e=null,a=null;function o(r,i=null){if(r.id===t)return e=r,a=i,!0;if(r.children){for(let l=0;l{l!==e&&(l.state.visible=i)})}for(let r=0;r{project.activePanel!=="layers"&&(project.activePanel="layers");let e=null,a=null;function o(i,l=null){if(i.id===t)return e=i,a=l,!0;if(i.children){for(let n=0;n{if(n!==e){let c=data.selectedLayerIds.indexOf(n.id);l?c===-1&&(data.selectedLayerIds.push(n.id),n.state.selected=!0):c>-1&&(data.selectedLayerIds.splice(c,1),n.state.selected=!1)}})}for(let i=0;i{let c=r(n);c&&(c.state.selected=!1)}),data.selectedLayerIds=[]),l){data.selectedLayerIds.push(t);let n=data.selectedLayerIds[data.selectedLayerIds.length-1],c=r(n);data.stylesTarget=c.style,data.breakpointKey=null}else{let n=data.selectedLayerIds.indexOf(t);n>-1&&data.selectedLayerIds.splice(n,1)}e.state.selected=l,data.shiftKey&&s(a?a.children:project.html,l)}function r(i){let l=null;for(let n=0;n{t.forEach(e=>{e.state.selected&&data.selectedLayerIds.push(e.id),e.children&&e.children.length>0&&collectSelectedIDs(e.children)})};window.clearAllSelections=()=>{data.selectedLayerIds=[],data.stylesTarget=null,clearSelection(project.html)};window.clearSelection=t=>{t.forEach(e=>{e.state.selected=!1,e.children&&clearSelection(e.children)})};window.clearSelectionExcept=(t,e)=>{e.forEach(a=>{a.id!==t?a.state.selected=!1:a.state.selected=!0,a.children&&clearSelectionExcept(t,a.children)})};window.findLayerById=(t,e,a=null)=>{for(let o of e){if(o.id===t)return{layer:o,parent:a};if(o.children){let s=findLayerById(t,o.children,o);if(s)return s}}return null};window.canAcceptChildren=t=>!["audio","datalist","iframe","img","input","meter","option","progress","select","textarea","video"].includes(t.tag);window.addBlock=t=>{saveState();let e=(s,r)=>{s.forEach(i=>{i.id=generateId(),i.children&&e(i.children)}),r&&typeof r=="function"&&r()},o=(s=>typeof s=="string"?html2json(s):typeof s=="object"?Array.isArray(s)?s:[s]:(console.error("Invalid HTML input. Expected a string or an object."),[]))(t);data.selectedLayerIds.length>0?data.selectedLayerIds.forEach(s=>{let r=findLayerById(s,project.html);if(r){let{layer:i,parent:l}=r;if(i.selected=!1,data.selectedLayerIds=data.selectedLayerIds.filter(n=>n!==s),canAcceptChildren(i))if(data.blockWrap){let n=o[0];canAcceptChildren(n)&&(n.children=n.children||[],n.children.push(i),e(o,()=>{l&&l.children?l.children=l.children.map(c=>c.id===i.id?n:c):project.html=project.html.map(c=>c.id===i.id?n:c)}))}else i.children=i.children||[],e(o,()=>{o.forEach(n=>{i.children.push(n)})})}}):e(o,()=>{o.forEach(s=>project.html.push(s))}),clearAllSelections(),saveState(),document.querySelector("dialog[open]").querySelector("header > button").onclick()};window.selectLayersByStyleRef=(t,e)=>{for(let a of e)a.state.selected=!1,a.style===t&&(data.selectedLayerIds.push(a.id),a.state.selected=!0),a.children&&a.children.length>0&&selectLayersByStyleRef(t,a.children)};window.deleteLayers=()=>{saveState(),data.editorNavState=!0,data.selectedLayerIds.forEach(t=>{removeLayerById(t,project.html)}),data.selectedLayerIds=[],data.editorNavState=null,saveState()};window.removeLayerById=(t,e)=>{for(let a of e){if(a.id===t){let o=e.findIndex(s=>s.id===t);e.splice(o,1);return}if(a.children){let o=a.children.findIndex(s=>s.id===t);if(o!==-1){a.children.splice(o,1);return}else removeLayerById(t,a.children)}}};window.cloneLayers=()=>{let t=`
      +
      ${s.description}

      + `).join("")}}).catch(e=>{console.error("Error fetching data:",e)})};window.removeScript=t=>{let e=document.querySelector(`script[src="${t}"]`);e&&e.remove()};window.removeScripts=t=>{t.forEach(e=>{let o=document.querySelector(`script[src="${e}"]`);o&&o.remove()})};window.loadScript=async t=>new Promise((e,o)=>{if(document.querySelector(`script[src="${t}"]`)){e();return}let a=document.createElement("script");a.src=t,a.onload=e,a.onerror=()=>o(new Error(`Failed to load script: ${t}`)),document.body.appendChild(a)});window.loadScripts=async t=>Promise.all(t.map(loadScript));window.executeQuery=(t,e=!0)=>{if(!t){clearAllSelections();return}let o=t.split(",").map(i=>i.trim());function s(i){switch(i){case"f":foldAllLayers(!0);break;case"u":foldAllLayers(!1);break;case"h":hideAllLayers(!0);break;case"s":hideAllLayers(!1);break;case"e":emptyChildren();break;case"cas":project.css={rootVariables:{},styles:{},animations:{},breakpoints:{}};break;default:console.warn("Unknown command:",i)}}function a(i,f,b,g){switch(f){case"first-child":return b===0;case"last-child":return b===g-1;case"nth-child":return b+1===parseInt(f.split("(")[1],10);case"nth-last-child":return g-b===parseInt(f.split("(")[1],10);case"only-child":return g===1;case"empty":return!(i.children&&i.children.length>0);case"first-of-type":return i.tagOccurrences.index===0;case"last-of-type":return i.tagOccurrences.reverseIndex===0;case"nth-of-type":return i.tagOccurrences.index===parseInt(f.split("(")[1],10)-1;case"nth-last-of-type":return i.tagOccurrences.reverseIndex===parseInt(f.split("(")[1],10)-1;case"only-of-type":return i.tagOccurrences.total===1;default:return!1}}function r(i,f,b){let g=0;function $(E){g++,E.forEach((w,H)=>{let L=!1,[z,A]=f.split(":"),x=A||null,[k,V,_,F]=[null,[],null,null],W=/\[([^\]]+)\]/.exec(z);W&&([_,F]=W[1].split("="));let X=/\.([^.\[]+)/g,ee;for(;(ee=X.exec(z))!==null;)V.push(ee[1]);if(k=z.split(/[\.\[]/)[0],k&&w.tag!==k?L=!1:L=!0,V.length>0)if(!w.props||!w.props.class)L=!1;else{let Y=w.props.class.split(" ");L=V.every(U=>Y.includes(U))}if(_&&(F?w.props&&w.props[_]!==F&&(L=!1):(!w.props||!w.props.hasOwnProperty(_))&&(L=!1)),L&&x){let Y=E.length;a(w,x,H,Y)||(L=!1)}L&&(w.state.selected=!0,data.selectedLayerIds.includes(w.id)||data.selectedLayerIds.push(w.id)),w.children&&w.children.length>0&&$(w.children)}),g--,g===0&&b&&typeof b=="function"&&b()}$(i)}function c(i,f){if(data.selectedLayerIds.length>0){let b=data.selectedLayerIds.map(g=>findLayerById(g,project.html));if(b.length>0){let g=b.flatMap($=>$.layer.children||[]);r(g,i)}typeof f=="function"&&f()}}function l(i){let f=i.indexOf("=");if(f!==-1&&(i=i.slice(0,f).toLowerCase()+i.slice(f)),i.startsWith("t="))e&&clearAllSelections(),r(project.html,i.slice(2));else if(i.startsWith("r="))clearAllSelections(),r(project.html,i.slice(2),()=>{deleteLayers()});else if(i.startsWith("e="))clearAllSelections(),r(project.html,i.slice(2),()=>{emptyChildren()});else if(i.startsWith("c="))if(data.selectedLayerIds.length>0)if(data.replaceCurrentSelection){let b=[...data.selectedLayerIds];c(i.slice(2),()=>{b.forEach(g=>{let{layer:$}=findLayerById(g,project.html);$.state.selected=!1})})}else c(i.slice(2));else console.error("no layers selected");else i.startsWith("mv=")?data.selectedLayerIds.length>0&&(e&&clearAllSelections(),cutLayers(()=>{r(project.html,i.slice(3),()=>{pasteLayers()})})):i.startsWith("rs=")?data.selectedLayerIds.length>0&&(e&&clearAllSelections(),clearStyles(project.html,i.slice(3),()=>{saveState()})):s(i)}o.forEach(l)};window.toggleCollapse=t=>{project.activePanel!=="layers"&&(project.activePanel="layers");let e=null,o=null;function s(r,c=null){if(r.id===t)return e=r,o=c,!0;if(r.children){for(let l=0;l{l!==e&&(l.state.collapsed=c)})}for(let r=0;r{project.activePanel!=="layers"&&(project.activePanel="layers");function e(o){o.state.collapsed=t,o.children&&o.children.forEach(s=>e(s))}project.html.forEach(o=>e(o))};window.hideAllLayers=(t=!1)=>{project.activePanel!=="layers"&&(project.activePanel="layers");function e(o){o.state.visible=!t,o.children&&o.children.forEach(s=>e(s))}project.html.forEach(o=>e(o))};window.toggleVisible=t=>{project.activePanel!=="layers"&&(project.activePanel="layers");let e=null,o=null;function s(r,c=null){if(r.id===t)return e=r,o=c,!0;if(r.children){for(let l=0;l{l!==e&&(l.state.visible=c)})}for(let r=0;r{project.activePanel!=="layers"&&(project.activePanel="layers");let e=null,o=null;function s(c,l=null){if(c.id===t)return e=c,o=l,!0;if(c.children){for(let i=0;i{if(i!==e){let f=data.selectedLayerIds.indexOf(i.id);l?f===-1&&(data.selectedLayerIds.push(i.id),i.state.selected=!0):f>-1&&(data.selectedLayerIds.splice(f,1),i.state.selected=!1)}})}for(let c=0;c{let f=r(i);f&&(f.state.selected=!1)}),data.selectedLayerIds=[]),l){data.selectedLayerIds.push(t);let i=data.selectedLayerIds[data.selectedLayerIds.length-1],f=r(i);data.stylesTarget=f.style,data.breakpointKey=null}else{let i=data.selectedLayerIds.indexOf(t);i>-1&&data.selectedLayerIds.splice(i,1)}e.state.selected=l,data.shiftKey&&a(o?o.children:project.html,l)}function r(c){let l=null;for(let i=0;i{t.forEach(e=>{e.state.selected&&data.selectedLayerIds.push(e.id),e.children&&e.children.length>0&&collectSelectedIDs(e.children)})};window.clearAllSelections=()=>{data.selectedLayerIds=[],data.stylesTarget=null,clearSelection(project.html)};window.clearSelection=t=>{t.forEach(e=>{e.state.selected=!1,e.children&&clearSelection(e.children)})};window.clearSelectionExcept=(t,e)=>{e.forEach(o=>{o.id!==t?o.state.selected=!1:o.state.selected=!0,o.children&&clearSelectionExcept(t,o.children)})};window.findLayerById=(t,e,o=null)=>{for(let s of e){if(s.id===t)return{layer:s,parent:o};if(s.children){let a=findLayerById(t,s.children,s);if(a)return a}}return null};window.canAcceptChildren=t=>!["audio","datalist","iframe","img","input","meter","option","progress","select","textarea","video"].includes(t.tag);window.addBlock=t=>{saveState();let e=(a,r)=>{a.forEach(c=>{c.id=generateId(),c.children&&e(c.children)}),r&&typeof r=="function"&&r()},s=(a=>typeof a=="string"?html2json(a):typeof a=="object"?Array.isArray(a)?a:[a]:(console.error("Invalid HTML input. Expected a string or an object."),[]))(t);data.selectedLayerIds.length>0?data.selectedLayerIds.forEach(a=>{let r=findLayerById(a,project.html);if(r){let{layer:c,parent:l}=r;if(c.selected=!1,data.selectedLayerIds=data.selectedLayerIds.filter(i=>i!==a),canAcceptChildren(c))if(data.blockWrap){let i=s[0];canAcceptChildren(i)&&(i.children=i.children||[],i.children.push(c),e(s,()=>{l&&l.children?l.children=l.children.map(f=>f.id===c.id?i:f):project.html=project.html.map(f=>f.id===c.id?i:f)}))}else c.children=c.children||[],e(s,()=>{s.forEach(i=>{c.children.push(i)})})}}):e(s,()=>{s.forEach(a=>project.html.push(a))}),clearAllSelections(),saveState(),document.querySelector("dialog[open]").querySelector("header > button").onclick()};window.selectLayersByStyleRef=(t,e)=>{for(let o of e)o.state.selected=!1,o.style===t&&(data.selectedLayerIds.push(o.id),o.state.selected=!0),o.children&&o.children.length>0&&selectLayersByStyleRef(t,o.children)};window.deleteLayers=()=>{saveState(),data.editorNavState=!0,data.selectedLayerIds.forEach(t=>{removeLayerById(t,project.html)}),data.selectedLayerIds=[],data.editorNavState=null,saveState()};window.removeLayerById=(t,e)=>{for(let o of e){if(o.id===t){let s=e.findIndex(a=>a.id===t);e.splice(s,1);return}if(o.children){let s=o.children.findIndex(a=>a.id===t);if(s!==-1){o.children.splice(s,1);return}else removeLayerById(t,o.children)}}};window.cloneLayers=()=>{let t=`
      -
      `;Modal.render({title:"How many times do you want to clone this block?",content:t,onLoad(){document.getElementById("b40h7qc6d").focus(),document.getElementById("b40h7qc6d").select()},onConfirm(){saveState();let e=parseInt(data.increment,10);if(isNaN(e)||e<=0){console.error("Invalid clone count:",e);return}data.selectedLayerIds.forEach(a=>{let{layer:o,parent:s}=findLayerById(a,project.html);if(o)for(let r=0;rn.id===o.id);l!==-1?s.children.splice(l+1,0,i):console.error("Selected layer not found in parent's children:",o)}else if(!s){let l=project.html.findIndex(n=>n.id===o.id);l!==-1?project.html.splice(l+1,0,i):console.error("Selected layer not found in root layer structure:",o)}}else console.error("Layer not found for ID:",a)}),clearAllSelections(),saveState()}})};window.cloneLayerObject=t=>{let e=JSON.parse(JSON.stringify(t));return e.id=generateId(),e.children&&(e.children=e.children.map(a=>cloneLayerObject(a))),e};window.cutLayers=t=>{saveState(),data.editorNavState=!0,copyLayers(),data.selectedLayerIds.forEach(e=>{removeLayerById(e,project.html)}),data.selectedLayerIds=[],saveState(),data.editorNavState=null,t&&typeof t=="function"&&t()};window.copyLayers=()=>{data.clipboard=data.selectedLayerIds.map(t=>{let{layer:e}=findLayerById(t,project.html);return cloneLayerObject(e)})};window.pasteLayers=()=>{if(saveState(),data.clipboard.length>0){let t=data.clipboard.map(e=>cloneLayerObject(e));data.selectedLayerIds.length>0?data.selectedLayerIds.forEach(e=>{let{layer:a}=findLayerById(e,project.html);a&&canAcceptChildren(a)&&(a.children=a.children||[],a.children.push(...t))}):project.html.push(...t),data.clipboard=[],clearAllSelections(),saveState()}};window.removeAttributeFromLayers=t=>{saveState(),data.selectedLayerIds.forEach(e=>{let{layer:a}=findLayerById(e,project.html);a&&delete a.props[t]}),saveState()};window.removeProp=t=>{Modal.render({title:`Are you sure you want to delete the ${t} attribute?`,content:` +
      `;Modal.render({title:"How many times do you want to clone this block?",content:t,onLoad(){document.getElementById("b40h7qc6d").focus(),document.getElementById("b40h7qc6d").select()},onConfirm(){saveState();let e=parseInt(data.increment,10);if(isNaN(e)||e<=0){console.error("Invalid clone count:",e);return}data.selectedLayerIds.forEach(o=>{let{layer:s,parent:a}=findLayerById(o,project.html);if(s)for(let r=0;ri.id===s.id);l!==-1?a.children.splice(l+1,0,c):console.error("Selected layer not found in parent's children:",s)}else if(!a){let l=project.html.findIndex(i=>i.id===s.id);l!==-1?project.html.splice(l+1,0,c):console.error("Selected layer not found in root layer structure:",s)}}else console.error("Layer not found for ID:",o)}),clearAllSelections(),saveState()}})};window.cloneLayerObject=t=>{let e=JSON.parse(JSON.stringify(t));return e.id=generateId(),e.children&&(e.children=e.children.map(o=>cloneLayerObject(o))),e};window.cutLayers=t=>{saveState(),data.editorNavState=!0,copyLayers(),data.selectedLayerIds.forEach(e=>{removeLayerById(e,project.html)}),data.selectedLayerIds=[],saveState(),data.editorNavState=null,t&&typeof t=="function"&&t()};window.copyLayers=()=>{data.clipboard=data.selectedLayerIds.map(t=>{let{layer:e}=findLayerById(t,project.html);return cloneLayerObject(e)})};window.pasteLayers=()=>{if(saveState(),data.clipboard.length>0){let t=data.clipboard.map(e=>cloneLayerObject(e));data.selectedLayerIds.length>0?data.selectedLayerIds.forEach(e=>{let{layer:o}=findLayerById(e,project.html);o&&canAcceptChildren(o)&&(o.children=o.children||[],o.children.push(...t))}):project.html.push(...t),data.clipboard=[],clearAllSelections(),saveState()}};window.removeAttributeFromLayers=t=>{saveState(),data.selectedLayerIds.forEach(e=>{let{layer:o}=findLayerById(e,project.html);o&&delete o.props[t]}),saveState()};window.removeProp=t=>{Modal.render({title:`Are you sure you want to delete the ${t} attribute?`,content:`
      You will still be able to undo.
      - `,onConfirm(){removeAttributeFromLayers(t)}})};window.emptyChildren=()=>{saveState(),data.selectedLayerIds.length>0&&data.selectedLayerIds.forEach(t=>{let{layer:e}=findLayerById(t,project.html);e.children&&(e.children=[]),e.text&&(e.text="")}),saveState()};window.updateElement=(t,e,a,o=!1)=>{let s=/{n}/g;saveState(),data.selectedLayerIds.forEach((r,i)=>{let{layer:l}=findLayerById(r,project.html);l&&(t!=="props"?t==="text"?a?o&&s.test(a)?l.text=a.replace(s,i+1):l.text=a:l.text="":l[`${t}`]=a:o&&s.test(a)?l.props[`${e}`]=a.replace(s,i+1):l.props[`${e}`]=a)}),saveState()};window.updateImageMedia=(t,e)=>{let a=findLayerById(t,project.html).layer.props.src,o=`
      + `,onConfirm(){removeAttributeFromLayers(t)}})};window.emptyChildren=()=>{saveState(),data.selectedLayerIds.length>0&&data.selectedLayerIds.forEach(t=>{let{layer:e}=findLayerById(t,project.html);e.children&&(e.children=[]),e.text&&(e.text="")}),saveState()};window.updateElement=(t,e,o,s=!1)=>{let a=/{n}/g;saveState(),data.selectedLayerIds.forEach((r,c)=>{let{layer:l}=findLayerById(r,project.html);l&&(t!=="props"?t==="text"?o?s&&a.test(o)?l.text=o.replace(a,c+1):l.text=o:l.text="":l[`${t}`]=o:s&&a.test(o)?l.props[`${e}`]=o.replace(a,c+1):l.props[`${e}`]=o)}),saveState()};window.updateImageMedia=(t,e)=>{let o=findLayerById(t,project.html).layer.props.src,s=`
      @@ -2192,34 +2249,34 @@ } "/>
      You can grab your own high-res image by searching Pixabay.com or Pexels.com.
      -
      `;Modal.render({title:"Are you sure you want to replace the image source?",content:o,onLoad(){let s=document.getElementById("search-input");s.focus();let r=async()=>{if(s.value){let l=await searchOpenverseImage(s.value);i(l)}else return document.getElementById("search-results").innerHTML="",!1};s.oninput=r,document.getElementById("search-btn").onclick=r;function i(l){let n=document.getElementById("search-results");n.innerHTML=l.map(c=>` +
      `;Modal.render({title:"Are you sure you want to replace the image source?",content:s,onLoad(){let a=document.getElementById("search-input");a.focus();let r=async()=>{if(a.value){let l=await searchOpenverseImage(a.value);c(l)}else return document.getElementById("search-results").innerHTML="",!1};a.oninput=r,document.getElementById("search-btn").onclick=r;function c(l){let i=document.getElementById("search-results");i.innerHTML=l.map(f=>` ${c.title} - `).join("")}},onConfirm(){data.selectedLayerIds.forEach(s=>{let{layer:r}=findLayerById(s,project.html);r&&r.tag==="img"&&(saveState(),r.props.src=document.getElementById("p8gnvn4o7").src,saveState())})}})};window.searchOpenverseImage=async t=>{let e=`https://api.openverse.org/v1/images?q=${encodeURIComponent(t)}`,a=await fetch(e);return a.ok?(await a.json()).results:(console.error("API request failed:",a.status),[])};window.updateAudioMedia=(t,e)=>{let a=findLayerById(t,project.html).layer;if(a.tag!=="audio"||e!=="audio")return;let o=generateId();a.props||(a.props={}),a.props.id&&(a.props.id=o),a.props.id||(a.props.id=o);let s=json2html([a]),r=`
      - +
      @@ -2248,27 +2305,27 @@ } "/>
      You can also grab your own audio files from freesound.org.
      -
      `;Modal.render({title:"Are you sure you want to replace the audio element?",content:r,onLoad(){let i=document.getElementById("search-input"),l=document.getElementById("search-btn"),n=document.getElementById("search-results");i.focus();let c=async()=>{if(i.value){let d=await searchOpenverseAudio(i.value);p(d)}else return n.innerHTML="",!1};i.oninput=c,l.onclick=c;function p(d){d.length===0?n.innerHTML="

      No results found.

      ":(n.innerHTML=d.map(y=>` + `;Modal.render({title:"Are you sure you want to replace the audio element?",content:r,onLoad(){let c=document.getElementById("search-input"),l=document.getElementById("search-btn"),i=document.getElementById("search-results");c.focus();let f=async()=>{if(c.value){let g=await searchOpenverseAudio(c.value);b(g)}else return i.innerHTML="",!1};c.oninput=f,l.onclick=f;function b(g){g.length===0?i.innerHTML="

      No results found.

      ":(i.innerHTML=g.map(E=>`
      -
      ${y.title}
      +
      ${E.title}
    - `).join(""),n.querySelectorAll("audio").forEach(y=>{let u=y.querySelector("source").getAttribute("src");y.load(),y.src=u}))}},onConfirm(){data.selectedLayerIds.forEach(i=>{let{layer:l}=findLayerById(i,project.html);if(l){source=document.getElementById(o).outerHTML;let n=html2json(source)[0];saveState(),Object.keys(n).forEach(c=>{c!=="id"&&(l[c]=n[c])}),findLayerById(i,project.html).layer.state.selected=null,findLayerById(i,project.html).layer.state.selected=!0,saveState()}})}})};window.searchOpenverseAudio=async t=>{let e=`https://api.openverse.org/v1/audio?q=${encodeURIComponent(t)}`,a=await fetch(e);return a.ok?(await a.json()).results:(console.error("API request failed:",a.status),[])};window.updateMediaSource=async(t,e,a)=>{let o=t.target.files[0];if(o)try{if(e==="svg"){let s=await o.text();document.getElementById("vl61t8366").querySelector("svg").outerHTML=s,document.getElementById("vl61t8366").querySelector("svg").setAttribute("id","p8gnvn4o7")}else{let s=await fileToBase64(o);a.setAttribute("src",s)}}catch(s){console.error("Error reading file:",s)}};window.checkApiConnection=async()=>{try{if((await fetch("https://api.iconify.design/collections")).ok)return!0}catch(t){console.error("API connection failed:",t)}return!1};window.fetchIconifySvg=async t=>{let e=[`https://api.iconify.design/${t}.svg`,`https://api.simplesvg.com/${t}.svg`,`https://api.unisvg.com/${t}.svg`];for(let a of e)try{let o=await fetch(a,{timeout:750});if(o.ok)return await o.text();if(o.status===404){console.warn(`Icon not found at ${a}`);continue}}catch(o){console.warn(`Failed to fetch from ${a}:`,o)}throw new Error("Icon not found or all hosts are unreachable.")};window.searchIcons=async t=>{let e=`https://api.iconify.design/search?query=${encodeURIComponent(t)}`;try{let a=await fetch(e);if(a.ok)return(await a.json()).icons||[];console.error("Failed to fetch icon search results.")}catch(a){console.error("Error during icon search:",a)}return[]};window.updateSvgMedia=async(t,e)=>{let a="Replace the SVG",o=findLayerById(t,project.html).layer,s="",r=document.createElement("template");r.innerHTML=json2html(o);let i=r.content.firstElementChild;i&&(s=``),r.remove();let l=`
    - ${s} + ${a}
    Checking connection...
    @@ -2302,19 +2359,19 @@ -
    `;Modal.render({title:a,content:l,onLoad:async function(){let n=await checkApiConnection(),c=document.getElementById("modal-description"),p=document.getElementById("iconSearch"),d=document.getElementById("iconResults");navigator.onLine&&n?(c.innerHTML=`Api courtesy of + `;Modal.render({title:o,content:l,onLoad:async function(){let i=await checkApiConnection(),f=document.getElementById("modal-description"),b=document.getElementById("iconSearch"),g=document.getElementById("iconResults");navigator.onLine&&i?(f.innerHTML=`Api courtesy of Iconify. - `,p.classList.remove("hidden"),p.focus(),d.classList.remove("hidden")):c.textContent="Upload your SVG:"},onConfirm:function(){data.selectedLayerIds.forEach(n=>{let{layer:c}=findLayerById(n,project.html);if(c&&c.tag==="svg"){let p=document.getElementById("vl61t8366").querySelector("svg");if(p){let d=html2json(p.outerHTML)[0];saveState(),Object.keys(d).forEach(f=>{f!=="id"&&(c[f]=d[f])}),findLayerById(n,project.html).layer.state.selected=null,findLayerById(n,project.html).layer.state.selected=!0,saveState()}}})}})};window.handleIconSearch=async t=>{let e=t.target.value,a=document.getElementById("iconResults");if(e.length>2){let o=await searchIcons(e);a.innerHTML="";for(let s of o)try{let r=`https://api.iconify.design/${s}.svg`;getFile(r,(i,l)=>{if(i)console.error("Failed to fetch SVG:",i);else{let n=document.createElement("div");n.innerHTML=l,n.onclick=()=>{let c=document.querySelector("#vl61t8366 label svg");c&&(c.outerHTML=l,n.closest("article").scrollTop=0)},a.appendChild(n)}})}catch(r){console.warn(`Failed to fetch SVG for icon: ${s}`,r)}}else{let o=document.getElementById("iconResults");o.innerHTML=""}};window.selectIcon=t=>{iconContainer.innerHTML=t};window.copyToClipboard=t=>{navigator.clipboard.writeText(t).then(function(){}).catch(function(e){console.error("Failed to copy text: ",e)})};window.collectComponents=t=>{let e=new Set(project.components.map(a=>a.name));t.forEach(a=>{if(a.isComponent&&!e.has(a.name)){let o={...a},s=generateId();o.id=s,project.components.push({id:s,name:a.name,code:o}),e.add(a.name)}})};window.addComponent=()=>{data.selectedLayerIds.length!==0&&(saveState(),data.selectedLayerIds.forEach(t=>{let e=findLayerById(t,project.html);if(e){let{layer:a}=e,o={...a};o.id=generateId();let s=json2html(o);project.components.some(i=>i.name===o.name||i.code===s)?console.warn(`Component with name "${o.name}" or identical HTML already exists.`):project.components.push({name:o.name,code:s})}else console.error("Layer not found for ID:",t)}),saveState())};window.deleteComponent=t=>{t>=0&&t{let t=`text-xs w-auto px-3 py-2 m-0 capitalize rounded-md bg-transparent border ${project.dark?"border-gray-600":"border-gray-400"}`,e={"fold all":"f","unfold all":"u","hide all":"h","show all":"s","empty children":"e","clear all styles":"cas"},a=Object.keys(e).map(s=>``).join(""),o=`
    + ${a} +`).join(""),s=`
    - Enter a Query:
    Input a query in the format t=tagname, t=.classname, t=[attribute=value], or t=[id]. You can also use pseudo-classes with the t= prefix like t=.classname:first-child.

    @@ -2415,7 +2472,7 @@ Commands - ${a} + ${o}
    @@ -2426,44 +2483,44 @@ How to use the Command Palette: - ${o} + ${s} -
    `,onLoad(){document.getElementById("olphbh94a").focus()},onClose(){data.commandPalette=null},onConfirm(){let s=document.getElementById("olphbh94a").value.trim();executeQuery(s,data.replaceCurrentSelection),data.commandPalette=null}}))};window.updateVersionPart=(t,e)=>{let a=project.version.split(".");t==="major"?a[0]=e:t==="minor"?a[1]=e:t==="patch"&&(a[2]=e),project.version=a.join(".")};window.resizeCanvas=t=>{data.selectedSize=t,getIFrameClientSize()};window.rotateCanvas=()=>{let t=document.getElementById("previewElm").firstElementChild;if(t.style.width==="100%")return!1;let e=parseInt(t.style.width),a=parseInt(t.style.height);[e,a]=[a,e],data.selectedSize=e+"x"+a,getIFrameClientSize()};var de;window.getIFrameClientSize=()=>{let t=document.getElementById("iframe");if(t.style.width!=="100%"){let a=parseInt(t.style.width),o=parseInt(t.style.height),s=previewElm.clientWidth,r=previewElm.clientHeight,i=Math.min(s/a,r/o);t.style.width=`${a}px`,t.style.height=`${o}px`,t.style.transform=`scale(${i})`,t.style.marginTop=`-${o/2}px`,t.style.marginLeft=`-${a/2}px`}data.iframeSize=`${t.clientWidth}px x ${t.clientHeight}px`;let e=document.getElementById("iframeClientSize");e.classList.contains("hidden")&&(de&&clearTimeout(de),e.classList.remove("hidden","opacity-0"),e.classList.add("opacity-100"),de=setTimeout(()=>{e.classList.remove("opacity-100"),e.classList.add("opacity-0"),setTimeout(()=>{e.classList.add("hidden")},300)},2e3))};window.handleLogoChange=async t=>{let e=t.target.files[0];if(e)try{let a=await fileToBase64(e);project.logo=a}catch(a){console.error("Error converting image to base64:",a)}};window.fileToBase64=t=>new Promise((e,a)=>{let o=new FileReader;o.readAsDataURL(t),o.onload=()=>e(o.result),o.onerror=s=>a(s)});window.importJSON=(t,e=null)=>{t!==null&&(App.initialRender=!0,data.selectedLayerIds=[],project.name=t.name,project.version=t.version,project.title=t.title,project.description=t.description,project.author=t.author,project.url=t.url,project.logo=t.logo,project.dark=t.dark,project.pwa=t.pwa,project.activePanel=t.activePanel,project.meta=t.meta,project.libraries=t.libraries,project.css=t.css,project.html=t.html,t.components&&(project.components=t.components,collectComponents(project.html)),App.initialRender=null,collectSelectedIDs(project.html),App.render("#app"),renderPreview(!0),typeof e=="function"&&e())};window.newProject=()=>{let t={name:"App name",version:"0.0.1",title:"An attractive title",description:"The most attractive description ever!",author:"Polyrise",url:"https://michaelsboost.com/",meta:"",libraries:[],css:{rootVariables:{},styles:{},animations:{},breakpoints:{}},components:[],html:[],logo:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==",lang:"en",dark:!0,previewDark:!0,pwa:!1,activePanel:"layers"};Modal.render({title:"Are you sure you want to start a new project?",content:` +
    `,onLoad(){document.getElementById("olphbh94a").focus()},onClose(){data.commandPalette=null},onConfirm(){let a=document.getElementById("olphbh94a").value.trim();executeQuery(a,data.replaceCurrentSelection),data.commandPalette=null}}))};window.updateVersionPart=(t,e)=>{let o=project.version.split(".");t==="major"?o[0]=e:t==="minor"?o[1]=e:t==="patch"&&(o[2]=e),project.version=o.join(".")};window.resizeCanvas=t=>{data.selectedSize=t,getIFrameClientSize()};window.rotateCanvas=()=>{let t=document.getElementById("previewElm").firstElementChild;if(t.style.width==="100%")return!1;let e=parseInt(t.style.width),o=parseInt(t.style.height);[e,o]=[o,e],data.selectedSize=e+"x"+o,getIFrameClientSize()};var he;window.getIFrameClientSize=()=>{let t=document.getElementById("iframe");if(t.style.width!=="100%"){let o=parseInt(t.style.width),s=parseInt(t.style.height),a=previewElm.clientWidth,r=previewElm.clientHeight,c=Math.min(a/o,r/s);t.style.width=`${o}px`,t.style.height=`${s}px`,t.style.transform=`scale(${c})`,t.style.marginTop=`-${s/2}px`,t.style.marginLeft=`-${o/2}px`}data.iframeSize=`${t.clientWidth}px x ${t.clientHeight}px`;let e=document.getElementById("iframeClientSize");e.classList.contains("hidden")&&(he&&clearTimeout(he),e.classList.remove("hidden","opacity-0"),e.classList.add("opacity-100"),he=setTimeout(()=>{e.classList.remove("opacity-100"),e.classList.add("opacity-0"),setTimeout(()=>{e.classList.add("hidden")},300)},2e3))};window.handleLogoChange=async t=>{let e=t.target.files[0];if(e)try{let o=await fileToBase64(e);project.logo=o}catch(o){console.error("Error converting image to base64:",o)}};window.fileToBase64=t=>new Promise((e,o)=>{let s=new FileReader;s.readAsDataURL(t),s.onload=()=>e(s.result),s.onerror=a=>o(a)});window.importJSON=(t,e=null)=>{t!==null&&(App.initialRender=!0,data.selectedLayerIds=[],project.name=t.name,project.version=t.version,project.title=t.title,project.description=t.description,project.author=t.author,project.url=t.url,project.logo=t.logo,project.dark=t.dark,project.pwa=t.pwa,project.activePanel=t.activePanel,project.meta=t.meta,project.libraries=t.libraries,project.css=t.css,project.html=t.html,t.components&&(project.components=t.components,collectComponents(project.html)),App.initialRender=null,collectSelectedIDs(project.html),App.render("#app"),renderPreview(!0),typeof e=="function"&&e())};window.newProject=()=>{let t={name:"App name",version:"0.0.1",title:"An attractive title",description:"The most attractive description ever!",author:"Polyrise",url:"https://michaelsboost.com/",meta:"",libraries:[],css:{rootVariables:{},styles:{},animations:{},breakpoints:{}},components:[],html:[],logo:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==",lang:"en",dark:!0,previewDark:!0,pwa:!1,activePanel:"layers"};Modal.render({title:"Are you sure you want to start a new project?",content:`
    All current data will be lost.
    \u2728 Click the image to start with a template! \u{1F680}
    -
    `,onLoad(){document.getElementById("starter-project").onclick=()=>{fetch("json/bootstrap-landing-page-demo.json").then(a=>a.json()).then(a=>{importJSON(a,()=>{document.querySelector("dialog[open]")&&document.querySelector("dialog[open]").querySelector("header > button:last-child").onclick(),document.querySelector("dialog[open]")&&document.querySelector("dialog[open]").querySelector("header > button:last-child").onclick()})}).catch(a=>{console.error("Error loading the starter project:",a)})}},onConfirm(){importJSON(t),data.menuDialog=null}})};window.emptyStorage=()=>{Modal.render({title:"Are you sure you want to empty storage?",content:'
    All current data will be lost.
    ',onConfirm(){localStorage.removeItem("Polyrise"),sessionStorage.removeItem("Polyrise"),document.cookie.split(";").forEach(function(t){t.trim().startsWith("Polyrise")&&(document.cookie=t.trim().split("=")[0]+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/")}),"caches"in window&&caches.keys().then(function(t){t.forEach(function(e){e==="Polyrise-cache"&&caches.delete(e)})}),"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then(function(t){t.forEach(function(e){e.scope.includes("Polyrise")&&e.unregister()})}),location.reload()}})};window.importProject=()=>{Modal.render({title:"Are you sure you want to load a new project?",content:'
    All current data will be lost.
    ',onClose:function(){data.menuDialog=!0},onConfirm:function(){let t=document.createElement("input");t.type="file",t.accept=".json",t.addEventListener("change",e=>{let a=e.target.files[0];if(!a){console.error("No file selected.");return}let o=new FileReader;o.onload=s=>{try{importJSON(JSON.parse(s.target.result))}catch(r){console.error("Error parsing JSON file:",r)}},o.readAsText(a),t.remove()}),t.click()}})};window.getFileNameAndType=t=>{let e=t.substring(t.lastIndexOf("/")+1),a=e.split(".").pop().toLowerCase(),s={jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",gif:"image/gif",bmp:"image/bmp",webp:"image/webp",svg:"image/svg+xml",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",mp4:"video/mp4",webm:"video/webm",ogv:"video/ogg"}[a]||"application/octet-stream";return{fileName:e,fileType:s}};window.fetchResources=t=>{try{let n=function(x){return x.startsWith("data:")&&x.includes("base64,")},c=function(x){let b=x.match(/^data:(.*);base64,/);if(b){let m=b[1];return p(m)}return"unknown"},p=function(x){return{"image/jpeg":"jpg","image/png":"png","image/gif":"gif","image/svg+xml":"svg","image/webp":"webp","image/tiff":"tiff","image/bmp":"bmp","image/x-icon":"ico","audio/mpeg":"mp3","audio/wav":"wav","audio/ogg":"ogg","audio/aac":"aac","audio/webm":"webm","audio/flac":"flac","video/mp4":"mp4","video/webm":"webm","video/ogg":"ogv","video/avi":"avi","video/mpeg":"mpg","video/quicktime":"mov","video/x-msvideo":"avi","video/x-matroska":"mkv",unknown:"bin"}[x]||"bin"},d=function(x){return x.substring(x.lastIndexOf("/")+1)},f=function(){return`file-${l++}`},y=function(x){let b=[],m=/background-image\s*:\s*url\(([^)]+)\)/g,g;for(;(g=m.exec(x))!==null;){let I=g[1].replace(/['"]/g,"");if(n(I)){let T=c(I),z=`${f()}.${T}`;o.push({url:I,fileName:z}),x=x.replace(I,`../imgs/${z}`)}else{let T=d(I);o.push({url:I,fileName:T}),x=x.replace(I,`../imgs/${T}`)}b.push(I)}return x},e=new DOMParser().parseFromString(json2html(t.html),"text/html"),a=e.body,o=[],s=[],r=[],i=[],l=1;a.querySelectorAll("img").forEach(x=>{if(x.hasAttribute("src")){let b=x.getAttribute("src");if(n(b)){let m=c(b),g=`${f()}.${m}`;o.push({url:b,fileName:g}),x.src=`imgs/${g}`}else{let m=d(b);o.push({url:b,fileName:m}),x.src=`imgs/${getFileNameAndType(b).fileName}`}}x.hasAttribute("srcset")&&x.srcset.split(",").forEach(b=>{let m=b.trim().split(" ")[0];if(n(m)){let g=c(src),I=`${f()}.${g}`;o.push({url:m,fileName:I}),x.src=`imgs/${I}`}else{let g=d(m);o.push({url:m,fileName:g}),x.src=`imgs/${getFileNameAndType(x.getAttribute("src")).fileName}`}})}),a.querySelectorAll("audio").forEach(x=>{x.querySelectorAll("source").forEach(b=>{if(b.hasAttribute("src")){let m=b.getAttribute("src");if(n(m)){let g=c(m),I=`${f()}.${g}`;s.push({url:m,fileName:I}),b.src=`audios/${I}`}else{let g=d(m);s.push({url:m,fileName:g}),b.src=`audios/${getFileNameAndType(m).fileName}`}}})}),a.querySelectorAll("svg").forEach(x=>{r.push({content:x.outerHTML,fileName:`vector-${r.length+1}.svg`})}),a.querySelectorAll("video").forEach(x=>{x.querySelectorAll("source").forEach(b=>{if(b.hasAttribute("src")){let m=b.getAttribute("src");if(n(m)){let g=c(m),I=`${f()}.${g}`;i.push({url:m,fileName:I}),b.src=`vids/${I}`}else{let g=d(m);i.push({url:m,fileName:g}),b.src=`vids/${getFileNameAndType(m).fileName}`}}})});let u=json2css(t.css)||"",w=y(u);return a.querySelectorAll("style").forEach(x=>x.remove()),{html:e.body.innerHTML,stylesObj:w,imageResources:o,audioResources:s,vectorResources:r,videoResources:i}}catch(e){return console.error("Error fetching resources:",e),null}};window.getBase64Media=async t=>{let a=await(await fetch(t)).blob();return new Promise((o,s)=>{let r=new FileReader;r.onloadend=()=>o(r.result.split(",")[1]),r.onerror=s,r.readAsDataURL(a)})};window.renderStyles=t=>{let e="";e+=`:root { -`;for(let[a,o]of Object.entries(t.rootVariables||{}))e+=` --${a}: ${o}; + `,onLoad(){document.getElementById("starter-project").onclick=()=>{fetch("json/bootstrap-landing-page-demo.json").then(o=>o.json()).then(o=>{importJSON(o,()=>{document.querySelector("dialog[open]")&&document.querySelector("dialog[open]").querySelector("header > button:last-child").onclick(),document.querySelector("dialog[open]")&&document.querySelector("dialog[open]").querySelector("header > button:last-child").onclick()})}).catch(o=>{console.error("Error loading the starter project:",o)})}},onConfirm(){importJSON(t),data.menuDialog=null}})};window.emptyStorage=()=>{Modal.render({title:"Are you sure you want to empty storage?",content:'
    All current data will be lost.
    ',onConfirm(){localStorage.removeItem("Polyrise"),sessionStorage.removeItem("Polyrise"),document.cookie.split(";").forEach(function(t){t.trim().startsWith("Polyrise")&&(document.cookie=t.trim().split("=")[0]+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/")}),"caches"in window&&caches.keys().then(function(t){t.forEach(function(e){e==="Polyrise-cache"&&caches.delete(e)})}),"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then(function(t){t.forEach(function(e){e.scope.includes("Polyrise")&&e.unregister()})}),location.reload()}})};window.clearAllStorage=()=>{localStorage.clear(),sessionStorage.clear(),document.cookie.split(";").forEach(function(t){let e=t.split("=")[0].trim();document.cookie=e+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/"}),"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then(function(t){t.forEach(function(e){e.unregister()})}),"caches"in window&&caches.keys().then(function(t){t.forEach(function(e){caches.delete(e)})}),location.reload()};window.importProject=()=>{Modal.render({title:"Are you sure you want to load a new project?",content:'
    All current data will be lost.
    ',onClose:function(){data.menuDialog=!0},onConfirm:function(){let t=document.createElement("input");t.type="file",t.accept=".json",t.addEventListener("change",e=>{let o=e.target.files[0];if(!o){console.error("No file selected.");return}let s=new FileReader;s.onload=a=>{try{importJSON(JSON.parse(a.target.result))}catch(r){console.error("Error parsing JSON file:",r)}},s.readAsText(o),t.remove()}),t.click()}})};window.getFileNameAndType=t=>{let e=t.substring(t.lastIndexOf("/")+1),o=e.split(".").pop().toLowerCase(),a={jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",gif:"image/gif",bmp:"image/bmp",webp:"image/webp",svg:"image/svg+xml",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",mp4:"video/mp4",webm:"video/webm",ogv:"video/ogg"}[o]||"application/octet-stream";return{fileName:e,fileType:a}};window.fetchResources=t=>{try{let i=function(z){return z.startsWith("data:")&&z.includes("base64,")},f=function(z){let A=z.match(/^data:(.*);base64,/);if(A){let x=A[1];return b(x)}return"unknown"},b=function(z){return{"image/jpeg":"jpg","image/png":"png","image/gif":"gif","image/svg+xml":"svg","image/webp":"webp","image/tiff":"tiff","image/bmp":"bmp","image/x-icon":"ico","audio/mpeg":"mp3","audio/wav":"wav","audio/ogg":"ogg","audio/aac":"aac","audio/webm":"webm","audio/flac":"flac","video/mp4":"mp4","video/webm":"webm","video/ogg":"ogv","video/avi":"avi","video/mpeg":"mpg","video/quicktime":"mov","video/x-msvideo":"avi","video/x-matroska":"mkv",unknown:"bin"}[z]||"bin"},g=function(z){return z.substring(z.lastIndexOf("/")+1)},$=function(){return`file-${l++}`},E=function(z){let A=[],x=/background-image\s*:\s*url\(([^)]+)\)/g,k;for(;(k=x.exec(z))!==null;){let V=k[1].replace(/['"]/g,"");if(i(V)){let _=f(V),F=`${$()}.${_}`;s.push({url:V,fileName:F}),z=z.replace(V,`../imgs/${F}`)}else{let _=g(V);s.push({url:V,fileName:_}),z=z.replace(V,`../imgs/${_}`)}A.push(V)}return z},e=new DOMParser().parseFromString(json2html(t.html),"text/html"),o=e.body,s=[],a=[],r=[],c=[],l=1;o.querySelectorAll("img").forEach(z=>{if(z.hasAttribute("src")){let A=z.getAttribute("src");if(i(A)){let x=f(A),k=`${$()}.${x}`;s.push({url:A,fileName:k}),z.src=`imgs/${k}`}else{let x=g(A);s.push({url:A,fileName:x}),z.src=`imgs/${getFileNameAndType(A).fileName}`}}z.hasAttribute("srcset")&&z.srcset.split(",").forEach(A=>{let x=A.trim().split(" ")[0];if(i(x)){let k=f(src),V=`${$()}.${k}`;s.push({url:x,fileName:V}),z.src=`imgs/${V}`}else{let k=g(x);s.push({url:x,fileName:k}),z.src=`imgs/${getFileNameAndType(z.getAttribute("src")).fileName}`}})}),o.querySelectorAll("audio").forEach(z=>{z.querySelectorAll("source").forEach(A=>{if(A.hasAttribute("src")){let x=A.getAttribute("src");if(i(x)){let k=f(x),V=`${$()}.${k}`;a.push({url:x,fileName:V}),A.src=`audios/${V}`}else{let k=g(x);a.push({url:x,fileName:k}),A.src=`audios/${getFileNameAndType(x).fileName}`}}})}),o.querySelectorAll("svg").forEach(z=>{r.push({content:z.outerHTML,fileName:`vector-${r.length+1}.svg`})}),o.querySelectorAll("video").forEach(z=>{z.querySelectorAll("source").forEach(A=>{if(A.hasAttribute("src")){let x=A.getAttribute("src");if(i(x)){let k=f(x),V=`${$()}.${k}`;c.push({url:x,fileName:V}),A.src=`vids/${V}`}else{let k=g(x);c.push({url:x,fileName:k}),A.src=`vids/${getFileNameAndType(x).fileName}`}}})});let w=json2css(t.css)||"",L=E(w);return o.querySelectorAll("style").forEach(z=>z.remove()),{html:e.body.innerHTML,stylesObj:L,imageResources:s,audioResources:a,vectorResources:r,videoResources:c}}catch(e){return console.error("Error fetching resources:",e),null}};window.getBase64Media=async t=>{let o=await(await fetch(t)).blob();return new Promise((s,a)=>{let r=new FileReader;r.onloadend=()=>s(r.result.split(",")[1]),r.onerror=a,r.readAsDataURL(o)})};window.renderStyles=t=>{let e="";e+=`:root { +`;for(let[o,s]of Object.entries(t.rootVariables||{}))e+=` --${o}: ${s}; `;e+=`} -`;for(let[a,o]of Object.entries(t.styles)){if(!o||!Object.keys(o.variables||{}).length&&!Object.keys(o.base||{}).length&&!Object.keys(o.pseudos||{}).length&&!Object.keys(o.animations||{}).length&&!Object.keys(o.breakpoints||{}).length)continue;let s=o.variables||{},r=o.base||{},i=o.pseudos||[],l=o.animations||{},n=o.breakpoints||{};a==="html"||a==="body"?e+=`${a} { -`:e+=`.${a} { -`;for(let[c,p]of Object.entries(s))e+=` --${c}: ${p}; -`;for(let[c,p]of Object.entries(r))e+=` ${c}: ${p}; +`;for(let[o,s]of Object.entries(t.styles)){if(!s||!Object.keys(s.variables||{}).length&&!Object.keys(s.base||{}).length&&!Object.keys(s.pseudos||{}).length&&!Object.keys(s.animations||{}).length&&!Object.keys(s.breakpoints||{}).length)continue;let a=s.variables||{},r=s.base||{},c=s.pseudos||[],l=s.animations||{},i=s.breakpoints||{};o==="html"||o==="body"?e+=`${o} { +`:e+=`.${o} { +`;for(let[f,b]of Object.entries(a))e+=` --${f}: ${b}; +`;for(let[f,b]of Object.entries(r))e+=` ${f}: ${b}; `;e+=`} -`;for(let{selector:c,styles:p}of i){e+=`.${a}${c} { -`;for(let[d,f]of Object.entries(p))e+=` ${d}: ${f}; +`;for(let{selector:f,styles:b}of c){e+=`.${o}${f} { +`;for(let[g,$]of Object.entries(b))e+=` ${g}: ${$}; `;e+=`} -`}for(let[c,p]of Object.entries(l)){e+=`@keyframes ${c} { -`;for(let[d,f]of Object.entries(p.keyframes)){e+=` ${d} { -`;for(let[y,u]of Object.entries(f))e+=` ${y}: ${u}; +`}for(let[f,b]of Object.entries(l)){e+=`@keyframes ${f} { +`;for(let[g,$]of Object.entries(b.keyframes)){e+=` ${g} { +`;for(let[E,w]of Object.entries($))e+=` ${E}: ${w}; `;e+=` } `}e+=`} -`,e+=`.${a} { -`;for(let[d,f]of Object.entries(p.properties))e+=` ${d}: ${f}; +`,e+=`.${o} { +`;for(let[g,$]of Object.entries(b.properties))e+=` ${g}: ${$}; `;e+=`} -`}for(let[c,p]of Object.entries(n)){e+=`@media (max-width: ${c}) { -`,e+=` .${a} { -`;for(let[d,f]of Object.entries(p.variables||{}))e+=` --${d}: ${f}; -`;for(let[d,f]of Object.entries(p.base||{}))e+=` ${d}: ${f}; +`}for(let[f,b]of Object.entries(i)){e+=`@media (max-width: ${f}) { +`,e+=` .${o} { +`;for(let[g,$]of Object.entries(b.variables||{}))e+=` --${g}: ${$}; +`;for(let[g,$]of Object.entries(b.base||{}))e+=` ${g}: ${$}; `;e+=` } -`;for(let{selector:d,styles:f}of p.pseudos||[]){e+=` .${a}${d} { -`;for(let[y,u]of Object.entries(f))e+=` ${y}: ${u}; +`;for(let{selector:g,styles:$}of b.pseudos||[]){e+=` .${o}${g} { +`;for(let[E,w]of Object.entries($))e+=` ${E}: ${w}; `;e+=` } `}e+=`} -`}}return e};window.downloadJSON=async()=>{try{await loadScript("libraries/jszip/FileSaver.min.js");let t=new Blob([JSON.stringify(project,null,2)],{type:"application/json"});saveAs(t,`${project.name.split(" ").join("").toLowerCase()}-Polyrise.json`)}catch(t){console.error("Error:",t)}finally{removeScript("libraries/jszip/FileSaver.min.js")}};window.downloadQuickCommands=()=>{let t={black:"#000000",white:"#ffffff","gray-50":"#f9fafb","gray-100":"#f3f4f6","gray-200":"#e5e7eb","gray-300":"#d1d5db","gray-400":"#9ca3af","gray-500":"#6b7280","gray-600":"#4b5563","gray-700":"#374151","gray-800":"#1f2937","gray-900":"#111827","red-50":"#fef2f2","red-100":"#fee2e2","red-200":"#fecaca","red-300":"#fca5a5","red-400":"#f87171","red-500":"#ef4444","red-600":"#dc2626","red-700":"#b91c1c","red-800":"#991b1b","red-900":"#7f1d1d","yellow-50":"#fefce8","yellow-100":"#fef9c3","yellow-200":"#fef08a","yellow-300":"#fde047","yellow-400":"#facc15","yellow-500":"#eab308","yellow-600":"#ca8a04","yellow-700":"#a16207","yellow-800":"#854d0e","yellow-900":"#713f12","green-50":"#f0fdf4","green-100":"#dcfce7","green-200":"#bbf7d0","green-300":"#86efac","green-400":"#4ade80","green-500":"#22c55e","green-600":"#16a34a","green-700":"#15803d","green-800":"#166534","green-900":"#14532d","blue-50":"#eff6ff","blue-100":"#dbeafe","blue-200":"#bfdbfe","blue-300":"#93c5fd","blue-400":"#60a5fa","blue-500":"#3b82f6","blue-600":"#2563eb","blue-700":"#1d4ed8","blue-800":"#1e40af","blue-900":"#1e3a8a","indigo-50":"#eef2ff","indigo-100":"#e0e7ff","indigo-200":"#c7d2fe","indigo-300":"#a5b4fc","indigo-400":"#818cf8","indigo-500":"#6366f1","indigo-600":"#4f46e5","indigo-700":"#4338ca","indigo-800":"#3730a3","indigo-900":"#312e81","purple-50":"#f5f3ff","purple-100":"#ede9fe","purple-200":"#ddd6fe","purple-300":"#c4b5fd","purple-400":"#a78bfa","purple-500":"#8b5cf6","purple-600":"#7c3aed","purple-700":"#6d28d9","purple-800":"#5b21b6","purple-900":"#4c1d95","pink-50":"#fdf2f8","pink-100":"#fce7f3","pink-200":"#fbcfe8","pink-300":"#f9a8d4","pink-400":"#f472b6","pink-500":"#ec4899","pink-600":"#db2777","pink-700":"#be185d","pink-800":"#9d174d","pink-900":"#831843"};function e(a){let o={};for(let[s,r]of Object.entries(a))if(s.startsWith("border-")&&!s.includes("-opacity")){let i=s.split("-").slice(1).join("-"),l=t[i]||"transparent";o[s]=`--tw-border-opacity: 1; border-top-color: ${l}; border-right-color: ${l}; border-bottom-color: ${l}; border-left-color: ${l};`}else o[s]=r;return o}window.saveAsJson=async(a,o)=>{try{await loadScript("libraries/jszip/FileSaver.min.js");let s=new Blob([JSON.stringify(a,null,2)],{type:"application/json"});saveAs(s,o)}catch(s){console.error("Error:",s)}finally{removeScript("libraries/jszip/FileSaver.min.js")}},generateCssQuickCommands("libraries/tailwind/tailwind-mod.min.css").then(a=>{let o=e(a);saveAsJson(o,"cssQuickCommands.json")})};window.getFile=async(t,e=null)=>{try{let a=await fetch(t);if(!a.ok)throw new Error("Network response was not ok");let o=await a.text();if(e&&typeof e=="function")e(null,o);else return o}catch(a){if(console.warn("Request error:",a),e&&typeof e=="function")e(a,null);else throw a}};window.minifyCSS=t=>{t=String(t);let e=t.replace(/\/\*[\s\S]*?\*\//g,"");return e=e.replace(/\s{2,}/g," ").replace(/\n/g,""),e=e.replace(/\s*([{}:;])\s*/g,"$1"),e=e.replace(/;}/g,"}"),e};window.downloadProject=async()=>{try{await loadScripts(["libraries/jszip/jszip.min.js","libraries/jszip/FileSaver.min.js"]);let t=document.getElementById("iframe");if(!t)return;let e=t.contentDocument||t.contentWindow.document,{html:a,stylesObj:o,imageResources:s,audioResources:r,vectorResources:i,videoResources:l}=fetchResources(project),n=new JSZip;n.file(`${project.name.split(" ").join("").toLowerCase()}-Polyrise.json`,JSON.stringify(project,null,2));let c={name:project.name,version:project.version,title:project.title,description:project.description,author:project.author,url:project.url,meta:project.meta,libraries:project.libraries,html_pre_processor:"html",css_pre_processor:"css",javascript_pre_processor:"javascript",html:json2html(project.html),css:json2css(project.css),javascript:"",logo:project.logo,console:!1,dark:project.dark,module:!0,autorun:!0,pwa:project.pwa,preview:!0,activePanel:"html",columns:!1,columnsRight:!0};n.file(`${project.name.split(" ").join("").toLowerCase()}-kodeWeave.json`,JSON.stringify(c,null,2));let p=`The MIT License (MIT) +`}}return e};window.downloadJSON=async()=>{try{await loadScript("libraries/jszip/FileSaver.min.js");let t=new Blob([JSON.stringify(project,null,2)],{type:"application/json"});saveAs(t,`${project.name.split(" ").join("").toLowerCase()}-Polyrise.json`)}catch(t){console.error("Error:",t)}finally{removeScript("libraries/jszip/FileSaver.min.js")}};window.downloadQuickCommands=()=>{let t={black:"#000000",white:"#ffffff","gray-50":"#f9fafb","gray-100":"#f3f4f6","gray-200":"#e5e7eb","gray-300":"#d1d5db","gray-400":"#9ca3af","gray-500":"#6b7280","gray-600":"#4b5563","gray-700":"#374151","gray-800":"#1f2937","gray-900":"#111827","red-50":"#fef2f2","red-100":"#fee2e2","red-200":"#fecaca","red-300":"#fca5a5","red-400":"#f87171","red-500":"#ef4444","red-600":"#dc2626","red-700":"#b91c1c","red-800":"#991b1b","red-900":"#7f1d1d","yellow-50":"#fefce8","yellow-100":"#fef9c3","yellow-200":"#fef08a","yellow-300":"#fde047","yellow-400":"#facc15","yellow-500":"#eab308","yellow-600":"#ca8a04","yellow-700":"#a16207","yellow-800":"#854d0e","yellow-900":"#713f12","green-50":"#f0fdf4","green-100":"#dcfce7","green-200":"#bbf7d0","green-300":"#86efac","green-400":"#4ade80","green-500":"#22c55e","green-600":"#16a34a","green-700":"#15803d","green-800":"#166534","green-900":"#14532d","blue-50":"#eff6ff","blue-100":"#dbeafe","blue-200":"#bfdbfe","blue-300":"#93c5fd","blue-400":"#60a5fa","blue-500":"#3b82f6","blue-600":"#2563eb","blue-700":"#1d4ed8","blue-800":"#1e40af","blue-900":"#1e3a8a","indigo-50":"#eef2ff","indigo-100":"#e0e7ff","indigo-200":"#c7d2fe","indigo-300":"#a5b4fc","indigo-400":"#818cf8","indigo-500":"#6366f1","indigo-600":"#4f46e5","indigo-700":"#4338ca","indigo-800":"#3730a3","indigo-900":"#312e81","purple-50":"#f5f3ff","purple-100":"#ede9fe","purple-200":"#ddd6fe","purple-300":"#c4b5fd","purple-400":"#a78bfa","purple-500":"#8b5cf6","purple-600":"#7c3aed","purple-700":"#6d28d9","purple-800":"#5b21b6","purple-900":"#4c1d95","pink-50":"#fdf2f8","pink-100":"#fce7f3","pink-200":"#fbcfe8","pink-300":"#f9a8d4","pink-400":"#f472b6","pink-500":"#ec4899","pink-600":"#db2777","pink-700":"#be185d","pink-800":"#9d174d","pink-900":"#831843"};function e(o){let s={};for(let[a,r]of Object.entries(o))if(a.startsWith("border-")&&!a.includes("-opacity")){let c=a.split("-").slice(1).join("-"),l=t[c]||"transparent";s[a]=`--tw-border-opacity: 1; border-top-color: ${l}; border-right-color: ${l}; border-bottom-color: ${l}; border-left-color: ${l};`}else s[a]=r;return s}window.saveAsJson=async(o,s)=>{try{await loadScript("libraries/jszip/FileSaver.min.js");let a=new Blob([JSON.stringify(o,null,2)],{type:"application/json"});saveAs(a,s)}catch(a){console.error("Error:",a)}finally{removeScript("libraries/jszip/FileSaver.min.js")}},generateCssQuickCommands("libraries/tailwind/tailwind-mod.min.css").then(o=>{let s=e(o);saveAsJson(s,"cssQuickCommands.json")})};window.getFile=async(t,e=null)=>{try{let o=await fetch(t);if(!o.ok)throw new Error("Network response was not ok");let s=await o.text();if(e&&typeof e=="function")e(null,s);else return s}catch(o){if(console.warn("Request error:",o),e&&typeof e=="function")e(o,null);else throw o}};window.minifyCSS=t=>{t=String(t);let e=t.replace(/\/\*[\s\S]*?\*\//g,"");return e=e.replace(/\s{2,}/g," ").replace(/\n/g,""),e=e.replace(/\s*([{}:;])\s*/g,"$1"),e=e.replace(/;}/g,"}"),e};window.downloadProject=async()=>{try{await loadScripts(["libraries/jszip/jszip.min.js","libraries/jszip/FileSaver.min.js"]);let t=document.getElementById("iframe");if(!t)return;let e=t.contentDocument||t.contentWindow.document,{html:o,stylesObj:s,imageResources:a,audioResources:r,vectorResources:c,videoResources:l}=fetchResources(project),i=new JSZip;i.file(`${project.name.split(" ").join("").toLowerCase()}-Polyrise.json`,JSON.stringify(project,null,2));let f={name:project.name,version:project.version,title:project.title,description:project.description,author:project.author,url:project.url,meta:project.meta,libraries:project.libraries,html_pre_processor:"html",css_pre_processor:"css",javascript_pre_processor:"javascript",html:json2html(project.html),css:json2css(project.css),javascript:"",logo:project.logo,console:!1,dark:project.dark,module:!0,autorun:!0,pwa:project.pwa,preview:!0,activePanel:"html",columns:!1,columnsRight:!0};i.file(`${project.name.split(" ").join("").toLowerCase()}-kodeWeave.json`,JSON.stringify(f,null,2));let b=`The MIT License (MIT) Copyright (c) ${new Date().getFullYear()} ${project.author} Permission is hereby granted, free of charge, to any person obtaining a copy @@ -2482,28 +2539,28 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE.`;n.file("LICENSE.md",p);let d=`# ${project.name} +SOFTWARE.`;i.file("LICENSE.md",b);let g=`# ${project.name} **Description:** ${project.description} -**Built With ${N.name}!** -This site was made with [${N.name}](https://michaelsboost.com/${N.name.toString().split(" ").join("-")}/). +**Built With ${Q.name}!** +This site was made with [${Q.name}](https://michaelsboost.com/${Q.name.toString().split(" ").join("-")}/). -**${N.name} Description:** -${N.summary} ${N.description} +**${Q.name} Description:** +${Q.summary} ${Q.description} **Website:** -[${N.name}](https://michaelsboost.com/${N.name.toString().split(" ").join("-")}/)`;n.file("README.md",d);let f="",y=[],u="",k=null,w=project.libraries.map(async A=>{if(!A.endsWith([".css",".js"]))return!1;let B=await getFile(A),F=A.split("/"),D=F[F.length-1];D==="tailwind-mod-noreset.min.js"&&(k=!0),D.endsWith(".css")&&(f+=B+` -`,y.push(D),u+=`libraries/${D} `,n.folder("libraries").file(D,B)),D.endsWith(".js")&&n.folder("libraries").file(D,B)});await Promise.all(w);let x="",b="",m="",g="",I="",T="";e.getElementById("vyhibnq91")&&(m=!0,g=` - ${k?"":"@tailwind base;"} +[${Q.name}](https://michaelsboost.com/${Q.name.toString().split(" ").join("-")}/)`;i.file("README.md",g);let $="",E=[],w="",H=null,L=project.libraries.map(async d=>{if(!d.endsWith([".css",".js"]))return!1;let y=await getFile(d),u=d.split("/"),h=u[u.length-1];h==="tailwind-mod-noreset.min.js"&&(H=!0),h.endsWith(".css")&&($+=y+` +`,E.push(h),w+=`libraries/${h} `,i.folder("libraries").file(h,y)),h.endsWith(".js")&&i.folder("libraries").file(h,y)});await Promise.all(L);let z="",A="",x="",k="",V="",_="";e.getElementById("vyhibnq91")&&(x=!0,k=` + ${H?"":"@tailwind base;"} @tailwind components; @tailwind utilities; -`,m?(y.map(async A=>{T+=`@import '../libraries/${A}'; -`}),T+=g):T=f,I=e.getElementById("vyhibnq91").textContent);let z=Array.from(e.body.querySelectorAll("style")).map(A=>A.textContent).join(` -`),O=o+z;I&&(O+=I),f?(b=` - `,x='"build:css": "postcss src/bundle.css -o dist/bundle.css",',n.file("src/bundle.css",T+O),n.file("dist/bundle.css",minifyCSS(f+I+O))):(b=` - `,x='"build:css": "postcss src/bundle.css -o dist/bundle.css",',n.file("src/bundle.css",O),n.file("dist/bundle.css",minifyCSS(O))),m&&n.file("tailwind.config.js",`module.exports = { +`,x?(E.map(async d=>{_+=`@import '../libraries/${d}'; +`}),_+=k):_=$,V=e.getElementById("vyhibnq91").textContent);let F=Array.from(e.body.querySelectorAll("style")).map(d=>d.textContent).join(` +`),W=s+F;V&&(W+=V),$?(A=` + `,z='"build:css": "postcss src/bundle.css -o dist/bundle.css",',i.file("src/bundle.css",_+W),i.file("dist/bundle.css",minifyCSS($+V+W))):(A=` + `,z='"build:css": "postcss src/bundle.css -o dist/bundle.css",',i.file("src/bundle.css",W),i.file("dist/bundle.css",minifyCSS(W))),x&&i.file("tailwind.config.js",`module.exports = { content: [ './**/*.html', './src/**/*.js', @@ -2512,10 +2569,10 @@ ${N.summary} ${N.description} extend: {}, }, plugins: [], -};`);let W=`module.exports = { +};`);let X=`module.exports = { plugins: [ require('postcss-import'), - require('autoprefixer'),${m?` + require('autoprefixer'),${x?` require('tailwindcss'),`:""} require('cssnano')({ preset: ['default', { @@ -2523,7 +2580,7 @@ ${N.summary} ${N.description} }], }), ], -};`;n.file("postcss.config.cjs",W);let U=`{ +};`;i.file("postcss.config.cjs",X);let ee=`{ "name": "${project.name.split(" ").join("").toLowerCase()}", "private": true, "version": "${project.version}", @@ -2537,10 +2594,10 @@ ${N.summary} ${N.description} "autoprefixer": "^10.4.19", "cssnano": "^7.0.2", "postcss": "^8.4.38", - "postcss-import": "^16.1.0"${m?`, + "postcss-import": "^16.1.0"${x?`, "tailwindcss": "^3.4.4"`:""} } -}`;if(n.file("package.json",U),project.logo)try{let A="";project.logo.startsWith("data:")?A=project.logo:A=await getBase64Media(project.logo);let B;if(project.logo.startsWith("data:image/png"))B="png";else if(project.logo.startsWith("data:image/jpeg"))B="jpeg";else if(project.logo.startsWith("data:image/svg+xml"))B="svg";else{console.error("Unsupported logo MIME type:",project.logo);return}let F=`logo.${B}`;n.folder("imgs").file(F,A.split(",")[1],{base64:!0});let D=["192x192","256x256","384x384","512x512"],se=D.map(G=>({src:`./imgs/logo-${G}.png`,sizes:G,type:"image/png",purpose:"any"})),re=G=>new Promise((pe,h)=>{let j=document.createElement("canvas");j.width=parseInt(G.split("x")[0]),j.height=parseInt(G.split("x")[1]);let C=j.getContext("2d"),$=new Image;$.src=A,$.onload=function(){C.drawImage($,0,0,j.width,j.height);let S=j.toDataURL("image/png").replace(/^data:image\/png;base64,/,"");n.folder("imgs").file(`logo-${G}.png`,S,{base64:!0}),pe()},$.onerror=h,j.remove()});await Promise.all(D.map(re)),n.file("manifest.json",JSON.stringify({theme_color:"#13171f",background_color:"#13171f",display:"standalone",start_url:"./index.html",lang:"en-US",name:project.name,short_name:project.name,description:project.description,icons:se},null,2))}catch(A){console.error("Error adding logo to ZIP:",A);return}let V="";if(project.pwa){V=` +}`;if(i.file("package.json",ee),project.logo)try{let d="";project.logo.startsWith("data:")?d=project.logo:d=await getBase64Media(project.logo);let y;if(project.logo.startsWith("data:image/png"))y="png";else if(project.logo.startsWith("data:image/jpeg"))y="jpeg";else if(project.logo.startsWith("data:image/svg+xml"))y="svg";else{console.error("Unsupported logo MIME type:",project.logo);return}let u=`logo.${y}`;i.folder("imgs").file(u,d.split(",")[1],{base64:!0});let h=["192x192","256x256","384x384","512x512"],T=h.map(I=>({src:`./imgs/logo-${I}.png`,sizes:I,type:"image/png",purpose:"any"})),B=I=>new Promise((O,m)=>{let C=document.createElement("canvas");C.width=parseInt(I.split("x")[0]),C.height=parseInt(I.split("x")[1]);let S=C.getContext("2d"),v=new Image;v.src=d,v.onload=function(){S.drawImage(v,0,0,C.width,C.height);let P=C.toDataURL("image/png").replace(/^data:image\/png;base64,/,"");i.folder("imgs").file(`logo-${I}.png`,P,{base64:!0}),O()},v.onerror=m,C.remove()});await Promise.all(h.map(B)),i.file("manifest.json",JSON.stringify({theme_color:"#13171f",background_color:"#13171f",display:"standalone",start_url:"./index.html",lang:"en-US",name:project.name,short_name:project.name,description:project.description,icons:T},null,2))}catch(d){console.error("Error adding logo to ZIP:",d);return}let Y="";if(project.pwa){Y=` \n `;\n const swjs = `// Service worker code\nimportScripts('https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js');\n\nconst { registerRoute } = workbox.routing;\nconst { CacheFirst } = workbox.strategies;\n\nconst cacheName = '${project.name.split(' ').join('')}-cache';\n\nworkbox.routing.registerRoute(\n ({ request }) => request.destination === 'script' ||\n request.destination === 'style' ||\n request.destination === 'document' ||\n request.destination === 'image' ||\n request.destination === 'font' ||\n request.destination === 'audio' ||\n request.destination === 'video',\n new CacheFirst({\n cacheName: cacheName,\n plugins: [\n // Any additional plugins can be added here\n ],\n })\n);`\n zip.file(\"sw.js\", swjs);\n }\n\n // Save audio files to ZIP\n if (audioResources.length > 0) {\n const audioFolder = zip.folder('audios');\n try {\n for (const { url, fileName } of audioResources) {\n const base64Audio = await getBase64Media(url);\n audioFolder.file(fileName, base64Audio, { base64: true });\n }\n } catch (error) {\n console.error('Error adding audio to ZIP:', error);\n return;\n }\n }\n\n // Save image files to ZIP\n if (imageResources.length > 0) {\n try {\n for (const { url, fileName } of imageResources) {\n const base64Image = await getBase64Media(url);\n zip.folder('imgs').file(fileName, base64Image, { base64: true });\n }\n } catch (error) {\n console.error('Error adding images to ZIP:', error);\n return;\n }\n }\n\n // Save SVG files to ZIP\n if (vectorResources.length > 0) {\n const svgFolder = zip.folder('svgs');\n try {\n for (const { content, fileName } of vectorResources) {\n svgFolder.file(fileName, content);\n }\n } catch (error) {\n console.error('Error adding SVGs to ZIP:', error);\n return;\n }\n }\n\n // Save video files to ZIP\n if (videoResources.length > 0) {\n const videoFolder = zip.folder('vids');\n try {\n for (const { url, fileName } of videoResources) {\n const base64Video = await getBase64Media(url);\n videoFolder.file(fileName, base64Video, { base64: true });\n }\n } catch (error) {\n console.error('Error adding videos to ZIP:', error);\n return;\n }\n }\n\n // Iterate over each library\n let scriptTags = '';\n let cssTags = '';\n project.libraries.forEach(library => {\n if (library.endsWith('.js')) {\n scriptTags += `\\n `;\n } else {\n // Assuming it's a Google font\n cssTags += `\\n `;\n }\n });\n \n // Add index.html\n const testHtmlContent = `\n\n \n ${project.title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${cssTags}${css4html}${project.meta ? `${project.meta}\\n ` : ''}${scriptTags ? scriptTags : ''}\n \n \n \n${json2html(project.html).replace(/]*>[\\s\\S]*?<\\/style>/gi, '')}\n\n \n`;\n zip.file('test.html', testHtmlContent);\n const indexHtmlContentCompiled = `\n\n \n ${project.title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${cssTags}${css4html}${project.meta ? `${project.meta}\\n ` : ''}${scriptTags ? scriptTags : ''}\n \n \n \n${html}\n\n${(project.pwa ? swinit : '')}\n\n \n`;\n zip.file('index.html', indexHtmlContentCompiled);\n\n // Generate the ZIP file\n const blob = await zip.generateAsync({ type: 'blob' });\n saveAs(blob, `${project.name.toLowerCase().split(' ').join('')}.zip`);\n \n // Clear all arrays after saving\n imageResources.length = audioResources.length = vectorResources.length = videoResources.length = 0;\n } catch (error) {\n console.error('Error:', error);\n } finally {\n // Clean up scripts after use\n const scriptsToRemove = [\n 'libraries/jszip/FileSaver.min.js',\n 'libraries/jszip/jszip.min.js'\n ];\n\n removeScripts(scriptsToRemove);\n }\n}\nwindow.share = async () => {\n try {\n if (navigator.onLine) {\n const shareProject = {\n title: project.title,\n description: project.description,\n head: project.meta,\n html: `\n \n${json2html(project.html)}`,\n html_pre_processor: \"none\",\n css: `/* This site was made with ${app.name}: ${app.summary} */\n\n${json2css(project.css)}`,\n css_pre_processor: \"none\",\n css_external: project.libraries.filter(lib => lib.endsWith('.css')).join(';'),\n css_starter: \"neither\",\n css_prefix: \"neither\",\n js_external: project.libraries.filter(lib => lib.endsWith('.js')).join(';'),\n editors: '111',\n layout: 'left'\n };\n\n // Stringify the JSON object and escape quotes\n const JSONstring = JSON.stringify(shareProject)\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n\n // Create form element\n const form = `\n \n \n \n `;\n\n // Append form to the document body and submit\n document.body.insertAdjacentHTML('beforeend', form);\n document.querySelector('form').submit();\n document.querySelector('form').remove();\n } else {\n Modal.render({\n title: \"Unable to share!\",\n content: `
    No internet connection!
    `\n });\n }\n } catch (error) {\n console.error('Error sharing project:', error);\n }\n}\nwindow.screenshot = async () => {\n const iframe = document.getElementById('iframe');\n const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;\n\n try {\n await loadScripts([\n \"libraries/html2canvas/html2canvas.min.js\",\n \"libraries/jszip/FileSaver.min.js\"\n ]);\n \n html2canvas(iframeDocument.documentElement).then(canvas => {\n const context = canvas.getContext('2d');\n const videoElements = iframeDocument.getElementsByTagName('video');\n\n // Draw video elements\n Array.from(videoElements).forEach(video => {\n const { currentTime, paused, volume } = video;\n\n // Set volume to 0 for the screenshot process\n video.volume = 0;\n\n // Draw the video frame\n if (!paused) video.pause();\n context.drawImage(video, video.offsetLeft, video.offsetTop, video.clientWidth, video.clientHeight);\n\n // Restore the original volume and playback state\n video.volume = volume;\n video.currentTime = currentTime;\n if (!paused) video.play();\n });\n\n // Convert canvas to Blob\n canvas.toBlob(blob => {\n // Save the Blob using FileSaver.js\n saveAs(blob, 'screenshot.png');\n }, 'image/png');\n }).catch(error => {\n console.error('Error taking screenshot:', error);\n });\n } catch (error) {\n console.error('Error:', error);\n } finally {\n // Clean up scripts after use\n removeScript(\"../libraries/html2canvas/html2canvas.min.js\");\n removeScript(\"../libraries/jszip/FileSaver.min.js\");\n }\n}\nwindow.renderPreview = (forceRun = false) => {\n const iframe = document.getElementById('iframe');\n if (!iframe) return;\n\n let scriptTags = '';\n let cssTags = '';\n project.libraries.forEach(library => {\n if (library.endsWith('.js')) {\n scriptTags += `\\n `;\n } else if (library.endsWith('.css')) {\n cssTags += `\\n `;\n } else {\n cssTags += `\\n `;\n }\n });\n\n let css = json2css(project.css);\n\n const iframeSrc = `\n \n ${project.title}\n \n \n \n \n ${project.meta ? project.meta : ''}\n ${cssTags}\n \n ${scriptTags ? scriptTags : ''}\n \n \n\n${json2html(project.html)}\n \n \n`;\n\n // Create a new temporary iframe to compare\n const parser = new DOMParser();\n const doc = parser.parseFromString(iframeSrc, 'text/html');\n const idoc = iframe.contentDocument || iframe.contentWindow.document;\n\n if (forceRun) {\n iframe.setAttribute('srcdoc', iframeSrc);\n } else {\n diffNodes(idoc.documentElement, doc.documentElement);\n }\n}\nwindow.detectOperatingSystem = () => {\n const userAgent = navigator.userAgent || navigator.platform;\n\n // Check for Mac OS\n const isMac = /Macintosh|MacIntel|MacPPC|Mac68K/.test(userAgent);\n\n // Check for Windows\n const isWindows = /Win32|Win64|Windows|WinCE/.test(userAgent);\n\n // Check for Linux\n const isLinux = /Linux/.test(userAgent) && !isWindows;\n\n if (isMac) {\n return 'Mac';\n } else if (isWindows) {\n return 'Windows';\n } else if (isLinux) {\n return 'Linux';\n } else {\n return 'unknown';\n }\n}\n\n// Diffing algorithm to update ui when changes occur\nwindow.diffNodes = (oldNode, newNode) => {\n if (!oldNode || !newNode) {\n return;\n }\n\n // Check for data-ignore attribute\n if (oldNode.hasAttribute && oldNode.hasAttribute('data-ignore') || \n newNode.hasAttribute && newNode.hasAttribute('data-ignore')) {\n return;\n }\n\n // Check if nodes are iframe elements\n if (oldNode.nodeName === 'IFRAME' && newNode.nodeName === 'IFRAME') {\n const acceptableIframeAttributes = ['id', 'title', 'class', 'style', 'sandbox'];\n // Compare acceptable attributes only\n acceptableIframeAttributes.forEach(attr => {\n if (oldNode.getAttribute(attr) !== newNode.getAttribute(attr)) {\n oldNode.setAttribute(attr, newNode.getAttribute(attr));\n }\n });\n\n const oldSrcdoc = oldNode.getAttribute('srcdoc');\n const newSrcdoc = newNode.getAttribute('srcdoc');\n // Ignore srcdoc attribute if it hasn't changed\n if (oldSrcdoc === newSrcdoc) return;\n return;\n }\n\n // If nodes are different types, replace the old node\n if (oldNode.nodeName !== newNode.nodeName) {\n oldNode.replaceWith(newNode.cloneNode(true));\n // console.log('Different node names:', oldNode, newNode);\n return;\n }\n\n // Diff the attributes of the nodes\n if (oldNode.nodeType === Node.ELEMENT_NODE && newNode.nodeType === Node.ELEMENT_NODE) {\n const oldAttributes = Array.from(oldNode.attributes);\n const newAttributes = Array.from(newNode.attributes);\n\n // Remove old attributes not present in the new node\n oldAttributes.forEach(attr => {\n if (!newNode.hasAttribute(attr.name)) {\n oldNode.removeAttribute(attr.name);\n }\n });\n\n // Add or update attributes from the new node\n newAttributes.forEach(attr => {\n if (oldNode.getAttribute(attr.name) !== attr.value) {\n oldNode.setAttribute(attr.name, attr.value);\n }\n });\n }\n\n const oldChildren = Array.from(oldNode.childNodes);\n const newChildren = Array.from(newNode.childNodes);\n\n // Update or remove existing child nodes\n oldChildren.forEach((oldChild, index) => {\n const newChild = newChildren[index];\n if (!newChild) {\n oldNode.removeChild(oldChild);\n return;\n }\n // Special handling for elements\n if (oldNode.tagName === 'TITLE' || oldNode.tagName === 'STYLE' && oldNode.textContent !== newNode.textContent) {\n oldNode.textContent = newNode.textContent;\n } else if (oldChild.nodeType === Node.TEXT_NODE && oldChild.nodeValue !== newChild.nodeValue) {\n oldChild.nodeValue = newChild.nodeValue;\n }\n diffNodes(oldChild, newChild);\n });\n\n // Add new child nodes\n newChildren.slice(oldChildren.length).forEach(newChild => {\n oldNode.appendChild(newChild.cloneNode(true));\n });\n}\n\n// Once dom has loaded init functions\ndocument.addEventListener('DOMContentLoaded', function() {\n window.onload = () => {\n App.render('#app');\n getIFrameClientSize();\n // URL to the JSON file\n const jsonFileUrl = 'cssQuickCommands.json';\n\n // Apply the CSS quick commands\n applyCssQuickCommands(jsonFileUrl);\n\n // Set the state to true when the Command/Shift key is down\n window.onkeydown = e => {\n const activeElement = document.activeElement;\n \n // Check if the active element is not an input, textarea, or contenteditable\n const isNonEditable = !['INPUT', 'TEXTAREA'].includes(activeElement.tagName) &&\n activeElement.getAttribute('contenteditable') !== 'true';\n \n if (isNonEditable) {\n const os = detectOperatingSystem();\n const isCmdPressed = os === 'Mac' && e.metaKey;\n const isCtrlPressed = os !== 'Mac' && e.ctrlKey;\n const isModifierPressed = isCmdPressed || isCtrlPressed;\n const isShiftPressed = e.shiftKey || e.key === \"Shift\";\n const isZKeyPressed = e.key.toLowerCase() === 'z';\n \n // Handle shortcut actions\n const handleShortcut = action => {\n e.preventDefault();\n action();\n return false;\n };\n\n // Update key states\n data.ctrlKey = isCtrlPressed;\n data.cmdKey = isCmdPressed;\n \n if (isModifierPressed) {\n if (isZKeyPressed) {\n if (isShiftPressed) {\n return handleShortcut(redo);\n }\n return handleShortcut(undo);\n }\n \n if (e.key.toLowerCase() === 'd') return handleShortcut(cloneLayers);\n if (e.key.toLowerCase() === 'x') return handleShortcut(cutLayers);\n if (e.key.toLowerCase() === 'c') return handleShortcut(copyLayers);\n if (e.key.toLowerCase() === 'v') return handleShortcut(pasteLayers);\n if (isShiftPressed && e.key.toLowerCase() === 'p') return handleShortcut(commandPalette);\n if (isShiftPressed && isModifierPressed && e.key.toLowerCase() === 'a') return handleShortcut(clearAllSelections);\n }\n \n // Update shift key state\n if (isShiftPressed) data.shiftKey = true;\n \n // Handle Escape key to close dialogs\n if (e.key === 'Escape') {\n e.preventDefault();\n const dialog = document.querySelector('dialog[open]');\n if (dialog) dialog.querySelector('header > button').onclick();\n return false;\n }\n }\n \n // Handle Escape key in editable elements\n if (['INPUT', 'TEXTAREA'].includes(activeElement.tagName) ||\n activeElement.getAttribute('contenteditable') === 'true') {\n if (e.key === 'Escape') {\n e.preventDefault();\n const dialog = document.querySelector('dialog[open]');\n if (dialog) dialog.querySelector('header > button').onclick();\n activeElement.blur();\n return false;\n }\n }\n };\n\n // Set the state to false when the Command/Shift key is up\n window.onkeyup = e => {\n e.key === \"Shift\" && (data.shiftKey = false);\n if (e.key === \"Control\" || e.key === \"ControlLeft\" || e.key === \"ControlRight\") data.ctrlKey = false;\n if (e.key === \"Command\" || e.key === \"Meta\") data.cmdKey = false;\n }\n\n if (localStorage.getItem('Polyrise')) {\n importJSON(JSON.parse(localStorage.getItem('Polyrise')));\n }\n window.onresize = () => getIFrameClientSize();\n };\n});"], - "mappings": "MACA,SAASA,GAAYC,EAAQC,EAAUC,EAAO,GAAI,CAChD,OAAI,OAAOF,GAAW,UAAYA,IAAW,KACpCA,EAGF,IAAI,MAAMA,EAAQ,CACvB,IAAIG,EAAKC,EAAM,CACb,IAAMC,EAAWH,EAAO,GAAGA,CAAI,IAAI,OAAOE,CAAI,CAAC,GAAK,OAAOA,CAAI,EACzDE,EAAQH,EAAIC,CAAI,EACtB,OAAOL,GAAYO,EAAOL,EAAUI,CAAQ,CAC9C,EAEA,IAAIF,EAAKC,EAAME,EAAO,CACpB,IAAMD,EAAWH,EAAO,GAAGA,CAAI,IAAI,OAAOE,CAAI,CAAC,GAAK,OAAOA,CAAI,EACzDG,EAAWJ,EAAIC,CAAI,EAGzB,OAAI,OAAOE,GAAU,UAAYA,IAAU,KACrC,KAAK,UAAUC,CAAQ,IAAM,KAAK,UAAUD,CAAK,IACnDH,EAAIC,CAAI,EAAIL,GAAYO,EAAOL,EAAUI,CAAQ,EACjDJ,EAASI,EAAUE,EAAUD,CAAK,GAIhCC,IAAaD,IACfH,EAAIC,CAAI,EAAIE,EACZL,EAASI,EAAUE,EAAUD,CAAK,GAI/B,EACT,EAEA,eAAeH,EAAKC,EAAM,CACxB,IAAMC,EAAWH,EAAO,GAAGA,CAAI,IAAI,OAAOE,CAAI,CAAC,GAAK,OAAOA,CAAI,EACzDG,EAAWJ,EAAIC,CAAI,EACzB,cAAOD,EAAIC,CAAI,EACfH,EAASI,EAAUE,EAAU,MAAS,EAC/B,EACT,CACF,CAAC,CACH,CAGA,IAAIC,EAAM,CACR,KAAM,WACN,QAAS,+BACT,YAAa,+EACb,OAAQ,CACN,KAAM,mBACN,KAAM,6BACN,IAAK,iBACP,EACA,QAAS,QACT,IAAK,6CACL,QAAS,iEACX,EACIC,GAAI,CACN,KAAM,WACN,QAAS,QACT,MAAO,sBACP,YAAa,wCACb,OAAQ,WACR,IAAK,6BACL,KAAM,GACN,UAAW,CAAC,EACZ,IAAK,CACH,cAAiB,CAAC,EAClB,OAAU,CAAC,EACX,WAAc,CAAC,EACf,YAAe,CAAC,CAClB,EACA,WAAY,CAAC,EACb,KAAM,CAAC,EACP,KAAM,irDACN,KAAM,KACN,KAAM,GACN,YAAa,GACb,IAAK,GACL,YAAa,QACf,EACA,OAAO,WAAa,IAAM,CACxB,IAAIC,EAAK,GACT,KAAO,CAAC,YAAY,KAAKA,CAAE,GACzBA,EAAK,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,EAAG,CAAC,EAE7C,OAAOA,CACT,EACA,IAAIC,GAAI,CACN,SAAU,KACV,OAAQ,KACR,WAAY,KACZ,eAAgB,GAChB,aAAc,OACd,iBAAkB,CAAC,EACnB,wBAAyB,KACzB,SAAU,KACV,aAAc,KACd,MAAO,KACP,UAAW,KACX,QAAS,CAAC,EACV,aAAc,GACd,kBAAmB,GACnB,gBAAiB,KACjB,kBAAmB,KACnB,gBAAiB,KACjB,oBAAqB,KACrB,sBAAuB,KACvB,qBAAsB,EACtB,cAAe,KACf,gBAAiB,KACjB,eAAgB,KAChB,iBAAkB,OAClB,aAAc,KACd,gBAAiB,KACjB,kBAAmB,KACnB,oBAAqB,KACrB,iBAAkB,CAAC,EACnB,UAAW,EACX,gBAAiB,GACjB,WAAY,CACV,YAAa,CACX,UAAW,CACT,8DACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,+EACA,mFACF,EACA,KAAM,EACR,EACA,MAAS,CACP,UAAW,CACT,sEACF,EACA,KAAM,EACR,EACA,WAAc,CACZ,UAAW,CACT,iFACA,8EACF,EACA,KAAM,EACR,EACA,YAAe,CACb,UAAW,CACT,mFACA,gFACF,EACA,KAAM,EACR,EACA,WAAY,CACV,UAAW,CACT,oEACA,sEACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,4EACA,0EACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,sEACF,EACA,KAAM,EACR,EACA,MAAS,CACP,UAAW,CACT,wEACA,sEACA,2EACF,EACA,KAAM,EACR,EACA,WAAY,CACV,UAAW,CACT,gEACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,wEACF,EACA,KAAM,EACR,EACA,mBAAoB,CAClB,UAAW,CACT,mFACA,gFACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,yEACF,EACA,KAAM,EACR,EACA,YAAa,CACX,UAAW,CACT,sEACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,0EACF,EACA,KAAM,EACR,EACA,UAAa,CACX,UAAW,CACT,0EACF,EACA,KAAM,EACR,EACA,YAAa,CACX,UAAW,CACT,4EACF,EACA,KAAM,EACR,EACA,KAAQ,CACN,UAAW,CACT,2CACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,0EACF,EACA,KAAM,EACR,EACA,oBAAqB,CACnB,UAAW,CACT,2FACA,yFACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,6EACA,2EACF,EACA,KAAM,EACR,EACA,IAAO,CACL,UAAW,CACT,2DACA,yDACF,EACA,KAAM,EACR,EACA,OAAU,CACR,UAAW,CACT,4EACA,0EACF,EACA,KAAM,EACR,EACA,WAAY,CACV,UAAW,CACT,oEACF,EACA,KAAM,EACR,EACA,WAAY,CACV,UAAW,CACT,mEACF,EACA,KAAM,EACR,EACA,MAAS,CACP,UAAW,CACT,iEACF,EACA,KAAM,EACR,CACF,EACA,cAAe,CACb,UAAa,OACb,kBAAmB,KACnB,qBAAsB,KACtB,eAAgB,OAChB,WAAc,UACd,mBAAoB,UACpB,eAAgB,MAChB,OAAU,OACV,KAAQ,OACR,MAAS,UACT,eAAgB,OAChB,eAAgB,OAChB,QAAW,OACX,QAAW,GACX,KAAQ,WACR,YAAa,IACb,cAAe,IACf,YAAa,OACb,mBAAoB,OACpB,eAAgB,SAChB,cAAe,MACf,cAAe,OACf,WAAY,OACZ,OAAU,OACV,KAAQ,OACR,iBAAkB,SAClB,cAAe,SACf,OAAU,MACV,aAAc,OACd,YAAa,OACb,YAAa,OACb,aAAc,MACd,YAAa,MACb,aAAc,UACd,kBAAmB,SACnB,QAAW,IACX,MAAS,IACT,SAAY,UACZ,QAAW,MACX,YAAe,OACf,MAAS,OACT,OAAU,OACV,MAAS,IACT,KAAQ,OACR,aAAc,OACd,kBAAmB,OACnB,cAAe,MACf,iBAAkB,OAClB,IAAO,OACP,UAAa,OACb,WAAc,gBACd,mBAAo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", - "names": ["createProxy", "target", "callback", "path", "obj", "prop", "fullPath", "value", "oldValue", "app", "p", "id", "d", "icons", "SidebarIconCSS", "navIconCSS", "modalIconCSS", "property", "newValue", "propertyParts", "noRenderProps", "LeftMenubar", "buttonSize", "Menu", "menuDialog", "Settings", "frameworks", "sortedFrameworks", "acc", "key", "settingsHTML", "framework", "name", "library", "index", "globalAttributes", "eventAttributes", "commonEventGroup", "dragDropEventGroup", "eventGroups", "tagEventGroups", "combineEventGroups", "groups", "group", "generateEventMappings", "elementEventMappings", "combinedEvents", "tag", "specificAttributes", "areCommonLayerTags", "layers", "firstTag", "layer", "selectedLayers", "detectCommonLayerTags", "renderAttributeButtons", "attributes", "attr", "attributesModal", "specificAttributesForTag", "attrBtns", "LayerTree", "renderLayer", "children", "state", "hasChildren", "isVisible", "child", "Inspector", "findCommonLayerTags", "findCommonAttributes", "attributeCounts", "count", "buttonItemClass", "buttonAddItemClass", "RenameOrDeleteButtonClass", "selectClass", "selectStyle", "inputClass", "inputStyle", "textareaClass", "textareaStyle", "mediaClass", "languages", "sizeOptions", "booleanAttributes", "inputTypes", "numberAttributes", "stringAttributes", "commonLayerTag", "commonAttributes", "cssFixedValueProperties", "cssRangedValueProperties", "boxElements", "textElements", "breakElements", "renderBooleanAttribute", "renderInput", "type", "min", "max", "step", "renderTextarea", "generatePreviewSize", "option", "lang", "processStyles", "stylesObject", "selectorPrefix", "detect", "styles", "colorRegex", "complexProperties", "selector", "predefinedValues", "options", "val", "valueParts", "remainingParts", "gridColsClass", "part", "numericValue", "unitMatch", "unit", "validUnits", "selectElement", "unitOption", "rangeElement", "isColorProperty", "inputType", "fallbackColor", "updatedInputStyle", "generateRootVariablesSection", "isColor", "hasAlpha", "isNumeric", "generateStylesSection", "targets", "activeStyle", "layerKey", "dropdown", "buttonClass", "generatePseudosSection", "generateStylePropertiesSection", "styleKey", "stylesObj", "generateBreakpointsSection", "generateBreakpointStylesSection", "generateAnimationsSection", "generateAnimationPropertySection", "content", "keyframes", "activeKeyframe", "generateAttributesSection", "attributeTag", "svgImage", "element", "elm", "propKey", "lowerPropKey", "nodeType", "numAttr", "string", "numTypes", "numType", "editorNav", "large", "title", "CloseLabel", "ConfirmLabel", "onLoad", "onClose", "onConfirm", "hClass", "html", "modal", "timesBtn", "closeBtn", "confirmBtn", "btnClass", "blockItem", "componentItem", "block", "component", "modalContent", "container", "size", "viewportWidth", "viewportHeight", "previewElm", "width", "height", "doc", "currentDoc", "newDoc", "newName", "defaultValues", "rootVariables", "fixedValueProperties", "rangedValueProperties", "rootVariableOptions", "fixedValuePropertyOptions", "rangedValuePropertyOptions", "propertyTypeSelect", "unitSelect", "unitSection", "updatePropertyDetails", "selectedType", "propertyTypeInput", "noUnit", "cssQuickCommands", "propertyString", "propertyType", "userDefinedValue", "str", "quickPropertyType", "quickUserDefinedValue", "finalValue", "defaultValue", "e", "query", "found", "currentValue", "detected", "pseudo", "pseudoSelector", "pseudoStyles", "rule", "s", "existingPseudo", "oldName", "style", "pseudoIndex", "url", "response", "error", "incrementPattern", "attrs", "q", "incrementValues", "attribute", "baseValue", "increment", "input", "elementToJson", "noTextElements", "tagName", "props", "jsonToElement", "json", "renderElement", "escapeHtml", "childElement", "text", "map", "m", "beautifyHtml", "tab", "result", "indent", "css", "importRegex", "importMatch", "importUrl", "keyframesRegex", "mediaQueryRegex", "selectorRegex", "decodeURIComponentSafe", "processSelector", "properties", "varName", "varValue", "pseudoMatch", "baseSelector", "currentTarget", "pseudoObj", "propertyRegex", "match", "urlRegex", "urlMatch", "urlContent", "processRules", "cssRules", "processKeyframes", "keyframesName", "keyframesRules", "segment", "keyframeName", "propertiesPart", "keyframesMatch", "mediaMatch", "mediaCondition", "mediaRules", "mediaTarget", "cssWithoutMedia", "symbol", "semicolon", "openBrace", "closeBrace", "containCssVar", "indentLevel", "innerCss", "variables", "baseStyles", "pseudos", "variable", "childSelector", "childStyle", "processAnimations", "animations", "animationCss", "animationName", "animation", "keyframe", "processBreakpoints", "breakpoints", "breakpointCss", "breakpoint", "classId", "containcssVar", "innercss", "animationCSS", "breakpointCSS", "existingJSON", "newJSON", "stylesheet", "className", "declarations", "currentState", "stateString", "previousState", "nextState", "selection", "code", "item", "suggestions", "src", "script", "scripts", "scriptUrl", "resolve", "reject", "scriptElement", "srcArray", "queriesString", "replaceSelection", "queries", "handleSpecialCommand", "command", "matchesPseudoClass", "pseudoClass", "total", "selectLayersRecursive", "activeCalls", "processLayers", "pseudoClassPart", "classNames", "attributeMatch", "classMatches", "matchResult", "layerClasses", "targetChildrenOfSelections", "processQuery", "equalsIndex", "currentIDs", "layerId", "targetLayer", "parentLayer", "findLayerAndParent", "parent", "i", "applyCollapseStateToSiblings", "collapseState", "newCollapseState", "collapseLayer", "hideLayer", "applyVisibilityToSiblings", "visibilityState", "newVisibilityState", "applySelectionToSiblings", "selectionState", "childIndex", "newSelectionState", "findLayerById", "lastSelectedLayerId", "foundLayer", "searchLayer", "j", "excludeId", "assignIds", "blocks", "newBlocks", "parentBlock", "newBlock", "l", "cloneCount", "clonedLayer", "rootLayer", "pastedLayers", "initIncrement", "searchField", "handleSearch", "results", "displayResults", "resultsContainer", "uniqueId", "audioHTML", "searchInput", "searchBtn", "audio", "event", "file", "svgCode", "base64String", "icon", "hosts", "searchUrl", "display", "apiConnection", "descriptionElement", "searchElement", "iconResults", "selectedSvg", "iconResultsElement", "iconUrl", "svgContent", "iconDiv", "selectedSvgElement", "existingNames", "comp", "clone", "newHtml", "commands", "buttonsHtml", "guide", "versionParts", "iframe", "fadeTimeout", "scale", "reader", "data", "c", "names", "registrations", "registration", "fileName", "fileExtension", "fileType", "isBase64", "getBase64FileType", "mimeMatch", "mimeType", "mimeTypeToExtension", "getFileName", "getBase64FileName", "fileCounter", "extractBackgroundImageUrls", "urls", "regex", "imageResources", "body", "audioResources", "vectorResources", "videoResources", "img", "srcset", "source", "svg", "video", "mediaUrl", "blob", "frameStyles", "breakpointStyles", "colorMappings", "updateBorderColors", "updatedData", "colorKey", "color", "filename", "fileContent", "minified", "idoc", "zip", "kodeWeaveProject", "licenseStr", "READMEStr", "cssContent", "cssBuildItems", "cssBuildItemsString", "TailwindNoReset", "promises", "parts", "cssBuild", "css4html", "twFound", "tailwindDirectives", "tailwindStyles", "cssImport", "combinedStyles", "postcssConfig", "npmJSON", "base64Logo", "logoType", "logoFileName", "sizes", "createResizedImage", "canvas", "ctx", "base64Image", "swinit", "swjs", "audioFolder", "base64Audio", "svgFolder", "videoFolder", "base64Video", "scriptTags", "cssTags", "testHtmlContent", "indexHtmlContentCompiled", "scriptsToRemove", "shareProject", "lib", "form", "iframeDocument", "context", "videoElements", "currentTime", "paused", "volume", "forceRun", "iframeSrc", "userAgent", "isMac", "isWindows", "isLinux", "oldNode", "newNode", "oldSrcdoc", "newSrcdoc", "oldAttributes", "newAttributes", "oldChildren", "newChildren", "oldChild", "newChild", "activeElement", "os", "isCmdPressed", "isCtrlPressed", "isModifierPressed", "isShiftPressed", "isZKeyPressed", "handleShortcut", "action", "dialog"] + "sources": ["../libraries/pickr/pickr.min.js", "../src/App.js"], + "sourcesContent": ["/*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.Pickr=e():t.Pickr=e()}(self,(function(){return(()=>{\"use strict\";var t={d:(e,o)=>{for(var n in o)t.o(o,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.d(e,{default:()=>L});var o={};function n(t,e,o,n,i={}){e instanceof HTMLCollection||e instanceof NodeList?e=Array.from(e):Array.isArray(e)||(e=[e]),Array.isArray(o)||(o=[o]);for(const s of e)for(const e of o)s[t](e,n,{capture:!1,...i});return Array.prototype.slice.call(arguments,1)}t.r(o),t.d(o,{adjustableInputNumbers:()=>p,createElementFromString:()=>r,createFromTemplate:()=>a,eventPath:()=>l,off:()=>s,on:()=>i,resolveElement:()=>c});const i=n.bind(null,\"addEventListener\"),s=n.bind(null,\"removeEventListener\");function r(t){const e=document.createElement(\"div\");return e.innerHTML=t.trim(),e.firstElementChild}function a(t){const e=(t,e)=>{const o=t.getAttribute(e);return t.removeAttribute(e),o},o=(t,n={})=>{const i=e(t,\":obj\"),s=e(t,\":ref\"),r=i?n[i]={}:n;s&&(n[s]=t);for(const n of Array.from(t.children)){const t=e(n,\":arr\"),i=o(n,t?{}:r);t&&(r[t]||(r[t]=[])).push(Object.keys(i).length?i:n)}return n};return o(r(t))}function l(t){let e=t.path||t.composedPath&&t.composedPath();if(e)return e;let o=t.target.parentElement;for(e=[t.target,o];o=o.parentElement;)e.push(o);return e.push(document,window),e}function c(t){return t instanceof Element?t:\"string\"==typeof t?t.split(/>>/g).reduce(((t,e,o,n)=>(t=t.querySelector(e),o<n.length-1?t.shadowRoot:t)),document):null}function p(t,e=(t=>t)){function o(o){const n=[.001,.01,.1][Number(o.shiftKey||2*o.ctrlKey)]*(o.deltaY<0?1:-1);let i=0,s=t.selectionStart;t.value=t.value.replace(/[\\d.]+/g,((t,o)=>o<=s&&o+t.length>=s?(s=o,e(Number(t),n,i)):(i++,t))),t.focus(),t.setSelectionRange(s,s),o.preventDefault(),t.dispatchEvent(new Event(\"input\"))}i(t,\"focus\",(()=>i(window,\"wheel\",o,{passive:!1}))),i(t,\"blur\",(()=>s(window,\"wheel\",o)))}const{min:u,max:h,floor:d,round:m}=Math;function f(t,e,o){e/=100,o/=100;const n=d(t=t/360*6),i=t-n,s=o*(1-e),r=o*(1-i*e),a=o*(1-(1-i)*e),l=n%6;return[255*[o,r,s,s,a,o][l],255*[a,o,o,r,s,s][l],255*[s,s,a,o,o,r][l]]}function v(t,e,o){const n=(2-(e/=100))*(o/=100)/2;return 0!==n&&(e=1===n?0:n<.5?e*o/(2*n):e*o/(2-2*n)),[t,100*e,100*n]}function b(t,e,o){const n=u(t/=255,e/=255,o/=255),i=h(t,e,o),s=i-n;let r,a;if(0===s)r=a=0;else{a=s/i;const n=((i-t)/6+s/2)/s,l=((i-e)/6+s/2)/s,c=((i-o)/6+s/2)/s;t===i?r=c-l:e===i?r=1/3+n-c:o===i&&(r=2/3+l-n),r<0?r+=1:r>1&&(r-=1)}return[360*r,100*a,100*i]}function y(t,e,o,n){e/=100,o/=100;return[...b(255*(1-u(1,(t/=100)*(1-(n/=100))+n)),255*(1-u(1,e*(1-n)+n)),255*(1-u(1,o*(1-n)+n)))]}function g(t,e,o){e/=100;const n=2*(e*=(o/=100)<.5?o:1-o)/(o+e)*100,i=100*(o+e);return[t,isNaN(n)?0:n,i]}function _(t){return b(...t.match(/.{2}/g).map((t=>parseInt(t,16))))}function w(t){t=t.match(/^[a-zA-Z]+$/)?function(t){if(\"black\"===t.toLowerCase())return\"#000\";const e=document.createElement(\"canvas\").getContext(\"2d\");return e.fillStyle=t,\"#000\"===e.fillStyle?null:e.fillStyle}(t):t;const e={cmyk:/^cmyk[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)/i,rgba:/^((rgba)|rgb)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,hsla:/^((hsla)|hsl)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,hsva:/^((hsva)|hsv)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,hexa:/^#?(([\\dA-Fa-f]{3,4})|([\\dA-Fa-f]{6})|([\\dA-Fa-f]{8}))$/i},o=t=>t.map((t=>/^(|\\d+)\\.\\d+|\\d+$/.test(t)?Number(t):void 0));let n;t:for(const i in e){if(!(n=e[i].exec(t)))continue;const s=t=>!!n[2]==(\"number\"==typeof t);switch(i){case\"cmyk\":{const[,t,e,s,r]=o(n);if(t>100||e>100||s>100||r>100)break t;return{values:y(t,e,s,r),type:i}}case\"rgba\":{const[,,,t,e,r,a]=o(n);if(t>255||e>255||r>255||a<0||a>1||!s(a))break t;return{values:[...b(t,e,r),a],a,type:i}}case\"hexa\":{let[,t]=n;4!==t.length&&3!==t.length||(t=t.split(\"\").map((t=>t+t)).join(\"\"));const e=t.substring(0,6);let o=t.substring(6);return o=o?parseInt(o,16)/255:void 0,{values:[..._(e),o],a:o,type:i}}case\"hsla\":{const[,,,t,e,r,a]=o(n);if(t>360||e>100||r>100||a<0||a>1||!s(a))break t;return{values:[...g(t,e,r),a],a,type:i}}case\"hsva\":{const[,,,t,e,r,a]=o(n);if(t>360||e>100||r>100||a<0||a>1||!s(a))break t;return{values:[t,e,r,a],a,type:i}}}}return{values:null,type:null}}function A(t=0,e=0,o=0,n=1){const i=(t,e)=>(o=-1)=>e(~o?t.map((t=>Number(t.toFixed(o)))):t),s={h:t,s:e,v:o,a:n,toHSVA(){const t=[s.h,s.s,s.v,s.a];return t.toString=i(t,(t=>`hsva(${t[0]}, ${t[1]}%, ${t[2]}%, ${s.a})`)),t},toHSLA(){const t=[...v(s.h,s.s,s.v),s.a];return t.toString=i(t,(t=>`hsla(${t[0]}, ${t[1]}%, ${t[2]}%, ${s.a})`)),t},toRGBA(){const t=[...f(s.h,s.s,s.v),s.a];return t.toString=i(t,(t=>`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${s.a})`)),t},toCMYK(){const t=function(t,e,o){const n=f(t,e,o),i=n[0]/255,s=n[1]/255,r=n[2]/255,a=u(1-i,1-s,1-r);return[100*(1===a?0:(1-i-a)/(1-a)),100*(1===a?0:(1-s-a)/(1-a)),100*(1===a?0:(1-r-a)/(1-a)),100*a]}(s.h,s.s,s.v);return t.toString=i(t,(t=>`cmyk(${t[0]}%, ${t[1]}%, ${t[2]}%, ${t[3]}%)`)),t},toHEXA(){const t=function(t,e,o){return f(t,e,o).map((t=>m(t).toString(16).padStart(2,\"0\")))}(s.h,s.s,s.v),e=s.a>=1?\"\":Number((255*s.a).toFixed(0)).toString(16).toUpperCase().padStart(2,\"0\");return e&&t.push(e),t.toString=()=>`#${t.join(\"\").toUpperCase()}`,t},clone:()=>A(s.h,s.s,s.v,s.a)};return s}const C=t=>Math.max(Math.min(t,1),0);function $(t){const e={options:Object.assign({lock:null,onchange:()=>0,onstop:()=>0},t),_keyboard(t){const{options:o}=e,{type:n,key:i}=t;if(document.activeElement===o.wrapper){const{lock:o}=e.options,s=\"ArrowUp\"===i,r=\"ArrowRight\"===i,a=\"ArrowDown\"===i,l=\"ArrowLeft\"===i;if(\"keydown\"===n&&(s||r||a||l)){let n=0,i=0;\"v\"===o?n=s||r?1:-1:\"h\"===o?n=s||r?-1:1:(i=s?-1:a?1:0,n=l?-1:r?1:0),e.update(C(e.cache.x+.01*n),C(e.cache.y+.01*i)),t.preventDefault()}else i.startsWith(\"Arrow\")&&(e.options.onstop(),t.preventDefault())}},_tapstart(t){i(document,[\"mouseup\",\"touchend\",\"touchcancel\"],e._tapstop),i(document,[\"mousemove\",\"touchmove\"],e._tapmove),t.cancelable&&t.preventDefault(),e._tapmove(t)},_tapmove(t){const{options:o,cache:n}=e,{lock:i,element:s,wrapper:r}=o,a=r.getBoundingClientRect();let l=0,c=0;if(t){const e=t&&t.touches&&t.touches[0];l=t?(e||t).clientX:0,c=t?(e||t).clientY:0,l<a.left?l=a.left:l>a.left+a.width&&(l=a.left+a.width),c<a.top?c=a.top:c>a.top+a.height&&(c=a.top+a.height),l-=a.left,c-=a.top}else n&&(l=n.x*a.width,c=n.y*a.height);\"h\"!==i&&(s.style.left=`calc(${l/a.width*100}% - ${s.offsetWidth/2}px)`),\"v\"!==i&&(s.style.top=`calc(${c/a.height*100}% - ${s.offsetHeight/2}px)`),e.cache={x:l/a.width,y:c/a.height};const p=C(l/a.width),u=C(c/a.height);switch(i){case\"v\":return o.onchange(p);case\"h\":return o.onchange(u);default:return o.onchange(p,u)}},_tapstop(){e.options.onstop(),s(document,[\"mouseup\",\"touchend\",\"touchcancel\"],e._tapstop),s(document,[\"mousemove\",\"touchmove\"],e._tapmove)},trigger(){e._tapmove()},update(t=0,o=0){const{left:n,top:i,width:s,height:r}=e.options.wrapper.getBoundingClientRect();\"h\"===e.options.lock&&(o=t),e._tapmove({clientX:n+s*t,clientY:i+r*o})},destroy(){const{options:t,_tapstart:o,_keyboard:n}=e;s(document,[\"keydown\",\"keyup\"],n),s([t.wrapper,t.element],\"mousedown\",o),s([t.wrapper,t.element],\"touchstart\",o,{passive:!1})}},{options:o,_tapstart:n,_keyboard:r}=e;return i([o.wrapper,o.element],\"mousedown\",n),i([o.wrapper,o.element],\"touchstart\",n,{passive:!1}),i(document,[\"keydown\",\"keyup\"],r),e}function k(t={}){t=Object.assign({onchange:()=>0,className:\"\",elements:[]},t);const e=i(t.elements,\"click\",(e=>{t.elements.forEach((o=>o.classList[e.target===o?\"add\":\"remove\"](t.className))),t.onchange(e),e.stopPropagation()}));return{destroy:()=>s(...e)}}const S={variantFlipOrder:{start:\"sme\",middle:\"mse\",end:\"ems\"},positionFlipOrder:{top:\"tbrl\",right:\"rltb\",bottom:\"btrl\",left:\"lrbt\"},position:\"bottom\",margin:8},O=(t,e,o)=>{const{container:n,margin:i,position:s,variantFlipOrder:r,positionFlipOrder:a}={container:document.documentElement.getBoundingClientRect(),...S,...o},{left:l,top:c}=e.style;e.style.left=\"0\",e.style.top=\"0\";const p=t.getBoundingClientRect(),u=e.getBoundingClientRect(),h={t:p.top-u.height-i,b:p.bottom+i,r:p.right+i,l:p.left-u.width-i},d={vs:p.left,vm:p.left+p.width/2+-u.width/2,ve:p.left+p.width-u.width,hs:p.top,hm:p.bottom-p.height/2-u.height/2,he:p.bottom-u.height},[m,f=\"middle\"]=s.split(\"-\"),v=a[m],b=r[f],{top:y,left:g,bottom:_,right:w}=n;for(const t of v){const o=\"t\"===t||\"b\"===t,n=h[t],[i,s]=o?[\"top\",\"left\"]:[\"left\",\"top\"],[r,a]=o?[u.height,u.width]:[u.width,u.height],[l,c]=o?[_,w]:[w,_],[p,m]=o?[y,g]:[g,y];if(!(n<p||n+r>l))for(const r of b){const l=d[(o?\"v\":\"h\")+r];if(!(l<m||l+a>c))return e.style[s]=l-u[s]+\"px\",e.style[i]=n-u[i]+\"px\",t+r}}return e.style.left=l,e.style.top=c,null};function E(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class L{constructor(t){E(this,\"_initializingActive\",!0),E(this,\"_recalc\",!0),E(this,\"_nanopop\",null),E(this,\"_root\",null),E(this,\"_color\",A()),E(this,\"_lastColor\",A()),E(this,\"_swatchColors\",[]),E(this,\"_setupAnimationFrame\",null),E(this,\"_eventListener\",{init:[],save:[],hide:[],show:[],clear:[],change:[],changestop:[],cancel:[],swatchselect:[]}),this.options=t=Object.assign({...L.DEFAULT_OPTIONS},t);const{swatches:e,components:o,theme:n,sliders:i,lockOpacity:s,padding:r}=t;[\"nano\",\"monolith\"].includes(n)&&!i&&(t.sliders=\"h\"),o.interaction||(o.interaction={});const{preview:a,opacity:l,hue:c,palette:p}=o;o.opacity=!s&&l,o.palette=p||a||l||c,this._preBuild(),this._buildComponents(),this._bindEvents(),this._finalBuild(),e&&e.length&&e.forEach((t=>this.addSwatch(t)));const{button:u,app:h}=this._root;this._nanopop=((t,e,o)=>{const n=\"object\"!=typeof t||t instanceof HTMLElement?{reference:t,popper:e,...o}:t;return{update(t=n){const{reference:e,popper:o}=Object.assign(n,t);if(!o||!e)throw new Error(\"Popper- or reference-element missing.\");return O(e,o,n)}}})(u,h,{margin:r}),u.setAttribute(\"role\",\"button\"),u.setAttribute(\"aria-label\",this._t(\"btn:toggle\"));const d=this;this._setupAnimationFrame=requestAnimationFrame((function e(){if(!h.offsetWidth)return requestAnimationFrame(e);d.setColor(t.default),d._rePositioningPicker(),t.defaultRepresentation&&(d._representation=t.defaultRepresentation,d.setColorRepresentation(d._representation)),t.showAlways&&d.show(),d._initializingActive=!1,d._emit(\"init\")}))}_preBuild(){const{options:t}=this;for(const e of[\"el\",\"container\"])t[e]=c(t[e]);this._root=(t=>{const{components:e,useAsButton:o,inline:n,appClass:i,theme:s,lockOpacity:r}=t.options,l=t=>t?\"\":'style=\"display:none\" hidden',c=e=>t._t(e),p=a(`\\n <div :ref=\"root\" class=\"pickr\">\\n\\n ${o?\"\":'<button type=\"button\" :ref=\"button\" class=\"pcr-button\"></button>'}\\n\\n <div :ref=\"app\" class=\"pcr-app ${i||\"\"}\" data-theme=\"${s}\" ${n?'style=\"position: unset\"':\"\"} aria-label=\"${c(\"ui:dialog\")}\" role=\"window\">\\n <div class=\"pcr-selection\" ${l(e.palette)}>\\n <div :obj=\"preview\" class=\"pcr-color-preview\" ${l(e.preview)}>\\n <button type=\"button\" :ref=\"lastColor\" class=\"pcr-last-color\" aria-label=\"${c(\"btn:last-color\")}\"></button>\\n <div :ref=\"currentColor\" class=\"pcr-current-color\"></div>\\n </div>\\n\\n <div :obj=\"palette\" class=\"pcr-color-palette\">\\n <div :ref=\"picker\" class=\"pcr-picker\"></div>\\n <div :ref=\"palette\" class=\"pcr-palette\" tabindex=\"0\" aria-label=\"${c(\"aria:palette\")}\" role=\"listbox\"></div>\\n </div>\\n\\n <div :obj=\"hue\" class=\"pcr-color-chooser\" ${l(e.hue)}>\\n <div :ref=\"picker\" class=\"pcr-picker\"></div>\\n <div :ref=\"slider\" class=\"pcr-hue pcr-slider\" tabindex=\"0\" aria-label=\"${c(\"aria:hue\")}\" role=\"slider\"></div>\\n </div>\\n\\n <div :obj=\"opacity\" class=\"pcr-color-opacity\" ${l(e.opacity)}>\\n <div :ref=\"picker\" class=\"pcr-picker\"></div>\\n <div :ref=\"slider\" class=\"pcr-opacity pcr-slider\" tabindex=\"0\" aria-label=\"${c(\"aria:opacity\")}\" role=\"slider\"></div>\\n </div>\\n </div>\\n\\n <div class=\"pcr-swatches ${e.palette?\"\":\"pcr-last\"}\" :ref=\"swatches\"></div>\\n\\n <div :obj=\"interaction\" class=\"pcr-interaction\" ${l(Object.keys(e.interaction).length)}>\\n <input :ref=\"result\" class=\"pcr-result\" type=\"text\" spellcheck=\"false\" ${l(e.interaction.input)} aria-label=\"${c(\"aria:input\")}\">\\n\\n <input :arr=\"options\" class=\"pcr-type\" data-type=\"HEXA\" value=\"${r?\"HEX\":\"HEXA\"}\" type=\"button\" ${l(e.interaction.hex)}>\\n <input :arr=\"options\" class=\"pcr-type\" data-type=\"RGBA\" value=\"${r?\"RGB\":\"RGBA\"}\" type=\"button\" ${l(e.interaction.rgba)}>\\n <input :arr=\"options\" class=\"pcr-type\" data-type=\"HSLA\" value=\"${r?\"HSL\":\"HSLA\"}\" type=\"button\" ${l(e.interaction.hsla)}>\\n <input :arr=\"options\" class=\"pcr-type\" data-type=\"HSVA\" value=\"${r?\"HSV\":\"HSVA\"}\" type=\"button\" ${l(e.interaction.hsva)}>\\n <input :arr=\"options\" class=\"pcr-type\" data-type=\"CMYK\" value=\"CMYK\" type=\"button\" ${l(e.interaction.cmyk)}>\\n\\n <input :ref=\"save\" class=\"pcr-save\" value=\"${c(\"btn:save\")}\" type=\"button\" ${l(e.interaction.save)} aria-label=\"${c(\"aria:btn:save\")}\">\\n <input :ref=\"cancel\" class=\"pcr-cancel\" value=\"${c(\"btn:cancel\")}\" type=\"button\" ${l(e.interaction.cancel)} aria-label=\"${c(\"aria:btn:cancel\")}\">\\n <input :ref=\"clear\" class=\"pcr-clear\" value=\"${c(\"btn:clear\")}\" type=\"button\" ${l(e.interaction.clear)} aria-label=\"${c(\"aria:btn:clear\")}\">\\n </div>\\n </div>\\n </div>\\n `),u=p.interaction;return u.options.find((t=>!t.hidden&&!t.classList.add(\"active\"))),u.type=()=>u.options.find((t=>t.classList.contains(\"active\"))),p})(this),t.useAsButton&&(this._root.button=t.el),t.container.appendChild(this._root.root)}_finalBuild(){const t=this.options,e=this._root;if(t.container.removeChild(e.root),t.inline){const o=t.el.parentElement;t.el.nextSibling?o.insertBefore(e.app,t.el.nextSibling):o.appendChild(e.app)}else t.container.appendChild(e.app);t.useAsButton?t.inline&&t.el.remove():t.el.parentNode.replaceChild(e.root,t.el),t.disabled&&this.disable(),t.comparison||(e.button.style.transition=\"none\",t.useAsButton||(e.preview.lastColor.style.transition=\"none\")),this.hide()}_buildComponents(){const t=this,e=this.options.components,o=(t.options.sliders||\"v\").repeat(2),[n,i]=o.match(/^[vh]+$/g)?o:[],s=()=>this._color||(this._color=this._lastColor.clone()),r={palette:$({element:t._root.palette.picker,wrapper:t._root.palette.palette,onstop:()=>t._emit(\"changestop\",\"slider\",t),onchange(o,n){if(!e.palette)return;const i=s(),{_root:r,options:a}=t,{lastColor:l,currentColor:c}=r.preview;t._recalc&&(i.s=100*o,i.v=100-100*n,i.v<0&&(i.v=0),t._updateOutput(\"slider\"));const p=i.toRGBA().toString(0);this.element.style.background=p,this.wrapper.style.background=`\\n linear-gradient(to top, rgba(0, 0, 0, ${i.a}), transparent),\\n linear-gradient(to left, hsla(${i.h}, 100%, 50%, ${i.a}), rgba(255, 255, 255, ${i.a}))\\n `,a.comparison?a.useAsButton||t._lastColor||l.style.setProperty(\"--pcr-color\",p):(r.button.style.setProperty(\"--pcr-color\",p),r.button.classList.remove(\"clear\"));const u=i.toHEXA().toString();for(const{el:e,color:o}of t._swatchColors)e.classList[u===o.toHEXA().toString()?\"add\":\"remove\"](\"pcr-active\");c.style.setProperty(\"--pcr-color\",p)}}),hue:$({lock:\"v\"===i?\"h\":\"v\",element:t._root.hue.picker,wrapper:t._root.hue.slider,onstop:()=>t._emit(\"changestop\",\"slider\",t),onchange(o){if(!e.hue||!e.palette)return;const n=s();t._recalc&&(n.h=360*o),this.element.style.backgroundColor=`hsl(${n.h}, 100%, 50%)`,r.palette.trigger()}}),opacity:$({lock:\"v\"===n?\"h\":\"v\",element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onstop:()=>t._emit(\"changestop\",\"slider\",t),onchange(o){if(!e.opacity||!e.palette)return;const n=s();t._recalc&&(n.a=Math.round(100*o)/100),this.element.style.background=`rgba(0, 0, 0, ${n.a})`,r.palette.trigger()}}),selectable:k({elements:t._root.interaction.options,className:\"active\",onchange(e){t._representation=e.target.getAttribute(\"data-type\").toUpperCase(),t._recalc&&t._updateOutput(\"swatch\")}})};this._components=r}_bindEvents(){const{_root:t,options:e}=this,o=[i(t.interaction.clear,\"click\",(()=>this._clearColor())),i([t.interaction.cancel,t.preview.lastColor],\"click\",(()=>{this.setHSVA(...(this._lastColor||this._color).toHSVA(),!0),this._emit(\"cancel\")})),i(t.interaction.save,\"click\",(()=>{!this.applyColor()&&!e.showAlways&&this.hide()})),i(t.interaction.result,[\"keyup\",\"input\"],(t=>{this.setColor(t.target.value,!0)&&!this._initializingActive&&(this._emit(\"change\",this._color,\"input\",this),this._emit(\"changestop\",\"input\",this)),t.stopImmediatePropagation()})),i(t.interaction.result,[\"focus\",\"blur\"],(t=>{this._recalc=\"blur\"===t.type,this._recalc&&this._updateOutput(null)})),i([t.palette.palette,t.palette.picker,t.hue.slider,t.hue.picker,t.opacity.slider,t.opacity.picker],[\"mousedown\",\"touchstart\"],(()=>this._recalc=!0),{passive:!0})];if(!e.showAlways){const n=e.closeWithKey;o.push(i(t.button,\"click\",(()=>this.isOpen()?this.hide():this.show())),i(document,\"keyup\",(t=>this.isOpen()&&(t.key===n||t.code===n)&&this.hide())),i(document,[\"touchstart\",\"mousedown\"],(e=>{this.isOpen()&&!l(e).some((e=>e===t.app||e===t.button))&&this.hide()}),{capture:!0}))}if(e.adjustableNumbers){const e={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};p(t.interaction.result,((t,o,n)=>{const i=e[this.getColorRepresentation().toLowerCase()];if(i){const e=i[n],s=t+(e>=100?1e3*o:o);return s<=0?0:Number((s<e?s:e).toPrecision(3))}return t}))}if(e.autoReposition&&!e.inline){let t=null;const n=this;o.push(i(window,[\"scroll\",\"resize\"],(()=>{n.isOpen()&&(e.closeOnScroll&&n.hide(),null===t?(t=setTimeout((()=>t=null),100),requestAnimationFrame((function e(){n._rePositioningPicker(),null!==t&&requestAnimationFrame(e)}))):(clearTimeout(t),t=setTimeout((()=>t=null),100)))}),{capture:!0}))}this._eventBindings=o}_rePositioningPicker(){const{options:t}=this;if(!t.inline){if(!this._nanopop.update({container:document.body.getBoundingClientRect(),position:t.position})){const t=this._root.app,e=t.getBoundingClientRect();t.style.top=(window.innerHeight-e.height)/2+\"px\",t.style.left=(window.innerWidth-e.width)/2+\"px\"}}}_updateOutput(t){const{_root:e,_color:o,options:n}=this;if(e.interaction.type()){const t=`to${e.interaction.type().getAttribute(\"data-type\")}`;e.interaction.result.value=\"function\"==typeof o[t]?o[t]().toString(n.outputPrecision):\"\"}!this._initializingActive&&this._recalc&&this._emit(\"change\",o,t,this)}_clearColor(t=!1){const{_root:e,options:o}=this;o.useAsButton||e.button.style.setProperty(\"--pcr-color\",\"rgba(0, 0, 0, 0.15)\"),e.button.classList.add(\"clear\"),o.showAlways||this.hide(),this._lastColor=null,this._initializingActive||t||(this._emit(\"save\",null),this._emit(\"clear\"))}_parseLocalColor(t){const{values:e,type:o,a:n}=w(t),{lockOpacity:i}=this.options,s=void 0!==n&&1!==n;return e&&3===e.length&&(e[3]=void 0),{values:!e||i&&s?null:e,type:o}}_t(t){return this.options.i18n[t]||L.I18N_DEFAULTS[t]}_emit(t,...e){this._eventListener[t].forEach((t=>t(...e,this)))}on(t,e){return this._eventListener[t].push(e),this}off(t,e){const o=this._eventListener[t]||[],n=o.indexOf(e);return~n&&o.splice(n,1),this}addSwatch(t){const{values:e}=this._parseLocalColor(t);if(e){const{_swatchColors:t,_root:o}=this,n=A(...e),s=r(`<button type=\"button\" style=\"--pcr-color: ${n.toRGBA().toString(0)}\" aria-label=\"${this._t(\"btn:swatch\")}\"/>`);return o.swatches.appendChild(s),t.push({el:s,color:n}),this._eventBindings.push(i(s,\"click\",(()=>{this.setHSVA(...n.toHSVA(),!0),this._emit(\"swatchselect\",n),this._emit(\"change\",n,\"swatch\",this)}))),!0}return!1}removeSwatch(t){const e=this._swatchColors[t];if(e){const{el:o}=e;return this._root.swatches.removeChild(o),this._swatchColors.splice(t,1),!0}return!1}applyColor(t=!1){const{preview:e,button:o}=this._root,n=this._color.toRGBA().toString(0);return e.lastColor.style.setProperty(\"--pcr-color\",n),this.options.useAsButton||o.style.setProperty(\"--pcr-color\",n),o.classList.remove(\"clear\"),this._lastColor=this._color.clone(),this._initializingActive||t||this._emit(\"save\",this._color),this}destroy(){cancelAnimationFrame(this._setupAnimationFrame),this._eventBindings.forEach((t=>s(...t))),Object.keys(this._components).forEach((t=>this._components[t].destroy()))}destroyAndRemove(){this.destroy();const{root:t,app:e}=this._root;t.parentElement&&t.parentElement.removeChild(t),e.parentElement.removeChild(e),Object.keys(this).forEach((t=>this[t]=null))}hide(){return!!this.isOpen()&&(this._root.app.classList.remove(\"visible\"),this._emit(\"hide\"),!0)}show(){return!this.options.disabled&&!this.isOpen()&&(this._root.app.classList.add(\"visible\"),this._rePositioningPicker(),this._emit(\"show\",this._color),this)}isOpen(){return this._root.app.classList.contains(\"visible\")}setHSVA(t=360,e=0,o=0,n=1,i=!1){const s=this._recalc;if(this._recalc=!1,t<0||t>360||e<0||e>100||o<0||o>100||n<0||n>1)return!1;this._color=A(t,e,o,n);const{hue:r,opacity:a,palette:l}=this._components;return r.update(t/360),a.update(n),l.update(e/100,1-o/100),i||this.applyColor(),s&&this._updateOutput(),this._recalc=s,!0}setColor(t,e=!1){if(null===t)return this._clearColor(e),!0;const{values:o,type:n}=this._parseLocalColor(t);if(o){const t=n.toUpperCase(),{options:i}=this._root.interaction,s=i.find((e=>e.getAttribute(\"data-type\")===t));if(s&&!s.hidden)for(const t of i)t.classList[t===s?\"add\":\"remove\"](\"active\");return!!this.setHSVA(...o,e)&&this.setColorRepresentation(t)}return!1}setColorRepresentation(t){return t=t.toUpperCase(),!!this._root.interaction.options.find((e=>e.getAttribute(\"data-type\").startsWith(t)&&!e.click()))}getColorRepresentation(){return this._representation}getColor(){return this._color}getSelectedColor(){return this._lastColor}getRoot(){return this._root}disable(){return this.hide(),this.options.disabled=!0,this._root.button.classList.add(\"disabled\"),this}enable(){return this.options.disabled=!1,this._root.button.classList.remove(\"disabled\"),this}}return E(L,\"utils\",o),E(L,\"version\",\"1.8.2\"),E(L,\"I18N_DEFAULTS\",{\"ui:dialog\":\"color picker dialog\",\"btn:toggle\":\"toggle color picker dialog\",\"btn:swatch\":\"color swatch\",\"btn:last-color\":\"use previous color\",\"btn:save\":\"Save\",\"btn:cancel\":\"Cancel\",\"btn:clear\":\"Clear\",\"aria:btn:save\":\"save and close\",\"aria:btn:cancel\":\"cancel and close\",\"aria:btn:clear\":\"clear and close\",\"aria:input\":\"color input field\",\"aria:palette\":\"color selection area\",\"aria:hue\":\"hue selection slider\",\"aria:opacity\":\"selection slider\"}),E(L,\"DEFAULT_OPTIONS\",{appClass:null,theme:\"classic\",useAsButton:!1,padding:8,disabled:!1,comparison:!0,closeOnScroll:!1,outputPrecision:0,lockOpacity:!1,autoReposition:!0,container:\"body\",components:{interaction:{}},i18n:{},swatches:null,inline:!1,sliders:null,default:\"#42445a\",defaultRepresentation:null,position:\"bottom-middle\",adjustableNumbers:!0,showAlways:!1,closeWithKey:\"Escape\"}),E(L,\"create\",(t=>new L(t))),e=e.default})()}));\n//# sourceMappingURL=pickr.min.js.map", "// Function for reactive state management\nfunction createProxy(target, callback, path = '') {\n if (typeof target !== 'object' || target === null) {\n return target;\n }\n\n return new Proxy(target, {\n get(obj, prop) {\n const fullPath = path ? `${path}.${String(prop)}` : String(prop);\n const value = obj[prop];\n return createProxy(value, callback, fullPath);\n },\n\n set(obj, prop, value) {\n const fullPath = path ? `${path}.${String(prop)}` : String(prop);\n const oldValue = obj[prop];\n\n // Handle object comparison\n if (typeof value === 'object' && value !== null) {\n if (JSON.stringify(oldValue) !== JSON.stringify(value)) {\n obj[prop] = createProxy(value, callback, fullPath);\n callback(fullPath, oldValue, value);\n }\n } else {\n // Handle primitive value comparison\n if (oldValue !== value) {\n obj[prop] = value;\n callback(fullPath, oldValue, value);\n }\n }\n\n return true;\n },\n\n deleteProperty(obj, prop) {\n const fullPath = path ? `${path}.${String(prop)}` : String(prop);\n const oldValue = obj[prop];\n delete obj[prop];\n callback(fullPath, oldValue, undefined);\n return true;\n }\n });\n}\n\n// Keep project and data in the global scope\nlet app = {\n name: 'Polyrise',\n summary: \"Free Mobile Website Builder!\",\n description: \"Design with Freedom, Build with Power. Free for personal and commercial use.\",\n author: {\n name: 'Michael Schwartz',\n href: 'https://michaelsboost.com/',\n src: 'imgs/author.jpg'\n },\n version: '1.0.2',\n url: 'https://github.com/michaelsboost/Polyrise/',\n license: 'https://github.com/michaelsboost/Polyrise/blob/gh-pages/LICENSE'\n}\nlet p = {\n name: \"App name\",\n version: \"0.0.1\",\n title: \"An attractive title\",\n description: \"The most attractive description ever!\",\n author: \"Polyrise\",\n url: \"https://michaelsboost.com/\",\n meta: \"\",\n libraries: [],\n css: {\n \"rootVariables\": {},\n \"styles\": {},\n \"animations\": {},\n \"breakpoints\": {}\n },\n components: [],\n html: [],\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==\",\n lang: \"en\",\n dark: true,\n previewDark: true,\n pwa: false,\n activePanel: 'layers'\n};\nwindow.generateId = () => {\n let id = '';\n while (!/^[a-zA-Z]/.test(id)) {\n id = Math.random().toString(36).substr(2, 9);\n }\n return id;\n}\nlet d = {\n doNotRender: null,\n shiftKey: null,\n cmdKey: null,\n iframeSize: null,\n commandPalette: false,\n selectedSize: 'none',\n selectedLayerIds: [],\n replaceCurrentSelection: null,\n settings: null,\n searchLibKey: null,\n idMap: null,\n clipboard: null,\n history: [],\n historyIndex: -1,\n componentsVisible: true,\n canvasCollapsed: null,\n rootVarsCollapsed: null,\n stylesCollapsed: null,\n stylePropsCollapsed: null,\n stylePseudosCollapsed: null,\n pseudosSelectorIndex: 0,\n breakpointKey: null,\n pseudosSelector: null,\n propsCollapsed: null,\n stylesPropTarget: \"base\",\n stylesTarget: null,\n animationTarget: null,\n animationKeyframe: null,\n canUseQuickCommands: null,\n cssQuickCommands: {},\n increment: 1,\n chosenFramework: '',\n frameworks: {\n 'alpine.js': {\n libraries: [\n \"https://cdn.jsdelivr.net/npm/alpinejs@3.14.1/dist/cdn.min.js\"\n ],\n meta: ''\n },\n 'bootstrap 5': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js\"\n ],\n meta: ''\n },\n 'bulma': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.4/css/bulma.min.css\"\n ],\n meta: ''\n },\n 'foundation': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.3/css/foundation.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.3/js/foundation.min.js\"\n ],\n meta: ''\n },\n 'materialize': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js\"\n ],\n meta: ''\n },\n 'pico.css': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/picocss/2.0.6/pico.min.css\",\n \"https://michaelsboost.com/TailwindCSSMod/tailwind-mod-noreset.min.js\"\n ],\n meta: ''\n },\n 'semantic': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.2/semantic.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.2/semantic.min.js\"\n ],\n meta: ''\n },\n 'tailwind': {\n libraries: [\n \"https://michaelsboost.com/TailwindCSSMod/tailwind-mod-noreset.min.js\"\n ],\n meta: ''\n },\n 'uikit': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/uikit/3.17.2/css/uikit.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/uikit/3.17.2/js/uikit.min.js\",\n \"https://cdnjs.cloudflare.com/ajax/libs/uikit/3.17.2/js/uikit-icons.min.js\"\n ],\n meta: ''\n },\n 'pure.css': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/pure/2.0.6/pure-min.css\"\n ],\n meta: ''\n },\n 'skeleton': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css\"\n ],\n meta: ''\n },\n 'bulma-extensions': {\n libraries: [\n \"https://cdn.jsdelivr.net/npm/bulma-extensions@6.2.7/css/bulma-extensions.min.css\",\n \"https://cdn.jsdelivr.net/npm/bulma-extensions@6.2.7/js/bulma-extensions.min.js\"\n ],\n meta: ''\n },\n 'tachyons': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/tachyons/4.12.0/tachyons.min.css\"\n ],\n meta: ''\n },\n 'water.css': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/water.css/2.1.1/water.min.css\"\n ],\n meta: ''\n },\n 'spectre.css': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/spectre.css/0.5.9/spectre.min.css\"\n ],\n meta: ''\n },\n 'milligram': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.min.css\"\n ],\n meta: ''\n },\n 'chakra-ui': {\n libraries: [\n \"https://cdn.jsdelivr.net/npm/@chakra-ui/react@2.0.0/dist/chakra-ui.min.css\"\n ],\n meta: ''\n },\n 'gsap': {\n libraries: [\n \"https://unpkg.com/gsap@3/dist/gsap.min.js\"\n ],\n meta: ''\n },\n 'animate.css': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css\"\n ],\n meta: ''\n },\n 'locomotive-scroll': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/locomotive-scroll/4.1.4/locomotive-scroll.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/locomotive-scroll/4.1.4/locomotive-scroll.min.js\"\n ],\n meta: ''\n },\n 'fullpage.js': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.0.11/fullpage.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.0.11/fullpage.min.js\"\n ],\n meta: ''\n },\n 'aos': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/aos/2.3.4/aos.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/aos/2.3.4/aos.js\"\n ],\n meta: ''\n },\n 'swiper': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/Swiper/9.1.2/swiper-bundle.min.css\",\n \"https://cdnjs.cloudflare.com/ajax/libs/Swiper/9.1.2/swiper-bundle.min.js\"\n ],\n meta: ''\n },\n 'barba.js': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/barba.js/2.9.7/barba.min.js\"\n ],\n meta: ''\n },\n 'three.js': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/three.js/r148/three.min.js\"\n ],\n meta: ''\n },\n 'vivus': {\n libraries: [\n \"https://cdnjs.cloudflare.com/ajax/libs/vivus/0.4.6/vivus.min.js\"\n ],\n meta: ''\n }\n },\n defaultValues: {\n \"animation\": \"none\",\n \"animation-delay\": \"0s\",\n \"animation-duration\": \"0s\",\n \"aspect-ratio\": \"auto\",\n \"background\": \"#000000\",\n \"background-color\": \"#000000\",\n \"border-width\": \"0px\",\n \"bottom\": \"auto\",\n \"clip\": \"auto\",\n \"color\": \"#000000\",\n \"column-count\": \"auto\",\n \"column-width\": \"auto\",\n \"columns\": \"auto\",\n \"default\": \"\", // A generic default value for other cases\n \"flex\": \"0 1 auto\",\n \"flex-grow\": \"0\",\n \"flex-shrink\": \"1\",\n \"font-size\": \"16px\",\n \"font-size-adjust\": \"none\",\n \"font-stretch\": \"normal\",\n \"font-weight\": \"400\",\n \"grid-column\": \"auto\",\n \"grid-row\": \"auto\",\n \"height\": \"auto\",\n \"left\": \"auto\",\n \"letter-spacing\": \"normal\",\n \"line-height\": \"normal\",\n \"margin\": \"0px\",\n \"max-height\": \"none\",\n \"max-lines\": \"none\",\n \"max-width\": \"none\",\n \"min-height\": \"0px\",\n \"min-width\": \"0px\",\n \"object-fit\": \"contain\",\n \"object-position\": \"center\",\n \"opacity\": \"1\",\n \"order\": \"0\",\n \"overflow\": \"visible\",\n \"padding\": \"0px\",\n \"perspective\": \"none\",\n \"right\": \"auto\",\n \"rotate\": \"0deg\",\n \"scale\": \"1\",\n \"skew\": \"0deg\",\n \"text-align\": \"left\",\n \"text-decoration\": \"none\",\n \"text-indent\": \"0px\",\n \"text-transform\": \"none\",\n \"top\": \"auto\",\n \"transform\": \"none\",\n \"transition\": \"all 0.3s ease\",\n \"transition-delay\": \"0s\",\n \"transition-duration\": \"0.3s\",\n \"translate\": \"0px\",\n \"visibility\": \"visible\",\n \"white-space\": \"normal\",\n \"width\": \"auto\",\n \"z-index\": \"1\",\n \n // Fixed value properties\n \"position\": \"static\",\n \"display\": \"block\",\n \"overflow\": \"visible\",\n \"visibility\": \"visible\",\n \"float\": \"none\",\n \"clear\": \"none\",\n \"white-space\": \"normal\",\n \"flex-direction\": \"row\",\n \"justify-content\": \"flex-start\",\n \"align-items\": \"stretch\",\n \"align-content\": \"stretch\",\n \"flex-wrap\": \"nowrap\",\n \"background-attachment\": \"scroll\",\n \"background-clip\": \"border-box\",\n \"background-repeat\": \"repeat\",\n \"background-size\": \"auto\",\n \"border-style\": \"none\",\n \"border-width\": \"medium\",\n \"border-collapse\": \"separate\",\n \"caption-side\": \"top\",\n \"cursor\": \"auto\",\n \"direction\": \"ltr\",\n \"empty-cells\": \"show\",\n \"list-style-type\": \"disc\",\n \"list-style-position\": \"outside\",\n \"table-layout\": \"auto\",\n \"text-align\": \"left\",\n \"text-decoration-line\": \"none\",\n \"text-decoration-style\": \"solid\",\n \"text-transform\": \"none\",\n \"unicode-bidi\": \"normal\",\n \"vertical-align\": \"baseline\",\n \"word-break\": \"normal\",\n \"writing-mode\": \"horizontal-tb\",\n \"align-self\": \"auto\",\n \"align-tracks\": \"normal\",\n \"appearance\": \"auto\",\n \"backface-visibility\": \"visible\",\n \"box-sizing\": \"content-box\",\n \"column-fill\": \"balance\",\n \"column-span\": \"none\",\n \"flex-basis\": \"auto\",\n \"flex-grow\": \"0\",\n \"flex-shrink\": \"1\",\n \"font-style\": \"normal\",\n \"font-variant\": \"normal\",\n \"font-weight\": \"normal\",\n \"hyphens\": \"none\",\n \"image-rendering\": \"auto\",\n \"isolation\": \"auto\",\n \"line-break\": \"auto\",\n \"mask-type\": \"luminance\",\n \"mix-blend-mode\": \"normal\",\n \"object-fit\": \"contain\",\n \"overflow-anchor\": \"auto\",\n \"overscroll-behavior\": \"auto\",\n \"page-break-after\": \"auto\",\n \"page-break-before\": \"auto\",\n \"page-break-inside\": \"auto\",\n \"pointer-events\": \"auto\",\n \"resize\": \"none\",\n \"scroll-behavior\": \"auto\",\n \"text-orientation\": \"mixed\",\n \"text-overflow\": \"clip\",\n \"touch-action\": \"auto\",\n \"transform-style\": \"flat\",\n \"user-select\": \"auto\",\n \"word-wrap\": \"normal\",\n }, \n cssFixedValueProperties: {\n \"position\": [\"static\", \"relative\", \"absolute\", \"fixed\", \"sticky\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"display\": [\"block\", \"inline\", \"inline-block\", \"flex\", \"grid\", \"inline-flex\", \"inline-grid\", \"none\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"overflow\": [\"visible\", \"hidden\", \"clip\", \"scroll\", \"auto\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"visibility\": [\"visible\", \"hidden\", \"collapse\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"float\": [\"left\", \"right\", \"none\", \"inline-start\", \"inline-end\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"clear\": [\"none\", \"left\", \"right\", \"both\", \"inline-start\", \"inline-end\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"white-space\": [\"normal\", \"nowrap\", \"pre\", \"pre-wrap\", \"pre-line\", \"break-spaces\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"flex-direction\": [\"row\", \"row-reverse\", \"column\", \"column-reverse\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"justify-content\": [\"flex-start\", \"flex-end\", \"center\", \"space-between\", \"space-around\", \"space-evenly\", \"start\", \"end\", \"left\", \"right\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"align-items\": [\"stretch\", \"flex-start\", \"flex-end\", \"center\", \"baseline\", \"first baseline\", \"last baseline\", \"start\", \"end\", \"self-start\", \"self-end\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"align-content\": [\"stretch\", \"flex-start\", \"flex-end\", \"center\", \"space-between\", \"space-around\", \"space-evenly\", \"start\", \"end\", \"baseline\", \"first baseline\", \"last baseline\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"flex-wrap\": [\"nowrap\", \"wrap\", \"wrap-reverse\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"background-attachment\": [\"scroll\", \"fixed\", \"local\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"background-clip\": [\"border-box\", \"padding-box\", \"content-box\", \"text\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"background-repeat\": [\"repeat\", \"repeat-x\", \"repeat-y\", \"no-repeat\", \"space\", \"round\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"background-size\": [\"auto\", \"cover\", \"contain\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"border-style\": [\"none\", \"hidden\", \"dotted\", \"dashed\", \"solid\", \"double\", \"groove\", \"ridge\", \"inset\", \"outset\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"border-width\": [\"thin\", \"medium\", \"thick\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"border-collapse\": [\"collapse\", \"separate\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"caption-side\": [\"top\", \"bottom\", \"block-start\", \"block-end\", \"inline-start\", \"inline-end\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"cursor\": [\"auto\", \"default\", \"none\", \"context-menu\", \"help\", \"pointer\", \"progress\", \"wait\", \"cell\", \"crosshair\", \"text\", \"vertical-text\", \"alias\", \"copy\", \"move\", \"no-drop\", \"not-allowed\", \"grab\", \"grabbing\", \"all-scroll\", \"col-resize\", \"row-resize\", \"n-resize\", \"e-resize\", \"s-resize\", \"w-resize\", \"ne-resize\", \"nw-resize\", \"se-resize\", \"sw-resize\", \"ew-resize\", \"ns-resize\", \"nesw-resize\", \"nwse-resize\", \"zoom-in\", \"zoom-out\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"direction\": [\"ltr\", \"rtl\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"empty-cells\": [\"show\", \"hide\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"list-style-type\": [\"disc\", \"circle\", \"square\", \"decimal\", \"decimal-leading-zero\", \"lower-roman\", \"upper-roman\", \"lower-greek\", \"lower-alpha\", \"lower-latin\", \"upper-alpha\", \"upper-latin\", \"armenian\", \"georgian\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"list-style-position\": [\"inside\", \"outside\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"table-layout\": [\"auto\", \"fixed\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"text-align\": [\"center\", \"end\", \"justify\", \"left\", \"right\", \"start\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"text-decoration-line\": [\"none\", \"underline\", \"overline\", \"line-through\", \"blink\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"text-decoration-style\": [\"solid\", \"double\", \"dotted\", \"dashed\", \"wavy\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"text-transform\": [\"none\", \"capitalize\", \"uppercase\", \"lowercase\", \"full-width\", \"full-size-kana\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"unicode-bidi\": [\"normal\", \"embed\", \"bidi-override\", \"isolate\", \"isolate-override\", \"plaintext\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"vertical-align\": [\"baseline\", \"sub\", \"super\", \"text-top\", \"text-bottom\", \"middle\", \"top\", \"bottom\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"word-break\": [\"normal\", \"break-all\", \"keep-all\", \"break-word\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"writing-mode\": [\"horizontal-tb\", \"vertical-rl\", \"vertical-lr\", \"sideways-rl\", \"sideways-lr\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"align-self\": [\"auto\", \"stretch\", \"flex-start\", \"flex-end\", \"center\", \"baseline\", \"first baseline\", \"last baseline\", \"start\", \"end\", \"self-start\", \"self-end\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"align-tracks\": [\"normal\", \"start\", \"center\", \"end\", \"stretch\", \"baseline\", \"first baseline\", \"last baseline\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"appearance\": [\"none\", \"auto\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"backface-visibility\": [\"visible\", \"hidden\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"box-sizing\": [\"content-box\", \"border-box\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"column-fill\": [\"auto\", \"balance\", \"balance-all\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"column-span\": [\"none\", \"all\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"flex-basis\": [\"auto\", \"fill\", \"max-content\", \"min-content\", \"fit-content\", \"content\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"flex-grow\": [\"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"flex-shrink\": [\"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"font-style\": [\"normal\", \"italic\", \"oblique\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"font-variant\": [\"normal\", \"small-caps\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"font-weight\": [\"normal\", \"bold\", \"bolder\", \"lighter\",\"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\"],\n \"hyphens\": [\"none\", \"manual\", \"auto\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"image-rendering\": [\"auto\", \"crisp-edges\", \"pixelated\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"isolation\": [\"auto\", \"isolate\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"line-break\": [\"auto\", \"loose\", \"normal\", \"strict\", \"anywhere\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"mask-type\": [\"luminance\", \"alpha\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"mix-blend-mode\": [\"normal\", \"multiply\", \"screen\", \"overlay\", \"darken\", \"lighten\", \"color-dodge\", \"color-burn\", \"hard-light\", \"soft-light\", \"difference\", \"exclusion\", \"hue\", \"saturation\", \"color\", \"luminosity\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"object-fit\": [\"fill\", \"contain\", \"cover\", \"none\", \"scale-down\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"overflow-anchor\": [\"auto\", \"none\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"overscroll-behavior\": [\"auto\", \"contain\", \"none\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"page-break-after\": [\"auto\", \"always\", \"avoid\", \"left\", \"right\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"page-break-before\": [\"auto\", \"always\", \"avoid\", \"left\", \"right\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"page-break-inside\": [\"auto\", \"avoid\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"pointer-events\": [\"auto\", \"none\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"resize\": [\"none\", \"both\", \"horizontal\", \"vertical\", \"block\", \"inline\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"scroll-behavior\": [\"auto\", \"smooth\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"text-orientation\": [\"mixed\", \"upright\", \"sideways\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"text-overflow\": [\"clip\", \"ellipsis\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"touch-action\": [\"auto\", \"none\", \"pan-x\", \"pan-left\", \"pan-right\", \"pan-y\", \"pan-up\", \"pan-down\", \"pinch-zoom\", \"manipulation\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"transform-style\": [\"flat\", \"preserve-3d\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"user-select\": [\"auto\", \"text\", \"none\", \"contain\", \"all\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"word-wrap\": [\"normal\", \"break-word\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"],\n \"writing-mode\": [\"horizontal-tb\", \"vertical-rl\", \"vertical-lr\", \"sideways-rl\", \"sideways-lr\", \"inherit\", \"initial\", \"revert\", \"revert-layer\", \"unset\"]\n },\n cssRangedValueProperties: {\n \"opacity\": { min: 0, max: 1, step: 0.01 },\n \"z-index\": { min: -Infinity, max: Infinity, step: 1 },\n \"line-height\": { min: 0, max: Infinity, step: 0.1 },\n \"flex-grow\": { min: 0, max: Infinity, step: 0.1 },\n \"flex-shrink\": { min: 0, max: Infinity, step: 0.1 },\n \"order\": { min: -Infinity, max: Infinity, step: 1 },\n \"columns\": { min: 1, max: Infinity, step: 1 },\n \"column-count\": { min: 1, max: Infinity, step: 1 },\n \"column-width\": { min: 0, max: Infinity, step: 1 },\n \"font-size\": { min: 0, max: 1, step: 0.01 },\n \"font-size-adjust\": { min: 0, max: 1, step: 0.01 },\n \"letter-spacing\": { min: -Infinity, max: Infinity, step: 0.1 },\n \"word-spacing\": { min: -Infinity, max: Infinity, step: 0.1 },\n \"aspect-ratio\": { min: 0, max: Infinity, step: 0.01 },\n \"border-width\": { min: 0, max: Infinity, step: 1 },\n \"margin\": { min: -Infinity, max: Infinity, step: 1 },\n \"padding\": { min: 0, max: Infinity, step: 1 },\n \"width\": { min: 0, max: Infinity, step: 1 },\n \"height\": { min: 0, max: Infinity, step: 1 },\n \"max-width\": { min: 0, max: Infinity, step: 1 },\n \"max-height\": { min: 0, max: Infinity, step: 1 },\n \"min-width\": { min: 0, max: Infinity, step: 1 },\n \"min-height\": { min: 0, max: Infinity, step: 1 },\n \"top\": { min: -Infinity, max: Infinity, step: 1 },\n \"right\": { min: -Infinity, max: Infinity, step: 1 },\n \"bottom\": { min: -Infinity, max: Infinity, step: 1 },\n \"left\": { min: -Infinity, max: Infinity, step: 1 },\n \"rotate\": { min: -360, max: 360, step: 1 },\n \"scale\": { min: -Infinity, max: Infinity, step: 0.1 },\n \"translate\": { min: -Infinity, max: Infinity, step: 1 },\n \"perspective\": { min: 0, max: Infinity, step: 1 },\n \"skew\": { min: -360, max: 360, step: 1 },\n \"animation-duration\": { min: 0, max: Infinity, step: 0.1 },\n \"animation-delay\": { min: 0, max: Infinity, step: 0.1 },\n \"transition-duration\": { min: 0, max: Infinity, step: 0.1 },\n \"transition-delay\": { min: 0, max: Infinity, step: 0.1 },\n \"letter-spacing\": { min: -Infinity, max: Infinity, step: 0.1 },\n \"text-indent\": { min: -Infinity, max: Infinity, step: 1 }\n },\n boxElements: [\n 'article',\n 'aside',\n 'div',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'hgroup',\n 'label',\n 'li',\n 'main',\n 'nav',\n 'ol',\n 'picture',\n 'section',\n 'template',\n 'ul'\n ],\n textElements: [\n 'a',\n 'abbr',\n 'address',\n 'b',\n 'bdi',\n 'bdo',\n 'blockquote',\n 'button',\n 'cite',\n 'code',\n 'del',\n 'em',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'mark',\n 'output',\n 'p',\n 'samp',\n 'small',\n 'span',\n 'strike',\n 'strong',\n 'summary',\n 'sub',\n 'sup',\n 'time',\n 'u',\n 'var'\n ],\n breakElements: [\n 'br',\n 'hr',\n 'wbr'\n ],\n blocks: {\n visible: true,\n name: \"Elements\",\n items: [\n {\n type: \"box\",\n code: '<div></div>'\n },\n {\n type: \"text\",\n code: '<p>text</p>'\n },\n {\n type: \"link\",\n code: '<a href=\"https://michaelsboost.com/Polyrise\">Polyrise</a>'\n },\n {\n type: \"button\",\n code: '<button>text</button>'\n },\n {\n type: \"list\",\n code: '<ul><li>list item</li></ul>'\n },\n {\n type: \"progress\",\n code: '<progress value=\"25\" max=\"100\" />'\n },\n {\n type: \"form\",\n code: `<form>\n <input\n type=\"text\"\n name=\"firstname\"\n placeholder=\"First name\"\n aria-label=\"First name\"\n required\n />\n <input\n type=\"email\"\n name=\"email\"\n placeholder=\"Email address\"\n aria-label=\"Email address\"\n autocomplete=\"email\"\n required\n />\n <button type=\"submit\">Subscribe</button>\n <fieldset>\n <label for=\"terms\">\n <input type=\"checkbox\" role=\"switch\" id=\"terms\" name=\"terms\" />\n <span>I agree to the </span>\n <a href=\"#\">Privacy Policy</a>\n </label>\n </fieldset>\n </form>`\n },\n {\n type: \"datalist\",\n code: `<input list=\"eus29efzy\" type=\"search\" placeholder=\"Search...\" />\n <datalist id=\"eus29efzy\">\n <option value=\"Hello\"></option>\n <option value=\"World\"></option>\n </list>`\n },\n {\n type: \"textarea\",\n code: `<textarea placeholder=\"Text here\">Hello world</textarea>`\n },\n {\n type: \"select\",\n code: `<select>\n <optgroup label=\"English\">\n <option value=\"Hello\" selected>Hello</option>\n <option value=\"World\">World</option>\n </optgroup>\n <optgroup label=\"Espa\u00F1ol\">\n <option value=\"Hola\">Hola</option>\n <option value=\"Mundo\">Mundo</option>\n </optgroup>\n </select>`\n },\n {\n type: \"audio\",\n code: `<figure>\n <audio controls>\n <source src=\"https://www.w3schools.com/html/horse.mp3\" type=\"audio/mpeg\">\n Your browser does not support the audio element.\n </audio>\n <figcaption>\n <span>Audio courtesy of </span>\n <a href=\"https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_audio_all\" target=\"_blank\">w3schools.com</a>\n </figcaption>\n </figure>`\n },\n {\n type: \"video\",\n code: `<figure>\n <video controls>\n <source src=\"https://www.w3schools.com/html/mov_bbb.mp4\" type=\"video/mp4\">\n <source src=\"https://www.w3schools.com/html/mov_bbb.ogg\" type=\"video/ogg\">\n Your browser does not support the video tag.\n </video>\n <figcaption>\n <span>Video courtesy of </span>\n <a href=\"https://www.bigbuckbunny.org/\" target=\"_blank\">Big Buck Bunny</a>\n <span>.</span>\n </figcaption>\n </figure>`\n },\n {\n type: \"YouTube Video\",\n code: `<iframe width=\"576\" height=\"360\" src=\"https://www.youtube.com/embed/5rebMQj4Yiw\" title=\"Introducing my Character Party App\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>`\n },\n {\n type: \"image\",\n code: `<figure>\n <picture>\n <img src=\"https://cdn.pixabay.com/photo/2015/10/16/19/18/balloon-991680_1280.jpg\" alt=\"${app.name}\">\n </picture>\n <figcaption>\n <span>Image courtesy of </span>\n <a href=\"https://pixabay.com/photos/balloon-heart-love-red-romantic-991680/\" target=\"_blank\">Pixabay.com</a>\n <span>.</span>\n </figcaption>\n</figure>\n`\n },\n {\n type: \"vector\",\n code: `<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"isolation:isolate\" viewBox=\"0 0 1080 1080\" preserveAspectRatio=\"xMidYMin\">\n <rect width=\"1080\" height=\"1080\" style=\"fill:rgb(248,255,247)\">\n </rect>\n <line x1=\"159.75\" y1=\"926\" x2=\"920.25\" y2=\"926\" stroke-width=\"18\" stroke=\"rgb(220,223,220)\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"3\">\n </line>\n <g>\n <g>\n <path d=\" M 544.801 430.75 Q 544.801 504.551 544.801 580.75 Q 544.801 656.948 544.801 743.75\" fill=\"none\" stroke-width=\"50\" stroke=\"rgb(253,222,189)\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"3\">\n </path>\n <g>\n <path d=\" M 401.518 559.186 C 386.621 532.744 379.123 501.761 381.611 469.256 C 388.303 381.839 464.707 316.3 552.124 322.992 C 639.542 329.683 705.081 406.088 698.389 493.505 C 695.901 526.01 683.774 555.49 665.026 579.357 L 401.518 559.186 Z \" fill=\"rgb(255,146,108)\">\n </path>\n <path d=\" M 401.518 559.186 C 426.684 603.855 472.963 635.566 527.876 639.77 C 582.788 643.973 633.355 619.675 665.026 579.357 L 401.518 559.186 Z \" fill=\"rgb(0,72,99)\">\n </path>\n</g>\n<g>\n<line x1=\"553.901\" y1=\"760.75\" x2=\"553.901\" y2=\"908.75\" stroke-width=\"38\" stroke=\"rgb(0,72,99)\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"3\">\n</line>\n<line x1=\"553.901\" y1=\"618.75\" x2=\"553.901\" y2=\"760.75\" stroke-width=\"38\" stroke=\"rgb(0,72,99)\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"3\">\n</line>\n</g>\n<g>\n<line x1=\"500\" y1=\"760.75\" x2=\"500\" y2=\"908.75\" stroke-width=\"38\" stroke=\"rgb(0,72,99)\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"3\">\n</line>\n<line x1=\"500\" y1=\"618.75\" x2=\"500\" y2=\"760.75\" stroke-width=\"38\" stroke=\"rgb(0,72,99)\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"3\">\n</line>\n</g>\n<path d=\" M 544.801 430.75 Q 544.801 504.551 544.801 580.75 Q 544.801 656.948 544.801 743.75\" fill=\"none\" stroke-width=\"50\" stroke=\"rgb(253,222,189)\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"3\">\n</path>\n</g>\n<path d=\" M 496.638 228.982 C 499.271 194.588 529.332 168.802 563.726 171.435 C 598.12 174.068 623.906 204.129 621.273 238.523 C 618.64 272.917 588.579 298.703 554.185 296.07 C 519.791 293.438 494.005 263.376 496.638 228.982 Z \" fill=\"rgb(253,222,189)\">\n</path>\n</g>\n<g style=\"mix-blend-mode:soft-light;\">\n <rect x=\"0\" y=\"0\" width=\"1080\" height=\"1080\" transform=\"matrix(1,0,0,1,0,0)\" fill=\"rgb(243,255,241)\">\n </rect>\n</g>\n</svg>`\n },\n {\n type: \"iframe\",\n code: `<iframe src=\"https://michaelsboost.com/\">\n Your browser does not support the iframe tag.\n </iframe>`\n },\n {\n type: \"dialog\",\n code: `<dialog open>\n <article>\n <header>\n <button aria-label=\"Close\" rel=\"prev\" onclick=\"this.closest('dialog').removeAttribute('open');\"></button>\n <h3>Confirm your action!</h3>\n </header>\n <p>\n Cras sit amet maximus risus. Pellentesque sodales odio sit amet augue finibus\n pellentesque. Nullam finibus risus non semper euismod.\n </p>\n <footer>\n <button role=\"button\" class=\"secondary\" onclick=\"this.closest('dialog').removeAttribute('open');\">\n Cancel\n </button>\n <button autofocus onclick=\"this.closest('dialog').removeAttribute('open');\">\n Confirm\n </button>\n </footer>\n </article>\n</dialog>`\n },\n {\n type: \"details\",\n code: `<details>\n <summary>Accordion</summary>\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque urna diam,\n tincidunt nec porta sed, auctor id velit. Etiam venenatis nisl ut orci consequat, vitae\n tempus quam commodo. Nulla non mauris ipsum. Aliquam eu posuere orci. Nulla convallis\n lectus rutrum quam hendrerit, in facilisis elit sollicitudin. Mauris pulvinar pulvinar\n mi, dictum tristique elit auctor quis. Maecenas ac ipsum ultrices, porta turpis sit\n amet, congue turpis.\n </p>\n</details>`\n },\n {\n type: \"canvas\",\n code: `<canvas>Your browser does not support the canvas element.</canvas>`\n },\n {\n type: \"meter\",\n code: '<meter value=\"0.6\">60%</meter>'\n },\n {\n type: \"style\",\n code: {\n \"tag\": \"style\",\n \"id\": `${generateId()}`,\n \"style\": \"\",\n \"state\": {\n \"collapsed\": false,\n \"visible\": true,\n \"selected\": false\n },\n \"name\": \"style\",\n \"type\": \"style\",\n \"text\": \"\",\n \"props\": {\n \"type\": \"text/css\"\n }\n }\n },\n {\n type: \"script\",\n code: {\n \"tag\": \"script\",\n \"id\": `${generateId()}`,\n \"style\": \"\",\n \"state\": {\n \"collapsed\": false,\n \"visible\": true,\n \"selected\": false\n },\n \"name\": \"script\",\n \"type\": \"script\",\n \"text\": \"\",\n \"props\": {\n \"type\": \"module\"\n }\n }\n },\n {\n type: \"hr\",\n code: '<hr/>'\n } \n ]\n }\n};\nconst icons = (function() {\n const SidebarIconCSS = \"h-4 w-4\";\n const navIconCSS = \"h-3 w-3\";\n const modalIconCSS = \"h-4 w-4\";\n const previewIconCSS = \"h-3\";\n\n return {\n logo: `<svg\n class=\"${SidebarIconCSS}\" \n width=\"512\"\n height=\"512\"\n viewBox=\"0 0 135.46666 135.46667\"\n xml:space=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\">\n <path\n d=\"M 9.5828775,0.26613362 V 135.20053 L 25.387597,126.03107 V 28.326953 l 70.325939,39.315946 -57.93083,32.387691 v 18.81073 L 125.88224,67.733332 Z M 37.783223,46.606974 V 88.679857 L 75.411417,67.643416 Z\" />\n </svg>`,\n twitter: `<svg class=\"${SidebarIconCSS}\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <defs\n id=\"defs2\"><clipPath\n clipPathUnits=\"userSpaceOnUse\"\n id=\"clipPath7\"><path\n style=\"display:none;fill:#2a34ff;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1\"\n d=\"M 2.7194315,3.6106111 H 8.5920036 L 21.280954,20.389389 h -5.727371 z\"\n id=\"path7\" /><path\n id=\"lpe_path-effect7\"\n style=\"fill:#2a34ff;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1\"\n class=\"powerclip\"\n d=\"M -2.8448815,-3.9722732 H 26.113213 V 27.972273 H -2.8448815 Z M 2.7194315,3.6106111 15.553583,20.389389 h 5.727371 L 8.5920036,3.6106111 Z\" /></clipPath><clipPath\n clipPathUnits=\"userSpaceOnUse\"\n id=\"clipPath11\"><rect\n style=\"fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1\"\n id=\"rect11\"\n width=\"21.586601\"\n height=\"18.278778\"\n x=\"1.2021173\"\n y=\"2.8606112\" /></clipPath></defs><g\n style=\"fill:none;stroke:currentColor;stroke-width:1.5\"\n id=\"g2\"\n transform=\"translate(-0.04613684)\"><g\n id=\"g8\"\n clip-path=\"url(#clipPath11)\"><path\n d=\"M 2.7194315,3.6106111 H 8.5920036 L 21.280954,20.389389 h -5.727371 z\"\n id=\"path2-8\" /><path\n d=\"M 20.541589,1.5132639 19.650846,2.5619375 18.760104,3.6106111 17.869362,4.6592848 16.978619,5.7079584 16.087877,6.756632 15.197135,7.8053056 14.306392,8.8539793 13.41565,9.9026529 12.524908,10.951326 11.634165,12 10.743423,13.048674 9.852681,14.097347 8.961938,15.146021 8.071196,16.194695 7.1804539,17.243368 6.2897116,18.292042 5.3989693,19.340715 4.5082269,20.389389 3.6174846,21.438063 2.7267423,22.486736\"\n id=\"path4\"\n clip-path=\"url(#clipPath7)\" /></g></g>\n </svg>`,\n heart: `<svg class=\"w-3\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\" />\n </svg>`,\n plus: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\" />\n </svg>`,\n layers: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.429 9.75 2.25 12l4.179 2.25m0-4.5 5.571 3 5.571-3m-11.142 0L2.25 7.5 12 2.25l9.75 5.25-4.179 2.25m0 0L21.75 12l-4.179 2.25m0 0 4.179 2.25L12 21.75 2.25 16.5l4.179-2.25m11.142 0-5.571 3-5.571-3\" />\n </svg>`,\n swatch: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.098 19.902a3.75 3.75 0 0 0 5.304 0l6.401-6.402M6.75 21A3.75 3.75 0 0 1 3 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 0 0 3.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88c.438-.439 1.15-.439 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75v-.008Z\" />\n </svg>`,\n sun: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z\" />\n </svg>`,\n moon: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z\" />\n </svg>`,\n play: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z\" />\n </svg>`,\n camera: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.827 6.175A2.31 2.31 0 0 1 5.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 0 0-1.134-.175 2.31 2.31 0 0 1-1.64-1.055l-.822-1.316a2.192 2.192 0 0 0-1.736-1.039 48.774 48.774 0 0 0-5.232 0 2.192 2.192 0 0 0-1.736 1.039l-.821 1.316Z\" />\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 12.75a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0ZM18.75 10.5h.008v.008h-.008V10.5Z\" />\n </svg>`,\n cog: `<svg class=\"${SidebarIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\" />\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\" />\n </svg>`,\n rotate: `<svg class=\"${previewIconCSS}\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\" />\n </svg>`,\n times: `<svg class=\"${modalIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18 18 6M6 6l12 12\" />\n </svg>`,\n search: `<svg class=\"${modalIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z\" />\n </svg>`,\n file: `<svg class=\"h-3 -mt-1\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\">\n <path d=\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\" />\n </svg>`,\n import: `<svg class=\"h-3 -mt-1 transform origin-center scale-125\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\" />\n </svg>`,\n upload: `<svg class=\"${modalIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5\" />\n </svg>`,\n download: `<svg class=\"h-3 -mt-1 transform origin-center scale-125\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\" />\n </svg>`,\n codepen: `<svg class=\"h-3 -mt-1 transform origin-center scale-125\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\" />\n </svg>`,\n arrowDown: `<svg class=\"${navIconCSS}\" viewBox='0 0 576 512' style='color: unset;'>\n <path \n fill='currentColor' \n d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/>\n </svg>`,\n eye: `<svg class=\"${navIconCSS}\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path \n fill=\"currentColor\" \n d=\"M572.52,241.4c-1.5-1.8-38.5-46-93.94-90.67C417.8,111.16,358.8,85.33,288,85.33S158.2,111.16,97.42,150.72C41.98,195.4,4.98,239.6,3.48,241.4A32,32,0,0,0,0,256a32,32,0,0,0,3.48,14.6c1.5,1.8,38.5,46,93.94,90.67C158.2,400.84,217.2,426.67,288,426.67s129.8-25.83,190.58-65.4c55.44-44.67,92.44-88.87,93.94-90.67A32,32,0,0,0,576,256,32,32,0,0,0,572.52,241.4ZM288,384a128,128,0,1,1,128-128A128,128,0,0,1,288,384Zm0-192a64,64,0,1,0,64,64A64,64,0,0,0,288,192Z\"/>\n </svg>`,\n eyeSlash: `\n <svg class=\"${navIconCSS}\" viewBox=\"0 0 640 512\" style=\"color: unset;\">\n <path \n fill=\"currentColor\" \n d=\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z\"/>\n </svg>`,\n commandKey: `<svg class=\"${navIconCSS}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-0.7 -0.596 432.75714 370.21021\">\n <path\n fill=\"currentColor\"\n stroke-width=\"1.82857\"\n d=\"M 90.010716,-37.596 C 39.849447,-37.596 -0.7,2.9560437 -0.7,52.854 c 0,50.16127 40.812759,90.97356 90.710716,90.57858 h 42.392864 v 70.83214 H 90.010716 C 39.849447,214.26472 -0.7,254.68463 -0.7,304.58258 c 0,50.29293 40.549447,90.57857 90.710716,90.57857 49.897964,0 90.450004,-40.28564 90.450004,-90.57857 v -42.26429 h 70.56786 v 42.26429 c 0,50.29293 40.41681,90.57857 90.44642,90.57857 50.16127,0 90.58215,-40.28564 90.58215,-90.57857 0,-49.89795 -40.42088,-90.31786 -90.58215,-90.31786 H 299.08215 V 143.43258 H 341.475 c 50.16127,0 90.58215,-40.41731 90.58215,-90.57858 0,-49.8979563 -40.42088,-90.45 -90.58215,-90.45 -50.02961,0 -90.70974,40.5520437 -90.44642,90.45 V 95.511146 H 180.46072 V 52.854 c 0,-49.8979563 -40.55204,-90.45 -90.450004,-90.45 z m 0.13214,48.053572 c 23.303254,0 42.260724,18.961043 42.260724,42.264285 V 95.378996 H 90.142856 c -23.69819,0 -42.657141,-18.95892 -42.657141,-42.657139 0,-23.303242 18.958951,-42.264285 42.657141,-42.264285 z m 251.203574,0 c 23.69822,0 42.65715,18.961043 42.65715,42.264285 0,23.698219 -18.95893,42.657139 -42.65715,42.657139 H 299.08215 V 52.721857 c 0,-23.303242 18.96105,-42.264285 42.26428,-42.264285 z M 180.46072,143.56472 h 70.7 v 70.7 h -70.7 z M 90.142856,262.31829 h 42.260724 v 42.26429 c 0,23.6982 -18.95747,42.65714 -42.260724,42.65714 -23.69819,0 -42.657141,-18.95894 -42.657141,-42.65714 0,-23.30325 18.958951,-42.26429 42.657141,-42.26429 z m 208.939294,0 h 42.26428 c 23.69822,0 42.65715,18.96104 42.65715,42.26429 0,23.6982 -18.95893,42.65714 -42.65715,42.65714 -23.30323,0 -42.26428,-18.95894 -42.26428,-42.65714 z\" />\n</svg>`,\n plusFill: `<svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>`,\n shift: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"up-long\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192h88l0 288c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32l0-288h88c9.6 0 18.2-5.7 22-14.5z\"></path></svg>`,\n move: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"arrows-up-down-left-right\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"></path></svg>`,\n undo: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"arrow-rotate-left\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"></path></svg>`,\n redo: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"arrow-rotate-right\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"></path></svg>`,\n trash: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"trash\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"></path></svg>`,\n clone: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"clone\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M0 448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H224c-53 0-96-43-96-96V160H64c-35.3 0-64 28.7-64 64V448zm224-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"></path></svg>`,\n cut: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"scissors\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM160 112c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM112 448c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"></path></svg>`,\n copy: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"copy\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M224 0c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224zM64 160c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64H64V224h64V160H64z\"></path></svg>`,\n group: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"hand-pointer\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v32 64c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"></path></svg>`,\n paste: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"paste\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V256H416c-17.7 0-32-14.3-32-32V128H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm256 88v96h96l-96-96z\"></path></svg>`,\n bold: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"bold\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"></path></svg>`,\n italic: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"italic\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"></path></svg>`,\n underline: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"underline\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"></path></svg>`,\n strike: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"strikethrough\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"></path></svg>`,\n subscript: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"subscript\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"></path></svg>`,\n superscript: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"superscript\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"></path></svg>`,\n heading: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"heading\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"></path></svg>`,\n paragraph: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"paragraph\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"></path></svg>`,\n quote: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"quote-left\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"></path></svg>`,\n link: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"></path></svg>`,\n listBullet: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"list-ul\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M64 144c26.5 0 48-21.5 48-48s-21.5-48-48-48S16 69.5 16 96s21.5 48 48 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48-208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"></path></svg>`,\n listNumbers: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"list-ol\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"></path></svg>`,\n icons: `<svg class=\"${navIconCSS}\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"icons\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M532.3 7.3C539.7 13.3 544 22.4 544 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L384 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM106.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L245.3 304H272c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48h26.7zM224 408c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM510.7 278.3L472.3 368H528c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L423.7 400H368c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L51.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"></path></svg>`\n };\n})();\n\n// Reactive objects\nwindow.project = createProxy(p, (property, oldValue, newValue) => {\n if (oldValue !== newValue) {\n localStorage.setItem('Polyrise', JSON.stringify(project));\n \n // Split the property path into components\n const propertyParts = property.split('.');\n\n // Check for specific property changes\n if (propertyParts[0] === 'activePanel') {\n getIFrameClientSize();\n }\n\n if (!App.initialRender) {\n // List of properties that should not trigger App.render\n const noRenderProps = ['lang', 'title', 'description', 'author', 'url', 'meta', 'previewDark'];\n\n // Check if the change is within project.html and is a text property\n if (propertyParts[0] === 'html' && propertyParts.includes('text')) {\n // Only text property changed, so only render preview\n renderPreview();\n } else if (noRenderProps.includes(propertyParts[0])) {\n // If the changed property is in noRenderProps, only render the preview\n renderPreview();\n } else {\n // Handle full render or specific actions\n App.render('#app');\n\n // Diff nodes for other changes\n const diff = ['lang', 'libraries', 'html', 'css', 'title', 'description', 'author', 'url', 'meta', 'previewDark'];\n if (diff.includes(propertyParts[0])) {\n renderPreview();\n }\n\n if (propertyParts[0] === \"dark\") {\n App.render('#app');\n document.documentElement.setAttribute('data-theme', project.dark ? 'dark' : 'light');\n document.querySelector('meta[name=apple-mobile-web-app-status-bar-style]').setAttribute('content', project.dark ? 'black-translucent' : 'default');\n document.querySelector('meta[name=theme-color]').setAttribute('content', project.dark ? '#13171f' : '#ffffff');\n document.querySelector('meta[name=msapplication-navbutton-color]').setAttribute('content', project.dark ? '#13171f' : '#ffffff');\n }\n }\n }\n }\n});\n\nwindow.data = createProxy(d, (property, oldValue, newValue) => {\n // Only render if the actual value has changed\n if (oldValue !== newValue) {\n const string = property.toString();\n if (string === \"stylesTarget\") {\n if (data.stylesTarget) {\n if (data.shiftKey) {\n data.selectedLayerIds = [];\n selectLayersByStyleRef(data.stylesTarget, project.html);\n }\n }\n }\n App.render('#app');\n }\n});\n\n// Components\nfunction LeftMenubar() {\n const buttonSize = \"w-full\";\n\n return `<ul class=\"p-0 m-0\">\n <li class=\"list-none m-0\">\n <button\n aria-label=\"toggle menu\"\n name=\"toggle menu\"\n class=\"${buttonSize} text-sm border-0 px-0 py-3 rounded-md bg-transparent\"\n style=\"color: unset;\"\n onclick=\"data.menuDialog = true\"\n >\n ${icons.logo}\n </button>\n </li>\n <li class=\"list-none m-0\">\n <a\n aria-label=\"developer's twitter page\"\n name=\"developer's twitter page\"\n class=\"${buttonSize} text-sm border-0 px-4 py-3 rounded-md bg-transparent\"\n style=\"color: unset;\"\n role=\"button\"\n href=\"https://twitter.com/michaelsboost\"\n >\n ${icons.twitter}\n </a>\n </li>\n <li class=\"list-none m-0\">\n <a\n href=\"https://michaelsboost.com/donate/\"\n aria-label=\"Donation helps developer maintence\"\n target=\"_blank\"\n role=\"button\"\n class=\"${buttonSize} text-sm border-0 px-4 py-3 rounded-md bg-transparent text-red-400\"\n >\n ${icons.heart}\n </a>\n </li>\n <li class=\"list-none m-0\">\n <button \n aria-label=\"add blocks\" \n name=\"add blocks\" \n class=\"w-11 text-sm border-0 px-0 py-3 mb-2\"\n onclick=\"Blocks()\"\n >\n ${icons.plus}\n </button>\n </li>\n</ul>\n<ul class=\"p-0 m-0\">\n <li class=\"list-none m-0\">\n <button\n aria-label=\"toggle layers\"\n name=\"toggle layers\"\n class=\"${buttonSize} text-sm border-0 px-0 py-3 rounded-md bg-transparent ${project.activePanel === 'layers' ? 'text-blue-500' : ''}\"\n onclick=\"project.activePanel = project.activePanel === 'layers' ? null : 'layers'\"\n >\n ${icons.layers}\n </button>\n </li>\n <li class=\"list-none m-0\">\n <button\n aria-label=\"toggle inspector\"\n name=\"toggle inspector\"\n class=\"${buttonSize} text-sm border-0 px-0 py-3 rounded-md bg-transparent ${project.activePanel === 'inspector' ? 'text-blue-500' : ''} lg:hidden\"\n onclick=\"project.activePanel = project.activePanel === 'inspector' ? null : 'inspector'\"\n >\n ${icons.swatch}\n </button>\n </li>\n</ul>\n<ul class=\"p-0 m-0\">\n <li class=\"list-none m-0\">\n <button\n aria-label=\"toggle theme\"\n name=\"toggle theme\"\n class=\"${buttonSize} text-sm border-0 px-0 py-3 rounded-md bg-transparent\"\n style=\"color: unset;\"\n onclick=\"project.previewDark = !project.previewDark;\"\n >\n ${project.previewDark ? icons.sun : icons.moon}\n </button>\n </li>\n <li class=\"list-none m-0\">\n <button\n aria-label=\"render preview\"\n name=\"render preview\"\n class=\"${buttonSize} text-sm border-0 px-0 py-3 rounded-md bg-transparent\"\n style=\"color: unset;\"\n onclick=\"renderPreview(true)\"\n >\n ${icons.play}\n </button>\n </li>\n <li class=\"list-none m-0\">\n <button\n aria-label=\"full page screenshot\"\n name=\"full page screenshot\"\n class=\"${buttonSize} text-sm border-0 px-0 py-3 rounded-md bg-transparent\"\n style=\"color: unset;\"\n onclick=\"screenshot()\"\n >\n ${icons.camera}\n </button>\n </li>\n <li class=\"list-none m-0\">\n <button\n aria-label=\"settings button\"\n name=\"settings\"\n class=\"${buttonSize} text-sm border-0 px-4 py-3 rounded-md bg-transparent -mt-1\"\n style=\"color: unset;\"\n onclick=\"data.settings = !data.settings;\"\n >\n ${icons.cog}\n </button>\n </li>\n</ul>`;\n}\nfunction Menu() {\n let menuDialog = `<ul class=\"py-4 px-0\">\n <li class=\"list-none\">\n <div class=\"items-center text-center\">\n <div>\n <a \n aria-label=\"project homepage\"\n name=\"project homepage\"\n target=\"_blank\" \n href=\"${app.url}\">\n <img \n alt=\"logo\"\n class=\"my-4 w-24 m-auto\"\n src=\"imgs/logo.svg\"\n loading=\"lazy\" />\n </a>\n <div class=\"text-2xl\">\n About ${app.name}\n </div>\n <div class=\"my-2 text-xs\">\n Version ${app.version}\n </div>\n <a \n target=\"_blank\" \n class=\"text-sm underline mb-2 text-blue-500\" \n href=\"${app.license}\">\n Open Source License\n </a>\n </div>\n </div>\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"p-0 list-none -mt-2\">\n <button \n class=\"w-full flex gap-2 text-sm capitalize border-0 p-2 rounded-md bg-transparent\" \n style=\"color: unset;\" \n onclick=\"newProject();\">\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\" />\n </svg>\n <span>new project</span>\n </button>\n </li>\n <li class=\"p-0 list-none\">\n <button \n class=\"w-full flex gap-2 text-sm capitalize border-0 p-2 rounded-md bg-transparent\" \n style=\"color: unset;\" \n onclick=\"data.menuDialog = null; importProject()\">\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12-3-3m0 0-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\" />\n </svg>\n <span>import project</span>\n </button>\n </li>\n <li class=\"p-0 list-none\">\n <button \n class=\"w-full flex gap-2 text-sm capitalize border-0 p-2 rounded-md bg-transparent\" \n style=\"color: unset;\" \n onclick=\"data.menuDialog = null; downloadJSON()\">\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15M9 12l3 3m0 0 3-3m-3 3V2.25\" />\n </svg>\n <span>download json</span>\n </button>\n </li>\n <li class=\"p-0 list-none\">\n <button \n class=\"w-full flex gap-2 text-sm capitalize border-0 p-2 rounded-md bg-transparent\" \n style=\"color: unset;\" \n onclick=\"data.menuDialog = null; downloadProject()\">\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\" />\n </svg>\n <span>download zip</span>\n </button>\n </li>\n <li class=\"p-0 list-none\">\n <button \n class=\"w-full flex gap-2 text-sm capitalize border-0 p-2 rounded-md bg-transparent\" \n style=\"color: unset;\" \n onclick=\"data.menuDialog = null; share()\">\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M7.217 10.907a2.25 2.25 0 1 0 0 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186 9.566-5.314m-9.566 7.5 9.566 5.314m0 0a2.25 2.25 0 1 0 3.935 2.186 2.25 2.25 0 0 0-3.935-2.186Zm0-12.814a2.25 2.25 0 1 0 3.933-2.185 2.25 2.25 0 0 0-3.933 2.185Z\" />\n </svg>\n <span>share to codepen</span>\n </button>\n </li>\n <li class=\"p-0 list-none\">\n <button \n aria-label=\"Empty storage saved from Polyrise\"\n name=\"Empty storage saved from Polyrise\"\n class=\"w-full flex gap-2 text-sm capitalize border-0 p-2 rounded-md bg-transparent\" \n style=\"color: unset;\" \n onclick=\"emptyStorage()\">\n <svg class=\"h-5 w-5\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\">\n <path d=\"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6l0 29.1L364.3 320l29.1 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z\"/>\n </svg>\n <span>empty storage</span>\n </button>\n </li>\n </ul>`;\n menuDialog = `<dialog ${data.menuDialog ? 'open' : ''}>\n <article class=\"rounded-md\">\n <header class=\"flex justify-between items-center\">\n <h1 class=\"text-lg font-thin m-0 capitalize\">\n file menu\n </h1>\n <button \n class=\"text-xs w-auto px-3 py-2 m-0 capitalize rounded-md bg-transparent border-0\" \n style=\"color: unset;\" \n aria-label=\"Close\"\n onclick=\"data.menuDialog = null\">\n ${icons.times}\n </button>\n </header>\n <main class=\"font-thin\">\n ${menuDialog}\n </main>\n <footer>\n <button \n class=\"text-xs w-auto px-3 py-2 m-0 capitalize rounded-md bg-transparent border ${project.dark ? 'border-gray-600' : 'border-gray-200'}\" \n style=\"color: unset;\" \n aria-label=\"Close\" \n onclick=\"data.menuDialog = null\">\n close\n </button>\n </footer>\n </article>\n </dialog>`;\n return menuDialog;\n}\nfunction Settings() {\n let frameworks = data.frameworks;\n\n // Get the keys, sort them alphabetically, and reduce them back into an object\n let sortedFrameworks = Object.keys(frameworks)\n .sort()\n .reduce((acc, key) => {\n acc[key] = frameworks[key];\n return acc;\n }, {});\n\n let settingsHTML = `<ul class=\"px-0\">\n <li class=\"list-none\">\n <div class=\"mb-2\">\n <input \n id=\"pjqgd1wka\"\n type=\"file\" \n name=\"project logo\" \n class=\"hidden\"\n onchange=\"handleLogoChange(event)\"\n />\n <label \n for=\"pjqgd1wka\"\n class=\"mb-2 flex justify-between items-center cursor-pointer\">\n <span>Project logo:</span>\n\n <img \n id=\"projectLogo\"\n class=\"w-8\"\n alt=\"Project Logo\"\n src=\"${project.logo}\"\n loading=\"lazy\">\n </label>\n </div>\n </li>\n <li class=\"list-none\">\n <nav class=\"flex justify-between mt-5 items-center\">\n <label \n for=\"o14tigo4m\"\n class=\"mb-2 flex justify-between items-center cursor-pointer\">\n <span>Dark:</span>\n </label>\n\n <input \n id=\"o14tigo4m\"\n class=\"m-0\"\n type=\"checkbox\" \n role=\"switch\"\n name=\"toggle css reset\"\n onchange=\"project.dark = this.checked;\"\n ${project.dark ? 'checked=\"true\"' : ''}\n />\n </nav>\n </li>\n <li class=\"list-none\">\n <nav class=\"flex justify-between mt-5 items-center\">\n <label \n for=\"osbpm2k0q\"\n class=\"mb-2 flex justify-between items-center cursor-pointer\">\n <span>PWA:</span>\n </label>\n\n <input \n id=\"osbpm2k0q\"\n class=\"m-0\"\n type=\"checkbox\" \n role=\"switch\"\n name=\"export project as a pwa\"\n onchange=\"project.pwa = this.checked\"\n ${project.pwa ? 'checked=\"true\"' : ''}\n />\n </nav>\n </li>\n <li class=\"list-none\">\n <button\n aria-label=\"empty history\"\n name=\"empty history\"\n class=\"capitalize py-2 w-full items-center rounded-md\"\n onclick=\"\n data.history = [];\n data.historyIndex = -1;\n this.closest('dialog[open]').querySelector('header button').onclick();\n \">\n <span class=\"text-[.75rem]\">\n empty history\n </span>\n </button>\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <nav class=\"flex justifu-between -mt-3 items-center\">\n <label \n for=\"wl7i1adq7\"\n class=\"m-0 flex justify-between items-center cursor-pointer\">\n <span>Libraries:</span>\n </label>\n\n <button\n aria-label=\"search libraries\"\n name=\"search libraries\"\n class=\"bg-transparent border-0 focus-within:shadow-none\"\n style=\"color: unset;\"\n onclick=\"librariesDialog();\">\n ${icons.search}\n </button>\n </nav>\n\n <select onchange=\"\n if (this.value) {\n data.chosenFramework = this.value.toLowerCase();\n let framework = data.frameworks[\\`\\${data.chosenFramework}\\`];\n if (!project.libraries.includes(framework.libraries)) {\n for (item of framework.libraries) {\n project.libraries.push(item);\n }\n }\n if (framework.meta) project.meta += framework.meta;\n } else {\n data.chosenFramework = '';\n }\n \">\n <option value=\"\" ${!data.chosenFramework ? 'selected' : ''}>-- Popular Libraries/Frameworks --</option>\n ${Object.keys(sortedFrameworks).map(framework => {\n // Lowercase except first character is uppercase\n let name = framework.toLowerCase();\n name = name.charAt(0).toUpperCase() + name.slice(1);\n return `<option value=\"${name}\" ${name === data.chosenFramework ? 'selected' : ''}>${name}</option>`\n }).join('')}\n </select>\n\n <div id=\"librariesBox\">\n ${project.libraries.map((library, index) => `\n <nav class=\"flex justify-between py-2\" data-index=\"${index}\">\n <input \n type=\"text\" \n placeholder=\"https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.15.2/Sortable.min.js\" \n data=\"library\" \n class=\"w-full pl-3 pr-0 rounded-md rounded-r-none focus:shadow-none\"\n style=\"margin-bottom: 0;\"\n value=\"${library}\" \n oninput=\"project.libraries[${index}] = this.value; renderPreview(true);\" />\n <button \n aria-label=\"delete library\"\n name=\"delete library\"\n class=\"px-3 py-[15px] h-full border-0 rounded-md rounded-l-none\"\n onclick=\"project.libraries.splice(${index}, 1); renderPreview(true);\">\n ${icons.trash}\n </button>\n </nav>\n `).join('')}\n </div>\n <button \n aria-label=\"add another library or framework\" \n name=\"add another library or framework\" \n onclick=\"project.libraries.push('')\" \n class=\"capitalize py-2 w-full items-center rounded-md\">\n <span class=\"text-[.75rem]\">\n Add another\n </span>\n </button>\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <div class=\"mb-2\">\n Project name:\n </div>\n <input \n type=\"text\" \n name=\"project name\"\n placeholder=\"Project name\" \n class=\"p-2 rounded-md w-full\" \n value=\"${project.name}\"\n oninput=\"project.name = this.value;\"\n />\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <div class=\"mb-2\">\n Project version:\n </div>\n <section class=\"flex justify-between gap-4\">\n <input \n type=\"number\" \n min=\"0\"\n step=\"1\"\n name=\"project-major-version\"\n placeholder=\"Major\"\n class=\"p-2 rounded-md w-full\" \n value=\"${project.version.split('.')[0]}\"\n oninput=\"updateVersionPart('major', this.value);\"\n />\n <input \n type=\"number\" \n min=\"0\"\n step=\"1\"\n name=\"project-minor-version\"\n placeholder=\"Minor\" \n class=\"p-2 rounded-md w-full\" \n value=\"${project.version.split('.')[1]}\"\n oninput=\"updateVersionPart('minor', this.value);\"\n />\n <input \n type=\"number\" \n min=\"0\"\n step=\"1\"\n name=\"project-patch-version\"\n placeholder=\"Patch\" \n class=\"p-2 rounded-md w-full\" \n value=\"${project.version.split('.')[2]}\"\n oninput=\"updateVersionPart('patch', this.value);\"\n />\n </section>\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <div class=\"mb-2\">\n Project title:\n </div>\n <input \n type=\"text\" \n name=\"project title\"\n placeholder=\"Project title\"\n class=\"p-2 rounded-md w-full\" \n value=\"${project.title}\"\n oninput=\"project.title = this.value;\"\n />\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <div class=\"mb-2\">\n Project description:\n </div>\n <textarea \n name=\"project description\"\n placeholder=\"Project description\" \n class=\"p-2 rounded-md w-full resize-vertical h-56\"\n oninput=\"project.description = this.value;\"\n >${project.description}</textarea>\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <div class=\"mb-2\">\n Project author:\n </div>\n <input \n type=\"text\" \n name=\"project author\"\n placeholder=\"Project author\" \n class=\"p-2 rounded-md w-full\" \n value=\"${project.author}\"\n oninput=\"project.author = this.value;\"\n />\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <div class=\"mb-2\">\n Project url:\n </div>\n <input \n type=\"text\" \n name=\"project url\"\n placeholder=\"Project url\" \n class=\"p-2 rounded-md w-full\" \n value=\"${project.url}\"\n oninput=\"project.url = this.value;\"\n />\n </li>\n <li class=\"p-0 list-none\">\n <hr />\n </li>\n <li class=\"list-none\">\n <div class=\"my-2\">\n HTML before closing head tag:\n </div>\n <textarea \n placeholder=\"HTML before closing </head> tag\" \n class=\"p-2 rounded-md w-full resize-vertical h-56\"\n oninput=\"project.meta = this.value;\"\n >${project.meta}</textarea>\n </li>\n </ul>`;\n settingsHTML = `<dialog ${data.settings ? 'open' : ''}>\n <article class=\"rounded-md\">\n <header class=\"flex justify-between items-center\">\n <h1 class=\"text-lg font-thin m-0 capitalize\">\n settings\n </h1>\n <button \n class=\"text-xs w-auto px-3 py-2 m-0 capitalize rounded-md bg-transparent border-0\" \n style=\"color: unset;\" \n aria-label=\"Close\"\n onclick=\"data.settings = null; data.chosenFramework = '';\">\n ${icons.times}\n </button>\n </header>\n <main class=\"font-thin\">\n ${settingsHTML}\n </main>\n <footer>\n <button \n class=\"text-xs w-auto px-3 py-2 m-0 capitalize rounded-md bg-transparent border ${project.dark ? 'border-gray-600' : 'border-gray-200'}\" \n style=\"color: unset;\" \n aria-label=\"Close\" \n onclick=\"data.settings = null; data.chosenFramework = '';\">\n close\n </button>\n </footer>\n </article>\n </dialog>`;\n return settingsHTML;\n}\nwindow.librariesDialog = () => {\n let libraries = `<div class=\"p-4\">\n <input \n id=\"searchInput\" \n type=\"search\" \n placeholder=\"Search for resources (JQuery, Bootstrap, Foundation...)\" \n class=\"w-full p-3 rounded-full bg-[#1c212c]\" \n oninput=\"this.value ? data.searchLibKey = this.value : data.searchLibKey = null; data.searchLibKey ? fetchSuggestions(data.searchLibKey) : ''\" />\n \n <div id=\"pruz9lb2p\" class=\"relative px-4 capitalize h-auto max-h-64 overflow-auto\"></div>\n </div>`;\n\n Modal.render({\n title: \"Search for resources (JQuery, Bootstrap, Foundation...)\",\n content: libraries,\n onLoad() {\n document.getElementById('searchInput').focus();\n }\n });\n}\nwindow.attributesModal = () => {\n const globalAttributes = [\n \"accesskey\", \"autocapitalize\", \"autofocus\", \"class\", \"contenteditable\", \n \"dir\", \"exportparts\", \"hidden\", \"id\", \"inert\", \"inputmode\", \"is\", \n \"itemid\", \"itemprop\", \"itemref\", \"itemscope\", \"itemtype\", \"lang\", \n \"nonce\", \"part\", \"popover\", \"role\", \"slot\", \"spellcheck\", \"tabindex\", \n \"translate\"\n ];\n const eventAttributes = [\n \"onabort\", \"onautocomplete\", \"onautocompleteerror\", \"onblur\", \"oncancel\", \n \"oncanplay\", \"oncanplaythrough\", \"onchange\", \"onclick\", \"onclose\", \n \"oncontextmenu\", \"oncuechange\", \"ondblclick\", \"ondrag\", \"ondragend\", \n \"ondragenter\", \"ondragleave\", \"ondragover\", \"ondragstart\", \"ondrop\", \n \"ondurationchange\", \"onemptied\", \"onended\", \"onerror\", \"onfocus\", \n \"oninput\", \"oninvalid\", \"onkeydown\", \"onkeypress\", \"onkeyup\", \"onload\", \n \"onloadeddata\", \"onloadedmetadata\", \"onloadstart\", \"onmousedown\", \n \"onmouseenter\", \"onmouseleave\", \"onmousemove\", \"onmouseout\", \n \"onmouseover\", \"onmouseup\", \"onmousewheel\", \"onpause\", \"onplay\", \n \"onplaying\", \"onprogress\", \"onratechange\", \"onreset\", \"onresize\", \n \"onscroll\", \"onseeked\", \"onseeking\", \"onselect\", \"onshow\", \"onsort\", \n \"onstalled\", \"onsubmit\", \"onsuspend\", \"ontimeupdate\", \"ontoggle\", \n \"onvolumechange\", \"onwaiting\"\n ];\n\n // Initialize `common` first\n const commonEventGroup = [\n \"onclick\", \"ondblclick\", \"onmousedown\", \"onmouseup\", \"onmouseover\", \"onmouseout\", \"onmouseenter\", \"onmouseleave\", \"oncontextmenu\"\n ];\n const dragDropEventGroup = [\n \"ondragstart\", \"ondragend\", \"ondrop\", \"ondragenter\", \"ondragleave\",\n \"ondragover\", ...commonEventGroup\n ];\n\n const eventGroups = {\n common: commonEventGroup,\n formControls: [\n \"onchange\", \"oninput\", \"onfocus\", \"onblur\"\n ],\n buttonControls: [\n \"onchange\", \"oninput\", \"onfocus\", \"onblur\", ...commonEventGroup\n ],\n dragDrop: [\n ...dragDropEventGroup\n ],\n detailControls: [\n \"ontoggle\"\n ],\n dialogControls: [\n \"onclose\", \"oncancel\", ...dragDropEventGroup\n ],\n media: [\n \"onabort\", \"oncanplay\", \"oncanplaythrough\", \"ondurationchange\", \"onemptied\",\n \"onended\", \"onerror\", \"onloadeddata\", \"onloadedmetadata\", \"onloadstart\",\n \"onpause\", \"onplay\", \"onplaying\", \"onprogress\", \"onratechange\", \"onseeked\",\n \"onseeking\", \"onstalled\", \"onsuspend\", \"ontimeupdate\", \"onvolumechange\",\n \"onwaiting\"\n ],\n body: [\n \"onafterprint\", \"onbeforeprint\", \"onbeforeunload\", \"onhashchange\",\n \"onlanguagechange\", \"onmessage\", \"onmessageerror\", \"onoffline\", \"ononline\",\n \"onpopstate\", \"onrejectionhandled\", \"onstorage\", \"onunhandledrejection\",\n \"onunload\"\n ],\n loadError: [\n \"onload\", \"onerror\"\n ]\n };\n\n const tagEventGroups = [\n { tags: ['form', 'input', 'select', 'textarea'], events: ['formControls'] },\n { tags: ['canvas', 'map', 'meter', 'svg', 'path', 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon', 'text', 'use', 'symbol', 'linearGradient', 'radialGradient', 'stop', 'clipPath', 'mask', 'filter', 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence'], events: ['common'] },\n { tags: ['a', 'button'], events: ['buttonControls'] },\n { tags: ['details'], events: ['detailControls'] },\n { tags: ['dialog'], events: ['dialogControls'] },\n { tags: ['audio', 'video'], events: ['media'] },\n { tags: ['html'], events: ['common', 'body'] },\n { tags: ['script', 'img'], events: ['loadError'] },\n { tags: ['div', 'section', 'article', 'aside', 'header', 'footer', 'nav', 'main', 'figure', 'figcaption'], events: ['dragDrop'] },\n { tags: ['table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td', 'col', 'colgroup', 'caption'], events: ['common'] },\n { tags: ['fieldset', 'label', 'legend'], events: ['common'] },\n { tags: ['iframe', 'embed', 'object', 'param'], events: ['common'] },\n { tags: ['output', 'del', 'ins', 'marquee', 'meter', 'time', 'data'], events: ['common'] }\n ];\n\n function combineEventGroups(groups) {\n return Array.from(new Set(groups.flatMap(group => eventGroups[group])));\n }\n\n function generateEventMappings() {\n const elementEventMappings = {};\n\n tagEventGroups.forEach(group => {\n const combinedEvents = combineEventGroups(group.events);\n group.tags.forEach(tag => {\n elementEventMappings[tag] = combinedEvents;\n });\n });\n\n return elementEventMappings;\n }\n\n const elementEventMappings = generateEventMappings();\n \n const specificAttributes = {\n input: [\"accept\", \"alt\", \"autocomplete\", \"checked\", \"dirname\", \"disabled\", \"form\", \"formaction\", \"formenctype\", \"formmethod\", \"formnovalidate\", \"formtarget\", \"height\", \"list\", \"max\", \"maxlength\", \"min\", \"minlength\", \"multiple\", \"name\", \"pattern\", \"placeholder\", \"readonly\", \"required\", \"size\", \"src\", \"step\", \"type\", \"value\", \"width\"],\n select: [\"autofocus\", \"disabled\", \"form\", \"multiple\", \"name\", \"required\", \"size\"],\n option: [\"disabled\", \"label\", \"selected\", \"value\"],\n optgroup: [\"disabled\", \"label\"],\n textarea: [\"autocapitalize\", \"autocomplete\", \"cols\", \"dirname\", \"disabled\", \"form\", \"maxlength\", \"minlength\", \"name\", \"placeholder\", \"readonly\", \"required\", \"rows\", \"wrap\"],\n img: [\"alt\", \"crossorigin\", \"decoding\", \"height\", \"importance\", \"intrinsicsize\", \"ismap\", \"loading\", \"referrerpolicy\", \"sizes\", \"src\", \"srcset\", \"usemap\", \"width\"],\n a: [\"download\", \"href\", \"hreflang\", \"ping\", \"referrerpolicy\", \"rel\", \"target\", \"type\"],\n button: [\"autofocus\", \"disabled\", \"form\", \"formaction\", \"formenctype\", \"formmethod\", \"formnovalidate\", \"formtarget\", \"name\", \"type\", \"value\"],\n fieldset: [\"disabled\", \"form\", \"name\"],\n label: [\"for\"],\n iframe: [\"allow\", \"allowfullscreen\", \"allowpaymentrequest\", \"height\", \"loading\", \"name\", \"referrerpolicy\", \"sandbox\", \"src\", \"srcdoc\", \"width\"],\n audio: [\"autoplay\", \"controls\", \"crossorigin\", \"loop\", \"muted\", \"preload\", \"src\"],\n video: [\"autoplay\", \"controls\", \"crossorigin\", \"height\", \"loop\", \"muted\", \"playsinline\", \"poster\", \"preload\", \"src\", \"width\"],\n source: [\"media\", \"sizes\", \"src\", \"srcset\", \"type\"],\n track: [\"default\", \"kind\", \"label\", \"src\", \"srclang\"],\n form: [\"accept-charset\", \"action\", \"autocomplete\", \"enctype\", \"method\", \"name\", \"novalidate\", \"target\"],\n meta: [\"charset\", \"content\", \"http-equiv\", \"name\"],\n link: [\"as\", \"crossorigin\", \"href\", \"hreflang\", \"media\", \"referrerpolicy\", \"rel\", \"sizes\", \"type\"],\n script: [\"async\", \"crossorigin\", \"defer\", \"integrity\", \"nomodule\", \"referrerpolicy\", \"src\", \"type\"],\n style: [\"media\", \"scoped\", \"type\"],\n ol: [\"reversed\", \"start\", \"type\"],\n li: [\"value\"],\n table: [\"border\"],\n th: [\"colspan\", \"headers\", \"rowspan\", \"scope\"],\n tr: [\"align\", \"bgcolor\", \"valign\"],\n td: [\"abbr\", \"align\", \"axis\", \"bgcolor\", \"colspan\", \"headers\", \"height\", \"rowspan\", \"scope\", \"valign\", \"width\"],\n progress: [\"max\", \"value\"],\n meter: [\"high\", \"low\", \"max\", \"min\", \"optimum\", \"value\"],\n object: [\"data\", \"form\", \"height\", \"name\", \"type\", \"usemap\", \"width\"],\n embed: [\"height\", \"src\", \"type\", \"width\"],\n param: [\"name\", \"value\"],\n area: [\"alt\", \"coords\", \"download\", \"href\", \"hreflang\", \"ping\", \"referrerpolicy\", \"rel\", \"shape\", \"target\"],\n col: [\"span\", \"width\"],\n colgroup: [\"span\"],\n map: [\"name\"],\n track: [\"default\", \"kind\", \"label\", \"src\", \"srclang\"],\n canvas: [\"height\", \"width\"],\n data: [\"value\"],\n time: [\"datetime\"],\n output: [\"for\", \"form\", \"name\"],\n del: [\"cite\", \"datetime\"],\n ins: [\"cite\", \"datetime\"],\n details: [\"open\"],\n dialog: [\"open\"],\n marquee: [\"behavior\", \"bgcolor\", \"direction\", \"height\", \"hspace\", \"loop\", \"scrollamount\", \"scrolldelay\", \"truespeed\", \"vspace\", \"width\"],\n meter: [\"high\", \"low\", \"max\", \"min\", \"optimum\", \"value\"],\n\n svg: [\"width\", \"height\", \"viewBox\", \"preserveAspectRatio\", \"xmlns\"],\n path: [\"d\", \"pathLength\"],\n rect: [\"x\", \"y\", \"width\", \"height\", \"rx\", \"ry\"],\n circle: [\"cx\", \"cy\", \"r\"],\n ellipse: [\"cx\", \"cy\", \"rx\", \"ry\"],\n line: [\"x1\", \"y1\", \"x2\", \"y2\"],\n polyline: [\"points\"],\n polygon: [\"points\"],\n text: [\"x\", \"y\", \"dx\", \"dy\", \"rotate\", \"textLength\", \"lengthAdjust\"],\n use: [\"href\", \"x\", \"y\", \"width\", \"height\"],\n symbol: [\"viewBox\", \"preserveAspectRatio\"],\n linearGradient: [\"x1\", \"y1\", \"x2\", \"y2\", \"gradientUnits\", \"gradientTransform\", \"spreadMethod\"],\n radialGradient: [\"cx\", \"cy\", \"r\", \"fx\", \"fy\", \"fr\", \"gradientUnits\", \"gradientTransform\", \"spreadMethod\"],\n stop: [\"offset\", \"stop-color\", \"stop-opacity\"],\n clipPath: [\"clipPathUnits\"],\n mask: [\"maskUnits\", \"maskContentUnits\", \"x\", \"y\", \"width\", \"height\"],\n filter: [\"x\", \"y\", \"width\", \"height\", \"filterUnits\", \"primitiveUnits\"],\n feBlend: [\"in\", \"in2\", \"mode\"],\n feColorMatrix: [\"in\", \"type\", \"values\"],\n feComponentTransfer: [\"in\"],\n feComposite: [\"in\", \"in2\", \"operator\", \"k1\", \"k2\", \"k3\", \"k4\"],\n feConvolveMatrix: [\"in\", \"order\", \"kernelMatrix\", \"divisor\", \"bias\", \"targetX\", \"targetY\", \"edgeMode\", \"preserveAlpha\"],\n feDiffuseLighting: [\"in\", \"surfaceScale\", \"diffuseConstant\", \"kernelUnitLength\"],\n feDisplacementMap: [\"in\", \"in2\", \"scale\", \"xChannelSelector\", \"yChannelSelector\"],\n feDistantLight: [\"azimuth\", \"elevation\"],\n feFlood: [\"flood-color\", \"flood-opacity\"],\n feFuncA: [\"type\", \"tableValues\", \"slope\", \"intercept\", \"amplitude\", \"exponent\", \"offset\"],\n feFuncB: [\"type\", \"tableValues\", \"slope\", \"intercept\", \"amplitude\", \"exponent\", \"offset\"],\n feFuncG: [\"type\", \"tableValues\", \"slope\", \"intercept\", \"amplitude\", \"exponent\", \"offset\"],\n feFuncR: [\"type\", \"tableValues\", \"slope\", \"intercept\", \"amplitude\", \"exponent\", \"offset\"],\n feGaussianBlur: [\"in\", \"stdDeviation\", \"edgeMode\"],\n feImage: [\"href\", \"preserveAspectRatio\", \"x\", \"y\", \"width\", \"height\", \"result\"],\n feMergeNode: [\"in\"], // Used within feMerge, no additional attributes\n feMorphology: [\"in\", \"operator\", \"radius\"],\n feOffset: [\"in\", \"dx\", \"dy\"],\n fePointLight: [\"x\", \"y\", \"z\"],\n feSpecularLighting: [\"in\", \"surfaceScale\", \"specularConstant\", \"specularExponent\", \"kernelUnitLength\"],\n feSpotLight: [\"x\", \"y\", \"z\", \"pointsAtX\", \"pointsAtY\", \"pointsAtZ\", \"specularExponent\", \"limitingConeAngle\"],\n feTile: [\"in\"],\n feTurbulence: [\"baseFrequency\", \"numOctaves\", \"seed\", \"stitchTiles\", \"type\"],\n };\n\n // Helper to find common tags\n function areCommonLayerTags(layers) {\n if (layers.length === 0) return [];\n \n // Extract the tag from each layer\n const firstTag = layers[0].tag;\n const allSame = layers.every(layer => layer.tag === firstTag);\n \n // If all tags are the same, return the full layers array; otherwise, return an empty array\n return allSame ? true : false;\n }\n \n // Retrieve and aggregate attributes for selected layers\n const selectedLayers = data.selectedLayerIds.map(id => findLayerById(id, project.html).layer).filter(layer => layer);\n const detectCommonLayerTags = areCommonLayerTags(selectedLayers);\n\n function renderAttributeButtons(attributes) {\n return attributes\n .filter(attr => !data.searchTerm || attr.includes(data.searchTerm))\n .map(attr => `\n <button \n class=\"text-xs w-auto px-3 py-2 m-0 capitalize rounded-md bg-transparent border \n ${project.dark ? 'border-gray-600' : 'border-gray-300'}\"\n style=\"color: unset;\"\n onclick=\"\n const textfield = document.getElementById('hyfb8mxg0');\n const val = textfield.value.trim();\n\n if (!val) {\n textfield.value = '${attr}';\n return;\n }\n textfield.value += ',${attr}';\n \">\n ${attr}\n </button>`\n ).join('');\n };\n\n let attributesModal = \"\";\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n\n let specificAttributesForTag = specificAttributes[layer.tag] ? specificAttributes[layer.tag] : null;\n // if (data.selectedLayerIds.length > 0) specificAttributesForTag = [];\n\n let attrBtns = null;\n if (data.boxElements.includes(layer.tag) || data.textElements.includes(layer.tag)) {\n const detectTag = ['a', 'button', 'form', 'input', 'select', 'textarea'];\n if ((detectTag.includes(layer.tag))) {\n attrBtns = renderAttributeButtons(elementEventMappings[layer.tag]);\n } else {\n attrBtns = renderAttributeButtons(elementEventMappings['div']);\n }\n } else if (data.breakElements.includes(layer.tag)) {\n attrBtns = null\n } else {\n attrBtns = renderAttributeButtons(elementEventMappings[layer.tag] || eventAttributes);\n }\n\n attributesModal = `\n <div class=\"flex flex-col gap-4\">\n ${specificAttributesForTag && detectCommonLayerTags ? `\n <details \n class=\"flex items-center mt-4 mb-0\" \n ${data.specificAttributesForTag ? 'open' : ''}\n ontoggle=\"\n const detailsElement = this;\n data.specificAttributesForTag = detailsElement.hasAttribute('open');\n \">\n <summary>\n Specific Attributes for <${layer.tag}>\n </summary>\n <code class=\"grid grid-cols-2 gap-2 mb-0 bg-transparent\">\n ${renderAttributeButtons(specificAttributesForTag)}\n </code>\n </details>\n\n <hr/>` : ''}\n\n <details \n class=\"flex items-center ${specificAttributesForTag && detectCommonLayerTags ? '' : 'mt-4'} mb-0\" \n ${data.globalAttributesCollapsed ? 'open' : ''}\n ontoggle=\"\n const detailsElement = this;\n data.globalAttributesCollapsed = detailsElement.hasAttribute('open');\n \">\n <summary>\n Global Attributes\n </summary>\n <code class=\"grid grid-cols-2 gap-2 mb-0 bg-transparent\">\n ${renderAttributeButtons(globalAttributes)}\n </code>\n </details>\n\n <hr/>\n\n <details \n class=\"flex items-center mb-0\" \n ${data.eventAttributesCollapsed ? 'open' : ''}\n ontoggle=\"\n const detailsElement = this;\n data.eventAttributesCollapsed = detailsElement.hasAttribute('open');\n \">\n <summary>\n Event Attributes for <${layer.tag}>\n </summary>\n <code class=\"grid grid-cols-2 gap-2 mb-0 bg-transparent\">\n ${attrBtns}\n </code>\n </details>\n\n <hr/>\n\n <input \n id=\"hyfb8mxg0\"\n type=\"text\" \n placeholder=\"Enter custom attribute...\" \n class=\"rounded-full border p-2 flex-grow\"\n style=\"margin: 0;\"\n onkeydown=\"\n if (event.key === 'Enter' && this.value.trim()) {\n addAttribute(this.value);\n document.querySelector('dialog[open]').querySelector('header > button').onclick();\n }\n \"\n />\n </div>`;\n });\n\n Modal.render({\n title: \"Add An Attribute\",\n content: attributesModal,\n onLoad() {\n document.getElementById('hyfb8mxg0').focus();\n },\n onClose() {\n \n },\n onConfirm() {\n addAttribute(document.getElementById('hyfb8mxg0').value.trim());\n }\n });\n}\nfunction LayerTree() {\n // Function to render each layer recursively\n function renderLayer(layer) {\n const { id, name, children, state } = layer;\n const hasChildren = children && children.length > 0;\n const isVisible = state.visible;\n if (data.shiftKey && data.cmdKey && layer.style === data.stylesTarget) {\n layer.state.selected = true;\n }\n\n // HTML structure for each layer\n const listItem = `\n <li class=\"list-none select-none\">\n <code class=\"p-0 flex justify-between whitespace-nowrap min-w-min ${state.selected ? 'bg-[#0172ad] text-white' : ''}\" data-layer=\"${id}\">\n <span>\n <button \n aria-label=\"toggle layer children\"\n name=\"toggle layer children\"\n class=\"bg-transparent ${hasChildren ? '' : 'hidden'} border-0 p-2 text-xs transform transition-transform\" style=\"color: unset; transform: ${state.collapsed ? 'rotate(-90deg)' : 'rotate(0deg)'};\"\n onclick=\"toggleCollapse('${id}')\">\n ${hasChildren ? icons.arrowDown : ''}\n </button>\n <button \n aria-label=\"toggle layer visibility\"\n name=\"toggle layer visibility\"\n class=\"bg-transparent border-0 p-2 text-xs\" style=\"color: unset;\"\n onclick=\"toggleVisible('${id}')\">\n ${isVisible ? icons.eye : icons.eyeSlash}\n </button>\n </span>\n <button \n aria-label=\"toggle selected layer\"\n name=\"toggle selected layer\"\n class=\"bg-transparent border-0 p-2 text-xs w-full text-right capitalize\" \n style=\"color: unset;\"\n onclick=\"selectedBlock('${id}')\"\n >\n ${name}\n </button>\n </code>\n ${hasChildren ? `<ul class=\"mt-1 mb-1 -ml-4 ${state.collapsed ? 'hidden' : ''}\">` + children.map(child => renderLayer(child)).join('') + '</ul>' : ''}\n </li>\n `;\n\n return listItem;\n }\n\n return project.html.map(layer => renderLayer(layer)).join('');\n}\nfunction Inspector() {\n if (data.editorNavState) return;\n\n // Helper to find common layer tags & attributes\n function findCommonLayerTags(layers) {\n if (layers.length === 0) return [];\n const firstTag = layers[0].tag;\n return layers.every(layer => layer.tag === firstTag) ? layers : [];\n }\n function findCommonAttributes(layers) {\n if (layers.length === 0) return {};\n const attributeCounts = {};\n\n layers.forEach(layer => {\n Object.keys(layer.props || {}).forEach(prop => {\n attributeCounts[prop] = (attributeCounts[prop] || 0) + 1;\n });\n });\n\n return Object.fromEntries(\n Object.entries(attributeCounts)\n .filter(([key, count]) => count === layers.length)\n .map(([key]) => [key, layers[0].props[key]])\n );\n }\n\n // Constants and helper functions\n let buttonItemClass = 'bg-transparent border-0 text-[.6rem] p-0 m-0 h-full capitalize text-left';\n const buttonAddItemClass = 'bg-transparent border-0 p-0 text-right';\n const RenameOrDeleteButtonClass = 'bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-center p-2 border';\n const selectClass = 'm-0 w-auto rounded-md capitalize text-[.6rem]';\n const selectStyle = 'padding: .5rem; background-image: none;';\n const inputClass = 'w-auto rounded-md normal-case text-[.6rem]';\n const inputStyle = 'height: auto; margin: 0; padding: .4rem;';\n const textareaClass = 'w-auto rounded-md normal-case text-[.6rem] resize-vertical';\n const textareaStyle = 'height: 5rem; margin: 0; padding: .4rem;';\n const mediaClass = 'cursor-pointer w-full my-2';\n\n const languages = {\n 'en': 'English', // English\n 'es': 'Espa\u00F1ol', // Spanish\n 'zh': '\u4E2D\u6587', // Chinese\n 'hi': '\u0939\u093F\u0928\u094D\u0926\u0940', // Hindi\n 'ar': '\u0627\u0644\u0639\u0631\u0628\u064A\u0629', // Arabic\n 'fr': 'Fran\u00E7ais', // French\n 'ru': '\u0420\u0443\u0441\u0441\u043A\u0438\u0439', // Russian\n 'pt': 'Portugu\u00EAs', // Portuguese\n 'de': 'Deutsch', // German\n 'ja': '\u65E5\u672C\u8A9E', // Japanese\n 'ko': '\uD55C\uAD6D\uC5B4', // Korean\n 'it': 'Italiano', // Italian\n 'tr': 'T\u00FCrk\u00E7e', // Turkish\n 'vi': 'Ti\u1EBFng Vi\u1EC7t', // Vietnamese\n 'pl': 'Polski' // Polish\n };\n const sizeOptions = {\n Phones: {\n '320x480': 'iPhone 3GS',\n '375x667': 'iPhone 6/7/8',\n '414x736': 'iPhone 6/7/8 Plus',\n '375x812': 'iPhone X/XS/11 Pro',\n '414x896': 'iPhone XR/XS Max/11/11 Pro Max',\n '360x640': 'Samsung Galaxy S5',\n '360x740': 'Samsung Galaxy S8+',\n '1440x3200': 'Samsung Galaxy S21 Ultra',\n '1080x2340': 'Google Pixel 5',\n '1080x2400': 'OnePlus 8 Pro',\n '1440x3200': 'Xiaomi Mi 11 Ultra',\n '1644x3840': 'Sony Xperia 1 III'\n },\n Tablets: {\n '2048x2732': 'iPad Pro 12.9\" (3rd/4th Gen)',\n '2388x1668': 'iPad Pro 11\" (1st/2nd/3rd Gen)',\n '2736x1824': 'Microsoft Surface Pro 7',\n '2800x1752': 'Samsung Galaxy Tab S7+',\n '2560x1600': 'Huawei MatePad Pro',\n '2000x1200': 'Lenovo Tab P11 Pro',\n '1920x1200': 'Amazon Fire HD 10',\n '1536x2048': 'iPad Air (3rd Gen)',\n '1620x2160': 'iPad Air (4th Gen)',\n '1620x2160': 'iPad 10.2\" (8th Gen)',\n '1668x2224': 'iPad Pro 11\" (2021)'\n },\n Desktops: {\n '3840x2160': '4K UHD (3840x2160)',\n '2560x1440': 'WQHD (2560x1440)',\n '1920x1080': 'Full HD (1920x1080)',\n '1366x768': 'Laptop (1366x768)',\n '3440x1440': 'UltraWide QHD (3440x1440)',\n '5120x2880': '5K Retina (5120x2880)',\n '1280x800': 'MacBook (1280x800)',\n '2560x1600': 'MacBook Pro (2560x1600)',\n '2880x1800': 'MacBook Pro Retina (2880x1800)'\n }\n };\n const booleanAttributes = [\n \"autofocus\", \"autoplay\", \"checked\", \"controls\", \"default\", \"defer\", \"disabled\", \n \"formnovalidate\", \"hidden\", \"loop\", \"multiple\", \"muted\", \"novalidate\", \"open\", \n \"contenteditable\", \"readonly\", \"required\", \"reversed\", \"scoped\", \"seamless\", \"selected\"\n ];\n const inputTypes = [\n \"button\", \"checkbox\", \"color\", \"date\", \"datetime-local\", \"email\", \"file\", \"hidden\",\n \"image\", \"month\", \"number\", \"password\", \"radio\", \"range\", \"reset\", \"search\", \"submit\",\n \"tel\", \"text\", \"time\", \"url\", \"week\"\n ];\n const numberAttributes = [\"max\", \"maxlength\", \"min\", \"minlength\", \"multiple\", \"range\", \"size\", \"step\"];\n const stringAttributes = [\"accept\", \"acceptCharset\", \"accesskey\", \"action\", \"align\", \"alt\", \"autocomplete\", \"form\", \"list\", \"pattern\", \"placeholder\", \"src\", \"tabindex\", \"title\", \"type\", \"usemap\", \"value\"];\n const selectedLayers = data.selectedLayerIds.map(id => findLayerById(id, project.html).layer).filter(layer => layer);\n const commonLayerTag = findCommonLayerTags(selectedLayers);\n const commonAttributes = findCommonAttributes(selectedLayers);\n const cssFixedValueProperties = data.cssFixedValueProperties;\n const cssRangedValueProperties = data.cssRangedValueProperties;\n const boxElements = data.boxElements;\n const textElements = data.textElements;\n const breakElements = data.breakElements;\n\n // Simplify rendering functions\n function renderBooleanAttribute(name, value) {\n return `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${name}')\">${name}</button>\n <button class=\"${buttonItemClass} p-1 text-right\" style=\"color: unset;\" onclick=\"removeProp('${name}')\">${value ? 'Yes' : 'No'}</button>\n `;\n }\n function renderInput(name, type, value, min, max, step) {\n return `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${name}')\">${name}</button>\n <input \n class=\"${inputClass}\" \n style=\"${inputStyle}\" \n type=\"${type}\" \n placeholder=\"Use {n} for incremental text\" \n value=\"${value}\" ${min ? `min=\"${min}\"` : ''} ${max ? `max=\"${max}\"` : ''} ${step ? `step=\"${step}\"` : ''} \n oninput=\"updateElement('props', '${name}', this.value, true)\" \n onfocus=\"saveState()\" \n onblur=\"saveState()\"\n />\n `;\n }\n function renderTextarea(name, value) {\n return `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${name}')\">${name}</button>\n <textarea \n class=\"${textareaClass}\" \n style=\"${textareaStyle}\" \n placeholder=\"Use {n} for incremental text\" \n oninput=\"updateElement('props', '${name}', this.value, true)\" \n onfocus=\"saveState()\" \n onblur=\"saveState()\"/>${value}</textarea>\n `;\n }\n \n // Functions to generate HTML sections\n const generatePreviewSize = () => `\n <div class=\"grid grid-cols-1 gap-1 items-center pt-2 capitalize\">\n <label for=\"selectedSize\" aria-label=\"resize canvas\" class=\"m-auto\">\n <select id=\"selectedSize\" onchange=\"resizeCanvas(this.value)\" class=\"${selectClass}\" style=\"padding: .5rem; background-image: none;\">\n <option value=\"none\" ${data.selectedSize === \"none\" ? 'selected' : ''}>Select Size</option>\n ${Object.keys(sizeOptions).map(group => `\n <optgroup label=\"${group}\">\n ${Object.keys(sizeOptions[group]).map(option => `\n <option value=\"${option}\" ${data.selectedSize === option ? 'selected' : ''}>${sizeOptions[group][option]}</option>\n `).join('')}\n </optgroup>\n `).join('')}\n </select>\n </label>\n <button \n aria-label=\"rotate canvas\"\n name=\"rotate canvas\" \n class=\"bg-transparent border-0 p-0 text-center w-full mr-1 ${data.selectedSize === 'none' ? 'hidden' : ''}\"\n style=\"color: unset;\"\n onclick=\"rotateCanvas()\">\n ${icons.rotate}\n </button>\n </div>\n\n <div class=\"grid grid-cols-2 gap-1 items-center pt-2 capitalize\">\n <span class=\"text-[.6rem] h-full capitalize\">language</span>\n <select onchange=\"project.lang = this.value;\" class=\"${selectClass}\" style=\"padding: .5rem; background-image: none;\">\n ${Object.keys(languages).map(lang => `\n <option value=\"${lang}\">${languages[lang]}</option>\n `).join('')}\n </select>\n </div>\n `;\n\n const processStyles = (stylesObject, selectorPrefix, key, detect = null) => {\n let styles = '';\n\n // Regular expression to detect color values\n const colorRegex = /^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i;\n \n // List of properties that should use a textarea\n const complexProperties = [\n 'background', 'background-image', 'box-shadow', 'text-shadow',\n 'border', 'border-radius', 'border-image', 'filter', 'transform'\n ];\n\n Object.keys(stylesObject).forEach(prop => {\n let value = stylesObject[prop];\n let selector = `${selectorPrefix}['${prop}']`;\n\n // Check if the property has fixed values\n const predefinedValues = cssFixedValueProperties[prop];\n if (predefinedValues) {\n let options = predefinedValues.map(val => \n `<option value=\"${val}\" ${val === value ? 'selected' : ''}>${val}</option>`\n ).join('');\n\n styles += `\n <button \n class=\"${buttonItemClass.split('capitalize').join('')}\" \n style=\"color: unset;\" \n onclick=\"\n styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''});\n \">\n ${prop}\n </button>\n <select class=\"${selectClass}\" style=\"${selectStyle}\" onchange=\"${selector} = this.value; saveState();\">\n ${options}\n </select>`;\n } else if (cssRangedValueProperties[prop]) {\n const { min, max, step } = cssRangedValueProperties[prop];\n \n // Ensure valueParts and remainingParts are arrays, even if value is null or doesn't match\n const valueParts = value ? value.match(/-?\\d*\\.?\\d+([a-z%]+|)/g) || [] : [];\n const remainingParts = value ? value.split(/-?\\d*\\.?\\d+[a-z%]*/g).filter(Boolean) || [] : [];\n \n // Determine the appropriate grid column class based on the presence of value parts\n const gridColsClass = valueParts.length > 0 ? 'grid-cols-2' : 'grid-cols-1';\n \n styles += `\n <button \n class=\"${buttonItemClass.split('capitalize').join('')}\" \n style=\"color: unset;\" \n onclick=\"\n styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''});\n \">\n ${prop}\n </button>\n <div class=\"grid ${gridColsClass} gap-1 items-center capitalize\">`;\n \n valueParts.forEach((part, index) => {\n const numericValue = parseFloat(part);\n const unitMatch = part.match(/[a-zA-Z%]+/);\n const unit = unitMatch ? unitMatch[0] : '';\n \n // Define valid units based on property\n let validUnits;\n switch (prop) {\n case 'scale':\n case 'rotate':\n case 'translate':\n case 'perspective':\n case 'skew':\n validUnits = ['', 'deg', 'rad']; // Example units for transform properties\n break;\n case 'animation-duration':\n case 'transition-duration':\n validUnits = ['', 'ms', 's']; // Example units for duration properties\n break;\n default:\n validUnits = ['', 'px', '%', 'rem', 'em', 'vh', 'lvh', 'svh', 'dvh', 'vw', 'lvw', 'svw', 'dvw']; // Default units\n break;\n }\n \n const selectElement = `<select class=\"${selectClass}\" style=\"${selectStyle}\" onchange=\"\n const valueParts = ${selectorPrefix}['${prop}'].split(' ');\n valueParts[${index}] = '${numericValue}' + this.value;\n ${selector} = valueParts.join(' ')${remainingParts.length > 0 ? ` + ' ' + '${remainingParts.join(' ')}'` : ''};\n saveState();\n \">${validUnits.map(unitOption => \n `<option value=\"${unitOption}\" ${unitOption === unit ? 'selected' : ''}>${unitOption}</option>`\n ).join('')}</select>`;\n \n const rangeElement = `<input class=\"${inputClass}\" style=\"${inputStyle}\" \n type=\"range\" min=\"${min}\" max=\"${max}\" step=\"${step}\" value=\"${numericValue}\"\n oninput=\"const valueParts = ${selectorPrefix}['${prop}'].split(' ');\n valueParts[${index}] = this.value + '${unit}';\n ${selector} = valueParts.join(' ')${remainingParts.length > 0 ? ` + ' ' + '${remainingParts.join(' ')}'` : ''};\"\n onfocus=\"saveState();\" onblur=\"saveState();\">`;\n \n styles += `\n <input class=\"${inputClass}\" style=\"${inputStyle}\" \n type=\"number\" min=\"${min}\" max=\"${max}\" step=\"${step}\" value=\"${numericValue}\"\n oninput=\"const valueParts = ${selectorPrefix}['${prop}'].split(' ');\n valueParts[${index}] = this.value + '${unit}';\n ${selector} = valueParts.join(' ')${remainingParts.length > 0 ? ` + ' ' + '${remainingParts.join(' ')}'` : ''};\"\n onfocus=\"saveState();\" onblur=\"saveState();\">\n ${prop === 'opacity' || prop === 'z-index' ? rangeElement : selectElement}`;\n });\n \n // Add a backup text input for cases where units aren't defined\n if (remainingParts.length > 0 || valueParts.length === 0) {\n styles += `\n <input class=\"${inputClass}\" style=\"${inputStyle}\" \n type=\"text\" value=\"${value}\" \n oninput=\"${selector} = this.value;\" onfocus=\"saveState()\" onblur=\"saveState()\">\n `;\n }\n \n styles += `</div>`;\n } else if (complexProperties.includes(prop)) {\n // Use a textarea for complex multi-line properties\n styles += `\n <button \n class=\"${buttonItemClass.split('capitalize').join('')}\" \n style=\"color: unset;\" \n onclick=\"\n styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''});\n \">\n ${prop}\n </button>\n <textarea class=\"${textareaClass}\" style=\"${textareaStyle}\"\n oninput=\"${selector} = this.value;\" onfocus=\"saveState()\" onblur=\"saveState()\">${value}</textarea>`;\n } else {\n // Check if the property is a color property\n const isColorProperty = colorRegex.test(value) || value === null;\n const fallbackColor = isColorProperty && value === null ? '#000000' : value;\n\n styles += `\n <button \n class=\"${buttonItemClass.split('capitalize').join('')}\" \n style=\"color: unset;\" \n onclick=\"\n styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''});\n \">\n ${prop}\n </button>\n <input \n class=\"${inputClass}\" \n style=\"${inputStyle}\" \n type=\"text\" \n value=\"${fallbackColor}\" \n ${isColorProperty ? `data-iscolor=\"${value}\"` : ''}\n oninput=\"${selector} = this.value;\" \n onfocus=\"saveState()\" \n onblur=\"saveState()\"\n />`;\n }\n });\n\n return styles;\n };\n\n const generateRootVariablesSection = () => {\n let styles = '';\n \n // Regular expression to detect color values\n const colorRegex = /^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i;\n\n // Iterate over each root variable\n Object.keys(project.css.rootVariables).forEach(key => {\n const value = project.css.rootVariables[key];\n const selector = `project.css.rootVariables['${key}']`;\n\n // Determine input type based on value\n const isColor = colorRegex.test(value);\n const isNumeric = !isNaN(parseFloat(value)) && isFinite(value);\n\n let inputType = 'text';\n let inputStyle = 'height: auto; margin: 0; padding: .4rem;';\n\n if (isNumeric) inputType = 'number';\n\n // Use processStyles function to generate styles for root variables\n styles += `\n <button \n class=\"${buttonItemClass.split('capitalize').join('')}\" \n style=\"color: unset;\" \n onclick=\"modifyRootVariable('${key}')\">\n ${key}\n </button>\n <input \n class=\"${inputClass}\"\n style=\"${inputStyle}\" \n type=\"${inputType}\" \n value=\"${value}\"\n ${isColor ? `data-iscolor=\"${value}\"` : ''}\n oninput=\"${selector} = this.value;\" \n onfocus=\"saveState()\" \n onblur=\"saveState()\"\n />\n `;\n });\n\n return `\n <div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.rootVarsCollapsed = !data.rootVarsCollapsed\">\n root css variables\n </button>\n <button \n class=\"${buttonAddItemClass}\" \n style=\"color: unset;\" \n onclick=\"\n const id = '--' + generateId();\n project.css.rootVariables[id] = '';\n \">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 ${data.rootVarsCollapsed ? 'hidden' : ''}\">\n ${styles}\n </div>\n </div>\n `;\n };\n\n const generateStylesSection = () => {\n if (!commonLayerTag) data.stylesTarget = null;\n let targets = null;\n let styles = '';\n let activeStyle = null;\n if (commonLayerTag) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n const layer = commonLayerTag[layerKey];\n });\n }\n \n let obj = null;\n if (data.breakpointKey) {\n obj = project.css.breakpoints[`${data.breakpointKey}px`];\n } else {\n obj = project.css.styles;\n }\n\n // Render targets within style\n let dropdown = `<select \n class=\"${selectClass}\" \n style=\"${selectStyle}\"\n onchange=\"\n data.stylesPropTarget = this.value;\n \"\n >\n <option value=\"base\" ${data.stylesPropTarget === 'base' ? 'selected' : ''}>base</option>\n <option value=\"pseudos\" ${data.stylesPropTarget === 'pseudos' ? 'selected' : ''}>pseudos</option>\n </select>`;\n\n let buttonClass = '';\n Object.keys(obj).forEach(key => {\n if (data.stylesTarget && data.stylesTarget === key) {\n buttonClass = buttonItemClass.split('bg-transparent border-0').join('');\n activeStyle = key;\n } else {\n buttonClass = 'bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-left';\n activeStyle = null;\n }\n\n styles += `<button \n aria-label=\"set style target to ${key}\"\n name=\"set style target to ${key}\"\n class=\"${buttonClass.split('capitalize').join('')} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\" ${activeStyle ? '' : 'style=\"color: unset;\"'}\n onclick=\"data.stylesTarget = this.textContent.toString();\">${key}</button>`;\n });\n\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.stylesCollapsed = !data.stylesCollapsed;\">\n styles\n </button>\n <button \n class=\"${buttonAddItemClass}\" \n style=\"color: unset;\"\n onclick=\"addStyle();\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-1 gap-1 items-center py-2 capitalize ${data.stylesCollapsed ? 'hidden' : ''}\">\n ${data.stylesTarget ? `<div class=\"grid grid-cols-1 gap-1 items-center py-2\">\n ${dropdown}\n </div>` : ''}\n <div class=\"grid grid-cols-2 gap-1 items-center py-2\">\n ${styles}\n </div>\n ${data.stylesTarget ? `<div class=\"grid grid-cols-2 gap-1 items-center pb-2 capitalize\">\n <button \n aria-label=\"rename the ${data.stylesTarget} style\"\n name=\"rename the ${data.stylesTarget} style\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-green-600 border-green-800\" : \"text-green-700 border-green-400\"}\"\n onclick=\"renameStyleTarget('${data.stylesTarget}');\">\n rename\n </button>\n <button \n aria-label=\"delete the ${data.stylesTarget} style\"\n name=\"delete the ${data.stylesTarget} style\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-red-600 border-red-800\" : \"text-red-600 border-red-400\"}\"\n onclick=\"deleteStyleTarget('${data.stylesTarget}');\">\n delete\n </button>\n </div>` : ''}\n ${data.stylesTarget ? `<div class=\"grid grid-cols-2 gap-1 items-center capitalize\">\n <button \n aria-label=\"duplicate the ${data.stylesTarget} style\"\n name=\"duplicate the ${data.stylesTarget} style\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\"\n style=\"color: unset;\"\n onclick=\"duplicateStyle();\">\n duplicate\n </button>\n <button \n aria-label=\"de-select the ${data.stylesTarget} style\"\n name=\"de-select the ${data.stylesTarget} style\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\"\n style=\"color: unset;\"\n onclick=\"\n data.stylesTarget = null;\n data.breakpointKey = null;\n clearAllSelections();\n \">\n de-select\n </button>\n </div>` : ''}\n </div>\n </div>`;\n };\n\n const generatePseudosSection = () => {\n if (!commonLayerTag) data.stylesTarget = null;\n let styles = '';\n let selector = '';\n let activeStyle = null;\n if (commonLayerTag) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n const layer = commonLayerTag[layerKey];\n if (!data.stylesTarget) {\n data.stylesTarget = layer.style;\n }\n });\n }\n\n // Target specific pseudo style\n if (data.stylesTarget && data.stylesPropTarget === \"pseudos\") {\n if (project.css.styles[data.stylesTarget].pseudos) {\n Object.keys(project.css.styles[data.stylesTarget].pseudos).forEach(index => {\n selector = project.css.styles[data.stylesTarget].pseudos[index].selector;\n if (data.pseudosSelector === selector) {\n buttonClass = buttonItemClass.split('bg-transparent border-0').join('');\n activeStyle = true;\n data.pseudosSelectorIndex = index;\n } else {\n buttonClass = 'bg-transparent text-[.6rem] p-0 m-0 h-full text-left';\n activeStyle = null;\n }\n styles += `<button \n class=\"${buttonClass.split('capitalize').join('')} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\" ${activeStyle ? '' : 'style=\"color: unset;\"'}\n onclick=\"data.pseudosSelector = this.textContent;\">${selector}</button>`;\n });\n }\n }\n\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.stylePseudosCollapsed = !data.stylePseudosCollapsed;\">\n pseudos\n </button>\n <button class=\"${buttonAddItemClass}\" style=\"color: unset;\" onclick=\"addPseudo('${data.stylesTarget}')\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-1 gap-1 items-center py-2 capitalize ${data.stylePseudosCollapsed ? 'hidden' : ''}\">\n ${data.stylesTarget ? `<div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n ${styles}\n </div>` : ''}\n ${data.pseudosSelector && data.stylesTarget ? `\n <div class=\"grid grid-cols-2 gap-1 items-center pb-2 capitalize\">\n <button \n aria-label=\"Rename pseudo for ${data.breakpointKey}px\"\n name=\"rename pseudo for ${data.breakpointKey}px\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-green-600 border-green-800\" : \"text-green-700 border-green-400\"}\"\n onclick=\"renamePseudo('${data.pseudosSelector}');\">\n Rename\n </button>\n <button \n aria-label=\"Delete pseudo for ${data.breakpointKey}px\"\n name=\"delete pseudo for ${data.breakpointKey}px\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-red-600 border-red-800\" : \"text-red-600 border-red-400\"}\"\n onclick=\"deletePseudo();\">\n Delete\n </button>\n </div>\n ` : ''}\n ${data.pseudosSelector && data.stylesTarget ? `\n <div class=\"grid grid-cols-1 gap-1 items-center capitalize\">\n <button \n aria-label=\"De-select the ${data.stylesTarget} style\"\n name=\"de-select the ${data.stylesTarget} style\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\"\n style=\"color: unset;\"\n onclick=\"data.pseudosSelector = null;\">\n De-select\n </button>\n </div>\n ` : ''}\n </div>\n </div>`;\n };\n\n const generateStylePropertiesSection = () => {\n let styles = '';\n let styleKey = null;\n\n if (commonLayerTag) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n const layer = commonLayerTag[layerKey];\n styleKey = layer.style;\n });\n }\n\n let obj = project.css.styles;\n const detectStylesPropTarget = ['base', 'pseudos'];\n if (detectStylesPropTarget.includes(data.stylesPropTarget)) {\n Object.keys(obj).forEach(key => {\n if (styleKey === key || data.stylesTarget == key) {\n if (data.stylesPropTarget === 'pseudos') {\n const index = data.pseudosSelectorIndex;\n if (data.pseudosSelector) {\n if (obj[key].pseudos[index].styles) {\n styles += processStyles(obj[key].pseudos[index].styles, `project.css.styles['${key}'].pseudos['${index}'].styles`, key);\n }\n }\n } else {\n if (obj[key][data.stylesPropTarget]) {\n styles += processStyles(obj[key][data.stylesPropTarget], `project.css.styles['${key}']['${data.stylesPropTarget}']`, key);\n }\n }\n }\n });\n }\n\n let stylesObj = 'project.css.styles[data.stylesTarget][data.stylesPropTarget]';\n if (data.stylesPropTarget === \"pseudos\") {\n stylesObj = 'project.css.styles[data.stylesTarget][data.stylesPropTarget][data.pseudosSelectorIndex].styles';\n }\n\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.stylePropsCollapsed = !data.stylePropsCollapsed;\">\n style properties\n </button>\n <button \n class=\"${buttonAddItemClass}\" \n style=\"color: unset;\" \n onclick=\"addStylePropModal('${data.stylesTarget}', ${stylesObj});\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize ${data.stylePropsCollapsed ? 'hidden' : ''}\">\n ${styles}\n </div>\n </div>`;\n };\n\n const generateBreakpointsSection = () => {\n if (!commonLayerTag) data.stylesTarget = null;\n let styles = '';\n let activeStyle = null;\n if (commonLayerTag) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n const layer = commonLayerTag[layerKey];\n if (!data.stylesTarget) {\n data.stylesTarget = layer.style;\n }\n });\n }\n\n let buttonClass = '';\n if (data.stylesTarget && project.css.breakpoints) {\n Object.keys(project.css.breakpoints).forEach(key => {\n if (data.breakpointKey === key.split('px').join('')) {\n buttonClass = buttonItemClass.split('bg-transparent border-0').join('');\n activeStyle = key;\n } else {\n buttonClass = 'bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-center';\n activeStyle = null;\n }\n styles += `<button \n aria-label=\"target breakpoint styles for ${key}\"\n name=\"target breakpoint styles for ${key}\"\n class=\"${buttonClass.split('text-left').join('text-center')} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\" ${activeStyle ? '' : 'style=\"color: unset;\"'}\n onclick=\"\n data.breakpointKey = this.textContent;\n \">${key.split('px').join('')}</button>`;\n });\n }\n\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.breakpointsCollapsed = !data.breakpointsCollapsed;\">\n breakpoints\n </button>\n <button \n class=\"${buttonAddItemClass}\" \n style=\"color: unset;\"\n onclick=\"addBreakpoint();\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-1 gap-1 items-center py-2 capitalize ${data.breakpointsCollapsed ? 'hidden' : ''}\">\n ${data.stylesTarget && project.css.breakpoints ? `<div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n ${styles}\n </div>` : ''}\n ${data.breakpointKey && data.stylesTarget && project.css.breakpoints ? `<div class=\"grid grid-cols-2 gap-1 items-center pb-2 capitalize\">\n <button \n aria-label=\"rename breakpoint styles for ${data.breakpointKey}px\"\n name=\"rename breakpoint styles for ${data.breakpointKey}px\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-green-600 border-green-800\" : \"text-green-700 border-green-400\"}\"\n onclick=\"renameBreakpointKey('${data.breakpointKey}px');\">\n rename\n </button>\n <button \n aria-label=\"delete breakpoint styles for ${data.breakpointKey}px\"\n name=\"delete breakpoint styles for ${data.breakpointKey}px\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-red-600 border-red-800\" : \"text-red-600 border-red-400\"}\"\n onclick=\"deleteBreakpointKey('${data.breakpointKey}px');\">\n delete\n </button>\n </div>` : ''}\n ${data.breakpointKey && data.stylesTarget && project.css.breakpoints ? `<div class=\"grid grid-cols-1 gap-1 items-center capitalize\">\n <button \n aria-label=\"de-select the ${data.stylesTarget} style\"\n name=\"de-select the ${data.stylesTarget} style\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\"\n style=\"color: unset;\"\n onclick=\"data.breakpointKey = null;\">\n de-select\n </button>\n </div>` : ''}\n </div>\n </div>`;\n };\n\n const generateBreakpointStylesSection = () => {\n if (!data.breakpointKey) return;\n let styles = '';\n let styleKey = null;\n\n if (commonLayerTag) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n const layer = commonLayerTag[layerKey];\n styleKey = layer.style;\n });\n }\n\n let obj = project.css.breakpoints[`${data.breakpointKey}px`];\n\n const detectStylesPropTarget = ['base', 'pseudos'];\n if (detectStylesPropTarget.includes(data.stylesPropTarget)) {\n Object.keys(obj).forEach(key => {\n if (styleKey === key || data.stylesTarget == key) {\n if (data.stylesPropTarget === 'pseudos') {\n const index = data.pseudosSelectorIndex;\n if (data.pseudosSelector) {\n if (obj[key].pseudos[index].styles) {\n styles += processStyles(obj[key].pseudos[index].styles, `project.css.breakpoints['${data.breakpointKey}px']['${key}'].pseudos['${index}'].styles`, key, 'breakpoints');\n }\n }\n } else {\n if (obj[key][data.stylesPropTarget]) {\n styles += processStyles(obj[key][data.stylesPropTarget], `project.css.breakpoints['${data.breakpointKey}px']['${key}']['${data.stylesPropTarget}']`, key, 'breakpoints');\n }\n }\n }\n });\n }\n\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.breakpointStylePropsCollapsed = !data.breakpointStylePropsCollapsed;\">\n breakpoint styles\n </button>\n <button class=\"${buttonAddItemClass}\" style=\"color: unset;\" onclick=\"addStylePropModal('${styleKey}', project.css.breakpoints['${data.breakpointKey}px'][data.stylesTarget][data.stylesPropTarget]);\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize ${data.breakpointStylePropsCollapsed ? 'hidden' : ''}\">\n ${styles}\n </div>\n </div>`;\n };\n\n const generateAnimationsSection = () => {\n if (!commonLayerTag) data.stylesTarget = null;\n let styles = '';\n let activeStyle = null;\n if (commonLayerTag) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n const layer = commonLayerTag[layerKey];\n if (!data.stylesTarget) {\n data.stylesTarget = layer.style;\n }\n });\n }\n\n if (data.stylesTarget && project.css.animations) {\n Object.keys(project.css.animations).forEach(key => {\n if (data.animationTarget === key) {\n buttonClass = buttonItemClass.split('bg-transparent border-0').join('');\n buttonClass = buttonClass.split('capitalize').join('normal-case');\n activeStyle = key;\n } else {\n buttonClass = 'bg-transparent text-[.6rem] p-0 m-0 h-full normal-case text-center';\n activeStyle = null;\n }\n styles += `<button \n aria-label=\"target animation styles for ${key}\"\n name=\"target animation styles for ${key}\"\n class=\"${buttonClass.split('text-left').join('text-center')} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\" ${activeStyle ? '' : 'style=\"color: unset;\"'}\n onclick=\"\n data.animationTarget = this.textContent;\n \">${key}</button>`;\n });\n }\n\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.animationsCollapsed = !data.animationsCollapsed;\">\n animations\n </button>\n <button \n class=\"${buttonAddItemClass}\" \n style=\"color: unset;\"\n onclick=\"addAnimation();\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-1 gap-1 items-center py-2 capitalize ${data.animationsCollapsed ? 'hidden' : ''}\">\n ${data.stylesTarget && project.css.animations ? `<div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n ${styles}\n </div>` : ''}\n ${data.animationTarget && project.css.animations ? `<div class=\"grid grid-cols-2 gap-1 items-center pb-2 capitalize\">\n <button \n aria-label=\"rename animation for ${data.animationTarget}\"\n name=\"rename animation for ${data.animationTarget}\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-green-600 border-green-800\" : \"text-green-700 border-green-400\"}\"\n onclick=\"renameAnimation('${data.animationTarget}');\">\n rename\n </button>\n <button \n aria-label=\"delete animation for ${data.animationTarget}\"\n name=\"delete animation for ${data.animationTarget}\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-red-600 border-red-800\" : \"text-red-600 border-red-400\"}\"\n onclick=\"deleteAnimation('${data.animationTarget}');\">\n delete\n </button>\n </div>` : ''}\n ${data.animationTarget && project.css.animations ? `<div class=\"grid grid-cols-1 gap-1 items-center capitalize\">\n <button \n aria-label=\"de-select the ${data.animationTarget} animation\"\n name=\"de-select the ${data.animationTarget} animation\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\"\n style=\"color: unset;\"\n onclick=\"data.animationTarget = null;\">\n de-select\n </button>\n </div>` : ''}\n </div>\n </div>`;\n };\n\n const generateAnimationPropertySection = () => {\n if (!commonLayerTag) data.stylesTarget = null;\n let content = '';\n let keyframes = '';\n let activeStyle = null;\n if (commonLayerTag) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n const layer = commonLayerTag[layerKey];\n if (!data.stylesTarget) {\n data.stylesTarget = layer.style;\n }\n });\n }\n\n // Generate keyframes buttons\n if (data.animationTarget && project.css.animations && project.css.animations[data.animationTarget].keyframes) {\n Object.keys(project.css.animations[data.animationTarget].keyframes).forEach(key => {\n let buttonClass = '';\n if (data.animationKeyframe === key) {\n buttonClass = buttonItemClass.split('bg-transparent border-0').join('');\n isActive = true;\n } else {\n buttonClass = 'bg-transparent text-[.6rem] p-0 m-0 h-full capitalize text-center';\n isActive = null;\n }\n \n keyframes += `<button \n aria-label=\"target keyframe styles for ${key}\"\n name=\"target keyframe styles for ${key}\"\n class=\"${buttonClass.split('text-left').join('text-center')} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\" ${isActive ? '' : 'style=\"color: unset;\"'}\n onclick=\"\n data.animationKeyframe = null;\n data.animationKeyframe = '${key}';\n \">${key}</button>`;\n });\n }\n\n // Generate the styles for the active keyframe\n if (data.animationKeyframe && data.animationTarget && project.css.animations && project.css.animations[data.animationTarget].keyframes) {\n const activeKeyframe = project.css.animations[data.animationTarget].keyframes[data.animationKeyframe];\n content += processStyles(activeKeyframe, `project.css.animations['${data.animationTarget}'].keyframes['${data.animationKeyframe}']`, data.animationKeyframe, 'animations');\n }\n\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.animationsCollapsed = !data.animationsCollapsed;\">\n animation keyframes\n </button>\n <button \n class=\"${buttonAddItemClass}\" \n style=\"color: unset;\"\n onclick=\"addKeyFrame();\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-1 gap-1 items-center py-2 capitalize ${data.animationsCollapsed ? 'hidden' : ''}\">\n ${data.animationTarget && project.css.animations ? `<div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n ${keyframes}\n </div>` : ''}\n ${data.animationKeyframe && project.css.animations && project.css.animations[data.animationTarget].keyframes ? `<div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n ${content}\n </div>` : ''}\n ${data.animationKeyframe && project.css.animations && project.css.animations[data.animationTarget].keyframes ? `<div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button \n aria-label=\"rename the \"${data.animationKeyframe}\" keyframe\"\n name=\"rename the \"${data.animationKeyframe}\" keyframe\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-green-600 border-green-800\" : \"text-green-700 border-green-400\"}\"\n onclick=\"renameKeyFrame('${data.animationKeyframe}');\">\n rename\n </button>\n <button \n aria-label=\"delete the \"${data.animationKeyframe}\" keyframe\"\n name=\"delete the \"${data.animationKeyframe}\" keyframe\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"text-red-600 border-red-800\" : \"text-red-600 border-red-400\"}\"\n onclick=\"deleteKeyFrame('${data.animationKeyframe}');\">\n delete\n </button>\n <button \n aria-label=\"add to the \"${data.animationKeyframe}\" keyframe\"\n name=\"add to the \"${data.animationKeyframe}\" keyframe\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"border-blue-500\" : \"border-blue-400\"}\"\n style=\"color: unset;\"\n onclick=\"addStylePropModal('${data.animationTarget}', project.css.animations[data.animationTarget].keyframes[data.animationKeyframe]);\">\n ${icons.plus}\n </button>\n <button \n aria-label=\"de-select the \"${data.animationKeyframe}\" keyframe\"\n name=\"de-select the \"${data.animationKeyframe}\" keyframe\"\n class=\"${RenameOrDeleteButtonClass} p-2 border ${project.dark ? \"border-gray-700\" : \"border-gray-300\"}\"\n style=\"color: unset;\"\n onclick=\"data.animationKeyframe = null;\">\n de-select\n </button>\n </div>` : ''}\n </div>\n </div>`;\n };\n\n const generateAttributesSection = () => {\n if (selectedLayers.length === 0) return '';\n \n // Display common attributes\n let attributes = \"\",\n attributeTag = \"\",\n svgImage = \"\";\n if (commonLayerTag || selectedLayers.length === 1) {\n Object.keys(commonLayerTag).forEach(layerKey => {\n attributeTag = \"\";\n const layer = commonLayerTag[layerKey];\n const tag = layer.tag;\n \n // block name\n attributeTag += `\n <span class=\"${buttonItemClass}\">Block Name</span>\n <input class=\"${inputClass}\" style=\"${inputStyle}\" type=\"text\" value=\"${layer.name}\" oninput=\"updateElement('name', null, this.value)\" onfocus=\"saveState()\" onblur=\"saveState()\"/>\n `;\n \n // style reference\n attributeTag += `\n <span class=\"${buttonItemClass}\">Style Ref</span>\n <input class=\"${inputClass}\" style=\"${inputStyle}\" type=\"text\" value=\"${layer.style ? layer.style : ''}\" onfocus=\"saveState()\" onblur=\"updateElement('style', null, this.value); saveState();\"/>\n `;\n \n // Determine block type and render the appropriate options\n let options = \"\";\n if (boxElements.includes(tag)) {\n options = boxElements.map(element => \n `<option value=\"${element}\" ${element === tag ? 'selected' : ''}>${element}</option>`\n ).join('');\n } else if (textElements.includes(tag)) {\n options = textElements.map(element => \n `<option value=\"${element}\" ${element === tag ? 'selected' : ''}>${element}</option>`\n ).join('');\n } else if (breakElements.includes(tag)) {\n options = breakElements.map(element => \n `<option value=\"${element}\" ${element === tag ? 'selected' : ''}>${element}</option>`\n ).join('');\n } else {\n options = `<option value=\"${tag}\" selected=\"true\">${tag}</option>`;\n }\n \n if (options) {\n attributeTag += `\n <span class=\"${buttonItemClass}\">tag</span>\n <select class=\"${selectClass}\" style=\"${selectStyle}\" onchange=\"saveState(); updateElement('tag', null, this.value); saveState();\">\n ${options}\n </select>`;\n }\n \n if (tag === \"svg\" && selectedLayers.length === 1) {\n const elm = document.createElement(\"template\");\n elm.innerHTML = json2html(layer);\n const element = elm.content.firstElementChild;\n \n if (element) {\n if (element.hasAttribute(\"style\")) element.removeAttribute('style');\n element.removeAttribute(\"width\");\n element.removeAttribute(\"height\");\n element.setAttribute(\"class\", mediaClass);\n element.setAttribute(\"onclick\", `updateSvgMedia('${layer.id}', 'svg')`);\n \n svgImage += `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\">svg</button>\n <div class=\"grid grid-cols-1 place-items-center\">\n ${element.outerHTML}\n </div>\n `;\n }\n \n elm.remove();\n }\n });\n }\n \n if (Object.keys(commonAttributes).length > 0 || selectedLayers.length === 1) {\n svgImage ? attributes = svgImage + \"\" : attributes = \"\";\n const layer = selectedLayers[0];\n const tag = layer.tag;\n\n if (tag === \"audio\") {\n attributes += `\n <span class=\"${buttonItemClass.split('cursor-pointer').join('cursor-default')}\" style=\"color: unset;\">Replace Audio</span>\n <div class=\"grid grid-cols-1\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" preserveAspectRatio=\"xMidYMin\" class=\"cursor-pointer w-full my-2 rounded-md\" onclick=\"updateAudioMedia('${layer.id}', 'audio')\">\n <rect width=\"256\" height=\"256\" fill=\"rgb(248,255,247)\"/>\n <g transform=\"translate(128, 128) scale(0.5) translate(-128, -128)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"#13171f\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5\"/>\n </svg>\n </g>\n </svg>\n </div>\n `;\n }\n \n if (layer.props) {\n // Generate the attributes section dynamically based on layer\n Object.keys(commonAttributes).forEach(propKey => {\n let name = propKey;\n const value = commonAttributes[propKey];\n \n textAreaAttributes = [\"on\", '@', \"x-\", \":\"];\n const lowerPropKey = propKey.toLowerCase();\n \n // Handle different types of attributes\n if (booleanAttributes.includes(name)) {\n attributes += renderBooleanAttribute(propKey, commonAttributes[propKey]);\n } else if (lowerPropKey === \"style\" || lowerPropKey === \"class\") {\n attributes += renderTextarea(propKey, commonAttributes[propKey]);\n } else if (textAreaAttributes.some(attr => lowerPropKey.startsWith(attr))) {\n attributes += renderTextarea(propKey, commonAttributes[propKey]);\n } else if (tag === \"input\") {\n if (name === \"required\") {\n attributes += renderBooleanAttribute(propKey, commonAttributes[propKey]);\n }\n \n let nodeType = \"text\";\n for (let numAttr of numberAttributes) {\n if (name === numAttr) {\n nodeType = \"number\";\n }\n }\n for (let string of stringAttributes) {\n if (name === string) {\n nodeType = \"text\";\n }\n }\n if (name === \"value\") {\n for (let inputType of inputTypes) {\n if (layer.props.type) {\n if (layer.props.type === inputType) {\n nodeType = layer.props.type.toLowerCase();\n }\n if (layer.props.type === \"range\") {\n nodeType = \"number\";\n }\n }\n }\n }\n if (name === \"type\") {\n let options = '';\n for (let string of inputTypes) {\n options += `<option class=\"${inputClass}\" value=\"${string}\" ${(value === string ? \"selected\" : \"\")}>${string}</option>`;\n }\n \n attributes += `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${propKey}')\">${propKey}</button>\n <select class=\"${selectClass}\" style=\"${selectStyle}\" onchange=\"updateElement('props', '${propKey}', this.value); saveState();\">\n ${options}\n </select>\n `;\n } else {\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n }\n } else if (tag === \"button\") {\n if (name === \"type\") {\n attributes += `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${propKey}')\">${propKey}</button>\n <select class=\"${selectClass}\" style=\"${selectStyle}\" onchange=\"updateElement('props', '${propKey}', this.value); saveState();\">\n <option class=\"${inputClass}\" value=\"submit\" ${value === name ? 'selected' : ''}>submit</option>\n <option class=\"${inputClass}\" value=\"reset\" ${value === name ? 'selected' : ''}>reset</option>\n <option class=\"${inputClass}\" value=\"button\" ${value === name ? 'selected' : ''}>button</option>\n </select>\n `;\n } else if (name === \"role\") {\n attributes += renderBooleanAttribute(propKey, commonAttributes[propKey]);\n } else {\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n }\n } else if (tag === \"a\") {\n if (name === \"target\") {\n attributes += `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${propKey}')\">${propKey}</button>\n <select class=\"${selectClass}\" style=\"${selectStyle}\" onchange=\"updateElement('props', '${propKey}', this.value); saveState();\">\n <option class=\"${inputClass}\" value=\"_blank\" ${value === name ? 'selected' : ''}>_blank</option>\n <option class=\"${inputClass}\" value=\"_self\" ${value === name ? 'selected' : ''}>_self</option>\n <option class=\"${inputClass}\" value=\"_parent\" ${value === name ? 'selected' : ''}>_parent</option>\n <option class=\"${inputClass}\" value=\"_top\" ${value === name ? 'selected' : ''}>_top</option>\n </select>\n `;\n } else {\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n }\n } else if (tag === \"img\") {\n let numTypes = [\"width\", \"height\"];\n if (numTypes.includes(name)) {\n let type = \"text\";\n for (let numType of numTypes) {\n if (name === numType) {\n type = \"number\";\n }\n }\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n } else if (name === \"src\") {\n attributes += `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${propKey}')\">${propKey}</button>\n <div class=\"grid grid-cols-1\">\n <img class=\"${mediaClass}\" src=\"${value}\" onclick=\"updateImageMedia('${layer.id}', 'img')\">\n <input class=\"${inputClass}\" style=\"${inputStyle}\" type=\"text\" value=\"${value}\" oninput=\"updateElement('props', '${propKey}', this.value)\" onfocus=\"saveState()\" onblur=\"saveState()\"/>\n </div>\n `;\n } else {\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n }\n } else if (tag === \"svg\") {\n let numTypes = [\"stroke-width\"];\n let type = \"text\";\n for (let numType of numTypes) {\n if (name === numType) {\n type = \"number\";\n }\n }\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n } else if (tag === \"form\") {\n if (name === \"method\") {\n attributes += `\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"removeProp('${propKey}')\">${propKey}</button>\n <select class=\"${selectClass}\" style=\"${selectStyle}\" onchange=\"updateElement('props', '${propKey}', this.value); saveState();\">\n <option class=\"${inputClass}\" value=\"GET\" ${value === name ? 'selected' : ''}>GET</option>\n <option class=\"${inputClass}\" value=\"POST\" ${value === name ? 'selected' : ''}>POST</option>\n <option class=\"${inputClass}\" value=\"PUT\" ${value === name ? 'selected' : ''}>PUT</option>\n <option class=\"${inputClass}\" value=\"DELETE\" ${value === name ? 'selected' : ''}>DELETE</option>\n </select>\n `;\n } else {\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n }\n } else {\n attributes += renderInput(propKey, 'text', commonAttributes[propKey]);\n }\n });\n }\n }\n\n if (Object.keys(commonAttributes).length > 0 || selectedLayers.length >= 0) {\n const layer = selectedLayers[0];\n const tag = layer.tag;\n\n if (\"text\" in layer || layer.text) {\n if (tag === \"style\" || tag === \"script\") {\n attributes += `\n <span class=\"${buttonItemClass}\">text</span>\n <textarea \n class=\"${textareaClass}\" \n style=\"${textareaStyle}\" \n oninput=\"updateElement('text', null, this.value)\" \n onfocus=\"saveState()\" \n onblur=\"saveState()\"/>${layer.text}</textarea>\n `;\n } else {\n attributes += `\n <span class=\"${buttonItemClass}\">text</span>\n <textarea \n class=\"${textareaClass}\" \n style=\"${textareaStyle}\" \n placeholder=\"Use {n} for incremental text\" \n oninput=\"updateElement('text', null, this.value, true)\" \n onfocus=\"saveState()\" \n onblur=\"saveState()\"/>${layer.text}</textarea>\n `;\n }\n }\n }\n \n if (selectedLayers.length > 0) {\n return `<div class=\"border-0 border-b border-solid pb-2 mb-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize\">\n <button class=\"${buttonItemClass}\" style=\"color: unset;\" onclick=\"data.propsCollapsed = !data.propsCollapsed;\">\n attributes\n </button>\n <button class=\"${buttonAddItemClass}\" style=\"color: unset;\" onclick=\"attributesModal();\">\n <svg class=\"w-3\" viewBox=\"0 0 576 512\" style=\"color: unset;\">\n <path fill=\"currentColor\" d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"></path>\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-2 gap-1 items-center py-2 capitalize ${data.propsCollapsed ? 'hidden' : ''}\">\n ${attributeTag + attributes}\n </div>\n </div>`;\n }\n }\n\n // Combine all sections\n const inspectorHtml = `\n <div>\n ${generatePreviewSize()}\n ${generateRootVariablesSection()}\n ${generateStylesSection()}\n ${data.stylesTarget && data.stylesPropTarget === \"pseudos\" ? generatePseudosSection() : ''}\n ${data.stylesTarget ? generateStylePropertiesSection() : ''}\n ${data.stylesTarget ? generateBreakpointsSection() : ''}\n ${data.breakpointKey ? generateBreakpointStylesSection() : ''}\n ${data.stylesTarget ? generateAnimationsSection() : ''}\n ${data.animationTarget ? generateAnimationPropertySection() : ''}\n ${generateAttributesSection()}\n </div>\n `;\n\n return inspectorHtml;\n}\nfunction editorNav() {\n const buttonClass = \"border-0 bg-transparent py-1\";\n\n return `<button \n aria-label=\"delete layer\"\n name=\"delete layer\" \n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"deleteLayers()\"\n >\n ${icons.trash}\n </button>\n <button \n aria-label=\"clone layer\"\n name=\"clone layer\" \n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"cloneLayers()\"\n >\n ${icons.clone}\n </button>\n <button \n aria-label=\"cut layer\"\n name=\"cut layer\" \n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"cutLayers()\"\n >\n ${icons.cut}\n </button>\n <button \n aria-label=\"copy layer\"\n name=\"copy layer\" \n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"copyLayers()\"\n >\n ${icons.copy}\n </button>\n <button \n aria-label=\"paste layer\"\n name=\"paste layer\" \n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"pasteLayers()\"\n >\n ${icons.paste}\n </button>`;\n}\nwindow.Modal = {\n render({\n large,\n title = \"Are you sure you want to proceed?\",\n content,\n CloseLabel,\n ConfirmLabel,\n onLoad,\n onClose,\n onConfirm\n }) {\n // if (!options) return false;\n const hClass = \"text-lg font-thin m-0\";\n const buttonClass = \"text-xs w-auto px-3 py-2 m-0 capitalize rounded-md\";\n const svgClass = \"w-3\";\n const times = `<svg class=\"${svgClass}\" viewBox=\"0 0 384 512\">\n <path \n fill=\"currentColor\" \n d=\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"/>\n </svg>`;\n\n const html = `<article class=\"${large ? 'flex flex-col h-3/4' : ''} rounded-md\">\n <header class=\"${large ? 'flex-none' : ''} flex justify-between items-center\">\n <h1 class=\"${hClass}\">${title}</h1>\n <button class=\"${buttonClass} bg-transparent border-0\" style=\"color: unset;\" aria-label=\"Close\">\n ${times}\n </button>\n </header>\n <main class=\"font-thin ${large ? 'flex-grow' : ''}\">\n ${content ? content : ''}\n </main>\n <footer ${large ? 'class=\"flex-none\"' : ''}>\n <button class=\"${buttonClass} bg-transparent border ${project.dark ? 'border-gray-600' : 'border-gray-200'}\" style=\"color: unset;\" aria-label=\"Close\" onclick=\"this.closest('dialog').remove()\">${CloseLabel ? CloseLabel : 'close'}</button>\n ${onConfirm ? `<button class=\"${buttonClass}\" aria-label=\"Confirm\">${ConfirmLabel ? ConfirmLabel : 'confirm'}</button>` : ''}\n </footer>\n </article>`;\n\n const modal = document.createElement('dialog');\n modal.open = true;\n modal.innerHTML = html;\n\n document.body.appendChild(modal);\n if (onLoad && typeof onLoad === 'function') {\n onLoad();\n }\n\n const timesBtn = modal.querySelector('header button');\n const closeBtn = modal.querySelector('footer button:first-child');\n const confirmBtn = modal.querySelector('footer button:last-child');\n\n // Confirm handler function\n timesBtn.onclick = function() {\n if (onClose && typeof onClose === 'function') {\n onClose();\n }\n document.body.removeChild(modal);\n }\n closeBtn.onclick = function() {\n if (onClose && typeof onClose === 'function') {\n onClose();\n }\n document.body.removeChild(modal);\n }\n confirmBtn.onclick = function() {\n if (onConfirm && typeof onConfirm === 'function') {\n onConfirm();\n }\n document.body.removeChild(modal);\n }\n }\n}\nwindow.Blocks = () => {\n const btnClass = `bg-transparent p-4 text-xs cursor-pointer capitalize`;\n\n let blockItem = '', componentItem = '';\n\n data.blocks.items.forEach((block, index) => {\n blockItem += `\n <button \n class=\"${btnClass} border border-solid text-center rounded-md ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\"\n style=\"color: unset;\"\n onclick=\"addBlock(data.blocks.items[${index}].code);\"\n >\n ${block.type}\n </button>`;\n });\n\n project.components.forEach((component, index) => {\n componentItem += `\n <div class=\"flex justify-between w-full h-full border border-solid rounded-md ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <button \n class=\"bg-transparent border-0 text-xs capitalize m-0 py-4 px-2\"\n style=\"color: unset;\"\n onclick=\"addBlock(project.components[${index}].code);\"\n >\n ${component.name}\n </button>\n\n <button \n class=\"bg-transparent border-0 text-xs capitalize m-0 py-4 px-2\"\n style=\"color: unset;\"\n onclick=\"deleteComponent('${index}');\"\n >\n ${icons.trash}\n </button>\n </div>`;\n });\n\n let modalContent = `<nav class=\"select-none items-center\" style=\"padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal); margin: var(--pico-spacing);\">\n <label for='j44mb4rqj' class=\"font-thin cursor-pointer\">${data.blockWrap ? \"Blocks will be parent's of selected layers.\" : \"Blocks are added as children\"}</label>\n <input id='j44mb4rqj' type=\"checkbox\" role=\"switch\" ${data.blockWrap ? 'checked=\"true\" ' : ''}onchange=\"\n data.blockWrap = !data.blockWrap;\n let result = data.blockWrap ? \\`Blocks will be parent's of selected layers.\\` : \\`Blocks are added as children\\`;\n this.previousElementSibling.textContent = result;\n \">\n </nav>\n \n <section class=\"select-none font-thin\" style=\"padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal); margin: var(--pico-spacing);\">\n <div class=\"p-0 m-0\">\n <details class=\"flex items-center mb-0\" ${data.blocks.visible ? 'open' : ''} ontoggle=\"\n const detailsElement = this;\n data.blocks.visible = detailsElement.hasAttribute('open');\n \">\n <summary>\n ${data.blocks.name}\n </summary>\n <code class=\"grid grid-cols-2 gap-2 mb-0 bg-transparent\">\n ${blockItem}\n\n <button \n class=\"${btnClass} ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\"\n style=\"color: unset;\"\n onclick=\"customCode()\"\n >\n Custom\n </button>\n </code>\n </details>\n </div>\n </section>\n \n <section class=\"select-none font-thin\" style=\"padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal); margin: var(--pico-spacing);\">\n <div class=\"p-0 m-0\">\n <details class=\"flex items-center mb-0\" ${data.componentsVisible ? 'open' : ''} ontoggle=\"\n const detailsElement = this;\n data.blocks.visible = detailsElement.hasAttribute('open');\n \">\n <summary>\n Components\n </summary>\n <code class=\"grid grid-cols-2 gap-2 mb-0 bg-transparent\">\n ${componentItem}\n\n <button \n class=\"${btnClass} ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\"\n style=\"color: unset;\"\n onclick=\"addComponent()\"\n >\n ${icons.plus}\n </button>\n </code>\n </details>\n </div>\n </section>`;\n\n // Render the modal\n Modal.render({\n title: `Add A Block`,\n content: modalContent\n });\n}\nwindow.App = {\n initialRender: true,\n render(container) {\n if (data.doNotRender) return;\n const buttonClass = \"border-0 bg-transparent py-1\";\n // Calculate zoom transform based on viewport size and iframe size\n const size = data.selectedSize;\n let viewportWidth, viewportHeight;\n const previewElm = document.getElementById('previewElm');\n if (document.getElementById('previewElm')) {\n viewportWidth = previewElm.clientWidth;\n viewportHeight = previewElm.clientHeight;\n }\n let [width, height] = size.split('x').map(Number);\n \n const html = `\n <div>\n <div class=\"absolute inset-y-0 left-0 flex flex-col text-center justify-between px-2 py-4 overflow-auto\">\n ${LeftMenubar()}\n </div>\n \n <!-- flexbox for panels and preview -->\n <div class=\"flex flex-col flex-col-reverse md:flex-row absolute inset-y-0 right-0 left-16 bottom-0 overflow-hidden\">\n <div class=\"flex-[2] md:flex-[1] relative w-full md:w-96 h-full text-sm overflow-auto ${project.activePanel ? `border-0 border-l border-solid ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}` : 'hidden'}\">\n <div class=\"absolute inset-0 flex flex-col ${project.activePanel === 'layers' ? '' : 'hidden'}\">\n <ul class=\"flex-grow p-2 m-0 overflow-auto\">\n ${LayerTree()}\n </ul>\n <div class=\"flex-none border-0 border-y md:border-b-0 border-solid ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"flex justify-between\">\n <div class=\"flex justify-between\">\n <button\n aria-label=\"undo\"\n name=\"undo\"\n class=\"${buttonClass} md:hidden\"\n style=\"color: unset;\"\n onclick=\"undo()\"\n ${data.historyIndex > 0 ? '' : 'disabled=\"true\"'}>\n ${icons.undo}\n </button>\n <button\n aria-label=\"toggle ctrl key\"\n name=\"toggle ctrl key\"\n class=\"${buttonClass} ${data.cmdKey ? 'text-blue-500' : ''}\" \n style=\"${data.cmdKey ? '' : 'color: unset;'}\"\n onclick=\"data.cmdKey = !data.cmdKey;\">\n <span class=\"text-[.75rem]\">ctrl</span>\n </button>\n <button\n aria-label=\"toggle shift key\"\n name=\"toggle shift key\"\n class=\"${buttonClass} ${data.shiftKey ? 'text-blue-500' : ''}\"\n style=\"${data.shiftKey ? '' : 'color: unset;'}\"\n onclick=\"data.shiftKey = !data.shiftKey;\">\n ${icons.shift}\n </button>\n </div>\n <div class=\"md:hidden flex justify-between whitespace-nowrap overflow-auto ${data.selectedLayerIds.length === 0 ? 'hidden' : ''}\">\n ${editorNav()}\n </div>\n <div class=\"flex justify-between\">\n <button \n aria-label=\"open command palette\"\n name=\"open command palette\"\n class=\"${buttonClass} ${data.cmdKey ? 'text-blue-500' : ''}\" \n style=\"${data.cmdKey ? '' : 'color: unset;'}\"\n onclick=\"commandPalette();\">\n ${icons.commandKey}\n </button>\n <button\n aria-label=\"redo\"\n name=\"redo\"\n class=\"${buttonClass} md:hidden\"\n style=\"color: unset;\"\n onclick=\"redo()\"\n ${data.historyIndex < data.history.length - 1 ? '' : 'disabled=\"true\"'}>\n ${icons.redo}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"absolute inset-0 flex flex-col ${project.activePanel === 'inspector' ? '' : 'hidden'}\">\n <ul class=\"flex-grow p-2 m-0 overflow-auto\">\n ${Inspector()}\n </ul>\n <div class=\"flex-none border-0 border-y md:border-b-0 border-solid ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"flex justify-between\">\n <div>\n <button\n aria-label=\"undo\"\n name=\"undo\"\n class=\"${buttonClass} md:hidden\"\n style=\"color: unset;\"\n onclick=\"undo()\"\n ${data.historyIndex > 0 ? '' : 'disabled=\"true\"'}>\n ${icons.undo}\n </button>\n </div>\n <div>\n <button\n aria-label=\"toggle ctrl key\"\n name=\"toggle ctrl key\"\n class=\"${buttonClass} ${data.cmdKey ? 'text-blue-500' : ''}\" \n style=\"${data.cmdKey ? '' : 'color: unset;'}\"\n onclick=\"data.cmdKey = !data.cmdKey;\">\n <span class=\"text-[.75rem]\">ctrl</span>\n </button>\n <button\n aria-label=\"toggle shift key\"\n name=\"toggle shift key\"\n class=\"${buttonClass} ${data.shiftKey ? 'text-blue-500' : ''}\"\n style=\"${data.shiftKey ? '' : 'color: unset;'}\"\n onclick=\"data.shiftKey = !data.shiftKey;\">\n ${icons.shift}\n </button>\n <button\n aria-label=\"redo\"\n name=\"redo\"\n class=\"${buttonClass} md:hidden\"\n style=\"color: unset;\"\n onclick=\"redo()\"\n ${data.historyIndex < data.history.length - 1 ? '' : 'disabled=\"true\"'}>\n ${icons.redo}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"flex-[2] w-full overflow-hidden flex\">\n <div class=\"relative w-full h-full border-0 border-x border-solid overflow-auto p-4 ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"absolute inset-0 flex flex-col\">\n <div class=\"flex-grow overflow-hidden h-full\">\n <div id=\"previewElm\" class=\"relative grid grid-cols-1 align-center items-center w-full h-full\">\n <iframe\n id=\"iframe\"\n title=\"iframe title\"\n class=\"bg-white ${data.selectedSize !== 'none' ? `border border-solid ${project.dark ? \"border-gray-800\" : \"border-gray-200\"} shadow-2xl shadow-blue-500` : ''}\"\n style=\"${data.selectedSize === 'none' ? 'width: 100%; height: 100%' : `\n width: ${width}px;\n height: ${height}px;\n transform: scale(${Math.min(viewportWidth / width, viewportHeight / height)});\n position: absolute;\n top: 50%;\n left: 50%;\n margin-top: -${height / 2}px;\n margin-left: -${width / 2}px;`}\"\n allow=\"accelerometer *; bluetooth *; camera *; encrypted-media *; display-capture *; geolocation *; gyroscope *; microphone *; midi *; clipboard-read *; clipboard-write *; serial *; xr-spatial-tracking *\"\n allowfullscreen=\"true\"\n allowpaymentrequest=\"true\"\n allowtransparency=\"true\"\n sandbox=\"allow-downloads allow-forms allow-modals allow-pointer-lock allow-popups-to-escape-sandbox allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation\"\n loading=\"lazy\"\n ></iframe>\n\n <span \n id=\"iframeClientSize\" \n class=\"hidden opacity-0 transition-opacity duration-300 absolute top-0 right-0 ${project.dark ? 'bg-gray-800' : 'bg-gray-200'} p-1 text-xs\">\n ${data.iframeSize}\n </span>\n </div>\n </div>\n <div class=\"hidden md:block flex-none border-0 border-y md:border-b-0 border-solid ${project.dark ? \"border-gray-800\" : \"border-gray-200\"}\">\n <div class=\"flex justify-between\">\n <div>\n <button\n aria-label=\"undo\"\n name=\"undo\"\n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"undo()\"\n ${data.historyIndex > 0 ? '' : 'disabled=\"true\"'}>\n ${icons.undo}\n </button>\n </div>\n \n <div class=\"flex justify-between whitespace-nowrap overflow-auto ${data.selectedLayerIds.length === 0 ? 'hidden' : ''}\">\n ${editorNav()}\n </div>\n\n <button\n aria-label=\"redo\"\n name=\"redo\"\n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"redo()\"\n ${data.historyIndex < data.history.length - 1 ? '' : 'disabled=\"true\"'}>\n ${icons.redo}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div\n class=\"flex-[1] hidden ${project.activePanel === 'layers' ? 'lg:block' : ''} w-full md:w-96 h-full p-2 text-sm overflow-auto\">\n <div class=\"h-full\">\n ${Inspector()}\n </div>\n </div>\n </div>\n\n ${Menu()}\n ${Settings()}\n </div>`;\n \n const element = document.querySelector(container);\n if (!element) return;\n\n // Create a new temporary element to compare\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n if (doc.body.innerHTML.trim() === html.trim()) return;\n if (App.initialRender) {\n element.innerHTML = html;\n renderPreview(true);\n App.initialRender = false;\n return false;\n }\n\n const oldPickers = document.querySelectorAll('.pcr-app');\n if (oldPickers) oldPickers.forEach(picker => picker.remove());\n\n // Compare and update only the changed parts\n const currentDoc = element.firstElementChild;\n const newDoc = doc.body.firstElementChild;\n diffNodes(currentDoc, newDoc);\n\n // Select all elements with the data-color-picker attribute\n const pickers = document.querySelectorAll('[data-iscolor]');\n\n if (pickers) {\n pickers.forEach((picker, index) => {\n // Extract the initial color value from the data-iscolor attribute\n const initialColor = picker.getAttribute('data-iscolor');\n \n const pickr = Pickr.create({\n el: picker,\n theme: 'nano', // or 'monolith', or 'nano'\n default: initialColor,\n inline: true,\n components: {\n // Main components\n preview: true,\n opacity: true,\n hue: true,\n \n // Input / output Options\n interaction: {\n input: true\n }\n }\n });\n\n // Set the initial color\n pickr.setColor(initialColor);\n \n // Update color display and state on color change\n pickr.on('show', () => {\n data.doNotRender = true;\n })\n .on('change', color => {\n const colorString = color.toHEXA().toString();\n \n // Get the oninput attribute value\n const onInputCode = pickers[index].getAttribute('oninput');\n \n if (onInputCode) {\n // Replace 'this.value' with the actual color string\n const updatedCode = onInputCode.replace(/this.value/g, `\"${colorString}\"`);\n \n // Create a new function using the Function constructor and execute it\n const func = new Function(updatedCode);\n func(); // Execute the dynamically created function\n }\n \n // Apply color\n pickr.applyColor();\n })\n .on('hide', () => {\n data.doNotRender = null;\n pickr.applyColor();\n App.render('#app');\n })\n });\n }\n }\n}\n\n// Inspector functions\nwindow.modifyRootVariable = id => {\n let modalContent = `<div class=\"p-4grid grid-cols-1 gap-4\">\n <div class=\"grid grid-cols-2 gap-4\">\n <div>\n <div class=\"mb-2 text-left\">Name: </div>\n <input \n id=\"m7t85jokv\" \n type=\"text\" \n value=\"${id}\" \n placeholder=\"-- added automatically\" \n onkeydown=\"\n if (event.key === 'Enter') {\n document.getElementById('hbo1luvti').focus();\n }\n \">\n </div>\n <div>\n <div class=\"mb-2 text-right\">Value: </div>\n <input \n id=\"hbo1luvti\" \n type=\"text\" \n value=\"${project.css.rootVariables[id]}\" \n placeholder=\"variable value\" \n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n <select \n id=\"c15au9cn8\" \n onchange=\"\n document.getElementById('hbo1luvti').setAttribute('type', this.value);\n \"\n >\n <option value=\"text\">text</option>\n <option value=\"number\">number</option>\n <option value=\"color\">color</option>\n </select>\n </div>\n </div>\n <div class=\"text-center\">\n <button \n class=\"w-full border-red-400 text-red-400 rounded-md py-2 mt-4 bg-transparent font-thin\" \n onclick=\"\n saveState();\n delete project.css.rootVariables['${id}']; \n saveState();\n document.querySelector('dialog[open]').querySelector('header > button:last-child').onclick();\n \">\n Delete Variable\n </button>\n </div>\n </div>`;\n\n Modal.render({\n title: `Are you sure you want to rename the \"${id.substring(2)}\" root variable?`,\n content: modalContent,\n onLoad() {\n document.getElementById('m7t85jokv').focus();\n document.getElementById('m7t85jokv').select();\n },\n onConfirm() {\n let newValue = document.getElementById('hbo1luvti').value;\n let name = document.getElementById('m7t85jokv').value;\n // Convert the first character to lowercase\n name = name.charAt(0).toLowerCase() + name.slice(1);\n\n if (name) {\n if (!name.startsWith('--')) {\n name = '--' + name;\n }\n // Convert the first character after '--' to lowercase\n let newName = name.substring(0, 2) + name.charAt(2).toLowerCase() + name.slice(3);\n \n if (project.css.rootVariables[newName]) {\n // Update existsing value\n project.css.rootVariables[newName] = newValue;\n App.render('#app');\n } else {\n saveState();\n\n // Clone the style object\n project.css.rootVariables[newName] = JSON.parse(JSON.stringify(project.css.rootVariables[`${id}`]));\n \n // Update the variable with the new value\n project.css.rootVariables[newName] = newValue; // Assign the new value to the variable\n\n // Now delete the old style object\n delete project.css.rootVariables[`${id}`];\n localStorage.setItem('Polyrise', JSON.stringify(project));\n\n saveState();\n }\n } else {\n Modal.render({\n title: `Unable to rename variable`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.addStyle = () => {\n let modalContent = `\n <input \n id=\"vvrh9nxwk\" \n type=\"text\" \n value=\".${generateId()}\"\n placeholder=\"Style name/target...\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n `;\n \n // Render the modal\n Modal.render({\n title: `Add A Style`,\n content: modalContent,\n onLoad() {\n document.getElementById('vvrh9nxwk').focus();\n document.getElementById('vvrh9nxwk').select();\n },\n onConfirm() {\n let value = document.getElementById('vvrh9nxwk').value;\n if (value) {\n // Convert the first character to lowercase\n value = value.charAt(0).toLowerCase() + value.slice(1);\n \n let obj = project.css.styles;\n if (data.breakpointKey && data.stylesTarget) {\n obj = project.css.breakpoints[`${data.breakpointKey}px`];\n }\n\n if (obj[`${value}`]) {\n Modal.render({\n title: `Unable to add style!`,\n content: \"Style already exists!\"\n });\n } else {\n obj[value] = {\n \"base\": {},\n \"pseudos\": []\n };\n }\n } else {\n Modal.render({\n title: `Unable to add style`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.duplicateStyle = () => {\n let modalContent = `\n <input \n id=\"vvrh9nxwk\" \n type=\"text\" \n value=\".${generateId()}\"\n placeholder=\"Style name/target...\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n `;\n \n // Render the modal\n Modal.render({\n title: `Name your style`,\n content: modalContent,\n onLoad() {\n document.getElementById('vvrh9nxwk').focus();\n document.getElementById('vvrh9nxwk').select();\n },\n onConfirm() {\n let value = document.getElementById('vvrh9nxwk').value;\n if (value) {\n // Convert the first character to lowercase\n value = value.charAt(0).toLowerCase() + value.slice(1);\n \n let obj = project.css.styles;\n if (data.breakpointKey && data.stylesTarget) {\n obj = project.css.breakpoints[`${data.breakpointKey}px`];\n }\n\n if (obj[`${value}`]) {\n Modal.render({\n title: `Unable to add style!`,\n content: \"Style already exists!\"\n });\n } else {\n obj[value] = obj[data.stylesTarget];\n }\n } else {\n Modal.render({\n title: `Unable to add style`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.addStylePropModal = (id, obj) => {\n // Define default values for each property type\n const defaultValues = data.defaultValues;\n\n // Sort and categorize properties\n const rootVariables = Object.keys(project.css.rootVariables).sort();\n const fixedValueProperties = Object.keys(data.cssFixedValueProperties).sort();\n const rangedValueProperties = Object.keys(data.cssRangedValueProperties).sort();\n\n // Generate options grouped by category\n const rootVariableOptions = rootVariables.map(prop => `\n <option value=\"${prop}\">${prop}</option>\n `).join('');\n\n const fixedValuePropertyOptions = fixedValueProperties.map(prop => `\n <option value=\"${prop}\">${prop}</option>\n `).join('');\n\n const rangedValuePropertyOptions = rangedValueProperties.map(prop => `\n <option value=\"${prop}\">${prop}</option>\n `).join('');\n\n const modalContent = `\n <div class=\"p-4\">\n <label class=\"block mb-2\">Select Property Type:</label>\n <select id=\"property-type\" class=\"w-full rounded-md capitalize text-[.6rem]\">\n <option value=\"\">-- Select a property --</option>\n <optgroup label=\"Root Variables\">\n ${rootVariableOptions}\n </optgroup>\n <optgroup label=\"Fixed Value Properties\">\n ${fixedValuePropertyOptions}\n </optgroup>\n <optgroup label=\"Ranged Value Properties\">\n ${rangedValuePropertyOptions}\n </optgroup>\n </select>\n <div id=\"property-details-section\" class=\"mt-4\">\n <div id=\"unit-section\" style=\"display: none;\">\n <label class=\"block mb-2 mt-4\">Select Unit:</label>\n <select id=\"property-unit\" class=\"w-full rounded-md capitalize text-[.6rem]\">\n <!-- Options will be dynamically updated -->\n </select>\n </div>\n </div>\n <input id=\"ool1zyibs\" type=\"text\" placeholder=\"Type css property here...\" onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \"/>\n </div>\n ${data.canUseQuickCommands ? `<div class=\"text-center text-[.6rem]\">\n You can also apply styles using <a href=\"https://tailwindcss.com/\" target=\"_blank\">tailwind</a> classes as quick commands!\n </div>` : ''}`;\n\n Modal.render({\n title: `Add New Style to \"${id}\"`,\n content: modalContent,\n onLoad() {\n document.getElementById('ool1zyibs').focus();\n const propertyTypeSelect = document.getElementById('property-type');\n const unitSelect = document.getElementById('property-unit');\n const unitSection = document.getElementById('unit-section');\n\n function updatePropertyDetails(selectedType) {\n unitSelect.innerHTML = '';\n\n if (data.cssRangedValueProperties[selectedType]) {\n unitSection.style.display = noUnitProperties.includes(selectedType) ? 'none' : 'block';\n\n if (selectedType.startsWith('animation')) {\n unitOptions.animation.forEach(unit => {\n unitSelect.innerHTML += `<option value=\"${unit}\">${unit}</option>`;\n });\n } else if (transformUnits.includes(selectedType)) {\n unitOptions.transform.forEach(unit => {\n unitSelect.innerHTML += `<option value=\"${unit}\">${unit}</option>`;\n });\n } else {\n unitOptions.default.forEach(unit => {\n unitSelect.innerHTML += `<option value=\"${unit}\">${unit}</option>`;\n });\n }\n } else if (data.cssFixedValueProperties[selectedType]) {\n unitSection.style.display = 'none';\n } else {\n unitSection.style.display = 'none';\n }\n }\n\n propertyTypeSelect.onchange = function() {\n const selectedType = this.value;\n updatePropertyDetails(selectedType);\n document.getElementById('ool1zyibs').value = selectedType;\n };\n },\n onConfirm() {\n let propertyTypeInput = document.getElementById('ool1zyibs').value.trim();\n const unit = document.getElementById('property-unit') ? document.getElementById('property-unit').value : '';\n const noUnit = ['opacity', 'z-index'];\n const cssQuickCommands = data.cssQuickCommands;\n \n // Normalize the input\n const properties = propertyTypeInput.split(',').map(prop => prop.trim());\n \n properties.forEach(propertyString => {\n let [propertyType, userDefinedValue] = propertyString.split('=').map(str => str.trim());\n propertyType = propertyType.toLowerCase();\n \n // Check if propertyType is a Tailwind quick command\n if (Object.keys(cssQuickCommands).includes(propertyType)) {\n const quickCommand = cssQuickCommands[propertyType];\n const quickCommandProperties = quickCommand.split(';').filter(Boolean);\n \n quickCommandProperties.forEach(propertyString => {\n let [quickPropertyType, quickUserDefinedValue] = propertyString.split(':').map(str => str.trim());\n quickPropertyType = quickPropertyType.toLowerCase();\n obj[quickPropertyType] = quickUserDefinedValue;\n });\n } else {\n // Handle custom properties\n let finalValue;\n \n if (userDefinedValue) {\n // Use the user-defined value\n finalValue = userDefinedValue + (unit && !noUnit.includes(propertyType) ? unit : '');\n } else {\n // Use the default value if no value was provided\n const defaultValue = defaultValues[propertyType] || defaultValues['default'];\n finalValue = unit ? `${defaultValue}${unit}` : defaultValue;\n }\n \n // Apply the final value to the property\n if (noUnit.includes(propertyType)) {\n obj[propertyType] = userDefinedValue || \"1\";\n } else {\n obj[propertyType] = finalValue;\n }\n }\n });\n \n saveState();\n } \n });\n}\nwindow.renameStyleTarget = target => {\n let modalContent = `<div class=\"p-4 text-center\">\n <input id=\"lnjvy3iz2\" type=\"text\" placeholder=\"Style name/target...\" onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n </div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to rename the \"${target}\" style?`,\n content: modalContent,\n onLoad() {\n document.getElementById('lnjvy3iz2').focus();\n },\n onConfirm() {\n let value = document.getElementById('lnjvy3iz2').value;\n if (value) {\n // Convert the first character to lowercase\n value = value.charAt(0).toLowerCase() + value.slice(1);\n \n if (project.css.styles[value]) {\n Modal.render({\n title: `Unable to add style!`,\n content: \"Style already exists!\"\n });\n } else if (project.css.styles[`${target}`]) {\n // Remove the storage of the styles target before changing\n data.stylesTarget = null;\n\n // Clone the style object\n project.css.styles[value] = JSON.parse(JSON.stringify(project.css.styles[target]));\n \n // Now delete the old style object\n delete project.css.styles[target];\n\n // Target the new style\n data.stylesTarget = value;\n\n saveState();\n }\n } else {\n Modal.render({\n title: `Unable to rename style`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.deleteStyleTarget = target => {\n let modalContent = `<div class=\"p-4 text-center\">You will still be able to undo.</div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to delete the \"${target}\" style?`,\n content: modalContent,\n onConfirm() {\n if (data.stylesTarget) {\n clearStyles(project.html, data.stylesTarget);\n delete project.css.styles[data.stylesTarget];\n data.stylesTarget = null;\n saveState();\n }\n }\n });\n}\nwindow.addBreakpoint = () => {\n let modalContent = `\n <select \n id=\"j6xqh4air\" \n onchange=\"document.getElementById('vvrh9nxwk').value = this.value;\"\n >\n <option value=\"\">none</option>\n <option value=\"640\">sm (640px)</option>\n <option value=\"768\">md (768px)</option>\n <option value=\"1024\">lg (1024px)</option>\n <option value=\"1280\">xl (1280px)</option>\n <option value=\"1536\">2xl (1536px)</option>\n </select>\n <input \n id=\"vvrh9nxwk\" \n type=\"number\" \n placeholder=\"Breakpoint size here\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('header > button:last-child').onclick();\n }\n \">\n `;\n \n // Render the modal\n Modal.render({\n title: `Add A Breakpoint`,\n content: modalContent,\n onLoad() {\n document.getElementById('vvrh9nxwk').focus();\n },\n onConfirm() {\n const value = document.getElementById('vvrh9nxwk').value;\n if (value) {\n if (project.css.breakpoints[`${value}px`]) {\n Modal.render({\n title: `Unable to add breakpoint!`,\n content: \"Breakpoint already exists!\"\n });\n } else {\n project.css.breakpoints[`${value}px`] = {};\n project.css.breakpoints[`${value}px`][`${data.stylesTarget}`] = {\n \"base\": {},\n \"pseudos\": []\n };\n }\n } else {\n Modal.render({\n title: `Unable to add breakpoint`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.renameBreakpointKey = size => {\n let modalContent = `<div class=\"p-4 text-center\">\n <input id=\"mow5ep6l7\" type=\"number\" placeholder=\"Style name/target...\" onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n </div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to rename the \"${size}\" style?`,\n content: modalContent,\n onLoad() {\n document.getElementById('mow5ep6l7').focus();\n },\n onConfirm() {\n const value = document.getElementById('mow5ep6l7').value;\n if (value) {\n if (project.css.breakpoints[`${value}px`]) {\n Modal.render({\n title: `Unable to rename breakpoint key!`,\n content: \"Key already exists!\"\n });\n } else {\n // Remove the storage of the styles target before changing\n data.breakpointKey = null;\n\n // Clone the style object\n project.css.breakpoints[`${value}px`] = JSON.parse(JSON.stringify(project.css.breakpoints[size]));\n \n // Now delete the old style object\n delete project.css.breakpoints[size];\n }\n } else {\n Modal.render({\n title: `Unable to rename breakpoint key`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.deleteBreakpointKey = size => {\n let modalContent = `<div class=\"p-4 text-center\">You will still be able to undo.</div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to delete the \"${size}\" style?`,\n content: modalContent,\n onConfirm() {\n if (size in project.css.breakpoints) {\n data.breakpointKey = null;\n delete project.css.breakpoints[size];\n saveState();\n }\n }\n });\n}\nwindow.addAnimation = () => {\n let modalContent = `\n <input \n id=\"vvrh9nxwk\" \n type=\"text\" \n placeholder=\"Animation name here....\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n `;\n \n // Render the modal\n Modal.render({\n title: `Add An Animation`,\n content: modalContent,\n onLoad() {\n document.getElementById('vvrh9nxwk').focus();\n },\n onConfirm() {\n let value = document.getElementById('vvrh9nxwk').value;\n if (value) {\n // Convert the first character to lowercase\n value = value.charAt(0).toLowerCase() + value.slice(1);\n if (project.css.animations[`${value}`]) {\n Modal.render({\n title: `Unable to add animation!`,\n content: \"Animation already exists!\"\n });\n } else {\n project.css.animations[value] = {\n \"keyframes\": {}\n };\n project.css.animations[value].keyframes = {\n \"0%\": {},\n \"100%\": {}\n };\n }\n } else {\n Modal.render({\n title: `Unable to add animation`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.renameAnimation = name => {\n let modalContent = `<div class=\"p-4 text-center\">\n <input id=\"mow5ep6l7\" type=\"text\" placeholder=\"Animation name here...\" onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n </div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to rename the \"${name}\" animation?`,\n content: modalContent,\n onLoad() {\n document.getElementById('mow5ep6l7').focus();\n },\n onConfirm() {\n const value = document.getElementById('mow5ep6l7').value;\n if (value) {\n if (project.css.animations[value]) {\n Modal.render({\n title: `Unable to rename animation!`,\n content: \"Animation name already exists!\"\n });\n } else {\n // Remove the storage of the styles target before changing\n data.animationTarget = null;\n\n // Clone the style object\n project.css.animations[value] = JSON.parse(JSON.stringify(project.css.animations[name]));\n \n // Now delete the old style object\n delete project.css.animations[name];\n\n // Make the new name the target\n data.animationTarget = value;\n }\n } else {\n Modal.render({\n title: `Unable to rename animation`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.deleteAnimation = name => {\n let modalContent = `<div class=\"p-4 text-center\">You will still be able to undo.</div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to delete the \"${name}\" animation?`,\n content: modalContent,\n onConfirm() {\n if (data.animationKeyframe) data.animationKeyframe = null;\n // Remove the storage of the styles target before changing\n data.animationTarget = null;\n data.animationTarget = null;\n delete project.css.animations[name];\n App.render(\"#app\");\n }\n });\n}\nwindow.addKeyFrame = () => {\n if (!data.animationTarget) return;\n let modalContent = `\n <input \n id=\"vvrh9nxwk\" \n type=\"text\" \n placeholder=\"From, To, 0%, 50%, 100%, etc:\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n `;\n \n // Render the modal\n Modal.render({\n title: `Add An Animation`,\n content: modalContent,\n onLoad() {\n document.getElementById('vvrh9nxwk').focus();\n },\n onConfirm() {\n const value = document.getElementById('vvrh9nxwk').value;\n if (value) {\n if (project.css.animations[data.animationTarget].keyframes[`${value}`]) {\n Modal.render({\n title: `Unable to add keyframe!`,\n content: \"Keyframe already exists!\"\n });\n } else {\n project.css.animations[data.animationTarget].keyframes[`${value}`] = {};\n saveState();\n }\n } else {\n Modal.render({\n title: `Unable to add keyframe`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.renameKeyFrame = name => {\n let modalContent = `<div class=\"p-4 text-center\">\n <input id=\"mow5ep6l7\" type=\"text\" placeholder=\"From, To, 0%, 50%, 100%, etc:\" onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n </div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to rename the \"${name}\" keyframe?`,\n content: modalContent,\n onLoad() {\n document.getElementById('mow5ep6l7').focus();\n },\n onConfirm() {\n const value = document.getElementById('mow5ep6l7').value;\n if (value) {\n if (project.css.animations[data.animationTarget].keyframes[value]) {\n Modal.render({\n title: `Unable to rename keyframe!`,\n content: \"Animation keyframe already exists!\"\n });\n } else {\n // Remove the storage of the styles target before changing\n data.animationKeyframe = null;\n\n // Clone the style object\n project.css.animations[data.animationTarget].keyframes[value] = JSON.parse(JSON.stringify(project.css.animations[data.animationTarget].keyframes[name]));\n \n // Now delete the old style object\n delete project.css.animations[data.animationTarget].keyframes[name];\n\n // Make the new name the target\n data.animationKeyframe = value;\n saveState();\n }\n } else {\n Modal.render({\n title: `Unable to rename keyframe key`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.deleteKeyFrame = name => {\n let modalContent = `<div class=\"p-4 text-center\">You will still be able to undo.</div>`;\n \n // Render the modal\n Modal.render({\n title: `Are you sure you want to delete the \"${name}\" keyframe?`,\n content: modalContent,\n onConfirm() {\n if (data.animationKeyframe) data.animationKeyframe = null;\n // Remove the storage of the styles target before changing\n data.animationKeyframe = null;\n delete project.css.animations[data.animationTarget].keyframes[name];\n saveState();\n App.render(\"#app\");\n }\n });\n}\nwindow.addToKeyframe = () => {\n if (!data.animationTarget || !data.animationKeyframe) return;\n let modalContent = `\n <input \n id=\"vvrh9nxwk\" \n type=\"text\" \n placeholder=\"From, To, 0%, 50%, 100%, etc:\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n `;\n \n // Render the modal\n Modal.render({\n title: `Add keyframe property`,\n content: modalContent,\n onLoad() {\n document.getElementById('vvrh9nxwk').focus();\n },\n onConfirm() {\n const value = document.getElementById('vvrh9nxwk').value;\n if (value) {\n if (project.css.animations[data.animationTarget].keyframes[`${value}`]) {\n Modal.render({\n title: `Unable to add keyframe!`,\n content: \"Keyframe already exists!\"\n });\n } else {\n project.css.animations[data.animationTarget].keyframes[value] = {};\n saveState();\n }\n } else {\n Modal.render({\n title: `Unable to add keyframe`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.deleteStyleProp = (id, prop, e, detect = null) => {\n let obj = null;\n if (detect) {\n if (detect === \"breakpoints\") {\n obj = project.css.breakpoints[`${data.breakpointKey}px`][id][data.stylesPropTarget];\n }\n if (detect === \"animations\") {\n obj = project.css.animations[data.animationTarget].keyframes[data.animationKeyframe]\n }\n } else {\n obj = project.css.styles[id][data.stylesPropTarget];\n }\n // Delete the property\n if (prop in obj) delete obj[`${prop}`];\n saveState();\n\n // Remove the modal\n e.closest('dialog[open]').remove();\n}\nwindow.clearStyles = (layers, query, callback) => {\n // first delete the style object\n if (project.css.styles[query]) {\n delete project.css[query];\n }\n\n // Track whether we found and cleared the styles in any layer\n let found = false;\n\n // then let's remove the style from layers\n for (const layer of layers) {\n if (layer.style === query) {\n layer.style = \"\";\n found = true;\n };\n // Recurse through child layers\n if (layer.children && layer.children.length > 0) {\n clearStyles(layer.children, query, () => {\n found = true;\n });\n }\n // If we processed any layers, renderPreview and invoke the callback\n if (found) {\n if (typeof callback === 'function') {\n callback();\n }\n }\n }\n}\nwindow.styleModal = (id, prop, currentValue, detect = null) => {\n const cssFixedValueProperties = data.cssFixedValueProperties;\n\n let detected = null;\n if (detect) detected = detect;\n\n // Initialize the modal content based on the property type\n let modalContent = '';\n\n if (cssFixedValueProperties[prop]) {\n // Handle fixed values\n const options = cssFixedValueProperties[prop].map(val => `\n <option value=\"${val}\" ${val === currentValue ? 'selected' : ''}>${val}</option>\n `).join('');\n\n modalContent = `\n <div class=\"p-4\">\n <label class=\"block mb-2\">Current Value: ${currentValue}</label>\n <select class=\"w-full rounded-md text-[.6rem]\" id=\"new-value\">\n ${options}\n </select>\n </div>`;\n } else {\n // Handle other types of properties (e.g., text) with a single input\n modalContent = `\n <div class=\"p-4\">\n <label class=\"block mb-2\">Current Value: ${currentValue}</label>\n <input \n id=\"new-value\"\n class=\"w-full rounded-md text-[.6rem]\" \n type=\"text\" \n value=\"${currentValue}\" \n placeholder=\"Enter new value\" \n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \"/>\n </div>`;\n }\n\n // Add a delete option\n modalContent += `\n <div class=\"p-4 text-center\">\n <button class=\"w-full border-red-400 text-red-400 rounded-md py-2 mt-4 bg-transparent font-thin\" \n onclick=\"deleteStyleProp('${id}', '${prop}', this${detected ? `, '${detected}'` : '' })\">Delete Property</button>\n </div>`;\n\n // Render the modal\n Modal.render({\n title: `Modify \"${prop}\" Style`,\n content: modalContent,\n onLoad() {\n if (document.getElementById('new-value')) {\n const element = document.getElementById('new-value');\n element.focus();\n if (element.tagName.toLowerCase() === 'input') {\n element.select();\n }\n }\n },\n onConfirm() {\n saveState();\n\n // Get the new value from the modal\n const newValue = document.getElementById('new-value').value;\n\n let obj = null;\n if (detect) {\n if (detect === \"breakpoints\") {\n if (project.css.breakpoints[`${data.breakpointKey}px`][id][data.stylesPropTarget]) {\n obj = project.css.breakpoints[`${data.breakpointKey}px`][id][data.stylesPropTarget];\n }\n }\n if (detect === \"animations\") {\n if (project.css.animations[data.animationTarget].keyframes[data.animationKeyframe]) {\n obj = project.css.animations[data.animationTarget].keyframes[data.animationKeyframe];\n }\n }\n } else {\n if (data.stylesPropTarget) {\n obj = project.css.styles[id][data.stylesPropTarget];\n }\n }\n\n // Update or delete the style\n if (newValue === '') {\n // Delete the property if empty\n delete obj[prop];\n } else {\n // Update the property with the new value\n obj[prop] = `${newValue}`;\n }\n\n saveState();\n }\n });\n}\nwindow.addPseudo = selector => {\n // Ensure the selector exists and initialize pseudos if not already present\n if (!project.css.styles[selector]) return;\n if (!project.css.styles[selector].pseudos) {\n project.css.styles[selector].pseudos = [];\n }\n\n // Define available pseudo-classes and pseudo-elements\n const pseudos = [\n 'none',\n ':active',\n ':after',\n ':before',\n ':first-child',\n ':focus',\n ':focus-visible',\n ':focus-within',\n ':hover',\n ':last-child',\n ':nth-child',\n ':target',\n ':visited',\n '::-webkit-scrollbar',\n '::-webkit-scrollbar-thumb',\n '::-webkit-scrollbar-track',\n '::before',\n '::after'\n ];\n\n let pseudoOptions = pseudos.map(pseudo => `\n <option value=\"${pseudo === 'none' ? '' : pseudo}\">${pseudo}</option>\n `).join('');\n\n let modalContent = `\n <div class=\"p-4\">\n <label class=\"block mb-2\">Select Pseudo-Class/Element:</label>\n <select \n id=\"pseudo-selector\" \n class=\"w-full rounded-md capitalize text-[.6rem]\" \n onchange=\"\n document.getElementById('pseudo-input').value = this.value;\n \">\n <option value=\"\">-- Select a pseudo --</option>\n ${pseudoOptions}\n </select>\n <input \n id=\"pseudo-input\" \n type=\"text\" \n placeholder=\"Enter CSS property and value here (e.g., display:none):\"\n class=\"w-full rounded-md text-[.6rem] mt-4\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n </div>\n `;\n\n // Render the modal\n Modal.render({\n title: `Add A Pseudo-Class/Element`,\n content: modalContent,\n onLoad() {\n document.getElementById('pseudo-input').focus();\n },\n onConfirm() {\n const pseudoSelector = document.getElementById('pseudo-selector').value.trim();\n const pseudoStyles = document.getElementById('pseudo-input').value.trim();\n\n if (pseudoStyles) {\n // Convert pseudoStyles into an object\n const styles = pseudoStyles.split(';').reduce((acc, rule) => {\n const [property, value] = rule.split(':').map(s => s.trim());\n if (property && value) acc[property] = value;\n return acc;\n }, {});\n\n const existingPseudo = project.css.styles[selector].pseudos.find(pseudo => pseudo.selector === pseudoStyles);\n\n if (existingPseudo) {\n // Merge new styles with existing styles if pseudo already exists\n existingPseudo.styles = {\n ...existingPseudo.styles,\n ...styles\n };\n } else {\n // Add a new pseudo object\n let obj = {\n \"selector\": pseudoStyles,\n \"styles\": styles\n };\n project.css.styles[selector].pseudos.push(obj);\n }\n\n saveState();\n } else {\n Modal.render({\n title: `Unable to add pseudo`,\n content: \"Please select a pseudo and enter valid CSS properties and values.\"\n });\n }\n }\n });\n}\nwindow.renamePseudo = oldName => {\n // Define available pseudo-classes and pseudo-elements\n const pseudos = [\n 'none',\n ':active',\n ':after',\n ':before',\n ':first-child',\n ':focus',\n ':focus-visible',\n ':focus-within',\n ':hover',\n ':last-child',\n ':nth-child',\n ':target',\n ':visited',\n '::-webkit-scrollbar',\n '::-webkit-scrollbar-thumb',\n '::-webkit-scrollbar-track',\n '::before',\n '::after'\n ];\n\n let pseudoOptions = pseudos.map(pseudo => `\n <option value=\"${pseudo === 'none' ? '' : pseudo}\">${pseudo}</option>\n `).join('');\n\n let modalContent = `\n <div class=\"p-4\">\n <label class=\"block mb-2\">Select Pseudo-Class/Element to Rename:</label>\n <select \n id=\"pseudo-selector\" \n class=\"w-full rounded-md capitalize text-[.6rem]\" \n onchange=\"\n document.getElementById('pseudo-name-input').value = this.value;\n \">\n <option value=\"\">-- Select a pseudo --</option>\n ${pseudoOptions}\n </select>\n <input \n id=\"pseudo-name-input\" \n type=\"text\" \n placeholder=\"Enter new name here...\"\n class=\"w-full rounded-md text-[.6rem] mt-4\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \">\n </div>\n `;\n\n // Render the modal\n Modal.render({\n title: `Are you sure you want to rename the \"${oldName}\" pseudo-class/element?`,\n content: modalContent,\n onLoad() {\n document.getElementById('pseudo-name-input').focus();\n },\n onConfirm() {\n const newName = document.getElementById('pseudo-name-input').value.trim();\n if (newName) {\n const style = project.css.styles[data.stylesTarget];\n if (!style || !style.pseudos) return;\n\n const existingPseudo = style.pseudos.find(pseudo => pseudo.selector === newName);\n if (existingPseudo) {\n Modal.render({\n title: `Unable to rename pseudo!`,\n content: \"Pseudo with the new name already exists!\"\n });\n return;\n }\n\n const pseudoIndex = style.pseudos.findIndex(pseudo => pseudo.selector === oldName);\n if (pseudoIndex === -1) {\n Modal.render({\n title: `Pseudo not found!`,\n content: `No pseudo with the name \"${oldName}\" found!`\n });\n return;\n }\n\n // Rename the pseudo\n style.pseudos[pseudoIndex].selector = newName;\n\n App.render(\"#app\");\n saveState();\n } else {\n Modal.render({\n title: `Unable to rename pseudo`,\n content: \"No value detected!\"\n });\n }\n }\n });\n}\nwindow.deletePseudo = () => {\n const name = data.pseudosSelector;\n const pseudoIndex = data.pseudosSelectorIndex;\n let modalContent = `<div class=\"p-4 text-center\">You will still be able to undo.</div>`;\n\n // Render the modal\n Modal.render({\n title: `Are you sure you want to delete the \"${name}\" pseudo-class/element?`,\n content: modalContent,\n onConfirm() {\n const style = project.css.styles[data.stylesTarget];\n if (!style || !style.pseudos) return;\n\n data.pseudosSelector = null;\n data.pseudosSelectorIndex = 0;\n style.pseudos.splice(pseudoIndex, 1);\n saveState();\n }\n });\n}\nwindow.fetchCssQuickCommands = async url => {\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n data.canUseQuickCommands = true;\n const obj = await response.json();\n return obj;\n } catch (error) {\n console.error('Error fetching CSS quick commands:', error);\n }\n}\nwindow.applyCssQuickCommands = async url => {\n const cssQuickCommands = await fetchCssQuickCommands(url);\n\n if (cssQuickCommands) {\n // Assuming `data` is a global object where `cssQuickCommands` should be applied\n data.cssQuickCommands = cssQuickCommands;\n }\n}\n// Helper function to add an attribute to the element\nwindow.addAttribute = attr => {\n if (!attr) return;\n const incrementPattern = /{n}/g; // Pattern to detect increment placeholder\n\n // Split the attributes into individual attributes\n const attrs = attr.toLowerCase().split(',').map(q => q.trim().toLowerCase());\n\n // Get the current increment values for each attribute\n const incrementValues = {};\n\n saveState();\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n if (layer) {\n // Initialize layer.props if it's undefined\n if (!layer.props) layer.props = {};\n\n // Iterate over each attribute\n attrs.forEach(attribute => {\n let [key, value] = attribute.split('=').map(s => s.trim());\n if (key === 'id') value = generateId();\n\n if (incrementPattern.test(value)) {\n // Handle incrementing values\n let baseValue = value.replace(incrementPattern, '');\n let increment = incrementValues[key] || 1;\n value = baseValue + increment;\n incrementValues[key] = increment + 1;\n }\n\n if (!(key in layer.props)) {\n layer.props[key] = value !== undefined ? value : \"\";\n } else if (value !== undefined) {\n // If the attribute already exists, update its value\n layer.props[key] = value;\n }\n });\n }\n });\n saveState();\n}\n\n// editor functions\nwindow.html2json = input => {\n function elementToJson(element) {\n const boxElements = data.boxElements;\n const textElements = data.textElements;\n const noTextElements = [\n \"br\",\n \"hr\",\n \"input\",\n \"progress\",\n \"optgroup\",\n \"input\",\n \"link\",\n \"img\",\n \"svg\",\n \"path\",\n \"polygon\",\n \"rect\",\n \"circle\",\n \"ellipse\",\n \"g\",\n \"defs\",\n \"clipPath\"\n ];\n const tagName = element.tagName.toLowerCase();\n const obj = {\n tag: element.tagName.toLowerCase(),\n id: generateId(),\n style: \"\",\n state: {\n \"collapsed\": false,\n \"visible\": true,\n \"selected\": false\n }\n };\n\n obj.name = tagName;\n if (boxElements.includes(tagName)) {\n obj.type = \"box\";\n obj.text = \"\";\n } else if (textElements.includes(tagName)) {\n obj.type = \"text\";\n obj.text = \"\";\n } else {\n obj.type = tagName;\n if (!noTextElements.includes(tagName)) {\n obj.text = \"\";\n }\n }\n \n // Add props only if not empty\n if (element.hasAttributes()) {\n const props = {};\n Array.from(element.attributes).forEach(attr => {\n props[`${attr.name.toLowerCase()}`] = `${attr.value}`;\n });\n obj.props = props;\n }\n \n if (element.childNodes.length > 0) {\n obj.children = [];\n element.childNodes.forEach(child => {\n if (child.nodeType === Node.ELEMENT_NODE) {\n obj.children.push(elementToJson(child));\n } else if (child.nodeType === Node.TEXT_NODE && child.nodeValue.trim()) {\n obj.text = child.nodeValue.trim();\n }\n });\n }\n return obj;\n }\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(input, 'text/html');\n const json = Array.from(doc.body.children).map(child => elementToJson(child));\n return json;\n}\nwindow.json2html = input => {\n function jsonToElement(json) {\n const renderElement = element => {\n let html = '';\n\n // Skip elements that are not visible\n if (element.state && !element.state.visible) return html;\n \n if (!element.tag) {\n html += element.text || '';\n return html;\n }\n \n html += `<${element.tag}`;\n\n if (element.props) {\n for (let [key, value] of Object.entries(element.props)) {\n html += ` ${key}=\"${value}\"`;\n }\n }\n \n html += '>';\n \n if (element.text) {\n if (element.tag === 'style' || element.tag === 'script') {\n html += element.text;\n } else {\n html += escapeHtml(element.text);\n }\n }\n \n if (element.children) {\n for (const childElement of element.children) {\n html += renderElement(childElement);\n }\n }\n \n html += `</${element.tag}>`;\n return html;\n }\n \n let html = '';\n\n // If the input is an object, wrap it in an array\n if (!Array.isArray(json)) {\n json = [json];\n }\n\n if (Array.isArray(json)) {\n json.forEach(element => {\n html += renderElement(element);\n });\n }\n return html;\n }\n function escapeHtml(text) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return text.replace(/[&<>\"']/g, function(m) { return map[m]; });\n }\n function beautifyHtml(json) {\n const html = jsonToElement(json);\n let tab = ' ';\n let result = '';\n let indent = '';\n \n html.split(/>\\s*</).forEach(function(element) {\n if (element.match(/^\\/\\w/)) {\n indent = indent.substring(tab.length);\n }\n \n result += indent + '<' + element.trim() + '>\\r\\n';\n \n if (element.match(/^<?\\w[^>]*[^\\/]$/) && !element.startsWith(\"<input\")) {\n indent += tab;\n }\n });\n \n // Remove leading tab and newline, and trim trailing newline and whitespace\n return result.substring(1, result.length - 3).trim();\n }\n\n return beautifyHtml(input);\n}\nwindow.css2json = css => {\n if (typeof css !== 'string') {\n throw new Error(\"Input must be a CSS string\");\n }\n\n const json = {\n rootVariables: {},\n styles: {},\n animations: {},\n breakpoints: {}\n };\n\n css = minifyCSS(css)\n\n // Handle @import statements\n const importRegex = /@import\\s+url\\(['\"]([^'\"]+)['\"]\\);/g;\n let importMatch;\n\n while ((importMatch = importRegex.exec(css)) !== null) {\n const importUrl = importMatch[1].trim();\n if (project.libraries && !project.libraries.includes(importUrl)) {\n project.libraries.push(importUrl);\n }\n }\n\n // Remove @import statements from CSS\n css = css.replace(importRegex, '');\n\n const keyframesRegex = /@keyframes\\s+([^{\\s]+)\\s*\\{([^}]*(\\{[^}]*\\})[^}]*)\\}/g;\n const mediaQueryRegex = /@media\\s*([^{]+)\\s*\\{([\\s\\S]*?\\{[\\s\\S]*?\\})\\s*}/g;\n const selectorRegex = /([^{]+?)\\s*(\\{([^}]+)\\})/g;\n\n // Decode URL-encoded characters\n function decodeURIComponentSafe(str) {\n try {\n return decodeURIComponent(str);\n } catch {\n return str;\n }\n }\n\n function processSelector(selector, properties, target) {\n selector = selector.trim();\n if (selector.startsWith('@keyframes')) return;\n\n if (selector === \":root\") {\n properties.split(';').forEach(prop => {\n const [varName, varValue] = prop.split(\":\").map(part => part.trim());\n if (varName && varValue) {\n json.rootVariables[varName] = decodeURIComponentSafe(varValue);\n }\n });\n return;\n }\n\n const pseudoMatch = selector.match(/^(.*?)(::?[a-zA-Z0-9-]+)$/);\n let baseSelector = selector;\n let pseudo = null;\n\n if (pseudoMatch) {\n baseSelector = pseudoMatch[1].trim();\n pseudo = pseudoMatch[2];\n }\n\n if (!target[baseSelector]) {\n target[baseSelector] = {};\n }\n\n let currentTarget = target[baseSelector];\n if (pseudo) {\n currentTarget['pseudos'] = currentTarget['pseudos'] || [];\n const pseudoObj = {\n selector: pseudo,\n styles: {}\n };\n currentTarget['pseudos'].push(pseudoObj);\n currentTarget = pseudoObj.styles;\n } else {\n currentTarget['base'] = currentTarget['base'] || {};\n currentTarget = currentTarget['base'];\n }\n\n // Use regex to handle property-value pairs\n const propertyRegex = /([a-zA-Z-]+)\\s*:\\s*(.*?)(?=;|$)/g;\n let match;\n while ((match = propertyRegex.exec(properties)) !== null) {\n const property = match[1].trim();\n const value = match[2].trim();\n\n // Special handling for url(...) values\n const urlRegex = /^url\\(['\"]?(.*?)['\"]?\\)$/i;\n const urlMatch = value.match(urlRegex);\n\n if (urlMatch) {\n const urlContent = urlMatch[1].trim(); // Extract URL content and trim\n currentTarget[property] = `url(\"${decodeURIComponentSafe(urlContent)}\")`;\n } else {\n currentTarget[property] = decodeURIComponentSafe(value);\n }\n }\n }\n\n function processRules(cssRules, target) {\n let match;\n while ((match = selectorRegex.exec(cssRules)) !== null) {\n const selector = match[1].trim();\n const properties = match[3].trim();\n processSelector(selector, properties, target);\n }\n }\n\n function processKeyframes(keyframesName, keyframesRules) {\n const keyframes = {};\n\n keyframesRules.split('}').forEach(segment => {\n segment = segment.trim();\n if (!segment) return;\n\n const [keyframeName, propertiesPart] = segment.split('{').map(part => part.trim());\n if (keyframeName && (keyframeName.includes('to') || keyframeName.includes('from') || keyframeName.includes('%'))) {\n propertiesPart.split(';').forEach(prop => {\n const [property, value] = prop.split(':').map(p => p.trim());\n if (property && value) {\n keyframes[keyframeName] = keyframes[keyframeName] || {};\n keyframes[keyframeName][property] = decodeURIComponentSafe(value);\n }\n });\n }\n });\n\n json.animations[keyframesName] = { keyframes };\n }\n\n // Process keyframes\n let keyframesMatch;\n while ((keyframesMatch = keyframesRegex.exec(css)) !== null) {\n const keyframesName = keyframesMatch[1].trim();\n const keyframesRules = keyframesMatch[2].trim();\n processKeyframes(keyframesName, keyframesRules);\n }\n\n // Process media queries\n let mediaMatch;\n while ((mediaMatch = mediaQueryRegex.exec(css)) !== null) {\n const mediaCondition = mediaMatch[1].trim().split(\")\")[0].split(\":\")[1].trim();\n const mediaRules = mediaMatch[2].trim();\n const mediaTarget = {};\n\n processRules(mediaRules, mediaTarget);\n\n json.breakpoints[mediaCondition] = mediaTarget;\n }\n\n // Remove media queries from CSS\n const cssWithoutMedia = css.replace(mediaQueryRegex, '');\n\n // Process remaining CSS rules\n processRules(cssWithoutMedia, json.styles);\n\n // Remove keyframes from CSS\n css = css.replace(keyframesRegex, '');\n\n // Remove any empty selectors or unnecessary properties\n Object.keys(json.styles).forEach(selector => {\n if (Object.keys(json.styles[selector]).length === 0) {\n delete json.styles[selector];\n }\n });\n\n return json;\n};\n\nwindow.json2css = styles => {\n let css = '';\n let symbol = \"\";\n let semicolon = \";\";\n let openBrace = \"{\";\n let closeBrace = \"}\";\n\n // Function to check if a value contains CSS variables\n function containCssVar(value) {\n return /var\\(--/.test(value);\n }\n\n // Function to process styles recursively\n function processStyles(selector, style, indentLevel = 0) {\n let indent = ' '.repeat(indentLevel);\n let innerCss = '';\n\n const variables = style.variables || {};\n const baseStyles = style.base || {};\n const pseudos = style.pseudos || [];\n const children = style.children || {}; // Account for children\n\n // Add the base selector\n innerCss += `${indent}${selector} ${openBrace}\\n`;\n\n // Variables\n for (const [variable, value] of Object.entries(variables)) {\n innerCss += `${indent} ${symbol}${variable}: ${value}${semicolon}\\n`;\n }\n\n // Base styles\n for (let [property, value] of Object.entries(baseStyles)) {\n if (containCssVar(value)) {\n // Replace CSS variables with CSS variables, handling mixed content\n value = value.replace(/var\\(--([a-zA-Z0-9-_]+)\\)/g, (match, varName) => {\n return `var(--${varName})`;\n });\n }\n innerCss += `${indent} ${property}: ${value}${semicolon}\\n`;\n }\n\n innerCss += `${indent}${closeBrace}\\n`;\n\n // Pseudo-classes/styles\n pseudos.forEach(({ selector: pseudoSelector, styles: pseudoStyles }) => {\n innerCss += `${indent}${selector}${pseudoSelector} ${openBrace}\\n`;\n for (let [property, value] of Object.entries(pseudoStyles)) {\n if (containCssVar(value)) {\n value = value.replace(/var\\(--([a-zA-Z0-9-_]+)\\)/g, (match, varName) => {\n return `var(--${varName})`;\n });\n }\n innerCss += `${indent} ${property}: ${value}${semicolon}\\n`;\n }\n innerCss += `${indent}${closeBrace}\\n`;\n });\n\n // Recursively process children\n for (const [childSelector, childStyle] of Object.entries(children)) {\n innerCss += processStyles(`${selector} ${childSelector}`, childStyle, indentLevel + 1);\n }\n\n return innerCss;\n }\n\n // Function to process animations\n function processAnimations(animations, indentLevel = 0) {\n let indent = ' '.repeat(indentLevel);\n let animationCss = '';\n\n for (const [animationName, animation] of Object.entries(animations)) {\n animationCss += `${indent}@keyframes ${animationName} ${openBrace}\\n`;\n\n for (const [keyframe, styles] of Object.entries(animation.keyframes)) {\n animationCss += `${indent} ${keyframe} ${openBrace}\\n`;\n for (let [property, value] of Object.entries(styles)) {\n if (containCssVar(value)) {\n value = value.replace(/var\\(--([a-zA-Z0-9-_]+)\\)/g, (match, varName) => {\n return `var(--${varName})`;\n });\n }\n animationCss += `${indent} ${property}: ${value}${semicolon}\\n`;\n }\n animationCss += `${indent} ${closeBrace}\\n`;\n }\n\n animationCss += `${indent}${closeBrace}\\n`;\n }\n\n return animationCss;\n }\n\n // Function to process breakpoints\n function processBreakpoints(breakpoints, indentLevel = 0) {\n let indent = ' '.repeat(indentLevel);\n let breakpointCss = '';\n\n for (const [breakpoint, styles] of Object.entries(breakpoints)) {\n breakpointCss += `${indent}@media (min-width: ${breakpoint}) ${openBrace}\\n`;\n for (const [selector, style] of Object.entries(styles)) {\n breakpointCss += processStyles(selector, style, indentLevel + 1);\n }\n breakpointCss += `${indent}${closeBrace}\\n`;\n }\n\n return breakpointCss;\n }\n\n // Define :root variables\n if (styles.rootVariables && Object.keys(styles.rootVariables).length) {\n css += \":root {\\n\";\n for (const [variable, value] of Object.entries(styles.rootVariables)) {\n css += ` ${variable}: ${value}${semicolon}\\n`;\n }\n css += \"}\\n\\n\";\n }\n\n // Define styles for each class\n for (const [classId, style] of Object.entries(styles.styles)) {\n if (!style || (!Object.keys(style.variables || {}).length &&\n !Object.keys(style.base || {}).length &&\n !Object.keys(style.pseudos || {}).length &&\n !Object.keys(style.children || {}).length)) {\n continue; // Skip empty styles\n }\n\n const selector = classId;\n css += processStyles(selector, style);\n }\n\n // Process animations\n if (Object.keys(styles.animations || {}).length) {\n css += processAnimations(styles.animations);\n }\n\n // Process breakpoints (media queries)\n if (Object.keys(styles.breakpoints || {}).length) {\n css += processBreakpoints(styles.breakpoints);\n }\n\n return css;\n}\nwindow.json2preprocessor = styles => {\n let css = '';\n let symbol = \"\";\n let semicolon = \";\";\n let openBrace = \"{\";\n let closeBrace = \"}\";\n\n // set proper symbols\n if (data.preprocessors.includes(project.convertTo)) {\n if (project.convertTo === \"sass\" || project.convertTo === \"scss\") symbol = \"$\";\n if (project.convertTo === \"sass\") {\n semicolon = \"\";\n openBrace = \"\";\n closeBrace = \"\";\n }\n if (project.convertTo === \"less\") symbol = \"@\";\n }\n\n // Function to check if a value contains CSS variables\n function containcssVar(value) {\n return /var\\(--/.test(value);\n }\n\n // Function to process styles recursively\n function processStyles(selector, style, indentLevel = 0) {\n let indent = ' '.repeat(indentLevel);\n let innercss = '';\n\n const variables = style.variables || {};\n const baseStyles = style.base || {};\n const pseudos = style.pseudos || [];\n const children = style.children || {}; // Account for children\n\n innercss += `${indent}${selector} ${openBrace}\\n`;\n\n // Variables (convert CSS variables to css variables)\n for (const [variable, value] of Object.entries(variables)) {\n innercss += `${indent} ${symbol}${variable}: ${value}${semicolon}\\n`;\n }\n\n // Base styles\n for (let [property, value] of Object.entries(baseStyles)) {\n if (property.startsWith('--')) {\n property = property.split('--').join(symbol);\n }\n\n // Check if value contains a CSS variable\n if (containcssVar(value)) {\n // Replace CSS variables with css variables, handling mixed content\n value = value.replace(/var\\(--([a-zA-Z0-9-_]+)\\)/g, (match, varName) => {\n if (!property.startsWith('--')) {\n return `${symbol}${varName}`;\n } else {\n return `${symbol}${varName}`;\n }\n });\n }\n innercss += `${indent} ${property}: ${value}${semicolon}\\n`;\n }\n\n // Pseudo-classes/styles\n pseudos.forEach(({ selector: pseudoSelector, styles: pseudoStyles }) => {\n innercss += `${indent} &${pseudoSelector} ${openBrace}\\n`;\n for (let [property, value] of Object.entries(pseudoStyles)) {\n // Check if value contains a CSS variable\n if (containcssVar(value)) {\n value = value.replace(/var\\(--([a-zA-Z0-9-_]+)\\)/g, (match, varName) => {\n return `${symbol}${varName}`;\n });\n }\n innercss += `${indent} ${property}: ${value}${semicolon}\\n`;\n }\n innercss += `${indent} ${closeBrace}\\n`;\n });\n\n // Recursively process children\n if (children) {\n for (const [childSelector, childStyle] of Object.entries(children)) {\n innercss += processStyles(`${selector} ${childSelector}`, childStyle, indentLevel + 1);\n }\n }\n\n innercss += `${indent}${closeBrace}\\n`;\n\n return innercss;\n }\n\n // Function to process animations\n function processAnimations(animations, indentLevel = 0) {\n let indent = ' '.repeat(indentLevel);\n let animationCSS = '';\n\n for (const [animationName, animation] of Object.entries(animations)) {\n animationCSS += `${indent}@keyframes ${animationName} ${openBrace}\\n`;\n\n for (const [keyframe, styles] of Object.entries(animation.keyframes)) {\n animationCSS += `${indent} ${keyframe} ${openBrace}\\n`;\n for (let [property, value] of Object.entries(styles)) {\n // Replace CSS variables with preprocessor variables if needed\n if (containcssVar(value)) {\n value = value.replace(/var\\(--([a-zA-Z0-9-_]+)\\)/g, (match, varName) => {\n return `${symbol}${varName}`;\n });\n }\n animationCSS += `${indent} ${property}: ${value}${semicolon}\\n`;\n }\n animationCSS += `${indent} ${closeBrace}\\n`;\n }\n\n animationCSS += `${indent}${closeBrace}\\n`;\n }\n\n return animationCSS;\n }\n\n // Function to process breakpoints\n function processBreakpoints(breakpoints, indentLevel = 0) {\n let indent = ' '.repeat(indentLevel);\n let breakpointCSS = '';\n\n for (const [breakpoint, styles] of Object.entries(breakpoints)) {\n breakpointCSS += `${indent}@media (max-width: ${breakpoint}) ${openBrace}\\n`;\n for (const [selector, style] of Object.entries(styles.base || {})) {\n breakpointCSS += processStyles(selector, style, indentLevel + 1);\n }\n breakpointCSS += `${indent}${closeBrace}\\n`;\n }\n\n return breakpointCSS;\n }\n\n // Define :root variables (css supports variables using $)\n let rootVariables = [];\n if (styles.rootVariables && Object.keys(styles.rootVariables).length) {\n for (const [variable, value] of Object.entries(styles.rootVariables)) {\n rootVariables.push(variable);\n css += `${symbol}${variable.split('--').join('')}: ${value}${semicolon}\\n`;\n }\n css += '\\n';\n }\n\n // Define styles for each class\n for (const [classId, style] of Object.entries(styles.styles)) {\n if (!style || (!Object.keys(style.variables || {}).length &&\n !Object.keys(style.base || {}).length &&\n !Object.keys(style.pseudos || {}).length &&\n !Object.keys(style.children || {}).length)) {\n continue; // Skip empty styles\n }\n\n const selector = classId;\n css += processStyles(selector, style);\n }\n\n // Process animations\n if (Object.keys(styles.animations || {}).length) {\n css += processAnimations(styles.animations);\n }\n\n // Process breakpoints (media queries)\n if (Object.keys(styles.breakpoints || {}).length) {\n css += processBreakpoints(styles.breakpoints);\n }\n\n return css;\n}\nwindow.mergeCSSJSON = (existingJSON, newJSON) => {\n if (typeof existingJSON === 'string') {\n throw new Error(\"Input's must be JSON\");\n }\n\n // Merge root variables\n Object.assign(existingJSON.rootVariables, newJSON.rootVariables);\n\n // Merge styles\n Object.keys(newJSON.styles).forEach(selector => {\n if (!existingJSON.styles[selector]) {\n existingJSON.styles[selector] = newJSON.styles[selector];\n } else {\n if (newJSON.styles[selector].base) {\n existingJSON.styles[selector].base = {\n ...existingJSON.styles[selector].base,\n ...newJSON.styles[selector].base\n };\n }\n if (newJSON.styles[selector].pseudos) {\n existingJSON.styles[selector].pseudos = [\n ...(existingJSON.styles[selector].pseudos || []),\n ...newJSON.styles[selector].pseudos\n ];\n }\n }\n });\n\n // Merge animations\n Object.keys(newJSON.animations).forEach(animationName => {\n if (!existingJSON.animations[animationName]) {\n existingJSON.animations[animationName] = newJSON.animations[animationName];\n } else {\n existingJSON.animations[animationName].keyframes = {\n ...existingJSON.animations[animationName].keyframes,\n ...newJSON.animations[animationName].keyframes\n };\n existingJSON.animations[animationName].properties = {\n ...existingJSON.animations[animationName].properties,\n ...newJSON.animations[animationName].properties\n };\n }\n });\n\n // Merge breakpoints\n Object.keys(newJSON.breakpoints).forEach(breakpoint => {\n if (!existingJSON.breakpoints[breakpoint]) {\n existingJSON.breakpoints[breakpoint] = newJSON.breakpoints[breakpoint];\n } else {\n Object.keys(newJSON.breakpoints[breakpoint]).forEach(selector => {\n if (!existingJSON.breakpoints[breakpoint][selector]) {\n existingJSON.breakpoints[breakpoint][selector] = newJSON.breakpoints[breakpoint][selector];\n } else {\n existingJSON.breakpoints[breakpoint][selector].base = {\n ...existingJSON.breakpoints[breakpoint][selector].base,\n ...newJSON.breakpoints[breakpoint][selector].base\n };\n }\n });\n }\n });\n\n return existingJSON;\n}\nwindow.fetchCssFile = async url => {\n const response = await fetch(url);\n return response.text();\n}\nwindow.generateCssQuickCommands = async url => {\n const css = await fetchCssFile(url);\n\n // Create a new CSSStyleSheet object\n const stylesheet = new CSSStyleSheet();\n await stylesheet.replace(css); // Replace with the CSS content\n\n const cssQuickCommands = {};\n\n // Iterate over all rules in the stylesheet\n for (const rule of stylesheet.cssRules) {\n // Skip pseudo-classes and animations\n if (rule.type === CSSRule.STYLE_RULE &&\n !rule.selectorText.includes(':') &&\n !rule.selectorText.includes('@keyframes')) {\n\n const className = rule.selectorText.replace('.', '');\n if (className) {\n const declarations = Array.from(rule.style)\n .filter(prop => !prop.startsWith('animation') && !prop.startsWith('transition'))\n .map(prop => `${prop}: ${rule.style[prop]};`)\n .join(' ');\n cssQuickCommands[className] = declarations;\n }\n }\n }\n\n return cssQuickCommands;\n}\nwindow.saveState = () => {\n // Save the current state to history\n const currentState = {\n rootVariables: project.css.rootVariables,\n styles: project.css,\n html: project.html,\n selectedLayerIds: data.selectedLayerIds\n };\n\n // Store the state as a stringified object\n const stateString = JSON.stringify(currentState);\n\n // Check if the last saved state is different from the current state\n if (data.history.length === 0 || data.history[data.historyIndex] !== stateString) {\n data.history = data.history.slice(0, data.historyIndex + 1); // Trim any redo history\n data.history.push(stateString); // Save the new state\n data.historyIndex++;\n localStorage.setItem('Polyrise', JSON.stringify(project));\n }\n}\nwindow.undo = () => {\n if (data.historyIndex > 0) {\n data.editorNavState = true;\n data.historyIndex--;\n const previousState = JSON.parse(data.history[data.historyIndex]);\n // Restore the previous state\n project.css.rootVariables = previousState.rootVariables;\n project.css = previousState.styles;\n project.html = previousState.html;\n data.selectedLayerIds = previousState.selectedLayerIds;\n data.editorNavState = null;\n }\n}\nwindow.redo = () => {\n if (data.historyIndex < data.history.length - 1) {\n data.editorNavState = true;\n data.historyIndex++;\n const nextState = JSON.parse(data.history[data.historyIndex]);\n // Restore the next state\n project.css.rootVariables = nextState.rootVariables;\n project.css = previousState.styles;\n project.html = nextState.html;\n data.selectedLayerIds = nextState.selectedLayerIds;\n data.editorNavState = null;\n }\n}\nwindow.customCode = () => {\n Modal.render({\n title: \"Paste Custom Code\",\n content: `\n <div class=\"p-4 text-center\">\n <div class=\"p-4 text-center\">\n <select id=\"bvk1c6j4o\" class=\"uppercase\">\n <option value=\"html\">html</option>\n <option value=\"css\">css</option>\n </select>\n </div>\n <div class=\"p-4 text-center\">\n <textarea id=\"op95hyy3l\" class=\"w-full h-[250px] resize-y\" placeholder=\"Paste code here...\"></textarea>\n </div>\n </div>\n `,\n onLoad() {\n document.getElementById('op95hyy3l').focus();\n document.getElementById('op95hyy3l').select();\n },\n onConfirm() {\n const selection = document.getElementById('bvk1c6j4o').value;\n let code = document.getElementById('op95hyy3l').value;\n if (selection === 'html') {\n addBlock(code);\n } else {\n code = minifyCSS(code);\n const newJSON = css2json(code);\n mergeCSSJSON(project.css, newJSON);\n document.querySelector('dialog[open]').querySelector('header > button').onclick();\n }\n }\n });\n}\nwindow.addLibrary = url => {\n if (!url) {\n project.libraries.push('');\n document.getElementById('librariesBox').innerHTML = renderLibraries();\n return false;\n }\n\n if (!project.libraries.includes(url)) {\n project.libraries.push(url);\n } else {\n console.error(`Library already exists: ${url}`);\n }\n\n if (document.getElementById('librariesBox')) {\n document.getElementById('librariesBox').innerHTML = renderLibraries();\n }\n};\nwindow.renderLibraries = () => {\n return project.libraries.map((library, index) => `\n <nav class=\"flex justify-between py-2\" data-index=\"${index}\">\n <input \n type=\"text\" \n placeholder=\"https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.15.2/Sortable.min.js\" \n data=\"library\" \n class=\"w-full pl-3 pr-0 rounded-md rounded-r-none focus:shadow-none\"\n style=\"margin-bottom: 0;\"\n value=\"${library}\" \n oninput=\"project.libraries[${index}] = this.value\" />\n <button \n aria-label=\"delete library\"\n name=\"delete library\"\n class=\"px-3 py-[15px] h-full border-0 rounded-md rounded-l-none\"\n onclick=\"project.libraries.splice(${index}, 1);\">\n ${icons.trash}\n </button>\n </nav>\n `).join('')\n}\nwindow.fetchSuggestions = key => {\n fetch(\n `https://api.cdnjs.com/libraries?search=${key}&fields=filename,description,version`\n )\n .then(response => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(item => {\n if (item && item.results && item.results.length > 0) {\n const suggestions = item.results.map(result => result);\n\n document.getElementById('pruz9lb2p').innerHTML = suggestions.map(result => {\n return `\n <section \n class=\"cursor-pointer\"\n onclick=\"\n if (!project.libraries.includes('${result.latest}')) project.libraries.push('${result.latest}'); \n data.searchLibKey = null;\n data.librarySuggestions = null;\n searchInput.value = null;\n renderPreview(true);\n const dialog = this.closest('dialog');\n if (dialog) dialog.querySelector('header > button').onclick();\n \">\n <div class=\"flex justify-between mb-2 font-bold text-1xl\">\n <span class=\"font-bold\">${result.name}</span>\n <span class=\"font-bold\">${result.version}</span>\n </div>\n <div class=\"text-sm font-thin\">${result.description}<br><hr></div>\n </section>`;\n }).join('');\n }\n })\n .catch(error => {\n console.error(\"Error fetching data:\", error);\n });\n}\nwindow.removeScript = src => {\n const script = document.querySelector(`script[src=\"${src}\"]`);\n if (script) script.remove();\n}\nwindow.removeScripts = scripts => {\n scripts.forEach(src => {\n const script = document.querySelector(`script[src=\"${src}\"]`);\n if (script) script.remove();\n });\n}\nwindow.loadScript = async scriptUrl => {\n return new Promise((resolve, reject) => {\n // Check if the script is already loaded\n const existingScript = document.querySelector(`script[src=\"${scriptUrl}\"]`);\n if (existingScript) {\n resolve(); // If the script is already present, resolve immediately\n return;\n }\n\n // Create a new script element if not present\n const scriptElement = document.createElement('script');\n scriptElement.src = scriptUrl;\n scriptElement.onload = resolve; // Resolve when the script is successfully loaded\n scriptElement.onerror = () => reject(new Error(`Failed to load script: ${scriptUrl}`)); // Reject on error\n document.body.appendChild(scriptElement); // Append the script to the body\n });\n}\nwindow.loadScripts = async srcArray => {\n return Promise.all(srcArray.map(loadScript));\n}\n\n// layers functions\nwindow.executeQuery = (queriesString, replaceSelection = true) => {\n if (!queriesString) {\n clearAllSelections();\n return;\n }\n\n const queries = queriesString.split(',').map(q => q.trim());\n\n function handleSpecialCommand(command) {\n switch (command) {\n case 'f':\n foldAllLayers(true); // Collapse all layers\n break;\n case 'u':\n foldAllLayers(false); // Uncollapse all layers\n break;\n case 'h':\n hideAllLayers(true); // Hide all layers\n break;\n case 's':\n hideAllLayers(false); // Show all layers\n break;\n case 'e':\n emptyChildren(); // Empty all children from selections\n break;\n case 'cas':\n project.css = {\n \"rootVariables\": {},\n \"styles\": {},\n \"animations\": {},\n \"breakpoints\": {}\n };\n break;\n default:\n console.warn('Unknown command:', command);\n }\n }\n\n function matchesPseudoClass(layer, pseudoClass, index, total) {\n switch (pseudoClass) {\n case 'first-child': return index === 0;\n case 'last-child': return index === total - 1;\n case 'nth-child': return (index + 1) === parseInt(pseudoClass.split('(')[1], 10);\n case 'nth-last-child': return (total - index) === parseInt(pseudoClass.split('(')[1], 10);\n case 'only-child': return total === 1;\n case 'empty': return !(layer.children && layer.children.length > 0);\n case 'first-of-type': return layer.tagOccurrences.index === 0;\n case 'last-of-type': return layer.tagOccurrences.reverseIndex === 0;\n case 'nth-of-type': return layer.tagOccurrences.index === parseInt(pseudoClass.split('(')[1], 10) - 1;\n case 'nth-last-of-type': return layer.tagOccurrences.reverseIndex === parseInt(pseudoClass.split('(')[1], 10) - 1;\n case 'only-of-type': return layer.tagOccurrences.total === 1;\n default: return false;\n }\n }\n\n function selectLayersRecursive(layers, query, callback) {\n let activeCalls = 0; // Track active recursive calls\n \n function processLayers(layers) {\n activeCalls++; // Increment the active call count\n \n layers.forEach((layer, index) => {\n let match = false;\n \n // Extract selector and pseudo-class\n const [selector, pseudoClassPart] = query.split(':');\n const pseudoClass = pseudoClassPart || null;\n \n // Parse selector\n let [tag, classNames, attribute, value] = [null, [], null, null];\n const attributeMatch = /\\[([^\\]]+)\\]/.exec(selector);\n if (attributeMatch) {\n [attribute, value] = attributeMatch[1].split('=');\n }\n const classMatches = /\\.([^.\\[]+)/g;\n let matchResult;\n while ((matchResult = classMatches.exec(selector)) !== null) {\n classNames.push(matchResult[1]);\n }\n tag = selector.split(/[\\.\\[]/)[0];\n \n // Check tag match\n if (tag && layer.tag !== tag) match = false;\n else match = true;\n \n // Check class match\n if (classNames.length > 0) {\n if (!layer.props || !layer.props.class) match = false;\n else {\n const layerClasses = layer.props.class.split(' ');\n match = classNames.every(className => layerClasses.includes(className));\n }\n }\n \n // Check attribute match\n if (attribute) {\n if (value) {\n // Ensure attribute is matched specifically, not just any property\n if (layer.props && layer.props[attribute] !== value) match = false;\n } else {\n // Ensure attribute is matched specifically, not just any property\n if (!layer.props || !layer.props.hasOwnProperty(attribute)) match = false;\n }\n }\n \n // Check pseudo-class match\n if (match && pseudoClass) {\n const total = layers.length;\n if (!matchesPseudoClass(layer, pseudoClass, index, total)) match = false;\n }\n \n // Apply selection\n if (match) {\n layer.state.selected = true;\n if (!data.selectedLayerIds.includes(layer.id)) {\n data.selectedLayerIds.push(layer.id);\n }\n }\n \n // Recursively apply to children\n if (layer.children && layer.children.length > 0) {\n processLayers(layer.children);\n }\n });\n \n activeCalls--; // Decrement the active call count\n \n // If this was the last active call, invoke the callback\n if (activeCalls === 0 && callback && typeof callback === 'function') {\n callback();\n }\n }\n \n // Start processing layers\n processLayers(layers);\n }\n\n function targetChildrenOfSelections(query, callback) {\n if (data.selectedLayerIds.length > 0) {\n // Find the layers by IDs and target their children\n const selectedLayers = data.selectedLayerIds.map(id => findLayerById(id, project.html));\n if (selectedLayers.length > 0) {\n // Collect children of selected layers\n const children = selectedLayers.flatMap(group => group.layer.children || []);\n // Select layers from children\n selectLayersRecursive(children, query);\n }\n\n // Invoke the callback if provided\n if (typeof callback === 'function') {\n callback();\n }\n }\n }\n\n function processQuery(query) {\n // Find the index of the '=' symbol\n const equalsIndex = query.indexOf('=');\n \n // If '=' is found, convert the portion before it to lowercase\n if (equalsIndex !== -1) {\n const prefix = query.slice(0, equalsIndex).toLowerCase();\n query = prefix + query.slice(equalsIndex);\n }\n \n if (query.startsWith('t=')) {\n if (replaceSelection) clearAllSelections();\n selectLayersRecursive(project.html, query.slice(2));\n } else if (query.startsWith('r=')) {\n clearAllSelections();\n selectLayersRecursive(project.html, query.slice(2), () => {\n deleteLayers();\n });\n } else if (query.startsWith('e=')) {\n clearAllSelections();\n selectLayersRecursive(project.html, query.slice(2), () => {\n emptyChildren();\n });\n } else if (query.startsWith('c=')) {\n if (data.selectedLayerIds.length > 0) {\n if (data.replaceCurrentSelection) {\n let currentIDs = [...data.selectedLayerIds];\n targetChildrenOfSelections(query.slice(2), () => {\n currentIDs.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n layer.state.selected = false;\n });\n });\n } else {\n targetChildrenOfSelections(query.slice(2));\n }\n } else {\n console.error('no layers selected');\n }\n } else if (query.startsWith('mv=')) {\n if (data.selectedLayerIds.length > 0) {\n if (replaceSelection) clearAllSelections();\n cutLayers(() => {\n selectLayersRecursive(project.html, query.slice(3), () => {\n pasteLayers();\n });\n });\n }\n } else if (query.startsWith('rs=')) {\n if (data.selectedLayerIds.length > 0) {\n if (replaceSelection) clearAllSelections();\n clearStyles(project.html, query.slice(3), () => {\n saveState(); // Callback after clearStyles completes\n });\n }\n } else {\n handleSpecialCommand(query);\n }\n }\n\n queries.forEach(processQuery);\n}\nwindow.toggleCollapse = layerId => {\n if (project.activePanel !== 'layers') project.activePanel = 'layers';\n let targetLayer = null;\n let parentLayer = null;\n\n // Function to recursively find the target layer and its parent\n function findLayerAndParent(layer, parent = null) {\n if (layer.id === layerId) {\n targetLayer = layer;\n parentLayer = parent;\n return true; // Found the layer\n }\n\n if (layer.children) {\n for (let i = 0; i < layer.children.length; i++) {\n if (findLayerAndParent(layer.children[i], layer)) {\n return true; // Found the layer in children\n }\n }\n }\n\n return false; // Layer not found\n }\n\n // Function to collapse or uncollapse all siblings to match the target layer's state\n function applyCollapseStateToSiblings(layers, collapseState) {\n layers.forEach(layer => {\n if (layer !== targetLayer) {\n layer.state.collapsed = collapseState;\n }\n });\n }\n\n // Check top-level layers directly\n for (let i = 0; i < project.html.length; i++) {\n let layer = project.html[i];\n if (layer.id === layerId) {\n targetLayer = layer;\n parentLayer = null; // No parent for top-level layers\n break;\n } else {\n findLayerAndParent(layer);\n }\n }\n\n if (targetLayer) {\n // Toggle the target layer's collapse state\n const newCollapseState = !targetLayer.state.collapsed;\n targetLayer.state.collapsed = newCollapseState;\n\n if (data.shiftKey) {\n if (parentLayer) {\n // Apply to siblings within the same parent layer\n applyCollapseStateToSiblings(parentLayer.children, newCollapseState);\n } else {\n // Apply to all top-level layers\n applyCollapseStateToSiblings(project.html, newCollapseState);\n }\n }\n\n // Render the application (if needed)\n App.render(\"#app\");\n }\n}\nwindow.foldAllLayers = (state = false) => {\n if (project.activePanel !== 'layers') project.activePanel = 'layers';\n function collapseLayer(layer) {\n layer.state.collapsed = state;\n if (layer.children) layer.children.forEach(child => collapseLayer(child));\n }\n\n project.html.forEach(layer => collapseLayer(layer));\n}\nwindow.hideAllLayers = (state = false) => {\n if (project.activePanel !== 'layers') project.activePanel = 'layers';\n function hideLayer(layer) {\n layer.state.visible = !state;\n if (layer.children) layer.children.forEach(child => hideLayer(child));\n }\n\n project.html.forEach(layer => hideLayer(layer));\n}\nwindow.toggleVisible = layerId => {\n if (project.activePanel !== 'layers') project.activePanel = 'layers';\n let targetLayer = null;\n let parentLayer = null;\n\n // Function to recursively find the target layer and its parent\n function findLayerAndParent(layer, parent = null) {\n if (layer.id === layerId) {\n targetLayer = layer;\n parentLayer = parent;\n return true; // Found the layer\n }\n\n if (layer.children) {\n for (let i = 0; i < layer.children.length; i++) {\n if (findLayerAndParent(layer.children[i], layer)) {\n return true; // Found the layer in children\n }\n }\n }\n\n return false; // Layer not found\n }\n\n // Function to set visibility for all siblings to match the target layer's state\n function applyVisibilityToSiblings(layers, visibilityState) {\n layers.forEach(layer => {\n if (layer !== targetLayer) {\n layer.state.visible = visibilityState;\n }\n });\n }\n\n // Check top-level layers directly\n for (let i = 0; i < project.html.length; i++) {\n let layer = project.html[i];\n if (layer.id === layerId) {\n targetLayer = layer;\n parentLayer = null; // No parent for top-level layers\n break;\n } else {\n findLayerAndParent(layer);\n }\n }\n\n if (targetLayer) {\n // Toggle the target layer's visibility state\n const newVisibilityState = !targetLayer.state.visible;\n targetLayer.state.visible = newVisibilityState;\n\n // Apply the new visibility state to all siblings\n if (data.shiftKey) {\n if (parentLayer) {\n // Apply to siblings within the same parent layer\n applyVisibilityToSiblings(parentLayer.children, newVisibilityState);\n } else {\n // Apply to all top-level layers\n applyVisibilityToSiblings(project.html, newVisibilityState);\n }\n }\n }\n}\nwindow.selectedBlock = layerId => {\n if (project.activePanel !== 'layers') project.activePanel = 'layers';\n let targetLayer = null;\n let parentLayer = null;\n\n // Function to find the layer and its parent\n function findLayerAndParent(layer, parent = null) {\n if (layer.id === layerId) {\n targetLayer = layer;\n parentLayer = parent;\n return true; // Found the layer\n }\n\n if (layer.children) {\n for (let i = 0; i < layer.children.length; i++) {\n if (findLayerAndParent(layer.children[i], layer)) {\n return true; // Found the layer in children\n }\n }\n }\n\n return false; // Layer not found\n }\n\n // Apply selection state to all siblings\n function applySelectionToSiblings(layers, selectionState) {\n layers.forEach(layer => {\n if (layer !== targetLayer) {\n const childIndex = data.selectedLayerIds.indexOf(layer.id);\n if (selectionState) {\n if (childIndex === -1) {\n data.selectedLayerIds.push(layer.id);\n layer.state.selected = true;\n }\n } else {\n if (childIndex > -1) {\n data.selectedLayerIds.splice(childIndex, 1);\n layer.state.selected = false;\n }\n }\n }\n });\n }\n\n // Check top-level layers directly\n for (let i = 0; i < project.html.length; i++) {\n let layer = project.html[i];\n if (layer.id === layerId) {\n targetLayer = layer;\n parentLayer = null; // No parent for top-level layers\n break;\n } else {\n findLayerAndParent(layer);\n }\n }\n\n if (targetLayer) {\n const isSelected = data.selectedLayerIds.includes(layerId);\n const newSelectionState = !isSelected;\n\n // If replaceCurrentSelection is true and shiftKey is not pressed, clear all selections\n if (data.cmdKey && !data.shiftKey) {\n data.selectedLayerIds.forEach(id => {\n const layer = findLayerById(id);\n if (layer) {\n layer.state.selected = false;\n }\n });\n data.selectedLayerIds = []; // Clear all selections\n }\n\n // Toggle selection state of the target layer\n if (newSelectionState) {\n data.selectedLayerIds.push(layerId);\n const lastSelectedLayerId = data.selectedLayerIds[data.selectedLayerIds.length - 1];\n const layer = findLayerById(lastSelectedLayerId);\n data.stylesTarget = layer.style;\n data.breakpointKey = null;\n } else {\n const index = data.selectedLayerIds.indexOf(layerId);\n if (index > -1) {\n data.selectedLayerIds.splice(index, 1);\n }\n }\n targetLayer.state.selected = newSelectionState;\n\n // Apply selection state to siblings\n if (data.shiftKey) {\n if (parentLayer) {\n // Apply to siblings within the same parent layer\n applySelectionToSiblings(parentLayer.children, newSelectionState);\n } else {\n // Apply to all top-level layers\n applySelectionToSiblings(project.html, newSelectionState);\n }\n }\n }\n\n function findLayerById(id) {\n let foundLayer = null;\n for (let i = 0; i < project.html.length; i++) {\n function searchLayer(layer) {\n if (layer.id === id) {\n foundLayer = layer;\n return true;\n }\n if (layer.children) {\n for (let j = 0; j < layer.children.length; j++) {\n if (searchLayer(layer.children[j])) {\n return true;\n }\n }\n }\n return false;\n }\n searchLayer(project.html[i]);\n if (foundLayer) break;\n }\n return foundLayer;\n }\n}\nwindow.collectSelectedIDs = layers => {\n layers.forEach(layer => {\n if (layer.state.selected) {\n data.selectedLayerIds.push(layer.id);\n }\n if (layer.children && layer.children.length > 0) {\n collectSelectedIDs(layer.children);\n }\n });\n}\nwindow.clearAllSelections = () => {\n data.selectedLayerIds = [];\n data.stylesTarget = null;\n clearSelection(project.html);\n}\nwindow.clearSelection = layers => {\n layers.forEach(layer => {\n layer.state.selected = false;\n if (layer.children) clearSelection(layer.children);\n });\n}\nwindow.clearSelectionExcept = (excludeId, layers) => {\n layers.forEach(layer => {\n if (layer.id !== excludeId) {\n layer.state.selected = false;\n } else {\n layer.state.selected = true;\n }\n if (layer.children) clearSelectionExcept(excludeId, layer.children);\n });\n}\nwindow.findLayerById = (id, layers, parent = null) => {\n for (const layer of layers) {\n if (layer.id === id) return { layer, parent };\n if (layer.children) {\n const found = findLayerById(id, layer.children, layer);\n if (found) return found;\n }\n }\n return null;\n}\nwindow.canAcceptChildren = layer => {\n const elementsThatDontAcceptChildren = [\n 'audio',\n 'datalist',\n 'iframe',\n 'img',\n 'input',\n 'meter',\n 'option',\n 'progress',\n 'select',\n 'textarea',\n 'video'\n ]; \n \n return !elementsThatDontAcceptChildren.includes(layer.tag);\n}\nwindow.addBlock = html => {\n saveState(); // Save state before making changes\n\n // Function to assign an ID to each new block\n const assignIds = (blocks, callback) => {\n blocks.forEach(block => {\n block.id = generateId(); // Assign a new ID\n if (block.children) {\n assignIds(block.children); // Recursively assign IDs to children if they exist\n }\n });\n\n if (callback && typeof callback === 'function') {\n callback(); // Call the callback function after all IDs have been assigned\n }\n };\n\n // Function to handle processing of HTML string or object\n const processHtmlOrObject = html => {\n if (typeof html === 'string') {\n return html2json(html); // Convert HTML string to JSON\n } else if (typeof html === 'object') {\n // Assume it's already a block object or an array of block objects\n return Array.isArray(html) ? html : [html];\n } else {\n console.error('Invalid HTML input. Expected a string or an object.');\n return [];\n }\n };\n\n // Process the input HTML or object\n const newBlocks = processHtmlOrObject(html);\n\n if (data.selectedLayerIds.length > 0) {\n data.selectedLayerIds.forEach(id => {\n const result = findLayerById(id, project.html);\n if (result) {\n const { layer, parent } = result;\n\n // Set the selected state to false and remove the ID from selectedLayerIds\n layer.selected = false;\n data.selectedLayerIds = data.selectedLayerIds.filter(layerId => layerId !== id);\n\n if (canAcceptChildren(layer)) {\n if (data.blockWrap) {\n // Ensure the new block can hold children\n const parentBlock = newBlocks[0];\n if (canAcceptChildren(parentBlock)) {\n // Ensure `parentBlock.children` is initialized\n parentBlock.children = parentBlock.children || [];\n parentBlock.children.push(layer); // Make the selected layer a child of the new block\n\n // Assign IDs to the new parent block and its children\n assignIds(newBlocks, () => {\n // Push the new parent block to the original parent's children\n if (parent && parent.children) {\n parent.children = parent.children.map(child =>\n child.id === layer.id ? parentBlock : child\n );\n } else {\n project.html = project.html.map(child =>\n child.id === layer.id ? parentBlock : child\n );\n }\n });\n }\n } else {\n // Ensure `layer.children` is initialized\n layer.children = layer.children || [];\n\n // Assign IDs and then push new blocks\n assignIds(newBlocks, () => {\n newBlocks.forEach(newBlock => {\n layer.children.push(newBlock); // Push new block after ID assignment\n });\n });\n }\n }\n }\n });\n } else {\n // If user has no layers selected, add to the root layer structure\n assignIds(newBlocks, () => {\n newBlocks.forEach(newBlock => project.html.push(newBlock)); // Push new block after ID assignment\n });\n }\n\n clearAllSelections();\n saveState(); // Save state after making changes\n document.querySelector('dialog[open]').querySelector('header > button').onclick();\n};\n\n\nwindow.selectLayersByStyleRef = (style, layers) => {\n for (const layer of layers) {\n // Deselect all layers\n layer.state.selected = false;\n\n // Check if the current layer matches the style reference\n if (layer.style === style) {\n data.selectedLayerIds.push(layer.id);\n layer.state.selected = true;\n // Continue searching in children even if the parent is selected\n }\n\n // Recursively check children if they exist\n if (layer.children && layer.children.length > 0) {\n selectLayersByStyleRef(style, layer.children);\n }\n }\n};\nwindow.deleteLayers = () => {\n saveState(); // Save state before making changes\n data.editorNavState = true;\n data.selectedLayerIds.forEach(id => {\n removeLayerById(id, project.html);\n });\n data.selectedLayerIds = []; // Clear selection after deletion\n data.editorNavState = null;\n saveState(); // Save state after making changes\n}\nwindow.removeLayerById = (id, layers) => {\n for (const layer of layers) {\n if (layer.id === id) {\n const index = layers.findIndex(l => l.id === id);\n layers.splice(index, 1); // Remove layer from the main layers array\n return;\n }\n\n if (layer.children) {\n const index = layer.children.findIndex(child => child.id === id);\n if (index !== -1) {\n layer.children.splice(index, 1); // Remove from children\n return;\n } else {\n removeLayerById(id, layer.children); // Recursively remove from nested layers\n }\n }\n }\n}\nwindow.cloneLayers = () => {\n let modalContent = `<div>\n <input \n id=\"b40h7qc6d\"\n type=\"number\" \n min=\"1\" \n step=\"1\" \n value=\"${data.increment}\"\n oninput=\"data.increment = this.value;\"\n focus=\"true\"\n onkeydown=\"\n if (event.key === 'Enter') {\n document.querySelector('dialog[open]').querySelector('footer > button:last-child').onclick();\n }\n \"\n />\n </div>`;\n\n Modal.render({\n title: `How many times do you want to clone this block?`,\n content: modalContent,\n onLoad() {\n document.getElementById('b40h7qc6d').focus();\n document.getElementById('b40h7qc6d').select();\n },\n onConfirm() {\n saveState(); // Save state before making changes\n\n const cloneCount = parseInt(data.increment, 10);\n \n if (isNaN(cloneCount) || cloneCount <= 0) {\n console.error('Invalid clone count:', cloneCount);\n return;\n }\n\n data.selectedLayerIds.forEach(id => {\n const { layer, parent } = findLayerById(id, project.html);\n \n if (layer) {\n for (let i = 0; i < cloneCount; i++) {\n const clonedLayer = cloneLayerObject(layer);\n \n if (parent && Array.isArray(parent.children)) {\n const index = parent.children.findIndex(child => child.id === layer.id);\n if (index !== -1) {\n parent.children.splice(index + 1, 0, clonedLayer);\n } else {\n console.error(\"Selected layer not found in parent's children:\", layer);\n }\n } else if (!parent) {\n const index = project.html.findIndex(rootLayer => rootLayer.id === layer.id);\n if (index !== -1) {\n project.html.splice(index + 1, 0, clonedLayer);\n } else {\n console.error('Selected layer not found in root layer structure:', layer);\n }\n }\n }\n } else {\n console.error('Layer not found for ID:', id);\n }\n });\n \n clearAllSelections(); // Clear selection after cloning\n saveState(); // Save state after making changes\n }\n });\n}\n\nwindow.cloneLayerObject = layer => {\n const clonedLayer = JSON.parse(JSON.stringify(layer)); // Deep clone\n clonedLayer.id = generateId(); // Assign a new ID\n\n if (clonedLayer.children) {\n clonedLayer.children = clonedLayer.children.map(child => cloneLayerObject(child)); // Clone children recursively\n }\n return clonedLayer;\n}\nwindow.cutLayers = callback => {\n saveState(); // Save state before making changes\n data.editorNavState = true;\n copyLayers();\n data.selectedLayerIds.forEach(id => {\n removeLayerById(id, project.html);\n });\n data.selectedLayerIds = []; // Clear selection after deletion\n saveState(); // Save state after making changes\n data.editorNavState = null;\n\n // Call the callback function if provided\n if (callback && typeof callback === 'function') {\n callback();\n }\n}\nwindow.copyLayers = () => {\n data.clipboard = data.selectedLayerIds.map(id => {\n const { layer } = findLayerById(id, project.html);\n return cloneLayerObject(layer); // Clone layer without deleting\n });\n}\nwindow.pasteLayers = () => {\n saveState(); // Save state before making changes\n if (data.clipboard.length > 0) {\n const pastedLayers = data.clipboard.map(layer => {\n return cloneLayerObject(layer); // Clone layer with new IDs\n });\n\n if (data.selectedLayerIds.length > 0) {\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n if (layer && canAcceptChildren(layer)) {\n layer.children = layer.children || [];\n layer.children.push(...pastedLayers);\n }\n });\n } else {\n project.html.push(...pastedLayers); // Paste to root if no layer selected\n }\n\n data.clipboard = []; // Clear clipboard after pasting\n clearAllSelections(); // Clear selection after pasting\n saveState(); // Save state after making changes\n }\n}\nwindow.removeAttributeFromLayers = property => {\n saveState();\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n // Delete the key from the props object\n if (layer) delete layer.props[property];\n });\n saveState();\n}\nwindow.removeProp = key => {\n Modal.render({\n title: `Are you sure you want to delete the ${key} attribute?`,\n content: `\n <div class=\"p-4 text-center\">You will still be able to undo.</div>\n `,\n onConfirm() {\n removeAttributeFromLayers(key);\n }\n });\n}\nwindow.emptyChildren = () => {\n saveState(); // Save state before making changes\n if (data.selectedLayerIds.length > 0) {\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n if (layer.children) layer.children = [];\n if (layer.text) {\n layer.text = '';\n }\n });\n }\n saveState(); // Save state after making changes\n}\nwindow.updateElement = (key, propKey, value, initIncrement = false) => {\n const incrementPattern = /{n}/g; // Pattern to detect increment placeholder\n \n saveState();\n data.selectedLayerIds.forEach((id, index) => {\n const { layer } = findLayerById(id, project.html);\n if (layer) {\n if (key !== 'props') {\n if (key === 'text') {\n if (!value) {\n layer.text = \"\";\n } else {\n if (initIncrement && incrementPattern.test(value)) {\n // If initIncrement is true, increment the {n} pattern\n layer.text = value.replace(incrementPattern, index + 1);\n } else {\n layer.text = value; // Otherwise, just use the given value\n }\n }\n } else {\n // General case for non-text keys\n layer[`${key}`] = value;\n }\n } else {\n // Handling props (e.g., attributes)\n if (initIncrement && incrementPattern.test(value)) {\n // If initIncrement is true, increment the {n} pattern in props\n layer.props[`${propKey}`] = value.replace(incrementPattern, index + 1);\n } else {\n layer.props[`${propKey}`] = value; // Otherwise, just use the given value\n }\n }\n }\n });\n saveState();\n};\nwindow.updateImageMedia = (id, type) => {\n let target = findLayerById(id, project.html).layer.props['src'];\n let modalContent = `<div class=\"p-4 text-center grid grid-cols-1 gap-4 place-items-center\">\n <input id=\"ixkq65jma\" class=\"hidden\" type=\"file\" name=\"image\" onchange=\"updateMediaSource(event, '${type}', document.getElementById('p8gnvn4o7'))\">\n <figure>\n <picture>\n <label for=\"ixkq65jma\" class=\"cursor-pointer\">\n <img id=\"p8gnvn4o7\" class=\"cursor-pointer\" src=\"${target}\" alt=\"Your image\" loading=\"lazy\">\n </label>\n </picture>\n <figcaption>\n <span>Api courtesy of \n <a href=\"https://openverse.org/\" target=\"_blank\">Openverse</a>.\n </figcaption>\n </figure>\n <fieldset role=\"group\" class=\"mb-0 w-full place-items-center\">\n <input \n id=\"search-input\" \n type=\"text\" \n placeholder=\"Search for images...\" \n class=\"p-2 w-full\" \n onkeydown=\"\n if (event.key === 'Enter') {\n document.getElementById('search-btn').click();\n }\n \"/>\n <button id=\"search-btn\">\n ${icons.search}\n </button>\n </fieldset>\n <div id=\"search-results\" class=\"mt-4 grid grid-cols-3 gap-2\"></div>\n <div class=\"font-thin text-xs\">\n You can grab your own high-res image by searching <a href=\"https://pixabay.com/\" target=\"_blank\">Pixabay.com</a> or <a href=\"https://pexels.com/\" target=\"_blank\">Pexels.com</a>.\n </div>\n </div>`;\n \n Modal.render({\n title: \"Are you sure you want to replace the image source?\",\n content: modalContent,\n onLoad() {\n const searchField = document.getElementById('search-input');\n searchField.focus();\n \n const handleSearch = async () => {\n if (searchField.value) {\n const results = await searchOpenverseImage(searchField.value);\n displayResults(results);\n } else {\n document.getElementById('search-results').innerHTML = '';\n return false;\n }\n };\n \n searchField.oninput = handleSearch;\n document.getElementById('search-btn').onclick = handleSearch;\n\n function displayResults(results) {\n const resultsContainer = document.getElementById('search-results');\n resultsContainer.innerHTML = results.map(result => `\n <img \n src=\"${result.thumbnail}\" \n alt=\"${result.title}\" \n loading=\"lazy\"\n class=\"cursor-pointer w-full\" \n onclick=\"\n document.getElementById('p8gnvn4o7').src = '${result.url}';\n this.closest('article').scrollTop = 0;\n \"/>\n `).join('');\n }\n },\n onConfirm() {\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n if (layer) {\n if (layer.tag === \"img\") {\n saveState();\n layer.props[`src`] = document.getElementById('p8gnvn4o7').src;\n saveState();\n }\n }\n });\n }\n });\n}\nwindow.searchOpenverseImage = async query => {\n const url = `https://api.openverse.org/v1/images?q=${encodeURIComponent(query)}`;\n const response = await fetch(url);\n if (response.ok) {\n const data = await response.json();\n return data.results;\n } else {\n console.error(\"API request failed:\", response.status);\n return [];\n }\n}\nwindow.updateAudioMedia = (id, type) => {\n let target = findLayerById(id, project.html).layer;\n if (target.tag !== 'audio' || type !== 'audio') return;\n let uniqueId = generateId();\n if (!target.props) target.props = {};\n if (target.props.id) target.props.id = uniqueId;\n if (!target.props.id) target.props['id'] = uniqueId;\n \n const audioHTML = json2html([target]);\n let modalContent = `<style>\n #xdbmkeqha audio {\n width: 100%;\n }\n </style>\n \n <div class=\"p-4 grid grid-cols-1 gap-4 items-center\">\n <input id=\"ixkq65jma\" class=\"hidden\" type=\"file\" name=\"audio\" onchange=\"updateMediaSource(event, '${type}', document.getElementById('${uniqueId}'))\">\n <figure class=\"text-center\">\n <nav id=\"xdbmkeqha\" class=\"items-center\">\n ${audioHTML}\n\n <button \n class=\"ml-4 font-thin text-xs bg-transparent border-0\"\n style=\"color: unset;\"\n onclick=\"\n document.getElementById('ixkq65jma').click();\n \"\n >\n ${icons.upload}\n </button>\n </nav>\n <figcaption>\n <span>Api courtesy of \n <a href=\"https://openverse.org/\" target=\"_blank\">Openverse</a>.\n </figcaption>\n </figure>\n <fieldset role=\"group\" class=\"mb-0 w-full items-center\">\n <input \n id=\"search-input\" \n type=\"text\" \n placeholder=\"Search for audios...\" \n class=\"p-2 w-full\" \n onkeydown=\"\n if (event.key === 'Enter') {\n document.getElementById('search-btn').click();\n }\n \"/>\n <button id=\"search-btn\">\n ${icons.search}\n </button>\n </fieldset>\n <div id=\"search-results\" class=\"mt-4 grid grid-cols-1 gap-2\"></div>\n <div class=\"font-thin text-xs text-center\">\n You can also grab your own audio files from <a href=\"https://freesound.org/\" target=\"_blank\">freesound.org</a>.\n </div>\n </div>`;\n \n Modal.render({\n title: \"Are you sure you want to replace the audio element?\",\n content: modalContent,\n onLoad() {\n const searchInput = document.getElementById('search-input');\n const searchBtn = document.getElementById('search-btn');\n const resultsContainer = document.getElementById('search-results');\n searchInput.focus();\n \n const handleSearch = async () => {\n if (searchInput.value) {\n const results = await searchOpenverseAudio(searchInput.value);\n displayResults(results);\n } else {\n resultsContainer.innerHTML = '';\n return false;\n }\n };\n \n searchInput.oninput = handleSearch;\n searchBtn.onclick = handleSearch;\n\n function displayResults(results) {\n if (results.length === 0) {\n resultsContainer.innerHTML = `<p>No results found.</p>`;\n } else {\n resultsContainer.innerHTML = results.map(result => `\n <div>\n <div class=\"font-thin mb-2\">${result.title}</div>\n <figure>\n <nav class=\"text-center place-items-center\">\n <audio controls class=\"w-full\" preload=\"true\">\n <source src=\"${result.url}\" type=\"${result.mime_type}\">\n Your browser does not support the audio element.\n </audio>\n <button \n class=\"ml-4 font-thin text-xs\" \n onclick=\"\n const audio = document.getElementById('${uniqueId}');\n audio.src = '${result.url}';\n const sources = audio.querySelectorAll('source');\n sources.forEach(source => {\n source.src = this.previousElementSibling.src;\n });\n this.closest('article').scrollTop = 0;\n \"\n >\n Select\n </button>\n </nav>\n <figcaption class=\"font-thin text-sm\">\n <span>Artist is \n <a href=\"${result.foreign_landing_url}\" target=\"_blank\">${result.creator}</a>.\n </figcaption>\n </figure>\n </div>\n `).join('');\n \n // Reinitialize audio elements to ensure they work properly\n const audios = resultsContainer.querySelectorAll('audio');\n audios.forEach(audio => {\n const src = audio.querySelector('source').getAttribute('src');\n audio.load(); // Ensure the audio element is fully loaded\n audio.src = src; // Re-set the src to trigger playback readiness\n });\n }\n }\n },\n onConfirm() {\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n if (layer) {\n source = document.getElementById(uniqueId).outerHTML;\n let obj = html2json(source)[0];\n \n saveState();\n // Update properties directly instead of reassigning the whole object\n Object.keys(obj).forEach(key => {\n if (key === \"id\") return;\n layer[key] = obj[key];\n });\n findLayerById(id, project.html).layer.state.selected = null;\n findLayerById(id, project.html).layer.state.selected = true;\n saveState();\n }\n });\n }\n });\n}\nwindow.searchOpenverseAudio = async query => {\n const url = `https://api.openverse.org/v1/audio?q=${encodeURIComponent(query)}`;\n const response = await fetch(url);\n if (response.ok) {\n const data = await response.json();\n return data.results;\n } else {\n console.error(\"API request failed:\", response.status);\n return [];\n }\n}\nwindow.updateMediaSource = async (event, type, element) => {\n const file = event.target.files[0];\n if (!file) return; // If no file selected, return\n\n try {\n // Check if the file is an SVG\n if (type === \"svg\") {\n // Read the file content as text (SVG markup)\n const svgCode = await file.text();\n \n // Update target with SVG code\n document.getElementById('vl61t8366').querySelector('svg').outerHTML = svgCode;\n document.getElementById('vl61t8366').querySelector('svg').setAttribute('id', 'p8gnvn4o7');\n } else {\n // Handle non-SVG and non-image files (e.g., convert to base64)\n const base64String = await fileToBase64(file);\n element.setAttribute('src', base64String);\n }\n } catch (error) {\n console.error('Error reading file:', error);\n }\n}\nwindow.checkApiConnection = async () => {\n try {\n const response = await fetch('https://api.iconify.design/collections');\n if (response.ok) {\n return true;\n }\n } catch (error) {\n console.error(\"API connection failed:\", error);\n }\n return false;\n}\nwindow.fetchIconifySvg = async icon => {\n const hosts = [\n `https://api.iconify.design/${icon}.svg`,\n `https://api.simplesvg.com/${icon}.svg`,\n `https://api.unisvg.com/${icon}.svg`\n ];\n\n for (const url of hosts) {\n try {\n const response = await fetch(url, { timeout: 750 });\n if (response.ok) {\n return await response.text();\n } else if (response.status === 404) {\n console.warn(`Icon not found at ${url}`);\n continue;\n }\n } catch (error) {\n console.warn(`Failed to fetch from ${url}:`, error);\n }\n }\n\n throw new Error(\"Icon not found or all hosts are unreachable.\");\n}\nwindow.searchIcons = async query => {\n const searchUrl = `https://api.iconify.design/search?query=${encodeURIComponent(query)}`;\n try {\n const response = await fetch(searchUrl);\n if (response.ok) {\n const data = await response.json();\n return data.icons || [];\n } else {\n console.error(\"Failed to fetch icon search results.\");\n }\n } catch (error) {\n console.error(\"Error during icon search:\", error);\n }\n return [];\n}\nwindow.updateSvgMedia = async (id, type) => {\n let title = \"Replace the SVG\";\n const target = findLayerById(id, project.html).layer;\n let display = \"\";\n const elm = document.createElement(\"template\");\n elm.innerHTML = json2html(target);\n const element = elm.content.firstElementChild;\n if (element) {\n display = `<label for=\"ixkq65jma\">${element.outerHTML}</label>`;\n }\n elm.remove();\n\n let modalContent = `<style>\n #vl61t8366 svg {\n cursor: pointer;\n width: 100%;\n height: 100%;\n }\n </style>\n <div id=\"vl61t8366\" class=\"p-4 text-center grid grid-cols-1 gap-4 place-items-center\">\n <figure>\n ${display}\n <figcaption>\n <span id=\"modal-description\">Checking connection...</span>\n </figcaption>\n </figure>\n <input id=\"ixkq65jma\" type=\"file\" name=\"image\" accept=\".svg\" class=\"hidden\" onchange=\"updateMediaSource(event, '${type}', document.getElementById('vl61t8366'))\">\n <input type=\"search\" id=\"iconSearch\" placeholder=\"Search for an icon\" class=\"w-full p-2 border rounded-full mt-4 hidden\" oninput=\"handleIconSearch(event)\">\n <div id=\"iconResults\" class=\"grid grid-cols-4 gap-4 mt-4 w-full hidden\"></div>\n </div>`;\n\n Modal.render({\n title: title,\n content: modalContent,\n onLoad: async function() {\n const apiConnection = await checkApiConnection();\n const descriptionElement = document.getElementById('modal-description');\n const searchElement = document.getElementById('iconSearch');\n const iconResults = document.getElementById('iconResults');\n\n if (navigator.onLine && apiConnection) {\n descriptionElement.innerHTML = `<span>Api courtesy of \n <a href=\"https://iconify.design/\" target=\"_blank\">Iconify</a>.\n </span>`;\n searchElement.classList.remove('hidden');\n searchElement.focus();\n iconResults.classList.remove('hidden');\n } else {\n descriptionElement.textContent = 'Upload your SVG:';\n }\n },\n onConfirm: function() {\n data.selectedLayerIds.forEach(id => {\n const { layer } = findLayerById(id, project.html);\n if (layer && layer.tag === \"svg\") {\n const selectedSvg = document.getElementById('vl61t8366').querySelector('svg');\n if (selectedSvg) {\n let obj = html2json(selectedSvg.outerHTML)[0];\n saveState();\n Object.keys(obj).forEach(key => {\n if (key === \"id\") return;\n layer[key] = obj[key];\n });\n findLayerById(id, project.html).layer.state.selected = null;\n findLayerById(id, project.html).layer.state.selected = true;\n saveState();\n }\n }\n });\n }\n });\n}\nwindow.handleIconSearch = async event => {\n const query = event.target.value;\n const iconResultsElement = document.getElementById('iconResults');\n if (query.length > 2) {\n const icons = await searchIcons(query);\n \n iconResultsElement.innerHTML = ''; // Clear previous results\n\n for (const icon of icons) {\n try {\n const iconUrl = `https://api.iconify.design/${icon}.svg`;\n getFile(iconUrl, (error, svgContent) => {\n if (error) {\n console.error(\"Failed to fetch SVG:\", error);\n } else {\n const iconDiv = document.createElement('div');\n iconDiv.innerHTML = svgContent;\n iconDiv.onclick = () => {\n const selectedSvgElement = document.querySelector(\"#vl61t8366 label svg\");\n if (selectedSvgElement) {\n selectedSvgElement.outerHTML = svgContent; // Replace the outerHTML with the selected SVG\n iconDiv.closest('article').scrollTop = 0;\n }\n };\n iconResultsElement.appendChild(iconDiv);\n }\n });\n } catch (error) {\n console.warn(`Failed to fetch SVG for icon: ${icon}`, error);\n }\n }\n } else {\n const iconResultsElement = document.getElementById('iconResults');\n iconResultsElement.innerHTML = '';\n }\n}\nwindow.selectIcon = svgContent => {\n iconContainer.innerHTML = svgContent;\n}\nwindow.copyToClipboard = text => {\n navigator.clipboard.writeText(text).then(function() {\n }).catch(function(error) {\n console.error('Failed to copy text: ', error);\n });\n}\nwindow.collectComponents = layers => {\n const existingNames = new Set(project.components.map(comp => comp.name));\n\n layers.forEach(layer => {\n if (layer.isComponent) {\n // Check if the layer name already exists\n if (!existingNames.has(layer.name)) {\n const clone = { ...layer };\n let uniqueId = generateId();\n clone.id = uniqueId;\n\n project.components.push({\n id: uniqueId,\n name: layer.name,\n code: clone\n });\n\n // Add the new name to the set\n existingNames.add(layer.name);\n }\n }\n });\n}\nwindow.addComponent = () => {\n if (data.selectedLayerIds.length === 0) return;\n \n saveState(); // Save state before making changes\n\n data.selectedLayerIds.forEach(id => {\n const result = findLayerById(id, project.html);\n\n if (result) {\n const { layer } = result;\n const clone = { ...layer };\n clone.id = generateId();\n\n const newHtml = json2html(clone);\n\n // Check for duplicate name or HTML\n const isDuplicate = project.components.some(comp =>\n comp.name === clone.name || comp.code === newHtml\n );\n\n if (!isDuplicate) {\n project.components.push({\n name: clone.name,\n code: newHtml\n });\n } else {\n console.warn(`Component with name \"${clone.name}\" or identical HTML already exists.`);\n }\n } else {\n console.error('Layer not found for ID:', id);\n }\n });\n\n saveState(); // Save state after making changes\n}\nwindow.deleteComponent = index => {\n if (index >= 0 && index < project.components.length) {\n project.components.splice(index, 1);\n saveState(); // Save state after making changes\n } else {\n console.error('Invalid index:', index);\n }\n}\nwindow.commandPalette = () => {\n let buttonClass = `text-xs w-auto px-3 py-2 m-0 capitalize rounded-md bg-transparent border ${project.dark ? 'border-gray-600' : 'border-gray-400'}`;\n let commands = {\n \"fold all\": \"f\",\n \"unfold all\": \"u\",\n \"hide all\": \"h\",\n \"show all\": \"s\",\n \"empty children\": \"e\",\n \"clear all styles\": \"cas\"\n };\n\n // Generate buttons HTML from the commands object\n let buttonsHtml = Object.keys(commands).map(command => {\n return `<button \n class=\"${buttonClass}\"\n style=\"color: unset;\"\n onclick=\"\n const emuqfdoxq = document.getElementById('emuqfdoxq').checked;\n executeQuery('${commands[command]}', emuqfdoxq);\n document.querySelector('dialog[open]').querySelector('header > button').onclick();\n \"\n>\n ${command}\n</button>`;\n }).join(''); // Join the array into a single string\n\n const guide = `<div class=\"font-thin text-xs\">\n - <strong class=\"text-sm\">Enter a Query</strong>: <br/>\n Input a query in the format <code>t=tagname</code>, <code>t=.classname</code>, <code>t=[attribute=value]</code>, or <code>t=[id]</code>. You can also use pseudo-classes with the <code>t=</code> prefix like <code>t=.classname:first-child</code>.<br/><br/>\n\n - <strong class=\"text-sm\">Multiple Queries</strong>: <br/>\n Separate multiple queries with a comma (e.g., <code>t=li, t=.name</code>).<br/><br/>\n\n - <strong class=\"text-sm\">Pseudo-Classes</strong>: <br/>\n You can use pseudo-classes to refine your selection. Supported pseudo-classes include:<br/>\n <ul class=\"mt-4\">\n <li><code>:first-child</code> - Selects the first child element.</li>\n <li><code>:last-child</code> - Selects the last child element.</li>\n <li><code>:nth-child(n)</code> - Selects the nth child element.</li>\n <li><code>:nth-last-child(n)</code> - Selects the nth last child element.</li>\n <li><code>:only-child</code> - Selects elements that are the only child.</li>\n <li><code>:empty</code> - Selects elements without children.</li>\n <li><code>:first-of-type</code> - Selects the first element of its type.</li>\n <li><code>:last-of-type</code> - Selects the last element of its type.</li>\n <li><code>:nth-of-type(n)</code> - Selects the nth element of its type.</li>\n <li><code>:nth-last-of-type(n)</code> - Selects the nth last element of its type.</li>\n <li><code>:only-of-type</code> - Selects elements of its type that are the only one.</li>\n </ul><br/>\n\n - <strong class=\"text-sm\">Targeting Selections</strong>: <br/>\n Use the <code>t=</code> prefix to specify the type of selection:<br/>\n <ul class=\"mt-4\">\n <li><code>t=tagname</code> - Targets elements with the specified tag.</li>\n <li><code>t=.classname</code> - Targets elements with the specified class.</li>\n <li><code>t=[attribute]</code> - Targets elements with the specified attribute (without defining its value).</li>\n <li><code>t=[attribute=value]</code> - Targets elements with the specified attribute and value.</li>\n <li><code>t=.classname:pseudo-class</code> - Targets elements with the specified class and pseudo-class.</li>\n </ul><br/>\n\n - <strong class=\"text-sm\">Operation Prefixes</strong>: <br/>\n Use the following prefixes to perform operations on the targeted elements:<br/>\n <ul class=\"mt-4\">\n <li><code>r=</code> - Remove targeted elements. For example, <code>r=tagname</code> will remove all elements matching the specified tag.</li>\n <li><code>e=</code> - Empty all children from the targeted elements. For example, <code>e=.name</code> will empty the children of all elements with the class <code>name</code>.</li>\n <li><code>c=</code> - Apply operations to the children of the targeted elements. For example, <code>c=tagname</code> will select the children of currently selected elements that match the specified tag.</li>\n <li><code>mv=</code> - Move targeted elements. For example, <code>mv=tagname</code> will cut the currently selected elements and paste them as elements matching the specified tag.</li>\n <li><code>rs=</code> - Remove styles from the project as well as targeted elements. For example, <code>rs=styleName</code> will clear the specified style from all elements that currently have it applied.</li>\n </ul><br/>\n\n - <strong class=\"text-sm\">Special Commands</strong>: <br/>\n Use special commands to quickly fold, unfold, hide, show all layers, or empty all children from selections. The supported commands are:<br/>\n <ul class=\"mt-4\">\n <li><code>f</code> - Collapse all layers.</li>\n <li><code>u</code> - Uncollapse all layers.</li>\n <li><code>h</code> - Hide all layers.</li>\n <li><code>s</code> - Show all layers.</li>\n <li><code>cas</code> - Clear all styles.</li>\n <li><code>e</code> - Empty all children from selections.</li>\n </ul>\n If no query is provided and you click \"Confirm\", all current selections will be cleared automatically. (You can also do this using the shortcut <code>Shift+Ctrl+A</code> on Windows or <code>Shift+Cmd+A</code> on Mac)<br/><br/>\n\n - <strong class=\"text-sm\">Replace Current Selection</strong>: <br/>\n Toggle the switch to decide whether to replace the current selection or add to it.<br/>\n You can also hold the <code>Ctrl</code> key on Windows (<code>Cmd</code> key on Mac) to do this as well to target replacing current selection.<br/><br/>\n\n - <strong class=\"text-sm\">Execute</strong>: <br/>\n Press Enter to run the command or query.<br/><br/>\n\n - <strong class=\"text-sm\">Close</strong>: <br/>\n The palette will close automatically after executing a command.<br/>\n You can also open it using the shortcut <code>Ctrl+Shift+P</code> on Windows or <code>Cmd+Shift+P</code> on Mac.<br/>\n You can also use the <code>Esc</code> key to close every opened dialog.\n</div>`;\n\n // Check if data.commandPalette is true\n if (!data.commandPalette) {\n data.commandPalette = true;\n\n // Modal rendering code\n Modal.render({\n title: \"Command Palette...\",\n content: `\n <div class=\"p-4 grid grid-cols-1 gap-4\">\n <input\n id=\"olphbh94a\"\n type=\"text\"\n placeholder=\"Enter a query (e.g., tag=li:first-child, class=name)...\"\n class=\"rounded-full border p-2 flex-grow\"\n style=\"margin: 0;\"\n onkeydown=\"\n if (event.key === 'Enter') {\n executeQuery(this.value.trim(), data.replaceCurrentSelection);\n document.querySelector('dialog[open]').querySelector('header > button').onclick();\n }\n \"\n />\n <div class=\"flex items-center\">\n <input \n type=\"checkbox\" \n role=\"switch\" \n id=\"emuqfdoxq\" \n class=\"mr-2\" \n ${data.replaceCurrentSelection ? 'checked' : ''} \n onchange=\"data.replaceCurrentSelection = !data.replaceCurrentSelection;\"\n />\n <label for=\"emuqfdoxq\" class=\"select-none\">Replace current selection</label>\n </div>\n <hr/>\n <details class=\"flex items-center mb-0\" ${data.commandsOpen ? 'open' : ''} ontoggle=\"\n const detailsElement = this;\n data.commandsOpen = detailsElement.hasAttribute('open');\n \">\n <summary>\n Commands\n </summary>\n <code class=\"grid grid-cols-2 gap-2 mb-0 bg-transparent\">\n ${buttonsHtml}\n </code>\n </details>\n <hr/>\n <details class=\"mb-0\" ${data.commandPaletteGuide ? 'open' : ''} ontoggle=\"\n const detailsElement = this;\n data.commandPaletteGuide = detailsElement.hasAttribute('open');\n \">\n <summary>\n How to use the Command Palette:\n </summary>\n ${guide}\n </details>\n </div>`,\n onLoad() {\n document.getElementById('olphbh94a').focus();\n },\n onClose() {\n data.commandPalette = null;\n },\n onConfirm() {\n const query = document.getElementById('olphbh94a').value.trim();\n executeQuery(query, data.replaceCurrentSelection);\n data.commandPalette = null;\n }\n });\n }\n}\nwindow.updateVersionPart = (part, value) => {\n const versionParts = project.version.split('.');\n if (part === 'major') {\n versionParts[0] = value;\n } else if (part === 'minor') {\n versionParts[1] = value;\n } else if (part === 'patch') {\n versionParts[2] = value;\n }\n project.version = versionParts.join('.');\n}\n\n// iframe functions\nwindow.resizeCanvas = size => {\n data.selectedSize = size;\n getIFrameClientSize();\n}\nwindow.rotateCanvas = () => {\n const iframe = document.getElementById('previewElm').firstElementChild;\n if (iframe.style.width === '100%') return false;\n\n // Extract current width and height\n let width = parseInt(iframe.style.width);\n let height = parseInt(iframe.style.height);\n\n // Swap width and height\n [width, height] = [height, width];\n data.selectedSize = width+'x'+height;\n getIFrameClientSize();\n}\nlet fadeTimeout;\nwindow.getIFrameClientSize = () => {\n // resize canvas\n const iframe = document.getElementById('iframe');\n if (iframe.style.width !== '100%') {\n // Extract current width and height\n let width = parseInt(iframe.style.width);\n let height = parseInt(iframe.style.height);\n \n // Calculate the new transform scale\n const viewportWidth = previewElm.clientWidth;\n const viewportHeight = previewElm.clientHeight;\n const scale = Math.min(viewportWidth / width, viewportHeight / height);\n \n // Apply the new styles\n iframe.style.width = `${width}px`;\n iframe.style.height = `${height}px`;\n iframe.style.transform = `scale(${scale})`;\n iframe.style.marginTop = `-${height / 2}px`;\n iframe.style.marginLeft = `-${width / 2}px`;\n }\n\n data.iframeSize = `${iframe.clientWidth}px x ${iframe.clientHeight}px`;\n const element = document.getElementById('iframeClientSize');\n\n if (element.classList.contains('hidden')) {\n // Clear existing timeout to prevent multiple calls\n if (fadeTimeout) clearTimeout(fadeTimeout);\n\n // Remove hidden and add opacity-100 to show the element\n element.classList.remove('hidden', 'opacity-0');\n element.classList.add('opacity-100');\n\n // Set a timeout to handle fade-out\n fadeTimeout = setTimeout(() => {\n element.classList.remove('opacity-100');\n element.classList.add('opacity-0');\n\n // Add hidden class after fade-out\n setTimeout(() => {\n element.classList.add('hidden');\n }, 300); // Match the duration of the opacity transition\n }, 2000); // Show duration\n }\n}\n\n// save functions\nwindow.handleLogoChange = async event => {\n const file = event.target.files[0];\n if (!file) return; // If no file selected, return\n\n try {\n // Convert file to base64 string\n const base64String = await fileToBase64(file);\n // Update project.logo with base64String\n project.logo = base64String;\n } catch (error) {\n console.error('Error converting image to base64:', error);\n }\n}\nwindow.fileToBase64 = file => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = error => reject(error);\n });\n}\nwindow.importJSON = (obj, callback = null) => {\n if (obj === null) return;\n App.initialRender = true;\n data.selectedLayerIds = [];\n project.name = obj.name;\n project.version = obj.version;\n project.title = obj.title;\n project.description = obj.description;\n project.author = obj.author;\n project.url = obj.url;\n project.logo = obj.logo;\n project.dark = obj.dark;\n project.pwa = obj.pwa;\n project.activePanel = obj.activePanel;\n \n project.meta = obj.meta;\n project.libraries = obj.libraries;\n project.css = obj.css;\n project.html = obj.html;\n if (obj.components) {\n project['components'] = obj.components;\n collectComponents(project.html);\n }\n App.initialRender = null;\n collectSelectedIDs(project.html);\n App.render('#app');\n renderPreview(true);\n\n // Call the callback function if provided\n if (typeof callback === 'function') {\n callback();\n }\n}\nwindow.newProject = () => {\n const obj = {\n name: \"App name\",\n version: \"0.0.1\",\n title: \"An attractive title\",\n description: \"The most attractive description ever!\",\n author: \"Polyrise\",\n url: \"https://michaelsboost.com/\",\n meta: \"\",\n libraries: [],\n css: {\n \"rootVariables\": {},\n \"styles\": {},\n \"animations\": {},\n \"breakpoints\": {}\n },\n components: [],\n html: [],\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==\",\n lang: \"en\",\n dark: true,\n previewDark: true,\n pwa: false,\n activePanel: 'layers'\n }\n\n let modalContent = `\n <div class=\"p-4\">\n <div class=\"p-4 text-center\">All current data will be lost.</div>\n <div class=\"mb-4 text-center\">\u2728 Click the image to start with a template! \uD83D\uDE80</div>\n <div class=\"grid grid-cols-1 gap-4 place-items-center\">\n <img class=\"cursor-pointer rounded-md shadow-2xl\" id=\"starter-project\" src=\"imgs/demo.png\" width=\"593\" height=\"335\" loading=\"lazy\">\n </div>\n </div>`;\n\n Modal.render({\n title: \"Are you sure you want to start a new project?\",\n content: modalContent,\n onLoad() {\n // Set up the event listener once the modal is loaded\n document.getElementById('starter-project').onclick = () => {\n fetch('json/bootstrap-landing-page-demo.json')\n .then(response => response.json())\n .then(data => {\n importJSON(data, () => {\n if (document.querySelector('dialog[open]')) {\n document.querySelector('dialog[open]').querySelector('header > button:last-child').onclick();\n }\n if (document.querySelector('dialog[open]')) {\n document.querySelector('dialog[open]').querySelector('header > button:last-child').onclick();\n }\n });\n })\n .catch(error => {\n console.error('Error loading the starter project:', error);\n });\n };\n },\n onConfirm() {\n importJSON(obj);\n data.menuDialog = null;\n }\n });\n};\n\nwindow.emptyStorage = () => {\n Modal.render({\n title: \"Are you sure you want to empty storage?\",\n content: '<div class=\"p-4 text-center\">All current data will be lost.</div>',\n onConfirm() {\n // Clear local storage\n localStorage.removeItem('Polyrise');\n \n // Clear session storage specific to Polyrise (if you use a specific key)\n sessionStorage.removeItem('Polyrise');\n \n // Clear cookies specific to Polyrise\n document.cookie.split(\";\").forEach(function(c) {\n if (c.trim().startsWith('Polyrise')) {\n document.cookie = c.trim().split(\"=\")[0] + \n '=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/';\n }\n });\n \n // Clear service worker caches specific to Polyrise\n if ('caches' in window) {\n caches.keys().then(function(names) {\n names.forEach(function(name) {\n if (name === 'Polyrise-cache') {\n caches.delete(name);\n }\n });\n });\n }\n \n // Unregister service workers specific to Polyrise\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.getRegistrations().then(function(registrations) {\n registrations.forEach(function(registration) {\n if (registration.scope.includes('Polyrise')) {\n registration.unregister();\n }\n });\n });\n }\n \n location.reload();\n }\n });\n}\nwindow.clearAllStorage = () => {\n // Clear local storage\n localStorage.clear();\n\n // Clear session storage\n sessionStorage.clear();\n\n // Clear all cookies\n document.cookie.split(\";\").forEach(function(cookie) {\n const cookieName = cookie.split(\"=\")[0].trim();\n document.cookie = cookieName + '=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/';\n });\n\n // Clear all service workers\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.getRegistrations().then(function(registrations) {\n registrations.forEach(function(registration) {\n registration.unregister();\n });\n });\n }\n\n // Clear all caches\n if ('caches' in window) {\n caches.keys().then(function(names) {\n names.forEach(function(name) {\n caches.delete(name);\n });\n });\n }\n\n // Reload the page\n location.reload();\n}\nwindow.importProject = () => {\n Modal.render({\n title: \"Are you sure you want to load a new project?\",\n content: `<div class=\"p-4 text-center\">All current data will be lost.</div>`,\n onClose: function () {\n data.menuDialog = true;\n },\n onConfirm: function() {\n const input = document.createElement('input');\n input.type = 'file';\n input.accept = '.json';\n\n input.addEventListener('change', (event) => {\n const file = event.target.files[0];\n \n if (!file) {\n console.error('No file selected.');\n return;\n }\n \n const reader = new FileReader();\n \n reader.onload = event => {\n try {\n importJSON(JSON.parse(event.target.result));\n } catch (error) {\n console.error('Error parsing JSON file:', error);\n }\n };\n \n reader.readAsText(file);\n input.remove();\n });\n \n input.click();\n }\n });\n}\nwindow.getFileNameAndType = url => {\n // Extract the file name with extension from the URL\n const fileName = url.substring(url.lastIndexOf('/') + 1);\n \n // Extract the file extension\n const fileExtension = fileName.split('.').pop().toLowerCase();\n \n // Map file extensions to MIME types\n const mimeTypes = {\n 'jpeg': 'image/jpeg',\n 'jpg': 'image/jpeg',\n 'png': 'image/png',\n 'gif': 'image/gif',\n 'bmp': 'image/bmp',\n 'webp': 'image/webp',\n 'svg': 'image/svg+xml',\n 'mp3': 'audio/mpeg',\n 'wav': 'audio/wav',\n 'ogg': 'audio/ogg',\n 'mp4': 'video/mp4',\n 'webm': 'video/webm',\n 'ogv': 'video/ogg'\n };\n \n // Get the MIME type based on the file extension\n const fileType = mimeTypes[fileExtension] || 'application/octet-stream';\n \n return {\n fileName,\n fileType\n };\n}\nwindow.fetchResources = obj => {\n try {\n const doc = new DOMParser().parseFromString(json2html(obj.html), 'text/html');\n const body = doc.body;\n\n const imageResources = [];\n const audioResources = [];\n const vectorResources = [];\n const videoResources = [];\n\n let fileCounter = 1;\n\n // Helper function to check if a string is Base64\n function isBase64(str) {\n return str.startsWith('data:') && str.includes('base64,');\n }\n\n // Helper function to extract file type from Base64 string\n function getBase64FileType(str) {\n const mimeMatch = str.match(/^data:(.*);base64,/);\n if (mimeMatch) {\n const mimeType = mimeMatch[1];\n return mimeTypeToExtension(mimeType);\n }\n return 'unknown';\n }\n\n // Helper function to map MIME types to file extensions\n function mimeTypeToExtension(mimeType) {\n const typeMap = {\n // Images\n 'image/jpeg': 'jpg',\n 'image/png': 'png',\n 'image/gif': 'gif',\n 'image/svg+xml': 'svg',\n 'image/webp': 'webp',\n 'image/tiff': 'tiff',\n 'image/bmp': 'bmp',\n 'image/x-icon': 'ico',\n\n // Audio\n 'audio/mpeg': 'mp3',\n 'audio/wav': 'wav',\n 'audio/ogg': 'ogg',\n 'audio/aac': 'aac',\n 'audio/webm': 'webm',\n 'audio/flac': 'flac',\n\n // Video\n 'video/mp4': 'mp4',\n 'video/webm': 'webm',\n 'video/ogg': 'ogv',\n 'video/avi': 'avi',\n 'video/mpeg': 'mpg',\n 'video/quicktime': 'mov',\n 'video/x-msvideo': 'avi',\n 'video/x-matroska': 'mkv',\n\n // Fallback for unknown types\n 'unknown': 'bin'\n };\n return typeMap[mimeType] || 'bin';\n }\n\n // Helper function to extract file name from URL\n function getFileName(url) {\n return url.substring(url.lastIndexOf('/') + 1);\n }\n\n // Generate a file name for Base64 resources\n function getBase64FileName() {\n return `file-${fileCounter++}`;\n }\n\n // Function to extract and process background images from CSS\n function extractBackgroundImageUrls(css) {\n const urls = [];\n const regex = /background-image\\s*:\\s*url\\(([^)]+)\\)/g;\n let match;\n while ((match = regex.exec(css)) !== null) {\n let url = match[1].replace(/['\"]/g, \"\"); // Remove quotes around URLs\n if (isBase64(url)) {\n const fileType = getBase64FileType(url);\n const fileName = `${getBase64FileName()}.${fileType}`;\n imageResources.push({ url: url, fileName: fileName });\n css = css.replace(url, `../imgs/${fileName}`);\n } else {\n const fileName = getFileName(url);\n imageResources.push({ url: url, fileName: fileName });\n css = css.replace(url, `../imgs/${fileName}`);\n }\n urls.push(url);\n }\n return css;\n }\n\n // Extract image URLs and filenames\n body.querySelectorAll('img').forEach(img => {\n if (img.hasAttribute('src')) {\n const src = img.getAttribute('src');\n\n if (isBase64(src)) {\n const fileType = getBase64FileType(src);\n const fileName = `${getBase64FileName()}.${fileType}`;\n imageResources.push({ url: src, fileName: fileName });\n img.src = `imgs/${fileName}`;\n } else {\n const fileName = getFileName(src);\n imageResources.push({ url: src, fileName: fileName });\n img.src = `imgs/${getFileNameAndType(src).fileName}`;\n }\n }\n\n if (img.hasAttribute('srcset')) {\n img.srcset.split(',').forEach(srcset => {\n const url = srcset.trim().split(' ')[0];\n if (isBase64(url)) {\n const fileType = getBase64FileType(src);\n const fileName = `${getBase64FileName()}.${fileType}`;\n imageResources.push({ url: url, fileName: fileName });\n img.src = `imgs/${fileName}`;\n } else {\n const fileName = getFileName(url);\n imageResources.push({ url: url, fileName: fileName });\n img.src = `imgs/${getFileNameAndType(img.getAttribute('src')).fileName}`;\n }\n });\n }\n });\n\n // Extract audio URLs and filenames\n body.querySelectorAll('audio').forEach(audio => {\n audio.querySelectorAll('source').forEach(source => {\n if (source.hasAttribute('src')) {\n const src = source.getAttribute('src');\n\n if (isBase64(src)) {\n const fileType = getBase64FileType(src);\n const fileName = `${getBase64FileName()}.${fileType}`;\n audioResources.push({ url: src, fileName: fileName });\n source.src = `audios/${fileName}`;\n } else {\n const fileName = getFileName(src);\n audioResources.push({ url: src, fileName: fileName });\n source.src = `audios/${getFileNameAndType(src).fileName}`;\n }\n }\n });\n });\n\n // Extract vectors\n body.querySelectorAll('svg').forEach(svg => {\n vectorResources.push({ content: svg.outerHTML, fileName: `vector-${vectorResources.length + 1}.svg` });\n });\n\n // Extract video URLs and filenames\n body.querySelectorAll('video').forEach(video => {\n video.querySelectorAll('source').forEach(source => {\n if (source.hasAttribute('src')) {\n const src = source.getAttribute('src');\n\n if (isBase64(src)) {\n const fileType = getBase64FileType(src);\n const fileName = `${getBase64FileName()}.${fileType}`;\n videoResources.push({ url: src, fileName: fileName });\n source.src = `vids/${fileName}`;\n } else {\n const fileName = getFileName(src);\n videoResources.push({ url: src, fileName: fileName });\n source.src = `vids/${getFileNameAndType(src).fileName}`;\n }\n }\n });\n });\n\n // Process CSS background images\n const css = json2css(obj.css) || '';\n const updatedCss = extractBackgroundImageUrls(css);\n const stylesObj = updatedCss;\n body.querySelectorAll('style').forEach(style => style.remove());\n\n return {\n html: doc.body.innerHTML,\n stylesObj,\n imageResources,\n audioResources,\n vectorResources,\n videoResources\n };\n } catch (error) {\n console.error('Error fetching resources:', error);\n return null; // Or handle the error in an appropriate way\n }\n}\nwindow.getBase64Media = async mediaUrl => {\n const response = await fetch(mediaUrl);\n const blob = await response.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result.split(',')[1]);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n}\nwindow.renderStyles = styles => {\n let css = '';\n\n // Define :root variables\n css += `:root {\\n`;\n for (const [variable, value] of Object.entries(styles.rootVariables || {})) {\n css += ` --${variable}: ${value};\\n`;\n }\n css += '}\\n';\n\n // Define styles for each class\n for (const [classId, style] of Object.entries(styles.styles)) {\n if (!style || (!Object.keys(style.variables || {}).length && \n !Object.keys(style.base || {}).length && \n !Object.keys(style.pseudos || {}).length && \n !Object.keys(style.animations || {}).length && \n !Object.keys(style.breakpoints || {}).length)) {\n continue; // Skip empty styles\n }\n const variables = style.variables || {};\n const baseStyles = style.base || {};\n const pseudos = style.pseudos || [];\n const animations = style.animations || {};\n const breakpoints = style.breakpoints || {};\n\n if (classId === \"html\" || classId === \"body\") {\n css += `${classId} {\\n`;\n } else {\n css += `.${classId} {\\n`;\n }\n \n for (const [variable, value] of Object.entries(variables)) {\n css += ` --${variable}: ${value};\\n`;\n }\n for (const [property, value] of Object.entries(baseStyles)) {\n css += ` ${property}: ${value};\\n`;\n }\n css += '}\\n';\n\n for (const { selector, styles: pseudoStyles } of pseudos) {\n css += `.${classId}${selector} {\\n`;\n for (const [property, value] of Object.entries(pseudoStyles)) {\n css += ` ${property}: ${value};\\n`;\n }\n css += '}\\n';\n }\n\n for (const [animationName, animation] of Object.entries(animations)) {\n css += `@keyframes ${animationName} {\\n`;\n for (const [key, frameStyles] of Object.entries(animation.keyframes)) {\n css += ` ${key} {\\n`;\n for (const [property, value] of Object.entries(frameStyles)) {\n css += ` ${property}: ${value};\\n`;\n }\n css += ' }\\n';\n }\n css += '}\\n';\n\n css += `.${classId} {\\n`;\n for (const [property, value] of Object.entries(animation.properties)) {\n css += ` ${property}: ${value};\\n`;\n }\n css += '}\\n';\n }\n\n for (const [breakpoint, breakpointStyles] of Object.entries(breakpoints)) {\n css += `@media (max-width: ${breakpoint}) {\\n`;\n css += ` .${classId} {\\n`;\n for (const [variable, value] of Object.entries(breakpointStyles.variables || {})) {\n css += ` --${variable}: ${value};\\n`;\n }\n for (const [property, value] of Object.entries(breakpointStyles.base || {})) {\n css += ` ${property}: ${value};\\n`;\n }\n css += ' }\\n';\n\n for (const { selector, styles: pseudoStyles } of breakpointStyles.pseudos || []) {\n css += ` .${classId}${selector} {\\n`;\n for (const [property, value] of Object.entries(pseudoStyles)) {\n css += ` ${property}: ${value};\\n`;\n }\n css += ' }\\n';\n }\n\n css += '}\\n';\n }\n }\n\n return css;\n}\nwindow.downloadJSON = async () => {\n try {\n await loadScript(\"libraries/jszip/FileSaver.min.js\");\n let blob = new Blob([JSON.stringify(project, null, 2)], {type: \"application/json\"});\n saveAs(blob, `${project.name.split(' ').join('').toLowerCase()}-Polyrise.json`);\n\n } catch (error) {\n console.error('Error:', error);\n } finally {\n // Clean up scripts after use\n removeScript(\"libraries/jszip/FileSaver.min.js\");\n }\n}\nwindow.downloadQuickCommands = () => {\n const colorMappings = {\n 'black': '#000000',\n 'white': '#ffffff',\n 'gray-50': '#f9fafb',\n 'gray-100': '#f3f4f6',\n 'gray-200': '#e5e7eb',\n 'gray-300': '#d1d5db',\n 'gray-400': '#9ca3af',\n 'gray-500': '#6b7280',\n 'gray-600': '#4b5563',\n 'gray-700': '#374151',\n 'gray-800': '#1f2937',\n 'gray-900': '#111827',\n 'red-50': '#fef2f2',\n 'red-100': '#fee2e2',\n 'red-200': '#fecaca',\n 'red-300': '#fca5a5',\n 'red-400': '#f87171',\n 'red-500': '#ef4444',\n 'red-600': '#dc2626',\n 'red-700': '#b91c1c',\n 'red-800': '#991b1b',\n 'red-900': '#7f1d1d',\n 'yellow-50': '#fefce8',\n 'yellow-100': '#fef9c3',\n 'yellow-200': '#fef08a',\n 'yellow-300': '#fde047',\n 'yellow-400': '#facc15',\n 'yellow-500': '#eab308',\n 'yellow-600': '#ca8a04',\n 'yellow-700': '#a16207',\n 'yellow-800': '#854d0e',\n 'yellow-900': '#713f12',\n 'green-50': '#f0fdf4',\n 'green-100': '#dcfce7',\n 'green-200': '#bbf7d0',\n 'green-300': '#86efac',\n 'green-400': '#4ade80',\n 'green-500': '#22c55e',\n 'green-600': '#16a34a',\n 'green-700': '#15803d',\n 'green-800': '#166534',\n 'green-900': '#14532d',\n 'blue-50': '#eff6ff',\n 'blue-100': '#dbeafe',\n 'blue-200': '#bfdbfe',\n 'blue-300': '#93c5fd',\n 'blue-400': '#60a5fa',\n 'blue-500': '#3b82f6',\n 'blue-600': '#2563eb',\n 'blue-700': '#1d4ed8',\n 'blue-800': '#1e40af',\n 'blue-900': '#1e3a8a',\n 'indigo-50': '#eef2ff',\n 'indigo-100': '#e0e7ff',\n 'indigo-200': '#c7d2fe',\n 'indigo-300': '#a5b4fc',\n 'indigo-400': '#818cf8',\n 'indigo-500': '#6366f1',\n 'indigo-600': '#4f46e5',\n 'indigo-700': '#4338ca',\n 'indigo-800': '#3730a3',\n 'indigo-900': '#312e81',\n 'purple-50': '#f5f3ff',\n 'purple-100': '#ede9fe',\n 'purple-200': '#ddd6fe',\n 'purple-300': '#c4b5fd',\n 'purple-400': '#a78bfa',\n 'purple-500': '#8b5cf6',\n 'purple-600': '#7c3aed',\n 'purple-700': '#6d28d9',\n 'purple-800': '#5b21b6',\n 'purple-900': '#4c1d95',\n 'pink-50': '#fdf2f8',\n 'pink-100': '#fce7f3',\n 'pink-200': '#fbcfe8',\n 'pink-300': '#f9a8d4',\n 'pink-400': '#f472b6',\n 'pink-500': '#ec4899',\n 'pink-600': '#db2777',\n 'pink-700': '#be185d',\n 'pink-800': '#9d174d',\n 'pink-900': '#831843'\n }; \n\n function updateBorderColors(data) {\n const updatedData = {};\n for (const [key, value] of Object.entries(data)) {\n if (key.startsWith('border-') && !key.includes('-opacity')) {\n const colorKey = key.split('-').slice(1).join('-');\n const color = colorMappings[colorKey] || 'transparent';\n updatedData[key] = `--tw-border-opacity: 1; border-top-color: ${color}; border-right-color: ${color}; border-bottom-color: ${color}; border-left-color: ${color};`;\n } else {\n updatedData[key] = value;\n }\n }\n return updatedData;\n }\n \n\n window.saveAsJson = async (data, filename) => {\n try {\n await loadScript(\"libraries/jszip/FileSaver.min.js\");\n const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });\n saveAs(blob, filename);\n \n } catch (error) {\n console.error('Error:', error);\n } finally {\n // Clean up scripts after use\n removeScript(\"libraries/jszip/FileSaver.min.js\");\n }\n }\n\n // Generate the CSS quick commands and save to a JSON file\n generateCssQuickCommands('libraries/tailwind/tailwind-mod.min.css').then(cssQuickCommands => {\n const updatedData = updateBorderColors(cssQuickCommands);\n saveAsJson(updatedData, 'cssQuickCommands.json');\n });\n}\nwindow.getFile = async (url, callback = null) => {\n try {\n const response = await fetch(url);\n if (!response.ok) throw new Error(\"Network response was not ok\");\n const fileContent = await response.text();\n if (callback && typeof callback === 'function') {\n callback(null, fileContent); // Call the callback with the file content\n } else {\n return fileContent; // Return the file content\n }\n } catch (error) {\n console.warn(\"Request error:\", error);\n if (callback && typeof callback === 'function') {\n callback(error, null); // Call the callback with the error\n } else {\n throw error; // Re-throw to handle in caller\n }\n }\n}\nwindow.minifyCSS = source => {\n // Convert the source to a string if it isn't one\n source = String(source);\n // Remove comments\n let minified = source.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '');\n // Remove whitespace and newlines\n minified = minified.replace(/\\s{2,}/g, ' ').replace(/\\n/g, '');\n // Remove spaces around selectors, properties, and values\n minified = minified.replace(/\\s*([{}:;])\\s*/g, '$1');\n // Remove the last semicolon before the closing brace\n minified = minified.replace(/;}/g, '}');\n return minified;\n}\nwindow.downloadProject = async () => {\n try {\n await loadScripts([\n \"libraries/jszip/jszip.min.js\",\n \"libraries/jszip/FileSaver.min.js\"\n ]);\n\n // Extract srcset URLs\n const iframe = document.getElementById('iframe');\n if (!iframe) return;\n const idoc = iframe.contentDocument || iframe.contentWindow.document;\n const { html, stylesObj, imageResources, audioResources, vectorResources, videoResources } = fetchResources(project);\n\n const zip = new JSZip();\n\n // Project file\n zip.file(`${project.name.split(' ').join('').toLowerCase()}-Polyrise.json`, JSON.stringify(project, null, 2));\n\n // kodeWeave project file\n const kodeWeaveProject = {\n name: project.name,\n version: project.version,\n title: project.title,\n description: project.description,\n author: project.author,\n url: project.url,\n meta: project.meta,\n libraries: project.libraries,\n html_pre_processor: \"html\",\n css_pre_processor: \"css\",\n javascript_pre_processor: \"javascript\",\n html: json2html(project.html),\n css: json2css(project.css),\n javascript: '',\n logo: project.logo,\n console: false,\n dark: project.dark,\n module: true,\n autorun: true,\n pwa: project.pwa,\n preview: true,\n activePanel: 'html',\n columns: false,\n columnsRight: true\n };\n zip.file(`${project.name.split(' ').join('').toLowerCase()}-kodeWeave.json`, JSON.stringify(kodeWeaveProject, null, 2));\n\n let licenseStr = `The MIT License (MIT)\nCopyright (c) ${new Date().getFullYear()} ${project.author}\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.`;\n zip.file(\"LICENSE.md\", licenseStr);\n\n let READMEStr = `# ${project.name}\n\n**Description:**\n${project.description}\n\n**Built With ${app.name}!**\nThis site was made with [${app.name}](https://michaelsboost.com/${app.name.toString().split(' ').join('-')}/).\n\n**${app.name} Description:**\n${app.summary} ${app.description}\n\n**Website:**\n[${app.name}](https://michaelsboost.com/${app.name.toString().split(' ').join('-')}/)`;\n zip.file(\"README.md\", READMEStr);\n\n let cssContent = '';\n let cssBuildItems = [];\n let cssBuildItemsString = '';\n let TailwindNoReset = null;\n const promises = project.libraries.map(async library => {\n if (!library.endsWith(['.css', '.js'])) return false;\n const data = await getFile(library);\n const parts = library.split(\"/\");\n const name = parts[parts.length - 1];\n\n // Check if the library is one of the Tailwind files to ignore\n if (name === \"tailwind-mod-noreset.min.js\") {\n TailwindNoReset = true;\n }\n \n // Assuming libraries have .css extensions for simplicity\n if (name.endsWith('.css')) {\n cssContent += data + '\\n';\n cssBuildItems.push(name);\n cssBuildItemsString += `libraries/${name} `;\n zip.folder('libraries').file(name, data);\n }\n \n // Assuming libraries have .js extensions for simplicity\n if (name.endsWith('.js')) {\n zip.folder('libraries').file(name, data);\n }\n });\n await Promise.all(promises);\n\n // Checks css for html\n let cssBuild = '';\n let css4html = '';\n let twFound = '';\n let tailwindDirectives = '';\n let tailwindStyles = '';\n let cssImport = '';\n \n // Find out if user is using tailwind\n if (idoc.getElementById('vyhibnq91')) {\n twFound = true;\n tailwindDirectives = `\n ${!TailwindNoReset ? `@tailwind base;` : ''}\n@tailwind components;\n@tailwind utilities;\n`\n\n if (twFound) {\n cssBuildItems.map(async library => {\n cssImport += `@import '../libraries/${library}';\n`;\n });\n cssImport += tailwindDirectives;\n } else {\n cssImport = cssContent;\n }\n tailwindStyles = idoc.getElementById('vyhibnq91').textContent;\n }\n\n // Extract and join the content of all <style> tags into a single string\n const combinedStyles = Array.from(idoc.body.querySelectorAll('style'))\n .map(style => style.textContent)\n .join('\\n');\n let css = stylesObj + combinedStyles;\n if (tailwindStyles) css += tailwindStyles;\n if (cssContent) {\n css4html = `<link rel=\"stylesheet\" href=\"dist/bundle.css\">\n `;\n cssBuild = `\"build:css\": \"postcss src/bundle.css -o dist/bundle.css\",`;\n zip.file(\"src/bundle.css\", cssImport + css);\n zip.file('dist/bundle.css', minifyCSS(cssContent + tailwindStyles + css));\n } else {\n css4html = `<link rel=\"stylesheet\" href=\"dist/bundle.css\">\n `;\n cssBuild = `\"build:css\": \"postcss src/bundle.css -o dist/bundle.css\",`;\n zip.file(\"src/bundle.css\", css);\n zip.file('dist/bundle.css', minifyCSS(css));\n }\n\n // Tailwind config\n if (twFound) {\n let configCode = `module.exports = {\n content: [\n './**/*.html',\n './src/**/*.js',\n ],\n theme: {\n extend: {},\n },\n plugins: [],\n};`\n zip.file(\"tailwind.config.js\", configCode);\n }\n\n // PostCSS config\n let postcssConfig = `module.exports = {\n plugins: [\n require('postcss-import'),\n require('autoprefixer'),${twFound ? `\n require('tailwindcss'),` : ''}\n require('cssnano')({\n preset: ['default', {\n discardComments: { removeAll: true }, // Remove all comments\n }],\n }),\n ],\n};`;\n zip.file(\"postcss.config.cjs\", postcssConfig);\n\n // Package JSON\n let npmJSON = `{\n \"name\": \"${project.name.split(' ').join('').toLowerCase()}\",\n \"private\": true,\n \"version\": \"${project.version}\",\n \"type\": \"module\",\n \"scripts\": {\n \"build:css\": \"postcss src/bundle.css -o dist/bundle.css\",\n \"build\": \"npm run build:css\",\n \"serve\": \"http-server -c-1 -p 8081\"\n },\n \"dependencies\": {\n \"autoprefixer\": \"^10.4.19\",\n \"cssnano\": \"^7.0.2\",\n \"postcss\": \"^8.4.38\",\n \"postcss-import\": \"^16.1.0\"${twFound ? `,\n \"tailwindcss\": \"^3.4.4\"` : ''}\n }\n}`;\n zip.file(\"package.json\", npmJSON);\n\n // Always include the original logo\n if (project.logo) {\n try {\n let base64Logo = '';\n \n if (project.logo.startsWith('data:')) {\n // If logo is already a data URL, extract base64 part\n base64Logo = project.logo; // Get the base64 part\n } else {\n // Otherwise fetch and convert to base64\n base64Logo = await getBase64Media(project.logo);\n }\n \n // Determine file extension based on MIME type\n let logoType;\n if (project.logo.startsWith('data:image/png')) {\n logoType = 'png';\n } else if (project.logo.startsWith('data:image/jpeg')) {\n logoType = 'jpeg';\n } else if (project.logo.startsWith('data:image/svg+xml')) {\n logoType = 'svg';\n } else {\n console.error('Unsupported logo MIME type:', project.logo);\n return; // Exit or handle error appropriately\n }\n \n const logoFileName = `logo.${logoType}`;\n zip.folder('imgs').file(logoFileName, base64Logo.split(\",\")[1], { base64: true });\n \n // Add icons to manifest.json based on image sizes\n const sizes = ['192x192', '256x256', '384x384', '512x512'];\n const icons = sizes.map(size => ({\n \"src\": `./imgs/logo-${size}.png`,\n \"sizes\": size,\n \"type\": \"image/png\",\n \"purpose\": \"any\"\n }));\n\n // Helper function to create resized images\n const createResizedImage = (size) => {\n return new Promise((resolve, reject) => {\n const canvas = document.createElement('canvas');\n canvas.width = parseInt(size.split('x')[0]);\n canvas.height = parseInt(size.split('x')[1]);\n const ctx = canvas.getContext('2d');\n \n const img = new Image();\n img.src = base64Logo;\n img.onload = function() {\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n const base64Image = canvas.toDataURL('image/png').replace(/^data:image\\/png;base64,/, '');\n zip.folder('imgs').file(`logo-${size}.png`, base64Image, { base64: true });\n resolve();\n };\n img.onerror = reject;\n \n // Clean up canvas element\n canvas.remove();\n });\n };\n \n // Create all resized images\n await Promise.all(sizes.map(createResizedImage));\n \n zip.file(`manifest.json`, JSON.stringify({\n \"theme_color\": \"#13171f\",\n \"background_color\": \"#13171f\",\n \"display\": \"standalone\",\n \"start_url\": \"./index.html\",\n \"lang\": \"en-US\",\n \"name\": project.name,\n \"short_name\": project.name,\n \"description\": project.description,\n \"icons\": icons\n }, null, 2));\n \n } catch (error) {\n console.error('Error adding logo to ZIP:', error);\n return; // Exit method or handle error as needed\n }\n }\n\n // if pwa is enabled\n let swinit = '';\n if (project.pwa) {\n swinit = `\n <script src=\"https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js\"></script>\n <script>\n // service worker for progressive web app\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', () => {\n navigator.serviceWorker.register('./sw.js')\n })\n }\n </script>`;\n const swjs = `// Service worker code\nimportScripts('https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js');\n\nconst { registerRoute } = workbox.routing;\nconst { CacheFirst } = workbox.strategies;\n\nconst cacheName = '${project.name.split(' ').join('')}-cache';\n\nworkbox.routing.registerRoute(\n ({ request }) => request.destination === 'script' ||\n request.destination === 'style' ||\n request.destination === 'document' ||\n request.destination === 'image' ||\n request.destination === 'font' ||\n request.destination === 'audio' ||\n request.destination === 'video',\n new CacheFirst({\n cacheName: cacheName,\n plugins: [\n // Any additional plugins can be added here\n ],\n })\n);`\n zip.file(\"sw.js\", swjs);\n }\n\n // Save audio files to ZIP\n if (audioResources.length > 0) {\n const audioFolder = zip.folder('audios');\n try {\n for (const { url, fileName } of audioResources) {\n const base64Audio = await getBase64Media(url);\n audioFolder.file(fileName, base64Audio, { base64: true });\n }\n } catch (error) {\n console.error('Error adding audio to ZIP:', error);\n return;\n }\n }\n\n // Save image files to ZIP\n if (imageResources.length > 0) {\n try {\n for (const { url, fileName } of imageResources) {\n const base64Image = await getBase64Media(url);\n zip.folder('imgs').file(fileName, base64Image, { base64: true });\n }\n } catch (error) {\n console.error('Error adding images to ZIP:', error);\n return;\n }\n }\n\n // Save SVG files to ZIP\n if (vectorResources.length > 0) {\n const svgFolder = zip.folder('svgs');\n try {\n for (const { content, fileName } of vectorResources) {\n svgFolder.file(fileName, content);\n }\n } catch (error) {\n console.error('Error adding SVGs to ZIP:', error);\n return;\n }\n }\n\n // Save video files to ZIP\n if (videoResources.length > 0) {\n const videoFolder = zip.folder('vids');\n try {\n for (const { url, fileName } of videoResources) {\n const base64Video = await getBase64Media(url);\n videoFolder.file(fileName, base64Video, { base64: true });\n }\n } catch (error) {\n console.error('Error adding videos to ZIP:', error);\n return;\n }\n }\n\n // Iterate over each library\n let scriptTags = '';\n let cssTags = '';\n project.libraries.forEach(library => {\n if (library.endsWith('.js')) {\n scriptTags += `<script src=\"${library}\"></script>\\n `;\n } else {\n // Assuming it's a Google font\n cssTags += `<link href=\"${library}\" rel=\"stylesheet\">\\n `;\n }\n });\n \n // Add index.html\n const testHtmlContent = `<!DOCTYPE html>\n<html lang=\"en\" data-theme=\"${project.dark ? 'dark' : 'light'}\">\n <head>\n <title>${project.title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${cssTags}${css4html}${project.meta ? `${project.meta}\\n ` : ''}${scriptTags ? scriptTags : ''}\n \n \n \n${json2html(project.html).replace(/]*>[\\s\\S]*?<\\/style>/gi, '')}\n\n \n`;\n zip.file('test.html', testHtmlContent);\n const indexHtmlContentCompiled = `\n\n \n ${project.title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${cssTags}${css4html}${project.meta ? `${project.meta}\\n ` : ''}${scriptTags ? scriptTags : ''}\n \n \n \n${html}\n\n${(project.pwa ? swinit : '')}\n\n \n`;\n zip.file('index.html', indexHtmlContentCompiled);\n\n // Generate the ZIP file\n const blob = await zip.generateAsync({ type: 'blob' });\n saveAs(blob, `${project.name.toLowerCase().split(' ').join('')}.zip`);\n \n // Clear all arrays after saving\n imageResources.length = audioResources.length = vectorResources.length = videoResources.length = 0;\n } catch (error) {\n console.error('Error:', error);\n } finally {\n // Clean up scripts after use\n const scriptsToRemove = [\n 'libraries/jszip/FileSaver.min.js',\n 'libraries/jszip/jszip.min.js'\n ];\n\n removeScripts(scriptsToRemove);\n }\n}\nwindow.share = async () => {\n try {\n if (navigator.onLine) {\n const shareProject = {\n title: project.title,\n description: project.description,\n head: project.meta,\n html: `\n \n${json2html(project.html)}`,\n html_pre_processor: \"none\",\n css: `/* This site was made with ${app.name}: ${app.summary} */\n\n${json2css(project.css)}`,\n css_pre_processor: \"none\",\n css_external: project.libraries.filter(lib => lib.endsWith('.css')).join(';'),\n css_starter: \"neither\",\n css_prefix: \"neither\",\n js_external: project.libraries.filter(lib => lib.endsWith('.js')).join(';'),\n editors: '111',\n layout: 'left'\n };\n\n // Stringify the JSON object and escape quotes\n const JSONstring = JSON.stringify(shareProject)\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n\n // Create form element\n const form = `\n
    \n \n \n
    `;\n\n // Append form to the document body and submit\n document.body.insertAdjacentHTML('beforeend', form);\n document.querySelector('form').submit();\n document.querySelector('form').remove();\n } else {\n Modal.render({\n title: \"Unable to share!\",\n content: `
    No internet connection!
    `\n });\n }\n } catch (error) {\n console.error('Error sharing project:', error);\n }\n}\nwindow.screenshot = async () => {\n const iframe = document.getElementById('iframe');\n const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;\n\n try {\n await loadScripts([\n \"libraries/html2canvas/html2canvas.min.js\",\n \"libraries/jszip/FileSaver.min.js\"\n ]);\n \n html2canvas(iframeDocument.documentElement).then(canvas => {\n const context = canvas.getContext('2d');\n const videoElements = iframeDocument.getElementsByTagName('video');\n\n // Draw video elements\n Array.from(videoElements).forEach(video => {\n const { currentTime, paused, volume } = video;\n\n // Set volume to 0 for the screenshot process\n video.volume = 0;\n\n // Draw the video frame\n if (!paused) video.pause();\n context.drawImage(video, video.offsetLeft, video.offsetTop, video.clientWidth, video.clientHeight);\n\n // Restore the original volume and playback state\n video.volume = volume;\n video.currentTime = currentTime;\n if (!paused) video.play();\n });\n\n // Convert canvas to Blob\n canvas.toBlob(blob => {\n // Save the Blob using FileSaver.js\n saveAs(blob, 'screenshot.png');\n }, 'image/png');\n }).catch(error => {\n console.error('Error taking screenshot:', error);\n });\n } catch (error) {\n console.error('Error:', error);\n } finally {\n // Clean up scripts after use\n removeScript(\"../libraries/html2canvas/html2canvas.min.js\");\n removeScript(\"../libraries/jszip/FileSaver.min.js\");\n }\n}\nwindow.renderPreview = (forceRun = false) => {\n const iframe = document.getElementById('iframe');\n if (!iframe) return;\n\n let scriptTags = '';\n let cssTags = '';\n project.libraries.forEach(library => {\n if (library.endsWith('.js')) {\n scriptTags += `\\n `;\n } else if (library.endsWith('.css')) {\n cssTags += `\\n `;\n } else {\n cssTags += `\\n `;\n }\n });\n\n let css = json2css(project.css);\n\n const iframeSrc = `\n \n ${project.title}\n \n \n \n \n ${project.meta ? project.meta : ''}\n ${cssTags}\n \n ${scriptTags ? scriptTags : ''}\n \n \n\n${json2html(project.html)}\n \n \n`;\n\n // Create a new temporary iframe to compare\n const parser = new DOMParser();\n const doc = parser.parseFromString(iframeSrc, 'text/html');\n const idoc = iframe.contentDocument || iframe.contentWindow.document;\n\n if (forceRun) {\n iframe.setAttribute('srcdoc', iframeSrc);\n } else {\n diffNodes(idoc.documentElement, doc.documentElement);\n }\n}\nwindow.detectOperatingSystem = () => {\n const userAgent = navigator.userAgent || navigator.platform;\n\n // Check for Mac OS\n const isMac = /Macintosh|MacIntel|MacPPC|Mac68K/.test(userAgent);\n\n // Check for Windows\n const isWindows = /Win32|Win64|Windows|WinCE/.test(userAgent);\n\n // Check for Linux\n const isLinux = /Linux/.test(userAgent) && !isWindows;\n\n if (isMac) {\n return 'Mac';\n } else if (isWindows) {\n return 'Windows';\n } else if (isLinux) {\n return 'Linux';\n } else {\n return 'unknown';\n }\n}\n\n// Diffing algorithm to update ui when changes occur\nwindow.diffNodes = (oldNode, newNode) => {\n if (!oldNode || !newNode) {\n return;\n }\n\n // Skip nodes that are marked with `data-ignore-diff`\n if (oldNode?.getAttribute && oldNode.hasAttribute('data-ignore-diff')) {\n return;\n }\n\n // Check if nodes are iframe elements\n if (oldNode.nodeName === 'IFRAME' && newNode.nodeName === 'IFRAME') {\n const acceptableIframeAttributes = ['id', 'title', 'class', 'style', 'sandbox'];\n // Compare acceptable attributes only\n acceptableIframeAttributes.forEach(attr => {\n if (oldNode.getAttribute(attr) !== newNode.getAttribute(attr)) {\n oldNode.setAttribute(attr, newNode.getAttribute(attr));\n }\n });\n\n const oldSrcdoc = oldNode.getAttribute('srcdoc');\n const newSrcdoc = newNode.getAttribute('srcdoc');\n // Ignore srcdoc attribute if it hasn't changed\n if (oldSrcdoc === newSrcdoc) return;\n return;\n }\n\n // If nodes are different types, replace the old node\n if (oldNode.nodeName !== newNode.nodeName) {\n oldNode.replaceWith(newNode.cloneNode(true));\n // console.log('Different node names:', oldNode, newNode);\n return;\n }\n\n // Diff the attributes of the nodes\n if (oldNode.nodeType === Node.ELEMENT_NODE && newNode.nodeType === Node.ELEMENT_NODE) {\n const oldAttributes = Array.from(oldNode.attributes);\n const newAttributes = Array.from(newNode.attributes);\n\n // Remove old attributes not present in the new node\n oldAttributes.forEach(attr => {\n if (!newNode.hasAttribute(attr.name)) {\n oldNode.removeAttribute(attr.name);\n }\n });\n\n // Add or update attributes from the new node\n newAttributes.forEach(attr => {\n if (oldNode.getAttribute(attr.name) !== attr.value) {\n oldNode.setAttribute(attr.name, attr.value);\n }\n });\n }\n\n const oldChildren = Array.from(oldNode.childNodes);\n const newChildren = Array.from(newNode.childNodes);\n\n // Update or remove existing child nodes\n oldChildren.forEach((oldChild, index) => {\n const newChild = newChildren[index];\n if (!newChild) {\n oldNode.removeChild(oldChild);\n return;\n }\n // Special handling for elements\n if (oldNode.tagName === 'TITLE' || oldNode.tagName === 'STYLE' && oldNode.textContent !== newNode.textContent) {\n oldNode.textContent = newNode.textContent;\n } else if (oldChild.nodeType === Node.TEXT_NODE && oldChild.nodeValue !== newChild.nodeValue) {\n oldChild.nodeValue = newChild.nodeValue;\n }\n diffNodes(oldChild, newChild);\n });\n\n // Add new child nodes\n newChildren.slice(oldChildren.length).forEach(newChild => {\n oldNode.appendChild(newChild.cloneNode(true));\n });\n}\n\n// Once dom has loaded init functions\ndocument.addEventListener('DOMContentLoaded', function() {\n window.onload = () => {\n App.render('#app');\n getIFrameClientSize();\n // URL to the JSON file\n const jsonFileUrl = 'cssQuickCommands.json';\n\n // Apply the CSS quick commands\n applyCssQuickCommands(jsonFileUrl);\n\n // Set the state to true when the Command/Shift key is down\n window.onkeydown = e => {\n const activeElement = document.activeElement;\n \n // Check if the active element is not an input, textarea, or contenteditable\n const isNonEditable = !['INPUT', 'TEXTAREA'].includes(activeElement.tagName) &&\n activeElement.getAttribute('contenteditable') !== 'true';\n \n if (isNonEditable) {\n const os = detectOperatingSystem();\n const isCmdPressed = os === 'Mac' && e.metaKey;\n const isCtrlPressed = os !== 'Mac' && e.ctrlKey;\n const isModifierPressed = isCmdPressed || isCtrlPressed;\n const isShiftPressed = e.shiftKey || e.key === \"Shift\";\n const isZKeyPressed = e.key.toLowerCase() === 'z';\n \n // Handle shortcut actions\n const handleShortcut = action => {\n e.preventDefault();\n action();\n return false;\n };\n\n // Update key states\n data.ctrlKey = isCtrlPressed;\n data.cmdKey = isCmdPressed;\n \n if (isModifierPressed) {\n if (isZKeyPressed) {\n if (isShiftPressed) {\n return handleShortcut(redo);\n }\n return handleShortcut(undo);\n }\n \n if (e.key.toLowerCase() === 'd') return handleShortcut(cloneLayers);\n if (e.key.toLowerCase() === 'x') return handleShortcut(cutLayers);\n if (e.key.toLowerCase() === 'c') return handleShortcut(copyLayers);\n if (e.key.toLowerCase() === 'v') return handleShortcut(pasteLayers);\n if (isShiftPressed && e.key.toLowerCase() === 'p') return handleShortcut(commandPalette);\n if (isShiftPressed && isModifierPressed && e.key.toLowerCase() === 'a') return handleShortcut(clearAllSelections);\n }\n \n // Update shift key state\n if (isShiftPressed) data.shiftKey = true;\n \n // Handle Escape key to close dialogs\n if (e.key === 'Escape') {\n e.preventDefault();\n const dialog = document.querySelector('dialog[open]');\n if (dialog) dialog.querySelector('header > button').onclick();\n return false;\n }\n }\n \n // Handle Escape key in editable elements\n if (['INPUT', 'TEXTAREA'].includes(activeElement.tagName) ||\n activeElement.getAttribute('contenteditable') === 'true') {\n if (e.key === 'Escape') {\n e.preventDefault();\n const dialog = document.querySelector('dialog[open]');\n if (dialog) dialog.querySelector('header > button').onclick();\n activeElement.blur();\n return false;\n }\n }\n };\n\n // Set the state to false when the Command/Shift key is up\n window.onkeyup = e => {\n e.key === \"Shift\" && (data.shiftKey = false);\n if (e.key === \"Control\" || e.key === \"ControlLeft\" || e.key === \"ControlRight\") data.ctrlKey = false;\n if (e.key === \"Command\" || e.key === \"Meta\") data.cmdKey = false;\n }\n\n if (localStorage.getItem('Polyrise')) {\n importJSON(JSON.parse(localStorage.getItem('Polyrise')));\n }\n window.onresize = () => getIFrameClientSize();\n };\n});"], + "mappings": "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ACnB,UAAW,EACX,gBAAiB,GACjB,WAAY,CACV,YAAa,CACX,UAAW,CACT,8DACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,+EACA,mFACF,EACA,KAAM,EACR,EACA,MAAS,CACP,UAAW,CACT,sEACF,EACA,KAAM,EACR,EACA,WAAc,CACZ,UAAW,CACT,iFACA,8EACF,EACA,KAAM,EACR,EACA,YAAe,CACb,UAAW,CACT,mFACA,gFACF,EACA,KAAM,EACR,EACA,WAAY,CACV,UAAW,CACT,oEACA,sEACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,4EACA,0EACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,sEACF,EACA,KAAM,EACR,EACA,MAAS,CACP,UAAW,CACT,wEACA,sEACA,2EACF,EACA,KAAM,EACR,EACA,WAAY,CACV,UAAW,CACT,gEACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,wEACF,EACA,KAAM,EACR,EACA,mBAAoB,CAClB,UAAW,CACT,mFACA,gFACF,EACA,KAAM,EACR,EACA,SAAY,CACV,UAAW,CACT,yEACF,EACA,KAAM,EACR,EACA,YAAa,CACX,UAAW,CACT,sEACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,0EACF,EACA,KAAM,EACR,EACA,UAAa,CACX,UAAW,CACT,0EACF,EACA,KAAM,EACR,EACA,YAAa,CACX,UAAW,CACT,4EACF,EACA,KAAM,EACR,EACA,KAAQ,CACN,UAAW,CACT,2CACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,0EACF,EACA,KAAM,EACR,EACA,oBAAqB,CACnB,UAAW,CACT,2FACA,yFACF,EACA,KAAM,EACR,EACA,cAAe,CACb,UAAW,CACT,6EACA,2EACF,EACA,KAAM,EACR,EACA,IAAO,CACL,UAAW,CACT,2DACA,yDACF,EACA,KAAM,EACR,EACA,OAAU,CACR,UAAW,CACT,4EACA,0EACF,EACA,KAAM,EACR,EACA,WAAY,CACV,UAAW,CACT,oEACF,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", + "names": ["e", "o", "n", "t", "L", "i", "s", "p", "r", "a", "l", "c", "u", "h", "d", "m", "f", "v", "b", "y", "g", "_", "w", "A", "C", "$", "k", "S", "O", "E", "createProxy", "target", "callback", "path", "obj", "prop", "fullPath", "value", "oldValue", "app", "p", "id", "d", "icons", "SidebarIconCSS", "navIconCSS", "modalIconCSS", "property", "newValue", "propertyParts", "noRenderProps", "LeftMenubar", "buttonSize", "Menu", "menuDialog", "Settings", "frameworks", "sortedFrameworks", "acc", "key", "settingsHTML", "framework", "name", "library", "index", "globalAttributes", "eventAttributes", "commonEventGroup", "dragDropEventGroup", "eventGroups", "tagEventGroups", "combineEventGroups", "groups", "group", "generateEventMappings", "elementEventMappings", "combinedEvents", "tag", "specificAttributes", "areCommonLayerTags", "layers", "firstTag", "layer", "selectedLayers", "detectCommonLayerTags", "renderAttributeButtons", "attributes", "attr", "attributesModal", "specificAttributesForTag", "attrBtns", "LayerTree", "renderLayer", "children", "state", "hasChildren", "isVisible", "child", "Inspector", "findCommonLayerTags", "findCommonAttributes", "attributeCounts", "count", "buttonItemClass", "buttonAddItemClass", "RenameOrDeleteButtonClass", "selectClass", "selectStyle", "inputClass", "inputStyle", "textareaClass", "textareaStyle", "mediaClass", "languages", "sizeOptions", "booleanAttributes", "inputTypes", "numberAttributes", "stringAttributes", "commonLayerTag", "commonAttributes", "cssFixedValueProperties", "cssRangedValueProperties", "boxElements", "textElements", "breakElements", "renderBooleanAttribute", "renderInput", "type", "min", "max", "step", "renderTextarea", "generatePreviewSize", "option", "lang", "processStyles", "stylesObject", "selectorPrefix", "detect", "styles", "colorRegex", "complexProperties", "selector", "predefinedValues", "options", "val", "valueParts", "remainingParts", "gridColsClass", "part", "numericValue", "unitMatch", "unit", "validUnits", "selectElement", "unitOption", "rangeElement", "isColorProperty", "fallbackColor", "generateRootVariablesSection", "isColor", "isNumeric", "inputType", "generateStylesSection", "targets", "activeStyle", "layerKey", "dropdown", "buttonClass", "generatePseudosSection", "generateStylePropertiesSection", "styleKey", "stylesObj", "generateBreakpointsSection", "generateBreakpointStylesSection", "generateAnimationsSection", "generateAnimationPropertySection", "content", "keyframes", "activeKeyframe", "generateAttributesSection", "attributeTag", "svgImage", "element", "elm", "propKey", "lowerPropKey", "nodeType", "numAttr", "string", "numTypes", "numType", "editorNav", "large", "title", "CloseLabel", "ConfirmLabel", "onLoad", "onClose", "onConfirm", "hClass", "html", "modal", "timesBtn", "closeBtn", "confirmBtn", "btnClass", "blockItem", "componentItem", "block", "component", "modalContent", "container", "size", "viewportWidth", "viewportHeight", "previewElm", "width", "height", "doc", "oldPickers", "picker", "currentDoc", "newDoc", "pickers", "initialColor", "pickr", "color", "colorString", "onInputCode", "updatedCode", "newName", "defaultValues", "rootVariables", "fixedValueProperties", "rangedValueProperties", "rootVariableOptions", "fixedValuePropertyOptions", "rangedValuePropertyOptions", "propertyTypeSelect", "unitSelect", "unitSection", "updatePropertyDetails", "selectedType", "propertyTypeInput", "noUnit", "cssQuickCommands", "propertyString", "propertyType", "userDefinedValue", "str", "quickPropertyType", "quickUserDefinedValue", "finalValue", "defaultValue", "e", "query", "found", "currentValue", "detected", "pseudo", "pseudoSelector", "pseudoStyles", "rule", "s", "existingPseudo", "oldName", "style", "pseudoIndex", "url", "response", "error", "incrementPattern", "attrs", "q", "incrementValues", "attribute", "baseValue", "increment", "input", "elementToJson", "noTextElements", "tagName", "props", "jsonToElement", "json", "renderElement", "escapeHtml", "childElement", "text", "map", "m", "beautifyHtml", "tab", "result", "indent", "css", "importRegex", "importMatch", "importUrl", "keyframesRegex", "mediaQueryRegex", "selectorRegex", "decodeURIComponentSafe", "processSelector", "properties", "varName", "varValue", "pseudoMatch", "baseSelector", "currentTarget", "pseudoObj", "propertyRegex", "match", "urlRegex", "urlMatch", "urlContent", "processRules", "cssRules", "processKeyframes", "keyframesName", "keyframesRules", "segment", "keyframeName", "propertiesPart", "keyframesMatch", "mediaMatch", "mediaCondition", "mediaRules", "mediaTarget", "cssWithoutMedia", "symbol", "semicolon", "openBrace", "closeBrace", "containCssVar", "indentLevel", "innerCss", "variables", "baseStyles", "pseudos", "variable", "childSelector", "childStyle", "processAnimations", "animations", "animationCss", "animationName", "animation", "keyframe", "processBreakpoints", "breakpoints", "breakpointCss", "breakpoint", "classId", "containcssVar", "innercss", "animationCSS", "breakpointCSS", "existingJSON", "newJSON", "stylesheet", "className", "declarations", "currentState", "stateString", "previousState", "nextState", "selection", "code", "item", "suggestions", "src", "script", "scripts", "scriptUrl", "resolve", "reject", "scriptElement", "srcArray", "queriesString", "replaceSelection", "queries", "handleSpecialCommand", "command", "matchesPseudoClass", "pseudoClass", "total", "selectLayersRecursive", "activeCalls", "processLayers", "pseudoClassPart", "classNames", "attributeMatch", "classMatches", "matchResult", "layerClasses", "targetChildrenOfSelections", "processQuery", "equalsIndex", "currentIDs", "layerId", "targetLayer", "parentLayer", "findLayerAndParent", "parent", "i", "applyCollapseStateToSiblings", "collapseState", "newCollapseState", "collapseLayer", "hideLayer", "applyVisibilityToSiblings", "visibilityState", "newVisibilityState", "applySelectionToSiblings", "selectionState", "childIndex", "newSelectionState", "findLayerById", "lastSelectedLayerId", "foundLayer", "searchLayer", "j", "excludeId", "assignIds", "blocks", "newBlocks", "parentBlock", "newBlock", "l", "cloneCount", "clonedLayer", "rootLayer", "pastedLayers", "initIncrement", "searchField", "handleSearch", "results", "displayResults", "resultsContainer", "uniqueId", "audioHTML", "searchInput", "searchBtn", "audio", "event", "file", "svgCode", "base64String", "icon", "hosts", "searchUrl", "display", "apiConnection", "descriptionElement", "searchElement", "iconResults", "selectedSvg", "iconResultsElement", "iconUrl", "svgContent", "iconDiv", "selectedSvgElement", "existingNames", "comp", "clone", "newHtml", "commands", "buttonsHtml", "guide", "versionParts", "iframe", "fadeTimeout", "scale", "reader", "data", "c", "names", "registrations", "registration", "cookie", "cookieName", "fileName", "fileExtension", "fileType", "isBase64", "getBase64FileType", "mimeMatch", "mimeType", "mimeTypeToExtension", "getFileName", "getBase64FileName", "fileCounter", "extractBackgroundImageUrls", "urls", "regex", "imageResources", "body", "audioResources", "vectorResources", "videoResources", "img", "srcset", "source", "svg", "video", "mediaUrl", "blob", "frameStyles", "breakpointStyles", "colorMappings", "updateBorderColors", "updatedData", "colorKey", "filename", "fileContent", "minified", "idoc", "zip", "kodeWeaveProject", "licenseStr", "READMEStr", "cssContent", "cssBuildItems", "cssBuildItemsString", "TailwindNoReset", "promises", "parts", "cssBuild", "css4html", "twFound", "tailwindDirectives", "tailwindStyles", "cssImport", "combinedStyles", "postcssConfig", "npmJSON", "base64Logo", "logoType", "logoFileName", "sizes", "createResizedImage", "canvas", "ctx", "base64Image", "swinit", "swjs", "audioFolder", "base64Audio", "svgFolder", "videoFolder", "base64Video", "scriptTags", "cssTags", "testHtmlContent", "indexHtmlContentCompiled", "scriptsToRemove", "shareProject", "lib", "form", "iframeDocument", "context", "videoElements", "currentTime", "paused", "volume", "forceRun", "iframeSrc", "userAgent", "isMac", "isWindows", "isLinux", "oldNode", "newNode", "oldSrcdoc", "newSrcdoc", "oldAttributes", "newAttributes", "oldChildren", "newChildren", "oldChild", "newChild", "activeElement", "os", "isCmdPressed", "isCtrlPressed", "isModifierPressed", "isShiftPressed", "isZKeyPressed", "handleShortcut", "action", "dialog"] } diff --git a/dist/style.css b/dist/style.css index 8ecfea8..217d4aa 100644 --- a/dist/style.css +++ b/dist/style.css @@ -1 +1 @@ -@charset "UTF-8";:root{--pico-font-family-emoji:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--pico-font-family-sans-serif:system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif,var(--pico-font-family-emoji);--pico-font-family-monospace:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace,var(--pico-font-family-emoji);--pico-font-family:var(--pico-font-family-sans-serif);--pico-line-height:1.5;--pico-font-weight:400;--pico-font-size:100%;--pico-text-underline-offset:0.1rem;--pico-border-radius:0.25rem;--pico-border-width:0.0625rem;--pico-outline-width:0.125rem;--pico-transition:0.2s ease-in-out;--pico-spacing:1rem;--pico-typography-spacing-vertical:1rem;--pico-block-spacing-vertical:var(--pico-spacing);--pico-block-spacing-horizontal:var(--pico-spacing);--pico-form-element-spacing-vertical:0.75rem;--pico-form-element-spacing-horizontal:1rem;--pico-group-box-shadow:0 0 0 transparent;--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-primary-focus);--pico-group-box-shadow-focus-with-input:0 0 0 0.0625rem var(--pico-form-element-border-color);--pico-modal-overlay-backdrop-filter:blur(0.375rem);--pico-nav-element-spacing-vertical:1rem;--pico-nav-element-spacing-horizontal:0.5rem;--pico-nav-link-spacing-vertical:0.5rem;--pico-nav-link-spacing-horizontal:0.5rem;--pico-nav-breadcrumb-divider:">";--pico-icon-checkbox:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23FFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-minus:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23FFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");--pico-icon-chevron:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--pico-icon-date:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='18' height='18' x='3' y='4' rx='2' ry='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");--pico-icon-time:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");--pico-icon-search:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");--pico-icon-close:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='3'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");--pico-icon-loading:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cstyle%3E@keyframes rotate{0%25{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes dash{0%25{stroke-dasharray:1,100;stroke-dashoffset:0}50%25{stroke-dasharray:44.5,100;stroke-dashoffset:-17.5}to{stroke-dasharray:44.5,100;stroke-dashoffset:-62}}%3C/style%3E%3Cg style='animation:rotate 2s linear infinite;transform-origin:center center'%3E%3Ccircle cx='12' cy='12' r='10' stroke='%238891A4' stroke-width='4' style='stroke-dasharray:75,100;stroke-dashoffset:-5;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round'/%3E%3C/g%3E%3C/svg%3E")}@media (min-width:576px){:root{--pico-font-size:106.25%}}@media (min-width:768px){:root{--pico-font-size:112.5%}}@media (min-width:1024px){:root{--pico-font-size:118.75%}}@media (min-width:1280px){:root{--pico-font-size:125%}}@media (min-width:1536px){:root{--pico-font-size:131.25%}}a{--pico-text-decoration:underline}small{--pico-font-size:0.875em}h1,h2,h3,h4,h5,h6{--pico-font-weight:700}h1{--pico-font-size:2rem;--pico-line-height:1.125;--pico-typography-spacing-top:3rem}h2{--pico-font-size:1.75rem;--pico-line-height:1.15;--pico-typography-spacing-top:2.625rem}h3{--pico-font-size:1.5rem;--pico-line-height:1.175;--pico-typography-spacing-top:2.25rem}h4{--pico-font-size:1.25rem;--pico-line-height:1.2;--pico-typography-spacing-top:1.874rem}h5{--pico-font-size:1.125rem;--pico-line-height:1.225;--pico-typography-spacing-top:1.6875rem}h6{--pico-font-size:1rem;--pico-line-height:1.25;--pico-typography-spacing-top:1.5rem}tfoot td,tfoot th,thead td,thead th{--pico-font-weight:600;--pico-border-width:0.1875rem}code,kbd,pre,samp{--pico-font-family:var(--pico-font-family-monospace)}kbd{--pico-font-weight:bolder}:where(select,textarea),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-outline-width:0.0625rem}[type=search]{--pico-border-radius:5rem}[type=checkbox],[type=radio]{--pico-border-width:0.125rem}[type=checkbox][role=switch]{--pico-border-width:0.1875rem}[role=search]{--pico-border-radius:5rem}[role=group] [role=button],[role=group] [type=button],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=submit],[role=search] button{--pico-form-element-spacing-horizontal:2rem}details summary[role=button]:after{filter:brightness(0) invert(1)}[aria-busy=true]:not(input,select,textarea):is(button,[type=submit],[type=button],[type=reset],[role=button]):before{filter:brightness(0) invert(1)}:root:not([data-theme=dark]),[data-theme=light]{--pico-background-color:#fff;--pico-color:#373c44;--pico-text-selection-color:rgba(2,154,232,.25);--pico-muted-color:#646b79;--pico-muted-border-color:#e7eaf0;--pico-primary:#0172ad;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(1,114,173,.5);--pico-primary-hover:#015887;--pico-primary-hover-background:#02659a;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(2,154,232,.5);--pico-primary-inverse:#fff;--pico-secondary:#5d6b89;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(93,107,137,.5);--pico-secondary-hover:#48536b;--pico-secondary-hover-background:#48536b;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(93,107,137,.25);--pico-secondary-inverse:#fff;--pico-contrast:#181c25;--pico-contrast-background:#181c25;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(24,28,37,.5);--pico-contrast-hover:#000;--pico-contrast-hover-background:#000;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-secondary-hover);--pico-contrast-focus:rgba(93,107,137,.25);--pico-contrast-inverse:#fff;--pico-box-shadow:0.0145rem 0.029rem 0.174rem rgba(129,145,181,.017),0.0335rem 0.067rem 0.402rem rgba(129,145,181,.024),0.0625rem 0.125rem 0.75rem rgba(129,145,181,.03),0.1125rem 0.225rem 1.35rem rgba(129,145,181,.036),0.2085rem 0.417rem 2.502rem rgba(129,145,181,.043),0.5rem 1rem 6rem rgba(129,145,181,.06),0 0 0 0.0625rem rgba(129,145,181,.015);--pico-h1-color:#2d3138;--pico-h2-color:#373c44;--pico-h3-color:#424751;--pico-h4-color:#4d535e;--pico-h5-color:#5c6370;--pico-h6-color:#646b79;--pico-mark-background-color:#fde7c0;--pico-mark-color:#0f1114;--pico-ins-color:#1d6a54;--pico-del-color:#883935;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 transparent;--pico-button-hover-box-shadow:0 0 0 transparent;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111,120,135,.038);--pico-code-background-color:#f3f5f7;--pico-code-color:#646b79;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#fbfcfc;--pico-form-element-selected-background-color:#dfe3eb;--pico-form-element-border-color:#cfd5e2;--pico-form-element-color:#23262c;--pico-form-element-placeholder-color:var(--pico-muted-color);--pico-form-element-active-background-color:#fff;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:0.5;--pico-form-element-invalid-border-color:#b86a6b;--pico-form-element-invalid-active-border-color:#c84f48;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#4c9b8a;--pico-form-element-valid-active-border-color:#279977;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#bfc7d9;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 transparent;--pico-range-border-color:#dfe3eb;--pico-range-active-border-color:#bfc7d9;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:var(--pico-background-color);--pico-card-border-color:var(--pico-muted-border-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#fbfcfc;--pico-loading-spinner-opacity:0.5;--pico-modal-overlay-background-color:rgba(232,234,237,.75);--pico-progress-background-color:#dfe3eb;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%234C9B8A' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23C84F48' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");color-scheme:light}:root:not([data-theme=dark]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]),[data-theme=light] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}@media only screen and (prefers-color-scheme:dark){:root:not([data-theme]){--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(1,170,255,.188);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#01aaff;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(1,170,255,.5);--pico-primary-hover:#79c0ff;--pico-primary-hover-background:#017fc0;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(1,170,255,.375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150,158,175,.5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144,158,190,.25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223,227,235,.5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207,213,226,.25);--pico-contrast-inverse:#000;--pico-box-shadow:0.0145rem 0.029rem 0.174rem rgba(7,9,12,.017),0.0335rem 0.067rem 0.402rem rgba(7,9,12,.024),0.0625rem 0.125rem 0.75rem rgba(7,9,12,.03),0.1125rem 0.225rem 1.35rem rgba(7,9,12,.036),0.2085rem 0.417rem 2.502rem rgba(7,9,12,.043),0.5rem 1rem 6rem rgba(7,9,12,.06),0 0 0 0.0625rem rgba(7,9,12,.015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 transparent;--pico-button-hover-box-shadow:0 0 0 transparent;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111,120,135,.038);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:0.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 transparent;--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-loading-spinner-opacity:0.5;--pico-modal-overlay-background-color:rgba(8,9,10,.75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%232A7B6F' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23964A50' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");color-scheme:dark}:root:not([data-theme]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}}[data-theme=dark]{--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(1,170,255,.188);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#01aaff;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(1,170,255,.5);--pico-primary-hover:#79c0ff;--pico-primary-hover-background:#017fc0;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(1,170,255,.375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150,158,175,.5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144,158,190,.25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223,227,235,.5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207,213,226,.25);--pico-contrast-inverse:#000;--pico-box-shadow:0.0145rem 0.029rem 0.174rem rgba(7,9,12,.017),0.0335rem 0.067rem 0.402rem rgba(7,9,12,.024),0.0625rem 0.125rem 0.75rem rgba(7,9,12,.03),0.1125rem 0.225rem 1.35rem rgba(7,9,12,.036),0.2085rem 0.417rem 2.502rem rgba(7,9,12,.043),0.5rem 1rem 6rem rgba(7,9,12,.06),0 0 0 0.0625rem rgba(7,9,12,.015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 transparent;--pico-button-hover-box-shadow:0 0 0 transparent;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111,120,135,.038);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:0.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 transparent;--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-loading-spinner-opacity:0.5;--pico-modal-overlay-background-color:rgba(8,9,10,.75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%232A7B6F' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23964A50' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");color-scheme:dark}[data-theme=dark] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}[type=checkbox],[type=radio],[type=range],progress{accent-color:var(--pico-primary)}*,:after,:before{background-repeat:no-repeat;box-sizing:border-box}:after,:before{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--pico-background-color);color:var(--pico-color);font-family:var(--pico-font-family);font-size:var(--pico-font-size);font-weight:var(--pico-font-weight);line-height:var(--pico-line-height);overflow-wrap:break-word;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-rendering:optimizeLegibility;text-underline-offset:var(--pico-text-underline-offset)}body{margin:0;width:100%}main{display:block}body>footer,body>header,body>main{margin-left:auto;margin-right:auto;padding:var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);width:100%}@media (min-width:576px){body>footer,body>header,body>main{max-width:510px;padding-left:0;padding-right:0}}@media (min-width:768px){body>footer,body>header,body>main{max-width:700px}}@media (min-width:1024px){body>footer,body>header,body>main{max-width:950px}}@media (min-width:1280px){body>footer,body>header,body>main{max-width:1200px}}@media (min-width:1536px){body>footer,body>header,body>main{max-width:1450px}}section{margin-bottom:var(--pico-block-spacing-vertical)}b,strong{font-weight:bolder}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,ol,p,pre,table,ul{font-style:normal}address,blockquote,dl,h1,h2,h3,h4,h5,h6,ol,p,pre,table,ul{color:var(--pico-color);font-weight:var(--pico-font-weight);margin-bottom:var(--pico-typography-spacing-vertical);margin-top:0}h1,h2,h3,h4,h5,h6{font-family:var(--pico-font-family);font-size:var(--pico-font-size);line-height:var(--pico-line-height)}h1{--pico-color:var(--pico-h1-color)}h2{--pico-color:var(--pico-h2-color)}h3{--pico-color:var(--pico-h3-color)}h4{--pico-color:var(--pico-h4-color)}h5{--pico-color:var(--pico-h5-color)}h6{--pico-color:var(--pico-h6-color)}:where(article,address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--pico-typography-spacing-top)}hgroup,p{margin-bottom:var(--pico-typography-spacing-vertical)}hgroup>*{margin-bottom:0;margin-top:0}hgroup>:not(:first-child):last-child{--pico-color:var(--pico-muted-color);--pico-font-weight:unset;font-size:1rem}:where(ol,ul) li{margin-bottom:calc(var(--pico-typography-spacing-vertical)*.25)}:where(dl,ol,ul) :where(dl,ol,ul){margin:0;margin-top:calc(var(--pico-typography-spacing-vertical)*.25)}ul li{list-style:square}mark{background-color:var(--pico-mark-background-color);color:var(--pico-mark-color);padding:.125rem .25rem;vertical-align:baseline}blockquote{border-inline-end:none;border-inline-start:.25rem solid var(--pico-blockquote-border-color);border-left:.25rem solid var(--pico-blockquote-border-color);border-right:none;display:block;margin:var(--pico-typography-spacing-vertical) 0;padding:var(--pico-spacing)}blockquote footer{color:var(--pico-blockquote-footer-color);margin-top:calc(var(--pico-typography-spacing-vertical)*.5)}abbr[title]{border-bottom:1px dotted;cursor:help}abbr[title],ins{text-decoration:none}ins{color:var(--pico-ins-color)}del{color:var(--pico-del-color)}::-moz-selection{background-color:var(--pico-text-selection-color)}::selection{background-color:var(--pico-text-selection-color)}:where(a:not([role=button])),[role=link]{--pico-color:var(--pico-primary);--pico-background-color:transparent;--pico-underline:var(--pico-primary-underline);background-color:var(--pico-background-color);color:var(--pico-color);outline:0;-webkit-text-decoration:var(--pico-text-decoration);text-decoration:var(--pico-text-decoration);text-decoration-color:var(--pico-underline);text-underline-offset:.125em;transition:background-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition)}:where(a:not([role=button])):is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-primary-hover);--pico-underline:var(--pico-primary-hover-underline);--pico-text-decoration:underline}:where(a:not([role=button])):focus-visible,[role=link]:focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}a[role=button]{display:inline-block}button{font-family:inherit;margin:0;overflow:visible;text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[role=button],[type=button],[type=file]::file-selector-button,[type=reset],[type=submit],button{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);--pico-color:var(--pico-primary-inverse);--pico-box-shadow:var(--pico-button-box-shadow,0 0 0 transparent);background-color:var(--pico-background-color);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);box-shadow:var(--pico-box-shadow);color:var(--pico-color);cursor:pointer;font-size:1rem;font-weight:var(--pico-font-weight);line-height:var(--pico-line-height);outline:0;padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);text-align:center;text-decoration:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition);-webkit-user-select:none;-moz-user-select:none;user-select:none}[role=button]:is(:hover,:active,:focus),[role=button]:is([aria-current]:not([aria-current=false])),[type=button]:is(:hover,:active,:focus),[type=button]:is([aria-current]:not([aria-current=false])),[type=file]::file-selector-button:is(:hover,:active,:focus),[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])),[type=reset]:is(:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false])),[type=submit]:is(:hover,:active,:focus),[type=submit]:is([aria-current]:not([aria-current=false])),button:is(:hover,:active,:focus),button:is([aria-current]:not([aria-current=false])){--pico-background-color:var(--pico-primary-hover-background);--pico-border-color:var(--pico-primary-hover-border);--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent);--pico-color:var(--pico-primary-inverse)}[role=button]:focus,[role=button]:is([aria-current]:not([aria-current=false])):focus,[type=button]:focus,[type=button]:is([aria-current]:not([aria-current=false])):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus,[type=reset]:focus,[type=reset]:is([aria-current]:not([aria-current=false])):focus,[type=submit]:focus,[type=submit]:is([aria-current]:not([aria-current=false])):focus,button:focus,button:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent),0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}[type=button],[type=reset],[type=submit]{margin-bottom:var(--pico-spacing)}[type=file]::file-selector-button,[type=reset]{--pico-background-color:var(--pico-secondary-background);--pico-border-color:var(--pico-secondary-border);--pico-color:var(--pico-secondary-inverse);cursor:pointer}[type=file]::file-selector-button:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border);--pico-color:var(--pico-secondary-inverse)}[type=file]::file-selector-button:focus,[type=reset]:focus{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}:where(button,[type=submit],[type=reset],[type=button],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]){opacity:.5;pointer-events:none}:where(table){border-collapse:collapse;border-spacing:0;text-indent:0;width:100%}td,th{background-color:var(--pico-background-color);border-bottom:var(--pico-border-width) solid var(--pico-table-border-color);color:var(--pico-color);font-weight:var(--pico-font-weight);padding:calc(var(--pico-spacing)/2) var(--pico-spacing);text-align:left;text-align:start}tfoot td,tfoot th{border-bottom:0;border-top:var(--pico-border-width) solid var(--pico-table-border-color)}table.striped tbody tr:nth-child(odd) td,table.striped tbody tr:nth-child(odd) th{background-color:var(--pico-table-row-stripped-background-color)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{border-style:none;height:auto;max-width:100%}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:var(--pico-font-family);font-size:.875em}pre code{font-family:inherit;font-size:inherit}pre{-ms-overflow-style:scrollbar;overflow:auto}code,kbd,pre{background:var(--pico-code-background-color);border-radius:var(--pico-border-radius);color:var(--pico-code-color);font-weight:var(--pico-font-weight);line-height:normal}code,kbd{display:inline-block;padding:.375rem}pre{margin-bottom:var(--pico-spacing);overflow-x:auto}pre,pre>code{display:block}pre>code{background:0 0;line-height:var(--pico-line-height);padding:var(--pico-spacing)}kbd{background-color:var(--pico-code-kbd-background-color);color:var(--pico-code-kbd-color);vertical-align:baseline}figure{display:block;margin:0;padding:0}figure figcaption{color:var(--pico-muted-color);padding:calc(var(--pico-spacing)*.5) 0}hr{border:0;border-top:1px solid var(--pico-muted-border-color);color:inherit;height:0;margin:var(--pico-typography-spacing-vertical) 0}[hidden],template{display:none!important}canvas{display:inline-block}input,optgroup,select,textarea{font-family:inherit;font-size:1rem;letter-spacing:inherit;line-height:var(--pico-line-height);margin:0}input{overflow:visible}select{text-transform:none}legend{color:inherit;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:0}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{border-width:0;padding:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem*var(--pico-line-height) + var(--pico-form-element-spacing-vertical)*2 + var(--pico-border-width)*2)}fieldset{border:0;margin:0;margin-bottom:var(--pico-spacing);padding:0;width:100%}fieldset legend,label{color:var(--pico-color);display:block;font-weight:var(--pico-form-label-font-weight,var(--pico-font-weight));margin-bottom:calc(var(--pico-spacing)*.375)}fieldset legend{margin-bottom:calc(var(--pico-spacing)*.5)}button[type=submit],input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal)}input,select,textarea{--pico-background-color:var(--pico-form-element-background-color);--pico-border-color:var(--pico-form-element-border-color);--pico-color:var(--pico-form-element-color);--pico-box-shadow:none;background-color:var(--pico-background-color);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);outline:0;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus){--pico-background-color:var(--pico-form-element-active-background-color)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus){--pico-border-color:var(--pico-form-element-active-border-color)}:where(select,textarea):not([readonly]):focus,input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus{--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea),input:not([type=submit],[type=button],[type=reset])[disabled],label[aria-disabled=true],select[disabled],textarea[disabled]{opacity:var(--pico-form-element-disabled-opacity);pointer-events:none}label[aria-disabled=true] input[disabled]{opacity:1}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid]{background-position:center right .75rem;background-repeat:no-repeat;background-size:1rem auto;padding-left:var(--pico-form-element-spacing-horizontal);padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;padding-inline-start:var(--pico-form-element-spacing-horizontal)!important}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=false]:not(select){background-image:var(--pico-icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=true]:not(select){background-image:var(--pico-icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--pico-border-color:var(--pico-form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--pico-border-color:var(--pico-form-element-valid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color)!important}:where(input,select,textarea)[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--pico-border-color:var(--pico-form-element-invalid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color)!important}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::-webkit-input-placeholder,input::placeholder,select:invalid,textarea::-webkit-input-placeholder,textarea::placeholder{color:var(--pico-form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--pico-spacing)}select::-ms-expand{background-color:transparent;border:0}select:not([multiple],[size]){background-image:var(--pico-icon-chevron);background-position:center right .75rem;background-repeat:no-repeat;background-size:1rem auto;padding-left:var(--pico-form-element-spacing-horizontal);padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);padding-inline-start:var(--pico-form-element-spacing-horizontal)}select[multiple] option:checked{background:var(--pico-form-element-selected-background-color);color:var(--pico-form-element-color)}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}textarea{display:block;resize:vertical}textarea[aria-invalid]{--pico-icon-height:calc(1rem*var(--pico-line-height) + var(--pico-form-element-spacing-vertical)*2 + var(--pico-border-width)*2);background-position:top right .75rem!important;background-size:1rem var(--pico-icon-height)!important}:where(input,select,textarea,fieldset)+small{color:var(--pico-muted-color);display:block;margin-bottom:var(--pico-spacing);margin-top:calc(var(--pico-spacing)*-.75);width:100%}:where(input,select,textarea,fieldset)[aria-invalid=false]+small{color:var(--pico-ins-color)}:where(input,select,textarea,fieldset)[aria-invalid=true]+small{color:var(--pico-del-color)}label>:where(input,select,textarea){margin-top:calc(var(--pico-spacing)*.25)}label:has([type=checkbox],[type=radio]){cursor:pointer;width:-moz-fit-content;width:fit-content}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:var(--pico-border-width);cursor:pointer;height:1.25em;margin-top:-.125em;margin-inline-end:.5em;vertical-align:middle;width:1.25em}[type=checkbox]::-ms-check,[type=radio]::-ms-check{display:none}[type=checkbox]:checked,[type=checkbox]:checked:active,[type=checkbox]:checked:focus,[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-checkbox);background-position:50%;background-repeat:no-repeat;background-size:.75em auto}[type=checkbox]~label,[type=radio]~label{cursor:pointer;display:inline-block;margin-bottom:0}[type=checkbox]~label:not(:last-of-type),[type=radio]~label:not(:last-of-type){margin-inline-end:1em}[type=checkbox]:indeterminate{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-minus);background-position:50%;background-repeat:no-repeat;background-size:.75em auto}[type=radio]{border-radius:50%}[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-inverse);background-image:none;border-width:.35em}[type=checkbox][role=switch]{--pico-background-color:var(--pico-switch-background-color);--pico-color:var(--pico-switch-color);background-color:var(--pico-background-color);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:1.25em;height:1.25em;line-height:1.25em;width:2.25em}[type=checkbox][role=switch]:not([aria-invalid]){--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:before{aspect-ratio:1;background-color:var(--pico-color);border-radius:50%;box-shadow:var(--pico-switch-thumb-box-shadow);content:"";display:block;height:100%;transition:margin .1s ease-in-out}[type=checkbox][role=switch]:focus{--pico-background-color:var(--pico-switch-background-color);--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:checked{--pico-background-color:var(--pico-switch-checked-background-color);--pico-border-color:var(--pico-switch-checked-background-color);background-image:none}[type=checkbox][role=switch]:checked:before{margin-inline-start:1em}[type=checkbox][role=switch][disabled]{--pico-background-color:var(--pico-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus{--pico-background-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true]{--pico-background-color:var(--pico-form-element-invalid-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus,[type=radio][aria-invalid=false]:checked,[type=radio][aria-invalid=false]:checked:active,[type=radio][aria-invalid=false]:checked:focus{--pico-border-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true],[type=radio]:checked:active[aria-invalid=true],[type=radio]:checked:focus[aria-invalid=true],[type=radio]:checked[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}[type=color]::-webkit-color-swatch-wrapper{padding:0}[type=color]::-moz-focus-inner{padding:0}[type=color]::-webkit-color-swatch{border:0;border-radius:calc(var(--pico-border-radius)*.5)}[type=color]::-moz-color-swatch{border:0;border-radius:calc(var(--pico-border-radius)*.5)}input:not([type=checkbox],[type=radio],[type=range],[type=file]):is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){--pico-icon-position:0.75rem;--pico-icon-width:1rem;background-image:var(--pico-icon-date);background-position:center right var(--pico-icon-position);background-repeat:no-repeat;background-size:var(--pico-icon-width) auto;padding-right:calc(var(--pico-icon-width) + var(--pico-icon-position))}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=time]{background-image:var(--pico-icon-time)}[type=date]::-webkit-calendar-picker-indicator,[type=datetime-local]::-webkit-calendar-picker-indicator,[type=month]::-webkit-calendar-picker-indicator,[type=time]::-webkit-calendar-picker-indicator,[type=week]::-webkit-calendar-picker-indicator{margin-left:var(--pico-icon-position);margin-right:calc(var(--pico-icon-width)*-1);opacity:0;width:var(--pico-icon-width)}@-moz-document url-prefix(){[type=date],[type=datetime-local],[type=month],[type=time],[type=week]{background-image:none!important;padding-right:var(--pico-form-element-spacing-horizontal)!important}}[dir=rtl] :is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){text-align:right}[type=file]{--pico-color:var(--pico-muted-color);background:0 0;border:0;border-radius:0;margin-left:calc(var(--pico-outline-width)*-1);padding:calc(var(--pico-form-element-spacing-vertical)*.5) 0;padding-left:var(--pico-outline-width)}[type=file]::file-selector-button{margin-right:calc(var(--pico-spacing)/2);padding:calc(var(--pico-form-element-spacing-vertical)*.5) var(--pico-form-element-spacing-horizontal)}[type=file]:is(:hover,:active,:focus)::file-selector-button{--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border)}[type=file]:focus::file-selector-button{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;height:1.25rem;width:100%}[type=range]::-webkit-slider-runnable-track{background-color:var(--pico-range-border-color);border-radius:var(--pico-border-radius);height:.375rem;-webkit-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition);width:100%}[type=range]::-moz-range-track{background-color:var(--pico-range-border-color);border-radius:var(--pico-border-radius);height:.375rem;-moz-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition);width:100%}[type=range]::-ms-track{background-color:var(--pico-range-border-color);border-radius:var(--pico-border-radius);height:.375rem;-ms-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition);width:100%}[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background-color:var(--pico-range-thumb-color);border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;cursor:pointer;height:1.25rem;margin-top:-.4375rem;-webkit-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);width:1.25rem}[type=range]::-moz-range-thumb{-webkit-appearance:none;background-color:var(--pico-range-thumb-color);border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;cursor:pointer;height:1.25rem;margin-top:-.4375rem;-moz-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);width:1.25rem}[type=range]::-ms-thumb{-webkit-appearance:none;background-color:var(--pico-range-thumb-color);border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;cursor:pointer;height:1.25rem;margin-top:-.4375rem;-ms-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);width:1.25rem}[type=range]:active,[type=range]:focus-within{--pico-range-border-color:var(--pico-range-active-border-color);--pico-range-thumb-color:var(--pico-range-thumb-active-color)}[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}[type=range]:active::-moz-range-thumb{transform:scale(1.25)}[type=range]:active::-ms-thumb{transform:scale(1.25)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-image:var(--pico-icon-search);background-position:center left calc(var(--pico-form-element-spacing-horizontal) + .125rem);background-repeat:no-repeat;background-size:1rem auto;padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:center left 1.125rem,center right .75rem;padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)!important}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=false]{background-image:var(--pico-icon-search),var(--pico-icon-valid)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=true]{background-image:var(--pico-icon-search),var(--pico-icon-invalid)}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-position:center right 1.125rem}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:center right 1.125rem,center left .75rem}details{display:block;margin-bottom:var(--pico-spacing)}details summary{cursor:pointer;line-height:1rem;list-style-type:none;transition:color var(--pico-transition)}details summary:not([role]){color:var(--pico-accordion-close-summary-color)}details summary::-webkit-details-marker{display:none}details summary::marker{display:none}details summary::-moz-list-bullet{list-style-type:none}details summary:after{background-image:var(--pico-icon-chevron);background-position:100%;background-repeat:no-repeat;background-size:1rem auto;content:"";display:block;float:right;height:1rem;margin-inline-start:calc(var(--pico-spacing,1rem)*.5);transform:rotate(-90deg);transition:transform var(--pico-transition);width:1rem}details summary:focus{outline:0}details summary:focus:not([role]){color:var(--pico-accordion-active-summary-color)}details summary:focus-visible:not([role]){color:var(--pico-primary);outline:var(--pico-outline-width) solid var(--pico-primary-focus);outline-offset:calc(var(--pico-spacing,1rem)*.5)}details summary[role=button]{text-align:left;width:100%}details summary[role=button]:after{height:calc(1rem*var(--pico-line-height,1.5))}details[open]>summary{margin-bottom:var(--pico-spacing)}details[open]>summary:not([role]):not(:focus){color:var(--pico-accordion-open-summary-color)}details[open]>summary:after{transform:rotate(0)}[dir=rtl] details summary{text-align:right}[dir=rtl] details summary:after{background-position:0;float:left}article{background:var(--pico-card-background-color);border-radius:var(--pico-border-radius);box-shadow:var(--pico-card-box-shadow);margin-bottom:var(--pico-block-spacing-vertical);padding:var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal)}article>footer,article>header{background-color:var(--pico-card-sectioning-background-color);margin-left:calc(var(--pico-block-spacing-horizontal)*-1);margin-right:calc(var(--pico-block-spacing-horizontal)*-1);padding:calc(var(--pico-block-spacing-vertical)*.66) var(--pico-block-spacing-horizontal)}article>header{border-bottom:var(--pico-border-width) solid var(--pico-card-border-color);border-top-left-radius:var(--pico-border-radius);border-top-right-radius:var(--pico-border-radius);margin-bottom:var(--pico-block-spacing-vertical);margin-top:calc(var(--pico-block-spacing-vertical)*-1)}article>footer{border-bottom-left-radius:var(--pico-border-radius);border-bottom-right-radius:var(--pico-border-radius);border-top:var(--pico-border-width) solid var(--pico-card-border-color);margin-bottom:calc(var(--pico-block-spacing-vertical)*-1);margin-top:var(--pico-block-spacing-vertical)}[role=group],[role=search]{border-radius:var(--pico-border-radius);box-shadow:var(--pico-group-box-shadow,0 0 0 transparent);display:inline-flex;margin-bottom:var(--pico-spacing);position:relative;transition:box-shadow var(--pico-transition);vertical-align:middle;width:100%}[role=group] input:not([type=checkbox],[type=radio]),[role=group] select,[role=group]>*,[role=search] input:not([type=checkbox],[type=radio]),[role=search] select,[role=search]>*{flex:1 1 auto;margin-bottom:0;position:relative}[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=group]>:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child),[role=search]>:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:0}[role=group] input:not([type=checkbox],[type=radio]):not(:last-child),[role=group] select:not(:last-child),[role=group]>:not(:last-child),[role=search] input:not([type=checkbox],[type=radio]):not(:last-child),[role=search] select:not(:last-child),[role=search]>:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}[role=group] input:not([type=checkbox],[type=radio]):focus,[role=group] select:focus,[role=group]>:focus,[role=search] input:not([type=checkbox],[type=radio]):focus,[role=search] select:focus,[role=search]>:focus{z-index:2}[role=group] [role=button]:not(:first-child),[role=group] [type=button]:not(:first-child),[role=group] [type=reset]:not(:first-child),[role=group] [type=submit]:not(:first-child),[role=group] button:not(:first-child),[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=search] [role=button]:not(:first-child),[role=search] [type=button]:not(:first-child),[role=search] [type=reset]:not(:first-child),[role=search] [type=submit]:not(:first-child),[role=search] button:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child){margin-left:calc(var(--pico-border-width)*-1)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=reset],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=reset],[role=search] [type=submit],[role=search] button{width:auto}@supports selector(:has(*)){[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-button)}[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select,[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select{border-color:transparent}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus),[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-input)}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) button,[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) button{--pico-button-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-border);--pico-button-hover-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-hover-border)}[role=group] [role=button]:focus,[role=group] [type=button]:focus,[role=group] [type=reset]:focus,[role=group] [type=submit]:focus,[role=group] button:focus,[role=search] [role=button]:focus,[role=search] [type=button]:focus,[role=search] [type=reset]:focus,[role=search] [type=submit]:focus,[role=search] button:focus{box-shadow:none}}[role=search]>:first-child{border-bottom-left-radius:5rem;border-top-left-radius:5rem}[role=search]>:last-child{border-bottom-right-radius:5rem;border-top-right-radius:5rem}[aria-busy=true]:not(input,select,textarea,html){white-space:nowrap}[aria-busy=true]:not(input,select,textarea,html):before{background-image:var(--pico-icon-loading);background-repeat:no-repeat;background-size:1em auto;content:"";display:inline-block;height:1em;vertical-align:-.125em;width:1em}[aria-busy=true]:not(input,select,textarea,html):not(:empty):before{margin-inline-end:calc(var(--pico-spacing)*.5)}[aria-busy=true]:not(input,select,textarea,html):empty{text-align:center}[role=button][aria-busy=true],[type=button][aria-busy=true],[type=reset][aria-busy=true],[type=submit][aria-busy=true],a[aria-busy=true],button[aria-busy=true]{pointer-events:none}:root{--pico-scrollbar-width:0px}dialog{align-items:center;-webkit-backdrop-filter:var(--pico-modal-overlay-backdrop-filter);backdrop-filter:var(--pico-modal-overlay-backdrop-filter);background-color:var(--pico-modal-overlay-background-color);border:0;bottom:0;color:var(--pico-color);display:flex;height:inherit;justify-content:center;left:0;min-height:100%;min-width:100%;padding:0;position:fixed;right:0;top:0;width:inherit;z-index:999}dialog article{margin:var(--pico-spacing);max-height:calc(100vh - var(--pico-spacing)*2);overflow:auto;width:100%}@media (min-width:576px){dialog article{max-width:510px}}@media (min-width:768px){dialog article{max-width:700px}}dialog article>header>*{margin-bottom:0}dialog article>header :is(a,button)[rel=prev]{float:right;margin:0;margin-left:var(--pico-spacing);padding:0}dialog article>footer{text-align:right}dialog article>footer [role=button],dialog article>footer button{margin-bottom:0}dialog article>footer [role=button]:not(:first-of-type),dialog article>footer button:not(:first-of-type){margin-left:calc(var(--pico-spacing)*.5)}dialog article :is(a,button)[rel=prev]{background-color:transparent;background-image:var(--pico-icon-close);background-position:50%;background-repeat:no-repeat;background-size:auto 1rem;border:none;display:block;height:1rem;margin-bottom:var(--pico-spacing);margin-left:auto;margin-top:calc(var(--pico-spacing)*-1);opacity:.5;transition:opacity var(--pico-transition);width:1rem}dialog article :is(a,button)[rel=prev]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){opacity:1}dialog:not([open]),dialog[open=false]{display:none}:where(nav li):before{content:"​";float:left}nav,nav ul{display:flex}nav{justify-content:space-between;overflow:visible}nav ol,nav ul{align-items:center;list-style:none;margin-bottom:0;padding:0}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--pico-nav-element-spacing-horizontal)*-1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--pico-nav-element-spacing-horizontal)*-1)}nav li{display:inline-block;margin:0;padding:var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal)}nav li :where(a,[role=link]){border-radius:var(--pico-border-radius);display:inline-block;margin:calc(var(--pico-nav-link-spacing-vertical)*-1) calc(var(--pico-nav-link-spacing-horizontal)*-1);padding:var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal)}nav li :where(a,[role=link]):not(:hover){text-decoration:none}nav li [role=button],nav li [type=button],nav li button,nav li input:not([type=checkbox],[type=radio],[type=range],[type=file]),nav li select{height:auto;margin-bottom:0;margin-left:inherit;margin-right:inherit;padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width)*2) var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li a{margin:calc(var(--pico-nav-link-spacing-vertical)*-1) 0;margin-inline-start:calc(var(--pico-nav-link-spacing-horizontal)*-1)}nav[aria-label=breadcrumb] ul li:not(:last-child):after{color:var(--pico-muted-color);content:var(--pico-nav-breadcrumb-divider);display:inline-block;margin:0 calc(var(--pico-nav-link-spacing-horizontal)*-1);position:absolute;text-align:center;text-decoration:none;white-space:nowrap;width:calc(var(--pico-nav-link-spacing-horizontal)*4)}nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]){background-color:transparent;color:inherit;pointer-events:none;text-decoration:none}aside li,aside nav,aside ol,aside ul{display:block}aside li{padding:calc(var(--pico-nav-element-spacing-vertical)*.5) var(--pico-nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) :after{content:"\\"}progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--pico-progress-background-color);border:0;border-radius:var(--pico-border-radius);color:var(--pico-progress-color);display:inline-block;height:.5rem;margin-bottom:calc(var(--pico-spacing)*.5);overflow:hidden;vertical-align:baseline;width:100%}progress::-webkit-progress-bar{background:0 0;border-radius:var(--pico-border-radius)}progress[value]::-webkit-progress-value{background-color:var(--pico-progress-color);-webkit-transition:inline-size var(--pico-transition);transition:inline-size var(--pico-transition)}progress::-moz-progress-bar{background-color:var(--pico-progress-color)}@media (prefers-reduced-motion:no-preference){progress:indeterminate{animation:progress-indeterminate 1s linear infinite;background:var(--pico-progress-background-color) linear-gradient(to right,var(--pico-progress-color) 30%,var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat}progress:indeterminate[value]::-webkit-progress-value{background-color:transparent}progress:indeterminate::-moz-progress-bar{background-color:transparent}[dir=rtl] progress:indeterminate{animation-direction:reverse}}@keyframes progress-indeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:not(a,button,input){border-bottom:1px dotted;cursor:help;text-decoration:none}[data-tooltip]:after,[data-tooltip]:before,[data-tooltip][data-placement=top]:after,[data-tooltip][data-placement=top]:before{background:var(--pico-tooltip-background-color);border-radius:var(--pico-border-radius);bottom:100%;color:var(--pico-tooltip-color);content:attr(data-tooltip);display:block;font-size:.875rem;font-style:normal;font-weight:var(--pico-font-weight);left:50%;opacity:0;overflow:hidden;padding:.25rem .5rem;pointer-events:none;position:absolute;text-decoration:none;text-overflow:ellipsis;transform:translate(-50%,-.25rem);white-space:nowrap;z-index:99}[data-tooltip]:after,[data-tooltip][data-placement=top]:after{background-color:transparent;border-left:.3rem solid transparent;border-radius:0;border-right:.3rem solid transparent;border-top:.3rem solid;color:var(--pico-tooltip-background-color);content:"";padding:0;transform:translate(-50%)}[data-tooltip][data-placement=bottom]:after,[data-tooltip][data-placement=bottom]:before{bottom:auto;top:100%;transform:translate(-50%,.25rem)}[data-tooltip][data-placement=bottom]:after{border:.3rem solid transparent;border-bottom-color:currentcolor;transform:translate(-50%,-.3rem)}[data-tooltip][data-placement=left]:after,[data-tooltip][data-placement=left]:before{bottom:auto;left:auto;right:100%;top:50%;transform:translate(-.25rem,-50%)}[data-tooltip][data-placement=left]:after{border:.3rem solid transparent;border-left-color:currentcolor;transform:translate(.3rem,-50%)}[data-tooltip][data-placement=right]:after,[data-tooltip][data-placement=right]:before{bottom:auto;left:100%;right:auto;top:50%;transform:translate(.25rem,-50%)}[data-tooltip][data-placement=right]:after{border:.3rem solid transparent;border-right-color:currentcolor;transform:translate(-.3rem,-50%)}[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{opacity:1}@media (hover:hover) and (pointer:fine){[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{--pico-tooltip-slide-to:translate(-50%,-0.25rem);animation-duration:.2s;animation-fill-mode:forwards;animation-name:tooltip-slide;opacity:0;transform:translate(-50%,.75rem)}[data-tooltip]:focus:after,[data-tooltip]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%,0rem);animation-name:tooltip-caret-slide;transform:translate(-50%,-.25rem)}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:focus:before,[data-tooltip][data-placement=bottom]:hover:after,[data-tooltip][data-placement=bottom]:hover:before{--pico-tooltip-slide-to:translate(-50%,0.25rem);animation-name:tooltip-slide;transform:translate(-50%,-.75rem)}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%,-0.3rem);animation-name:tooltip-caret-slide;transform:translate(-50%,-.5rem)}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:focus:before,[data-tooltip][data-placement=left]:hover:after,[data-tooltip][data-placement=left]:hover:before{--pico-tooltip-slide-to:translate(-0.25rem,-50%);animation-name:tooltip-slide;transform:translate(.75rem,-50%)}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:hover:after{--pico-tooltip-caret-slide-to:translate(0.3rem,-50%);animation-name:tooltip-caret-slide;transform:translate(.05rem,-50%)}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:focus:before,[data-tooltip][data-placement=right]:hover:after,[data-tooltip][data-placement=right]:hover:before{--pico-tooltip-slide-to:translate(0.25rem,-50%);animation-name:tooltip-slide;transform:translate(-.75rem,-50%)}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:hover:after{--pico-tooltip-caret-slide-to:translate(-0.3rem,-50%);animation-name:tooltip-caret-slide;transform:translate(-.05rem,-50%)}}@keyframes tooltip-slide{to{opacity:1;transform:var(--pico-tooltip-slide-to)}}@keyframes tooltip-caret-slide{50%{opacity:0}to{opacity:1;transform:var(--pico-tooltip-caret-slide-to)}}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);position:absolute}[tabindex],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}@media (prefers-reduced-motion:reduce){:not([aria-busy=true]),:not([aria-busy=true]):after,:not([aria-busy=true]):before{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:scroll!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.bottom-0{bottom:0}.left-0{left:0}.left-16{left:4rem}.right-0{right:0}.top-0{top:0}.isolate{isolation:isolate}.m-0{margin:0}.m-auto{margin:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.-ml-4{margin-left:-1rem}.-mt-1{margin-top:-.25rem}.-mt-2{margin-top:-.5rem}.-mt-3{margin-top:-.75rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.h-3{height:.75rem}.h-3\/4{height:75%}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-\[250px\]{height:250px}.h-auto{height:auto}.h-full{height:100%}.max-h-64{max-height:16rem}.w-11{width:2.75rem}.w-24{width:6rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.flex-\[1\]{flex:1}.flex-\[2\]{flex:2}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-center{transform-origin:center}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-l{border-left-width:1px}.border-solid{border-style:solid}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity))}.border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity))}.bg-\[\#0172ad\]{--tw-bg-opacity:1;background-color:rgb(1 114 173/var(--tw-bg-opacity))}.bg-\[\#1c212c\]{--tw-bg-opacity:1;background-color:rgb(28 33 44/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-\[15px\]{padding-bottom:15px;padding-top:15px}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pr-0{padding-right:0}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[\.6rem\]{font-size:.6rem}.text-\[\.75rem\]{font-size:.75rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.text-\[\#ffffff00\]{color:#ffffff00}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-blue-500{--tw-shadow-color:#3b82f6;--tw-shadow:var(--tw-shadow-colored)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.focus-within\:shadow-none:focus-within{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:w-96{width:24rem}.md\:flex-\[1\]{flex:1}.md\:flex-row{flex-direction:row}.md\:border-b-0{border-bottom-width:0}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}} \ No newline at end of file +@charset "UTF-8";:root{--pico-font-family-emoji:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--pico-font-family-sans-serif:system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif,var(--pico-font-family-emoji);--pico-font-family-monospace:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace,var(--pico-font-family-emoji);--pico-font-family:var(--pico-font-family-sans-serif);--pico-line-height:1.5;--pico-font-weight:400;--pico-font-size:100%;--pico-text-underline-offset:0.1rem;--pico-border-radius:0.25rem;--pico-border-width:0.0625rem;--pico-outline-width:0.125rem;--pico-transition:0.2s ease-in-out;--pico-spacing:1rem;--pico-typography-spacing-vertical:1rem;--pico-block-spacing-vertical:var(--pico-spacing);--pico-block-spacing-horizontal:var(--pico-spacing);--pico-form-element-spacing-vertical:0.75rem;--pico-form-element-spacing-horizontal:1rem;--pico-group-box-shadow:0 0 0 transparent;--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-primary-focus);--pico-group-box-shadow-focus-with-input:0 0 0 0.0625rem var(--pico-form-element-border-color);--pico-modal-overlay-backdrop-filter:blur(0.375rem);--pico-nav-element-spacing-vertical:1rem;--pico-nav-element-spacing-horizontal:0.5rem;--pico-nav-link-spacing-vertical:0.5rem;--pico-nav-link-spacing-horizontal:0.5rem;--pico-nav-breadcrumb-divider:">";--pico-icon-checkbox:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23FFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-minus:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23FFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");--pico-icon-chevron:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--pico-icon-date:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='18' height='18' x='3' y='4' rx='2' ry='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");--pico-icon-time:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");--pico-icon-search:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");--pico-icon-close:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238891A4' stroke-linecap='round' stroke-linejoin='round' stroke-width='3'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");--pico-icon-loading:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cstyle%3E@keyframes rotate{0%25{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes dash{0%25{stroke-dasharray:1,100;stroke-dashoffset:0}50%25{stroke-dasharray:44.5,100;stroke-dashoffset:-17.5}to{stroke-dasharray:44.5,100;stroke-dashoffset:-62}}%3C/style%3E%3Cg style='animation:rotate 2s linear infinite;transform-origin:center center'%3E%3Ccircle cx='12' cy='12' r='10' stroke='%238891A4' stroke-width='4' style='stroke-dasharray:75,100;stroke-dashoffset:-5;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round'/%3E%3C/g%3E%3C/svg%3E")}@media (min-width:576px){:root{--pico-font-size:106.25%}}@media (min-width:768px){:root{--pico-font-size:112.5%}}@media (min-width:1024px){:root{--pico-font-size:118.75%}}@media (min-width:1280px){:root{--pico-font-size:125%}}@media (min-width:1536px){:root{--pico-font-size:131.25%}}a{--pico-text-decoration:underline}small{--pico-font-size:0.875em}h1,h2,h3,h4,h5,h6{--pico-font-weight:700}h1{--pico-font-size:2rem;--pico-line-height:1.125;--pico-typography-spacing-top:3rem}h2{--pico-font-size:1.75rem;--pico-line-height:1.15;--pico-typography-spacing-top:2.625rem}h3{--pico-font-size:1.5rem;--pico-line-height:1.175;--pico-typography-spacing-top:2.25rem}h4{--pico-font-size:1.25rem;--pico-line-height:1.2;--pico-typography-spacing-top:1.874rem}h5{--pico-font-size:1.125rem;--pico-line-height:1.225;--pico-typography-spacing-top:1.6875rem}h6{--pico-font-size:1rem;--pico-line-height:1.25;--pico-typography-spacing-top:1.5rem}tfoot td,tfoot th,thead td,thead th{--pico-font-weight:600;--pico-border-width:0.1875rem}code,kbd,pre,samp{--pico-font-family:var(--pico-font-family-monospace)}kbd{--pico-font-weight:bolder}:where(select,textarea),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-outline-width:0.0625rem}[type=search]{--pico-border-radius:5rem}[type=checkbox],[type=radio]{--pico-border-width:0.125rem}[type=checkbox][role=switch]{--pico-border-width:0.1875rem}[role=search]{--pico-border-radius:5rem}[role=group] [role=button],[role=group] [type=button],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=submit],[role=search] button{--pico-form-element-spacing-horizontal:2rem}details summary[role=button]:after{filter:brightness(0) invert(1)}[aria-busy=true]:not(input,select,textarea):is(button,[type=submit],[type=button],[type=reset],[role=button]):before{filter:brightness(0) invert(1)}:root:not([data-theme=dark]),[data-theme=light]{--pico-background-color:#fff;--pico-color:#373c44;--pico-text-selection-color:rgba(2,154,232,.25);--pico-muted-color:#646b79;--pico-muted-border-color:#e7eaf0;--pico-primary:#0172ad;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(1,114,173,.5);--pico-primary-hover:#015887;--pico-primary-hover-background:#02659a;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(2,154,232,.5);--pico-primary-inverse:#fff;--pico-secondary:#5d6b89;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(93,107,137,.5);--pico-secondary-hover:#48536b;--pico-secondary-hover-background:#48536b;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(93,107,137,.25);--pico-secondary-inverse:#fff;--pico-contrast:#181c25;--pico-contrast-background:#181c25;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(24,28,37,.5);--pico-contrast-hover:#000;--pico-contrast-hover-background:#000;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-secondary-hover);--pico-contrast-focus:rgba(93,107,137,.25);--pico-contrast-inverse:#fff;--pico-box-shadow:0.0145rem 0.029rem 0.174rem rgba(129,145,181,.017),0.0335rem 0.067rem 0.402rem rgba(129,145,181,.024),0.0625rem 0.125rem 0.75rem rgba(129,145,181,.03),0.1125rem 0.225rem 1.35rem rgba(129,145,181,.036),0.2085rem 0.417rem 2.502rem rgba(129,145,181,.043),0.5rem 1rem 6rem rgba(129,145,181,.06),0 0 0 0.0625rem rgba(129,145,181,.015);--pico-h1-color:#2d3138;--pico-h2-color:#373c44;--pico-h3-color:#424751;--pico-h4-color:#4d535e;--pico-h5-color:#5c6370;--pico-h6-color:#646b79;--pico-mark-background-color:#fde7c0;--pico-mark-color:#0f1114;--pico-ins-color:#1d6a54;--pico-del-color:#883935;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 transparent;--pico-button-hover-box-shadow:0 0 0 transparent;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111,120,135,.038);--pico-code-background-color:#f3f5f7;--pico-code-color:#646b79;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#fbfcfc;--pico-form-element-selected-background-color:#dfe3eb;--pico-form-element-border-color:#cfd5e2;--pico-form-element-color:#23262c;--pico-form-element-placeholder-color:var(--pico-muted-color);--pico-form-element-active-background-color:#fff;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:0.5;--pico-form-element-invalid-border-color:#b86a6b;--pico-form-element-invalid-active-border-color:#c84f48;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#4c9b8a;--pico-form-element-valid-active-border-color:#279977;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#bfc7d9;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 transparent;--pico-range-border-color:#dfe3eb;--pico-range-active-border-color:#bfc7d9;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:var(--pico-background-color);--pico-card-border-color:var(--pico-muted-border-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#fbfcfc;--pico-loading-spinner-opacity:0.5;--pico-modal-overlay-background-color:rgba(232,234,237,.75);--pico-progress-background-color:#dfe3eb;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%234C9B8A' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23C84F48' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");color-scheme:light}:root:not([data-theme=dark]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]),[data-theme=light] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}@media only screen and (prefers-color-scheme:dark){:root:not([data-theme]){--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(1,170,255,.188);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#01aaff;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(1,170,255,.5);--pico-primary-hover:#79c0ff;--pico-primary-hover-background:#017fc0;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(1,170,255,.375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150,158,175,.5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144,158,190,.25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223,227,235,.5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207,213,226,.25);--pico-contrast-inverse:#000;--pico-box-shadow:0.0145rem 0.029rem 0.174rem rgba(7,9,12,.017),0.0335rem 0.067rem 0.402rem rgba(7,9,12,.024),0.0625rem 0.125rem 0.75rem rgba(7,9,12,.03),0.1125rem 0.225rem 1.35rem rgba(7,9,12,.036),0.2085rem 0.417rem 2.502rem rgba(7,9,12,.043),0.5rem 1rem 6rem rgba(7,9,12,.06),0 0 0 0.0625rem rgba(7,9,12,.015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 transparent;--pico-button-hover-box-shadow:0 0 0 transparent;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111,120,135,.038);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:0.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 transparent;--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-loading-spinner-opacity:0.5;--pico-modal-overlay-background-color:rgba(8,9,10,.75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%232A7B6F' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23964A50' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");color-scheme:dark}:root:not([data-theme]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}}[data-theme=dark]{--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(1,170,255,.188);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#01aaff;--pico-primary-background:#0172ad;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(1,170,255,.5);--pico-primary-hover:#79c0ff;--pico-primary-hover-background:#017fc0;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(1,170,255,.375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150,158,175,.5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144,158,190,.25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223,227,235,.5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207,213,226,.25);--pico-contrast-inverse:#000;--pico-box-shadow:0.0145rem 0.029rem 0.174rem rgba(7,9,12,.017),0.0335rem 0.067rem 0.402rem rgba(7,9,12,.024),0.0625rem 0.125rem 0.75rem rgba(7,9,12,.03),0.1125rem 0.225rem 1.35rem rgba(7,9,12,.036),0.2085rem 0.417rem 2.502rem rgba(7,9,12,.043),0.5rem 1rem 6rem rgba(7,9,12,.06),0 0 0 0.0625rem rgba(7,9,12,.015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 transparent;--pico-button-hover-box-shadow:0 0 0 transparent;--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111,120,135,.038);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:0.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 transparent;--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-loading-spinner-opacity:0.5;--pico-modal-overlay-background-color:rgba(8,9,10,.75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%232A7B6F' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23964A50' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");color-scheme:dark}[data-theme=dark] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}[type=checkbox],[type=radio],[type=range],progress{accent-color:var(--pico-primary)}*,:after,:before{background-repeat:no-repeat;box-sizing:border-box}:after,:before{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--pico-background-color);color:var(--pico-color);font-family:var(--pico-font-family);font-size:var(--pico-font-size);font-weight:var(--pico-font-weight);line-height:var(--pico-line-height);overflow-wrap:break-word;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-rendering:optimizeLegibility;text-underline-offset:var(--pico-text-underline-offset)}body{margin:0;width:100%}main{display:block}body>footer,body>header,body>main{margin-left:auto;margin-right:auto;padding:var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);width:100%}@media (min-width:576px){body>footer,body>header,body>main{max-width:510px;padding-left:0;padding-right:0}}@media (min-width:768px){body>footer,body>header,body>main{max-width:700px}}@media (min-width:1024px){body>footer,body>header,body>main{max-width:950px}}@media (min-width:1280px){body>footer,body>header,body>main{max-width:1200px}}@media (min-width:1536px){body>footer,body>header,body>main{max-width:1450px}}section{margin-bottom:var(--pico-block-spacing-vertical)}b,strong{font-weight:bolder}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,ol,p,pre,table,ul{font-style:normal}address,blockquote,dl,h1,h2,h3,h4,h5,h6,ol,p,pre,table,ul{color:var(--pico-color);font-weight:var(--pico-font-weight);margin-bottom:var(--pico-typography-spacing-vertical);margin-top:0}h1,h2,h3,h4,h5,h6{font-family:var(--pico-font-family);font-size:var(--pico-font-size);line-height:var(--pico-line-height)}h1{--pico-color:var(--pico-h1-color)}h2{--pico-color:var(--pico-h2-color)}h3{--pico-color:var(--pico-h3-color)}h4{--pico-color:var(--pico-h4-color)}h5{--pico-color:var(--pico-h5-color)}h6{--pico-color:var(--pico-h6-color)}:where(article,address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--pico-typography-spacing-top)}hgroup,p{margin-bottom:var(--pico-typography-spacing-vertical)}hgroup>*{margin-bottom:0;margin-top:0}hgroup>:not(:first-child):last-child{--pico-color:var(--pico-muted-color);--pico-font-weight:unset;font-size:1rem}:where(ol,ul) li{margin-bottom:calc(var(--pico-typography-spacing-vertical)*.25)}:where(dl,ol,ul) :where(dl,ol,ul){margin:0;margin-top:calc(var(--pico-typography-spacing-vertical)*.25)}ul li{list-style:square}mark{background-color:var(--pico-mark-background-color);color:var(--pico-mark-color);padding:.125rem .25rem;vertical-align:baseline}blockquote{border-inline-end:none;border-inline-start:.25rem solid var(--pico-blockquote-border-color);border-left:.25rem solid var(--pico-blockquote-border-color);border-right:none;display:block;margin:var(--pico-typography-spacing-vertical) 0;padding:var(--pico-spacing)}blockquote footer{color:var(--pico-blockquote-footer-color);margin-top:calc(var(--pico-typography-spacing-vertical)*.5)}abbr[title]{border-bottom:1px dotted;cursor:help}abbr[title],ins{text-decoration:none}ins{color:var(--pico-ins-color)}del{color:var(--pico-del-color)}::-moz-selection{background-color:var(--pico-text-selection-color)}::selection{background-color:var(--pico-text-selection-color)}:where(a:not([role=button])),[role=link]{--pico-color:var(--pico-primary);--pico-background-color:transparent;--pico-underline:var(--pico-primary-underline);background-color:var(--pico-background-color);color:var(--pico-color);outline:0;-webkit-text-decoration:var(--pico-text-decoration);text-decoration:var(--pico-text-decoration);text-decoration-color:var(--pico-underline);text-underline-offset:.125em;transition:background-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition)}:where(a:not([role=button])):is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-primary-hover);--pico-underline:var(--pico-primary-hover-underline);--pico-text-decoration:underline}:where(a:not([role=button])):focus-visible,[role=link]:focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}a[role=button]{display:inline-block}button{font-family:inherit;margin:0;overflow:visible;text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[role=button],[type=button],[type=file]::file-selector-button,[type=reset],[type=submit],button{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);--pico-color:var(--pico-primary-inverse);--pico-box-shadow:var(--pico-button-box-shadow,0 0 0 transparent);background-color:var(--pico-background-color);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);box-shadow:var(--pico-box-shadow);color:var(--pico-color);cursor:pointer;font-size:1rem;font-weight:var(--pico-font-weight);line-height:var(--pico-line-height);outline:0;padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);text-align:center;text-decoration:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition);-webkit-user-select:none;-moz-user-select:none;user-select:none}[role=button]:is(:hover,:active,:focus),[role=button]:is([aria-current]:not([aria-current=false])),[type=button]:is(:hover,:active,:focus),[type=button]:is([aria-current]:not([aria-current=false])),[type=file]::file-selector-button:is(:hover,:active,:focus),[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])),[type=reset]:is(:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false])),[type=submit]:is(:hover,:active,:focus),[type=submit]:is([aria-current]:not([aria-current=false])),button:is(:hover,:active,:focus),button:is([aria-current]:not([aria-current=false])){--pico-background-color:var(--pico-primary-hover-background);--pico-border-color:var(--pico-primary-hover-border);--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent);--pico-color:var(--pico-primary-inverse)}[role=button]:focus,[role=button]:is([aria-current]:not([aria-current=false])):focus,[type=button]:focus,[type=button]:is([aria-current]:not([aria-current=false])):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus,[type=reset]:focus,[type=reset]:is([aria-current]:not([aria-current=false])):focus,[type=submit]:focus,[type=submit]:is([aria-current]:not([aria-current=false])):focus,button:focus,button:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent),0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}[type=button],[type=reset],[type=submit]{margin-bottom:var(--pico-spacing)}[type=file]::file-selector-button,[type=reset]{--pico-background-color:var(--pico-secondary-background);--pico-border-color:var(--pico-secondary-border);--pico-color:var(--pico-secondary-inverse);cursor:pointer}[type=file]::file-selector-button:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border);--pico-color:var(--pico-secondary-inverse)}[type=file]::file-selector-button:focus,[type=reset]:focus{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}:where(button,[type=submit],[type=reset],[type=button],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]){opacity:.5;pointer-events:none}:where(table){border-collapse:collapse;border-spacing:0;text-indent:0;width:100%}td,th{background-color:var(--pico-background-color);border-bottom:var(--pico-border-width) solid var(--pico-table-border-color);color:var(--pico-color);font-weight:var(--pico-font-weight);padding:calc(var(--pico-spacing)/2) var(--pico-spacing);text-align:left;text-align:start}tfoot td,tfoot th{border-bottom:0;border-top:var(--pico-border-width) solid var(--pico-table-border-color)}table.striped tbody tr:nth-child(odd) td,table.striped tbody tr:nth-child(odd) th{background-color:var(--pico-table-row-stripped-background-color)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{border-style:none;height:auto;max-width:100%}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:var(--pico-font-family);font-size:.875em}pre code{font-family:inherit;font-size:inherit}pre{-ms-overflow-style:scrollbar;overflow:auto}code,kbd,pre{background:var(--pico-code-background-color);border-radius:var(--pico-border-radius);color:var(--pico-code-color);font-weight:var(--pico-font-weight);line-height:normal}code,kbd{display:inline-block;padding:.375rem}pre{margin-bottom:var(--pico-spacing);overflow-x:auto}pre,pre>code{display:block}pre>code{background:0 0;line-height:var(--pico-line-height);padding:var(--pico-spacing)}kbd{background-color:var(--pico-code-kbd-background-color);color:var(--pico-code-kbd-color);vertical-align:baseline}figure{display:block;margin:0;padding:0}figure figcaption{color:var(--pico-muted-color);padding:calc(var(--pico-spacing)*.5) 0}hr{border:0;border-top:1px solid var(--pico-muted-border-color);color:inherit;height:0;margin:var(--pico-typography-spacing-vertical) 0}[hidden],template{display:none!important}canvas{display:inline-block}input,optgroup,select,textarea{font-family:inherit;font-size:1rem;letter-spacing:inherit;line-height:var(--pico-line-height);margin:0}input{overflow:visible}select{text-transform:none}legend{color:inherit;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:0}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{border-width:0;padding:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem*var(--pico-line-height) + var(--pico-form-element-spacing-vertical)*2 + var(--pico-border-width)*2)}fieldset{border:0;margin:0;margin-bottom:var(--pico-spacing);padding:0;width:100%}fieldset legend,label{color:var(--pico-color);display:block;font-weight:var(--pico-form-label-font-weight,var(--pico-font-weight));margin-bottom:calc(var(--pico-spacing)*.375)}fieldset legend{margin-bottom:calc(var(--pico-spacing)*.5)}button[type=submit],input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal)}input,select,textarea{--pico-background-color:var(--pico-form-element-background-color);--pico-border-color:var(--pico-form-element-border-color);--pico-color:var(--pico-form-element-color);--pico-box-shadow:none;background-color:var(--pico-background-color);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);outline:0;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus){--pico-background-color:var(--pico-form-element-active-background-color)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus){--pico-border-color:var(--pico-form-element-active-border-color)}:where(select,textarea):not([readonly]):focus,input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus{--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea),input:not([type=submit],[type=button],[type=reset])[disabled],label[aria-disabled=true],select[disabled],textarea[disabled]{opacity:var(--pico-form-element-disabled-opacity);pointer-events:none}label[aria-disabled=true] input[disabled]{opacity:1}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid]{background-position:center right .75rem;background-repeat:no-repeat;background-size:1rem auto;padding-left:var(--pico-form-element-spacing-horizontal);padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;padding-inline-start:var(--pico-form-element-spacing-horizontal)!important}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=false]:not(select){background-image:var(--pico-icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=true]:not(select){background-image:var(--pico-icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--pico-border-color:var(--pico-form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--pico-border-color:var(--pico-form-element-valid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color)!important}:where(input,select,textarea)[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--pico-border-color:var(--pico-form-element-invalid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color)!important}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::-webkit-input-placeholder,input::placeholder,select:invalid,textarea::-webkit-input-placeholder,textarea::placeholder{color:var(--pico-form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--pico-spacing)}select::-ms-expand{background-color:transparent;border:0}select:not([multiple],[size]){background-image:var(--pico-icon-chevron);background-position:center right .75rem;background-repeat:no-repeat;background-size:1rem auto;padding-left:var(--pico-form-element-spacing-horizontal);padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);padding-inline-start:var(--pico-form-element-spacing-horizontal)}select[multiple] option:checked{background:var(--pico-form-element-selected-background-color);color:var(--pico-form-element-color)}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}textarea{display:block;resize:vertical}textarea[aria-invalid]{--pico-icon-height:calc(1rem*var(--pico-line-height) + var(--pico-form-element-spacing-vertical)*2 + var(--pico-border-width)*2);background-position:top right .75rem!important;background-size:1rem var(--pico-icon-height)!important}:where(input,select,textarea,fieldset)+small{color:var(--pico-muted-color);display:block;margin-bottom:var(--pico-spacing);margin-top:calc(var(--pico-spacing)*-.75);width:100%}:where(input,select,textarea,fieldset)[aria-invalid=false]+small{color:var(--pico-ins-color)}:where(input,select,textarea,fieldset)[aria-invalid=true]+small{color:var(--pico-del-color)}label>:where(input,select,textarea){margin-top:calc(var(--pico-spacing)*.25)}label:has([type=checkbox],[type=radio]){cursor:pointer;width:-moz-fit-content;width:fit-content}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:var(--pico-border-width);cursor:pointer;height:1.25em;margin-top:-.125em;margin-inline-end:.5em;vertical-align:middle;width:1.25em}[type=checkbox]::-ms-check,[type=radio]::-ms-check{display:none}[type=checkbox]:checked,[type=checkbox]:checked:active,[type=checkbox]:checked:focus,[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-checkbox);background-position:50%;background-repeat:no-repeat;background-size:.75em auto}[type=checkbox]~label,[type=radio]~label{cursor:pointer;display:inline-block;margin-bottom:0}[type=checkbox]~label:not(:last-of-type),[type=radio]~label:not(:last-of-type){margin-inline-end:1em}[type=checkbox]:indeterminate{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-minus);background-position:50%;background-repeat:no-repeat;background-size:.75em auto}[type=radio]{border-radius:50%}[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-inverse);background-image:none;border-width:.35em}[type=checkbox][role=switch]{--pico-background-color:var(--pico-switch-background-color);--pico-color:var(--pico-switch-color);background-color:var(--pico-background-color);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:1.25em;height:1.25em;line-height:1.25em;width:2.25em}[type=checkbox][role=switch]:not([aria-invalid]){--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:before{aspect-ratio:1;background-color:var(--pico-color);border-radius:50%;box-shadow:var(--pico-switch-thumb-box-shadow);content:"";display:block;height:100%;transition:margin .1s ease-in-out}[type=checkbox][role=switch]:focus{--pico-background-color:var(--pico-switch-background-color);--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:checked{--pico-background-color:var(--pico-switch-checked-background-color);--pico-border-color:var(--pico-switch-checked-background-color);background-image:none}[type=checkbox][role=switch]:checked:before{margin-inline-start:1em}[type=checkbox][role=switch][disabled]{--pico-background-color:var(--pico-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus{--pico-background-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true]{--pico-background-color:var(--pico-form-element-invalid-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus,[type=radio][aria-invalid=false]:checked,[type=radio][aria-invalid=false]:checked:active,[type=radio][aria-invalid=false]:checked:focus{--pico-border-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true],[type=radio]:checked:active[aria-invalid=true],[type=radio]:checked:focus[aria-invalid=true],[type=radio]:checked[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}[type=color]::-webkit-color-swatch-wrapper{padding:0}[type=color]::-moz-focus-inner{padding:0}[type=color]::-webkit-color-swatch{border:0;border-radius:calc(var(--pico-border-radius)*.5)}[type=color]::-moz-color-swatch{border:0;border-radius:calc(var(--pico-border-radius)*.5)}input:not([type=checkbox],[type=radio],[type=range],[type=file]):is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){--pico-icon-position:0.75rem;--pico-icon-width:1rem;background-image:var(--pico-icon-date);background-position:center right var(--pico-icon-position);background-repeat:no-repeat;background-size:var(--pico-icon-width) auto;padding-right:calc(var(--pico-icon-width) + var(--pico-icon-position))}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=time]{background-image:var(--pico-icon-time)}[type=date]::-webkit-calendar-picker-indicator,[type=datetime-local]::-webkit-calendar-picker-indicator,[type=month]::-webkit-calendar-picker-indicator,[type=time]::-webkit-calendar-picker-indicator,[type=week]::-webkit-calendar-picker-indicator{margin-left:var(--pico-icon-position);margin-right:calc(var(--pico-icon-width)*-1);opacity:0;width:var(--pico-icon-width)}@-moz-document url-prefix(){[type=date],[type=datetime-local],[type=month],[type=time],[type=week]{background-image:none!important;padding-right:var(--pico-form-element-spacing-horizontal)!important}}[dir=rtl] :is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){text-align:right}[type=file]{--pico-color:var(--pico-muted-color);background:0 0;border:0;border-radius:0;margin-left:calc(var(--pico-outline-width)*-1);padding:calc(var(--pico-form-element-spacing-vertical)*.5) 0;padding-left:var(--pico-outline-width)}[type=file]::file-selector-button{margin-right:calc(var(--pico-spacing)/2);padding:calc(var(--pico-form-element-spacing-vertical)*.5) var(--pico-form-element-spacing-horizontal)}[type=file]:is(:hover,:active,:focus)::file-selector-button{--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border)}[type=file]:focus::file-selector-button{--pico-box-shadow:var(--pico-button-hover-box-shadow,0 0 0 transparent),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;height:1.25rem;width:100%}[type=range]::-webkit-slider-runnable-track{background-color:var(--pico-range-border-color);border-radius:var(--pico-border-radius);height:.375rem;-webkit-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition);width:100%}[type=range]::-moz-range-track{background-color:var(--pico-range-border-color);border-radius:var(--pico-border-radius);height:.375rem;-moz-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition);width:100%}[type=range]::-ms-track{background-color:var(--pico-range-border-color);border-radius:var(--pico-border-radius);height:.375rem;-ms-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition);width:100%}[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background-color:var(--pico-range-thumb-color);border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;cursor:pointer;height:1.25rem;margin-top:-.4375rem;-webkit-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);width:1.25rem}[type=range]::-moz-range-thumb{-webkit-appearance:none;background-color:var(--pico-range-thumb-color);border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;cursor:pointer;height:1.25rem;margin-top:-.4375rem;-moz-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);width:1.25rem}[type=range]::-ms-thumb{-webkit-appearance:none;background-color:var(--pico-range-thumb-color);border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;cursor:pointer;height:1.25rem;margin-top:-.4375rem;-ms-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition);width:1.25rem}[type=range]:active,[type=range]:focus-within{--pico-range-border-color:var(--pico-range-active-border-color);--pico-range-thumb-color:var(--pico-range-thumb-active-color)}[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}[type=range]:active::-moz-range-thumb{transform:scale(1.25)}[type=range]:active::-ms-thumb{transform:scale(1.25)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-image:var(--pico-icon-search);background-position:center left calc(var(--pico-form-element-spacing-horizontal) + .125rem);background-repeat:no-repeat;background-size:1rem auto;padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:center left 1.125rem,center right .75rem;padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)!important}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=false]{background-image:var(--pico-icon-search),var(--pico-icon-valid)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=true]{background-image:var(--pico-icon-search),var(--pico-icon-invalid)}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-position:center right 1.125rem}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:center right 1.125rem,center left .75rem}details{display:block;margin-bottom:var(--pico-spacing)}details summary{cursor:pointer;line-height:1rem;list-style-type:none;transition:color var(--pico-transition)}details summary:not([role]){color:var(--pico-accordion-close-summary-color)}details summary::-webkit-details-marker{display:none}details summary::marker{display:none}details summary::-moz-list-bullet{list-style-type:none}details summary:after{background-image:var(--pico-icon-chevron);background-position:100%;background-repeat:no-repeat;background-size:1rem auto;content:"";display:block;float:right;height:1rem;margin-inline-start:calc(var(--pico-spacing,1rem)*.5);transform:rotate(-90deg);transition:transform var(--pico-transition);width:1rem}details summary:focus{outline:0}details summary:focus:not([role]){color:var(--pico-accordion-active-summary-color)}details summary:focus-visible:not([role]){color:var(--pico-primary);outline:var(--pico-outline-width) solid var(--pico-primary-focus);outline-offset:calc(var(--pico-spacing,1rem)*.5)}details summary[role=button]{text-align:left;width:100%}details summary[role=button]:after{height:calc(1rem*var(--pico-line-height,1.5))}details[open]>summary{margin-bottom:var(--pico-spacing)}details[open]>summary:not([role]):not(:focus){color:var(--pico-accordion-open-summary-color)}details[open]>summary:after{transform:rotate(0)}[dir=rtl] details summary{text-align:right}[dir=rtl] details summary:after{background-position:0;float:left}article{background:var(--pico-card-background-color);border-radius:var(--pico-border-radius);box-shadow:var(--pico-card-box-shadow);margin-bottom:var(--pico-block-spacing-vertical);padding:var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal)}article>footer,article>header{background-color:var(--pico-card-sectioning-background-color);margin-left:calc(var(--pico-block-spacing-horizontal)*-1);margin-right:calc(var(--pico-block-spacing-horizontal)*-1);padding:calc(var(--pico-block-spacing-vertical)*.66) var(--pico-block-spacing-horizontal)}article>header{border-bottom:var(--pico-border-width) solid var(--pico-card-border-color);border-top-left-radius:var(--pico-border-radius);border-top-right-radius:var(--pico-border-radius);margin-bottom:var(--pico-block-spacing-vertical);margin-top:calc(var(--pico-block-spacing-vertical)*-1)}article>footer{border-bottom-left-radius:var(--pico-border-radius);border-bottom-right-radius:var(--pico-border-radius);border-top:var(--pico-border-width) solid var(--pico-card-border-color);margin-bottom:calc(var(--pico-block-spacing-vertical)*-1);margin-top:var(--pico-block-spacing-vertical)}[role=group],[role=search]{border-radius:var(--pico-border-radius);box-shadow:var(--pico-group-box-shadow,0 0 0 transparent);display:inline-flex;margin-bottom:var(--pico-spacing);position:relative;transition:box-shadow var(--pico-transition);vertical-align:middle;width:100%}[role=group] input:not([type=checkbox],[type=radio]),[role=group] select,[role=group]>*,[role=search] input:not([type=checkbox],[type=radio]),[role=search] select,[role=search]>*{flex:1 1 auto;margin-bottom:0;position:relative}[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=group]>:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child),[role=search]>:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:0}[role=group] input:not([type=checkbox],[type=radio]):not(:last-child),[role=group] select:not(:last-child),[role=group]>:not(:last-child),[role=search] input:not([type=checkbox],[type=radio]):not(:last-child),[role=search] select:not(:last-child),[role=search]>:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}[role=group] input:not([type=checkbox],[type=radio]):focus,[role=group] select:focus,[role=group]>:focus,[role=search] input:not([type=checkbox],[type=radio]):focus,[role=search] select:focus,[role=search]>:focus{z-index:2}[role=group] [role=button]:not(:first-child),[role=group] [type=button]:not(:first-child),[role=group] [type=reset]:not(:first-child),[role=group] [type=submit]:not(:first-child),[role=group] button:not(:first-child),[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=search] [role=button]:not(:first-child),[role=search] [type=button]:not(:first-child),[role=search] [type=reset]:not(:first-child),[role=search] [type=submit]:not(:first-child),[role=search] button:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child){margin-left:calc(var(--pico-border-width)*-1)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=reset],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=reset],[role=search] [type=submit],[role=search] button{width:auto}@supports selector(:has(*)){[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-button)}[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select,[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select{border-color:transparent}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus),[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-input)}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) button,[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) button{--pico-button-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-border);--pico-button-hover-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-hover-border)}[role=group] [role=button]:focus,[role=group] [type=button]:focus,[role=group] [type=reset]:focus,[role=group] [type=submit]:focus,[role=group] button:focus,[role=search] [role=button]:focus,[role=search] [type=button]:focus,[role=search] [type=reset]:focus,[role=search] [type=submit]:focus,[role=search] button:focus{box-shadow:none}}[role=search]>:first-child{border-bottom-left-radius:5rem;border-top-left-radius:5rem}[role=search]>:last-child{border-bottom-right-radius:5rem;border-top-right-radius:5rem}[aria-busy=true]:not(input,select,textarea,html){white-space:nowrap}[aria-busy=true]:not(input,select,textarea,html):before{background-image:var(--pico-icon-loading);background-repeat:no-repeat;background-size:1em auto;content:"";display:inline-block;height:1em;vertical-align:-.125em;width:1em}[aria-busy=true]:not(input,select,textarea,html):not(:empty):before{margin-inline-end:calc(var(--pico-spacing)*.5)}[aria-busy=true]:not(input,select,textarea,html):empty{text-align:center}[role=button][aria-busy=true],[type=button][aria-busy=true],[type=reset][aria-busy=true],[type=submit][aria-busy=true],a[aria-busy=true],button[aria-busy=true]{pointer-events:none}:root{--pico-scrollbar-width:0px}dialog{align-items:center;-webkit-backdrop-filter:var(--pico-modal-overlay-backdrop-filter);backdrop-filter:var(--pico-modal-overlay-backdrop-filter);background-color:var(--pico-modal-overlay-background-color);border:0;bottom:0;color:var(--pico-color);display:flex;height:inherit;justify-content:center;left:0;min-height:100%;min-width:100%;padding:0;position:fixed;right:0;top:0;width:inherit;z-index:999}dialog article{margin:var(--pico-spacing);max-height:calc(100vh - var(--pico-spacing)*2);overflow:auto;width:100%}@media (min-width:576px){dialog article{max-width:510px}}@media (min-width:768px){dialog article{max-width:700px}}dialog article>header>*{margin-bottom:0}dialog article>header :is(a,button)[rel=prev]{float:right;margin:0;margin-left:var(--pico-spacing);padding:0}dialog article>footer{text-align:right}dialog article>footer [role=button],dialog article>footer button{margin-bottom:0}dialog article>footer [role=button]:not(:first-of-type),dialog article>footer button:not(:first-of-type){margin-left:calc(var(--pico-spacing)*.5)}dialog article :is(a,button)[rel=prev]{background-color:transparent;background-image:var(--pico-icon-close);background-position:50%;background-repeat:no-repeat;background-size:auto 1rem;border:none;display:block;height:1rem;margin-bottom:var(--pico-spacing);margin-left:auto;margin-top:calc(var(--pico-spacing)*-1);opacity:.5;transition:opacity var(--pico-transition);width:1rem}dialog article :is(a,button)[rel=prev]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){opacity:1}dialog:not([open]),dialog[open=false]{display:none}:where(nav li):before{content:"​";float:left}nav,nav ul{display:flex}nav{justify-content:space-between;overflow:visible}nav ol,nav ul{align-items:center;list-style:none;margin-bottom:0;padding:0}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--pico-nav-element-spacing-horizontal)*-1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--pico-nav-element-spacing-horizontal)*-1)}nav li{display:inline-block;margin:0;padding:var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal)}nav li :where(a,[role=link]){border-radius:var(--pico-border-radius);display:inline-block;margin:calc(var(--pico-nav-link-spacing-vertical)*-1) calc(var(--pico-nav-link-spacing-horizontal)*-1);padding:var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal)}nav li :where(a,[role=link]):not(:hover){text-decoration:none}nav li [role=button],nav li [type=button],nav li button,nav li input:not([type=checkbox],[type=radio],[type=range],[type=file]),nav li select{height:auto;margin-bottom:0;margin-left:inherit;margin-right:inherit;padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width)*2) var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li a{margin:calc(var(--pico-nav-link-spacing-vertical)*-1) 0;margin-inline-start:calc(var(--pico-nav-link-spacing-horizontal)*-1)}nav[aria-label=breadcrumb] ul li:not(:last-child):after{color:var(--pico-muted-color);content:var(--pico-nav-breadcrumb-divider);display:inline-block;margin:0 calc(var(--pico-nav-link-spacing-horizontal)*-1);position:absolute;text-align:center;text-decoration:none;white-space:nowrap;width:calc(var(--pico-nav-link-spacing-horizontal)*4)}nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]){background-color:transparent;color:inherit;pointer-events:none;text-decoration:none}aside li,aside nav,aside ol,aside ul{display:block}aside li{padding:calc(var(--pico-nav-element-spacing-vertical)*.5) var(--pico-nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) :after{content:"\\"}progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--pico-progress-background-color);border:0;border-radius:var(--pico-border-radius);color:var(--pico-progress-color);display:inline-block;height:.5rem;margin-bottom:calc(var(--pico-spacing)*.5);overflow:hidden;vertical-align:baseline;width:100%}progress::-webkit-progress-bar{background:0 0;border-radius:var(--pico-border-radius)}progress[value]::-webkit-progress-value{background-color:var(--pico-progress-color);-webkit-transition:inline-size var(--pico-transition);transition:inline-size var(--pico-transition)}progress::-moz-progress-bar{background-color:var(--pico-progress-color)}@media (prefers-reduced-motion:no-preference){progress:indeterminate{animation:progress-indeterminate 1s linear infinite;background:var(--pico-progress-background-color) linear-gradient(to right,var(--pico-progress-color) 30%,var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat}progress:indeterminate[value]::-webkit-progress-value{background-color:transparent}progress:indeterminate::-moz-progress-bar{background-color:transparent}[dir=rtl] progress:indeterminate{animation-direction:reverse}}@keyframes progress-indeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:not(a,button,input){border-bottom:1px dotted;cursor:help;text-decoration:none}[data-tooltip]:after,[data-tooltip]:before,[data-tooltip][data-placement=top]:after,[data-tooltip][data-placement=top]:before{background:var(--pico-tooltip-background-color);border-radius:var(--pico-border-radius);bottom:100%;color:var(--pico-tooltip-color);content:attr(data-tooltip);display:block;font-size:.875rem;font-style:normal;font-weight:var(--pico-font-weight);left:50%;opacity:0;overflow:hidden;padding:.25rem .5rem;pointer-events:none;position:absolute;text-decoration:none;text-overflow:ellipsis;transform:translate(-50%,-.25rem);white-space:nowrap;z-index:99}[data-tooltip]:after,[data-tooltip][data-placement=top]:after{background-color:transparent;border-left:.3rem solid transparent;border-radius:0;border-right:.3rem solid transparent;border-top:.3rem solid;color:var(--pico-tooltip-background-color);content:"";padding:0;transform:translate(-50%)}[data-tooltip][data-placement=bottom]:after,[data-tooltip][data-placement=bottom]:before{bottom:auto;top:100%;transform:translate(-50%,.25rem)}[data-tooltip][data-placement=bottom]:after{border:.3rem solid transparent;border-bottom-color:currentcolor;transform:translate(-50%,-.3rem)}[data-tooltip][data-placement=left]:after,[data-tooltip][data-placement=left]:before{bottom:auto;left:auto;right:100%;top:50%;transform:translate(-.25rem,-50%)}[data-tooltip][data-placement=left]:after{border:.3rem solid transparent;border-left-color:currentcolor;transform:translate(.3rem,-50%)}[data-tooltip][data-placement=right]:after,[data-tooltip][data-placement=right]:before{bottom:auto;left:100%;right:auto;top:50%;transform:translate(.25rem,-50%)}[data-tooltip][data-placement=right]:after{border:.3rem solid transparent;border-right-color:currentcolor;transform:translate(-.3rem,-50%)}[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{opacity:1}@media (hover:hover) and (pointer:fine){[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{--pico-tooltip-slide-to:translate(-50%,-0.25rem);animation-duration:.2s;animation-fill-mode:forwards;animation-name:tooltip-slide;opacity:0;transform:translate(-50%,.75rem)}[data-tooltip]:focus:after,[data-tooltip]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%,0rem);animation-name:tooltip-caret-slide;transform:translate(-50%,-.25rem)}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:focus:before,[data-tooltip][data-placement=bottom]:hover:after,[data-tooltip][data-placement=bottom]:hover:before{--pico-tooltip-slide-to:translate(-50%,0.25rem);animation-name:tooltip-slide;transform:translate(-50%,-.75rem)}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%,-0.3rem);animation-name:tooltip-caret-slide;transform:translate(-50%,-.5rem)}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:focus:before,[data-tooltip][data-placement=left]:hover:after,[data-tooltip][data-placement=left]:hover:before{--pico-tooltip-slide-to:translate(-0.25rem,-50%);animation-name:tooltip-slide;transform:translate(.75rem,-50%)}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:hover:after{--pico-tooltip-caret-slide-to:translate(0.3rem,-50%);animation-name:tooltip-caret-slide;transform:translate(.05rem,-50%)}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:focus:before,[data-tooltip][data-placement=right]:hover:after,[data-tooltip][data-placement=right]:hover:before{--pico-tooltip-slide-to:translate(0.25rem,-50%);animation-name:tooltip-slide;transform:translate(-.75rem,-50%)}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:hover:after{--pico-tooltip-caret-slide-to:translate(-0.3rem,-50%);animation-name:tooltip-caret-slide;transform:translate(-.05rem,-50%)}}@keyframes tooltip-slide{to{opacity:1;transform:var(--pico-tooltip-slide-to)}}@keyframes tooltip-caret-slide{50%{opacity:0}to{opacity:1;transform:var(--pico-tooltip-caret-slide-to)}}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);position:absolute}[tabindex],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}@media (prefers-reduced-motion:reduce){:not([aria-busy=true]),:not([aria-busy=true]):after,:not([aria-busy=true]):before{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:scroll!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}.pickr{overflow:visible;position:relative;transform:translateY(0)}.pickr *{-webkit-appearance:none;border:none;box-sizing:border-box;outline:none}.pickr .pcr-button{background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" stroke="%2342445A" stroke-width="5px" stroke-linecap="round"><path d="M45,45L5,5"></path><path d="M45,5L5,45"></path></svg>') no-repeat 50%;background-size:0;border-radius:.15em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;height:2em;padding:.5em;position:relative;transition:all .3s;width:2em}.pickr .pcr-button:before{background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:.5em;z-index:-1;z-index:auto}.pickr .pcr-button:after,.pickr .pcr-button:before{border-radius:.15em;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.pickr .pcr-button:after{background:var(--pcr-color);transition:background .3s}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear:before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px hsla(0,0%,100%,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pcr-app *,.pickr *{-webkit-appearance:none;border:none;box-sizing:border-box;outline:none}.pcr-app button.pcr-active,.pcr-app button:focus,.pcr-app input.pcr-active,.pcr-app input:focus,.pickr button.pcr-active,.pickr button:focus,.pickr input.pcr-active,.pickr input:focus{box-shadow:0 0 0 1px hsla(0,0%,100%,.85),0 0 0 3px var(--pcr-color)}.pcr-app .pcr-palette,.pcr-app .pcr-slider,.pickr .pcr-palette,.pickr .pcr-slider{transition:box-shadow .3s}.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus,.pickr .pcr-palette:focus,.pickr .pcr-slider:focus{box-shadow:0 0 0 1px hsla(0,0%,100%,.85),0 0 0 3px rgba(0,0,0,.25)}.pcr-app{background:#fff;border-radius:.1em;box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s,visibility 0s .3s;visibility:hidden;z-index:10000}.pcr-app.visible{opacity:1;transition:opacity .3s;visibility:visible}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports (display:grid){.pcr-app .pcr-swatches{align-items:center;display:grid;grid-template-columns:repeat(auto-fit,1.75em)}}.pcr-app .pcr-swatches>button{background:transparent;border-radius:.15em;cursor:pointer;flex-shrink:0;font-size:1em;height:calc(1.75em - 5px);justify-self:center;margin:2.5px;overflow:hidden;position:relative;transition:all .15s;width:calc(1.75em - 5px);z-index:1}.pcr-app .pcr-swatches>button:before{background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:6px;border-radius:.15em;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.pcr-app .pcr-swatches>button:after{background:var(--pcr-color);border:1px solid rgba(0,0,0,.05);border-radius:.15em;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{align-items:center;display:flex;flex-wrap:wrap;margin:0 -.2em}.pcr-app .pcr-interaction>*{margin:0 .2em}.pcr-app .pcr-interaction input{background:#f1f3f4;border-radius:.15em;color:#75797e;cursor:pointer;font-size:.75em;letter-spacing:.07em;margin-top:.75em;padding:.45em .5em;text-align:center;transition:all .15s}.pcr-app .pcr-interaction input:hover{filter:brightness(.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px hsla(0,0%,100%,.85),0 0 0 3px rgba(66,133,244,.75)}.pcr-app .pcr-interaction .pcr-result{background:#f1f3f4;border-radius:.15em;color:#75797e;cursor:text;flex:1 1 8em;min-width:8em;text-align:left;transition:all .2s}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-save{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover,.pcr-app .pcr-interaction .pcr-save:hover{filter:brightness(.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{background:#f44250}.pcr-app .pcr-interaction .pcr-cancel:focus,.pcr-app .pcr-interaction .pcr-clear:focus{box-shadow:0 0 0 1px hsla(0,0%,100%,.85),0 0 0 3px rgba(244,66,80,.75)}.pcr-app .pcr-selection .pcr-picker{border:2px solid #fff;border-radius:100%;height:18px;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:18px}.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity,.pcr-app .pcr-selection .pcr-color-palette{cursor:grab;cursor:-webkit-grab;display:flex;flex-direction:column;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active,.pcr-app .pcr-selection .pcr-color-palette:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme=nano]{max-width:95vw;width:14.25em}.pcr-app[data-theme=nano] .pcr-swatches{margin-top:.6em;padding:0 .6em}.pcr-app[data-theme=nano] .pcr-interaction{padding:0 .6em .6em}.pcr-app[data-theme=nano] .pcr-selection{display:grid;grid-gap:.6em;align-items:center;align-self:flex-start;grid-template-columns:1fr 4fr;grid-template-rows:5fr auto auto;height:10.5em;width:100%}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview{display:flex;flex-direction:row;grid-area:2/1/4/1;height:100%;justify-content:center;margin-left:.6em;width:100%}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-last-color{display:none}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);border-radius:50em;height:2em;overflow:hidden;position:relative;width:2em}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-preview .pcr-current-color:before{background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:.5em;border-radius:.15em;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette{grid-area:1/1/2/3;height:100%;width:100%;z-index:1}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;height:100%;width:100%}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette .pcr-palette:before{background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:.5em;border-radius:.15em;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser{grid-area:2/2/2/2}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity{grid-area:3/2/3/2}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity{height:.5em;margin:0 .6em}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%)}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-slider{border-radius:50em;flex-grow:1}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(90deg,red,#ff0,lime,cyan,blue,#f0f,red)}.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(90deg,transparent,#000),url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:100%,.25em}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.bottom-0{bottom:0}.left-0{left:0}.left-16{left:4rem}.right-0{right:0}.top-0{top:0}.isolate{isolation:isolate}.m-0{margin:0}.m-auto{margin:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.-ml-4{margin-left:-1rem}.-mt-1{margin-top:-.25rem}.-mt-2{margin-top:-.5rem}.-mt-3{margin-top:-.75rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.h-3{height:.75rem}.h-3\/4{height:75%}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-\[250px\]{height:250px}.h-auto{height:auto}.h-full{height:100%}.max-h-64{max-height:16rem}.w-11{width:2.75rem}.w-24{width:6rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.flex-\[1\]{flex:1}.flex-\[2\]{flex:2}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-center{transform-origin:center}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-l{border-left-width:1px}.border-solid{border-style:solid}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity))}.border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity))}.bg-\[\#0172ad\]{--tw-bg-opacity:1;background-color:rgb(1 114 173/var(--tw-bg-opacity))}.bg-\[\#1c212c\]{--tw-bg-opacity:1;background-color:rgb(28 33 44/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-\[15px\]{padding-bottom:15px;padding-top:15px}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pr-0{padding-right:0}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[\.6rem\]{font-size:.6rem}.text-\[\.75rem\]{font-size:.75rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.text-\[\#ffffff00\]{color:#ffffff00}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-blue-500{--tw-shadow-color:#3b82f6;--tw-shadow:var(--tw-shadow-colored)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.focus-within\:shadow-none:focus-within{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:w-96{width:24rem}.md\:flex-\[1\]{flex:1}.md\:flex-row{flex-direction:row}.md\:border-b-0{border-bottom-width:0}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}} \ No newline at end of file diff --git a/index.html b/index.html index ef1f863..d5f8c15 100644 --- a/index.html +++ b/index.html @@ -23,10 +23,12 @@ <link rel="shortcut icon" type="image/x-icon" href="imgs/logo.svg"> <link rel="icon" type="image/svg+xml" href="imgs/logo.svg"> <link rel="apple-touch-icon" href="imgs/logo.svg"> - <!-- <link rel="stylesheet" href="libraries/pico/pico.classless.min.css"> + <!-- <link rel="stylesheet" href="libraries/pico/pico.classless.css"> <script src="libraries/tailwind/tailwind-mod-noreset.min.js"></script> <script src="libraries/font-awesome/js/all.min.js"></script> --> + <style>.pickr *,.pcr-app *{all:unset;}.pcr-app input:not([type=checkbox]){width:unset;}.pcr-app[data-theme='nano']{display:none;width:100%;max-width:100%;}.pcr-app.visible{display:block;}</style> <link rel="stylesheet" href="dist/style.css"> + <style>.pickr>.pcr-button{width:100%;}</style> </head> <body> <header class="absolute inset-0 text-center grid grid-cols-1 items-center"> @@ -38,7 +40,7 @@ <h2 class="text-[#ffffff00]">Design with Freedom, Build with Power. Free for per <div id="app" class="absolute inset-0"></div> - <!-- <script src="src/App.js"></script> --> + <!-- <script src="src/concat.js" type="module"></script> --> <script src="dist/App.min.js"></script> <script src="https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js"></script> <script> diff --git a/package.json b/package.json index 2590a24..8346a20 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "build:css": "postcss src/style.css -o dist/style.css", - "build:js": "esbuild src/App.js --bundle --minify --sourcemap --outfile=dist/App.min.js", + "build:js": "esbuild src/concat.js --bundle --minify --sourcemap --outfile=dist/App.min.js", "build": "npm run build:css && npm run build:js", "serve": "http-server -c-1 -p 8081" }, diff --git a/src/App-backup.js b/src/App-backup.js index 62f2f07..acb313b 100644 --- a/src/App-backup.js +++ b/src/App-backup.js @@ -88,6 +88,7 @@ window.generateId = () => { return id; } let d = { + doNotRender: null, shiftKey: null, cmdKey: null, iframeSize: null, @@ -2246,7 +2247,7 @@ function Inspector() { let styles = ''; // Regular expression to detect color values - const colorRegex = /^(#[0-9a-f]{3,6}|rgba?(.+)|hsla?(.+))$/i; + const colorRegex = /^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i; // List of properties that should use a textarea const complexProperties = [ @@ -2353,7 +2354,7 @@ function Inspector() { styles += ` <input class="${inputClass}" style="${inputStyle}" type="text" value="${value}" - oninput="${selector} = this.value; saveState();"> + oninput="${selector} = this.value;" onfocus="saveState()" onblur="saveState()"> `; } @@ -2370,29 +2371,31 @@ function Inspector() { ${prop} </button> <textarea class="${textareaClass}" style="${textareaStyle}" - oninput="${selector} = this.value; saveState();">${value}</textarea>`; + oninput="${selector} = this.value;" onfocus="saveState()" onblur="saveState()">${value}</textarea>`; } else { // Check if the property is a color property const isColorProperty = colorRegex.test(value) || value === null; - const inputType = isColorProperty ? 'color' : 'text'; const fallbackColor = isColorProperty && value === null ? '#000000' : value; - // Update the style if the input type is color - const updatedInputStyle = inputType === 'color' - ? `${inputStyle} height: 2rem; margin: 0; padding: .25rem; overflow: hidden;` - : inputStyle; - styles += ` <button - class="${buttonItemClass.split('capitalize').join('')}" - style="color: unset;" - onclick=" - styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''}); + class="${buttonItemClass.split('capitalize').join('')}" + style="color: unset;" + onclick=" + styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''}); "> ${prop} </button> - <input class="${inputClass}" style="${updatedInputStyle}" type="${inputType}" value="${fallbackColor}" - oninput="${selector} = this.value; saveState();">`; + <input + class="${inputClass}" + style="${inputStyle}" + type="text" + value="${fallbackColor}" + ${isColorProperty ? `data-iscolor="${value}"` : ''} + oninput="${selector} = this.value;" + onfocus="saveState()" + onblur="saveState()" + />`; } }); @@ -2403,7 +2406,7 @@ function Inspector() { let styles = ''; // Regular expression to detect color values - const colorRegex = /^(#[0-9a-f]{3,6}|rgba?(.+)|hsla?(.+))$/i; + const colorRegex = /^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i; // Iterate over each root variable Object.keys(project.css.rootVariables).forEach(key => { @@ -2412,18 +2415,12 @@ function Inspector() { // Determine input type based on value const isColor = colorRegex.test(value); - const hasAlpha = value.includes('rgba') || value.includes('hsla'); const isNumeric = !isNaN(parseFloat(value)) && isFinite(value); let inputType = 'text'; let inputStyle = 'height: auto; margin: 0; padding: .4rem;'; - if (isNumeric) { - inputType = 'number'; - } else if (isColor && !hasAlpha) { - inputType = 'color'; - inputStyle = 'height: 2rem; margin: 0; padding: .25rem; overflow: hidden;'; - } + if (isNumeric) inputType = 'number'; // Use processStyles function to generate styles for root variables styles += ` @@ -2437,7 +2434,8 @@ function Inspector() { class="${inputClass}" style="${inputStyle}" type="${inputType}" - value="${value}" + value="${value}" + ${isColor ? `data-iscolor="${value}"` : ''} oninput="${selector} = this.value;" onfocus="saveState()" onblur="saveState()" @@ -3559,6 +3557,7 @@ window.Blocks = () => { window.App = { initialRender: true, render(container) { + if (data.doNotRender) return; const buttonClass = "border-0 bg-transparent py-1"; // Calculate zoom transform based on viewport size and iframe size const size = data.selectedSize; @@ -3778,10 +3777,72 @@ window.App = { return false; } + const oldPickers = document.querySelectorAll('.pcr-app'); + if (oldPickers) oldPickers.forEach(picker => picker.remove()); + // Compare and update only the changed parts const currentDoc = element.firstElementChild; const newDoc = doc.body.firstElementChild; diffNodes(currentDoc, newDoc); + + // Select all elements with the data-color-picker attribute + const pickers = document.querySelectorAll('[data-iscolor]'); + + if (pickers) { + pickers.forEach((picker, index) => { + // Extract the initial color value from the data-iscolor attribute + const initialColor = picker.getAttribute('data-iscolor'); + + const pickr = Pickr.create({ + el: picker, + theme: 'nano', // or 'monolith', or 'nano' + default: initialColor, + inline: true, + components: { + // Main components + preview: true, + opacity: true, + hue: true, + + // Input / output Options + interaction: { + input: true + } + } + }); + + // Set the initial color + pickr.setColor(initialColor); + + // Update color display and state on color change + pickr.on('show', () => { + data.doNotRender = true; + }) + .on('change', color => { + const colorString = color.toHEXA().toString(); + + // Get the oninput attribute value + const onInputCode = pickers[index].getAttribute('oninput'); + + if (onInputCode) { + // Replace 'this.value' with the actual color string + const updatedCode = onInputCode.replace(/this.value/g, `"${colorString}"`); + + // Create a new function using the Function constructor and execute it + const func = new Function(updatedCode); + func(); // Execute the dynamically created function + } + + // Apply color + pickr.applyColor(); + }) + .on('hide', () => { + data.doNotRender = null; + pickr.applyColor(); + App.render('#app'); + }) + }); + } } } @@ -7726,6 +7787,40 @@ window.emptyStorage = () => { } }); } +window.clearAllStorage = () => { + // Clear local storage + localStorage.clear(); + + // Clear session storage + sessionStorage.clear(); + + // Clear all cookies + document.cookie.split(";").forEach(function(cookie) { + const cookieName = cookie.split("=")[0].trim(); + document.cookie = cookieName + '=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/'; + }); + + // Clear all service workers + if ('serviceWorker' in navigator) { + navigator.serviceWorker.getRegistrations().then(function(registrations) { + registrations.forEach(function(registration) { + registration.unregister(); + }); + }); + } + + // Clear all caches + if ('caches' in window) { + caches.keys().then(function(names) { + names.forEach(function(name) { + caches.delete(name); + }); + }); + } + + // Reload the page + location.reload(); +} window.importProject = () => { Modal.render({ title: "Are you sure you want to load a new project?", @@ -8935,9 +9030,8 @@ window.diffNodes = (oldNode, newNode) => { return; } - // Check for data-ignore attribute - if (oldNode.hasAttribute && oldNode.hasAttribute('data-ignore') || - newNode.hasAttribute && newNode.hasAttribute('data-ignore')) { + // Skip nodes that are marked with `data-ignore-diff` + if (oldNode?.getAttribute && oldNode.hasAttribute('data-ignore-diff')) { return; } diff --git a/src/App.js b/src/App.js index 62f2f07..acb313b 100644 --- a/src/App.js +++ b/src/App.js @@ -88,6 +88,7 @@ window.generateId = () => { return id; } let d = { + doNotRender: null, shiftKey: null, cmdKey: null, iframeSize: null, @@ -2246,7 +2247,7 @@ function Inspector() { let styles = ''; // Regular expression to detect color values - const colorRegex = /^(#[0-9a-f]{3,6}|rgba?(.+)|hsla?(.+))$/i; + const colorRegex = /^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i; // List of properties that should use a textarea const complexProperties = [ @@ -2353,7 +2354,7 @@ function Inspector() { styles += ` <input class="${inputClass}" style="${inputStyle}" type="text" value="${value}" - oninput="${selector} = this.value; saveState();"> + oninput="${selector} = this.value;" onfocus="saveState()" onblur="saveState()"> `; } @@ -2370,29 +2371,31 @@ function Inspector() { ${prop} </button> <textarea class="${textareaClass}" style="${textareaStyle}" - oninput="${selector} = this.value; saveState();">${value}</textarea>`; + oninput="${selector} = this.value;" onfocus="saveState()" onblur="saveState()">${value}</textarea>`; } else { // Check if the property is a color property const isColorProperty = colorRegex.test(value) || value === null; - const inputType = isColorProperty ? 'color' : 'text'; const fallbackColor = isColorProperty && value === null ? '#000000' : value; - // Update the style if the input type is color - const updatedInputStyle = inputType === 'color' - ? `${inputStyle} height: 2rem; margin: 0; padding: .25rem; overflow: hidden;` - : inputStyle; - styles += ` <button - class="${buttonItemClass.split('capitalize').join('')}" - style="color: unset;" - onclick=" - styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''}); + class="${buttonItemClass.split('capitalize').join('')}" + style="color: unset;" + onclick=" + styleModal('${key}', '${prop}', '${value}'${detect ? `, '${detect}'` : ''}); "> ${prop} </button> - <input class="${inputClass}" style="${updatedInputStyle}" type="${inputType}" value="${fallbackColor}" - oninput="${selector} = this.value; saveState();">`; + <input + class="${inputClass}" + style="${inputStyle}" + type="text" + value="${fallbackColor}" + ${isColorProperty ? `data-iscolor="${value}"` : ''} + oninput="${selector} = this.value;" + onfocus="saveState()" + onblur="saveState()" + />`; } }); @@ -2403,7 +2406,7 @@ function Inspector() { let styles = ''; // Regular expression to detect color values - const colorRegex = /^(#[0-9a-f]{3,6}|rgba?(.+)|hsla?(.+))$/i; + const colorRegex = /^(#[0-9a-f]{3,6}|rgb?(.+)|hsl?(.+)|hsv?(.+))$/i; // Iterate over each root variable Object.keys(project.css.rootVariables).forEach(key => { @@ -2412,18 +2415,12 @@ function Inspector() { // Determine input type based on value const isColor = colorRegex.test(value); - const hasAlpha = value.includes('rgba') || value.includes('hsla'); const isNumeric = !isNaN(parseFloat(value)) && isFinite(value); let inputType = 'text'; let inputStyle = 'height: auto; margin: 0; padding: .4rem;'; - if (isNumeric) { - inputType = 'number'; - } else if (isColor && !hasAlpha) { - inputType = 'color'; - inputStyle = 'height: 2rem; margin: 0; padding: .25rem; overflow: hidden;'; - } + if (isNumeric) inputType = 'number'; // Use processStyles function to generate styles for root variables styles += ` @@ -2437,7 +2434,8 @@ function Inspector() { class="${inputClass}" style="${inputStyle}" type="${inputType}" - value="${value}" + value="${value}" + ${isColor ? `data-iscolor="${value}"` : ''} oninput="${selector} = this.value;" onfocus="saveState()" onblur="saveState()" @@ -3559,6 +3557,7 @@ window.Blocks = () => { window.App = { initialRender: true, render(container) { + if (data.doNotRender) return; const buttonClass = "border-0 bg-transparent py-1"; // Calculate zoom transform based on viewport size and iframe size const size = data.selectedSize; @@ -3778,10 +3777,72 @@ window.App = { return false; } + const oldPickers = document.querySelectorAll('.pcr-app'); + if (oldPickers) oldPickers.forEach(picker => picker.remove()); + // Compare and update only the changed parts const currentDoc = element.firstElementChild; const newDoc = doc.body.firstElementChild; diffNodes(currentDoc, newDoc); + + // Select all elements with the data-color-picker attribute + const pickers = document.querySelectorAll('[data-iscolor]'); + + if (pickers) { + pickers.forEach((picker, index) => { + // Extract the initial color value from the data-iscolor attribute + const initialColor = picker.getAttribute('data-iscolor'); + + const pickr = Pickr.create({ + el: picker, + theme: 'nano', // or 'monolith', or 'nano' + default: initialColor, + inline: true, + components: { + // Main components + preview: true, + opacity: true, + hue: true, + + // Input / output Options + interaction: { + input: true + } + } + }); + + // Set the initial color + pickr.setColor(initialColor); + + // Update color display and state on color change + pickr.on('show', () => { + data.doNotRender = true; + }) + .on('change', color => { + const colorString = color.toHEXA().toString(); + + // Get the oninput attribute value + const onInputCode = pickers[index].getAttribute('oninput'); + + if (onInputCode) { + // Replace 'this.value' with the actual color string + const updatedCode = onInputCode.replace(/this.value/g, `"${colorString}"`); + + // Create a new function using the Function constructor and execute it + const func = new Function(updatedCode); + func(); // Execute the dynamically created function + } + + // Apply color + pickr.applyColor(); + }) + .on('hide', () => { + data.doNotRender = null; + pickr.applyColor(); + App.render('#app'); + }) + }); + } } } @@ -7726,6 +7787,40 @@ window.emptyStorage = () => { } }); } +window.clearAllStorage = () => { + // Clear local storage + localStorage.clear(); + + // Clear session storage + sessionStorage.clear(); + + // Clear all cookies + document.cookie.split(";").forEach(function(cookie) { + const cookieName = cookie.split("=")[0].trim(); + document.cookie = cookieName + '=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/'; + }); + + // Clear all service workers + if ('serviceWorker' in navigator) { + navigator.serviceWorker.getRegistrations().then(function(registrations) { + registrations.forEach(function(registration) { + registration.unregister(); + }); + }); + } + + // Clear all caches + if ('caches' in window) { + caches.keys().then(function(names) { + names.forEach(function(name) { + caches.delete(name); + }); + }); + } + + // Reload the page + location.reload(); +} window.importProject = () => { Modal.render({ title: "Are you sure you want to load a new project?", @@ -8935,9 +9030,8 @@ window.diffNodes = (oldNode, newNode) => { return; } - // Check for data-ignore attribute - if (oldNode.hasAttribute && oldNode.hasAttribute('data-ignore') || - newNode.hasAttribute && newNode.hasAttribute('data-ignore')) { + // Skip nodes that are marked with `data-ignore-diff` + if (oldNode?.getAttribute && oldNode.hasAttribute('data-ignore-diff')) { return; } diff --git a/src/concat.js b/src/concat.js new file mode 100644 index 0000000..1fa108f --- /dev/null +++ b/src/concat.js @@ -0,0 +1,2 @@ +import '../libraries/pickr/pickr.min.js'; +import './App.js'; \ No newline at end of file diff --git a/src/style.css b/src/style.css index 1ee5f79..ac26ba0 100644 --- a/src/style.css +++ b/src/style.css @@ -1,4 +1,5 @@ @import url('../libraries/pico/pico.classless.min.css'); +@import url('../libraries/pickr/themes/nano.min.css'); /* @tailwind base; */ @tailwind components;