datocms-plugin-asset-optimization 0.7.0 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/assetReplacer-DS1p55So.js +1 -0
- package/dist/assets/index-CFTYESMw.css +1 -0
- package/dist/assets/index-CqRkSJk3.js +22 -0
- package/dist/index.html +2 -2
- package/package.json +24 -16
- package/dist/assets/assetReplacer-CJGOVBH3.js +0 -1
- package/dist/assets/index-Ceq6QGh_.js +0 -64
- package/dist/assets/index-CfmZCasX.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
async function T(e,t,o,r=60,u=2e3){const n="https://site-api.datocms.com",h={Authorization:`Bearer ${t}`,"Content-Type":"application/json",Accept:"application/json","X-Api-Version":"3","X-Environment":o};let c=0;for(;c<r;){c++;try{console.log(`Checking job status (attempt ${c}/${r}): ${e}`);const s=await fetch(`${n}/job-results/${e}`,{method:"GET",headers:h});if(!s.ok){const l=await s.text();throw new Error(`API error: ${s.status} ${l}`)}const a=await s.json();if(a.data.attributes&&a.data.attributes.status===200)return console.log(`Job completed successfully: ${e}`),a;console.log(`Job in progress (${c}/${r}), waiting ${u}ms...`),await new Promise(l=>setTimeout(l,u))}catch(s){console.error(`Error checking job status: ${s instanceof Error?s.message:String(s)}`),await new Promise(a=>setTimeout(a,u))}}throw new Error(`Job timed out after ${r} attempts: ${e}`)}const y=e=>new Promise(t=>setTimeout(t,e)),A=(e,t,o,r)=>{const u=t*r**e;return Math.min(u,o)};async function $(e,t,o,r,u,n=0,h=1e3,c=6e4,s=2){if(console.log(`Replacing DatoCMS asset ID ${e} with image from URL: ${t}${n>0?` (retry ${n})`:""}`),!e||!o)throw new Error("Missing required parameters: assetId and apiToken are required");try{const a="https://site-api.datocms.com",l={Authorization:`Bearer ${o}`,"Content-Type":"application/json",Accept:"application/json","X-Api-Version":"3","X-Environment":r},p=await fetch(`${a}/upload-requests`,{method:"POST",headers:l,body:JSON.stringify({data:{type:"upload_request",attributes:{filename:u||"optimized-image.jpg"}}})});if(p.status===429){const i=p.headers.get("Retry-After"),d=i?Number.parseInt(i,10):0,m=d>0?d*1e3:A(n,h,c,s);return console.log(`Rate limit exceeded. Retrying after ${m}ms`),await y(m),$(e,t,o,r,u,n+1,h,c,s)}if(!p.ok){const i=await p.text();throw new Error(`Failed to create upload request: ${p.status} ${i}`)}const C=await p.json(),{id:P,attributes:{url:q,request_headers:R}}=C.data,w=await fetch(t);if(!w.ok)throw new Error(`Failed to fetch image from URL: ${w.status} ${w.statusText}`);const j=await(await w.blob()).arrayBuffer(),E=new Uint8Array(j),b=await fetch(q,{method:"PUT",headers:{...R,"Content-Length":E.length.toString()},body:E});if(!b.ok)throw new Error(`Failed to upload file to S3: ${b.status} ${b.statusText}`);const f=await fetch(`${a}/uploads/${e}`,{method:"PUT",headers:l,body:JSON.stringify({data:{id:e,type:"upload",attributes:{path:P}}})});if(f.status===429){const i=f.headers.get("Retry-After"),d=i?Number.parseInt(i,10):0,m=d>0?d*1e3:A(n,h,c,s);return console.log(`Rate limit exceeded during asset update. Retrying after ${m}ms`),await y(m),$(e,t,o,r,u,n+1,h,c,s)}if(!f.ok){const i=await f.text();throw new Error(`Failed to update asset metadata: ${f.status} ${i}`)}const g=await f.json();if(g.data&&g.data.type==="job"){const i=g.data.id;console.log(`Asset update initiated as job ${i}, waiting for completion...`);const d=await T(i,o,r);if(d.data.attributes?.status!==200)throw new Error(`Job completed with error status: ${d.data.attributes?.status}`);return d.data.attributes.payload}return console.log("Asset replaced successfully:",g),g}catch(a){if(a instanceof Error&&a.message.includes("API error")&&n<5){const l=A(n,h,c,s);return console.error(`Error replacing asset: ${a.message}. Retrying in ${l}ms...`),await y(l),$(e,t,o,r,u,n+1,h,c,s)}throw console.error("Error replacing asset:",a),a}}class v{queue=[];activeCount=0;config;processing=!1;completedCount=0;failedCount=0;resolvePromise=null;constructor(t){this.config={...t,concurrency:t.concurrency||3,initialRetryDelay:t.initialRetryDelay||1e3,maxRetryDelay:t.maxRetryDelay||6e4,retryBackoffFactor:t.retryBackoffFactor||2}}addTask(t,o,r){this.queue.push({assetId:t,newImageUrl:o,filename:r,retryCount:0})}async processTask(t){try{await $(t.assetId,t.newImageUrl,this.config.apiToken,this.config.environment,t.filename,t.retryCount,this.config.initialRetryDelay,this.config.maxRetryDelay,this.config.retryBackoffFactor),this.completedCount++}catch(o){console.error(`Failed to replace asset ${t.assetId} after multiple retries:`,o),this.failedCount++}finally{this.activeCount--,this.processQueue()}}processQueue(){if(this.queue.length===0&&this.activeCount===0&&this.resolvePromise){this.resolvePromise({succeeded:this.completedCount,failed:this.failedCount}),this.resolvePromise=null,this.processing=!1;return}for(;this.queue.length>0&&this.activeCount<(this.config.concurrency||3);){const t=this.queue.shift();t&&(this.activeCount++,this.processTask(t))}}start(){return this.processing?Promise.reject(new Error("Asset replacer is already processing")):(this.processing=!0,this.completedCount=0,this.failedCount=0,new Promise(t=>{this.resolvePromise=t,this.processQueue()}))}getStatus(){return{queued:this.queue.length,active:this.activeCount,completed:this.completedCount,failed:this.failedCount}}}export{v as AssetReplacer,$ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:700;src:url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff2"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:700;src:url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff2"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:500;src:url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff2"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:500;src:url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff2"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:400;src:url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("woff2"),url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("woff"),url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:400;src:url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("woff2"),url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("woff"),url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("opentype")}html{font-size:16px;height:auto}body,html{margin:0;padding:0}._button_474wk_1{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;border-radius:4px;box-sizing:border-box;color:var(--base-body-color);cursor:pointer;display:inline-block;font-family:inherit;font-weight:var(--font-weight-bold);line-height:inherit;opacity:1;text-decoration:none;transition:all .3s var(--material-ease);vertical-align:middle;white-space:nowrap}._button_474wk_1:focus,._button_474wk_1:hover{opacity:.8}._button_474wk_1:active{opacity:.7}._disabled_474wk_30{cursor:not-allowed}._buttonType-muted_474wk_34{background-color:var(--light-color);color:var(--accent-color)}._buttonType-muted_474wk_34._disabled_474wk_30{background-color:var(--light-bg-color);color:#0003}._buttonType-muted_474wk_34._disabled_474wk_30:active,._buttonType-muted_474wk_34._disabled_474wk_30:focus,._buttonType-muted_474wk_34._disabled_474wk_30:hover{color:#0003}._buttonType-primary_474wk_50{background-color:var(--accent-color);color:#fff}._buttonType-primary_474wk_50:active,._buttonType-primary_474wk_50:focus,._buttonType-primary_474wk_50:hover{color:#fff}._buttonType-primary_474wk_50._disabled_474wk_30{background-color:var(--disabled-bg-color);color:#0003}._buttonType-primary_474wk_50._disabled_474wk_30:active,._buttonType-primary_474wk_50._disabled_474wk_30:focus,._buttonType-primary_474wk_50._disabled_474wk_30:hover{color:#0003}._buttonType-negative_474wk_71,._buttonType-negative_474wk_71:active,._buttonType-negative_474wk_71:focus,._buttonType-negative_474wk_71:hover{background-color:var(--alert-color);color:#fff}._buttonType-negative_474wk_71._disabled_474wk_30{background-color:var(--disabled-bg-color);color:#0003}._buttonSize-xxs_474wk_88{font-size:1em;padding:.5em .8em}._buttonSize-xs_474wk_93{font-size:1em;padding:.6em .8em}._buttonSize-s_474wk_98{font-size:1em;padding:.7em 1em}._buttonSize-m_474wk_103{font-size:1.1em;padding:.7em 1em}._buttonSize-l_474wk_108{font-size:1.2em;padding:.7em 1em}._buttonSize-xl_474wk_113{font-size:1.2em;padding:1em}._fullWidth_474wk_118{display:block;text-align:center;width:100%}._button__leftIcon_474wk_124,._button__rightIcon_474wk_125{display:inline-block;line-height:.6;vertical-align:middle}._button__leftIcon_474wk_124 svg,._button__rightIcon_474wk_125 svg{fill:var(--accent-color)}._button__leftIcon_474wk_124{margin-right:.5em}._button__leftIcon_474wk_124:last-child{margin-right:0}._button__rightIcon_474wk_125{margin-left:.5em}._button__rightIcon_474wk_125:first-child{margin-left:0}._Button_1h1w1_1{justify-column:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:#fff;border:0;border-right:1px solid var(--border-color);border:1px solid var(--border-color);border-left-width:0;box-sizing:border-box;color:var(--base-body-color);color:rgba(var(--base-body-color-rgb-components,.6));cursor:pointer;display:flex;font-family:inherit;font-size:inherit;line-height:inherit;padding:7px 13px}._Button_1h1w1_1:hover{background-color:var(--light-bg-color)}._Button_1h1w1_1 svg{fill:var(--light-body-color)}._Button--s_1h1w1_32{padding:3px 10px}._Button--disabled_1h1w1_36{color:var(--light-body-color);cursor:not-allowed}._Button--disabled_1h1w1_36:hover{background:#fff}._Button--selected_1h1w1_45{background-color:var(--accent-color);border-color:var(--accent-color);color:#fff}._Button--selected_1h1w1_45 svg{fill:#fff}._Button--selected_1h1w1_45:hover{background-color:var(--accent-color)}._Button--selected_1h1w1_45._Button--disabled_1h1w1_36,._Button--selected_1h1w1_45:hover{background-color:rgba(var(--accent-color-rgb-components),.8);border-color:rgba(var(--accent-color-rgb-components),.8)}._Button_1h1w1_1:first-child{border-left-width:1px;border-radius:4px 0 0 4px}._Button_1h1w1_1:last-child{border-radius:0 4px 4px 0}._Group_10mj4_1{align-items:stretch;background-color:#fff;display:flex;overflow:hidden}._themeVariables_2dr1w_1{--base-body-color-rgb-components:52,54,58;--base-body-color:rgb(var(--base-body-color-rgb-components));--light-body-color-rgb-components:132,132,132;--light-body-color:rgb(var(--light-body-color-rgb-components));--placeholder-body-color-rgb-components:198,198,198;--placeholder-body-color:rgb(var(--placeholder-body-color-rgb-components));--light-bg-color-rgb-components:245,245,245;--light-bg-color:rgb(var(--light-bg-color-rgb-components));--lighter-bg-color-rgb-components:248,248,248;--lighter-bg-color:rgb(var(--lighter-bg-color-rgb-components));--disabled-bg-color-rgb-components:237,237,237;--disabled-bg-color:rgb(var(--disabled-bg-color-rgb-components));--border-color-rgb-components:240,240,240;--border-color:rgb(var(--border-color-rgb-components));--darker-border-color-rgb-components:215,215,215;--darker-border-color:rgb(var(--darker-border-color-rgb-components));--alert-color-rgb-components:255,94,73;--alert-color:rgb(var(--alert-color-rgb-components));--warning-color-rgb-components:255,215,0;--warning-color:rgb(var(--warning-color-rgb-components));--notice-color-rgb-components:70,215,0;--notice-color:rgb(var(--notice-color-rgb-components));--warning-bg-color-rgb-components:255,255,229;--warning-bg-color:rgb(var(--warning-bg-color-rgb-components));--add-color-rgb-components:76,176,109;--add-color:rgb(var(--add-color-rgb-components));--remove-color-rgb-components:235,87,106;--remove-color:rgb(var(--remove-color-rgb-components));--base-font-family:"colfax-web","Roboto","Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;--monospaced-font-family:"Roboto Mono","Menlo","Bitstream Vera Sans Mono",Consolas,Courier,monospace;--font-weight-bold:500;--spacing-s:.375rem;--spacing-m:.75rem;--spacing-l:1.5rem;--spacing-xl:2.25rem;--spacing-xxl:3.75rem;--spacing-xxxl:6rem;--negative-spacing-s:-.375rem;--negative-spacing-m:-.75rem;--negative-spacing-l:-1.5rem;--negative-spacing-xl:-2.25rem;--negative-spacing-xxl:-3.75rem;--negative-spacing-xxxl:-6rem;--font-size-xxs:.6875rem;--font-size-xs:.75rem;--font-size-s:.875rem;--font-size-m:.9375rem;--font-size-l:1.0625rem;--font-size-xl:1.1875rem;--font-size-xxl:1.5625rem;--font-size-xxxl:1.875rem;--material-ease:cubic-bezier(.55,0,.1,1);--inertial-ease:cubic-bezier(.19,1,.22,1)}._canvas_2dr1w_70{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;color:var(--base-body-color);font-family:var(--base-font-family);font-size:var(--font-size-m);line-height:1.5}._inspector_u6041_1{margin:var(--spacing-l) 0}._panel_u6041_5{border-bottom:1px solid var(--border-color)}._panelHandle_u6041_9{all:inherit;background:var(--light-bg-color);border:0;box-sizing:border-box;cursor:pointer;display:block;font-weight:var(--font-weight-bold);padding:5px 10px;width:100%}._panelHandle_u6041_9:hover{background:var(--lighter-bg-color)}._panelBody_u6041_25{border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);padding:20px}._groupDescription_u6041_31{font-size:var(--font-size-s);line-height:1.2;margin-bottom:20px}._propertyGroup_u6041_37{border:1px solid var(--border-color);border-radius:5px}._propertyOrMethod_u6041_42{border-bottom:1px solid var(--border-color);line-height:1.2}._propertyOrMethod_u6041_42 p{margin:0}._propertyOrMethodBody_u6041_51{padding:15px}._propertyOrMethodExample_u6041_55{position:relative}._propertyOrMethodExample_u6041_55 pre{background:var(--light-bg-color);font-size:.8em;margin:0;max-height:240px;overflow:auto;padding:15px}._propertyOrMethodName_u6041_68{color:var(--light-body-color);display:block;font-family:var(--monospaced-font-family);font-size:.9em;font-weight:700;margin-bottom:5px;text-decoration:none}._propertyOrMethodName_u6041_68:hover{text-decoration:underline}._propertyOrMethodExampleActions_u6041_82{background:#fff;display:flex;padding:15px}._propertyOrMethodExampleActions_u6041_82>*{margin-right:10px}._fieldError_qi0xk_1{color:var(--alert-color);font-size:var(--font-size-xs);line-height:1.2;margin-top:var(--spacing-s)}._FieldGroup_uz9ju_1{display:block}._FieldGroup__item_uz9ju_5{display:block;margin-bottom:var(--spacing-l)}._FieldGroup__item_uz9ju_5:last-child{margin-bottom:0}._fieldHint_1avon_1{color:var(--light-body-color);font-size:var(--font-size-xs);line-height:1.2;margin-top:var(--spacing-s)}._fieldHint_1avon_1 a{color:inherit}._fieldHint_1avon_1 a:hover{text-decoration:none}._Form_5qspp_1,._Form__item_5qspp_5{display:block}._Form__item_5qspp_5:last-child{margin-bottom:0}._Form__item--default_5qspp_13{margin-bottom:var(--spacing-l)}._Form__item--condensed_5qspp_17{margin-bottom:var(--spacing-m)}._formLabel_tcjrv_1{align-items:center;color:var(--light-body-color);display:flex;margin-bottom:var(--spacing-s)}._formLabel_tcjrv_1:hover ._formLabel__code_tcjrv_8{opacity:1}._formLabel--error_tcjrv_14{color:var(--alert-color)}._formLabel__label_tcjrv_18{flex:1}._formLabel__code_tcjrv_8{font-family:var(--monospaced-font-family);font-size:.95em;opacity:0;position:absolute;transition:opacity .2s var(--material-ease)}._hotKey_1eko8_1{align-items:center;display:inline-flex;gap:15px}._label_1eko8_7{align-items:center;display:flex}._keys_1eko8_12{align-items:center;display:inline-flex;gap:4px}._hotKeyKey_1eko8_18{background:var(--light-color);border-radius:3px;padding:5px 8px}._Section_zh95u_1{position:relative}._Section--highlighted_zh95u_5:before{animation:_pageContentSectionHighligh_zh95u_1 4s ease-in-out .25s forwards;border-radius:4px;box-shadow:0 0 0 4px var(--accent-color);content:"";inset:-20px -30px;pointer-events:none;position:absolute;z-index:10}._Section__header_zh95u_19{margin-bottom:var(--spacing-l);margin-left:var(--negative-spacing-l);margin-right:var(--negative-spacing-l);position:relative}._Section__header_zh95u_19:before{background-color:var(--border-color);content:"";display:block;height:1px;left:0;position:absolute;right:0;top:50%;z-index:1}._Section__title_zh95u_38{align-items:center;background-color:#fff;display:inline-flex;font-size:var(--font-size-l);font-weight:var(--font-weight-bold);margin-left:var(--spacing-m);margin-right:var(--spacing-l);padding-left:var(--spacing-m);padding-right:var(--spacing-m);position:relative;z-index:2}._Section__arrow_zh95u_55{all:initial;align-self:stretch;cursor:pointer;margin-right:.3em;width:15px}._Section__arrow_zh95u_55:before{border-bottom:6px solid transparent;border-left:6px solid var(--base-body-color);border-top:6px solid transparent;content:"";height:0;left:14px;margin-top:-6px;position:absolute;top:50%;transform-origin:50% 50%;transition:transform .2s ease-out;width:0}._Section__arrow_zh95u_55:hover:before{opacity:.7}._Section__arrow--is-open_zh95u_82:before{transform:rotate(90deg)}@keyframes _pageContentSectionHighligh_zh95u_1{0%{box-shadow:0 0 0 4px var(--accent-color),0 0 0 4px rgba(var(--accent-color-rgb-components),.7)}15%{box-shadow:0 0 0 4px var(--accent-color),0 0 0 80px transparent}75%{box-shadow:0 0 0 4px var(--accent-color),0 0 0 80px transparent}to{box-shadow:0 0 0 4px transparent,0 0 0 80px transparent}}._SidebarPanel_4uwco_1{border-bottom:1px solid var(--border-color)}._SidebarPanel__header_4uwco_5{align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:#fff;background-color:var(--light-bg-color);border:0;box-sizing:border-box;color:var(--base-body-color);cursor:pointer;display:flex;font-family:inherit;font-size:inherit;line-height:inherit;padding:0;text-align:left;-webkit-user-select:none;user-select:none;width:100%}._SidebarPanel__header_4uwco_5:focus,._SidebarPanel__header_4uwco_5:hover{background-color:var(--lighter-bg-color)}._SidebarPanel__header__title_4uwco_30{flex:1;font-weight:500;padding:0 20px}._SidebarPanel__header__chevron_4uwco_36{align-items:center;display:flex;padding:13px 15px}._SidebarPanel__content_4uwco_42{background-color:#fff;padding:20px}._SidebarPanel__content--no-padding_4uwco_47{padding:0}._Spinner--inline_oumod_1{display:inline-block;position:relative;vertical-align:middle}._Spinner--centered_oumod_7{left:50%;position:absolute;top:50%}._Spinner__bar_oumod_13{animation:_Spinner__spin_oumod_1 1.2s linear infinite;background-color:var(--light-body-color);height:14%;left:-20%;position:absolute;top:0;width:40%}@keyframes _Spinner__spin_oumod_1{0%{opacity:1}to{opacity:.15}}._switchField__flex_16z4j_1{align-items:center;display:flex}._switchField__switchInput_16z4j_6{width:55px}._switchField__label_16z4j_10{color:var(--base-body-color);flex:1;line-height:1.1;line-height:20px;margin-bottom:0;pointer-events:none;-moz-user-select:text;-ms-user-select:text;-webkit-user-select:text;user-select:text}._switchField__below_16z4j_22{margin-left:55px;margin-top:var(--spacing-s)}._switchInput__inner_1knbg_1{color:#fff;font-size:12px;left:24px;position:absolute}._switchInput_1knbg_1{background-color:#ccc;border:1px solid #ccc;border-radius:20px;box-sizing:border-box;cursor:pointer;display:inline-block;height:22px;line-height:20px;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1);vertical-align:middle;width:44px}._switchInput_1knbg_1:after{animation-duration:.3s;animation-name:_switchInput__off_1knbg_1;animation-timing-function:cubic-bezier(.35,0,.25,1);background-color:#fff;border-radius:50%;box-shadow:0 2px 5px #00000042;content:" ";cursor:pointer;height:18px;left:2px;position:absolute;top:1px;transform:scale(1);transition:left .3s cubic-bezier(.35,0,.25,1);width:18px}._switchInput_1knbg_1:focus:after,._switchInput_1knbg_1:hover{animation-name:_switchInput__on_1knbg_1;transform:scale(1.1)}._switchInput__checked_1knbg_47{background-color:var(--accent-color);border:1px solid var(--accent-color)}._switchInput__checked_1knbg_47 ._switchInput__inner_1knbg_1{left:6px}._switchInput__checked_1knbg_47:after{left:22px}._switchInput__disabled_1knbg_60{background:#ccc;border-color:#ccc;cursor:no-drop}._switchInput__disabled_1knbg_60:after{animation-name:_none_1knbg_1;background:#9e9e9e;cursor:no-drop}._switchInput__disabled_1knbg_60:focus:after,._switchInput__disabled_1knbg_60:hover{animation-name:_none_1knbg_1;transform:scale(1)}@keyframes _switchInput__on_1knbg_1{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1.1)}}@keyframes _switchInput__off_1knbg_1{0%{transform:scale(1.1)}to{transform:scale(1)}}._TextInput_x2oj2_1{appearance:none;background-image:none;border:1px solid var(--border-color);border-radius:0;box-sizing:border-box;display:block;font-family:inherit;font-size:var(--font-size-m);padding:10px;resize:none;transition:border .2s var(--material-ease);width:100%}._TextInput_x2oj2_1::placeholder{color:var(--placeholder-body-color)}._TextInput_x2oj2_1:hover{border-color:var(--darker-border-color)}._TextInput_x2oj2_1:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--semi-transparent-accent-color);outline:0}._TextInput--monospaced_x2oj2_30{font-family:var(--monospaced-font-family);font-size:var(--font-size-s)}._TextInput--disabled_x2oj2_35{background:var(--lighter-bg-color);border-color:var(--border-color);color:var(--light-body-color)}._TextInput--error_x2oj2_41,._TextInput--error_x2oj2_41:focus,._TextInput--error_x2oj2_41:hover{border-color:var(--alert-color)}._TextInput--error_x2oj2_41:focus{box-shadow:0 0 0 3px rgba(var(--alert-color-rgb-components),.2)}._TextareaInput_1wnu9_1{appearance:none;background-image:none;border:1px solid var(--border-color);border-radius:0;box-sizing:border-box;display:block;font-family:inherit;font-size:var(--font-size-m);padding:10px;resize:none;transition:border .2s var(--material-ease);width:100%}._TextareaInput_1wnu9_1::placeholder{color:var(--placeholder-body-color)}._TextareaInput_1wnu9_1:hover{border-color:var(--darker-border-color)}._TextareaInput_1wnu9_1:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--semi-transparent-accent-color);outline:0}._TextareaInput--monospaced_1wnu9_30{font-family:var(--monospaced-font-family);font-size:var(--font-size-s)}._TextareaInput--disabled_1wnu9_35{background:var(--lighter-bg-color);border-color:var(--border-color);color:var(--light-body-color)}._TextareaInput--error_1wnu9_41,._TextareaInput--error_1wnu9_41:focus,._TextareaInput--error_1wnu9_41:hover{border-color:var(--alert-color)}._TextareaInput--error_1wnu9_41:focus{box-shadow:0 0 0 3px rgba(var(--alert-color-rgb-components),.2)}._Button_fy6g6_1{align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);box-sizing:border-box;color:var(--base-body-color);cursor:pointer;display:flex;font-family:inherit;justify-content:center;line-height:inherit;min-height:49px;padding:0;width:49px}._Button_fy6g6_1:focus,._Button_fy6g6_1:hover{background-color:var(--light-bg-color)}._Button_fy6g6_1:first-child{border-left:0}._Button_fy6g6_1:last-child{border-right:0}@media screen and (min-width:380px){._Button_fy6g6_1{min-height:59px;width:59px}._Button_fy6g6_1 svg{font-size:20px}}._Stack_1nnzo_1{align-items:center;display:flex;flex:1;flex-direction:row;justify-content:center;padding:10px 15px}._Stack--s_1nnzo_10{padding-bottom:var(--spacing-s);padding-top:var(--spacing-s)}._Stack--l_1nnzo_15{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}._Title_1dx5n_1{font-size:var(--font-size-l);font-weight:500;line-height:1.1;margin-right:15px}@media screen and (min-width:380px){._Title_1dx5n_1{font-size:var(--font-size-xl)}}._Toolbar_1cwb8_1{align-items:stretch;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:flex;position:relative}._Toolbar_1cwb8_1:first-child{border-top-width:0}._Toolbar_1cwb8_1:last-child{border-bottom-width:0}._tooltip_3z5rn_1{word-wrap:break-word;background:#fff;border-radius:4px;box-shadow:0 1px 9px #0003;-webkit-hyphens:auto;hyphens:auto;max-width:400px;overflow-wrap:break-word;padding:10px 15px}._Dropdown_nie0g_1{position:relative}._Dropdown__spacer_nie0g_5{inset:0;pointer-events:none;position:absolute}._Dropdown__menu__search_nie0g_11{border-bottom:1px solid var(--border-color);padding:7px}._Dropdown__menu__search__input_nie0g_16{appearance:none;background-image:none;border:1px solid var(--border-color);border-radius:3px;box-sizing:border-box;display:block;font-family:inherit;font-size:.9em;padding:8px;resize:none;transition:border .2s var(--material-ease);width:100%}._Dropdown__menu__search__input_nie0g_16::placeholder{color:var(--placeholder-body-color)}._Dropdown__menu__search__input_nie0g_16:hover{border-color:var(--darker-border-color)}._Dropdown__menu__search__input_nie0g_16:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--semi-transparent-accent-color);outline:0}._Dropdown__menu-container_nie0g_45{position:fixed;visibility:hidden}._Dropdown__menu_nie0g_11{background-color:#fff;border-radius:4px;box-shadow:0 3px 10px #0003;margin-bottom:var(--spacing-xl);margin-top:10px;min-width:200px;padding:1px 0;text-align:initial}._Dropdown__menu__inner_nie0g_61{margin:7px 0}._Dropdown__menu__group__title_nie0g_65{background-color:var(--light-bg-color);color:var(--light-body-color);font-size:var(--font-size-xs);padding:5px 15px 3px;text-transform:uppercase}._Dropdown__menu__group__content_nie0g_73{margin:8px 0}._Dropdown__menu__text_nie0g_77{color:var(--light-body-color);display:block;line-height:1.2;padding:4px 15px;position:relative;text-align:left}._Dropdown__menu__option_nie0g_86{align-items:center;color:var(--base-body-color);display:flex;padding:4px 15px;position:relative;text-align:left;text-decoration:none;white-space:nowrap}._Dropdown__menu__option_nie0g_86:focus,._Dropdown__menu__option_nie0g_86:hover{background-color:var(--light-bg-color)}._Dropdown__menu__option_nie0g_86>a{color:inherit;display:block;text-decoration:none}._Dropdown__menu__option--is-selected_nie0g_108{background-color:var(--light-bg-color)}._Dropdown__menu__option--is-disabled_nie0g_112{opacity:.5}._Dropdown__menu__option--is-disabled_nie0g_112 ._Dropdown__menu__option__content_nie0g_115{cursor:not-allowed}._Dropdown__menu__option--is-dangerous_nie0g_120{color:var(--alert-color)}._Dropdown__menu__option--is-dangerous_nie0g_120 svg{fill:var(--alert-color)}._Dropdown__menu__option--is-dangerous_nie0g_120:focus,._Dropdown__menu__option--is-dangerous_nie0g_120:hover{background-color:var(--alert-color);color:#fff}._Dropdown__menu__option--is-dangerous_nie0g_120:focus svg,._Dropdown__menu__option--is-dangerous_nie0g_120:hover svg{fill:#fff}._Dropdown__menu__option--is-active_nie0g_138{font-weight:500}._Dropdown__menu__option--is-active_nie0g_138:focus,._Dropdown__menu__option--is-active_nie0g_138:hover{background-color:none}._Dropdown__menu__option--is-invalid_nie0g_151,._Dropdown__menu__option--is-valid_nie0g_147{padding-left:35px}._Dropdown__menu__option--is-invalid_nie0g_151:before{background-color:var(--alert-color);border-radius:4px;content:"";font-size:12px;height:8px;left:15px;position:absolute;top:50%;transform:translateY(-50%);width:8px}._Dropdown__menu__option__content_nie0g_115{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:inherit;cursor:pointer;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0;text-align:left}._Dropdown__menu__option__content_nie0g_115>svg{fill:var(--light-body-color);color:var(--light-body-color);display:inline-block;font-size:13px;padding-right:8px;vertical-align:middle}._Dropdown__menu__option__icons_nie0g_194{align-items:center;display:flex;padding-left:15px}._Dropdown__menu__option__icon_nie0g_194{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:var(--base-body-color);color:var(--light-body-color);cursor:pointer;display:inline-block;font-family:inherit;font-size:inherit;font-size:13px;line-height:inherit;line-height:10px;opacity:0;padding:3px;position:relative;top:-1px;transition:transform .1s ease-in-out;width:100%;width:auto}._Dropdown__menu__option_nie0g_86:focus ._Dropdown__menu__option__icon_nie0g_194,._Dropdown__menu__option_nie0g_86:hover ._Dropdown__menu__option__icon_nie0g_194{opacity:1}._Dropdown__menu__option__icon_nie0g_194:focus,._Dropdown__menu__option__icon_nie0g_194:hover{transform:scale(1.2)}._Dropdown__menu__option__icon_nie0g_194 svg{fill:var(--light-body-color)}._Dropdown__menu__option__icon--delete_nie0g_241{color:var(--alert-color)}._Dropdown__menu__option__icon--delete_nie0g_241 svg{fill:var(--alert-color)}._Dropdown__menu__separator_nie0g_248{background-color:var(--border-color);height:1px;margin:8px 0}._Dropdown__menu_nie0g_11{overflow-y:auto}._SplitViewPane_1cl1f_1{height:100%;overflow-y:auto;position:absolute;width:100%}._SplitViewSash_tds51_1{align-items:center;background-color:rgba(var(--light-color-components),0);display:flex;height:100%;justify-content:center;position:absolute;top:0;transition:background-color .2s .15s;width:100%;z-index:2}._SplitViewSash--dragging_tds51_15,._SplitViewSash_tds51_1:hover{background-color:var(--light-color)}._SplitViewSash--dragging_tds51_15:has(._SplitViewSash__content_tds51_19:hover),._SplitViewSash_tds51_1:hover:has(._SplitViewSash__content_tds51_19:hover){background-color:transparent}._SplitViewSash--no-resize_tds51_24{pointer-events:none}._SplitViewSash--vertical_tds51_28{cursor:col-resize}._SplitViewSash--horizontal_tds51_32{cursor:row-resize}._SplitViewSash__content_tds51_19{cursor:pointer;left:50%;padding:15px 0;pointer-events:auto;position:absolute;top:50%;transform:translate(-50%,-50%)}._SplitViewSash__content__button_tds51_46{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:6px;color:var(--light-body-color);display:flex;font-size:10px;height:20px;justify-content:center;width:20px;z-index:2}._SplitViewSash__content__button_tds51_46 svg{fill:currentColor;display:block}._SplitViewSash__content_tds51_19:hover ._SplitViewSash__content__button_tds51_46{background:var(--light-bg-color);color:var(--base-body-color)}._SplitView_1oi17_1{flex:1;height:100%;position:relative;width:100%}._SplitView--dragging_1oi17_8._SplitView--vertical_1oi17_8{cursor:col-resize}._SplitView--dragging_1oi17_8._SplitView--horizontal_1oi17_12{cursor:row-resize}._SplitView--disable-select_1oi17_16{-webkit-user-select:none;user-select:none}._SplitView--disable-select_1oi17_16 ._SplitViewPane_1oi17_20{pointer-events:none}._VerticalSplitPane__expand_80tii_1{background:#fff;cursor:pointer;inset:0;position:absolute;transition:all .3s cubic-bezier(.55,0,.1,1)}._VerticalSplitPane__expand_80tii_1:hover{animation:_VerticalSplitPane__expand_80tii_1 .6s cubic-bezier(.55,0,.1,1);background:var(--light-bg-color)}._VerticalSplitPane__expand_80tii_1._VerticalSplitPane__expand_80tii_1{border-right:1px solid var(--border-color);transform-origin:left}._VerticalSplitPane__expand_80tii_1._VerticalSplitPane__expand--right_80tii_25{border-left:1px solid var(--border-color);transform-origin:right}@keyframes _VerticalSplitPane__expand_80tii_1{0%{transform:scaleX(1)}50%{transform:scaleX(2)}to{transform:scaleX(1)}}._VerticalSplitPaneOverlay_80tii_42{background:linear-gradient(180deg,#30302f80,#30302f4d);height:100%;inset:0;overflow:hidden;position:absolute;z-index:12}._VerticalSplitPaneOverlay__primary_80tii_58{inset:0;position:absolute;z-index:1}._VerticalSplitPaneOverlay__primary--left_80tii_67{margin-right:20px}._VerticalSplitPaneOverlay__primary--right_80tii_71{margin-left:20px}._VerticalSplitPaneOverlay__secondary_80tii_75{background:#fff;bottom:0;box-shadow:0 0 15px #0006;position:absolute;top:0}._VerticalSplitPaneOverlay__secondary--left_80tii_83{left:0}._VerticalSplitPaneOverlay__secondary--right_80tii_87{right:0}._VerticalSplitPaneOverlay__sash_80tii_91{height:100%;position:absolute;top:0}._VerticalSplitPaneOverlay__secondary--left_80tii_83 ._VerticalSplitPaneOverlay__sash_80tii_91{right:0}._VerticalSplitPaneOverlay__secondary--right_80tii_87 ._VerticalSplitPaneOverlay__sash_80tii_91{left:0}:root{--accent-color: #6c5ce7;--border-color: #e1e5eb;--text-color: #4a4a4a;--text-color-light: #767676;--green-color: #27ae60;--yellow-color: #f1c40f;--red-color: #e74c3c;--spacing-xs: 4px;--spacing-s: 8px;--spacing-m: 16px;--spacing-l: 24px;--spacing-xl: 32px;--font-size-xxs: 12px;--font-size-xs: 14px;--font-size-s: 16px;--font-size-m: 18px;--font-size-l: 20px;--font-size-xl: 24px}._assetListCard_jv9xn_23{margin-top:var(--spacing-m);border-radius:8px;background-color:#fff;border:1px solid var(--border-color);box-shadow:0 2px 8px #00000014;overflow:hidden;position:relative;animation:_fadeIn_jv9xn_1 .3s ease-in-out}@keyframes _fadeIn_jv9xn_1{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}._assetListCard_jv9xn_23:hover{box-shadow:0 4px 12px #0000001f}._assetListHeaderTitle_jv9xn_52{display:flex;align-items:center;gap:var(--spacing-s)}._assetListHeaderTitle_jv9xn_52 h3{margin:0;font-size:var(--font-size-m);color:var(--accent-color);display:flex;align-items:center;gap:var(--spacing-xs)}._categoryBadge_jv9xn_67{display:flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 var(--spacing-xs);border-radius:14px;font-size:var(--font-size-xs);font-weight:600;color:#fff;margin-right:var(--spacing-xs)}._badgeGreen_jv9xn_81{background-color:#43a047}._badgeRed_jv9xn_85{background-color:#e53935}._badgeGray_jv9xn_89{background-color:#757575}._badgeBlue_jv9xn_93{background-color:var(--accent-color)}._noAssetsMessage_jv9xn_97{padding:var(--spacing-l);text-align:center;color:var(--light-body-color);font-style:italic}._assetList_jv9xn_23{list-style:none;padding:0;margin:0;max-height:400px;overflow-y:auto}._assetListItem_jv9xn_112{padding:var(--spacing-m);border-bottom:1px solid var(--border-color);transition:background-color .2s ease}._assetListItem_jv9xn_112:last-child{border-bottom:none}._assetListItem_jv9xn_112:hover{background-color:#0071eb0d}._assetItemContent_jv9xn_126{display:flex;align-items:flex-start;gap:var(--spacing-m)}._assetIcon_jv9xn_132{flex-shrink:0}._fileIconWrapper_jv9xn_136{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:var(--accent-color);color:#fff;font-size:var(--font-size-xs);font-weight:600;border-radius:4px}._assetDetails_jv9xn_149{flex:1;min-width:0}._assetPath_jv9xn_154{margin:0 0 var(--spacing-xs) 0;font-weight:500;word-break:break-word;line-height:1.4}._optimizationStats_jv9xn_161{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-s);margin-top:var(--spacing-xs)}._sizeInfo_jv9xn_169{display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}._sizeBefore_jv9xn_176,._sizeAfter_jv9xn_176{display:flex;align-items:center;gap:4px}._sizeLabel_jv9xn_182{color:var(--light-body-color);font-size:var(--font-size-xs)}._sizeValue_jv9xn_187{font-family:var(--mono-font-family);font-size:var(--font-size-xs)}._sizeBefore_jv9xn_176 ._sizeValue_jv9xn_187{color:#e53935}._sizeAfter_jv9xn_176 ._sizeValue_jv9xn_187{color:#43a047}._sizeArrow_jv9xn_200{color:var(--light-body-color);margin:0 var(--spacing-xs)}._savingsBadge_jv9xn_205{display:inline-block;padding:4px var(--spacing-s);border-radius:4px;font-size:var(--font-size-xxs);font-weight:600;color:#fff;margin-left:var(--spacing-xs)}._assetActions_jv9xn_215{display:flex;align-items:center;flex-shrink:0;margin-left:auto}._inspector_jv9xn_222{margin-top:var(--spacing-l)}._container_jv9xn_226{padding:var(--spacing-l);max-width:900px;margin:0 auto}._header_jv9xn_232{margin-bottom:var(--spacing-l);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-m)}._headerTitle_jv9xn_238{font-size:28px;margin-bottom:var(--spacing-s);color:var(--accent-color)}._description_jv9xn_244{font-size:16px;line-height:1.5;color:var(--light-body-color);max-width:600px}._card_jv9xn_251{background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000000d;padding:var(--spacing-l);margin-bottom:var(--spacing-l);border:1px solid var(--border-color)}._stats_jv9xn_260{display:flex;flex-wrap:wrap;gap:var(--spacing-m);margin-top:var(--spacing-m);margin-bottom:var(--spacing-l)}._statItem_jv9xn_268{flex:1;min-width:120px;background-color:var(--light-bg-color);border-radius:8px;padding:var(--spacing-m);text-align:center;border:1px solid var(--border-color)}._statValue_jv9xn_278{font-size:24px;font-weight:700;margin-bottom:4px;color:var(--accent-color)}._statLabel_jv9xn_285{font-size:14px;color:var(--light-body-color)}._optimizingContainer_jv9xn_290{margin-top:var(--spacing-l);display:flex;flex-direction:column;align-items:center;padding:var(--spacing-l);background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000000d;border:1px solid var(--border-color)}._statusText_jv9xn_302{margin-top:var(--spacing-m);font-weight:500;color:var(--accent-color)}._percentageText_jv9xn_308{margin-top:var(--spacing-xs);font-weight:500;color:var(--accent-color);font-size:18px}._progressBar_jv9xn_315{width:100%;height:10px;background-color:var(--light-bg-color);border-radius:5px;margin-top:var(--spacing-m);overflow:hidden;box-shadow:inset 0 1px 3px #0000001a;position:relative}._progressBarFill_jv9xn_326{height:100%;background:linear-gradient(to right,var(--accent-color),rgba(108,92,231,.7));transition:width .3s ease;border-radius:5px;position:absolute;top:0;left:0}._resultContainer_jv9xn_336{margin-top:var(--spacing-l);padding:var(--spacing-l);background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000000d;border:1px solid var(--border-color)}._resultTitle_jv9xn_345{font-size:20px;font-weight:500;margin-bottom:var(--spacing-m);color:var(--accent-color);display:flex;align-items:center}._resultIcon_jv9xn_354{margin-right:var(--spacing-s);font-size:24px}._logWrapper_jv9xn_359{margin-top:var(--spacing-l);border:1px solid var(--border-color);border-radius:8px;background-color:var(--light-bg-color);display:flex;flex-direction:column;overflow:hidden}._logHeader_jv9xn_369{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-m);border-bottom:1px solid var(--border-color);background-color:var(--light-bg-color);position:sticky;top:0;z-index:10}._logsContainer_jv9xn_381{max-height:300px;overflow-y:auto;padding:0 var(--spacing-m)}._logs_jv9xn_381{font-family:monospace;font-size:12px;white-space:pre-wrap;display:flex;flex-direction:column;padding-top:var(--spacing-s);padding-bottom:var(--spacing-s)}._logEntry_jv9xn_397{font-family:var(--mono-font-family);font-size:var(--font-size-xs);padding:var(--spacing-xs) 0;line-height:1.5;white-space:pre-wrap;word-break:break-word;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}._logEntry_jv9xn_397 ._sizeComparison_jv9xn_410{display:inline-block;margin-left:var(--spacing-s);font-family:var(--mono-font-family);font-size:var(--font-size-xs);white-space:nowrap}._logEntry_jv9xn_397:nth-child(odd){background-color:#00000008}._buttonContainer_jv9xn_422{display:flex;justify-content:center;margin-top:var(--spacing-l)}._optimizeButton_jv9xn_428{background-color:var(--accent-color)!important;transition:all .2s ease!important}._optimizeButton_jv9xn_428:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}._infoIcon_jv9xn_438{margin-right:8px;color:var(--accent-color);display:inline-flex;align-items:center}._imageIcon_jv9xn_445{width:24px;height:24px;margin-right:8px}._noAssetsMessage_jv9xn_97{text-align:center;padding:var(--spacing-l);color:var(--light-body-color);font-style:italic}._clickable_jv9xn_458{cursor:pointer;transition:transform .2s,box-shadow .2s;border:2px solid transparent}._clickable_jv9xn_458:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:var(--accent-color)}._clickable_jv9xn_458:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px #0071eb4d}._assetListContainer_jv9xn_476{margin:var(--spacing-l) 0;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000000d;max-width:600px;margin-left:auto;margin-right:auto;overflow:hidden;border:1px solid var(--border-color)}._assetListHeader_jv9xn_43{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-m);background-color:var(--light-bg-color);border-bottom:1px solid var(--border-color)}._assetListTitle_jv9xn_497{margin:0;font-size:var(--font-size-l);color:var(--accent-color)}._closeButton_jv9xn_503{background:none;border:none;font-size:var(--font-size-xl);color:var(--light-body-color);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%}._closeButton_jv9xn_503:hover{background-color:var(--border-color);color:var(--accent-color)}._closeButton_jv9xn_503:focus{outline:none;box-shadow:0 0 0 2px #0071eb4d}._assetList_jv9xn_23{max-height:300px;overflow-y:auto;padding:var(--spacing-m)}._assetItem_jv9xn_126{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-m);border-bottom:1px solid var(--border-color)}._assetDetails_jv9xn_149{flex:1;min-width:0;margin-right:var(--spacing-m)}._assetPath_jv9xn_154{word-break:break-word;margin-bottom:var(--spacing-xs);font-size:var(--font-size-s)}._sizeComparison_jv9xn_410{display:flex;align-items:center;font-size:var(--font-size-s);flex-wrap:wrap}._assetActions_jv9xn_215{display:flex;gap:var(--spacing-s);align-items:center;flex-shrink:0}._originalSize_jv9xn_568{color:#e53935;font-weight:500}._sizeArrow_jv9xn_200{margin:0 var(--spacing-xs);color:var(--light-body-color)}._optimizedSize_jv9xn_578{color:#43a047;font-weight:500}._sizeSavings_jv9xn_583{font-size:var(--font-size-xs);color:#43a047;margin-left:var(--spacing-xs)}._assetLink_jv9xn_589{flex-shrink:0;font-size:var(--font-size-s);color:var(--accent-color);text-decoration:none;padding:var(--spacing-s) var(--spacing-m);border:1px solid var(--accent-color);border-radius:var(--border-radius);transition:background-color .2s,color .2s;font-weight:500;display:inline-block;min-width:100px;text-align:center}._assetLink_jv9xn_589:hover{background-color:var(--accent-color);color:#fff}._assetLink_jv9xn_589:focus{outline:none;box-shadow:0 0 0 2px #0071eb4d}._twoColumnGrid_jv9xn_614{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-l);margin-top:var(--spacing-s);margin-bottom:var(--spacing-m)}@media(max-width:768px){._twoColumnGrid_jv9xn_614{grid-template-columns:1fr}}._settingsContainer_jv9xn_628{width:100%;max-width:800px;box-sizing:border-box}._settingsForm_jv9xn_634{max-width:800px;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--spacing-m)}._settingsForm_jv9xn_634 h4{margin-top:var(--spacing-m);margin-bottom:var(--spacing-m);color:var(--accent-color);font-size:18px;border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-xs)}._assetOptimizerTitle_jv9xn_652{font-size:24px;font-weight:500;margin-bottom:var(--spacing-l);color:var(--accent-color)}._fieldRow_jv9xn_659{display:flex;flex-wrap:wrap;gap:var(--spacing-m)}._field_jv9xn_659{flex:1;min-width:180px}._formActionContainer_jv9xn_670{margin-top:var(--spacing-l)}._buttonGroup_jv9xn_674{display:flex;flex-direction:column;gap:var(--spacing-m)}@media(min-width:600px){._buttonGroup_jv9xn_674{flex-direction:row;flex-wrap:wrap;justify-content:space-between}._buttonGroup_jv9xn_674>button:first-child{flex:1}._buttonGroup_jv9xn_674>button:nth-child(2){flex:2}._buttonGroup_jv9xn_674>button:last-child{flex:2}}._note_jv9xn_700{padding:var(--spacing-s);background-color:var(--light-bg-color);border-radius:var(--border-radius);margin-bottom:var(--spacing-m)}._note_jv9xn_700 p{margin:0;color:var(--text-color);font-size:14px}._startButtonContainer_jv9xn_713{margin-top:var(--spacing-l);width:100%;padding:0;box-sizing:border-box}._startButtonContainer_jv9xn_713 button{width:100%}._resultsContainer_jv9xn_724{margin:var(--spacing-l) 0;padding:var(--spacing-m);background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000000d;border:1px solid var(--border-color)}._optimizationSummaryTitle_jv9xn_733{font-size:24px;margin-bottom:var(--spacing-m);color:var(--accent-color);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-s)}._statsCardGrid_jv9xn_741{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-m);margin-bottom:var(--spacing-l)}._statsCard_jv9xn_741{background-color:#fff;border-radius:8px;padding:var(--spacing-m);text-align:center;border:1px solid var(--border-color);box-shadow:0 1px 3px #0000000d;transition:all .2s ease-in-out}._clickableStatsCard_jv9xn_758{cursor:pointer;position:relative;overflow:hidden}._clickableStatsCard_jv9xn_758:hover{border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}._clickableStatsCard_jv9xn_758:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}._clickableStatsCard_jv9xn_758:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;background-color:var(--accent-color);transform:scaleX(0);transform-origin:right;transition:transform .3s ease-in-out}._clickableStatsCard_jv9xn_758:hover:after{transform:scaleX(1);transform-origin:left}._clickableStatsCard_jv9xn_758:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}._statsCardTitle_jv9xn_798{margin-top:0;margin-bottom:var(--spacing-xs);font-size:var(--font-size-s);color:var(--text-color);font-weight:600}._statsCardValue_jv9xn_806{font-size:2.5rem;font-weight:700;margin:var(--spacing-xs) 0}._optimizedValue_jv9xn_812{color:var(--green-color)}._skippedValue_jv9xn_816{color:var(--yellow-color)}._failedValue_jv9xn_820{color:var(--red-color)}._statsCardLabel_jv9xn_824{font-size:var(--font-size-xs);color:var(--text-color-light)}._savingsSummary_jv9xn_829{margin:var(--spacing-m) 0}._savingsCard_jv9xn_833{background-color:#fff;border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-m)}._savingsRow_jv9xn_840{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--light-border-color, #f0f0f0)}._savingsRow_jv9xn_840:last-child{border-bottom:none}._savingsLabel_jv9xn_852{font-size:14px;color:var(--light-body-color)}._savingsValue_jv9xn_857{font-weight:500;color:var(--accent-color);font-size:16px}._actionsContainer_jv9xn_863{margin-top:var(--spacing-l);width:100%}._actionsContainer_jv9xn_863>button{width:100%!important}._infoText_jv9xn_872{font-size:.9rem;color:var(--light-body-color);background-color:var(--light-bg-color);padding:var(--spacing-m);border-radius:var(--border-radius);margin:var(--spacing-s) 0 var(--spacing-m);line-height:1.4}._infoText_jv9xn_872 strong{color:var(--accent-color);font-weight:600}._hintWithDoc_jv9xn_888{display:flex;align-items:center;margin-top:4px;font-size:.8125rem;color:#999;line-height:1.2;border:none;background:transparent;padding:0;text-align:left;cursor:pointer}._plainHint_jv9xn_902{display:flex;align-items:center;margin-top:4px;font-size:.8125rem;color:#999;line-height:1.2;border:none;background:transparent;padding:0;text-align:left}._hintWithDoc_jv9xn_888 ._docLinkIcon_jv9xn_915{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;color:#999;font-size:10px;background-color:transparent;width:14px;height:14px;border-radius:50%;border:1px solid #999999}._hintWithDoc_jv9xn_888:focus{outline:none}._hintWithDoc_jv9xn_888:focus-visible{box-shadow:0 0 0 2px var(--accent-color-light)}._docLink_jv9xn_915{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;padding:0;border:none;background:transparent;cursor:pointer;vertical-align:middle}._docLink_jv9xn_915 ._docLinkIcon_jv9xn_915{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background-color:var(--accent-color);color:#fff;font-size:10px;font-weight:700;transition:background-color .2s ease}._docLink_jv9xn_915:hover ._docLinkIcon_jv9xn_915{background-color:var(--primary-color)}._docLink_jv9xn_915:focus{outline:none}._docLink_jv9xn_915:focus ._docLinkIcon_jv9xn_915{box-shadow:0 0 0 2px #0000001a}._currentAssetPreview_jv9xn_979{display:flex;align-items:center;background-color:#fff;border-radius:8px;padding:var(--spacing-s);margin-bottom:var(--spacing-m);border:1px solid var(--border-color);box-shadow:0 2px 4px #0000000d}._assetPreviewImage_jv9xn_990{flex-shrink:0;width:120px;height:80px;border-radius:4px;overflow:hidden;margin-right:var(--spacing-m);background-color:var(--light-bg-color);position:relative}._assetPreviewImage_jv9xn_990 img{width:100%;height:100%;object-fit:cover}._assetPreviewInfo_jv9xn_1007{flex:1;min-width:0}._assetPreviewTitle_jv9xn_1012{font-size:var(--font-size-s);font-weight:600;color:var(--accent-color);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._assetPreviewMeta_jv9xn_1022{font-size:var(--font-size-xxs);color:var(--light-body-color);display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}._advancedOptionsGroup_jv9xn_1031{margin-top:var(--spacing-l)}._advancedOptionsGroup_jv9xn_1031 h4{color:var(--accent-color);margin-bottom:var(--spacing-m);font-size:var(--font-size-m)}._optionsGrid_jv9xn_1041{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-l);margin-bottom:var(--spacing-m)}._optionItem_jv9xn_1048{display:flex;flex-direction:column;gap:var(--spacing-xs)}._paramTooltip_jv9xn_1055{position:relative;display:inline-block}._paramTooltip_jv9xn_1055 ._tooltipText_jv9xn_1060{visibility:hidden;width:auto;min-width:120px;background-color:#333;color:#fff;text-align:center;border-radius:6px;padding:6px 10px;position:absolute;z-index:1;bottom:125%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s,visibility .2s;font-size:var(--font-size-xxs);font-family:var(--mono-font-family, monospace);pointer-events:none;white-space:nowrap}._paramTooltip_jv9xn_1055 ._tooltipText_jv9xn_1060:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#333 transparent transparent transparent}._paramTooltip_jv9xn_1055:hover ._tooltipText_jv9xn_1060{visibility:visible;opacity:1}._buttonTooltip_jv9xn_1098{position:relative;display:inline-block}._buttonTooltip_jv9xn_1098 ._tooltipText_jv9xn_1060{visibility:hidden;min-width:200px;max-width:300px;background-color:#000c;color:#fff;text-align:center;border-radius:4px;padding:var(--spacing-s) var(--spacing-m);position:absolute;z-index:1;bottom:125%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .3s;font-size:var(--font-size-xs);line-height:1.5;pointer-events:none}._buttonTooltip_jv9xn_1098 ._tooltipText_jv9xn_1060:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,.8) transparent transparent transparent}._buttonTooltip_jv9xn_1098:hover ._tooltipText_jv9xn_1060{visibility:visible;opacity:1}._previewInfoBox_jv9xn_1141{width:100%;margin-bottom:var(--spacing-m);padding:var(--spacing-m);background-color:var(--light-bg-color);border-radius:8px;border:1px solid var(--border-color);display:flex;align-items:center}._previewInfoBox_jv9xn_1141 svg{margin-right:var(--spacing-s);color:var(--accent-color);flex-shrink:0}._previewInfoBox_jv9xn_1141 p{margin:0;color:var(--base-body-color);font-size:var(--font-size-s);line-height:1.5}
|